/* ==========================================================================
   Amana Kids Family Day Care — site styles
   Ported from prototype/website-prototype.html. Colours, spacing and
   behaviour match the approved prototype; page banners are real <img>
   elements here instead of CSS backgrounds.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Design tokens
   -------------------------------------------------------------------------- */
:root{
  --green:#5C7D58; --green-deep:#355A3C; --green-pale:#E3ECDD;
  --gold:#C6953E; --gold-text:#8A601E; --gold-pale:#F6E9D2; --peach:#F6C79A; --orange:#8A601E; --orange-pale:#FBE8D5;
  --red:#D64434; --blue:#5FB3D9; --blue-pale:#DFF0F7;
  --ink:#26231D; --ink-soft:#5B5647;
  --cream:#FFFCF6; --paper:#FFFFFF; --line:#EDE4CF;
  --footer-bg:#EAE8E2; --footer-text:#2F4C36;
  --header-bg:var(--cream); --nav-text:var(--ink-soft); --nav-active:var(--green-deep);
  --brand-color:var(--green-deep); --tagline-color:var(--ink-soft); --tagline-bg:transparent;
  --radius:20px;
  --card-bg:#E3F3FC; --card-bg-2:#CCE8F7; --card-line:#C4E2F3;
  --field-line:#8A8574; --req:#B42318;
  /* banner overlay: light theme */
  --ov-r:255; --ov-g:252; --ov-b:246;
  --ov-size:58% 75%; --ov-a:.8; --ov-b-stop:.55; --ov-c:.25;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --cream:#17212B; --paper:#1F2A36; --ink:#EDEFF2; --ink-soft:#B8C2CC; --line:#2C3844;
    --green-pale:#233420; --gold-pale:#3A331C; --orange-pale:#3A2A20; --blue-pale:#1E323A;
    --footer-bg:#CFE7F5; --footer-text:#133054;
    --header-bg:#163261; --nav-text:#FFFFFF; --nav-active:#F2DD6E;
    --brand-color:#7CB84B; --tagline-color:#E8C97A; --tagline-bg:#55565A;
    --card-bg:#1C3342; --card-bg-2:#244255; --card-line:#2E4E63;
    --field-line:#7E8C99; --req:#FF9B8F;
    --gold-text:#FFD84D; --orange:#FFD84D; --tagline-color:#FFD84D;
    --ov-r:23; --ov-g:33; --ov-b:43;
    --ov-a:.78; --ov-b-stop:.55; --ov-c:.3;
  }
}
:root[data-theme="dark"]{
  --cream:#17212B; --paper:#1F2A36; --ink:#EDEFF2; --ink-soft:#B8C2CC; --line:#2C3844;
  --green-pale:#233420; --gold-pale:#3A331C; --orange-pale:#3A2A20; --blue-pale:#1E323A;
  --footer-bg:#CFE7F5; --footer-text:#133054;
  --header-bg:#163261; --nav-text:#FFFFFF; --nav-active:#F2DD6E;
  --brand-color:#7CB84B; --tagline-color:#E8C97A; --tagline-bg:#55565A;
  --card-bg:#1C3342; --card-bg-2:#244255; --card-line:#2E4E63;
  --field-line:#7E8C99; --req:#FF9B8F;
  --gold-text:#FFD84D; --orange:#FFD84D; --tagline-color:#FFD84D;
  --ov-r:23; --ov-g:33; --ov-b:43;
  --ov-a:.78; --ov-b-stop:.55; --ov-c:.3;
}

/* --------------------------------------------------------------------------
   2. Base
   -------------------------------------------------------------------------- */
*{box-sizing:border-box;}
/* Elements given display:flex or display:grid below would otherwise ignore the
   hidden attribute, so make it win everywhere. */
[hidden]{ display:none !important; }
html{scroll-behavior:smooth; scroll-padding-top:96px;}
body{ margin:0; background:var(--cream); color:var(--ink); font-family:'Nunito',system-ui,-apple-system,'Segoe UI',sans-serif; font-weight:400; line-height:1.55; -webkit-font-smoothing:antialiased; }
h1,h2,h3,.display{ font-family:'Fredoka','Nunito',system-ui,sans-serif; font-weight:600; color:var(--ink); margin:0; letter-spacing:-0.01em;}
p{margin:0 0 1em;}
a{color:inherit;}
img{max-width:100%; display:block;}
button, input, select, textarea{font-family:inherit;}
.wrap{max-width:1160px; margin:0 auto; padding:0 28px;}

