/* ============================================================================
   SCHUBERT CONSULTING — colors_and_type.css
   Foundational + semantic design tokens.

   Brand reality (per the live SchubertConsulting.io front page):
   the DIGITAL brand is DEEP NAVY + EMERALD GREEN. Navy carries the dark
   backgrounds and ink; emerald is the single action + highlight color, and it
   doubles as the "recovered revenue" green (the whole pitch is: we get paid
   when you recover revenue). The SPARTAN HELMET MARK is teal -- that teal is
   kept as a heritage/logo accent, not a UI color.

   Voice + mechanics are operator-grade and auditable: heavy MONO usage for
   labels, prices, and the "ledger" feel. No hype, no gloss.
   Fonts are Google Fonts (see note at bottom on the wordmark substitution).
   ============================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800;900&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root {
  /* ---------------------------------------------------------------- FONTS  */
  --font-display: 'Archivo', 'Helvetica Neue', Arial, sans-serif; /* headings, wordmark-echo caps */
  --font-body:    'IBM Plex Sans', system-ui, -apple-system, sans-serif; /* running copy, UI */
  --font-mono:    'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace; /* labels, prices, the ledger */

  /* -------------------------------------------------------- NAVY (PRIMARY) */
  /* Sampled from the live hero / nav / cards. Ink + all dark surfaces.       */
  --navy-950: #0B1C33; /* deepest */
  --navy-900: #0E2240; /* nav bar, footer */
  --navy-850: #122A47;
  --navy-800: #163354; /* hero base */
  --navy-700: #1B3A5C; /* headings on light */
  --navy-600: #22446B; /* hero gradient light end */
  --navy-500: #2E5379;

  /* Hero / dark-section gradient (subtle, almost flat, lighter top-right). */
  --navy-gradient: linear-gradient(115deg, #0E2240 0%, #163354 52%, #22446B 100%); /* @kind color */
  --navy-gradient-v: linear-gradient(180deg, #0E2240 0%, #163354 100%); /* @kind color */

  /* ---------------------------------------------- TEAL (BRAND IDENTITY)    */
  /* The corporate identity color: logo, letterhead, brand moments, eyebrows */
  /* and the PRIMARY UI action. Values from the official Schubert style guide.*/
  --teal-900: #0B3B42; /* dark icon teal -- deepest brand surface */
  --teal-800: #004F59; /* DEEP WORDMARK TEAL -- the canonical brand teal */
  --teal-700: #0D5D66; /* core icon teal -- PRIMARY action (white text ~6.5:1) */
  --teal-600: #0A6A74; /* primary hover (darken) */
  --teal-500: #0B8490; /* bright blue-green -- accent / on-dark highlight */
  --teal-200: #C6D8DC; /* pale teal / fine line tint */
  --teal-100: #E4EEEF;
  --teal-50:  #F0F6F6;
  --teal-gradient: linear-gradient(165deg, #0B3B42 0%, #0D5D66 50%, #0B8490 100%); /* @kind color */

  /* ------------------------------------------ EMERALD (RECOVERED REVENUE)  */
  /* RESERVED semantic: success / recovered revenue / "the number went up".  */
  /* Not a general accent. Doubles as --revenue below. On dark, green-300    */
  /* is the "recover revenue" highlight word in the hero headline.           */
  --green-700: #157A58;
  --green-600: #178A63;
  --green-500: #1FA679; /* recovered revenue / success */
  --green-400: #2FCB95;
  --green-300: #4FDCA9; /* on-dark highlight ("recover revenue") */
  --green-100: #D8F3E8;
  --green-50:  #ECF9F3;

  /* ------------------------------------------------------------- NEUTRALS  */
  /* Cool slate greys, tuned to sit with navy. Never warm.                   */
  --ink:     #14304F; /* fg-1 primary text / headings */
  --fg-2:    #41526B; /* secondary / body */
  --fg-3:    #6B7B91; /* muted / captions / meta */
  --fg-4:    #9AA6B5; /* disabled / faint */
  --border:        #E2E8F0; /* default hairline */
  --border-strong: #CBD5E1;
  --surface-0: #FFFFFF; /* cards */
  --surface-1: #FFFFFF; /* page background */
  --surface-2: #F7F9FC; /* light section (sampled) */
  --surface-3: #EEF2F8; /* sunken / alt rows */
  --on-dark:   #EAF1F9; /* text on navy */
  --on-dark-2: #9DB0C8; /* secondary text on navy */

  /* ------------------------------------------------------------ SEMANTIC   */
  /* Revenue green IS the brand green. One amber for leak/at-risk, one red.   */
  --revenue:      #1FA679; /* gains, recovered revenue, success (== green-500) */
  --revenue-bg:   #E5F5EE;
  --leak:         #C2841A; /* the silent leak / at-risk / pending */
  --leak-bg:      #FBF1DD;
  --alert:        #C2453A; /* errors, lost, hard-stop */
  --alert-bg:     #F9E8E5;

  /* -------------------------------------------------------- RADII / EDGES  */
  --r-xs: 3px;
  --r-sm: 6px;
  --r-md: 9px;
  --r-lg: 14px;
  --r-pill: 999px;

  /* ------------------------------------------------------------- SHADOWS   */
  /* Low, cool, navy-tinted. Elevation is restrained.                        */
  --shadow-xs: 0 1px 2px rgba(11, 28, 51, 0.06);
  --shadow-sm: 0 1px 3px rgba(11, 28, 51, 0.08), 0 1px 2px rgba(11, 28, 51, 0.05);
  --shadow-md: 0 6px 16px rgba(11, 28, 51, 0.09), 0 1px 3px rgba(11, 28, 51, 0.06);
  --shadow-lg: 0 18px 40px rgba(11, 28, 51, 0.16), 0 5px 12px rgba(11, 28, 51, 0.08);
  --shadow-inset: inset 0 1px 2px rgba(11, 28, 51, 0.07);
  --ring: 0 0 0 3px rgba(13, 93, 102, 0.32); /* focus ring, brand teal-700 @ 32% */

  /* ------------------------------------------------------------ SPACING    */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px; --s-5: 20px;
  --s-6: 24px; --s-8: 32px; --s-10: 40px; --s-12: 48px; --s-16: 64px;
  --s-20: 80px; --s-24: 96px; --s-32: 128px;

  /* ------------------------------------------------------------ LAYOUT     */
  --container: 1180px;
  --container-narrow: 760px;
}

/* ============================================================================
   SEMANTIC TYPE STYLES
   Display = Archivo (heavy, tight). Body = IBM Plex Sans.
   Labels / prices = IBM Plex Mono (the ledger voice). Apply as classes.
   ============================================================================ */

.t-display {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(2.6rem, 5.2vw, 4.4rem);
  line-height: 1.0;
  letter-spacing: -0.022em;
  color: var(--ink);
  text-wrap: balance;
}
.t-h1 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(2rem, 3.4vw, 2.85rem);
  line-height: 1.05;
  letter-spacing: -0.018em;
  color: var(--ink);
  text-wrap: balance;
}
.t-h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  line-height: 1.1;
  letter-spacing: -0.012em;
  color: var(--ink);
  text-wrap: balance;
}
.t-h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.25rem;
  line-height: 1.2;
  letter-spacing: -0.006em;
  color: var(--ink);
}
.t-h4 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.0625rem;
  line-height: 1.25;
  color: var(--ink);
}

