/* ==========================================================================
   Indigo Fostering — design system v2
   White canvas, black text, editorial. The animated nebula is the only colour,
   and it lives only where it earns attention: water buttons, accent bars, the
   heart. Cormorant display + Inter. Sharp, minimal, deliberate.
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Inter:wght@400;500;600&display=swap');

:root{
  --bg:#ffffff;
  --bg-alt:#F7F5FC;
  --ink:#22143F;          /* deep indigo, never black */
  --ink-2:#5C5470;
  --ink-3:#8E86A2;
  --line:#ECE8F4;
  --line-2:#DAD4E8;
  --deep:#1B1140;         /* dark sections / footer / utility bar */
  --black:#1B1140;        /* legacy alias → deep indigo */

  --brand:#7A1FFF;          /* small accents / focus only */
  --heart:#7A1FFF;
  --ofsted-navy:#170C59;

  --r-sm:2px;
  --r:3px;
  --r-lg:4px;

  --maxw:1180px;
  --gut:32px;
  --t:.2s cubic-bezier(.4,0,.2,1);

  /* legacy aliases — keep older inline styles from breaking after the revamp */
  --indigo:#140a22;
  --indigo-700:#2a1860;
  --indigo-300:#C9B6FF;
  --indigo-100:#C9B6FF;
  --indigo-50:#F3EFFD;
  --teal:#0C7A72; --teal-700:#08584F; --aqua:#14B3A3;
  --midnight:#1B1140; --midnight-700:#241654; --midnight-500:#3A2E6E;
  --paper:#F7F7F8; --cream:#F7F7F8;
  --line-dark:rgba(255,255,255,.14);
  --r-xs:2px;
}

/* inner-page hero eyebrows used .on-dark when the hero was dark; the hero is
   now light, so render them in the light style (but keep .dark sections white) */
.hero .eyebrow.on-dark{color:var(--ink-3)}
.hero .eyebrow.on-dark::before{background:var(--brand)}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{overflow-x:clip}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg);
  line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  -webkit-user-select:none;-moz-user-select:none;user-select:none}
input,textarea,select{-webkit-user-select:text;user-select:text}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--ink);color:#fff}

/* ---------- typography ---------- */
h1,h2{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;line-height:1.02;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}
h1{font-size:clamp(3rem,6.5vw,5.4rem)}
h2{font-size:clamp(2.2rem,4.4vw,3.5rem)}
h3{font-family:'Inter';font-weight:600;font-size:1.2rem;letter-spacing:-.01em;color:var(--ink);line-height:1.25;text-wrap:balance}
h4{font-family:'Inter';font-weight:600;font-size:1rem;letter-spacing:-.01em;color:var(--ink)}
p{color:var(--ink-2)}
.lede{font-size:1.2rem;line-height:1.6;color:var(--ink-2)}
strong{font-weight:600;color:var(--ink)}

