/* ==========================================================================
   Total Kit Solutions — shared stylesheet
   Used across: splash, shop, trade pages
   Edit once here; every page picks it up.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
:root {
  --navy: #16213e;
  --navy-deep: #0f1a30;
  --red: #c8102e;
  --red-deep: #a30d24;
  --ink: #16213e;
  --grey: #6b7280;
  --grey-light: #9aa1ad;
  --line: #e5e7eb;
  --bg: #ffffff;
  --panel: #f4f5f7;
}

/* --------------------------------------------------------------------------
   2. Base
   -------------------------------------------------------------------------- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Inter', -apple-system, sans-serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { text-decoration: none; color: inherit; }
.wrap { max-width: 1500px; margin: 0 auto; padding: 0 24px; }
.eyebrow {
  display: inline-block; font-size: 12px; font-weight: 800; letter-spacing: .16em;
  text-transform: uppercase; color: var(--red);
}

/* --------------------------------------------------------------------------
   3. Buttons (shared)
   -------------------------------------------------------------------------- */
.btn {
  font-family: inherit; font-weight: 800; font-size: 14px; letter-spacing: .05em;
  text-transform: uppercase; padding: 15px 30px; border: 2px solid transparent; cursor: pointer;
  transition: all .15s; display: inline-flex; align-items: center; gap: 9px;
}
.btn-red { background: var(--red); color: #fff; }
.btn-red:hover { background: var(--red-deep); }
.btn-ghost { background: #fff; color: var(--navy); border-color: var(--navy); }
.btn-ghost:hover { background: var(--navy); color: #fff; }
.btn-disabled { background: var(--panel); color: var(--grey-light); border-color: var(--line); cursor: not-allowed; }
.btn-disabled:hover { background: var(--panel); color: var(--grey-light); }

/* --------------------------------------------------------------------------
   4. Top bar
   -------------------------------------------------------------------------- */
.topbar {
  background: var(--navy); color: #fff;
  font-size: 12px; font-weight: 600; letter-spacing: .04em;
}
.topbar .wrap { display: flex; justify-content: space-between; align-items: center; height: 40px; }
.topbar .spec { display: flex; align-items: center; gap: 8px; }
.topbar .contact { display: flex; align-items: center; gap: 22px; }
.topbar .contact a { display: flex; align-items: center; gap: 7px; color: #fff; }
.topbar .contact a:hover { color: var(--red); }
.topbar svg { flex-shrink: 0; }
.stars { color: var(--red); letter-spacing: 2px; }

/* --------------------------------------------------------------------------
   5. Header + nav
   -------------------------------------------------------------------------- */
header { background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 50; }
header .wrap { display: flex; align-items: center; justify-content: space-between; height: 76px; }
.logo { display: flex; flex-direction: column; line-height: 1; }
.logo img { height: 44px; width: auto; display: block; }
.logo .mark { font-weight: 900; font-size: 34px; letter-spacing: -1px; color: var(--navy); }
.logo .mark span { color: var(--red); }
nav ul { display: flex; gap: 30px; list-style: none; align-items: center; }
nav a { font-size: 14px; font-weight: 700; letter-spacing: .03em; color: var(--navy); transition: color .15s; }
nav a:hover { color: var(--red); }
.icons { display: flex; gap: 16px; align-items: center; color: var(--navy); }
.header-cta {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--red); color: #fff; font-size: 13px; font-weight: 800;
  letter-spacing: .05em; text-transform: uppercase; padding: 12px 20px;
  transition: background .15s;
}
.header-cta:hover { background: var(--red-deep); }
.menu-btn { display: none; background: none; border: none; color: var(--navy); cursor: pointer; padding: 0; }
.nav-close { display: none; }
.nav-logo { display: none; }

/* --------------------------------------------------------------------------
   6. Hero — full background image with white content card
   -------------------------------------------------------------------------- */
.hero {
  position: relative; min-height: 65vh; display: flex; align-items: center;
  background-image: radial-gradient(ellipse 80% 90% at bottom left, rgba(15,26,48,.7) 0%, rgba(15,26,48,.35) 40%, rgba(15,26,48,0) 70%), url('../img/TKS_HERO_BG2.jpg');
  background-size: cover; background-position: center; overflow: hidden;
}
.hero .wrap { width: 100%; }
.hero-card {
  background: #fff; max-width: 50%; padding: 52px 48px;
  box-shadow: 0 30px 70px rgba(15,26,48,.28); position: relative;
}
.hero-card::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--red);
}
.hero h1 {
  font-weight: 900; font-size: 62px; line-height: 1.0; letter-spacing: -2px; margin-top: 18px;
}
.hero h1 .navy { color: var(--navy); display: block; }
.hero h1 .red { color: var(--red); display: block; }
.hero p { color: var(--grey); font-size: 17px; max-width: 500px; margin: 20px 0 30px; font-weight: 500; }
.hero-btns { display: flex; gap: 14px; flex-wrap: wrap; }
.trust { display: flex; gap: 24px; margin-top: 32px; flex-wrap: wrap; }
.trust span { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: .04em; color: var(--navy); }
.trust svg { color: var(--red); }

/* Hero variant — shop page can override the background image inline via style="" */

/* --------------------------------------------------------------------------
   7. Trade / feature strip
   -------------------------------------------------------------------------- */
.strip { background: var(--navy); color: #fff; }
.strip .wrap { display: grid; grid-template-columns: repeat(4,1fr); }
.strip-item { display: flex; align-items: center; gap: 14px; padding: 26px 8px; border-right: 1px solid rgba(255,255,255,.12); }
.strip-item:last-child { border-right: none; }
.strip-item svg { color: var(--red); flex-shrink: 0; }
.strip-item .t { font-size: 13px; font-weight: 800; letter-spacing: .05em; line-height: 1.3; }

/* --------------------------------------------------------------------------
   8. Section scaffolding
   -------------------------------------------------------------------------- */
.sec { padding: 84px 0; }
.sec-head { text-align: center; margin-bottom: 52px; max-width: 640px; margin-left: auto; margin-right: auto; }
.sec-head h2 { font-size: 32px; font-weight: 900; letter-spacing: -.5px; color: var(--navy); text-transform: uppercase; margin-top: 12px; }
.sec-head .rule { width: 60px; height: 4px; background: var(--red); margin: 16px auto 18px; }
.sec-head p { color: var(--grey); font-size: 16px; font-weight: 500; }

/* --------------------------------------------------------------------------
   9. Services cards
   -------------------------------------------------------------------------- */
.services { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.svc {
  border: 1px solid var(--line); padding: 34px 28px; position: relative; overflow: hidden;
  transition: border-color .18s, transform .18s; background: #fff;
}
.svc::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--red);
  transform: scaleY(0); transform-origin: top; transition: transform .22s ease;
}
.svc:hover { border-color: var(--navy); transform: translateY(-4px); }
.svc:hover::before { transform: scaleY(1); }
.svc.lead { background: var(--navy); border-color: var(--navy); color: #fff; }
.svc.lead::before { transform: scaleY(1); }
.svc .tag {
  position: absolute; top: 18px; right: 18px; font-size: 10px; font-weight: 800;
  letter-spacing: .1em; text-transform: uppercase; color: var(--red); background: rgba(200,16,46,.12);
  padding: 4px 9px;
}
.svc .svcicon { width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; color: var(--red); margin-bottom: 22px; }
.svc.lead .svcicon { color: #fff; }
.svc h3 { font-size: 18px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 12px; }
.svc p { font-size: 14px; color: var(--grey); font-weight: 500; line-height: 1.6; }
.svc.lead p { color: rgba(255,255,255,.75); }

/* --------------------------------------------------------------------------
   10. Process steps
   -------------------------------------------------------------------------- */
.process { background: var(--panel); }
.steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 24px; counter-reset: step; }
.step { position: relative; padding-top: 8px; }
.step .num {
  font-size: 46px; font-weight: 900; color: var(--red); letter-spacing: -2px; line-height: 1;
  margin-bottom: 16px; display: block;
}
.step h4 { font-size: 15px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--navy); margin-bottom: 9px; }
.step p { font-size: 14px; color: var(--grey); font-weight: 500; line-height: 1.6; }
.step:not(:last-child)::after {
  content: ""; position: absolute; top: 20px; right: -12px; width: 24px; height: 2px; background: var(--line);
}

/* --------------------------------------------------------------------------
   11. Why-choose grid
   -------------------------------------------------------------------------- */
.why-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px 40px; }
.why-item { display: flex; gap: 18px; }
.why-item .ic {
  width: 50px; height: 50px; flex-shrink: 0; background: var(--panel);
  display: flex; align-items: center; justify-content: center; color: var(--red);
  border: 1px solid var(--line);
}
.why-item h4 { font-size: 15px; font-weight: 800; letter-spacing: .03em; color: var(--navy); margin-bottom: 6px; }
.why-item p { font-size: 14px; color: var(--grey); font-weight: 500; line-height: 1.55; }

