/* =========================================================================
   UNDRGRND Movement — Theme v2 (reference-aligned)
   Full-screen imagery · light-grey → dark gradient flow · Roboto · neon logo
   Applied to any page by adding class="v2" to <body> and loading this file
   AFTER global.css. Page-specific images/headlines stay inline per page.
   ========================================================================= */

/* ---- Fonts + palette (scoped to .v2 so old pages are unaffected) ---- */
body.v2 {
  --font-display: 'Roboto', sans-serif;
  --font-body: 'Roboto', sans-serif;
  --v2-grey-top: #F2F2F4;
  --v2-grey-mid: #E3E3E8;
  --v2-charcoal: #161618;
  --v2-text: #1B1B1F;
  --v2-muted: #6A6A73;
  --v2-accent: linear-gradient(135deg, #7C3AED 0%, #DB2777 100%);
  --v2-accent-solid: #7C3AED;
  font-family: 'Roboto', Helvetica Neue, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  background: var(--v2-grey-top);
}
body.v2 h1, body.v2 h2, body.v2 h3 { font-weight: 700; letter-spacing: -0.01em; }

/* ---- Nav: ALWAYS solid dark (readable over light hero areas) ---- */
body.v2 .site-nav { background: #161618; border-bottom: 1px solid rgba(255,255,255,0.08); }
body.v2 .site-nav.scrolled { background: #161618; border-bottom-color: rgba(255,255,255,0.10); }
body.v2 .nav-menu__link { color: rgba(255,255,255,0.92); }
body.v2 .nav-menu__link:hover, body.v2 .nav-menu__link.active { color: #fff; }
body.v2 .nav-logo { gap: 1rem; }
body.v2 .nav-logo__tagline {
  color: #fff; border-left: none; padding-left: 0;
  font-family: 'Roboto', Helvetica Neue, Arial, sans-serif;
  font-size: 0.6rem; font-weight: 400; letter-spacing: 0.18em;
  line-height: 1.45; text-transform: uppercase; max-width: 13ch;
}
body.v2 .nav-hamburger__line { background: #fff; }

/* ===================== HERO: full-screen (optionally a slider) ===================== */
.v2-hero { position: relative; height: 100vh; min-height: 600px; overflow: hidden; display: flex; align-items: flex-end; }
.v2-hero--short { height: 72vh; min-height: 460px; }
.v2-slides { position: absolute; inset: 0; }
.v2-slide { position: absolute; inset: 0; background-size: cover; background-position: center 30%;
            opacity: 0; transition: opacity 1.6s ease; transform: scale(1.06); }
.v2-slide.is-active { opacity: 1; transform: scale(1); transition: opacity 1.6s ease, transform 7s ease; }
/* single, non-slider hero image */
.v2-hero--img { background-size: cover; background-position: center 30%; }
.v2-hero__scrim { position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(22,22,24,0.45) 0%, rgba(22,22,24,0.10) 32%, rgba(22,22,24,0.20) 55%, rgba(22,22,24,0.55) 82%, var(--v2-grey-top) 100%); }
.v2-hero__inner { position: relative; max-width: 1200px; margin: 0 auto; width: 100%; padding: 0 6% 12vh; }
.v2-hero--short .v2-hero__inner { padding-bottom: 8vh; }
.v2-eyebrow { display: inline-flex; align-items: center; gap: 0.7rem; color: #fff; font-size: 0.74rem; font-weight: 500;
              letter-spacing: 0.28em; text-transform: uppercase; margin-bottom: 1.6rem; }
.v2-eyebrow::before { content: ''; width: 34px; height: 1px; background: var(--v2-accent-solid); display: inline-block; }
.v2-hero h1 { font-size: clamp(2.9rem, 7.5vw, 6rem); font-weight: 700; line-height: 1.02; letter-spacing: -0.01em; color: #fff; max-width: 17ch; }
.v2-hero h1 .grad { background: linear-gradient(135deg, #A78BFA, #F0ABFC); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.v2-hero p { color: #E8E8EA; max-width: 50ch; margin: 1.6rem 0 2.4rem; font-size: 1.12rem; font-weight: 300; line-height: 1.75; }

/* ---- Buttons ---- */
.v2-btns { display: flex; gap: 1rem; flex-wrap: wrap; }
.v2-btn { padding: 1rem 2.3rem; border-radius: 50px; font-weight: 600; font-size: 0.82rem; letter-spacing: 0.1em;
          text-transform: uppercase; text-decoration: none; display: inline-block; text-align: center; line-height: 1;
          transition: all .25s ease; cursor: pointer; }
.v2-btn--primary { background: var(--v2-accent); color: #fff; border: 0; }
.v2-btn--primary:hover { filter: brightness(1.08); transform: translateY(-2px); }
.v2-btn--ghost { border: 1px solid rgba(255,255,255,0.55); color: #fff; }
.v2-btn--ghost:hover { background: rgba(255,255,255,0.12); }
.v2-btn--dark { background: var(--v2-charcoal); color: #fff; }

/* slider dots */
.v2-dots { position: absolute; bottom: 3.5vh; left: 50%; transform: translateX(-50%); display: flex; gap: 0.6rem; z-index: 3; }
.v2-dots button { width: 9px; height: 9px; border-radius: 50%; border: 0; background: rgba(255,255,255,0.45); cursor: pointer; padding: 0; transition: all .25s; }
.v2-dots button.is-active { background: #fff; width: 26px; border-radius: 5px; }

/* ===================== FLOW: light grey → deeper grey ===================== */
.v2-flow { background: linear-gradient(180deg, var(--v2-grey-top) 0%, #EAEAEE 50%, var(--v2-grey-mid) 100%); color: var(--v2-text); }
.v2-sec { max-width: 1180px; margin: 0 auto; padding: 7rem 6% 1.5rem; }
.v2-sec--center { text-align: center; }
.v2-head { max-width: 60ch; margin: 0 auto; }
.v2-label { display: inline-flex; align-items: center; gap: 0.7rem; color: var(--v2-accent-solid); font-size: 0.74rem;
            font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; }
.v2-label::before { content: ''; width: 30px; height: 1px; background: var(--v2-accent-solid); opacity: 0.5; display: inline-block; }
.v2-sec--center .v2-label::after { content: ''; width: 30px; height: 1px; background: var(--v2-accent-solid); opacity: 0.5; display: inline-block; }
.v2-sec h2 { font-size: clamp(2rem, 4.4vw, 3.25rem); font-weight: 700; letter-spacing: -0.01em; margin: 1.1rem 0; color: var(--v2-text); }
.v2-sec .lead { color: var(--v2-muted); max-width: 60ch; margin: 0 auto; font-size: 1.12rem; font-weight: 300; line-height: 1.8; }
.v2-sec--center .lead { margin-inline: auto; }
.v2-prose { max-width: 760px; margin: 0 auto; color: var(--v2-muted); font-weight: 300; line-height: 1.9; font-size: 1.05rem; }
.v2-prose h2, .v2-prose h3 { color: var(--v2-text); font-weight: 700; margin: 2rem 0 0.75rem; }
.v2-prose p { margin-bottom: 1.1rem; }
.v2-prose a { color: var(--v2-accent-solid); }

/* ---- Grids + cards ---- */
.v2-grid2 { max-width: 1180px; margin: 2.5rem auto 0; padding: 0 6%; display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.v2-grid3 { max-width: 1180px; margin: 2.5rem auto 0; padding: 0 6%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.75rem; }
@media (max-width: 820px) { .v2-grid2, .v2-grid3 { grid-template-columns: 1fr; } }
.v2-card { background: #fff; border-radius: 4px; overflow: hidden; text-decoration: none; color: var(--v2-text);
  box-shadow: 0 18px 50px rgba(0,0,0,0.08); transition: transform .3s ease, box-shadow .3s ease; display: block; }
.v2-card:hover { transform: translateY(-6px); box-shadow: 0 30px 70px rgba(0,0,0,0.14); }
.v2-card__img { height: 300px; background-size: cover; background-position: center; }
.v2-card__img--sm { height: 200px; }
.v2-card__body { padding: 1.9rem; }
.v2-pill { display: inline-block; font-size: 0.66rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--v2-accent-solid); margin-bottom: 0.9rem; }
.v2-card h3 { font-size: 1.55rem; font-weight: 700; margin-bottom: 0.5rem; }
.v2-card p { color: var(--v2-muted); font-size: 0.98rem; font-weight: 300; line-height: 1.65; margin-bottom: 1rem; }
.v2-card .more { color: var(--v2-text); font-weight: 600; font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; }
.v2-card .price { font-weight: 700; color: var(--v2-text); }

/* ---- Pillars ---- */
.v2-pillars { max-width: 1100px; margin: 3rem auto 0; padding: 0 6%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 3rem; }
@media (max-width: 820px) { .v2-pillars { grid-template-columns: 1fr; gap: 2.5rem; } }
.v2-pillar { text-align: center; }
.v2-pillar svg { width: 34px; height: 34px; stroke: var(--v2-accent-solid); fill: none; stroke-width: 1.4; margin-bottom: 1rem; }
.v2-pillar h3 { font-size: 1.25rem; font-weight: 700; letter-spacing: 0.02em; margin-bottom: 0.6rem; }
.v2-pillar p { color: var(--v2-muted); line-height: 1.75; font-size: 0.98rem; font-weight: 300; }

/* ---- Full-bleed parallax image ---- */
.v2-bleed { width: 100%; height: 78vh; min-height: 440px; margin-top: 6rem; background-size: cover; background-position: center; background-attachment: fixed; }
@media (max-width: 820px) { .v2-bleed { background-attachment: scroll; } }

/* ===================== DARK END (CTA) ===================== */
.v2-cta { background: var(--v2-charcoal); color: #fff; text-align: center; padding: 8rem 6%; }
.v2-cta .v2-label { color: #A78BFA; }
.v2-cta .v2-label::before, .v2-cta .v2-label::after { background: #A78BFA; }
.v2-cta h2 { font-size: clamp(2.4rem, 6vw, 4rem); font-weight: 700; letter-spacing: -0.01em; margin: 1.1rem auto 1.2rem; max-width: 18ch; line-height: 1.05; }
.v2-cta p { color: #BFBFC8; max-width: 50ch; margin: 0 auto 2.4rem; font-weight: 300; line-height: 1.8; }

/* =========================================================================
   OVERRIDES — re-theme existing dark components to light when body.v2 is set.
   Lets older pages adopt the v2 look by adding class="v2" (+ a v2 hero),
   without rewriting their inline styles. body.v2 + class beats inline class
   rules on specificity.
   ========================================================================= */
/* Whole-page light gradient backdrop */
body.v2 { background: linear-gradient(180deg, var(--v2-grey-top) 0%, #EAEAEE 45%, var(--v2-grey-mid) 100%) fixed; color: var(--v2-text); }

/* Content sections → transparent so the gradient shows through; dark text */
body.v2 .choose-section, body.v2 .why-section, body.v2 .programs-section,
body.v2 .coaching-section, body.v2 .location-section, body.v2 .seo-section,
body.v2 .benefits-section, body.v2 .safety-section, body.v2 .faq-section,
body.v2 .tabs-section, body.v2 .enquiry-section, body.v2 .programs-section__inner {
  background: transparent !important;
}
body.v2 h1, body.v2 h2, body.v2 h3, body.v2 h4 { color: var(--v2-text); }
body.v2 p, body.v2 li, body.v2 address { color: var(--v2-muted); }
body.v2 .section-label { color: var(--v2-accent-solid); }

/* Cards → white on light */
body.v2 .program-card, body.v2 .choose-card, body.v2 .pillar-card,
body.v2 .benefit-card, body.v2 .instructor-card, body.v2 .faq-item,
body.v2 .single-price-card {
  background: #fff !important;
  border: 1px solid rgba(0,0,0,0.08) !important;
  box-shadow: 0 16px 44px rgba(0,0,0,0.08);
  color: var(--v2-text);
}
body.v2 .program-card__name, body.v2 .benefit-card h3, body.v2 .choose-card h3,
body.v2 .pillar-card__title, body.v2 .instructor-card h3, body.v2 .faq-item__question { color: var(--v2-text); }
body.v2 .program-card__desc, body.v2 .benefit-card p, body.v2 .choose-card p,
body.v2 .pillar-card__text, body.v2 .faq-item__answer, body.v2 .choose-card__cta { color: var(--v2-muted); }
body.v2 .program-card__price, body.v2 .program-card__price strong { color: var(--v2-text); }
body.v2 .program-card__badge, body.v2 .program-card__footer a { color: var(--v2-accent-solid); }

/* FAQ accordion borders */
body.v2 .faq-item { border-radius: 6px; margin-bottom: 0.75rem; }
body.v2 .faq-item__icon { color: var(--v2-accent-solid); }

/* Enquiry form → light */
body.v2 .enquiry-section { background: transparent !important; }
body.v2 .enquiry-form { background: #fff !important; border: 1px solid rgba(0,0,0,0.08) !important; }
body.v2 .enquiry-intro { color: var(--v2-muted); }
body.v2 .enquiry-intro a { color: var(--v2-accent-solid); }
body.v2 .form-label { color: var(--v2-text) !important; }
body.v2 .form-input, body.v2 .form-select, body.v2 .form-textarea {
  background: #F6F6F8 !important; color: var(--v2-text) !important; border: 1px solid rgba(0,0,0,0.15) !important;
}
body.v2 .form-input::placeholder, body.v2 .form-textarea::placeholder { color: #9A9AA3 !important; }

/* CTA buttons that came from old theme keep working; ensure readable */
body.v2 .cta-button { color: #fff; }

/* =========================================================================
   HERO overrides — keep ALL heroes dark with white text (consistent band),
   and ensure v2-hero text wins over the generic light-theme text rules.
   ========================================================================= */
body.v2 .tt-hero, body.v2 .about-hero, body.v2 .contact-hero, body.v2 .learn-hero,
body.v2 .program-hero, body.v2 .article-hero, body.v2 .legal-hero, body.v2 .page-hero {
  background-color: #161618;
}
body.v2 .tt-hero, body.v2 .tt-hero *,
body.v2 .about-hero, body.v2 .about-hero *,
body.v2 .contact-hero, body.v2 .contact-hero *,
body.v2 .learn-hero, body.v2 .learn-hero *,
body.v2 .program-hero, body.v2 .program-hero *,
body.v2 .article-hero, body.v2 .article-hero *,
body.v2 .legal-hero, body.v2 .legal-hero *,
body.v2 .page-hero, body.v2 .page-hero * { color: #fff; }
/* accent labels inside dark heroes */
body.v2 .tt-hero .section-label, body.v2 .about-hero .section-label,
body.v2 .contact-hero .section-label, body.v2 .learn-hero .section-label,
body.v2 .program-hero .section-label, body.v2 .article-hero .section-label,
body.v2 .legal-hero .section-label, body.v2 .page-hero .section-label,
body.v2 .program-hero .program-hero__eyebrow { color: #A78BFA; }

/* v2-hero text must stay white over the generic body.v2 dark-text rules */
body.v2 .v2-hero h1, body.v2 .v2-hero p, body.v2 .v2-hero .v2-eyebrow { color: #fff !important; }
body.v2 .v2-hero .v2-btn--primary { color: #fff !important; }

/* ---- Announcement strip (gold, fixed at the very top, above the nav) ---- */
.v2-strip { position:fixed; top:0; left:0; right:0; z-index:1100; height:40px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(180deg,#5EC2F0 0%,#2E9BD6 100%); color:#fff; text-decoration:none;
  font-weight:700; font-size:0.8rem; letter-spacing:0.14em; text-transform:uppercase;
  white-space:nowrap; padding:0 1rem; text-shadow:0 1px 2px rgba(0,0,0,0.25);
  transition:transform .35s ease, filter .25s ease; }
.v2-strip:hover { filter:brightness(1.05); }
.v2-strip.is-hidden { transform:translateY(-100%); }
@media (max-width:600px){ .v2-strip { font-size:0.58rem; letter-spacing:0.05em; } }

/* ---- Hover dropdown + mobile submenu: use Roboto to match the nav ---- */
body.v2 .nav-dropdown__link, body.v2 .nav-subdropdown__link,
body.v2 .nav-dropdown__heading a, body.v2 .nav-dropdown__link--parent,
body.v2 .nav-mobile-submenu__link, body.v2 .nav-mobile-submenu__heading a {
  font-family: 'Roboto', Helvetica Neue, Arial, sans-serif;
}

/* Dropdown items styled like the nav links (uppercase + spacing) */
body.v2 .nav-dropdown__link, body.v2 .nav-subdropdown__link, body.v2 .nav-dropdown__link--parent,
body.v2 .nav-mobile-submenu__link {
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-weight: 400;
  font-size: 0.68rem;
}
body.v2 .nav-mobile-submenu__link { font-size: 0.9rem; }

/* Top nav links: lighter weight + wider tracking to match the eyebrow */
body.v2 .nav-menu__link { font-weight: 400; letter-spacing: 0.18em; font-size: 0.8rem; }

/* =========================================================================
   COMPACT PAGE HEADERS — inner pages use a small header band, not a full
   banner. The homepage (body.has-strip) keeps its full-screen slider.
   ========================================================================= */
body.v2:not(.has-strip) .v2-hero { height: auto; aspect-ratio: 5 / 2; min-height: 340px; max-height: 620px; }
body.v2:not(.has-strip) .v2-hero.v2-hero--img { background-position: center; }
body.v2:not(.has-strip) .v2-hero__inner { padding-bottom: 4vh; }
body.v2:not(.has-strip) .v2-hero h1 {
  font-size: clamp(2rem, 4.4vw, 3.3rem);
  font-weight: 400;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
body.v2:not(.has-strip) .v2-hero p { display: none; }

/* Older banner heroes (existing program + inner pages) → compact */
body.v2 .program-hero, body.v2 .tt-hero, body.v2 .about-hero, body.v2 .contact-hero,
body.v2 .learn-hero, body.v2 .article-hero, body.v2 .legal-hero, body.v2 .page-hero {
  min-height: 0 !important; padding-top: 7rem !important; padding-bottom: 3rem !important;
}
body.v2 .program-hero__image, body.v2 .program-hero__image img,
body.v2 .program-hero picture, body.v2 .program-hero picture img { max-height: 280px; }

/* ---- Two-column intro strip (heading | text), thin rules top & bottom ---- */
.v2-intro { border-top: 1px solid rgba(0,0,0,0.12); border-bottom: 1px solid rgba(0,0,0,0.12); }
.v2-intro__inner { max-width: 1180px; margin: 0 auto; padding: clamp(3.5rem,7vw,6rem) 6%;
  display: grid; grid-template-columns: 1fr 1.25fr; gap: clamp(2rem,5vw,5rem); align-items: start; }
@media (max-width: 820px) { .v2-intro__inner { grid-template-columns: 1fr; gap: 1.25rem; } }
body.v2 .v2-intro__title { font-size: clamp(2.1rem,4vw,3.3rem); font-weight: 300; line-height: 1.08; letter-spacing: -0.01em; color: var(--v2-text); }
.v2-intro__body p { color: var(--v2-text); font-weight: 400; font-size: 1.15rem; line-height: 1.75; margin: 0; }

/* ---- Instagram icon (minimal) ---- */
.v2-insta-min { text-align:center; padding:3rem 6%; background:var(--v2-grey-mid); }
.v2-insta-min__link { display:inline-flex; width:52px; height:52px; align-items:center; justify-content:center;
  border-radius:14px; background:linear-gradient(135deg,#7C3AED 0%,#DB2777 100%); transition:transform .2s ease; }
.v2-insta-min__link:hover { transform:translateY(-3px); }
.v2-insta-min__link svg { width:26px; height:26px; stroke:#fff; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* ---- Narrower (shorter) footer ---- */
body.v2 .footer-main { padding: 2.5rem 5% 1.25rem; }
body.v2 .footer-bottom { padding: 1rem 5%; }

/* ---- Narrow footer strip ---- */
body.v2 .site-footer { background:#161618; border-top:1px solid rgba(255,255,255,0.10); border-image:none; }
.footer-strip { text-align:center; padding:1.5rem 6%; }
.footer-strip__copy { color:#8a8a92; font-size:0.8rem; letter-spacing:0.02em; margin:0 0 0.55rem; }
.footer-strip__legal { display:flex; gap:0.7rem; justify-content:center; align-items:center; font-size:0.8rem; }
.footer-strip__legal a { color:#9a9aa3; text-decoration:none; transition:color .2s ease; }
.footer-strip__legal a:hover { color:#A78BFA; }
.footer-strip__legal span { color:#55555c; }

/* outline button on light backgrounds */
.v2-btn--outline { border:1px solid rgba(0,0,0,0.28); color:var(--v2-text); }
.v2-btn--outline:hover { background:rgba(0,0,0,0.05); }

/* ===================== MOBILE: fit hero/banner images better ===================== */
@media (max-width: 600px) {
  /* Homepage full-screen slider: shorter so wide images aren't over-zoomed/cropped */
  body.has-strip .v2-hero { height: 66vh; min-height: 440px; }
  body.has-strip .v2-hero__inner { padding-bottom: 8vh; }
  /* Inner-page banners: keep them shorter & wider so the 2.5:1 image shows more */
  body.v2:not(.has-strip) .v2-hero { aspect-ratio: auto; height: auto; min-height: 220px; max-height: 300px; }
}

/* Buttons inside prose keep their own colours (was inheriting the purple link colour) */
.v2-prose a.v2-btn { text-decoration: none; }
.v2-prose a.v2-btn--primary, .v2-prose a.v2-btn--dark { color: #fff; }
.v2-prose a.v2-btn--outline, .v2-prose a.v2-btn--ghost { color: var(--v2-text); }

/* Mobile: subject-focused crops for wide hero images */
@media (max-width: 600px) {
  .mslide-ap { background-image: url('/images/hero/hero-aerial-pole-m.webp') !important; background-position: center !important; }
  .mbanner-junior { background-image: linear-gradient(180deg,rgba(22,22,24,0.45) 0%,rgba(22,22,24,0.10) 32%,rgba(22,22,24,0.22) 55%,rgba(22,22,24,0.58) 82%,#F2F2F4 100%), url('/images/hero/hero-junior-academy-m.webp') !important; background-position: center !important; }
  .mbanner-tween { background-image: linear-gradient(180deg,rgba(22,22,24,0.45) 0%,rgba(22,22,24,0.10) 32%,rgba(22,22,24,0.22) 55%,rgba(22,22,24,0.58) 82%,#F2F2F4 100%), url('/images/hero/hero-tween-exploration-m.webp') !important; background-position: center !important; }
  .mbanner-teen { background-image: linear-gradient(180deg,rgba(22,22,24,0.45) 0%,rgba(22,22,24,0.10) 32%,rgba(22,22,24,0.22) 55%,rgba(22,22,24,0.58) 82%,#F2F2F4 100%), url('/images/hero/hero-teen-elite-lab-m.webp') !important; background-position: center !important; }
}

/* Booking/primary buttons always have white text (never inherit link colour) */
a.v2-btn--primary, .v2-prose a.v2-btn--primary, a.v2-btn--primary.dance-booking-button { color: #fff !important; }

/* ===================== BOOKING CARD (price + term + enrol) ===================== */
.v2-booking-card {
  max-width: 440px;
  margin: 3rem auto 0;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 14px;
  padding: 2rem 1.75rem;
  text-align: center;
  box-shadow: 0 18px 50px rgba(0,0,0,0.07);
}
.v2-booking-card__price {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 400;
  color: var(--v2-muted);
  letter-spacing: 0.01em;
}
.v2-booking-card__price span {
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--v2-text);
  letter-spacing: -0.01em;
  margin-right: 0.15rem;
}
.v2-booking-card__meta {
  margin: 0.6rem auto 0;
  max-width: 34ch;
  color: var(--v2-muted);
  font-weight: 300;
  font-size: 0.9rem;
  line-height: 1.6;
}
.v2-booking-card__term {
  margin: 1.5rem 0 0;
  padding-top: 1.4rem;
  border-top: 1px solid rgba(0,0,0,0.08);
  color: var(--v2-accent-solid);
  font-weight: 700;
  font-size: 0.92rem;
  letter-spacing: 0.02em;
}
.v2-booking-card__term:empty { display: none; }
.v2-booking-card__btns {
  display: flex;
  gap: 0.85rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 1.4rem;
}
.v2-booking-card__btns .v2-btn { min-width: 9.5rem; }

/* ===================== FAQ ACCORDION (details/summary) ===================== */
.v2-faq { max-width: 760px; margin: 1.5rem auto 0; text-align: left; }
.v2-faq__item { border-bottom: 1px solid rgba(0,0,0,0.1); }
.v2-faq__item summary {
  list-style: none; cursor: pointer; position: relative;
  padding: 1.15rem 2.25rem 1.15rem 0;
  font-weight: 600; font-size: 1.02rem; color: var(--v2-text); line-height: 1.45;
}
.v2-faq__item summary::-webkit-details-marker { display: none; }
.v2-faq__item summary::after {
  content: '+'; position: absolute; right: 0.15rem; top: 50%; transform: translateY(-50%);
  font-size: 1.5rem; font-weight: 300; line-height: 1; color: var(--v2-accent-solid);
}
.v2-faq__item[open] summary::after { content: '\2212'; }
.v2-faq__item summary:hover { color: var(--v2-accent-solid); }
.v2-faq__a { padding: 0 0 1.3rem; }
.v2-faq__a p { margin: 0; color: var(--v2-muted); font-weight: 300; font-size: 1rem; line-height: 1.75; }

/* Visually-hidden H1 / heading — invisible on screen, zero layout space,
   still read by search engines and screen readers (legitimate, not cloaking). */
.v2-sr-only {
  position: absolute !important;
  width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ===================== LEARN / PARENTS' GUIDE ===================== */
.learn-head { background: var(--v2-grey-top); padding: 7rem 6% 3rem; text-align: center; }
.learn-head__inner { max-width: 720px; margin: 0 auto; }
.learn-head h1 { font-size: clamp(2rem,5vw,3.2rem); font-weight: 400; letter-spacing: 0.01em; text-transform: uppercase; color: var(--v2-text); margin: 0.6rem 0 1rem; line-height: 1.1; }
.learn-head .lead { color: var(--v2-muted); font-weight: 300; font-size: 1.12rem; line-height: 1.75; }
.learn-crumbs { font-size: 0.78rem; letter-spacing: 0.04em; color: var(--v2-muted); }
.learn-crumbs a { color: var(--v2-accent-solid); text-decoration: none; }

/* Hub grid */
.learn-grid { background: var(--v2-grey-top); padding: 1rem 6% 6rem; }
.learn-grid__inner { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: repeat(3,1fr); gap: 1.5rem; }
@media (max-width: 880px) { .learn-grid__inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .learn-grid__inner { grid-template-columns: 1fr; } }
.learn-card { display: flex; flex-direction: column; background: #fff; border: 1px solid rgba(0,0,0,0.08); border-radius: 12px; padding: 1.75rem 1.6rem; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; box-shadow: 0 10px 30px rgba(0,0,0,0.04); }
.learn-card:hover { transform: translateY(-3px); box-shadow: 0 18px 44px rgba(0,0,0,0.09); }
.learn-card__tag { font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--v2-accent-solid); font-weight: 600; }
.learn-card__title { font-size: 1.18rem; font-weight: 600; color: var(--v2-text); line-height: 1.3; margin: 0.6rem 0 0.6rem; }
.learn-card__blurb { font-size: 0.95rem; font-weight: 300; color: var(--v2-muted); line-height: 1.65; margin: 0; flex: 1; }
.learn-card__more { margin-top: 1.1rem; font-size: 0.82rem; font-weight: 600; letter-spacing: 0.04em; color: var(--v2-accent-solid); }

/* Article layout */
.article-head { background: var(--v2-grey-top); padding: 7rem 6% 2.5rem; text-align: center; }
.article-head__inner { max-width: 760px; margin: 0 auto; }
.article-head__tag { font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--v2-accent-solid); font-weight: 600; }
.article-head h1 { font-size: clamp(1.9rem,4.6vw,3rem); font-weight: 400; color: var(--v2-text); line-height: 1.12; margin: 0.7rem 0 0.9rem; }
.article-head__meta { font-size: 0.85rem; color: var(--v2-muted); letter-spacing: 0.02em; }
.article-cta { max-width: 760px; margin: 3rem auto 0; background: #fff; border: 1px solid rgba(0,0,0,0.08); border-radius: 14px; padding: 2rem 1.75rem; text-align: center; box-shadow: 0 18px 50px rgba(0,0,0,0.06); }
.article-cta h2 { font-size: 1.35rem; font-weight: 600; color: var(--v2-text); margin: 0 0 0.6rem; }
.article-cta p { color: var(--v2-muted); font-weight: 300; font-size: 0.98rem; line-height: 1.7; margin: 0 auto 1.4rem; max-width: 48ch; }
.article-cta__btns { display: flex; gap: 0.85rem; justify-content: center; flex-wrap: wrap; }

/* Subtle hero H1 (present for SEO, visually understated) */
.v2-hero__h1 { color:#fff; font-size:clamp(1.15rem, 3.4vw, 1.7rem); font-weight:400; letter-spacing:0.01em; line-height:1.3; max-width:22ch; margin:0.5rem 0 1rem; text-shadow:0 1px 6px rgba(0,0,0,0.4); }

/* Term/remaining-weeks note on the homepage hero */
.v2-hero__term { color:#F4F4F6; font-size:clamp(0.64rem, 2.7vw, 1.05rem); font-weight:700; letter-spacing:0.01em; margin:0 0 1.1rem; white-space:nowrap; text-shadow:0 1px 3px rgba(0,0,0,0.45); }
.v2-hero__term:empty { display:none; }