.eyebrow{font-family:'Inter';font-weight:600;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-3);display:inline-flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--brand)}
.eyebrow.on-dark{color:rgba(255,255,255,.65)}
.eyebrow.on-dark::before{background:#fff}
.hero-eyebrow{white-space:nowrap;display:inline-block}
.hero-eyebrow::before{display:none}
.hero-eyebrow .sep{margin:0 .15em}
@media(max-width:640px){.hero-eyebrow{font-size:9px;letter-spacing:.1em}}
@media(max-width:430px){.hero-eyebrow{font-size:7.5px;letter-spacing:.06em}}

/* ---------- layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.wrap-narrow{max-width:820px;margin:0 auto;padding:0 var(--gut)}
section{padding:50px 0}
.tint-lilac{background:#F1ECFA}
section[id]{scroll-margin-top:92px}

/* ---------- scroll reveal + parallax (single-page motion) ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .9s cubic-bezier(.22,.7,.24,1);will-change:opacity,transform}
.reveal.in{opacity:1;transform:none}
.stagger > *{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .7s cubic-bezier(.22,.7,.24,1)}
.reveal.in .stagger > *{opacity:1;transform:none}
.reveal.in .stagger > *:nth-child(1){transition-delay:.02s}
.reveal.in .stagger > *:nth-child(2){transition-delay:.09s}
.reveal.in .stagger > *:nth-child(3){transition-delay:.16s}
.reveal.in .stagger > *:nth-child(4){transition-delay:.23s}
.reveal.in .stagger > *:nth-child(5){transition-delay:.30s}
.reveal.in .stagger > *:nth-child(6){transition-delay:.37s}
.reveal.in .stagger > *:nth-child(7){transition-delay:.44s}
.reveal.in .stagger > *:nth-child(8){transition-delay:.51s}
.reveal.in .stagger > *:nth-child(9){transition-delay:.58s}
[data-parallax]{will-change:transform}
.pxheart{position:absolute;z-index:0;pointer-events:none;aspect-ratio:24/22;
  -webkit-mask:var(--heart-mask) center/contain no-repeat;mask:var(--heart-mask) center/contain no-repeat}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal,.stagger > *{opacity:1!important;transform:none!important;transition:none!important}
  [data-parallax]{transform:none!important}
}
.section-tight{padding:56px 0}
.tint{background:var(--bg-alt)}
.dark{background:var(--black);color:#B8B8C0}
.dark h1,.dark h2,.dark h3,.dark h4{color:#fff}
.dark p{color:#A79EC2}
.dark .textlink{color:#fff}
.dark .textlink:hover{color:#C9B6FF}

.grid{display:grid;gap:1px;background:transparent}
.grid.gap{gap:20px}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.split-60{display:grid;grid-template-columns:1.25fr .75fr;gap:64px;align-items:center}

.sec-head{max-width:680px;margin-bottom:52px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head h2{margin:18px 0 0}
.sec-head p{margin-top:18px;font-size:1.12rem}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:'Inter';font-weight:500;font-size:15px;
  padding:14px 24px;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer;transition:var(--t);white-space:nowrap}
.btn svg{width:16px;height:16px}
.btn-lg{padding:17px 30px;font-size:16px}
.btn-arrow svg{transition:transform var(--t)}
.btn-arrow:hover svg{transform:translateX(3px)}

/* water button: nebula canvas behind a label */
.btn-water{position:relative;overflow:hidden;color:#fff;border:0;background:#140a22}
.btn-water canvas.gx-fill{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0}
.btn-water .gx-label{position:relative;z-index:1;display:inline-flex;align-items:center;gap:9px;color:#fff;
  text-shadow:0 1px 8px rgba(8,3,24,.55)}
.btn-water:hover{filter:brightness(1.08)}

.btn-dark{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn-dark:hover{background:#26262e}
.btn-line{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-line:hover{border-color:var(--ink)}
/* legacy aliases so any older markup still reads correctly on the light theme */
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn-ghost:hover{border-color:var(--ink)}
.dark .btn-ghost{color:#fff;border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.10)}
.dark .btn-ghost:hover{background:rgba(255,255,255,.18)}

.textlink{color:var(--ink);font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:var(--t);
  border-bottom:1px solid var(--line-2);padding-bottom:2px}
.textlink svg{width:15px;height:15px;transition:transform var(--t)}
.textlink:hover{border-color:var(--ink)}
.textlink:hover svg{transform:translateX(3px)}

/* ---------- nebula accent bar ---------- */
.nebula-bar{position:relative;overflow:hidden;height:4px;border-radius:2px}
.nebula-bar canvas.gx-fill{position:absolute;inset:0;width:100%;height:100%;display:block}

/* ---------- logo + heart ---------- */
.logo{position:relative;font-family:'Cormorant Garamond';font-weight:600;font-size:29px;letter-spacing:-.01em;color:var(--ink);display:inline-flex;align-items:flex-end;line-height:1}
.logo .heart{width:11px;height:10px;background:var(--heart);margin:0 1px 8px 3px;
  -webkit-mask:var(--heart-mask) center/contain no-repeat;mask:var(--heart-mask) center/contain no-repeat}
.logo.on-dark{color:#fff}
:root{--heart-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='M12 21.6C12 21.6 1.2 14.4 1.2 6.9 1.2 3.1 4.1 0.8 7.4 0.8 9.7 0.8 11.3 2.6 12 4.2 12.7 2.6 14.3 0.8 16.6 0.8 19.9 0.8 22.8 3.1 22.8 6.9 22.8 14.4 12 21.6 12 21.6Z' fill='black'/%3E%3C/svg%3E")}

/* wordmark logo masked with the live nebula */
.logo-mark{display:block;height:56px;aspect-ratio:790/301;position:relative;overflow:hidden;
  -webkit-mask:url('logo/indigo-wordmark.png?v6') left center/contain no-repeat;
  mask:url('logo/indigo-wordmark.png?v6') left center/contain no-repeat}
.logo-mark canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
footer.site .logo-mark{height:46px;background:#fff}
footer.site .logo-mark canvas{display:none}
/* water-filled wordmark heading (e.g. "Rated Good by Ofsted") */
.rated-mark{display:block;height:30px;aspect-ratio:1317/126;position:relative;overflow:hidden;
  -webkit-mask:url('logo/rated-good.png') left center/contain no-repeat;
  mask:url('logo/rated-good.png') left center/contain no-repeat}
.rated-mark canvas{position:absolute;inset:0;width:100%;height:100%;display:block}

/* ---------- top utility bar ---------- */
.utilbar{position:relative;overflow:hidden;background:var(--deep);color:#fff;font-size:13px}
.utilbar canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0}
.utilbar::after{content:"";position:absolute;inset:0;z-index:0;background:rgba(27,17,64,.20);pointer-events:none}
.utilbar .wrap{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;height:40px;white-space:nowrap;overflow:hidden}
.utilbar a{color:#fff;transition:var(--t)}
.utilbar a:hover{opacity:.72}
.utilbar .u-left{color:rgba(255,255,255,.92);overflow:hidden;text-overflow:ellipsis;min-width:0}
.utilbar .u-right{display:flex;gap:18px;align-items:center;color:#fff;flex:0 0 auto;white-space:nowrap}
.utilbar .u-right em{font-style:italic;color:#fff;opacity:.82;margin-left:-8px}
.utilbar .u-right .div{width:1px;height:13px;background:rgba(255,255,255,.32);flex:0 0 auto}
@media(max-width:760px){.utilbar .u-left{display:none}}
@media(max-width:600px){
  .utilbar{font-size:12.5px}
  .utilbar .wrap{height:44px;padding:0 14px}
  .utilbar .u-right{gap:16px;width:100%;justify-content:center}
  .utilbar .u-right em{margin-left:-4px;padding-right:1px}
  .utilbar .u-right a[href^="mailto:"]{display:none}
  .utilbar .u-right .div{display:none}
  .utilbar .u-right .div:last-of-type{display:block;height:15px}
}
@media(max-width:400px){
  .utilbar .u-right .u-transfer{display:none}
  .utilbar .u-right .div:last-of-type{display:none}
}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:78px}
.nav-links{display:flex;gap:24px;align-items:center;margin-left:24px}
.nav-links a{font-size:14px;font-weight:500;color:var(--ink);opacity:.7;transition:var(--t);position:relative;padding:4px 0;white-space:nowrap}
.nav-links a:hover,.nav-links a.active{opacity:1}
.nav-links a.active::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--brand)}
.nav-right{display:flex;align-items:center;gap:14px}
@media(max-width:1060px){.nav-links{display:none}}

/* ---------- hero ---------- */
.hero{background:var(--bg);position:relative}
.hero .wrap{padding:14px var(--gut) 12px}
.hero-inner{max-width:1040px;margin:0 auto;text-align:center;--h1f:clamp(2.4rem,5vw,4.1rem)}
.hero-head{display:flex;align-items:center;justify-content:center;gap:clamp(6px,1vw,18px);margin:10px 0 0}
.hero-head h1{margin:0;flex:0 0 auto;min-width:0}
.hero-heart{flex:0 0 auto;height:calc(var(--h1f) * 6.2);width:auto;aspect-ratio:24/22;
  margin-top:calc(var(--h1f) * -1.0);margin-bottom:calc(var(--h1f) * -1.0);
  margin-left:calc(var(--h1f) * -0.85);margin-right:calc(var(--h1f) * -0.85)}
@media(min-width:901px){
  .hero-heart{height:calc(var(--h1f) * 4.65);
    margin-top:calc(var(--h1f) * -0.75);margin-bottom:calc(var(--h1f) * -0.75);
    margin-left:calc(var(--h1f) * -1.12);margin-right:calc(var(--h1f) * -1.12)}
}
.hero h1{margin:0;font-size:var(--h1f);line-height:1.07}
.hero h1 em{font-style:italic;color:#4521A0}
.hero .lede{font-size:clamp(1.02rem,0.86rem + 0.7vw,1.2rem);max-width:720px;margin:14px auto 18px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.hero-meta{display:flex;gap:clamp(12px,2.4vw,30px);margin:22px auto 0;flex-wrap:nowrap;max-width:720px;justify-content:center}
.hero-meta .m{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center}
.hero-meta .m .n{font-family:'Cormorant Garamond';font-size:clamp(1.5rem,4.4vw,2.2rem);font-weight:500;color:var(--ink);line-height:1}
.hero-meta .m .l{font-size:clamp(11px,1.4vw,12.5px);color:var(--ink-3);margin-top:5px;white-space:nowrap}
.hero-meta .div{width:1px;background:var(--line)}
@media(max-width:560px){.hero-head{gap:18px}.hero-meta .m .l{white-space:normal}}

/* ---------- cards ---------- */
.card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:30px;transition:var(--t)}
.card:hover{border-color:var(--line-2)}
.card-pad-lg{padding:36px}
.card .ic{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);
  border:1px solid var(--line);color:var(--ink);margin-bottom:20px}
.card .ic svg{width:19px;height:19px}
.card h3{margin-bottom:10px}
.card h4{margin-bottom:8px}
.card p{font-size:.95rem}
.dark .card{background:#241654;border-color:#322568}
.dark .card .ic{border-color:#33333C;color:#fff}

.linkcard{display:flex;gap:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:26px 28px}
.linkcard .k{font-family:'Cormorant Garamond';font-size:1.4rem;color:var(--brand);font-weight:600;flex:0 0 auto;line-height:1}
.linkcard h4{margin-bottom:6px}
.linkcard p{font-size:.92rem}

/* ---------- stat band ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.stats .s{padding:34px 28px;border-right:1px solid var(--line)}
.stats .s:last-child{border-right:0}
.stats .n{font-family:'Cormorant Garamond';font-size:3rem;font-weight:500;color:var(--ink);line-height:1}
.stats .l{font-size:.9rem;color:var(--ink-2);margin-top:10px}
@media(max-width:760px){.stats{grid-template-columns:1fr 1fr}.stats .s:nth-child(2){border-right:0}.stats .s{border-bottom:1px solid var(--line)}}

/* ---------- timeline ---------- */
.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.timeline .step{background:var(--bg);padding:28px 26px}
.timeline .step .k{font-family:'Inter';font-size:12px;font-weight:600;color:var(--brand);letter-spacing:.06em;text-transform:uppercase}
.timeline .step h4{margin:14px 0 8px}
.timeline .step p{font-size:.9rem}
.dark .timeline{background:#322568;border-color:#322568}
.dark .timeline .step{background:#241654}
.dark .timeline .step h4{color:#fff}
.dark .timeline .step p{color:#A79EC2}
.dark .timeline .step .k{color:#C9B6FF}
@media(max-width:760px){.timeline{grid-template-columns:1fr 1fr}}

/* ---------- feature row ---------- */
.featrow{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:32px 0}
@media(max-width:820px){.featrow,.split,.split-60{grid-template-columns:1fr;gap:36px}}

/* ---------- checklist ---------- */
.checklist{list-style:none;display:flex;flex-direction:column;gap:15px;margin-top:22px}
.checklist li{display:flex;gap:13px;align-items:flex-start;font-size:.98rem;color:var(--ink-2)}
.checklist li svg{flex:0 0 18px;width:18px;height:18px;color:var(--brand);margin-top:3px}
.checklist li strong{display:block;color:var(--ink);font-weight:600;margin-bottom:1px}
.dark .checklist li{color:#A79EC2}
.dark .checklist li strong{color:#fff}
.dark .checklist li svg{color:#C9B6FF}

/* ---------- pills ---------- */
.pill{display:inline-flex;align-items:center;font-size:12.5px;font-weight:500;padding:7px 13px;border-radius:var(--r-sm);
  background:var(--bg-alt);color:var(--ink);border:1px solid var(--line)}
.pill-teal{background:var(--bg-alt);color:var(--ink);border:1px solid var(--line)}
.dark .pill,.dark .pill-teal{background:#241654;color:#C9C9D2;border-color:#2C2C35}
.tagrow{display:flex;flex-wrap:wrap;gap:9px}

/* ofsted credential strip — flat-left/round-right mark flush to the gutter */
.credstrip{background:var(--bg);padding:38px 0 0}
.credpanel{display:grid;grid-template-columns:minmax(0,1fr) auto clamp(150px,15vw,200px);align-items:stretch;
  border:1px solid var(--line);border-radius:28px;overflow:hidden;background:var(--bg);
  box-shadow:0 14px 34px rgba(28,10,72,.08), 0 3px 10px rgba(28,10,72,.05)}
.credpanel > div{display:flex;flex-direction:column;justify-content:center;padding:20px 34px}
.cp-main{gap:14px;min-width:0;border-right:1px solid var(--line)}
.cp-main .d{font-size:.98rem;color:var(--ink-2);line-height:1.6;max-width:520px}
.cp-meta{gap:18px;align-items:center;justify-content:center;text-align:center;min-width:230px;border-right:1px solid var(--line)}
.cp-meta .reg{display:flex;align-items:baseline;gap:9px}
.cp-meta .reg .n{font-weight:600;color:var(--ink);font-size:.95rem}
.cp-meta .reg .l{font-size:.82rem;color:var(--ink-3)}
.cp-badge{position:relative;align-self:stretch;padding:0;overflow:hidden;background:var(--ofsted-navy)}
.cp-badge .ofsted-mark{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
@media(max-width:1040px){
  .credpanel{grid-template-columns:1fr clamp(130px,22vw,180px)}
  .credpanel > div{padding:20px 24px}
  .cp-main{grid-column:1 / -1;border-right:0;border-bottom:1px solid var(--line)}
  .cp-meta{min-width:0;border-right:1px solid var(--line)}
}
@media(max-width:560px){
  .cp-meta{padding:18px 20px}
}

/* ---------- quote ---------- */
.quote{border-left:2px solid var(--brand);padding:4px 0 4px 28px}
.quote p{font-family:'Cormorant Garamond';font-weight:500;font-size:1.85rem;line-height:1.3;color:var(--ink);font-style:italic}
.dark .quote p{color:#fff}
.quote .cite{font-family:'Inter';font-style:normal;font-size:.9rem;color:var(--ink-3);margin-top:18px;font-weight:500}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:24px 0;display:flex;justify-content:space-between;gap:24px;align-items:center;
  font-weight:500;font-size:1.1rem;color:var(--ink);font-family:'Inter'}
.faq summary::-webkit-details-marker{display:none}
.faq summary .x{flex:0 0 auto;width:18px;height:18px;position:relative;transition:var(--t)}
.faq summary .x::before,.faq summary .x::after{content:"";position:absolute;background:var(--ink);transition:var(--t)}
.faq summary .x::before{left:0;right:0;top:8px;height:2px}
.faq summary .x::after{top:0;bottom:0;left:8px;width:2px}
.faq details[open] summary .x::after{transform:scaleY(0)}
.faq .a{padding:0 0 26px;color:var(--ink-2);max-width:760px}

/* ---------- doc cards ---------- */
.doccard{display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:28px;transition:var(--t)}
.doccard:hover{border-color:var(--ink)}
.doccard .badge{align-self:flex-start;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:18px}
.doccard h3{margin-bottom:9px}
.doccard p{font-size:.92rem;flex:1}
.doccard .textlink{margin-top:20px;align-self:flex-start}

/* ---------- CTA band (light, with a nebula accent bar) ---------- */
.ctaband{position:relative;background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;padding:64px 56px;text-align:center}
.ctaband .nebula-bar{position:absolute;top:0;left:0;right:0;height:4px;border-radius:0}
.ctaband h2{color:var(--ink)}
.ctaband p{color:var(--ink-2);max-width:540px;margin:18px auto 32px}
.ctaband .hero-cta{justify-content:center}

/* ---------- form ---------- */
.formcard{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:36px}
.field{margin-bottom:18px}
.field label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;padding:13px 14px;border:1px solid var(--line-2);border-radius:var(--r-sm);
  font-family:inherit;font-size:15px;color:var(--ink);background:var(--bg);transition:var(--t);outline:none}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(122,31,255,.12)}
.field textarea{resize:vertical;min-height:120px}
.field-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.field-2{grid-template-columns:1fr}}

/* ---------- footer ---------- */
footer.site{background:var(--black);color:#9A92B0;padding:64px 0 34px;margin-top:0;position:relative}
footer.site .foot-cred{display:grid;grid-template-columns:1fr auto;gap:clamp(28px,5vw,72px);align-items:center;padding:60px 0;border-bottom:1px solid rgba(255,255,255,.1)}
footer.site .foot-cred h3{font-family:'Cormorant Garamond';font-weight:500;font-size:clamp(1.7rem,3.4vw,2.4rem);color:#fff;margin:14px 0 12px;line-height:1.04}
footer.site .foot-cred p{font-size:14.5px;color:#9A92B0;max-width:480px;margin:0 0 16px;line-height:1.6}
footer.site .footlink-strong{display:inline-flex;align-items:center;gap:8px;color:#fff;font-weight:600;font-size:14px;transition:var(--t)}
footer.site .footlink-strong svg{width:16px;height:16px}
footer.site .footlink-strong:hover{opacity:.78}
footer.site .fc-badge{width:clamp(132px,15vw,170px);aspect-ratio:1/1;border-radius:26px;background:#fff;overflow:hidden;flex:0 0 auto;box-shadow:0 20px 44px rgba(0,0,0,.28)}
footer.site .fc-badge img{width:100%;height:100%;object-fit:contain;display:block}
footer.site .cols{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,0.85fr) minmax(0,0.85fr) minmax(0,2fr);gap:40px}
footer.site .foot-contact{align-self:start;display:flex;align-items:center;gap:22px;border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:26px 26px 24px}
footer.site .fc-text{flex:1 1 auto;min-width:0}
footer.site .foot-contact h5{margin-bottom:16px}
footer.site .foot-contact a{margin-bottom:3px;font-size:13.5px;white-space:normal;overflow-wrap:anywhere}
footer.site .foot-contact a:last-child{margin-bottom:0}
footer.site .foot-contact .fc-pre{color:rgba(255,255,255,.4);font-weight:600;margin-right:5px}
footer.site .fc-badge-img{flex:0 0 auto;width:98px;height:auto;display:block}
footer.site .logo{margin-bottom:16px}
footer.site h5{color:#fff;font-size:13px;font-weight:600;letter-spacing:.04em;margin-bottom:16px;font-family:'Inter'}
footer.site a{display:block;font-size:14px;color:#9A92B0;margin-bottom:11px;transition:var(--t)}
footer.site a:hover{color:#fff}
footer.site .about p{font-size:14px;color:#9A92B0;max-width:300px}
footer.site .contactline{font-size:14px;color:#C9C9D2;margin-top:14px}
footer.site .botrow{border-top:1px solid rgba(255,255,255,.1);margin-top:52px;padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-size:12.5px;color:#6A6A73}
footer.site .botrow a{display:inline;margin:0 14px 0 0}
@media(max-width:1180px){footer.site .cols{grid-template-columns:1.5fr 1fr 1fr;gap:32px}footer.site .foot-contact{grid-column:1 / -1}}
@media(max-width:680px){footer.site .cols{grid-template-columns:1fr 1fr}footer.site .about,footer.site .foot-contact{grid-column:1 / -1}}

/* ---------- galaxy heart ---------- */
.gx-heart{position:relative;display:block;aspect-ratio:24/22}
.gx-heart::after{content:"";position:absolute;left:26%;right:26%;bottom:3%;height:5%;border-radius:50%;z-index:0;
  background:radial-gradient(ellipse at center, rgba(40,12,90,.32), transparent 70%);filter:blur(9px);
  animation:gxShadow 7s ease-in-out infinite}
.gx-heart canvas{position:relative;z-index:1}
@keyframes gxShadow{0%,100%{transform:translateX(-9%) scaleX(.88);opacity:.78}50%{transform:translateX(9%) scaleX(1.12);opacity:1}}
.gx-heart canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.gx-gloss{display:none}
.gx-nofx{background:radial-gradient(120% 120% at 35% 20%,#7a1fff,#2c1660 60%,#120a30)}

/* ---------- utilities ---------- */
.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:32px}.mt-5{margin-top:42px}.mt-6{margin-top:56px}
.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}
.muted{color:var(--ink-3)}
.center{text-align:center}
.placeholder-note{font-size:12px;color:var(--ink-3);font-style:italic}
.grid.g-2,.grid.g-3,.grid.g-4{gap:20px}
@media(max-width:820px){.g-4{grid-template-columns:1fr 1fr}.g-3{grid-template-columns:1fr}section{padding:34px 0}}
@media(max-width:560px){.g-4,.g-2{grid-template-columns:1fr}.hero-meta .div{display:none}}

/* ---------- about: mission ---------- */
.abouttext-lead{font-size:1.16rem;line-height:1.75;color:var(--ink-2);max-width:780px;margin:0}
.abouttext-lead strong{color:var(--ink);font-weight:600}
.aboutgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start}
.abouttext p{font-size:1.06rem;line-height:1.75;color:var(--ink-2);margin:0 0 16px;max-width:640px}
.abouttext p strong{color:var(--ink);font-weight:600}
.ledger{position:relative;border:1px solid var(--line);border-radius:20px;background:var(--bg);overflow:hidden;
  box-shadow:0 16px 40px rgba(28,10,72,.07),0 3px 10px rgba(28,10,72,.04)}
.ledger-bar{height:6px;background:linear-gradient(90deg,#4A2DBF,#7A4FE0 45%,#3FA9C9)}
.ledger h4{margin:0;padding:18px 24px 14px;font-family:'Cormorant Garamond';font-weight:600;font-size:1.35rem;color:var(--ink);border-bottom:1px solid var(--line)}
.ledger dl{margin:0;padding:4px 24px 12px}
.ledger dl > div{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}
.ledger dl > div:last-child{border-bottom:0}
.ledger dt{font-size:.84rem;color:var(--ink-3)}
.ledger dd{margin:0;font-size:.92rem;font-weight:600;color:var(--ink);text-align:right}
@media(max-width:820px){.aboutgrid{grid-template-columns:1fr}}

/* ---------- bento (adapted from danemadore.com) ---------- */
.bento{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 14px 34px rgba(28,10,72,.08), 0 3px 10px rgba(28,10,72,.05)}
.bento > *{background:var(--bg);padding:22px 26px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.bento .c1{grid-column:span 1}.bento .c2{grid-column:span 2}.bento .c3{grid-column:span 3}.bento .c4{grid-column:span 4}.bento .c5{grid-column:span 5}
.bento .r2{grid-row:span 2}
.bento .b-mast .eyebrow{margin-bottom:12px}
.bento .b-mast h3{font-family:'Cormorant Garamond';font-weight:500;font-size:clamp(1.55rem,3vw,2.2rem);color:var(--ink);line-height:1.08;margin:0}
.bento .b-mast p{margin:12px 0 0;font-size:1rem;color:var(--ink-2);line-height:1.6;max-width:52ch}
.bento .tile .lbl{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.bento .tile .val{font-family:'Cormorant Garamond';font-weight:500;font-size:1.6rem;color:var(--ink);line-height:1;margin-top:9px}
.bento .tile .sub{font-size:.82rem;color:var(--ink-3);margin-top:7px;line-height:1.45}
.bento .b-fig{align-items:center;justify-content:center}
.bento.cols-4{grid-template-columns:repeat(4,1fr)}
.bento.cols-2{grid-template-columns:repeat(2,1fr)}
.bento.cols-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:980px){.bento.cols-3{grid-template-columns:repeat(2,1fr)}}
.bento .b-reason .k{font-family:'Cormorant Garamond';font-weight:600;font-size:1.3rem;color:var(--brand);line-height:1;margin-bottom:12px}
.why-split{display:grid;grid-template-columns:0.82fr 1.18fr;gap:clamp(28px,4vw,60px);align-items:center}
.why-head h2{margin-top:18px}
.why-cube .b-reason{padding:22px 26px;justify-content:center}
.why-cube .b-reason h4{margin-top:0}
.why-cube .b-reason p{margin-bottom:0}
@media(max-width:900px){
  .why-split{grid-template-columns:1fr;gap:26px}
  .bento.cols-2{grid-template-columns:1fr}
  .why-cube .b-reason{padding-top:18px;padding-bottom:18px}
}
.bento .b-reason{align-items:flex-start;justify-content:flex-start;gap:0;padding:30px 26px}
.bento .b-reason .ic{margin-bottom:16px}
.bento .b-reason h4{font-family:'Cormorant Garamond';font-weight:500;font-size:1.35rem;color:var(--ink);margin:0 0 8px;line-height:1.1}
.bento .b-reason p{font-size:.92rem;color:var(--ink-2);line-height:1.55;margin:0}
@media(max-width:760px){.bento.cols-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.bento.cols-4{grid-template-columns:1fr}}
/* bento action tile — nebula water reveals on hover (no chevron) */
.bento .b-cta{position:relative;overflow:hidden;text-decoration:none;cursor:pointer;align-items:flex-start;justify-content:space-between;gap:18px;min-height:118px;background:var(--black);transition:filter .3s}
.bento .b-cta canvas.gx-fill{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:1}
.bento .b-cta::after{content:"";position:absolute;inset:0;background:rgba(27,17,64,.20);z-index:1;pointer-events:none}
.bento .b-cta .lbl,.bento .b-cta .val{position:relative;z-index:2}
.bento .b-cta .lbl{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.bento .b-cta .val{font-family:'Cormorant Garamond';font-weight:500;font-size:1.5rem;color:#fff;line-height:1.08}
.bento .b-cta:hover{filter:brightness(1.1)}
.bento .b-cta.b-cta-plain{background:var(--bg)}
.bento .b-cta.b-cta-plain::after{display:none}
.bento .b-cta.b-cta-plain .lbl{color:var(--ink-3)}
.bento .b-cta.b-cta-plain .val{color:var(--ink)}
.bento .b-cta.b-cta-plain:hover{filter:none;background:var(--bg-alt)}

/* full-section nebula water band (e.g. allowances) */
.waterband{position:relative;overflow:hidden;background:var(--deep)}
.waterband > .waterband-bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.waterband > .waterband-bg canvas.gx-fill{position:absolute;inset:0;width:100%;height:100%;display:block}
.waterband::after{content:"";position:absolute;inset:0;background:rgba(27,17,64,.40);z-index:1;pointer-events:none}
.waterband > .wrap{position:relative;z-index:2}
.waterband .sec-head p{color:rgba(255,255,255,.9)}
.bento.dark-bento{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.15);box-shadow:none}
.bento.dark-bento > *{background:var(--black)}
.bento.dark-bento .b-mast h3{color:#fff}
.bento.dark-bento .b-mast p{color:rgba(255,255,255,.8)}
.bento.dark-bento .tile .lbl{color:rgba(255,255,255,.6)}
.bento.dark-bento .tile .val{color:#fff}
.bento.dark-bento .tile .sub{color:rgba(255,255,255,.66)}
@media(max-width:760px){
  /* content-card bentos default to a single column */
  .bento{grid-template-columns:1fr}
  .bento > *{grid-column:1 / -1}
  .bento .r2{grid-row:auto}

  /* stat bentos: pair the small tiles two-up, keep wide tiles full */
  .bento:has(.tile){grid-template-columns:1fr 1fr}
  .bento:has(.tile) > *{grid-column:span 1}
  .bento:has(.tile) .b-mast,
  .bento:has(.tile) .b-streams,
  .bento:has(.tile) .c2,
  .bento:has(.tile) .b-cta{grid-column:1 / -1}
  /* an odd trailing stat tile spans full so no empty cell is left */
  .bento:has(.b-mast.c3) .c1 + .c1 + .c1{grid-column:1 / -1}
}
@media(max-width:600px){
  .bento.cols-3{grid-template-columns:1fr}
  .bento.hover-water .b-reason{border-right:0;border-bottom:1px solid #E5E4EA}
  .bento.hover-water .b-reason:nth-child(n+4){border-bottom:1px solid #E5E4EA}
  .bento.hover-water .b-reason:last-child{border-bottom:0}
}

/* ---------- master-detail switchboard (compact Q&A) ---------- */
@media(min-width:901px){
  .faq-2col .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:start}
  .faq-2col .sec-head{max-width:none;margin-bottom:0}
  .faq-2col .switch{max-width:none;margin:0}
}
.switch{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,0.95fr);gap:1px;background:var(--line);
  max-width:880px;margin:0 auto;text-align:left;
  border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 14px 34px rgba(28,10,72,.08), 0 3px 10px rgba(28,10,72,.05)}
.switch-list{background:var(--bg);display:flex;flex-direction:column}
.switch-q{appearance:none;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer;
  padding:13px 22px;min-height:54px;border-bottom:1px solid var(--line);color:var(--ink-2);font-weight:500;font-size:.9rem;line-height:1.3;
  display:flex;align-items:center;justify-content:space-between;gap:12px;transition:var(--t)}
.switch-q:last-child{border-bottom:0}
.switch-q .dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;margin-left:auto;background:var(--deep);opacity:0;transform:scale(.4);transition:var(--t)}
.switch-q:hover{background:var(--bg-alt);color:var(--ink)}
.switch-q[aria-selected="true"]{background:var(--bg-alt);color:var(--ink);font-weight:600}
.switch-q[aria-selected="true"] .dot{opacity:1;transform:scale(1)}
.switch-panels{background:var(--bg);position:relative;display:flex;align-items:center;justify-content:center}
.switch-heart{position:absolute;top:16px;right:18px;width:38px;height:35px;pointer-events:none;z-index:3}
.switch-heart canvas{width:100%;height:100%;display:block}
@media(max-width:900px){.switch-heart{display:none}}
.switch-a{display:none;padding:24px 30px;color:var(--ink-2);line-height:1.6;font-size:.98rem}
.switch-a.on{display:block;animation:switchA .4s ease}
.switch-a::after{content:"";display:block;height:2px;width:40px;background:var(--brand);border-radius:2px;margin-top:20px;transform-origin:left center}
.switch-a.on::after{animation:lineGrow .55s .12s cubic-bezier(.22,.61,.36,1) both}
@keyframes lineGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.switch-a strong{color:var(--ink);font-weight:600}
@keyframes switchA{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:760px){
  .switch{grid-template-columns:1fr}
  .switch-list{border-bottom:1px solid var(--line)}
  .switch-q{height:54px}
  .switch-a{padding:24px}
}

/* ---------- training streams (compact, replaces accordions) ---------- */
.streams{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 16px 40px rgba(28,10,72,.05);margin-top:1px}
.stream{background:var(--bg);padding:26px 28px}
.bento .b-streams{padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.bento .b-streams > .stream{background:var(--bg)}
@media(max-width:760px){.bento .b-streams{grid-template-columns:1fr}}
.stream h4{font-family:'Cormorant Garamond';font-weight:500;font-size:1.3rem;color:var(--ink);margin:0 0 4px}
.stream .s-eyebrow{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);display:block;margin-bottom:12px}
.stream ul{list-style:none;margin:0;padding:0}
.stream li{font-size:.92rem;color:var(--ink-2);line-height:1.45;padding:7px 0 7px 18px;position:relative;border-top:1px solid var(--line)}
.stream li:first-of-type{border-top:0}
.stream li::before{content:"";position:absolute;left:0;top:14px;width:6px;height:6px;border-radius:50%;background:var(--brand);opacity:.5}
@media(max-width:760px){.streams{grid-template-columns:1fr}}

/* ---------- accordion (details/summary) ---------- */
.accordion{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--bg);box-shadow:0 16px 40px rgba(28,10,72,.05)}
.accordion details{border-bottom:1px solid var(--line)}
.accordion details:last-child{border-bottom:0}
.accordion summary{list-style:none;cursor:pointer;padding:20px 26px;display:flex;justify-content:space-between;align-items:center;gap:18px;
  font-family:'Inter';font-weight:600;color:var(--ink);font-size:1.04rem;transition:var(--t)}
.accordion summary::-webkit-details-marker{display:none}
.accordion summary:hover{background:var(--bg-alt)}
.accordion summary .chev{flex:0 0 auto;width:20px;height:20px;color:var(--brand);transition:transform .3s ease}
.accordion details[open] summary .chev{transform:rotate(180deg)}
.accordion .a-body{padding:0 26px 22px;color:var(--ink-2);line-height:1.7;font-size:.98rem;max-width:70ch}
.accordion .a-body p{margin:0 0 10px}.accordion .a-body p:last-child{margin:0}

/* ---------- approach: outcome chips ---------- */
.outcomes .oc-label{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:18px}
.oc-row{display:flex;flex-wrap:wrap;gap:12px}
.oc{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:999px;
  border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);color:#fff;font-size:.97rem;font-weight:500}
.oc::before{content:"";width:8px;height:8px;border-radius:50%;flex:0 0 auto;
  background:linear-gradient(135deg,#9C7BFF,#3FD0C9)}

/* ============ Register-your-interest drawer ============ */
html.reg-lock{overflow:hidden}
.reg-backdrop{position:fixed;inset:0;z-index:50;background:rgba(18,8,38,.46);
  opacity:0;pointer-events:none;transition:opacity .32s ease}
.reg-backdrop.open{opacity:1;pointer-events:auto}
@media(min-width:761px){.reg-backdrop{background:transparent}}

.regdrawer{position:absolute;top:100%;left:0;right:0;max-width:var(--maxw);margin:0 auto;
  display:flex;justify-content:flex-end;padding:0 var(--gut);z-index:5;
  opacity:0;transform:translateY(-16px);pointer-events:none;
  transition:opacity .3s ease,transform .44s cubic-bezier(.22,.61,.36,1)}
.regdrawer.open{opacity:1;transform:none;pointer-events:auto}
.reg-panel{position:relative;overflow:hidden;background:var(--bg);width:clamp(360px,30vw,460px);margin-top:0;
  border-radius:0;border:1px solid var(--line);
  box-shadow:0 26px 54px rgba(18,6,48,.24)}
.reg-card{position:relative;z-index:2;margin:0;max-width:none;background:var(--bg);
  padding:22px 24px 26px;max-height:min(78vh,680px);overflow:auto}

.reg-head{display:flex;align-items:center;justify-content:space-between;gap:14px}
.reg-close{appearance:none;border:0;background:transparent;font-size:26px;line-height:1;color:var(--ink-3);
  cursor:pointer;padding:0 2px;transition:var(--t)}
.reg-close:hover{color:var(--ink)}
.reg-progwrap{display:flex;align-items:center;gap:14px;margin:16px 0 18px}
.reg-count{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);flex:0 0 auto}
.reg-prog{flex:1 1 auto;height:4px;background:var(--line);border-radius:3px;overflow:hidden}
.reg-prog > i{display:block;height:100%;width:0;background:var(--brand);border-radius:3px;
  transition:width .45s cubic-bezier(.22,.61,.36,1)}

.reg-step{animation:switchA .34s ease}
.reg-q{font-family:'Cormorant Garamond';font-weight:500;font-size:clamp(1.4rem,3.4vw,1.8rem);
  color:var(--ink);line-height:1.12;margin:0}
.reg-note{margin:9px 0 0;font-size:.9rem;color:var(--ink-3);line-height:1.5}
.reg-opts{display:flex;flex-direction:column;gap:0;margin-top:18px;border:1px solid var(--line-2);border-radius:14px;overflow:hidden}
.reg-opt{display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  padding:14px 16px;border:0;border-bottom:1px solid var(--line);background:var(--bg);
  font:inherit;font-size:.96rem;font-weight:500;color:var(--ink);cursor:pointer;transition:var(--t)}
.reg-opt:last-child{border-bottom:0}
.reg-opt > span:first-child{flex:1 1 auto}
.reg-opt:hover{background:var(--bg-alt)}
.reg-opt .tick{position:relative;width:19px;height:19px;border-radius:50%;border:1.5px solid var(--line-2);
  flex:0 0 auto;transition:var(--t)}
.reg-opt.sel{background:rgba(69,53,117,.10)}
.reg-opt.sel .tick{background:#453575;border-color:#453575}
.reg-opt.sel .tick::after{content:"";position:absolute;left:6px;top:3px;width:4px;height:8px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}

.reg-fields{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.reg-inputs{display:flex;flex-direction:column;gap:0;margin-top:18px;border:1px solid var(--line-2);border-radius:14px;overflow:hidden}
.reg-inputs .reg-input{border:0;border-bottom:1px solid var(--line);border-radius:0}
.reg-inputs .reg-input:last-child{border-bottom:0}
.reg-inputs .reg-input:focus{background:var(--bg-alt);box-shadow:none}
.reg-input{width:100%;padding:13px 15px;border:1px solid var(--line-2);border-radius:13px;
  font:inherit;font-size:.96rem;color:var(--ink);background:var(--bg);transition:var(--t)}
.reg-input::placeholder{color:var(--ink-3)}
.reg-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(122,31,255,.12)}
.reg-body > .reg-step > .reg-input{margin-top:18px}
.reg-consent{display:flex;align-items:flex-start;gap:10px;font-size:.84rem;color:var(--ink-2);line-height:1.45;margin-top:4px}
.reg-consent input{margin-top:2px;flex:0 0 auto;accent-color:var(--brand);width:16px;height:16px}
.reg-consent a{color:var(--brand);text-decoration:underline}

.reg-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}
.reg-back{appearance:none;border:0;background:transparent;font:inherit;font-weight:500;font-size:.92rem;
  color:var(--ink-3);cursor:pointer;padding:8px 2px;transition:var(--t)}
.reg-back:hover{color:var(--ink)}
.reg-next{appearance:none;border:0;background:var(--deep);color:#fff;font:inherit;font-weight:600;font-size:.94rem;
  padding:13px 26px;border-radius:var(--r-sm);cursor:pointer;margin-left:auto;transition:var(--t)}
.reg-next:hover{filter:brightness(1.12)}
.reg-next.is-disabled{opacity:.4;cursor:not-allowed;filter:none}

.reg-done{text-align:center;padding:14px 4px 6px}
.reg-done-mark{color:var(--brand);display:flex;justify-content:center;margin-bottom:14px}
.reg-done .reg-q{margin-bottom:6px}
.reg-done .reg-note{margin-left:auto;margin-right:auto;max-width:42ch}
.reg-line{display:block;height:2px;width:46px;background:var(--brand);border-radius:2px;
  margin:20px auto 4px;transform-origin:center;animation:lineGrow .6s .15s cubic-bezier(.22,.61,.36,1) both}

@media(max-width:600px){
  .regdrawer{max-width:none;margin:0;padding:0;justify-content:stretch}
  .reg-panel{width:100%;border-left:0;border-right:0}
  .reg-card{padding:18px 16px 24px}
}

/* What-we-offer: shared water layer revealed per-tile on hover */
.bento.hover-water{position:relative;gap:0;background:transparent;border:1px solid #E5E4EA;border-radius:0}
.bento.hover-water .b-reason{position:relative;background:var(--bg);padding:0;display:flex;flex-direction:column;align-items:stretch;
  border-right:1px solid #E5E4EA;border-bottom:1px solid #E5E4EA}
.bento.hover-water .b-reason:nth-child(3n){border-right:0}
.bento.hover-water .b-reason:nth-child(n+4){border-bottom:0}
.bento.hover-water .b-reason-top{display:flex;align-items:baseline;gap:12px;background:#453575;padding:18px 24px}
.bento.hover-water .b-reason-top .k{color:rgba(255,255,255,.85);margin:0;flex:0 0 auto}
.bento.hover-water .b-reason-top h4{color:#fff;margin:0}
.bento.hover-water .b-reason-body{background:var(--bg);padding:18px 24px 24px;flex:1 1 auto}
.bento.hover-water .b-reason-body p{margin:0;font-size:.92rem;color:var(--ink-2);line-height:1.55}

/* training stat tiles: dark lilac + white text */
.bento.tiles-lilac .tile{background:#453575}
.bento.tiles-lilac .tile .lbl{color:rgba(255,255,255,.6)}
.bento.tiles-lilac .tile .val{color:#fff}
.bento.tiles-lilac .tile .sub{color:rgba(255,255,255,.82)}
/* force a light/white cell inside a dark bento */
.bento.dark-bento .cell-light{background:var(--bg)}
.bento.dark-bento .cell-light .eyebrow{color:var(--ink-3)}
.bento.dark-bento .cell-light .eyebrow::before{background:var(--brand)}
.bento.dark-bento .cell-light h3,.bento.dark-bento .cell-light .val{color:var(--ink)}
.bento.dark-bento .cell-light p,.bento.dark-bento .cell-light .lbl,.bento.dark-bento .cell-light .sub{color:var(--ink-2)}
.bento.tiles-lilac .tile.no-lilac{background:var(--bg)}
.bento.tiles-lilac .tile.no-lilac .lbl{color:var(--ink-3)}
.bento.tiles-lilac .tile.no-lilac .val{color:var(--ink)}
.bento.tiles-lilac .tile.no-lilac .sub{color:var(--ink-3)}
/* content masthead with water background */
.bento .b-mast.has-water{position:relative;overflow:hidden;background:var(--black)}
.bento .b-mast.has-water canvas.gx-fill{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.bento .b-mast.has-water::after{content:"";position:absolute;inset:0;background:rgba(27,17,64,.40);z-index:1;pointer-events:none}
.bento .b-mast.has-water > *{position:relative;z-index:2}
.bento .b-mast.has-water .eyebrow{color:rgba(255,255,255,.72)}
.bento .b-mast.has-water .eyebrow::before{background:#fff}
.bento .b-mast.has-water h3{color:#fff}
.bento .b-mast.has-water p{color:rgba(255,255,255,.88)}
/* hero stats above lede on mobile */
@media(max-width:700px){
  .hero-inner{display:flex;flex-direction:column;align-items:stretch}
  .hero-eyebrow{order:0}.hero-head{order:1}.hero-meta{order:2}.lede{order:3}.hero-cta{order:4}
  .hero-meta{margin:18px auto 4px}
}
.bento .tile.tile-lilac{background:#453575}
.bento .tile.tile-lilac .lbl{color:rgba(255,255,255,.6)}
.bento .tile.tile-lilac .val{color:#fff}
.bento .tile.tile-lilac .sub{color:rgba(255,255,255,.82)}
/* resource stack inside the approach bento (3 white rows) */
.bento.dark-bento .res-stack{background:rgba(255,255,255,.15);padding:0;display:flex;flex-direction:column;gap:1px}
.bento .res-stack .res-row{flex:1 1 0;background:var(--bg);padding:15px 24px;display:flex;flex-direction:column;justify-content:center;position:relative;text-decoration:none;transition:var(--t)}
.bento .res-stack .res-row:hover{background:var(--bg-alt)}
.bento .res-stack .res-lbl{font-family:'Cormorant Garamond';font-weight:500;font-size:1.25rem;color:var(--ink);line-height:1.1}
.bento .res-stack .res-sub{font-size:.8rem;color:var(--ink-3);margin-top:3px}
.bento .res-stack .res-heart{width:38px;height:35px;flex:0 0 auto}
.bento .res-stack .res-heart canvas{width:100%;height:100%;display:block}
/* drop outer border where a dark-lilac tile meets the rounded corner */
.bento:has(.tile.tile-lilac){border:0}
.bento .res-stack .res-action{position:absolute;top:50%;right:18px;transform:translateY(-50%);display:flex;align-items:center;gap:11px;pointer-events:none;z-index:2}
.bento .res-stack .res-dl{font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.reg-skip{margin-top:12px}

/* ---------- legal pages (terms / privacy) ---------- */
.legal{padding:52px 0 66px}
.legal .eyebrow{margin-bottom:14px}
.legal h1{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;font-size:clamp(2rem,4vw,3rem);color:var(--ink);line-height:1.05;margin:0 0 8px}
.legal-updated{color:var(--ink-3);font-size:.9rem;margin:0 0 26px}
.legal h2{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;font-size:clamp(1.4rem,2.6vw,1.8rem);color:var(--ink);margin:34px 0 10px}
.legal p{color:var(--ink-2);line-height:1.7;margin:0 0 14px}
.legal ul{margin:0 0 14px;padding-left:20px;color:var(--ink-2);line-height:1.7}
.legal li{margin-bottom:6px}
.legal a{color:var(--brand);text-decoration:underline}
.legal .legal-note{background:var(--bg-alt);border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin:0 0 28px;font-size:.92rem;color:var(--ink-2);line-height:1.6}

/* ---------- mobile polish (phones) ---------- */
@media(max-width:600px){
  :root{--gut:16px}
  .nav .wrap{height:60px}
  .nav .logo-mark{height:38px}
  .nav-right .btn{padding:10px 15px;font-size:12.5px}
  /* hero: heart stacks under the headline so nothing overflows */
  .hero-inner{--h1f:clamp(1.9rem,8.5vw,2.7rem)}
  .hero-head{flex-direction:column-reverse;gap:0;margin-top:8px}
  .hero-heart{height:clamp(195px,58vw,262px);width:auto;aspect-ratio:24/22;margin:-40px auto 8px}
}
@media(max-width:360px){
  .nav-right .btn{padding:9px 12px;font-size:12px}
  .nav .logo-mark{height:34px}
}

/* ---------- mobile nav menu ---------- */
.nav-burger{display:none;flex-direction:column;justify-content:center;gap:4px;width:28px;height:28px;
  border:0;background:transparent;cursor:pointer;padding:5px;flex:0 0 auto}
.nav-burger span{display:block;height:1.5px;width:100%;background:var(--ink-2);border-radius:2px;transition:var(--t)}
.nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
@media(max-width:1060px){.nav-burger{display:flex}}
.navmenu{position:absolute;top:100%;left:0;right:0;z-index:5;display:flex;flex-direction:column;
  background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 20px 38px rgba(18,6,48,.12);
  opacity:0;transform:translateY(-10px);pointer-events:none;
  transition:opacity .25s ease,transform .3s cubic-bezier(.22,.61,.36,1)}
.navmenu.open{opacity:1;transform:none;pointer-events:auto}
.navmenu a{padding:12px var(--gut);color:var(--ink-2);font-weight:500;font-size:.9rem;letter-spacing:.01em;
  border-top:1px solid var(--line);text-decoration:none;transition:var(--t)}
.navmenu a:first-child{border-top:0}
.navmenu a:active,.navmenu a:hover{background:var(--bg-alt)}
.navmenu .navmenu-cta{color:#fff;background:var(--deep);font-weight:600;font-size:.9rem;text-align:center;
  border-top:0;margin:10px var(--gut) 12px;border-radius:var(--r-sm);padding:12px}
.navmenu .navmenu-cta:hover{filter:brightness(1.1);background:var(--deep)}
@media(max-width:600px){.nav .nav-right > .btn{display:none}}

/* ---------- mobile fixes pass ---------- */
@media(max-width:760px){
  /* dark bentos: stack stat tiles one-per-row (approach / journey / local authorities) */
  .bento.dark-bento:has(.tile){grid-template-columns:1fr}
  .bento.dark-bento:has(.tile) > *{grid-column:1 / -1}
}
@media(max-width:600px){
  /* hero eyebrow: stacked, a touch bigger, above the heart */
  .hero-eyebrow{white-space:normal;font-size:11px;letter-spacing:.14em;line-height:1.5}
  .hero-eyebrow .sep{display:none}
  .hero-eyebrow .brk{display:block}
  /* credential strip: stack cleanly */
  .credstrip{padding:22px 0 0}
  .credpanel{grid-template-columns:1fr;border-radius:20px}
  .credpanel > div{padding:20px 22px}
  .cp-main{border-bottom:1px solid var(--line)}
  .cp-meta{border-right:0;border-bottom:1px solid var(--line);align-items:center;text-align:center;gap:12px}
  .cp-meta .btn{align-self:stretch;justify-content:center}
  .cp-badge{min-height:132px}
  /* resource cards: no DOWNLOAD label on mobile */
  .bento .res-stack .res-dl{display:none}
  /* hero + CTA buttons full width */
  .hero-cta{flex-direction:column;align-items:stretch}
  .hero-cta .btn{width:100%;justify-content:center}
  .ctaband{padding:38px 20px}
  /* footer get-in-touch: stack text over the badge */
  footer.site .foot-contact{flex-direction:row;align-items:flex-start;gap:14px;padding:20px 12px}
  footer.site .foot-contact .fc-pre{display:none}
  footer.site .foot-contact a{font-size:11px;margin-bottom:1px;white-space:nowrap;display:block}
  footer.site .foot-contact h5{margin-bottom:10px}
  footer.site .fc-badge-img{width:auto;height:55px;align-self:flex-start;margin-top:32px}
}

@media(max-width:600px){
  /* footer link columns: one line per link */
  footer.site .cols{gap:20px}
  footer.site .cols > div:not([class]) a{font-size:11px;white-space:nowrap}
  /* Ofsted registration label stacked above the URN, each on one line */
  .cp-meta .reg{flex-direction:column;align-items:center;gap:2px}
}