/* --------------------------------------------------------------------------
   12. Stats band
   -------------------------------------------------------------------------- */
.stats { background: var(--navy); color: #fff; }
.stats .wrap { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; padding: 62px 24px; }
.stat { text-align: center; border-right: 1px solid rgba(255,255,255,.12); padding: 0 12px; }
.stat:last-child { border-right: none; }
.stat .n { font-size: 44px; font-weight: 900; letter-spacing: -1.5px; color: #fff; line-height: 1; }
.stat .n span { color: var(--red); }
.stat .l { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--grey-light); margin-top: 12px; }

/* --------------------------------------------------------------------------
   13. About (shop page — Jayne / MD)
   -------------------------------------------------------------------------- */
.about .wrap { display: grid; grid-template-columns: .85fr 1.15fr; gap: 60px; align-items: center; }
.about-photo { position: relative; }
.about-photo img { width: 100%; height: 100%; object-fit: cover; position: relative; z-index: 2; }
.about-photo::after {
  content: ""; position: absolute; right: -18px; bottom: -18px; width: 60%; height: 60%;
  background: var(--red); z-index: 1;
}
.about-body h2 { font-size: 32px; font-weight: 900; letter-spacing: -.5px; color: var(--navy); text-transform: uppercase; margin: 12px 0 6px; }
.about-body .role { font-size: 13px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--red); margin-bottom: 20px; }
.about-body p { font-size: 15px; color: var(--grey); font-weight: 500; line-height: 1.75; margin-bottom: 16px; max-width: 620px; }
.about-body .signoff { font-size: 15px; font-weight: 700; color: var(--navy); margin-top: 22px; }
 
