/* Partner pages — schools.html, community.html, academies.html, brands.html.
   One stylesheet for all four so they cannot drift apart. Tokens match index.html / about.html.
   The register-interest form's FIELD styles come from plans.css (.inq …, the same ones the home
   page's dialogs used); this file adds only the inline form card and the radio pills.
   Vertical padding on a .wrap element is padding-block, never the shorthand — the shorthand zeroes
   the 20px side gutter and text runs edge to edge on a phone. */

:root {
  --bg-deep:#050B14; --surface:#121A15; --surface-2:#18231C; --line:#2A3A2F;
  --green:#4CAF7D; --green-br:#3DDC97; --teal:#2EC4B6; --rose:#E96AA0; --red:#E53935; --gold:#FFB300;
  --amber:#F2B64C;
  --text:#EAF0EA; --muted:#93A399; --muted-2:#6f7f74; --radius:18px; --maxw:1080px;
  --mono:'JetBrains Mono',ui-monospace,monospace;
}
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { font-family:'Inter',system-ui,sans-serif; background:var(--bg-deep); color:var(--text);
  line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden; position:relative; }
a { color:var(--green-br); text-decoration:none; } a:hover { text-decoration:underline; }
[id] { scroll-margin-top:84px; }

/* Stadium backdrop in shallow bands, so body copy always sits on solid --bg-deep (same as about.html). */
.stadium-bg { position:absolute; inset:0; z-index:-2; background:var(--bg-deep); overflow:hidden; }
.stadium-bg img { position:absolute; left:0; width:100%; height:auto; display:block; }
.stadium-bg .sb-top { top:0; height:560px; object-fit:cover; object-position:center top; }
.stadium-bg .sb-bottom { bottom:0; height:460px; object-fit:cover; object-position:center top; }
.stadium-bg::before { content:""; position:absolute; left:0; right:0; top:0; height:560px;
  background:linear-gradient(to bottom, rgba(5,11,20,.35) 0%, rgba(5,11,20,.75) 55%, var(--bg-deep) 100%); }
.stadium-bg::after { content:""; position:absolute; left:0; right:0; bottom:0; height:460px;
  background:linear-gradient(to top, rgba(5,11,20,.25) 0%, rgba(5,11,20,.7) 45%, var(--bg-deep) 80%); }
.bg-wash { position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(900px 600px at 82% -4%, rgba(46,196,182,.10), transparent 60%),
    radial-gradient(800px 700px at 8% 102%, rgba(76,175,125,.10), transparent 60%); }

/* ───────── Nav ───────── */
header.nav { position:sticky; top:0; z-index:60; backdrop-filter:blur(14px);
  background:rgba(5,11,20,.78); border-bottom:1px solid rgba(255,255,255,.06); }
