/* ==========================================================================
   Olisports / 小将榜 — shared design system
   ALL design tokens live in :root below. Page files must reference tokens
   via var() only — recoloring the whole site = editing this block.
   ========================================================================== */

:root{
  color-scheme: light;

  /* palette */
  --navy:        #12355b;
  --navy-2:      #1d5c8a;
  --teal:        #1b9aaa;
  --accent:      #f46036;
  --yellow:      #f2c14e;
  --ink:         #22303c;
  --mut:         #6b7a88;
  --line:        #dfe7ee;
  --bg:          #f4f7fa;
  --paper:       #ffffff;
  --soft:        #eef3f7;
  --trust-bg:    #eef6f8;
  --trust-line:  #cfe3ea;
  --on-navy-dim: #cfe3f5;

  /* score colours */
  --good: #2e9e5b;
  --mid:  #2f7fc4;
  --warn: #e8a13a;
  --bad:  #d95f43;

  /* verified badge — gold */
  --gold-1:    #f8da7e;
  --gold-2:    #f2c14e;
  --gold-3:    #d99a16;
  --gold-edge: #b57f0e;

  /* counter pair — premium verified block (black-gold, as the G1 card) */
  --char-1:    #2a2e33;
  --char-2:    #14171b;
  --gold-text: #e9cf8f;
  --gold-rgb:  242,193,78;
  --char-rgb:  20,23,27;

  /* rgb channels (for alpha shadows/washes) */
  --navy-rgb: 18,53,91;
  --teal-rgb: 27,154,170;
  --yellow-rgb: 242,193,78;
  --white-rgb: 255,255,255;

  /* type */
  --font: "PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
  --fs-h1: 42px;
  --fs-h1-page: 34px;
  --fs-h2: 22px;
  --fs-h3: 19px;
  --fs-body: 14.5px;
  --fs-small: 12.5px;

  /* shape */
  --r-sm: 8px;
  --r-md: 10px;
  --r-lg: 12px;
  --r-xl: 14px;
  --r-hero: 16px;
  --r-pill: 99px;

  /* shadows */
  --sh-card: 0 1px 3px rgba(var(--navy-rgb),.05);
  --sh-pop:  0 10px 30px rgba(var(--navy-rgb),.12);
  --sh-mock: 0 18px 44px rgba(var(--navy-rgb),.16);
  --sh-chip: 0 10px 26px rgba(var(--navy-rgb),.14);

  /* layout */
  --wrap: 1040px;
  --gap: 16px;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{ font-family:var(--font); background:var(--bg); color:var(--ink); }
.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 16px; }
a{ color:var(--teal); text-decoration:none; }
img{ max-width:100%; }

/* ---------- header / nav ---------- */
.site-head{ background:var(--paper); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50; }
.site-head .wrap{ display:flex; align-items:center; gap:18px; padding-top:12px; padding-bottom:12px; flex-wrap:nowrap; }
.brand{ display:flex; align-items:center; gap:12px; flex:none; text-decoration:none; }
.logo{ background:var(--navy); color:var(--paper); font-weight:800; font-size:19px; letter-spacing:1px; padding:10px 16px; border-radius:var(--r-md); white-space:nowrap; box-shadow:var(--sh-card); transition:filter .15s ease; }
.logo span{ color:var(--teal); }
.brand:hover .logo, .brand:focus-visible .logo{ filter:brightness(1.18); }
.brand .bname{ font-size:19px; font-weight:800; color:var(--navy); line-height:1.15; }
.brand .bsub{ font-size:11px; color:var(--mut); letter-spacing:.4px; }
nav.main{ margin-left:auto; display:flex; align-items:center; gap:4px; flex-wrap:nowrap; }
nav.main a.nl{ display:block; color:var(--ink); font-size:var(--fs-body); font-weight:600; padding:8px 11px; border-radius:var(--r-sm); white-space:nowrap; }
.nav-toggle{ display:none; margin-left:auto; flex:none; width:46px; height:42px; padding:0; background:var(--navy); border:none; border-radius:var(--r-md); flex-direction:column; align-items:center; justify-content:center; gap:5px; }
.nav-toggle span{ display:block; width:22px; height:2px; background:var(--paper); border-radius:2px; }
nav.main a.nl:hover{ background:var(--soft); color:var(--navy); }
nav.main a.nl small{ display:block; font-size:9.5px; font-weight:400; color:var(--mut); letter-spacing:.6px; text-transform:uppercase; line-height:1.2; }
.has-sub{ position:relative; display:flex; }
.sub{ display:none; position:absolute; top:100%; left:0; background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-pop); padding:8px; min-width:230px; z-index:60; }
.has-sub:hover .sub, .has-sub:focus-within .sub{ display:block; }
.sub a{ display:block; padding:9px 12px; border-radius:var(--r-sm); color:var(--ink); font-size:14px; font-weight:600; }
.sub a:hover{ background:var(--trust-bg); color:var(--navy); }
.sub a small{ display:block; font-size:11px; font-weight:400; color:var(--mut); margin-top:1px; }