.sr-only{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.hp{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; padding:0; margin:-1px; }
.hp input{ width:1px; height:1px; min-height:0; padding:0; border:0; }
.skip-link{ position:absolute; left:12px; top:-60px; z-index:100; background:var(--green-deep); color:#fff; padding:10px 16px; border-radius:10px; font-weight:800; text-decoration:none; }
.skip-link:focus{ top:10px; }
main{ min-height:60vh; }
main:focus{ outline:none; }
a:focus-visible, button:focus-visible, summary:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible{ outline:3px solid var(--blue); outline-offset:2px; }

/* --------------------------------------------------------------------------
   3. Header and navigation
   -------------------------------------------------------------------------- */
header{ position:sticky; top:0; z-index:50; background:var(--header-bg); border-bottom:1px solid var(--line); }
.nav{ display:flex; align-items:center; justify-content:space-between; padding:13px 28px; max-width:1160px; margin:0 auto; gap:20px; }
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; flex-shrink:0; }
.brand img{ width:42px; height:42px; border-radius:50%; }
.brand .btxt{ display:flex; flex-direction:column; line-height:1.1; }
.brand .btxt b{ font-family:'Fredoka','Nunito',sans-serif; font-weight:600; font-size:18px; color:var(--brand-color); }
.brand .btxt small{ font-size:10.5px; color:var(--tagline-color); background:var(--tagline-bg); padding:1px 6px; border-radius:5px; font-weight:700; letter-spacing:.02em; }
nav.links{ display:flex; gap:22px; align-items:center; flex-wrap:wrap; }
nav.links a{ text-decoration:none; font-weight:700; font-size:13.5px; color:var(--nav-text); padding:4px 2px; border-bottom:2px solid transparent; }
nav.links a:hover{ color:var(--nav-active); }
nav.links a.active{ color:var(--nav-active); border-bottom-color:var(--nav-active); }
nav.links .menu-enrol{ display:none; }

.menu-toggle{ display:none; align-items:center; gap:8px; background:var(--paper); color:var(--nav-text); border:2px solid var(--green-deep); border-radius:999px; padding:8px 14px; font-weight:800; font-size:14px; cursor:pointer; }
:root[data-theme="dark"] .menu-toggle{ background:transparent; border-color:#7CB84B; color:#FFFFFF; }
.menu-toggle .bars{ width:16px; height:2px; background:currentColor; position:relative; display:inline-block; }
.menu-toggle .bars::before, .menu-toggle .bars::after{ content:""; position:absolute; left:0; width:16px; height:2px; background:currentColor; }
.menu-toggle .bars::before{ top:-5px; }
.menu-toggle .bars::after{ top:5px; }

/* --------------------------------------------------------------------------
   4. Buttons
   -------------------------------------------------------------------------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 22px; border-radius:999px; font-family:'Fredoka','Nunito',sans-serif; font-weight:600; font-size:14.5px; text-decoration:none; border:none; cursor:pointer; white-space:nowrap; }
.btn-primary{ background:var(--green-deep); color:#fff; }
.btn-primary:hover{ background:#2A4830; }
.btn-ghost{ background:var(--paper); color:var(--green-deep); border:2px solid var(--green-deep); }
.btn-accent{ background:var(--gold); color:#26231D; }
.btn-accent:hover{ background:#B5852F; }
.btn-orange{ background:var(--green-deep); color:#fff; }
.btn-orange:hover{ background:#2A4830; }
.btn-lg{ padding:15px 30px; font-size:17px; }
:root[data-theme="dark"] .btn-ghost{ background:transparent; color:#CFE8C0; border-color:#7CB84B; }

/* --------------------------------------------------------------------------
   5. Sections and headings
   -------------------------------------------------------------------------- */
section{ padding:64px 0; }
section.tight{ padding:44px 0; }
.section-head{ max-width:640px; margin:0 auto 38px; text-align:center; }
.section-head .kicker{ color:var(--orange); font-weight:800; font-size:13.5px; margin-bottom:8px; display:block; }
.section-head h2{ font-size:clamp(26px,3.2vw,36px); line-height:1.15; }
.section-head p{ color:var(--ink-soft); font-size:16.5px; margin-top:12px; }

/* --------------------------------------------------------------------------
   6. Page banners (non-home)
   -------------------------------------------------------------------------- */
.page-hero{ position:relative; background:var(--card-bg); padding:48px 0; overflow:hidden; }
.page-hero .wrap{ position:relative; z-index:1; text-align:center; }
.page-hero .kicker{ color:var(--green-deep); font-weight:800; font-size:13.5px; }
.page-hero h1{ font-size:clamp(30px,4vw,42px); margin:8px 0 10px; }
.page-hero p{ color:var(--ink-soft); font-size:17px; max-width:60ch; margin:0 auto; }

.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media img{ width:100%; height:100%; object-fit:cover; object-position:var(--focal,center 50%); }
.hero-media::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse var(--ov-size) at 50% 50%,
    rgba(var(--ov-r),var(--ov-g),var(--ov-b),var(--ov-a)),
    rgba(var(--ov-r),var(--ov-g),var(--ov-b),var(--ov-b-stop)) 65%,
    rgba(var(--ov-r),var(--ov-g),var(--ov-b),var(--ov-c)));
}
.page-hero.has-image{ background:var(--cream); padding:110px 0; }
.page-hero.has-image h1{ max-width:720px; margin-left:auto; margin-right:auto; text-shadow:0 0 18px rgba(255,252,246,.95); }
.page-hero.has-image p{ color:var(--ink); font-weight:600; text-shadow:0 0 12px rgba(255,252,246,.95); }
.page-hero.has-image .kicker{ display:inline-block; background:rgba(255,252,246,.9); padding:4px 12px; border-radius:999px; }
:root[data-theme="dark"] .page-hero.has-image h1,
:root[data-theme="dark"] .page-hero.has-image p{ text-shadow:0 2px 12px rgba(0,0,0,.75); }
:root[data-theme="dark"] .page-hero.has-image .kicker{ background:rgba(23,33,43,.85); }
:root[data-theme="dark"] .page-hero .kicker{ color:#FFD84D; }
:root[data-theme="dark"] .hero-media img{ filter:brightness(.9); }

/* per-page focal points and overlay strengths, matching the prototype */
.parents-hero{ --focal:center 55%; --ov-size:60% 70%; --ov-a:.6; --ov-b-stop:.3; --ov-c:.15; padding:96px 0; }
:root[data-theme="dark"] .parents-hero{ --ov-a:.62; --ov-b-stop:.4; --ov-c:.25; }
.parents-hero h1{ text-shadow:0 0 18px rgba(255,252,246,.95); }
.educators-hero{ --focal:center 40%; }
.about-hero{ --focal:center 45%; }
.fees-hero{ --focal:center 50%; --ov-a:.82; }
.contact-hero{ --focal:center 18%; --ov-a:.82; }
.safety-hero{ --focal:center 45%; --ov-a:.86; --ov-b-stop:.62; }
:root[data-theme="dark"] .fees-hero,
:root[data-theme="dark"] .contact-hero,
:root[data-theme="dark"] .safety-hero{ --ov-a:.8; --ov-b-stop:.55; --ov-c:.3; }

/* "AI-generated image" label */
.ai-note{ position:absolute; right:12px; bottom:10px; z-index:2; background:rgba(0,0,0,.66); color:#fff; font-size:11.5px; font-weight:700; padding:3px 9px; border-radius:999px; letter-spacing:.01em; }

/* --------------------------------------------------------------------------
   7. Home hero
   -------------------------------------------------------------------------- */
.hero{ padding:56px 0 44px; }
.hero h1{ font-size:clamp(32px,4.6vw,50px); line-height:1.08; margin-bottom:18px; }
.hero h1 .accent{ color:var(--orange); }
.hero p.lede{ font-size:18px; color:var(--ink-soft); max-width:52ch; margin-bottom:24px; }
.hero-ctas{ display:flex; gap:12px; flex-wrap:wrap; }
.eyebrow-badge{ display:inline-flex; align-items:center; gap:8px; background:var(--green-pale); color:var(--green-deep); padding:7px 16px; border-radius:999px; font-weight:800; font-size:12.5px; margin-bottom:16px; }
:root[data-theme="dark"] .eyebrow-badge{ color:#CFE8C0; }
:root[data-theme="dark"] .hero h1 .accent{ color:#FFD84D; }

.hero-photo{ position:relative; overflow:hidden; padding:0; min-height:640px; display:flex; align-items:center; background:var(--cream); }
.hero-bg{ position:absolute; inset:0; animation:heroImgIn 1.6s ease-out both; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; object-position:65% 38%; display:block; }
.hero-bg::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to right, rgba(255,252,246,.9) 0%, rgba(255,252,246,.8) 28%, rgba(255,252,246,.45) 46%, rgba(255,252,246,0) 62%); }
:root[data-theme="dark"] .hero-bg::after{
  background:linear-gradient(to right, rgba(23,33,43,.9) 0%, rgba(23,33,43,.8) 28%, rgba(23,33,43,.45) 46%, rgba(23,33,43,0) 62%); }
.hero-inner{ position:relative; z-index:1; width:100%; padding-top:72px; padding-bottom:72px; }
.hero-copy{ max-width:490px; }
.hero-photo h1{ color:var(--green-deep); text-shadow:0 1px 0 rgba(255,255,255,.7), 0 0 18px rgba(255,252,246,.9); }
.hero-photo p.lede{ color:var(--ink); font-weight:600; text-shadow:0 0 14px rgba(255,252,246,.95); }
.hero-copy > *{ animation:heroTextIn .9s ease-out both; }
.hero-copy > *:nth-child(1){ animation-delay:.5s; }
.hero-copy > *:nth-child(2){ animation-delay:.7s; }
.hero-copy > *:nth-child(3){ animation-delay:.9s; }
.hero-copy > *:nth-child(4){ animation-delay:1.1s; }
/* Phones: show the hero straight away (no fade-in), so the page paints sooner */
@media (max-width: 760px){ .hero-bg, .hero-copy > *{ animation:none; } }
@keyframes heroImgIn{ from{ opacity:0; transform:scale(1.05); } to{ opacity:1; transform:scale(1); } }
@keyframes heroTextIn{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
:root[data-theme="dark"] .hero-bg img{ filter:brightness(.82) saturate(.95); }
:root[data-theme="dark"] .hero-photo h1{ color:var(--ink); text-shadow:0 2px 14px rgba(0,0,0,.6); }
:root[data-theme="dark"] .hero-photo p.lede{ color:var(--ink); text-shadow:0 2px 12px rgba(0,0,0,.7); }

/* --------------------------------------------------------------------------
   8. Cards, strips and panels
   -------------------------------------------------------------------------- */
.feature-strip{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.feature-item{ display:flex; gap:12px; align-items:flex-start; background:var(--card-bg); border:1px solid var(--card-line); border-radius:16px; padding:16px; }
.feature-item .ico{ width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0; background:var(--paper); }
.feature-item h3, .feature-item h4{ font-size:14.5px; margin-bottom:2px; }
.feature-item p{ font-size:12.5px; color:var(--ink-soft); margin:0; }

.icon-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.icon-card{ background:var(--card-bg); border:1px solid var(--card-line); border-radius:var(--radius); padding:24px; }
.icon-card .ico{ width:48px; height:48px; border-radius:14px; display:flex; align-items:center; justify-content:center; margin-bottom:14px; background:var(--paper); }
.icon-card h3{ font-size:17.5px; margin-bottom:6px; }
.icon-card p{ font-size:14px; color:var(--ink-soft); margin:0; }

.promo-panel{ background:var(--card-bg); border:1px solid var(--card-line); border-radius:28px; padding:36px; display:grid; grid-template-columns:1.2fr 0.8fr; gap:28px; align-items:center; color:var(--ink); }
.promo-panel > div:first-child{ text-align:center; }
.promo-panel h2{ color:var(--ink); font-size:clamp(24px,3vw,32px); margin-bottom:10px; }
.promo-panel p{ color:var(--ink-soft); font-size:15.5px; }
.promo-art{ background:var(--card-bg-2); border:1px solid var(--card-line); border-radius:18px; padding:20px; text-align:center; }
.promo-art .promo-quote{ font-size:15px; color:var(--green-deep); }
:root[data-theme="dark"] .promo-art .promo-quote{ color:#FFD84D; }
.promo-kicker{ color:var(--gold-text); font-weight:800; font-size:13px; }

.steps-row{ display:flex; align-items:flex-start; gap:0; }
.step-item{ flex:1; text-align:center; padding:0 8px; }
.step-chevron{ position:relative; width:22px; align-self:flex-start; margin-top:18px; flex:0 0 auto; }
.step-chevron::before{ content:""; position:absolute; left:4px; top:0; width:9px; height:9px; border-top:2px solid var(--line); border-right:2px solid var(--line); transform:rotate(45deg); }
.step-num{ width:38px; height:38px; border-radius:50%; background:var(--green); color:#fff; font-family:'Fredoka','Nunito',sans-serif; font-weight:700; font-size:16px; display:flex; align-items:center; justify-content:center; margin:0 auto 10px; }
.step-item h3, .step-item h4{ font-size:15px; margin-bottom:4px; }
.step-item p{ font-size:13px; color:var(--ink-soft); margin:0; }

/* --------------------------------------------------------------------------
   9. Child safety cards
   -------------------------------------------------------------------------- */
.safe-section{ background:var(--cream); color:var(--ink); }
.safe-section .section-head .kicker{ color:var(--gold-text); }
.safe-section .section-head h2{ color:var(--ink); }
.safe-section .section-head p{ color:var(--ink-soft); }
.safe-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.safe-card{ background:var(--card-bg); border:1px solid var(--card-line); border-radius:var(--radius); padding:22px; }
.safe-card .tag{ display:inline-block; background:var(--green-pale); color:var(--green-deep); font-weight:800; font-size:11px; padding:3px 10px; border-radius:999px; margin-bottom:10px; }
:root[data-theme="dark"] .safe-card .tag{ color:#CFE8C0; }
.safe-card h3{ color:var(--ink); font-size:17px; margin-bottom:6px; }
.safe-card p{ color:var(--ink-soft); font-size:13.5px; margin:0; }

.cs-statement{ background:var(--card-bg); border:1px solid var(--card-line); border-left:6px solid var(--green-deep); border-radius:var(--radius); padding:30px; max-width:900px; margin:0 auto; }
.cs-statement .kicker{ color:var(--gold-text); font-weight:800; font-size:13.5px; display:block; margin-bottom:6px; }
.cs-statement h2{ font-size:clamp(22px,2.6vw,30px); margin-bottom:12px; }
.cs-statement p, .cs-statement li{ color:var(--ink); font-size:15px; }
.cs-statement ul{ padding-left:20px; margin:0 0 16px; }
.cs-statement li{ margin-bottom:6px; }
.cs-report{ background:var(--paper); border:1px solid var(--card-line); border-radius:14px; padding:16px 18px; margin-top:8px; }
.cs-report h3{ font-size:17px; margin-bottom:8px; }
.cs-report a, .cs-statement a:not(.btn){ color:var(--green-deep); font-weight:700; }
:root[data-theme="dark"] .cs-report a, :root[data-theme="dark"] .cs-statement a:not(.btn){ color:#FFD84D; }
:root[data-theme="dark"] .cs-statement{ border-left-color:#FFD84D; }
.home-safe{ display:grid; grid-template-columns:1.6fr 1fr; gap:18px; align-items:stretch; }
.home-safe .cs-statement{ max-width:none; margin:0; }

/* --------------------------------------------------------------------------
   10. Ratings and approvals
   -------------------------------------------------------------------------- */
.rating-grid{ display:grid; grid-template-columns:1fr 1.3fr 1fr; gap:18px; }
.rating-card{ background:var(--card-bg); border:1px solid var(--card-line); border-radius:var(--radius); padding:22px; }
.rating-card h3{ font-size:17px; margin-bottom:10px; }
.rating-main{ text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; }
.rating-badge{ display:inline-block; background:var(--green-deep); color:#fff; font-family:'Fredoka','Nunito',sans-serif; font-weight:600; font-size:18px; padding:12px 18px; border-radius:16px; line-height:1.2; }
.rating-main p{ font-size:14px; color:var(--ink-soft); margin:0; }
.rating-main a{ font-weight:800; color:var(--green-deep); }
.qa-list{ list-style:none; margin:0; padding:0; font-size:13.5px; }
.qa-list li{ display:flex; justify-content:space-between; gap:10px; padding:6px 0; border-bottom:1px solid var(--card-line); }
.qa-list li:last-child{ border-bottom:none; }
.qa-list b{ white-space:nowrap; color:var(--green-deep); }
dl.appr{ margin:0; font-size:14px; }
dl.appr div{ padding:6px 0; border-bottom:1px solid var(--card-line); }
dl.appr div:last-child{ border-bottom:none; }
dl.appr dt{ font-size:12px; font-weight:800; color:var(--ink-soft); }
dl.appr dd{ margin:0; font-weight:700; }
:root[data-theme="dark"] .rating-main a, :root[data-theme="dark"] .qa-list b{ color:#FFD84D; }

/* --------------------------------------------------------------------------
   11. Find Care widget
   -------------------------------------------------------------------------- */
.search-widget{ background:var(--card-bg); border:1px solid var(--card-line); border-radius:24px; display:block; padding:28px; }
.search-widget .sw-head{ display:flex; justify-content:center; text-align:center; flex-direction:column; align-items:center; gap:12px; margin-bottom:20px; }
.search-widget .sw-head .pin{ width:38px; height:38px; border-radius:10px; background:var(--gold-pale); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
:root[data-theme="dark"] .search-widget .sw-head .pin{ background:var(--paper); }
.search-widget .sw-head h3{ font-size:18px; margin-bottom:2px; }
.search-widget .sw-head p{ font-size:13px; color:var(--ink-soft); margin:0; }
.sw-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.sw-row{ display:grid; grid-template-columns:1.4fr 1fr; gap:14px; margin-top:16px; }
.sw-group{ background:var(--paper); border:1px solid var(--card-line); border-radius:14px; padding:12px 14px; }
.sw-group .glabel{ font-size:11.5px; font-weight:800; color:var(--ink-soft); display:block; margin-bottom:8px; }
.sw-actions{ text-align:center; margin-top:20px; }
.sw-hint{ font-size:12.5px; color:var(--ink-soft); margin-top:8px; }
.sw-field{ display:flex; flex-direction:column; gap:4px; }
.sw-field label, .sw-field .glabel{ font-size:11px; font-weight:700; color:var(--ink-soft); }
.sw-field select, .sw-field input{ border:1px solid var(--field-line); border-radius:10px; padding:9px 10px; font-size:13.5px; background:var(--paper); color:var(--ink); }

/* pill checkboxes and radios */
.pills{ display:flex; flex-wrap:wrap; gap:8px; }
.pill{ position:relative; }
.pill input{ position:absolute; opacity:0; width:1px; height:1px; }
.pill span{ display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:999px; border:1.5px solid var(--field-line); background:var(--cream); color:var(--ink); font-weight:700; font-size:13px; cursor:pointer; user-select:none; min-height:24px; }
.pill input:checked + span{ background:var(--green-deep); border-color:var(--green-deep); color:#fff; }
.pill input[type=checkbox]:checked + span::before{ content:"\2713"; font-size:12px; }
.pill input:focus-visible + span{ outline:3px solid var(--blue); outline-offset:2px; }
.pills.num .pill span{ width:42px; justify-content:center; padding:8px 0; }

/* multi-select dropdown */
.multi{ position:relative; }
.multi-btn{ width:100%; text-align:left; border:1px solid var(--field-line); border-radius:10px; padding:10px 30px 10px 10px; font-size:13.5px; line-height:1.35; background:var(--paper); color:var(--ink); cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; position:relative; }
.multi-btn::after{ content:""; position:absolute; right:12px; top:50%; width:7px; height:7px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-70%) rotate(45deg); }
.multi-panel{ display:none; position:absolute; z-index:20; top:calc(100% + 6px); left:0; min-width:220px; background:var(--paper); border:1px solid var(--card-line); border-radius:14px; padding:8px; box-shadow:0 14px 30px -12px rgba(0,0,0,.25); }
.multi.open .multi-panel{ display:block; }
.multi-panel label{ display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:8px; font-size:14px; font-weight:600; color:var(--ink); cursor:pointer; }
.multi-panel label:hover{ background:var(--card-bg); }
.multi-panel input{ width:17px; height:17px; accent-color:var(--green-deep); }
.multi-panel .mp-foot{ display:flex; justify-content:space-between; border-top:1px solid var(--card-line); margin-top:6px; padding:8px 6px 2px; }
.multi-panel .mp-foot button{ background:none; border:none; color:var(--green-deep); font-weight:800; font-size:13px; cursor:pointer; min-height:24px; }
:root[data-theme="dark"] .multi-panel .mp-foot button{ color:#CFE8C0; }

/* --------------------------------------------------------------------------
   12. Forms
   -------------------------------------------------------------------------- */
.form-field{ display:flex; flex-direction:column; gap:5px; margin-bottom:16px; }
.form-field label{ font-size:13px; font-weight:700; color:var(--ink-soft); }
.form-field input, .form-field select, .form-field textarea{ border:1px solid var(--field-line); border-radius:10px; padding:11px 13px; font-size:14.5px; background:var(--paper); color:var(--ink); width:100%; max-width:100%; }
.form-field input:disabled{ opacity:.5; }
.form-field .req, .req{ color:var(--req); }
.form-field [aria-invalid="true"]{ border-color:var(--red) !important; box-shadow:0 0 0 2px rgba(214,68,52,.25); }
.field-hint{ font-size:12.5px; color:var(--ink-soft); }

.form-card{ background:var(--card-bg); border:1px solid var(--card-line); border-radius:24px; padding:30px; min-width:0; }
.form-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 18px; }
.form-grid .full{ grid-column:1 / -1; }
.check-line{ display:flex; gap:10px; align-items:flex-start; font-size:14px; margin-bottom:16px; }
.check-line{ min-height:24px; align-items:center; }
.check-line input{ width:20px; height:20px; flex:0 0 auto; accent-color:var(--green-deep); }
.form-actions{ text-align:center; margin-top:8px; }
.form-done{ text-align:center; padding:20px 10px; }
.form-done:focus{ outline:none; }
.form-done h2, .form-done h3{ font-size:22px; margin-bottom:8px; }
.form-done .ref{ display:inline-block; background:var(--paper); border:1px dashed var(--card-line); border-radius:10px; padding:6px 14px; font-weight:800; margin:6px 0 14px; }
.form-done ul{ text-align:left; display:inline-block; margin:0 0 16px; padding-left:20px; color:var(--ink-soft); font-size:14px; }
.form-privacy{ font-size:13px; line-height:1.45; color:var(--muted,#5b655f); margin:0 0 14px; }
.form-error{ background:var(--paper); border:1px solid var(--red); border-left:5px solid var(--red); border-radius:10px; padding:10px 14px; color:var(--ink); font-weight:700; font-size:14px; margin-bottom:14px; }
.form-error ul{ margin:6px 0 0; padding-left:20px; }

fieldset.either{ border:1px solid var(--card-line); border-radius:14px; padding:12px 14px 0; margin:0 0 16px; background:var(--card-bg); min-width:0; }
fieldset.either legend{ font-size:13px; font-weight:800; color:var(--ink); padding:0 6px; }
fieldset.either .either-hint{ font-size:13px; font-weight:600; color:var(--ink-soft); margin:0 0 10px; }
fieldset.either.invalid{ border-color:var(--red); box-shadow:0 0 0 2px rgba(214,68,52,.2); }

.notice{ background:var(--paper); border:1px solid var(--card-line); border-left:5px solid var(--red); border-radius:14px; padding:18px; font-size:14px; margin-bottom:16px; }
.notice h2, .notice h3, .notice h4{ font-size:15.5px; margin:0 0 6px; }
.notice.info{ border-left-color:var(--blue); }
.notice p{ margin:0 0 6px; color:var(--ink-soft); }
.notice a{ color:var(--green-deep); font-weight:700; }
:root[data-theme="dark"] .notice a{ color:#9FD8F5; }

.two-col{ display:grid; grid-template-columns:1.6fr 1fr; gap:28px; align-items:start; }
.two-col > *{ min-width:0; }

/* --------------------------------------------------------------------------
   13. Contact page
   -------------------------------------------------------------------------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:44px; }
.contact-grid > *{ min-width:0; }
.contact-info-card{ background:var(--card-bg); border:1px solid var(--card-line); border-radius:var(--radius); padding:26px; }
.contact-info-card .row{ display:flex; gap:12px; align-items:flex-start; margin-bottom:16px; }
.contact-info-card .ico{ width:38px; height:38px; border-radius:10px; background:var(--paper); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-info-card .row > div{ min-width:0; overflow-wrap:anywhere; }
.contact-info-card .sub{ color:var(--ink-soft); font-size:13.5px; }
.contact-info-card a, .regulator-card a{ color:var(--green-deep); font-weight:700; }
.contact-info-card .row > div > b > a{ display:inline-block; padding:3px 0; }
:root[data-theme="dark"] .contact-info-card a, :root[data-theme="dark"] .regulator-card a{ color:#9FD8F5; }
:root[data-theme="dark"] .contact-info-card .ico svg *{ stroke:#FFFFFF; }

.office-map{ display:block; position:relative; border-radius:16px; overflow:hidden; border:1px solid var(--card-line); margin-bottom:20px; text-decoration:none; }
.office-map img{ width:100%; height:380px; object-fit:cover; object-position:38% 62%; display:block; }
.office-map .map-caption{ position:absolute; left:0; right:0; bottom:0; display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; padding:12px 14px; background:rgba(255,255,255,.94); color:#26231D; font-size:13.5px; border-top:1px solid var(--card-line); }
.office-map .map-cta{ background:var(--green-deep); color:#fff; font-weight:800; font-size:12.5px; padding:6px 12px; border-radius:999px; }
.office-map:hover .map-cta, .office-map:focus-visible .map-cta{ background:#2A4830; }
:root[data-theme="dark"] .office-map img{ filter:brightness(.88); }
:root[data-theme="dark"] .office-map .map-caption{ background:rgba(31,42,54,.96); color:#FFFFFF; }

.regulator-card{ grid-column:1 / -1; background:var(--card-bg); border:1px solid var(--card-line); border-radius:var(--radius); padding:24px 26px; }
.reg-h{ font-size:20px; margin-bottom:8px; }
.regulator-card p{ color:var(--ink-soft); font-size:14.5px; }

/* --------------------------------------------------------------------------
   14. Booking calendar
   -------------------------------------------------------------------------- */
#book-consultation{ scroll-margin-top:90px; }
#booking-card{ max-width:860px; margin:0 auto; }
.booker{ display:grid; grid-template-columns:300px 1fr; gap:18px; background:var(--paper); border:1px solid var(--card-line); border-radius:16px; padding:16px; }
.booker > *{ min-width:0; }
.cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.cal-head b{ font-family:'Fredoka','Nunito',sans-serif; font-size:15px; }
.cal-head button{ background:var(--card-bg); border:none; width:30px; height:30px; border-radius:50%; cursor:pointer; color:var(--ink); font-size:16px; }
.cal-head button:disabled{ opacity:.35; cursor:default; }
.cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center; }
.cal-grid .dow{ font-size:11px; font-weight:800; color:var(--ink-soft); padding:4px 0; }
.cal-grid button{ aspect-ratio:1; min-height:28px; border:none; border-radius:10px; background:var(--card-bg); color:var(--ink); font-weight:700; font-size:13px; cursor:pointer; }
.cal-grid button:disabled{ background:transparent; color:var(--ink-soft); opacity:.4; cursor:default; }
.cal-grid button.sel{ background:var(--green-deep); color:#fff; }
.cal-grid button:focus-visible, .slots button:focus-visible{ outline:3px solid var(--blue); outline-offset:1px; }
.slots-head{ font-weight:800; font-size:14px; margin-bottom:10px; }
.slots{ display:grid; grid-template-columns:repeat(auto-fill,minmax(92px,1fr)); gap:8px; }
.slots button{ padding:9px 6px; min-height:24px; border-radius:10px; border:1.5px solid var(--field-line); background:var(--cream); color:var(--ink); font-weight:700; font-size:13px; cursor:pointer; }
.slots button:disabled{ background:transparent; border-style:dashed; color:var(--ink-soft); text-decoration:line-through; opacity:.55; cursor:default; }
.slots button.sel{ background:var(--green-deep); border-color:var(--green-deep); color:#fff; }
.slots .empty{ grid-column:1/-1; color:var(--ink-soft); font-size:13.5px; }
.slot-legend{ display:flex; gap:14px; font-size:12px; color:var(--ink-soft); margin-top:12px; }
.slot-legend i{ display:inline-block; width:12px; height:12px; border-radius:3px; margin-right:5px; vertical-align:-1px; }
.lg-free{ background:var(--cream); border:1.5px solid var(--field-line); }
.lg-busy{ border:1.5px dashed var(--field-line); }
.bk-error{ color:var(--red); font-weight:700; font-size:13px; margin-top:8px; }
:root[data-theme="dark"] .bk-error{ color:var(--req); }

/* --------------------------------------------------------------------------
   15. Fees table
   -------------------------------------------------------------------------- */
.price-table{ width:100%; border-collapse:collapse; background:var(--paper); border:1px solid var(--line); border-radius:16px; overflow:hidden; }
.price-table th, .price-table td{ text-align:left; padding:14px 18px; font-size:14.5px; border-bottom:1px solid var(--line); }
.price-table th{ background:var(--green-pale); color:var(--green-deep); font-family:'Fredoka','Nunito',sans-serif; font-weight:600; }
.price-table tr:last-child td{ border-bottom:none; }
.table-scroll{ overflow-x:auto; border-radius:16px; }
.fee-table{ min-width:640px; border-color:var(--card-line); }
.fee-table th{ background:var(--card-bg-2); color:var(--ink); vertical-align:bottom; }
.fee-table td{ vertical-align:middle; font-size:15.5px; }
.fee-table td span{ display:block; font-size:13px; color:var(--ink-soft); }
.fee-table td.total{ font-weight:800; color:var(--green-deep); font-size:17px; }
.fee-table tbody tr:nth-child(even) td{ background:var(--card-bg); }
:root[data-theme="dark"] .fee-table td.total{ color:#FFD84D; }
.fee-notice{ margin-top:18px; border-left-color:var(--gold); }
.fee-rules ul{ margin:0; padding-left:18px; color:var(--ink-soft); font-size:14px; }
.fee-rules li{ margin-bottom:6px; }
.fee-rules a{ color:var(--green-deep); font-weight:700; }
:root[data-theme="dark"] .fee-rules a{ color:#FFD84D; }

/* --------------------------------------------------------------------------
   16. FAQ accordion
   -------------------------------------------------------------------------- */
.faq-wrap{ max-width:860px; }
.faq-tools{ display:flex; justify-content:center; gap:10px; margin-bottom:28px; }
.faq-tools .btn{ padding:8px 16px; font-size:13.5px; }
.faq-group{ margin-bottom:34px; }
.faq-cat{ font-size:22px; text-align:center; margin-bottom:14px; }
.faq-q{ background:var(--card-bg); border:1px solid var(--card-line); border-radius:16px; margin-bottom:10px; overflow:hidden; }
.faq-q summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 20px; font-family:'Fredoka','Nunito',sans-serif; font-weight:600; font-size:16.5px; color:var(--ink); }
.faq-q summary::-webkit-details-marker{ display:none; }
.faq-q summary i{ flex-shrink:0; width:28px; height:28px; border-radius:50%; background:var(--paper); position:relative; }
.faq-q summary i::before, .faq-q summary i::after{ content:""; position:absolute; left:50%; top:50%; width:12px; height:2px; background:var(--green-deep); transform:translate(-50%,-50%); transition:transform .2s; }
.faq-q summary i::after{ transform:translate(-50%,-50%) rotate(90deg); }
.faq-q[open] summary i::after{ transform:translate(-50%,-50%) rotate(0deg); }
.faq-q summary:focus-visible{ outline:3px solid var(--blue); outline-offset:-3px; border-radius:16px; }
.faq-a{ padding:0 20px 18px; }
.faq-a p{ margin:0; font-size:15px; color:var(--ink-soft); line-height:1.65; }
:root[data-theme="dark"] .faq-q summary i::before, :root[data-theme="dark"] .faq-q summary i::after{ background:#FFD84D; }

/* --------------------------------------------------------------------------
   17. Policies
   -------------------------------------------------------------------------- */
.policy-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.policy-card{ background:var(--card-bg); border:1px solid var(--card-line); border-radius:var(--radius); padding:22px; scroll-margin-top:96px; }
.policy-card h3{ font-size:17px; margin-bottom:6px; }
.policy-card p{ font-size:14px; color:var(--ink-soft); margin:0; }
.policy-card.flash{ outline:3px solid var(--blue); outline-offset:2px; }

/* --------------------------------------------------------------------------
   18. Educator application
   -------------------------------------------------------------------------- */
.apply-note{ font-family:'Fredoka','Nunito',sans-serif; font-weight:500; font-size:clamp(20px,2.4vw,26px); line-height:1.35; color:var(--ink); max-width:640px; margin:0 auto 22px; }
.apply-note b{ color:var(--green-deep); font-weight:700; }
:root[data-theme="dark"] .apply-note b{ color:#FFD84D; }

.ap-wrap{ max-width:900px; }
.ap-privacy{ margin-bottom:22px; }
.ap-h{ font-size:16px; margin-bottom:6px; }
.ap-progress ol{ list-style:none; margin:0 0 10px; padding:0; display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.ap-progress li{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px; font-size:11.5px; color:var(--ink-soft); }
.ap-progress .num{ width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; border:2px solid var(--field-line); background:var(--paper); color:var(--ink); }
.ap-progress li.done .num{ background:var(--card-bg-2); border-color:var(--green-deep); }
.ap-progress li.current .num{ background:var(--green-deep); border-color:var(--green-deep); color:#fff; }
.ap-progress li.current .t{ color:var(--ink); font-weight:800; }
.ap-steptext{ text-align:center; font-size:17px; margin:8px 0 20px; }
.ap-steptext:focus{ outline:none; }
.ap-card{ background:var(--card-bg); border:1px solid var(--card-line); border-radius:var(--radius); padding:22px 24px 10px; margin:0 0 18px; min-width:0; }
.ap-card > legend{ float:left; width:100%; padding:0; margin-bottom:10px; }
.ap-card > legend h3, .ap-card > h3{ font-size:19px; margin:0; }
.ap-card > legend + *{ clear:both; }
.ap-note{ font-size:14px; color:var(--ink-soft); }
.ap-sub{ font-size:15px; margin:10px 0 8px; }
.ap-row{ background:var(--paper); border:1px solid var(--card-line); border-radius:14px; padding:14px 16px 6px; margin-bottom:12px; }
.ap-row-title{ font-size:15px; margin:0 0 8px; }
.ap-small{ padding:7px 14px; font-size:13px; margin:0 8px 12px 0; min-height:24px; }
.ap-add{ display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap; }
.ap-add .form-field{ flex:1 1 220px; margin-bottom:12px; }
.ap-actions-inline{ display:flex; flex-wrap:wrap; }
.ap-ages{ border:none; padding:0; margin:0 0 16px; }
.ap-ages legend{ font-size:13px; font-weight:700; color:var(--ink-soft); margin-bottom:6px; }
.ap-agegroup{ margin-bottom:10px; }
.ap-agegroup > span{ display:block; font-size:12.5px; font-weight:800; margin-bottom:6px; }
.ap-nav{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:8px; }
.ap-review dl{ margin:0 0 10px; }
.ap-review-head{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:8px; }
.ap-review-head .ap-small{ margin:0; }
.ap-ans{ display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:7px 0; border-bottom:1px solid var(--card-line); font-size:14px; }
.ap-ans dt{ color:var(--ink-soft); }
.ap-ans dd{ margin:0; font-weight:700; word-break:break-word; }
.ap-sig{ width:100%; max-width:600px; height:170px; background:#fff; border:2px dashed var(--field-line); border-radius:12px; touch-action:none; cursor:crosshair; display:block; margin:6px 0 8px; }

/* --------------------------------------------------------------------------
   19. Footer
   -------------------------------------------------------------------------- */
footer{ background:var(--footer-bg); color:var(--footer-text); padding:44px 0 0; border-top:1px solid var(--line); }
footer .wrap{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:36px; padding-bottom:30px; }
footer .fcol h2{ font-family:'Fredoka','Nunito',sans-serif; color:var(--footer-text); font-size:14.5px; margin-bottom:12px; }
footer .fcol p{ color:var(--footer-text); opacity:.8; font-size:13.5px; margin-bottom:8px; }
footer .fcol a{ color:var(--footer-text); opacity:.8; font-size:13.5px; text-decoration:none; display:block; padding:3px 0; margin-bottom:5px; }
footer .fcol p a{ display:inline-block; padding:2px 0; margin:0; }
footer .fcol a:hover{ text-decoration:underline; }
footer .fbrand{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
footer .fbrand img{ width:34px; height:34px; border-radius:50%; }
footer .fbrand b{ font-family:'Fredoka','Nunito',sans-serif; color:var(--footer-text); font-size:16px; }
.fmeta{ text-align:center; font-size:12.5px; padding:14px 20px; border-top:1px solid rgba(53,90,60,.15); color:var(--footer-text); line-height:1.7; }
.fmeta a{ color:inherit; font-weight:700; }
.acknowledgement{ border-top:1px solid rgba(53,90,60,.15); padding:18px 0; font-size:12px; color:var(--footer-text); opacity:.9; text-align:center; }
.fbottom{ text-align:center; padding:16px 0; font-size:12px; color:var(--footer-text); opacity:.9; border-top:1px solid rgba(53,90,60,.12); }
:root[data-theme="dark"] footer{ background:var(--header-bg) !important; border-top-color:var(--header-bg) !important; }
:root[data-theme="dark"] footer .fcol h2, :root[data-theme="dark"] footer .fcol p,
:root[data-theme="dark"] footer .fbrand b, :root[data-theme="dark"] .acknowledgement,
:root[data-theme="dark"] .fbottom, :root[data-theme="dark"] .fmeta{ color:#FFFFFF; opacity:1; }
:root[data-theme="dark"] footer .fcol a{ color:#9FD8F5; opacity:1; }
:root[data-theme="dark"] footer .fcol a:hover{ color:#CDEBFA; }
:root[data-theme="dark"] .fmeta a{ color:#9FD8F5; }
:root[data-theme="dark"] .acknowledgement, :root[data-theme="dark"] .fbottom,
:root[data-theme="dark"] .fmeta{ border-top-color:rgba(255,255,255,.15); }

/* --------------------------------------------------------------------------
   20. Icons in dark mode
   -------------------------------------------------------------------------- */
:root[data-theme="dark"] .ico svg *, :root[data-theme="dark"] .pin svg *{ stroke:#FFD84D; }

/* --------------------------------------------------------------------------
   21. 404
   -------------------------------------------------------------------------- */
.nf-links{ display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin-top:8px; }

/* --------------------------------------------------------------------------
   22. Responsive
   -------------------------------------------------------------------------- */
@media (max-width:920px){
  .contact-grid{ grid-template-columns:1fr; }
  .feature-strip, .icon-cards, .safe-grid{ grid-template-columns:repeat(2,1fr); }
  .promo-panel{ grid-template-columns:1fr; }
  .steps-row{ flex-direction:column; gap:20px; }
  .step-chevron{ display:none; }
  nav.links{ display:none; }
  .sw-grid{ grid-template-columns:1fr 1fr; }
  .sw-row, .two-col{ grid-template-columns:1fr; }
  .nav{ position:relative; flex-wrap:nowrap; }
  .menu-toggle{ display:inline-flex; margin-left:auto; }
  nav.links.open{ display:flex; flex-direction:column; align-items:stretch; gap:0; position:absolute; top:100%; left:0; right:0; background:var(--header-bg); border-bottom:1px solid var(--line); padding:8px 20px 16px; box-shadow:0 16px 24px -16px rgba(0,0,0,.3); }
  nav.links.open a{ padding:12px 4px; font-size:16px; border-bottom:1px solid var(--line); }
  nav.links.open a.active{ border-bottom-color:var(--line); }
  .hero-photo{ min-height:0; display:block; }
  .hero-bg img{ object-position:62% 50%; }
  .hero-bg::after{ background:linear-gradient(to bottom, rgba(255,252,246,.1) 0%, rgba(255,252,246,.55) 32%, rgba(255,252,246,.86) 55%, rgba(255,252,246,.9) 100%); }
  :root[data-theme="dark"] .hero-bg::after{ background:linear-gradient(to bottom, rgba(23,33,43,.1) 0%, rgba(23,33,43,.55) 32%, rgba(23,33,43,.86) 55%, rgba(23,33,43,.9) 100%); }
  .hero-inner{ padding-top:230px; padding-bottom:44px; }
  footer .wrap{ grid-template-columns:1fr 1fr; }
  .policy-grid{ grid-template-columns:1fr; }
}
@media (max-width:760px){
  .page-hero.has-image{ padding:80px 0; }
  .parents-hero{ padding:80px 0; }
  .rating-grid, .home-safe{ grid-template-columns:1fr; }
  .ap-progress .t{ display:none; }
  .ap-ans{ grid-template-columns:1fr; gap:2px; }
  .cs-statement{ padding:22px 18px; }
  .booker{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .btn{ white-space:normal; text-align:center; }
  .feature-strip, .icon-cards, .safe-grid{ grid-template-columns:1fr; }
  footer .wrap{ grid-template-columns:1fr; }
  .sw-grid, .form-grid{ grid-template-columns:minmax(0,1fr); }
  .form-card{ padding:20px 16px; }
  .booker{ padding:12px; }
  .nav{ padding:10px 14px; gap:8px; }
  .enrol-cta{ display:none; }
  nav.links.open .menu-enrol{ display:block; color:var(--green-deep); font-weight:800; }
  :root[data-theme="dark"] nav.links.open .menu-enrol{ color:#FFD84D; }
  .brand img{ width:36px; height:36px; }
  .brand .btxt b{ font-size:16px; }
  #theme-toggle{ padding:8px 11px !important; }
  .menu-toggle .menu-label{ display:none; }
  .menu-toggle{ padding:10px 12px; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .hero-bg, .hero-copy > *{ animation:none; }
  *{ transition-duration:.001ms !important; }
}

/* Complaints & feedback: how complaints are handled */
.steps-list{ margin:6px 0 10px; padding-left:20px; font-size:14px; line-height:1.5; }
.steps-list li{ margin:0 0 6px; }
.form-grid .check-line.full{ grid-column:1 / -1; margin-bottom:0; }