/* About — no-photo centred variant */
.about.about-solo .wrap { display: block; max-width: 820px; text-align: center; }
.about.about-solo .about-body p { margin-left: auto; margin-right: auto; }
.about.about-solo .about-body .role { margin-bottom: 24px; }
.about-creds { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 28px 0 4px; }
.about-creds span {
  display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700;
  color: var(--navy); background: var(--panel); border: 1px solid var(--line); padding: 9px 15px;
}
.about-creds span svg { color: var(--red); flex-shrink: 0; }

/* --------------------------------------------------------------------------
   14. Product grid (shop page — coming soon)
   -------------------------------------------------------------------------- */
.products { display: grid; grid-template-columns: repeat(4,1fr); gap: 22px; }
.product {
  border: 1px solid var(--line); background: #fff; overflow: hidden;
  display: flex; flex-direction: column; transition: border-color .18s, transform .18s;
}
.product:hover { border-color: var(--navy); transform: translateY(-4px); }
.product-img { aspect-ratio: 1/1; background: var(--panel); position: relative; overflow: hidden; }
.product-img img { width: 100%; height: 100%; object-fit: cover; }
.product-body { padding: 20px 20px 24px; text-align: center; display: flex; flex-direction: column; flex: 1; }
.product-body h3 { font-size: 16px; font-weight: 800; letter-spacing: .02em; color: var(--navy); margin-bottom: 16px; }
.product .btn { width: 100%; justify-content: center; margin-top: auto; font-size: 12px; padding: 12px 18px; }

/* --------------------------------------------------------------------------
   15. Quote / enquiry form
   -------------------------------------------------------------------------- */