/* ---------- buttons ---------- */
button, .btn{ cursor:pointer; border:none; border-radius:var(--r-md); padding:12px 22px; font-size:15px; font-weight:700; display:inline-block; text-align:center; font-family:var(--font); }
.primary{ background:var(--accent); color:var(--paper); }
.primary:hover{ filter:brightness(1.06); }
.ghost{ background:var(--soft); color:var(--navy); }
.btn-big{ font-size:17px; padding:15px 34px; border-radius:var(--r-lg); }
.btn-big small{ display:block; font-size:11px; font-weight:400; opacity:.85; letter-spacing:.8px; text-transform:uppercase; margin-top:2px; }

/* ---------- sections & cards ---------- */
section{ padding:44px 0 8px; }
.sec-head{ margin-bottom:18px; }
.sec-head h2{ font-size:var(--fs-h2); color:var(--navy); border-left:4px solid var(--teal); padding-left:10px; }
.sec-head h2 small{ font-size:12px; color:var(--mut); font-weight:400; letter-spacing:1.2px; text-transform:uppercase; margin-left:8px; }
.sec-head p{ color:var(--mut); font-size:14px; margin-top:8px; line-height:1.7; }
.card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-xl); padding:20px; box-shadow:var(--sh-card); }
.lede{ font-size:16px; line-height:1.8; max-width:46em; }
.lede b{ color:var(--navy); }