/* Eyebrow / kicker — mono, tracked, brand teal. The signature section label. */
.t-eyebrow {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 0.76rem;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--teal-700);
}

/* Label / overline / fine print — mono, the "auditable" tone. */
.t-label {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--fg-3);
}

.t-lead {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: clamp(1.1rem, 1.5vw, 1.3rem);
  line-height: 1.5;
  color: var(--fg-2);
  text-wrap: pretty;
}
.t-body {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.62;
  color: var(--fg-2);
  text-wrap: pretty;
}
.t-small {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--fg-3);
}

/* Data / price numerals — mono, tabular. All dollar figures live here. */
.t-metric {
  font-family: var(--font-mono);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.t-data {
  font-family: var(--font-mono);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
}

/* Highlight span — the emerald accent inside a dark headline. */
.t-hi { color: var(--green-300); }

/* ============================================================================
   NOTE ON FONTS / SUBSTITUTION
   The "SCHUBERT CONSULTING" wordmark is a heavy geometric sans (uppercase,
   tightly set); no source font file was provided. ARCHIVO (800/900) is the
   nearest widely-available match and is the display face throughout. IBM Plex
   Sans / Plex Mono are exact, free Google fonts and carry the body + the heavy
   "ledger" mono labelling the live site leans on. If you have the wordmark
   font, drop it in fonts/ and swap --font-display.

   PALETTE ROLES (hybrid, operator-ratified 2026-06-08):
   - TEAL  = brand identity: logo, letterhead, eyebrows, brand moments, the PRIMARY action color.
   - NAVY  = dark-section workhorse: hero, ledger, footer, app rails (the dark backgrounds).
   - GREEN = RESERVED for recovered revenue / success only (the --revenue semantic). Not a general accent.
   ============================================================================ */
/* Schubert marketing site — navy + emerald, matched to the live front page.
   Pairs with ../../colors_and_type.css */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
.wrap{max-width:var(--container);margin:0 auto;padding:0 32px}
.wrap-narrow{max-width:920px;margin:0 auto;padding:0 32px}

/* ---- buttons ---- */
.btn{font-family:var(--font-display);font-weight:700;font-size:15px;border-radius:var(--r-sm);padding:13px 22px;border:1.5px solid transparent;transition:background .15s ease,border-color .15s ease,color .15s ease;display:inline-flex;align-items:center;gap:9px;white-space:nowrap;letter-spacing:.005em}
.btn svg{width:17px;height:17px}
.btn-primary{background:var(--teal-700);color:#fff}
.btn-primary:hover{background:var(--teal-600)}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--border-strong)}
.btn-outline:hover{border-color:var(--ink)}
.btn-outline-dark{background:transparent;color:#fff;border-color:rgba(255,255,255,.34)}
.btn-outline-dark:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.btn-lg{font-size:16px;padding:15px 26px}
.btn-block{width:100%;justify-content:center}

.eyebrow{font-family:var(--font-mono);font-weight:500;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-700)}
.eyebrow.on-dark{color:#5BB8C2}

/* ---- nav ---- */
.nav{position:sticky;top:0;z-index:40;background:var(--navy-900);border-bottom:1px solid rgba(255,255,255,.08)}
.nav-in{display:flex;align-items:center;gap:18px;height:64px}
.nav-burger{display:flex;flex-direction:column;gap:4px;background:none;border:none;padding:4px}
.nav-burger span{width:20px;height:2px;background:#fff;border-radius:2px}
.nav-logo{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:800;font-size:17px;letter-spacing:.01em;color:#fff}
.nav-logo img{height:30px;width:auto}
.nav-logo .sub{color:#5BB8C2;font-weight:700}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:16px}
.nav-phone{font-family:var(--font-mono);font-size:13px;color:var(--on-dark-2)}

/* ---- hero (navy) ---- */
.hero{background:var(--navy-gradient);color:#fff;padding:74px 0 64px;text-align:center;position:relative;overflow:hidden}
.hero .constellation{position:absolute;inset:0;z-index:0;opacity:.5}
.cdot{position:absolute;background:#cfe0f2;border-radius:50%}
.cline{position:absolute;height:1px;background:#52719a;transform-origin:left}
.hero-in{position:relative;z-index:2;max-width:880px;margin:0 auto}
.hero-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(91,184,194,.4);border-radius:var(--r-pill);padding:7px 15px;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:#5BB8C2;margin-bottom:26px}
.hero-pill .pip{width:7px;height:7px;border-radius:50%;background:#5BB8C2}
.hero h1{font-family:var(--font-display);font-weight:800;font-size:clamp(2.5rem,5.2vw,4.1rem);line-height:1.04;letter-spacing:-.022em;color:#fff;text-wrap:balance}
.hero h1 .hi{color:var(--green-300)}
.hero .lead{font-size:1.18rem;line-height:1.55;color:var(--on-dark-2);margin:24px auto 0;max-width:54ch;text-wrap:pretty}
.hero-cta{display:flex;gap:14px;margin-top:34px;justify-content:center;flex-wrap:wrap}
.hero-rule{height:1px;background:rgba(255,255,255,.12);max-width:780px;margin:46px auto 0}
.hero-trust{display:flex;gap:40px;justify-content:center;margin-top:26px;flex-wrap:wrap}
.htrust{display:flex;align-items:baseline;gap:9px;font-size:13.5px}
.htrust svg{color:#5BB8C2;flex:none;align-self:center}
.htrust b{color:#fff;font-weight:600}
.htrust span{font-family:var(--font-mono);font-size:12px;color:var(--on-dark-2)}

/* ---- generic section ---- */
.section{padding:84px 0}
.section.alt{background:var(--surface-2)}
.sec-head{max-width:680px;margin-bottom:46px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head h2{font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,3.4vw,2.7rem);line-height:1.05;letter-spacing:-.018em;color:var(--ink);margin-top:16px;text-wrap:balance}
.sec-head p{font-size:1.08rem;line-height:1.6;color:var(--fg-2);margin-top:18px;text-wrap:pretty}

/* ---- three pieces cards ---- */
.piece-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.piece{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:28px 26px;display:flex;flex-direction:column;transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease}
.piece:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--border-strong)}
.piece .pnum{font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--teal-700);margin-bottom:18px}
.piece h3{font-family:var(--font-display);font-weight:700;font-size:1.28rem;line-height:1.18;color:var(--ink);margin-bottom:14px;text-wrap:balance}
.piece p{font-size:14.5px;line-height:1.62;color:var(--fg-2)}
.piece .pfoot{margin-top:22px;padding-top:16px;border-top:1px solid var(--border);font-family:var(--font-mono);font-size:11.5px;line-height:1.6;color:var(--fg-3)}

/* ---- leak section ---- */
.cost-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
.cost-copy p{font-size:1.05rem;line-height:1.66;color:var(--fg-2);margin-bottom:15px}
.cost-copy strong{color:var(--ink);font-weight:600}
.leak-card{background:var(--alert-bg);border:1px solid #EBC9C4;border-radius:var(--r-lg);padding:30px}
.leak-card .lab{font-family:var(--font-mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--alert);margin-bottom:14px}
.leak-card .big{font-family:var(--font-mono);font-weight:600;font-variant-numeric:tabular-nums;font-size:60px;line-height:1;letter-spacing:-.03em;color:var(--alert)}
.leak-card .sub{font-size:14px;color:var(--fg-2);margin-top:12px;line-height:1.5}
.leak-row{display:flex;gap:12px;margin-top:22px;border-top:1px solid #EBC9C4;padding-top:18px}
.leak-stat{flex:1}
.leak-stat .n{font-family:var(--font-mono);font-weight:600;font-size:21px;color:var(--ink)}
.leak-stat .t{font-size:11.5px;color:var(--fg-3);margin-top:3px}

/* ---- ledger / proof (dark) ---- */
.proof{position:relative;background:var(--navy-gradient-v);overflow:hidden;padding:88px 0}
.proof .constellation{position:absolute;inset:0;z-index:0;opacity:.55}
.proof .wrap{position:relative;z-index:2}
.proof h2{font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,3.2vw,2.6rem);color:#fff;line-height:1.07;letter-spacing:-.018em;margin-top:16px;max-width:20ch;text-wrap:balance}
.proof .psub{font-size:1.05rem;color:var(--on-dark-2);margin-top:16px;max-width:52ch;line-height:1.6}
.ledger{margin-top:46px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-lg);overflow:hidden}
.ledger-head{display:flex;justify-content:space-between;align-items:center;padding:15px 22px;border-bottom:1px solid rgba(255,255,255,.12);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--on-dark-2)}
.ledger-head .live{display:flex;align-items:center;gap:7px;color:var(--green-300)}
.ledger-head .live .d{width:7px;height:7px;border-radius:50%;background:var(--green-300)}
.lrow{display:grid;grid-template-columns:96px 1fr 130px 96px;gap:14px;padding:13px 22px;border-bottom:1px solid rgba(255,255,255,.07);font-size:13.5px;align-items:center}
.lrow:last-child{border-bottom:none}
.lrow .dt{font-family:var(--font-mono);font-size:12px;color:var(--on-dark-2)}
.lrow .ev{color:#fff}
.lrow .src{font-family:var(--font-mono);font-size:11.5px;color:var(--on-dark-2)}
.lrow .amt{font-family:var(--font-mono);font-weight:600;font-variant-numeric:tabular-nums;color:var(--green-300);text-align:right}
.ledger-foot{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;background:rgba(255,255,255,.03);font-family:var(--font-mono);font-size:12px;color:var(--on-dark-2)}
.ledger-foot b{color:#fff;font-weight:600;font-size:15px}

/* ---- final cta ---- */
.cta{padding:88px 0;text-align:center}
.cta h2{font-family:var(--font-display);font-weight:800;font-size:clamp(2.2rem,3.6vw,3rem);color:var(--ink);letter-spacing:-.02em;line-height:1.05;text-wrap:balance}
.cta p{font-size:1.12rem;color:var(--fg-2);margin:18px auto 0;max-width:48ch}
.cta-row{display:flex;gap:14px;justify-content:center;margin-top:32px;flex-wrap:wrap}

/* ---- footer ---- */
.footer{background:var(--navy-950);color:var(--on-dark-2);padding:50px 0 34px}
.footer-in{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:flex-start}
.footer-logo{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:800;font-size:16px;color:#fff;letter-spacing:.01em}
.footer-logo img{height:30px}
.footer p{font-size:13px;line-height:1.65;margin-top:14px;max-width:32ch}
.footer-cols{display:flex;gap:52px}
.footer-col h5{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#5BB8C2;margin-bottom:13px}
.footer-col a{display:block;font-size:13px;color:var(--on-dark-2);padding:5px 0}
.footer-col a:hover{color:#fff}
.footer-base{border-top:1px solid rgba(255,255,255,.1);margin-top:38px;padding-top:20px;display:flex;justify-content:space-between;gap:16px;font-family:var(--font-mono);font-size:12px;color:var(--on-dark-2);flex-wrap:wrap}

/* ---- modal ---- */
.modal-back{position:fixed;inset:0;background:rgba(11,28,51,.55);backdrop-filter:blur(3px);z-index:90;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade .15s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);width:100%;max-width:480px;overflow:hidden;animation:rise .18s ease}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.modal-head{background:var(--navy-900);color:#fff;padding:24px 28px;position:relative;overflow:hidden}
.modal-head .constellation{position:absolute;inset:0;z-index:0;opacity:.5}
.modal-head .eyebrow{color:#5BB8C2;position:relative;z-index:2}
.modal-head h3{font-family:var(--font-display);font-weight:800;font-size:1.45rem;margin-top:8px;position:relative;z-index:2}
.modal-head .x{position:absolute;top:18px;right:18px;z-index:3;background:rgba(255,255,255,.12);border:none;color:#fff;width:30px;height:30px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center}
.modal-head .x:hover{background:rgba(255,255,255,.22)}
.modal-body{padding:26px 28px 30px}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.field label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3)}
.field input,.field select{font-family:var(--font-body);font-size:14.5px;padding:11px 13px;border:1.5px solid var(--border-strong);border-radius:var(--r-sm);background:#fff;color:var(--ink);width:100%}
.field input:focus,.field select:focus{outline:none;border-color:var(--teal-700);box-shadow:var(--ring)}
.field input::placeholder{color:var(--fg-4)}
.modal-confirm{text-align:center;padding:40px 28px 38px}
.modal-confirm .check{width:60px;height:60px;border-radius:50%;background:var(--revenue-bg);color:var(--revenue);display:flex;align-items:center;justify-content:center;margin:0 auto 20px}
.modal-confirm h3{font-family:var(--font-display);font-weight:800;font-size:1.5rem;color:var(--ink)}
.modal-confirm p{font-size:15px;color:var(--fg-2);margin-top:12px;line-height:1.55}

@media(max-width:900px){
  .cost-grid{grid-template-columns:1fr}
  .piece-grid{grid-template-columns:1fr}
  .hero-trust{gap:18px;flex-direction:column;align-items:center}
  .lrow{grid-template-columns:74px 1fr 84px;gap:10px}
  .lrow .src{display:none}
  .nav-phone{display:none}
}

/* === Schubert-Docs site addition: real nav (desktop links + mobile collapse) === */
.nav-burger{display:none}
.nav-right a:not(.btn){font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--on-dark-2);transition:color .15s ease}
.nav-right a:not(.btn):hover{color:#fff}
@media(max-width:860px){
  .nav-burger{display:flex}
  .nav-in{position:relative;justify-content:space-between}
  .nav-right{position:absolute;top:64px;left:-32px;right:-32px;background:var(--navy-900);flex-direction:column;align-items:stretch;gap:0;padding:6px 0 14px;border-bottom:1px solid rgba(255,255,255,.1);display:none;z-index:50}
  .nav-right.open{display:flex}
  .nav-right a:not(.btn){padding:12px 32px}
  .nav-right .nav-phone{padding:12px 32px;display:block}
  .nav-right .btn{margin:10px 32px 4px}
}

/* ===================================================================
   Sub-page shells (Schubert-Docs) — header band + long-form content
   Reused by privacy, about, contact, pricing, portal, request-report.
   =================================================================== */
.page-head{background:var(--navy-gradient);color:#fff;padding:62px 0 50px;position:relative;overflow:hidden}
.page-head .constellation{position:absolute;inset:0;z-index:0;opacity:.5}
.page-head .wrap,.page-head .wrap-narrow{position:relative;z-index:2}
.page-head .eyebrow{color:#5BB8C2}
.page-head h1{font-family:var(--font-display);font-weight:800;font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.04;letter-spacing:-.02em;margin-top:14px;color:#fff;text-wrap:balance}
.page-head h1 .hi{color:var(--green-300)}
.page-head .sub{font-family:var(--font-mono);font-size:13px;letter-spacing:.04em;color:var(--on-dark-2);margin-top:16px}
.page-head .lead{font-size:1.12rem;line-height:1.55;color:var(--on-dark-2);margin-top:18px;max-width:58ch;text-wrap:pretty}

.prose{padding:60px 0}
.legal-sec{padding:32px 0;border-bottom:1px solid var(--border)}
.legal-sec:first-child{padding-top:0}
.legal-sec:last-child{border-bottom:none}
.legal-sec .num{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;color:var(--teal-700);display:block;margin-bottom:8px}
.legal-sec h2{font-family:var(--font-display);font-weight:700;font-size:clamp(1.4rem,3vw,2rem);color:var(--ink);margin-bottom:14px;letter-spacing:-.01em;line-height:1.1}
.legal-sec p{color:var(--fg-2);font-size:15.5px;line-height:1.7;margin-bottom:12px;max-width:660px}
.legal-sec p:last-child{margin-bottom:0}
.legal-sec ul{list-style:none;margin:12px 0;max-width:660px}
.legal-sec li{color:var(--fg-2);font-size:15px;line-height:1.6;padding:6px 0 6px 22px;position:relative}
.legal-sec li::before{content:"";position:absolute;left:0;top:14px;width:9px;height:1px;background:var(--teal-500)}
.legal-sec strong{color:var(--ink);font-weight:600}
.legal-sec a{color:var(--teal-700);text-decoration:none}
.legal-sec a:hover{text-decoration:underline}
.legal-table{width:100%;max-width:660px;border-collapse:collapse;margin:14px 0}
.legal-table th{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-700);text-align:left;padding:10px 16px 10px 0;border-bottom:1px solid var(--border-strong);font-weight:500}
.legal-table td{font-size:14px;color:var(--fg-2);padding:9px 16px 9px 0;border-bottom:1px solid var(--border);vertical-align:top}
.legal-table td:first-child{color:var(--ink);white-space:nowrap}
.legal-table tr:last-child td{border-bottom:none}
.callout{background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--teal-700);padding:18px 20px;margin:16px 0;max-width:660px;border-radius:0 var(--r-sm) var(--r-sm) 0}
.callout p{margin-bottom:0;color:var(--fg-2)}
.info-block{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:18px 20px;margin:16px 0;max-width:660px}
.info-block p{margin-bottom:6px}.info-block p:last-child{margin-bottom:0}

/* forms (contact, request-report) */
.form-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:30px;max-width:560px}
.form-grid{display:grid;gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3)}
.field input,.field select,.field textarea{font-family:var(--font-body);font-size:14.5px;padding:11px 13px;border:1.5px solid var(--border-strong);border-radius:var(--r-sm);background:#fff;color:var(--ink);width:100%}
.field textarea{resize:vertical;min-height:96px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--teal-700);box-shadow:var(--ring)}
.field input::placeholder,.field textarea::placeholder{color:var(--fg-4)}

@media(max-width:860px){.footer-cols{gap:30px}}

/* === weight refinement (2026-06-08, operator): body + form text more substantial === */
body{font-weight:500}
.t-body,.t-lead,.t-small{font-weight:500}
.hero .lead,.page-head .lead,.sec-head p,.proof .psub,.cta p{font-weight:500}
.field input,.field select,.field textarea,
input,select,textarea{font-weight:500}
.field input::placeholder,.field textarea::placeholder,
input::placeholder,textarea::placeholder{font-weight:400}