.quote { background: var(--panel); }
.quote-wrap { display: grid; grid-template-columns: 1fr 1.1fr; gap: 0; max-width: 1200px; margin: 0 auto; box-shadow: 0 24px 60px rgba(15,26,48,.14); }
.quote-left { background: var(--navy); color: #fff; padding: 56px 48px; }
.quote-left .eyebrow { color: #fff; }
.quote-left h2 { font-size: 30px; font-weight: 900; letter-spacing: -.5px; text-transform: uppercase; margin: 12px 0 18px; line-height: 1.1; }
.quote-left > p { font-size: 15px; color: rgba(255,255,255,.75); font-weight: 500; margin-bottom: 30px; max-width: 320px; }
.qpoint { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 18px; }
.qpoint svg { color: var(--red); flex-shrink: 0; margin-top: 2px; }
.qpoint b { font-size: 14px; font-weight: 700; display: block; }
.qpoint span { font-size: 13px; color: rgba(255,255,255,.65); font-weight: 500; }
.quote-right { background: #fff; padding: 56px 48px; }
.field { margin-bottom: 18px; }
.field label { display: block; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--navy); margin-bottom: 7px; }
.field label .req { color: var(--red); }
.field input, .field select, .field textarea {
  width: 100%; font-family: inherit; font-size: 15px; color: var(--ink);
  border: 1.5px solid var(--line); padding: 13px 14px; background: #fff; transition: border-color .15s;
}
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--navy); }
.field textarea { resize: vertical; min-height: 92px; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-submit { width: 100%; justify-content: center; margin-top: 6px; }
.form-note { font-size: 12px; color: var(--grey); font-weight: 500; margin-top: 14px; text-align: center; }
.form-success { display: none; text-align: center; padding: 40px 20px; }
.form-success.show { display: block; }
.form-success svg { color: var(--red); margin: 0 auto 18px; }
.form-success h3 { font-size: 22px; font-weight: 900; color: var(--navy); text-transform: uppercase; letter-spacing: -.3px; margin-bottom: 10px; }
.form-success p { font-size: 15px; color: var(--grey); font-weight: 500; max-width: 340px; margin: 0 auto; }

/* --------------------------------------------------------------------------
   16. Footer
   -------------------------------------------------------------------------- */
footer { background: var(--navy-deep); color: #fff; }
footer .wrap { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; padding: 62px 24px 40px; }
.foot-logo img { height: 42px; width: auto; display: block; filter: brightness(0) invert(1); margin-bottom: 16px; }
.foot-logo .mark { font-weight: 900; font-size: 30px; letter-spacing: -1px; }
.foot-logo .mark span { color: var(--red); }
.foot-blurb { font-size: 13px; color: rgba(255,255,255,.6); font-weight: 500; max-width: 280px; margin-bottom: 20px; }
.socials { display: flex; gap: 12px; }
.socials a { width: 34px; height: 34px; border: 1px solid rgba(255,255,255,.25); display: flex; align-items: center; justify-content: center; transition: all .15s; }
.socials a:hover { background: var(--red); border-color: var(--red); }
.fcol h5 { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 18px; }
.fcol ul { list-style: none; }
.fcol li { margin-bottom: 12px; }
.fcol a, .fcol .txt { font-size: 13px; color: rgba(255,255,255,.6); font-weight: 500; display: flex; align-items: center; gap: 9px; }
.fcol a:hover { color: #fff; }
.foot-base { border-top: 1px solid rgba(255,255,255,.1); }
.foot-base .wrap { display: flex; justify-content: space-between; padding: 22px 24px; }
.foot-base p { font-size: 12px; color: rgba(255,255,255,.5); font-weight: 500; }

/* --------------------------------------------------------------------------
   17. Splash page (standalone — no shared header/footer)
   -------------------------------------------------------------------------- */
.splash {
  min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center;
  background: var(--navy); color: #fff; padding: 40px 24px; position: relative; overflow: hidden;
}

.splash-inner { position: relative; z-index: 2; width: 100%; max-width: 940px; text-align: center; }
.splash-logo img { height: 68px; width: auto; margin: 0 auto 14px; filter: brightness(0) invert(1); }
.splash-tagline { font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.6); margin-bottom: 52px; }
.splash-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.splash-card {
  background: #fff; color: var(--ink); padding: 44px 36px; text-align: left; position: relative;
  overflow: hidden; transition: transform .2s; display: flex; flex-direction: column; min-height: 300px;
}
.splash-card:hover { transform: translateY(-6px); }
.splash-card::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--red);
}
.splash-card .sc-icon { width: 54px; height: 54px; display: flex; align-items: center; justify-content: center; color: var(--red); margin-bottom: 22px; }
.splash-card .eyebrow { margin-bottom: 10px; }
.splash-card h2 { font-size: 26px; font-weight: 900; letter-spacing: -.5px; text-transform: uppercase; color: var(--navy); margin-bottom: 12px; line-height: 1.05; }
.splash-card p { font-size: 15px; color: var(--grey); font-weight: 500; line-height: 1.6; margin-bottom: 28px; }
.splash-card .btn { margin-top: auto; width: 100%; justify-content: center; }
.splash-foot { position: relative; z-index: 2; margin-top: 48px; font-size: 12px; color: rgba(255,255,255,.45); font-weight: 500; }