/* ---------- verified seal (gold badge) ---------- */
.gs1{ stop-color:var(--gold-1); }
.gs2{ stop-color:var(--gold-2); }
.gs3{ stop-color:var(--gold-3); }
.vseal-body{ fill:url(#vsealGold); stroke:var(--gold-edge); stroke-width:1.6; }
.vseal-tick{ fill:none; stroke:var(--navy); stroke-width:4.4; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- counter / trust strip ----------
   A designed pair of blocks, unmistakable at a glance (as in the manual):
   LEFT = total reports — navy block, white numerals (the self-tested world);
   RIGHT = verified — premium black-gold block (the verified world).
   Mirrors the share cards: navy B2 / black-gold G1. */
.trust{ display:flex; gap:10px; max-width:520px; margin-top:22px; }
.trust .tcell{ flex:1; text-align:center; position:relative; border-radius:var(--r-md); padding:14px 14px 12px; box-shadow:var(--sh-card); }
.trust .tnum{ font-size:36px; font-weight:800; line-height:1.1; }
.trust .tcap{ font-size:var(--fs-small); margin-top:3px; }
/* left: total reports — navy block, number stacked over its sentence caption
   (caption completes the sentence: "182 / 份体能报告，已送到家长手中") */
.trust .tcell:first-child{ background:linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%); }
.trust .tcell:first-child .tnum{ color:var(--paper); }
.trust .tcell:first-child .tcap{ color:var(--on-navy-dim); }
.trust .tcap .keep{ white-space:nowrap; }
/* right: verified — black-gold premium */
.trust .tcell-v{ background:linear-gradient(150deg, var(--char-1) 0%, var(--char-2) 78%); border:1px solid var(--gold-3); box-shadow:inset 0 0 0 3px var(--char-2), inset 0 0 0 4px rgba(var(--gold-rgb),.38), var(--sh-card); }
.trust .tcell-v .tnum{ color:var(--gold-2); background:linear-gradient(180deg, var(--gold-1) 0%, var(--gold-2) 55%, var(--gold-3) 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.trust .tcell-v .tcap{ color:var(--gold-text); }
.vseal-badge{ position:absolute; top:-16px; right:-8px; display:block; filter:drop-shadow(0 2px 5px rgba(var(--char-rgb),.45)); }

/* ---------- hero (homepage) ---------- */
.hero{ background:linear-gradient(180deg, var(--trust-bg) 0%, var(--bg) 88%); padding:34px 0 10px; overflow:hidden; }
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:34px; align-items:center; }
.eyebrow{ display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--navy); background:var(--paper); border:1px solid var(--line); border-radius:var(--r-pill); padding:6px 14px; }
.eyebrow i{ width:8px; height:8px; border-radius:50%; background:var(--yellow); display:inline-block; }
.eyebrow small{ color:var(--mut); font-weight:400; letter-spacing:.6px; }
.hero h1{ font-size:var(--fs-h1); line-height:1.22; color:var(--navy); margin:16px 0 10px; font-weight:800; }
.hero .support{ font-size:16.5px; line-height:1.75; color:var(--ink); max-width:30em; }
.hero .support b{ color:var(--navy); }
.hero-cta{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:20px; }
.school-link{ font-size:var(--fs-body); font-weight:600; color:var(--navy); border-bottom:2px solid var(--yellow); padding-bottom:2px; }
.micro{ font-size:var(--fs-small); color:var(--mut); margin-top:12px; }

/* hero visual: sample report card */
.hero-visual{ position:relative; padding:18px 6px 56px; }
.blob{ position:absolute; border-radius:50%; }
.blob.b1{ width:190px; height:190px; background:rgba(var(--teal-rgb),.14); top:-8px; right:8%; }
.blob.b2{ width:120px; height:120px; background:rgba(var(--yellow-rgb),.35); bottom:2px; left:2%; }
.mock{ position:relative; background:var(--paper); border:1px solid var(--line); border-radius:var(--r-hero); box-shadow:var(--sh-mock); transform:rotate(-1.4deg); overflow:hidden; max-width:430px; margin:0 auto; }
.mock-head{ background:linear-gradient(120deg, var(--navy), var(--navy-2)); color:var(--paper); padding:16px 18px; display:flex; align-items:center; gap:14px; }
.mock-head img{ height:56px; width:auto; flex:none; }
.mock-head .mt{ font-size:17px; font-weight:800; }
.mock-head .ms{ font-size:11.5px; opacity:.85; margin-top:2px; }
.mock-head .sample{ margin-left:auto; flex:none; font-size:11px; font-weight:700; background:rgba(var(--white-rgb),.16); border:1px solid rgba(var(--white-rgb),.45); padding:3px 10px; border-radius:var(--r-pill); }
.mock-body{ padding:16px 18px 18px; }
.mock-top{ display:flex; gap:16px; align-items:center; }
.final-badge{ background:var(--navy); border-radius:var(--r-lg); padding:12px 10px; text-align:center; min-width:104px; flex:none; }
.final-badge .fv{ font-size:36px; font-weight:800; line-height:1.1; color:var(--paper); }
.final-badge .fn{ font-size:12px; color:var(--on-navy-dim); margin-top:2px; }
.final-badge .fs{ font-size:12px; font-weight:700; color:var(--yellow); margin-top:2px; }
.mock-prof{ flex:1; display:grid; gap:7px; }
.mock-prof div{ background:var(--bg); border-radius:var(--r-sm); padding:6px 11px; font-size:13px; }
.mock-prof b{ color:var(--navy); }
.mock-prof span{ color:var(--mut); font-size:11.5px; margin-left:6px; }
.domrow{ margin-top:11px; }
.domrow .dr-h{ display:flex; justify-content:space-between; font-size:13px; }
.domrow .dr-h b{ color:var(--navy); }
.bar{ height:8px; background:var(--soft); border-radius:var(--r-pill); margin-top:5px; overflow:hidden; }
.bar i{ display:block; height:100%; border-radius:var(--r-pill); }
.bar i.f-good{ background:var(--good); }
.bar i.f-mid{ background:var(--mid); }
.bar i.f-warn{ background:var(--warn); }
.bar i.f-bad{ background:var(--bad); }
.float-chip{ position:absolute; left:0; bottom:0; background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-chip); padding:10px 14px; display:flex; align-items:center; gap:9px; font-size:13.5px; font-weight:700; color:var(--navy); }
.float-chip small{ display:block; font-size:11px; font-weight:400; color:var(--mut); }

/* ---------- doors (testing ways in) ---------- */
.doors{ display:grid; grid-template-columns:1fr 1fr; gap:var(--gap); }
.door{ display:flex; flex-direction:column; }
.door .tag{ align-self:flex-start; font-size:12px; font-weight:700; color:var(--paper); background:var(--teal); border-radius:var(--r-pill); padding:3px 12px; }
.door.school .tag{ background:var(--navy); }
.door h3{ font-size:var(--fs-h3); color:var(--navy); margin:12px 0 4px; }
.door h3 small{ font-size:11.5px; color:var(--mut); font-weight:400; letter-spacing:.8px; text-transform:uppercase; margin-left:6px; }
.door .who{ font-size:14px; color:var(--mut); margin-bottom:12px; }
.door ul{ list-style:none; margin-bottom:18px; }
.door li{ font-size:var(--fs-body); line-height:1.65; padding:7px 0 7px 24px; position:relative; border-bottom:1px dashed var(--line); }
.door li:last-child{ border-bottom:none; }
.door li::before{ content:""; position:absolute; left:2px; top:14px; width:9px; height:9px; border-radius:50%; background:var(--yellow); }
.door .btn{ margin-top:auto; }

/* ---------- what you get (homepage) ----------
   Lead visual = the REAL report long-image (loyal to what parents receive),
   shown in a phone-width frame, cropped with a fade — the full image is one
   tap away. Share cards sit smaller beside it: optional, clearly secondary. */
.get-grid{ display:grid; grid-template-columns:.92fr 1.08fr; gap:28px; align-items:start; }
.get-report{ margin:0; }
.phone-frame{ position:relative; max-width:350px; margin:0 auto; height:600px; overflow:hidden; background:var(--paper); border:10px solid var(--char-2); border-radius:34px; box-shadow:var(--sh-mock); }
.phone-frame img{ display:block; width:100%; height:auto; }
.frame-fade{ position:absolute; left:0; right:0; bottom:0; height:120px; background:linear-gradient(180deg, rgba(var(--white-rgb),0) 0%, var(--paper) 88%); pointer-events:none; }
.frame-chip{ position:absolute; left:50%; transform:translateX(-50%); bottom:16px; white-space:nowrap; font-size:12px; font-weight:700; color:var(--paper); background:var(--navy); border-radius:var(--r-pill); padding:5px 14px; box-shadow:var(--sh-chip); }
.get-report figcaption{ max-width:350px; margin:14px auto 0; font-size:13.5px; line-height:1.7; color:var(--mut); }
.get-report figcaption a{ font-weight:700; color:var(--navy); white-space:nowrap; }
.get-side{ display:grid; gap:18px; }
.get-points h3{ font-size:var(--fs-h3); color:var(--navy); }
.get-points h3 small{ font-size:11.5px; color:var(--mut); font-weight:400; letter-spacing:.8px; text-transform:uppercase; margin-left:6px; }
.get-points ul{ list-style:none; margin-top:8px; }
.get-points li{ font-size:var(--fs-body); line-height:1.65; padding:7px 0 7px 24px; position:relative; border-bottom:1px dashed var(--line); }
.get-points li:last-child{ border-bottom:none; }
.get-points li::before{ content:""; position:absolute; left:2px; top:14px; width:9px; height:9px; border-radius:50%; background:var(--yellow); }
.get-share h3{ font-size:var(--fs-h3); color:var(--navy); }
.get-share h3 small{ font-size:11.5px; color:var(--mut); font-weight:400; letter-spacing:.8px; text-transform:uppercase; margin-left:6px; }
.get-share p{ font-size:14px; line-height:1.7; color:var(--mut); margin-top:6px; }
.share-cards{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:14px; }
.share-cards figure{ margin:0; }
.share-cards img{ display:block; width:100%; height:auto; border-radius:var(--r-lg); box-shadow:var(--sh-card); }
.share-cards figcaption{ text-align:center; font-size:13.5px; font-weight:700; color:var(--navy); margin-top:8px; }
.share-cards figcaption small{ display:block; font-size:11px; font-weight:400; color:var(--mut); letter-spacing:.6px; text-transform:uppercase; margin-top:1px; }

/* ---------- services cards ---------- */
.svcs{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); }
.svc{ display:flex; flex-direction:column; }
.svc .ic{ width:46px; height:46px; border-radius:var(--r-lg); background:var(--trust-bg); display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:800; color:var(--navy); letter-spacing:.5px; }
.svc .ic.big{ font-size:22px; }
.svc h3{ font-size:17px; color:var(--navy); margin:13px 0 2px; line-height:1.35; }
.svc h3 small{ display:block; font-size:11px; color:var(--mut); font-weight:400; letter-spacing:.6px; text-transform:uppercase; margin-top:2px; }
.svc .ages{ font-size:var(--fs-small); font-weight:700; color:var(--teal); margin-bottom:8px; }
.svc p{ font-size:14px; line-height:1.75; color:var(--ink); margin-bottom:14px; }
.svc .more{ margin-top:auto; font-size:14px; font-weight:700; color:var(--navy); }
.svc .more:hover{ color:var(--teal); }