.nav-in { max-width:var(--maxw); margin:0 auto; padding:12px 20px; display:flex; align-items:center; gap:18px; }
.brand { display:flex; align-items:center; gap:10px; }
.brand img { height:30px; width:30px; border-radius:8px; }
.nav-links { display:flex; gap:20px; margin-left:8px; }
.nav-links a { color:var(--muted); font-size:14px; font-weight:500; }
.nav-links a:hover, .nav-links a[aria-current] { color:var(--text); text-decoration:none; }
.nav-spacer { flex:1; }
.nav-cta { font-size:13px; font-weight:600; padding:8px 14px; border-radius:999px; background:var(--green); color:#06130c; white-space:nowrap; }
.nav-cta:hover { background:var(--green-br); text-decoration:none; }
@media (max-width:760px){ .nav-links { display:none; } }

/* Audience switcher — the four partner pages, reachable on a phone where the nav links are hidden. */
.aud { border-bottom:1px solid rgba(255,255,255,.06); background:rgba(5,11,20,.55); }
.aud-in { max-width:var(--maxw); margin:0 auto; padding:10px 20px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.aud-in .lbl { font-family:var(--mono); font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:var(--muted-2); margin-right:4px; }
.aud a { font-size:13px; font-weight:600; padding:6px 12px; border-radius:999px; color:var(--muted);
  border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.03); }
.aud a:hover { color:var(--text); text-decoration:none; border-color:rgba(61,220,151,.45); }
.aud a[aria-current] { color:#052017; background:linear-gradient(135deg,var(--green-br),var(--teal)); border-color:transparent; }

/* ───────── Layout ───────── */
.wrap { max-width:var(--maxw); margin:0 auto; padding-inline:20px; }
.narrow { max-width:760px; margin-inline:auto; }
.blk { padding-block:56px; }
.blk + .blk { border-top:1px solid rgba(255,255,255,.05); }
.blk-head { text-align:center; max-width:720px; margin:0 auto 34px; }
.eyebrow { font-family:var(--mono); font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--teal); margin-bottom:12px; }
h1, h2, h3 { font-family:'Archivo',sans-serif; }
h1, h2 { text-wrap:balance; }
.blk h2 { font-weight:800; font-size:clamp(25px,4vw,36px); letter-spacing:-.8px; line-height:1.15; margin-bottom:12px; }
.blk-head p { color:var(--muted); font-size:17px; }
.prose p { color:#cdd8cf; font-size:17px; margin:0 0 14px; }
.prose strong { color:var(--text); }
.grad { background:linear-gradient(90deg,var(--green-br),var(--teal)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

/* ───────── Hero ───────── */
.hero { padding-block:64px 44px; text-align:center; }
.hero h1 { font-weight:900; font-size:clamp(32px,6.2vw,56px); line-height:1.05; letter-spacing:-1.4px; margin:0 auto 18px; max-width:880px; }
.hero .lede { font-size:clamp(16px,2.3vw,19.5px); color:#c3cfc6; max-width:680px; margin:0 auto; }
.hero-cta { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:28px; }
.chips { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:26px; list-style:none; }
.chips li { font-size:13.5px; font-weight:600; padding:7px 14px; border-radius:999px; color:var(--text);
  background:rgba(61,220,151,.08); border:1px solid rgba(61,220,151,.28); }
.chips li::before { content:'✓'; color:var(--green-br); font-weight:800; margin-right:7px; }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; font-weight:600; font-size:15px;
  padding:13px 22px; border-radius:999px; border:none; cursor:pointer; font-family:inherit; white-space:nowrap;
  transition:transform .15s ease, box-shadow .2s ease, background .2s; }
.btn-primary { background:linear-gradient(135deg,var(--green-br),var(--teal)); color:#052017; box-shadow:0 8px 26px rgba(61,220,151,.28); }
.btn-primary:hover { text-decoration:none; transform:translateY(-2px); }
.btn-ghost { background:rgba(255,255,255,.05); color:var(--text); border:1px solid rgba(255,255,255,.14); }
.btn-ghost:hover { background:rgba(255,255,255,.10); text-decoration:none; }
@media (max-width:420px){ .hero-cta .btn { width:100%; } }

/* ───────── Cards ───────── */
.cards { display:grid; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr)); gap:18px; }
/* Pairs stay pairs (four cards read 2 x 2, never 3 + 1), then one column on a phone. */
.cards.c2 { grid-template-columns:repeat(2, minmax(0, 1fr)); }
@media (max-width:720px){ .cards.c2 { grid-template-columns:1fr; } }
/* Eight cards read as 4 x 2 (never 3 + 3 + 2), then 2 x 4, then one column. */
.cards.c4 { grid-template-columns:repeat(4, 1fr); }
@media (max-width:980px){ .cards.c4 { grid-template-columns:repeat(2, 1fr); } }
@media (max-width:540px){ .cards.c4 { grid-template-columns:1fr; } }
.pc { background:linear-gradient(180deg, rgba(24,35,28,.85), rgba(12,19,15,.85)); border:1px solid rgba(255,255,255,.07);
  border-radius:var(--radius); padding:24px 22px; }
.pc .ico { width:44px; height:44px; border-radius:12px; display:grid; place-items:center; margin-bottom:14px; background:rgba(61,220,151,.12); }
.pc .ico svg { width:23px; height:23px; stroke:var(--green-br); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.pc h3 { font-size:18px; font-weight:800; letter-spacing:-.2px; margin-bottom:8px; line-height:1.3; }
.pc p { color:var(--muted); font-size:15px; }
.pc p + p { margin-top:10px; }
.pc ul.feat { margin-top:12px; }

ul.feat { list-style:none; display:grid; gap:9px; }
ul.feat li { position:relative; padding-left:24px; font-size:15px; color:#cdd8d0; line-height:1.5; }
ul.feat li::before { content:'✓'; position:absolute; left:0; top:0; color:var(--green-br); font-weight:800; }
ul.feat.no li::before { content:'–'; color:var(--amber); }
ul.feat.x li::before { content:'✕'; color:var(--rose); }

/* Numbered steps */
.steps { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:18px; counter-reset:step; }
.steps .pc { position:relative; padding-top:26px; }
.steps .pc::before { counter-increment:step; content:counter(step, decimal-leading-zero);
  font-family:var(--mono); font-size:13px; font-weight:600; color:var(--teal); display:block; margin-bottom:10px; letter-spacing:1px; }
.steps .pc .when { font-family:var(--mono); font-size:12px; color:var(--muted-2); letter-spacing:.8px; text-transform:uppercase; margin-bottom:6px; }

/* Highlighted statement */
.callout { border-radius:22px; padding:28px 26px; margin-top:26px;
  background:linear-gradient(135deg, rgba(46,196,182,.12), rgba(76,175,125,.06)); border:1px solid rgba(61,220,151,.28); }
.callout p { font-size:clamp(17px,2.2vw,20px); line-height:1.55; color:var(--text); }
.callout p + p { margin-top:10px; }
.callout .fine, .fine { font-size:13px; color:var(--muted); line-height:1.55; }
.callout .fine { margin-top:14px; }
.note { text-align:center; color:var(--muted); font-size:14.5px; margin-top:22px; }
.note a { color:var(--green-br); }

/* Law / compliance panel — always carries its "not legal advice" line */
.legal { border:1px solid var(--line); border-radius:16px; background:var(--surface); padding:20px 22px; margin-top:18px; }
.legal h3 { font-size:16px; font-weight:800; margin-bottom:8px; }
.legal p { color:#c4d0c7; font-size:15px; }
.legal .fine { margin-top:10px; }

/* Working today vs not built */
.split { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:760px){ .split { grid-template-columns:1fr; } }
.split .pc.ok { border-color:rgba(61,220,151,.35); }
.split .pc.not { border-color:rgba(242,182,76,.35); border-style:dashed; }
.split .pc.not h3 { color:var(--amber); }

/* Two-column mapping table; stacks on a phone (each cell labels itself) */
.map { width:100%; border-collapse:separate; border-spacing:0; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:var(--surface); }
.map th, .map td { text-align:left; padding:14px 18px; vertical-align:top; font-size:15px; }
.map thead th { font-family:var(--mono); font-size:11.5px; letter-spacing:1.4px; text-transform:uppercase; color:var(--muted-2); background:rgba(255,255,255,.03); font-weight:600; }
.map tbody tr + tr td, .map tbody tr + tr th { border-top:1px solid var(--line); }
.map tbody th { font-family:'Archivo',sans-serif; font-weight:800; font-size:16px; color:var(--text); width:30%; }
.map td { color:#c4d0c7; }
@media (max-width:620px){
  .map thead { display:none; }
  .map, .map tbody, .map tr, .map th, .map td { display:block; width:100%; }
  .map tbody th { padding-bottom:2px; }
  .map td { padding-top:0; }
}

/* ───────── Register interest ───────── */
.join-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:28px; align-items:start; }
@media (max-width:900px){ .join-grid { grid-template-columns:1fr; } }
.join-side h2 { font-weight:800; font-size:clamp(25px,4vw,36px); letter-spacing:-.8px; line-height:1.15; margin-bottom:12px; }
.join-side > p { color:#c3cfc6; font-size:16.5px; margin-bottom:18px; }
.join-side ol { list-style:none; counter-reset:j; display:grid; gap:12px; margin-top:6px; }
.join-side ol li { position:relative; padding-left:40px; color:#cdd8cf; font-size:15px; }
.join-side ol li::before { counter-increment:j; content:counter(j); position:absolute; left:0; top:-1px;
  width:27px; height:27px; border-radius:50%; display:grid; place-items:center; font-weight:800; font-size:13.5px;
  color:#052017; background:linear-gradient(135deg,var(--green-br),var(--teal)); }
.join-side ol li b { color:var(--text); }
.join-side .fine { margin-top:18px; }

.inq-card { position:relative; border:1px solid rgba(61,220,151,.3); border-radius:22px; background:#0d1611;
  padding:26px 24px 22px; box-shadow:0 30px 80px rgba(0,0,0,.45); }
@media (max-width:520px){ .inq-card { padding:22px 16px 18px; } }
.inq-card h3 { font-size:20px; font-weight:800; letter-spacing:-.3px; margin-bottom:4px; }
.inq-card .inq-sub { color:var(--muted); font-size:14px; margin-bottom:18px; }
.inq .f > .lbl { display:block; font-size:13px; font-weight:600; color:var(--muted); margin-bottom:6px; }
.inq .opt { font-weight:400; }
.inq .chk.hot { border-color:rgba(61,220,151,.45); background:rgba(61,220,151,.07); }
/* Radio pills: the input stays in the tab order (visually hidden), the span draws the pill. */
.pills { display:flex; flex-wrap:wrap; gap:8px; }
.pills label { position:relative; cursor:pointer; }
.pills input { position:absolute; opacity:0; width:1px; height:1px; }
.pills span { display:inline-block; padding:9px 15px; border-radius:999px; font-size:14px; font-weight:600;
  border:1.5px solid rgba(255,255,255,.14); background:rgba(255,255,255,.04); color:var(--muted); }
.pills label:hover span { border-color:rgba(61,220,151,.45); color:var(--text); }
.pills input:checked + span { border-color:var(--green-br); background:rgba(61,220,151,.14); color:var(--text); }
.pills input:focus-visible + span { outline:2px solid var(--green-br); outline-offset:2px; }
.inq-actions .btn { min-width:200px; }
@media (max-width:420px){ .inq-actions .btn { width:100%; } }

/* ───────── Cross-links to the other audiences ───────── */
.others { display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:14px; }
.others a { display:block; padding:18px 18px 16px; border-radius:16px; border:1px solid rgba(255,255,255,.08); background:rgba(18,26,21,.7); color:var(--text); }
.others a:hover { text-decoration:none; border-color:rgba(61,220,151,.45); }
.others b { display:block; font-family:'Archivo',sans-serif; font-weight:800; font-size:16px; margin-bottom:4px; }
.others span { color:var(--muted); font-size:14px; }
.others b::after { content:' →'; color:var(--green-br); }

/* ───────── Footer ───────── */
footer.site { border-top:1px solid var(--line); padding:40px 0 60px; text-align:center; color:var(--muted-2); font-size:13px; }
footer.site .brand { justify-content:center; margin-bottom:14px; }
footer.site p { margin-top:6px; }
footer.site a { color:var(--muted); }

@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } .btn { transition:none; } }