/* --------------------------------------------------------------------------
   18. Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  .services { grid-template-columns: 1fr 1fr; }
  .steps { grid-template-columns: 1fr 1fr; row-gap: 40px; }
  .step:nth-child(2)::after { display: none; }
  .why-grid { grid-template-columns: 1fr 1fr; }
  .quote-wrap { grid-template-columns: 1fr; }
  .products { grid-template-columns: 1fr 1fr; }
  .about .wrap { grid-template-columns: 1fr; gap: 40px; }
  .about-photo { max-width: 420px; }
}
@media (max-width: 960px) {
  .menu-btn { display: block; }
  .header-cta { display: none; }
  nav {
    position: fixed; inset: 0; z-index: 200; background: #fff;
    display: none; align-items: flex-start; justify-content: flex-start;
  }
  nav.open { display: flex; }
  nav ul { flex-direction: column; gap: 4px; text-align: left; width: 100%; padding: 100px 32px 0; }
  nav a { color: var(--navy); font-size: 22px; font-weight: 800; letter-spacing: .04em; display: block; padding: 14px 0; }
  nav a.nav-cta { color: #fff; background: var(--red); margin-top: 14px; text-align: center; }
  .nav-close { display: block; color: var(--navy); background: none; border: none; cursor: pointer; }
  .nav-logo { display: block; position: fixed; top: 24px; left: 32px; height: 40px; width: auto; z-index: 210; }
  .hero { min-height: 60vh; }
  .hero-card { max-width: none; padding: 44px 36px; }
  .hero h1 { font-size: 42px; }
  .strip .wrap { grid-template-columns: 1fr 1fr; }
  .strip-item:nth-child(2) { border-right: none; }
  .strip-item:nth-child(3), .strip-item:nth-child(4) { border-top: 1px solid rgba(255,255,255,.12); }
  .stats .wrap { grid-template-columns: 1fr 1fr; row-gap: 40px; }
  .stat:nth-child(2) { border-right: none; }
  footer .wrap { grid-template-columns: 1fr 1fr; }
  .foot-logo { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .hero { min-height: 0; padding: 60px 0; }
  .hero-card { padding: 36px 26px; box-shadow: 0 16px 40px rgba(15,26,48,.25); }
  .hero h1 { font-size: 44px; }
  .trust { gap: 16px; }
  .services { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; }
  .step::after { display: none !important; }
  .why-grid { grid-template-columns: 1fr; }
  .strip .wrap { grid-template-columns: 1fr; }
  .strip-item { border-right: none; border-bottom: 1px solid rgba(255,255,255,.12); justify-content: center; }
  .stats .wrap { grid-template-columns: 1fr; }
  .stat { border-right: none; border-bottom: 1px solid rgba(255,255,255,.12); padding-bottom: 24px; }
  .stat:last-child { border-bottom: none; }
  .quote-left, .quote-right { padding: 40px 28px; }
  .field-row { grid-template-columns: 1fr; gap: 0; }
  footer .wrap { grid-template-columns: 1fr; }
  .foot-base .wrap { flex-direction: column; gap: 8px; }
  .products { grid-template-columns: 1fr 1fr; }
  .splash-cards { grid-template-columns: 1fr; }
  .splash-logo img { height: 54px; }
}