/* ---------- about band + proof facts ---------- */
.about-band{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-xl); padding:24px; box-shadow:var(--sh-card); display:grid; grid-template-columns:1.25fr .75fr; gap:26px; }
.about-band h3{ font-size:18px; color:var(--navy); margin-bottom:10px; }
.about-band p{ font-size:var(--fs-body); line-height:1.85; }
.about-band .comm{ margin-top:12px; font-size:13px; color:var(--mut); line-height:1.7; border-top:1px dashed var(--line); padding-top:12px; }
.proof{ display:grid; gap:10px; align-content:start; }
.proof div{ background:var(--bg); border-radius:var(--r-md); padding:11px 14px; }
.proof b{ display:block; font-size:16px; color:var(--navy); }
.proof span{ font-size:12px; color:var(--mut); }
.proof-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.proof-row div{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-md); padding:14px; box-shadow:var(--sh-card); }
.proof-row b{ display:block; font-size:17px; color:var(--navy); }
.proof-row span{ font-size:12px; color:var(--mut); line-height:1.5; display:block; margin-top:2px; }

/* ---------- steps (how schools engage) ---------- */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); }
.step{ position:relative; }
.step .n{ width:34px; height:34px; border-radius:50%; background:var(--navy); color:var(--paper); font-weight:800; font-size:16px; display:flex; align-items:center; justify-content:center; border:3px solid var(--yellow); }
.step h3{ font-size:16px; color:var(--navy); margin:12px 0 6px; }
.step h3 small{ font-size:11px; color:var(--mut); font-weight:400; letter-spacing:.6px; text-transform:uppercase; margin-left:5px; }
.step p{ font-size:14px; line-height:1.75; color:var(--ink); }

