  /* ===== FOOTER ===== */
  /* Where the section-to-section scrolling script lines these sections up (below the fixed header). */
  /* Section-to-section scrolling is the browser's own scroll-snap (no scroll script). */
  html.snap-ready{scroll-snap-type:y mandatory;}   /* switched on once the page has finished laying out, so the first paint never snaps anywhere */
  /* Section snap: each section is one screen and snaps to the top of the viewport; a section taller than the screen (Courses) scrolls freely inside before snapping on. */
  /* Each marker is exactly one screen tall and pulled back over the start of its section (net height 0), so the page snaps from section to section even where a section is a little taller than the screen (its closing wave). Courses is the exception: it is taller than a screen on purpose, so it snaps by itself and scrolls freely inside. */
  .snap-a{display:block;position:relative;height:100vh;height:100lvh;margin-bottom:-100vh;margin-bottom:-100lvh;visibility:hidden;pointer-events:none;scroll-snap-align:start;scroll-snap-stop:always;}
  .courses{scroll-snap-align:start;scroll-snap-stop:always;}
  footer.ft{scroll-snap-align:end;}
  /* Phones: snap only when a swipe ends close to a section start. A hard snap pulled the page away from the end of the Courses list before the last card (and its Enroll button) could be read. */
  @media(max-width:900px){html.snap-ready{scroll-snap-type:y proximity;}}
  @media(prefers-reduced-motion:reduce){html.snap-ready{scroll-snap-type:none;}}
  @media(max-width:900px){.educator{scroll-margin-top:var(--header-h,76px);}}
  /* Desktop: the educator section is exactly one screen tall and starts right under the header (open or closed banner). */
  @media(min-width:901px){
    /* One screen of content; the decorative wave that leads into the next section sits just below the fold. */
    .educator{--ed-wave-h:clamp(110px,15vw,210px);min-height:calc(100vh + var(--ed-wave-h));min-height:calc(100svh + var(--ed-wave-h));min-height:calc(100lvh + var(--ed-wave-h));display:flex;flex-direction:column;justify-content:center;padding:calc(var(--header-h,76px) + 26px) 0 calc(var(--ed-wave-h) + 36px);}
    .educator .ed-grid{width:100%;}
    .ed-stage{width:min(100%,640px,calc((100svh - var(--header-h,76px) - 110px) / 1.1));width:min(100%,640px,calc((100lvh - var(--header-h,76px) - 110px) / 1.1));}
  }
  :root{--ft-rise:clamp(120px,19vw,340px);--ft-top:#110e3a;--ft-bot:#07061c;}
  /* The mountains grow out of the footer and climb up over the bottom of the section above. */
  footer.ft{
    position:relative;color:#fff;padding:0;margin-top:calc(var(--ft-rise) * -1);
    background:none;
    font-family:'Plus Jakarta Sans','Nunito','Segoe UI',system-ui,sans-serif;
  }
  .ft-scene{position:relative;line-height:0;pointer-events:none;}
  .ft-scene picture{display:block;}
  /* The photo fades from the page colour at its top, so it melts into the Contact section above. */
  .ft-scene img{display:block;width:100%;height:auto;aspect-ratio:2000/667;object-fit:cover;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 22%);mask-image:linear-gradient(180deg,transparent 0,#000 22%);}
  .ft-wrap{max-width:none;margin:0;padding:0 max(clamp(18px,5.2vw,100px),calc((100% - 1560px) / 2));background:linear-gradient(180deg,var(--ft-top),var(--ft-bot) 70%);}
  .ft-glow{height:1px;background:linear-gradient(90deg,transparent,rgba(150,120,255,.35) 18%,#8a5cff 50%,rgba(150,120,255,.35) 82%,transparent);box-shadow:0 0 14px rgba(138,92,255,.55);}
  .ft-grid{display:grid;grid-template-columns:1.08fr 1fr 1.1fr 1.22fr;padding:clamp(22px,2.6vw,42px) 0;}
  .ft-col{padding:0 clamp(14px,2.2vw,44px);min-width:0;}
  .ft-col:first-child{padding-left:clamp(0px,.6vw,12px);}
  .ft-col + .ft-col{border-left:1px solid rgba(255,255,255,.1);}
  .ft-logo{font-size:clamp(26px,2.2vw,40px);font-weight:800;letter-spacing:-.03em;line-height:1;color:#fff;}
  .ft-logo span{color:#7a4df2;}
  .ft-logo .dot{color:#c084fc;}
  .ft-tag{color:#d8d6ee;font-size:clamp(12.5px,.92vw,16px);line-height:1.5;margin:clamp(10px,1vw,16px) 0 0;max-width:16em;}
  .ft-social{display:flex;gap:clamp(10px,1vw,18px);margin-top:clamp(14px,1.6vw,26px);}
  .ft-social a{display:grid;place-items:center;width:clamp(34px,2.6vw,46px);aspect-ratio:1;border-radius:18%;border:1.5px solid rgba(255,255,255,.55);background:rgba(255,255,255,.03);color:#fff;transition:background .2s,border-color .2s,transform .2s;}
  .ft-social a:hover,.ft-social a:focus-visible{background:rgba(122,77,242,.3);border-color:#a98cf2;transform:translateY(-2px);}
  .ft-social svg{width:52%;height:52%;}
  .ft-col h4{font-size:clamp(15px,1.15vw,20px);font-weight:800;letter-spacing:-.02em;margin:0 0 clamp(10px,.9vw,16px);color:#fff;}
  .ft-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:clamp(6px,.55vw,10px);}
  .ft-col ul a{color:#e4e2f6;font-size:clamp(12.5px,.92vw,16px);line-height:1.3;transition:color .2s;}
  .ft-col ul a:hover,.ft-col ul a:focus-visible{color:#b99cff;}
  .ft-courses ul{gap:clamp(12px,1.2vw,22px);}
  .ft-stats{display:flex;flex-direction:column;gap:clamp(10px,.95vw,16px);}
  .ft-stat{display:flex;align-items:center;gap:clamp(10px,1vw,16px);font-size:clamp(12.5px,.95vw,16px);color:#fff;}
  .ft-si{display:grid;place-items:center;flex:none;width:clamp(34px,2.6vw,46px);aspect-ratio:1;border-radius:26%;border:1.5px solid rgba(140,110,255,.35);background:linear-gradient(160deg,rgba(60,40,130,.45),rgba(20,16,50,.6));color:#b99cff;}
  .ft-si svg{width:52%;height:52%;}
  .ft-rule{height:1px;background:rgba(255,255,255,.14);}
  .ft-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 24px;padding:clamp(12px,1.3vw,20px) 0 clamp(14px,1.5vw,24px);font-size:clamp(11.5px,.85vw,14px);color:#e4e2f6;}
  .ft-policies{display:flex;flex-wrap:wrap;align-items:center;}
  .ft-policies a{color:#e4e2f6;transition:color .2s;}
  .ft-policies a:hover,.ft-policies a:focus-visible{color:#b99cff;}
  .ft-policies a:not(:last-child)::after{content:"|";display:inline-block;margin:0 clamp(10px,1.5vw,28px);color:#e4e2f6;}
  .ft-br{display:none;}
  /* Quick Links / Our Courses are plain columns on desktop and collapsible rows on phones. */
  .ft-acc summary{list-style:none;cursor:default;}
  .ft-acc summary::-webkit-details-marker{display:none;}
  .ft-acc summary h4{margin:0 0 clamp(12px,1.2vw,22px);}
  .ft-acc summary::after{display:none;}
  .ft-why{display:none;}
  @media(max-width:900px){
    :root{--ft-rise:clamp(150px,44vw,240px);--ft-top:#1c134c;}
    footer.ft{min-height:100svh;min-height:100lvh;display:flex;flex-direction:column;}
    .ft-wrap{width:100%;box-sizing:border-box;}
    .ft-scene{flex:1 1 auto;min-height:clamp(230px,32vh,420px);}
    .ft-scene picture{position:absolute;inset:0;}
    .ft-scene img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-position:60% 74%;}
    .ft-grid{grid-template-columns:1fr;row-gap:0;padding:16px 0 4px;}
    .ft-col{padding:0;}
    .ft-col + .ft-col{border-left:0;}
    .ft-brand{text-align:left;display:flex;flex-direction:column;align-items:flex-start;padding-bottom:16px;}
    .ft-logo{font-size:clamp(26px,6.4vw,30px);}
    .ft-tag{max-width:22em;font-size:clamp(12.5px,3.2vw,13.5px);margin-top:8px;}
    .ft-social{gap:12px;margin-top:12px;}
    .ft-social a{width:38px;border-radius:14px;border-color:rgba(160,120,255,.55);background:linear-gradient(160deg,rgba(60,40,130,.35),rgba(10,8,30,.6));}
    .ft-acc{display:block;border-top:1px solid rgba(160,120,255,.28);}
    .ft-acc.ft-why{display:none;}
    .ft-legal{border-bottom:1px solid rgba(160,120,255,.28);}
    .ft-acc summary::before{content:"";flex:none;width:21px;height:21px;margin:0 14px 0 3px;background:#e4e2f6;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat;}
    .ft-links{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h6'/%3E%3C/svg%3E");}
    .ft-courses{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12 16 5l14 7-14 7z'/%3E%3Cpath d='M8 15.5V22c0 2 3.6 4 8 4s8-2 8-4v-6.5'/%3E%3C/svg%3E");}
    .ft-support{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14v-2a8 8 0 0 1 16 0v2'/%3E%3Crect x='3' y='14' width='4' height='6' rx='1.5'/%3E%3Crect x='17' y='14' width='4' height='6' rx='1.5'/%3E%3C/svg%3E");}
    .ft-legal{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 3 5 7v8c0 7 4.6 11.6 11 14 6.4-2.4 11-7 11-14V7z'/%3E%3Cpath d='m11 16 4 4 7-8'/%3E%3C/svg%3E");}
    .ft-acc summary h4{flex:1;}
    .ft-acc summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:10px 6px;}
    .ft-acc summary h4{margin:0;font-size:14.5px;}
    .ft-acc summary::after{content:"";display:block;width:10px;height:10px;margin-right:6px;border-right:2px solid #cbb8ff;border-bottom:2px solid #cbb8ff;transform:rotate(45deg) translateY(-3px);transition:transform .25s;}
    .ft-acc[open] summary::after{transform:rotate(-135deg) translate(-3px,0);}
    .ft-acc ul{padding:0 6px 14px;}
    .ft-acc ul a{font-size:13.5px;}
    .ft-courses ul{gap:14px;}
    .ft-stats-col{padding:18px 0 6px;}
    .ft-stats{flex-direction:column;gap:10px;}
    .ft-stat{gap:16px;padding:0 0 0 2px;font-size:clamp(13px,3.4vw,14.5px);}
    .ft-si{width:32px;border-radius:10px;}
    .ft-si svg{width:55%;height:55%;}
    .ft-rule{margin-top:10px;}
    .ft-bottom{flex-direction:column-reverse;align-items:center;text-align:center;gap:8px;padding:12px 0 16px;}
    .ft-policies{justify-content:center;row-gap:4px;}
    .ft-policies a{font-size:12px;}
    .ft-br{display:block;flex-basis:100%;height:0;}
    .ft-policies a:nth-child(3)::after{content:none;}
  }
  @media(max-width:520px){
    .ft-policies a:not(:last-child)::after{margin:0 10px;}
  }
  @media(prefers-reduced-motion:reduce){.ft-social a{transition:none;}}