/* ---------- partners strip ---------- */
.partners{ text-align:center; padding:26px 20px; }
.partners .p-head{ font-size:13px; font-weight:700; color:var(--mut); letter-spacing:2.5px; text-transform:uppercase; }
.partners .p-head small{ display:block; font-size:11px; letter-spacing:1.2px; margin-top:3px; font-weight:400; }
.partners .p-names{ margin-top:16px; display:flex; justify-content:center; align-items:baseline; gap:14px 34px; flex-wrap:wrap; }
.partners .p-name{ font-size:17px; font-weight:800; color:var(--navy); line-height:1.4; }
.partners .p-name small{ display:block; font-size:11.5px; font-weight:400; color:var(--mut); letter-spacing:.4px; }
.partners .p-dot{ width:7px; height:7px; border-radius:50%; background:var(--yellow); align-self:center; flex:none; }

/* ---------- contact band + footer ---------- */
.contact-band{ margin-top:44px; background:linear-gradient(120deg, var(--navy), var(--navy-2)); border-radius:var(--r-hero); color:var(--paper); padding:30px 26px; display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.contact-band h2{ font-size:var(--fs-h2); }
.contact-band p{ font-size:14px; opacity:.88; margin-top:6px; line-height:1.7; }
.contact-band .acts{ margin-left:auto; display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.contact-band .wx{ font-size:14px; background:rgba(var(--white-rgb),.12); border:1px solid rgba(var(--white-rgb),.35); border-radius:var(--r-md); padding:11px 16px; }
footer.site{ text-align:center; color:var(--mut); font-size:var(--fs-small); padding:30px 16px 40px; line-height:1.9; }
footer.site a{ color:var(--mut); }

/* ---------- interior pages ---------- */
.page-hero{ background:linear-gradient(180deg, var(--trust-bg) 0%, var(--bg) 92%); padding:36px 0 6px; }
.page-hero h1{ font-size:var(--fs-h1-page); line-height:1.25; color:var(--navy); font-weight:800; margin:14px 0 10px; }
.page-hero h1 small{ display:block; font-size:14px; font-weight:400; color:var(--mut); letter-spacing:1.4px; text-transform:uppercase; margin-top:6px; }
.page-hero .support{ font-size:16px; line-height:1.75; max-width:44em; }
.page-hero .support b{ color:var(--navy); }

.facts{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); }
.fact h3{ font-size:15px; color:var(--teal); letter-spacing:.4px; margin-bottom:6px; }
.fact p{ font-size:var(--fs-body); line-height:1.75; }

.flow{ list-style:none; counter-reset:flow; display:grid; gap:12px; }
.flow li{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-xl); box-shadow:var(--sh-card); padding:16px 18px 16px 64px; position:relative; }
.flow li::before{ counter-increment:flow; content:counter(flow); position:absolute; left:16px; top:16px; width:32px; height:32px; border-radius:50%; background:var(--navy); color:var(--paper); font-weight:800; font-size:15px; display:flex; align-items:center; justify-content:center; border:3px solid var(--yellow); }
.flow b{ color:var(--navy); font-size:15.5px; }
.flow b small{ font-size:11px; color:var(--mut); font-weight:400; letter-spacing:.6px; text-transform:uppercase; margin-left:6px; }
.flow p{ font-size:14px; line-height:1.7; margin-top:3px; }
.chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.chips span{ font-size:13px; font-weight:600; color:var(--navy); background:var(--trust-bg); border:1px solid var(--trust-line); border-radius:var(--r-pill); padding:5px 13px; }

.domains{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); }
.domain h3{ font-size:16px; color:var(--navy); margin-bottom:2px; }
.domain h3 small{ display:block; font-size:11px; color:var(--mut); font-weight:400; letter-spacing:.6px; text-transform:uppercase; margin-top:2px; }
.domain .d-tests{ font-size:12.5px; font-weight:700; color:var(--teal); margin:6px 0 8px; }
.domain p{ font-size:14px; line-height:1.75; }

.story p{ font-size:15.5px; line-height:1.9; margin-bottom:14px; max-width:48em; }
.story p b{ color:var(--navy); }
.story h3{ font-size:18px; color:var(--navy); margin:22px 0 8px; }

.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:var(--gap); }
.contact-grid h3{ font-size:17px; color:var(--navy); margin-bottom:8px; }
.contact-grid p{ font-size:14.5px; line-height:1.75; }
.contact-grid .big-link{ display:inline-block; font-size:17px; font-weight:800; color:var(--navy); margin-top:8px; }
.contact-grid ul{ list-style:none; margin-top:6px; }
.contact-grid li{ font-size:14.5px; line-height:1.65; padding:6px 0 6px 24px; position:relative; border-bottom:1px dashed var(--line); }
.contact-grid li:last-child{ border-bottom:none; }
.contact-grid li::before{ content:""; position:absolute; left:2px; top:13px; width:9px; height:9px; border-radius:50%; background:var(--yellow); }

.cta-row{ display:flex; gap:12px; flex-wrap:wrap; margin-top:18px; }

/* parent report pickup (school group testing) */
.pickup{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  background:var(--paper); border:1px solid var(--line); border-left:5px solid var(--gold-3);
  border-radius:var(--r-xl); padding:18px 20px; box-shadow:var(--sh-card); }
.pickup-txt h3{ margin:0 0 4px; font-size:19px; color:var(--navy); }
.pickup-txt h3 small{ font-size:12px; color:var(--mut); font-weight:600; margin-left:8px; letter-spacing:.06em; }
.pickup-txt p{ margin:0; color:var(--mut); font-size:14.5px; }

/* ---------- responsive ---------- */
@media (max-width:860px){
  .hero-grid{ grid-template-columns:1fr; gap:8px; }
  .hero h1{ font-size:32px; }
  .page-hero h1{ font-size:28px; }
  .doors, .svcs, .steps, .facts, .domains, .contact-grid{ grid-template-columns:1fr; }
  .get-grid{ grid-template-columns:1fr; gap:22px; }
  .phone-frame{ height:520px; }
  .proof-row{ grid-template-columns:1fr 1fr; }
  .about-band{ grid-template-columns:1fr; }
  .site-head .wrap{ flex-wrap:wrap; gap:12px; }
  .logo{ font-size:18px; padding:9px 13px; }
  .brand{ order:1; }
  .nav-toggle{ display:flex; order:2; }
  nav.main{ order:3; }
  nav.main{ display:none; margin-left:0; }
  .site-head.nav-open nav.main{ display:flex; flex-direction:column; align-items:stretch; flex-wrap:nowrap; gap:2px; width:100%; margin-top:4px; padding-top:8px; border-top:1px solid var(--line); max-height:calc(100vh - 90px); overflow-y:auto; }
  .site-head.nav-open nav.main a.nl{ padding:11px 10px; }
  .site-head.nav-open .has-sub{ flex-direction:column; align-items:stretch; }
  .site-head.nav-open .has-sub .sub{ display:block; position:static; min-width:0; background:transparent; border:none; border-radius:0; box-shadow:none; padding:0 0 6px 16px; }
  .site-head.nav-open .has-sub .sub a{ padding:8px 10px; }
  .trust .tnum{ font-size:30px; }
  .contact-band .acts{ margin-left:0; }
  .mock-head img{ height:44px; }
  .mock-head .mt{ font-size:15.5px; }
  .mock-head{ padding:13px 14px; gap:10px; }
  .partners .p-name{ font-size:15.5px; }
  .partners .p-names{ flex-direction:column; align-items:center; gap:14px; }
  .partners .p-dot{ display:none; }
}
