/* ============================================================
   MIDWITHME, SHARED STYLESHEET
   ============================================================
   HOW TO EDIT:
   - Change colours: update values in :root below
   - Change fonts: update --font-body or --font-display
   - Change section spacing: update --section-pad-v / --section-pad-h
   - Change max page width: update --max-w
   All three pages (index.html, mums.html, students.html) use this file.
   ============================================================ */

/* Fonts loaded via <link rel="stylesheet"> in each page's <head> for
   non-blocking parallel download. Preconnect hints in the HTML give
   us a head-start on the TLS handshake to the font CDNs. */

/* ── BRAND TOKENS ─────────────────────────────────────────── */
:root {
  /* Primary palette */
  --purple:         #7C3AED;   /* ← main brand purple */
  --purple2:        #6D28D9;
  --purple-light:   #EDE9FE;
  --purple-mid:     #C4B5FD;
  --dark:           #1C1229;   /* ← near-black background */
  --ink:            #1C1229;   /* ← body text + headlines (alias of --dark) */
  --plum:           #1C1229;   /* ← primary headline colour (matches banner bg) */
  --mid:            #2C1F44;
  --muted:          #8B7BAA;
  --soft:           #FAF8FF;   /* ← light background */
  --cream:          #FBF5ED;   /* ← warm tone (mum moments / our story) */
  --cream-deep:     #F3EADB;
  --lavender:       #F4F0FC;
  --card:           #FFFFFF;
  --border:         #E8E0F5;
  --hairline:       #E8E0F5;   /* ← thin dividing line (alias of --border) */
  --yellow:         #FFCA01;   /* ← accent yellow */
  --yellow-dark:    #1a0a4a;

  /* Typography */
  --font-body:      'Satoshi', sans-serif;
  --font-display:   'Fraunces', serif;

  /* Sizing */
  --max-w:          1100px;    /* ← max content width */
  --section-pad-v:  80px;      /* ← section top/bottom padding */
  --section-pad-h:  48px;      /* ← section left/right padding */
  --nav-height:     84px;

  /* Radii */
  --radius-card:    20px;
  --radius-pill:    100px;
  --radius-img:     28px;
}

/* ── RESET ────────────────────────────────────────────────── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family: var(--font-body);
  background: var(--soft);
  color: var(--dark);
  overflow-x: hidden;
  line-height: 1.6;
}

/* ── TYPOGRAPHY ───────────────────────────────────────────── */
h1, h2, h3 { font-family: var(--font-body); }
h1 {
  font-size: clamp(40px, 5.5vw, 68px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -2px;
  margin-bottom: 24px;
}
h1 em, h2 em {
  font-style: italic;
  color: var(--purple);
  font-family: var(--font-display);
  font-weight: 400;
}
h2 {
  font-size: clamp(30px, 4vw, 50px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -1.5px;
  margin-bottom: 16px;
}
h3 {
  font-family: var(--font-body);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -0.5px;
}

/* ── NAV ──────────────────────────────────────────────────── */
.site-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* Horizontal padding dynamically equals the hero's side margins, so
     logo + Login + Join free align with the hero content (max-width:
     1100px centered). On narrower viewports, falls back to the
     standard --section-pad-h. */
  padding: 18px max(var(--section-pad-h), calc((100% - 1100px) / 2));
  background: rgba(250,248,255,0.92);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
  height: var(--nav-height);
  transition:
    top 0.35s cubic-bezier(0.2, 0.8, 0.2, 1),
    left 0.35s cubic-bezier(0.2, 0.8, 0.2, 1),
    right 0.35s cubic-bezier(0.2, 0.8, 0.2, 1),
    max-width 0.35s cubic-bezier(0.2, 0.8, 0.2, 1),
    margin 0.35s cubic-bezier(0.2, 0.8, 0.2, 1),
    padding 0.35s cubic-bezier(0.2, 0.8, 0.2, 1),
    background 0.35s cubic-bezier(0.2, 0.8, 0.2, 1),
    border 0.35s cubic-bezier(0.2, 0.8, 0.2, 1),
    border-radius 0.35s cubic-bezier(0.2, 0.8, 0.2, 1),
    box-shadow 0.35s cubic-bezier(0.2, 0.8, 0.2, 1),
    height 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* Scrolled state: floating glassy dark pill, matches the stat banner ink (#1C1229) */
.site-nav.is-scrolled {
  top: 16px;
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  max-width: min(1480px, calc(100% - 32px));
  width: max-content;
  padding: 10px 14px 10px 22px;
  background: rgba(28, 18, 41, 0.88);
  backdrop-filter: blur(18px) saturate(1.4);
  -webkit-backdrop-filter: blur(18px) saturate(1.4);
  /* Outer soft-white 1px rim — the "first" border of the double-border
     effect. The ::before pseudo below draws a second reflective rim
     slightly inset from this, mirroring the layered look on the
     enterprise-grade glass card. */
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  box-shadow:
    0 16px 40px -12px rgba(28, 18, 41, 0.45),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
  height: auto;
  gap: 42px;
  isolation: isolate;
}

/* Surface sheen — soft white lens highlight across the top-left,
   matching the Kinso-style glass effect used on stat/voice cards.
   Static (no scroll animation) to keep the nav visually stable. */
.site-nav.is-scrolled::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: 0;
  background: linear-gradient(155deg,
    rgba(255, 255, 255, 0.18) 0%,
    rgba(255, 255, 255, 0.05) 32%,
    rgba(255, 255, 255, 0) 60%,
    rgba(124, 58, 237, 0.15) 100%);
  mix-blend-mode: screen;
}

/* Inner reflective rim — conic-gradient ring drawn via mask-composite,
   inset 3px from the outer border. This creates the "double border"
   glass look: thin outer white rim + visible gap + bright reflective
   inner rim (same pattern as the enterprise-grade trust tile). */
.site-nav.is-scrolled::before {
  content: '';
  position: absolute;
  inset: 3px;
  border-radius: 999px;
  padding: 1.5px;
  pointer-events: none;
  z-index: 1;
  background: conic-gradient(
    from 135deg,
    rgba(124, 58, 237, 0.25) 0deg,
    rgba(167, 120, 255, 0.55) 45deg,
    rgba(255, 255, 255, 0.70) 90deg,
    rgba(167, 120, 255, 0.55) 135deg,
    rgba(124, 58, 237, 0.28) 180deg,
    rgba(124, 58, 237, 0.18) 270deg,
    rgba(124, 58, 237, 0.25) 360deg);
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
}

/* Ensure nav children sit above the surface sheen + reflective rim */
.site-nav.is-scrolled > * {
  position: relative;
  z-index: 2;
}
.site-nav.is-scrolled .nav-links {
  gap: 24px;
}
.site-nav.is-scrolled .nav-actions {
  gap: 10px;
}

/* Top of page (white-bg nav) uses purple glow + bold from the base rule above.
   Scrolled glassy pill: override to yellow + yellow glow + bold for the pop. */
.site-nav.is-scrolled .nav-links a {
  color: rgba(255, 255, 255, 0.9);
  font-weight: 400;
  text-decoration: none;
  text-shadow: none;
}
.site-nav.is-scrolled .nav-links a:hover,
.site-nav.is-scrolled .nav-links a.active {
  color: var(--yellow);
  font-weight: 500;
  text-decoration: none;
  text-shadow:
    0 0 7px rgba(255, 202, 1, 0.32),
    0 0 16px rgba(255, 202, 1, 0.18);
}
.site-nav.is-scrolled .nav-links a:focus-visible {
  outline-color: var(--yellow);
}
.site-nav.is-scrolled .btn-ghost-sm {
  color: white;
  border-color: rgba(255, 255, 255, 0.35);
  background: transparent;
}
.site-nav.is-scrolled .btn-ghost-sm:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.6);
}
/* Join free stays yellow on glassy purple for pop */
.site-nav.is-scrolled .btn-nav-cta {
  background: var(--yellow);
  color: var(--ink);
}
.site-nav.is-scrolled .btn-nav-cta:hover {
  background: white;
  color: var(--ink);
}
.site-nav.is-scrolled .nav-burger span {
  background: white;
}
.nav-logo { text-decoration: none; display: flex; align-items: center; }
/* Default (top-of-page) logo state: full violet wordmark.
   The wordmark SVG is 16:9, so a smaller height keeps the visible logo
   close to the previous icon-only proportions while showing the wordmark. */
.nav-logo-img { height: 81px; width: auto; display: block; }
.nav-logo-violet { display: block; }
.nav-logo-icon-white { display: none; }

/* Scrolled pill: show icon-only white variant, smaller */
.site-nav.is-scrolled .nav-logo-violet { display: none; }
.site-nav.is-scrolled .nav-logo-icon-white {
  display: block;
  height: 30px;
}

/* ── CHANGE NAVIGATION LINKS HERE ── */
.nav-links {
  display: flex;
  align-items: center;
  gap: 22px;
  list-style: none;
  margin: 0;
  padding: 0;
  white-space: nowrap;
}
.nav-links a {
  font-size: 14px;
  color: var(--mid);
  position: relative;
  text-decoration: none;
  white-space: nowrap;
  /* Reserve the bold-state width so the pill doesn't resize on hover.
     Use inline-grid so the visible label and the invisible bold-width
     mirror occupy the SAME grid cell — they overlap rather than stack,
     so the link stays one line and the height never grows. */
  display: inline-grid;
  grid-template-columns: max-content;
  align-items: center;
  justify-items: center;
  transition: color 0.25s ease, text-shadow 0.3s ease;
}
.nav-links a::after {
  content: attr(data-text);
  font-weight: 500;
  visibility: hidden;
  pointer-events: none;
  /* Same grid cell as the visible text — width is reserved, height is
     dictated by the visible text's line-height (they're identical). */
  grid-column: 1;
  grid-row: 1;
}
.nav-links a > * {
  grid-column: 1;
  grid-row: 1;
}
.nav-links a:hover,
.nav-links a.active {
  color: var(--purple);
  font-weight: 500;
  text-decoration: none;
  text-shadow:
    0 0 6px rgba(124, 58, 237, 0.22),
    0 0 14px rgba(124, 58, 237, 0.12);
}
.nav-links a.active { font-weight: 500; }
.nav-links a:focus-visible {
  outline: 2px solid var(--purple);
  outline-offset: 4px;
  border-radius: 4px;
}
  text-decoration: none;
  font-weight: 400;
  transition: color 0.2s;
  white-space: nowrap;
}
.nav-links a:hover,
.nav-links a.active { /* duplicate guard: keep purple glow consistent at the top of page */
  color: var(--purple);
}
.nav-links a.active { font-weight: 500; }

/* Tighten nav slightly on medium-large screens so 6 links + actions fit comfortably */
@media (max-width: 1180px) and (min-width: 961px) {
  .nav-links { gap: 14px; }
  .nav-links a { font-size: 13px; }
}
.site-nav.is-scrolled .nav-links { gap: 24px; }
@media (max-width: 1180px) and (min-width: 961px) {
  .site-nav.is-scrolled .nav-links { gap: 14px; }
}

/* Global focus ring — accessibility pass */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--purple);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Footer email link */
.footer-email {
  display: inline-block;
  margin-top: 14px;
  color: rgba(255,255,255,0.85);
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  border-bottom: 1px solid rgba(255,255,255,0.25);
  padding-bottom: 2px;
  transition: color 0.2s, border-color 0.2s;
}
.footer-email:hover {
  color: var(--yellow);
  border-bottom-color: var(--yellow);
  text-shadow:
    0 0 8px rgba(255, 202, 1, 0.5),
    0 0 18px rgba(255, 202, 1, 0.3),
    0 0 30px rgba(255, 202, 1, 0.16);
}

/* Reduced motion: cap any remaining transitions/animations */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

.nav-actions { display: flex; gap: 10px; align-items: center; }
.btn-ghost-sm {
  padding: 10px 23px;
  border-radius: var(--radius-pill);
  font-size: 14px; font-weight: 500;
  color: var(--purple);
  background: transparent;
  border: 1.5px solid var(--border);
  text-decoration: none; cursor: pointer;
  transition: all 0.2s;
  font-family: var(--font-body);
}
.btn-ghost-sm:hover { background: var(--purple-light); border-color: var(--purple-mid); }
.btn-nav-cta {
  padding: 10px 25px;
  border-radius: var(--radius-pill);
  font-size: 14px; font-weight: 500;
  background: var(--yellow);
  color: var(--yellow-dark); border: none;
  text-decoration: none; cursor: pointer;
  transition: all 0.2s;
  font-family: var(--font-body);
}
.btn-nav-cta:hover { background: var(--purple); color: white; transform: translateY(-1px); }

/* Mobile hamburger */
.nav-burger {
  display: none;
  flex-direction: column; gap: 5px;
  background: none; border: none; cursor: pointer; padding: 4px;
}
.nav-burger span { width: 22px; height: 2px; background: var(--dark); border-radius: 2px; transition: all 0.3s; display: block; }

/* ──────────────────────────────────────────────────────────────
   Mobile menu — frosted glass drawer that slides down from the nav.
   Two visual states (matching the two nav states):

   1. DEFAULT (nav is full-width bar at top):
      drawer is full-width, sits flush under the nav, light glass
      surface with brand violet tint.

   2. SCROLLED (nav is collapsed to centered pill):
      drawer becomes its own floating panel, matched horizontally
      to the pill's inset (16px each side), dark surface matching
      the pill, all four corners rounded so it reads as a deliberate
      dropdown attached to the pill.
   ────────────────────────────────────────────────────────────── */

/* === Default state === */
.mobile-menu {
  display: none;
  position: fixed;
  top: var(--nav-height);
  left: 0;
  right: 0;
  background:
    linear-gradient(180deg,
      rgba(255, 255, 255, 0.72) 0%,
      rgba(244, 240, 252, 0.62) 100%);
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  border-bottom: 1px solid rgba(124, 58, 237, 0.14);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.6),
    0 18px 40px -12px rgba(28, 18, 41, 0.18),
    0 0 60px -10px rgba(124, 58, 237, 0.18);
  border-radius: 0 0 20px 20px;
  padding: 18px var(--section-pad-h) 22px;
  z-index: 99;
  flex-direction: column;
  gap: 6px;
  transition:
    top 0.3s ease,
    left 0.3s ease,
    right 0.3s ease,
    border-radius 0.3s ease,
    background 0.3s ease,
    padding 0.3s ease;
}
.mobile-menu.open { display: flex; }
.mobile-menu a {
  font-size: 16px;
  color: var(--ink);
  text-decoration: none;
  font-weight: 500;
  transition: color 0.25s ease, background 0.25s ease, padding-left 0.25s ease;
  padding: 12px 14px;
  border-radius: 12px;
  border-bottom: none;
  letter-spacing: -0.1px;
}
.mobile-menu a:hover,
.mobile-menu a:active {
  color: var(--purple);
  background: rgba(124, 58, 237, 0.08);
  padding-left: 18px;
  text-shadow: none;
}
.mobile-menu a.active {
  color: var(--purple);
  font-weight: 600;
  background: rgba(124, 58, 237, 0.06);
}

/* === Scrolled state — pill nav is active, drawer becomes floating dark panel === */
.site-nav.is-scrolled ~ .mobile-menu {
  /* Sit just below the pill (pill is at top:16px, ~64px tall) */
  top: 88px;
  left: 16px;
  right: 16px;
  border-radius: 22px;
  padding: 14px 14px 16px;
  /* More transparent than the pill (0.88) so the drawer reads as
     glass while the pill stays as the solid anchor. The boosted
     blur + saturate keeps the perceived color in the same dark
     violet family so the two read as the same component. */
  background: rgba(28, 18, 41, 0.62);
  backdrop-filter: blur(28px) saturate(1.6);
  -webkit-backdrop-filter: blur(28px) saturate(1.6);
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 16px 40px -12px rgba(28, 18, 41, 0.55),
    0 0 60px -10px rgba(124, 58, 237, 0.30);
}
.site-nav.is-scrolled ~ .mobile-menu a {
  color: rgba(255, 255, 255, 0.82);
  font-weight: 500;
  padding: 12px 16px;
}
.site-nav.is-scrolled ~ .mobile-menu a:hover,
.site-nav.is-scrolled ~ .mobile-menu a:active {
  color: white;
  background: rgba(255, 255, 255, 0.08);
  padding-left: 20px;
}
.site-nav.is-scrolled ~ .mobile-menu a.active {
  color: var(--yellow);
  background: rgba(255, 255, 255, 0.06);
  font-weight: 600;
}

/* ── BUTTONS ──────────────────────────────────────────────── */
/* ← CHANGE BUTTON COLOURS HERE */
.btn-primary,
.btn-mum {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 16px 32px;
  border-radius: var(--radius-pill);
  font-size: 15px; font-weight: 500;
  background: var(--yellow); color: var(--yellow-dark);
  border: none; text-decoration: none; cursor: pointer;
  transition: all 0.22s;
  font-family: var(--font-body);
}
.btn-primary:hover,
.btn-mum:hover { background: var(--purple); color: white; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(124,58,237,0.3); }

/* ── DUAL CTA BUTTONS (used across all subpages) ───────────── */
.btn-dual {
  display: inline-flex; align-items: center; gap: 11px;
  padding: 17px 28px 17px 21px;
  border-radius: var(--radius-pill);
  text-decoration: none; transition: all 0.22s;
  font-size: 15px; font-weight: 500;
  font-family: var(--font-body);
  border: none; cursor: pointer;
  white-space: nowrap;
}
.btn-dual .btn-ic {
  width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.btn-dual.mum        { background: var(--yellow); color: var(--dark); }
.btn-dual.mum .btn-ic{ background: rgba(28,18,41,0.15); }
.btn-dual.mum:hover  { background: var(--purple); color: white; transform: translateY(-2px); box-shadow: 0 14px 30px rgba(124,58,237,0.3); }

.btn-dual.student      { background: white; color: var(--dark); border: 1.5px solid var(--border); }
.btn-dual.student .btn-ic { background: var(--yellow); color: var(--dark); }
.btn-dual.student:hover{ border-color: var(--dark); transform: translateY(-2px); }

.btn-dual svg { width: 14px; height: 14px; stroke-width: 2.2; }
.btn-dual .btn-arrow {
  width: 16px; height: 16px;
  stroke-width: 2.2;
  margin-left: 2px;
  transition: transform 0.22s;
}
.btn-dual:hover .btn-arrow { transform: translateX(3px); }

@media (max-width: 720px) {
  .btn-dual { padding: 13px 18px 13px 14px; font-size: 13px; gap: 8px; }
  .btn-dual .btn-ic { width: 26px; height: 26px; }
  .btn-dual svg { width: 11px; height: 11px; }
}

.btn-yellow {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 16px 32px;
  border-radius: var(--radius-pill);
  font-size: 15px; font-weight: 500;
  background: var(--yellow); color: var(--yellow-dark);
  border: none; text-decoration: none; cursor: pointer;
  transition: all 0.22s;
  font-family: var(--font-body);
}
.btn-yellow:hover { background: white; color: var(--dark); transform: translateY(-2px); }

.btn-outline {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 28px;
  border-radius: var(--radius-pill);
  font-size: 15px; font-weight: 500;
  background: transparent; color: var(--purple);
  border: 2px solid var(--border);
  text-decoration: none; cursor: pointer;
  transition: all 0.22s;
  font-family: var(--font-body);
}
.btn-outline:hover { background: var(--yellow); color: var(--yellow-dark); border-color: var(--yellow); transform: translateY(-2px); }

.btn-lg { padding: 17px 36px; font-size: 16px; }

/* ── SECTION BASE ─────────────────────────────────────────── */
section { padding: var(--section-pad-v) var(--section-pad-h); }
.section-inner { max-width: var(--max-w); margin: 0 auto; }
.section-label {
  font-size: 11px; font-weight: 600;
  letter-spacing: 2px; text-transform: uppercase;
  color: var(--purple); margin-bottom: 12px;
  font-family: var(--font-body);
  display: block;
}
.section-sub {
  font-size: 17px; color: var(--mid);
  line-height: 1.7; font-weight: 300;
  max-width: 540px;
  margin-bottom: 48px;
}
.section-header { text-align: center; margin-bottom: 56px; }
.section-header h2 { margin-bottom: 0; }
.section-header .section-sub { margin: 0 auto; }

/* ── HERO (SHARED BASE) ───────────────────────────────────── */
/* Individual pages override colours/image via page-specific <style> */
.hero {
  min-height: auto;
  display: flex; align-items: center;
  padding: 90px var(--section-pad-h) 60px;
  position: relative; overflow: hidden;
}
.hero-inner {
  max-width: var(--max-w); margin: 0 auto; width: 100%;
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 80px; align-items: center;
  position: relative; z-index: 1;
}
.hero-badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--purple-light); color: var(--purple);
  padding: 6px 16px; border-radius: var(--radius-pill);
  font-size: 13px; font-weight: 500; margin-bottom: 24px;
}
.hero-sub {
  font-size: 18px; line-height: 1.7; color: var(--mid);
  font-weight: 300; max-width: 540px; margin-bottom: 32px;
}
.hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 40px; }
.hero-trust { display: flex; align-items: center; gap: 10px; }
.hero-trust-text { font-size: 13px; color: var(--muted); }
.hero-trust-text strong { color: var(--dark); font-weight: 500; }
.hero-trust-divider { width: 1px; height: 14px; background: var(--border); }
.hero-visual { position: relative; }
.hero-photo-wrap {
  position: relative; border-radius: var(--radius-img);
  overflow: hidden; aspect-ratio: 4/5; max-height: 560px;
  box-shadow: 0 24px 64px rgba(124,58,237,0.15);
}
.hero-photo { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
/* ← SWAP HERO IMAGES: replace src="images/hero-home.jpg" etc. on each page */
.hero-photo-badge {
  position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%);
  display: inline-flex; align-items: center; gap: 8px; white-space: nowrap;
  background: white; border-radius: var(--radius-pill);
  padding: 10px 18px; font-size: 13px; font-weight: 500; color: var(--dark);
  box-shadow: 0 8px 32px rgba(28,18,41,0.15);
}
.hero-photo-badge svg { stroke: var(--purple); flex-shrink: 0; }

/* ── SCROLLING TICKER ─────────────────────────────────────── */
/* ← CHANGE TICKER ITEMS: edit the text in index.html's ticker section */
.ticker {
  background: var(--dark);
  border-top: 1px solid rgba(255,255,255,0.05);
  border-bottom: 1px solid rgba(255,255,255,0.05);
  overflow: hidden; position: relative; padding: 0;
}
.ticker::before, .ticker::after {
  content: ''; position: absolute; top: 0; bottom: 0; width: 80px; z-index: 2; pointer-events: none;
}
.ticker::before { left: 0; background: linear-gradient(to right, var(--dark), transparent); }
.ticker::after  { right: 0; background: linear-gradient(to left, var(--dark), transparent); }
.ticker-track {
  display: flex; align-items: center;
  animation: ticker 50s linear infinite;
  width: max-content;
}
.ticker:hover .ticker-track { animation-play-state: paused; }
@keyframes ticker { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.ticker-item {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 32px; white-space: nowrap;
  font-size: 15px; font-weight: 400; color: rgba(255,255,255,0.5);
}
.ticker-item strong { color: white; font-weight: 500; }
.ticker-item svg { width: 14px; height: 14px; stroke: var(--purple-mid); fill: none; stroke-width: 2; flex-shrink: 0; }
.ticker-sep { width: 5px; height: 5px; background: rgba(255,255,255,0.15); border-radius: 50%; flex-shrink: 0; }

/* ── PRODUCT SHOWCASE ─────────────────────────────────────── */
/* ← SWAP APP SCREENSHOT: replace .browser-screen src or .phone-screen src */
.product-showcase {
  background: var(--dark); padding: 80px var(--section-pad-h);
  text-align: center; position: relative; overflow: hidden;
}
.product-showcase::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse 70% 60% at 50% 100%, rgba(124,58,237,0.3) 0%, transparent 60%);
  pointer-events: none;
}
.ps-label { color: var(--purple-mid); margin-bottom: 8px; }
.ps-heading { color: white; margin-bottom: 48px; position: relative; z-index: 1; }

/* Desktop: browser frame */
.ps-browser {
  display: block;
  max-width: 900px; margin: 0 auto;
  border-radius: 16px; overflow: hidden;
  box-shadow: 0 40px 100px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.08);
  position: relative; z-index: 1;
}
.ps-browser-bar {
  background: #2A2040; padding: 12px 18px;
  display: flex; align-items: center; gap: 12px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.ps-dots { display: flex; gap: 6px; }
.ps-dot { width: 12px; height: 12px; border-radius: 50%; }
.ps-dot:nth-child(1) { background: #FF5F57; }
.ps-dot:nth-child(2) { background: #FFBD2E; }
.ps-dot:nth-child(3) { background: #28C840; }
.ps-url {
  flex: 1; background: rgba(255,255,255,0.06); border-radius: 6px;
  padding: 6px 14px; font-size: 13px; color: rgba(255,255,255,0.4);
  display: flex; align-items: center; gap: 8px; font-family: var(--font-body);
  max-width: 360px; margin: 0 auto;
}
.ps-url svg { width: 12px; height: 12px; stroke: rgba(255,255,255,0.3); fill: none; stroke-width: 2; flex-shrink: 0; }
.ps-screen {
  width: 100%; aspect-ratio: 16/9;
  background: var(--soft);
  display: block; object-fit: cover;
}
/* Placeholder until real screenshot */
.ps-screen-placeholder {
  width: 100%; aspect-ratio: 16/9;
  background: linear-gradient(135deg, var(--purple-light) 0%, #f0ebff 100%);
  display: flex; align-items: center; justify-content: center;
  flex-direction: column; gap: 12px;
}
.ps-screen-placeholder p { font-size: 14px; color: var(--muted); font-style: italic; }

/* Mobile: phone mockups */
.ps-phones {
  display: none;
  justify-content: center; align-items: flex-end;
  gap: 24px; position: relative; z-index: 1;
}
.ps-phone {
  width: 200px; border-radius: 32px; overflow: hidden;
  box-shadow: 0 32px 72px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.1);
  border: 2px solid rgba(255,255,255,0.08);
}
.ps-phone:nth-child(2) { margin-bottom: 40px; }
.ps-phone-screen {
  width: 100%; aspect-ratio: 9/19;
  background: var(--soft);
  display: block; object-fit: cover;
}
.ps-phone-screen-placeholder {
  width: 100%; aspect-ratio: 9/19;
  background: linear-gradient(135deg, var(--purple-light) 0%, #f5f0ff 100%);
  display: flex; align-items: center; justify-content: center;
}
.ps-phone-screen-placeholder p { font-size: 11px; color: var(--muted); text-align: center; padding: 12px; font-style: italic; }

/* ── STATS SECTION ────────────────────────────────────────── */
/* ← CHANGE STATS: edit numbers in each page's stats section */
.stats-section { background: white; padding: 64px var(--section-pad-h); }
.stats-inner { max-width: var(--max-w); margin: 0 auto; }
.stats-header { text-align: center; margin-bottom: 48px; }
.stats-header h2 { margin-bottom: 0; }
.stats-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin-bottom: 32px; }
.stats-grid-2 { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.stat-block {
  background: var(--soft); border-radius: var(--radius-card);
  padding: 28px 24px; border: 1px solid var(--border);
  text-align: center; transition: all 0.2s;
}
.stat-block:hover { transform: translateY(-3px); box-shadow: 0 8px 32px rgba(124,58,237,0.08); border-color: var(--purple-mid); }
.stat-block.highlight { background: var(--dark); border-color: var(--dark); }
.stat-block.accent   { background: var(--purple); border-color: var(--purple); }
.stat-block-num { font-size: 44px; font-weight: 600; line-height: 1; margin-bottom: 6px; }
.stat-block .stat-block-num { color: var(--purple); }
.stat-block.highlight .stat-block-num { color: var(--yellow); }
.stat-block.accent .stat-block-num    { color: white; }
.stat-block-label { font-size: 14px; color: var(--muted); line-height: 1.4; }
.stat-block.highlight .stat-block-label { color: rgba(255,255,255,0.5); }
.stat-block.accent .stat-block-label   { color: rgba(255,255,255,0.75); }
.stat-block-sub { font-size: 12px; color: var(--muted); margin-top: 4px; }
.stat-block.highlight .stat-block-sub { color: rgba(255,255,255,0.3); }
.stat-block.accent .stat-block-sub    { color: rgba(255,255,255,0.55); }
.stats-note { text-align: center; font-size: 13px; color: var(--muted); margin-top: 24px; }

/* ── AUDIENCE SPLIT ───────────────────────────────────────── */
.audience-section { background: var(--soft); }
.audience-header { text-align: center; margin-bottom: 48px; }
.audience-header .section-sub { margin: 0 auto; }
.split-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.split-card { border-radius: 24px; padding: 36px; position: relative; overflow: hidden; }
.split-card-mum     { background: white; border: 1px solid var(--border); }
.split-card-student { background: var(--dark); }
.split-tag {
  display: inline-block; font-size: 11px; font-weight: 600;
  letter-spacing: 0.07em; text-transform: uppercase;
  padding: 4px 12px; border-radius: var(--radius-pill);
  margin-bottom: 20px; font-family: var(--font-body);
}
.split-card-mum .split-tag     { background: var(--purple-light); color: var(--purple); }
.split-card-student .split-tag { background: rgba(255,202,1,0.15); color: var(--yellow); }
.split-card h3 { font-size: clamp(22px,2.5vw,30px); margin-bottom: 14px; line-height: 1.2; letter-spacing: -0.5px; }
.split-card-mum h3     { color: var(--dark); }
.split-card-student h3 { color: white; }
.split-card-student h3 em { color: var(--yellow); }
.split-body { font-size: 15px; line-height: 1.75; margin-bottom: 24px; font-weight: 300; }
.split-card-mum .split-body     { color: var(--mid); }
.split-card-student .split-body { color: rgba(255,255,255,0.6); }
.outcomes { list-style: none; margin-bottom: 20px; display: flex; flex-direction: column; gap: 10px; }
.outcome-item { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; }
.split-card-mum .outcome-item     { color: var(--mid); }
.split-card-student .outcome-item { color: rgba(255,255,255,0.75); }
.outcome-check {
  width: 18px; height: 18px; border-radius: 50%; flex-shrink: 0;
  margin-top: 1px; display: flex; align-items: center; justify-content: center;
}
.split-card-mum .outcome-check     { background: var(--purple-light); }
.split-card-student .outcome-check { background: rgba(255,202,1,0.18); }
.outcome-check svg { width: 9px; height: 9px; stroke-width: 2.5; }
.split-card-mum .outcome-check svg     { stroke: var(--purple); fill: none; }
.split-card-student .outcome-check svg { stroke: var(--yellow); fill: none; }
.card-stat-pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px; border-radius: var(--radius-pill); margin-bottom: 24px;
  font-size: 13px; font-weight: 500;
}
.split-card-mum .card-stat-pill     { background: var(--purple-light); color: var(--purple); }
.split-card-student .card-stat-pill { background: rgba(255,202,1,0.15); color: var(--yellow); }

/* ── HOW IT WORKS ─────────────────────────────────────────── */
.how-section { background: white; }
.how-header  { text-align: center; margin-bottom: 56px; }
.steps-grid  { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
.step-card {
  background: var(--soft); border-radius: var(--radius-card);
  padding: 28px 24px; border: 1px solid var(--border); transition: all 0.2s;
}
.step-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(124,58,237,0.08); background: white; }
.step-num {
  font-family: var(--font-body); font-size: 48px; font-weight: 400;
  color: var(--purple-mid); line-height: 1; margin-bottom: 16px; letter-spacing: -2px;
}
.step-card h3 { font-size: 17px; margin-bottom: 8px; color: var(--dark); }
.step-card p  { font-size: 14px; color: var(--muted); line-height: 1.65; font-weight: 300; }

/* ── TESTIMONIALS ─────────────────────────────────────────── */
/* ← CHANGE TESTIMONIALS: edit cards in each page's testimonials section */
.testimonials-section { background: var(--dark); }
.testimonials-section h2   { color: white; }
.testimonials-section .section-label { color: var(--purple-mid); }
.testimonials-section .section-sub   { color: rgba(255,255,255,0.5); }
.t-carousel-outer { position: relative; margin: 0 calc(-1 * var(--section-pad-h)); overflow: hidden; }
.t-carousel {
  display: flex; overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none; gap: 16px;
  padding: 8px 0 24px; cursor: grab;
}
.t-carousel::-webkit-scrollbar { display: none; }
.t-carousel.dragging { cursor: grabbing; scroll-snap-type: none; }
.testimonial-card {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--radius-card); padding: 28px;
  scroll-snap-align: center; flex-shrink: 0;
  display: flex; flex-direction: column;
  width: clamp(260px, 26vw, 320px);
  transition: transform 0.3s, opacity 0.3s;
}
.testimonial-card.featured {
  background: rgba(124,58,237,0.2);
  border-color: rgba(124,58,237,0.35);
}
.t-stars { display: flex; gap: 3px; margin-bottom: 16px; }
.t-star  {
  width: 14px; height: 14px; background: var(--yellow);
  clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}
.t-quote {
  font-family: var(--font-display); font-style: italic;
  font-size: 17px; color: rgba(255,255,255,0.85);
  line-height: 1.65; margin-bottom: 20px; font-weight: 300; flex: 1;
}
.testimonial-card.featured .t-quote { font-size: 20px; }
.t-author { display: flex; align-items: center; gap: 12px; margin-top: auto; }
.t-avatar {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--purple-light); display: flex; align-items: center;
  justify-content: center; font-weight: 500; color: var(--purple);
  font-size: 13px; flex-shrink: 0;
}
.t-name { font-weight: 500; color: white; font-size: 14px; }
.t-role { font-size: 12px; color: rgba(255,255,255,0.4); margin-top: 2px; }
.t-featured-tag {
  display: inline-block; background: rgba(255,202,1,0.15); color: var(--yellow);
  font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
  padding: 4px 12px; border-radius: var(--radius-pill); margin-bottom: 16px;
  font-family: var(--font-body);
}
.t-dots { display: flex; justify-content: center; gap: 8px; margin-top: 8px; }
.t-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(255,255,255,0.2); border: none; padding: 0;
  cursor: pointer; transition: all 0.25s; flex-shrink: 0;
}
.t-dot.active { background: var(--purple-mid); width: 24px; border-radius: var(--radius-pill); }
.t-carousel-outer::before,
.t-carousel-outer::after {
  content: ''; position: absolute; top: 0; bottom: 24px; width: 80px; z-index: 2; pointer-events: none;
}
.t-carousel-outer::before { left: 0; background: linear-gradient(to right, var(--dark), transparent); }
.t-carousel-outer::after  { right: 0; background: linear-gradient(to left, var(--dark), transparent); }

/* ── FOUNDERS ─────────────────────────────────────────────── */
/* ← SWAP FOUNDERS PHOTO: replace .founders-img > img src */
.founders-section { background: white; }
.founders-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.founders-img {
  width: 100%; aspect-ratio: 4/5; border-radius: 24px;
  background: var(--purple-light); overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--border);
}
.founders-img img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.founders-img-placeholder { font-size: 13px; color: var(--muted); text-align: center; padding: 2rem; line-height: 1.6; }
.founders-text h2 { margin-bottom: 16px; }
.founders-text p  { font-size: 16px; color: var(--mid); line-height: 1.75; margin-bottom: 16px; font-weight: 300; }
.creds { display: flex; flex-direction: column; gap: 12px; margin-top: 24px; }
.cred {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 14px 18px; background: var(--soft);
  border-radius: 14px; border: 1px solid var(--border);
}
.cred-icon {
  width: 36px; height: 36px; background: var(--purple-light);
  border-radius: 10px; display: flex; align-items: center;
  justify-content: center; flex-shrink: 0; font-size: 16px;
}
.cred-text { font-size: 14px; color: var(--mid); line-height: 1.5; padding-top: 2px; }

/* ── FAQS ─────────────────────────────────────────────────── */
/* ← ADD/EDIT FAQs: find the faq-section in each HTML file */
.faq-section { background: var(--soft); }
.faq-header  { text-align: center; margin-bottom: 48px; }
.faq-cols    { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.faq-group   { display: flex; flex-direction: column; gap: 0; }
.faq-group-tag {
  font-size: 11px; font-weight: 600; letter-spacing: 2px;
  text-transform: uppercase; color: var(--purple); margin-bottom: 16px;
  font-family: var(--font-body);
}
.faq-item { border-bottom: 1px solid var(--border); }
.faq-item:first-of-type { border-top: 1px solid var(--border); }
.faq-q {
  width: 100%; display: flex; justify-content: space-between;
  align-items: center; gap: 12px; padding: 18px 0;
  background: none; border: none; cursor: pointer;
  font-size: 15px; font-weight: 500; color: var(--dark); text-align: left;
  font-family: var(--font-body); transition: color 0.2s;
}
.faq-q:hover { color: var(--purple); }
.faq-q svg { width: 18px; height: 18px; stroke: var(--muted); fill: none; stroke-width: 2; flex-shrink: 0; transition: transform 0.25s; }
.faq-item.open .faq-q svg { transform: rotate(180deg); stroke: var(--purple); }
.faq-a {
  max-height: 0; overflow: hidden;
  transition: max-height 0.35s ease, padding 0.35s ease;
  font-size: 14px; color: var(--mid); line-height: 1.7; font-weight: 300;
}
.faq-item.open .faq-a { max-height: 500px; padding-bottom: 18px; }

/* ── EXPLAINER (mums page) ────────────────────────────────── */
.explainer-section { background: white; }
.explainer-header  { text-align: center; margin-bottom: 48px; }
.explainer-header .section-sub { margin: 0 auto; }
.explainer-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.explainer-card {
  background: var(--soft); border-radius: var(--radius-card);
  padding: 28px 24px; border: 1px solid var(--border); transition: all 0.2s;
}
.explainer-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(124,58,237,0.08); background: white; }
.explainer-icon {
  width: 44px; height: 44px; background: var(--purple-light);
  border-radius: 12px; display: flex; align-items: center; justify-content: center;
  margin-bottom: 16px; font-size: 20px;
}
.explainer-card h3 { font-size: 16px; margin-bottom: 8px; color: var(--dark); }
.explainer-card p  { font-size: 14px; color: var(--muted); line-height: 1.65; font-weight: 300; }

/* ── OUTCOMES (mums page) ─────────────────────────────────── */
.outcomes-section { background: var(--soft); }
.outcomes-header  { text-align: center; margin-bottom: 48px; }
.outcomes-header .section-sub { margin: 0 auto; }
.outcomes-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.outcome-card {
  background: white; border-radius: var(--radius-card);
  padding: 28px 24px; border: 1px solid var(--border); transition: all 0.2s;
}
.outcome-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(124,58,237,0.08); border-color: var(--purple-mid); }
.outcome-icon {
  font-size: 28px; margin-bottom: 14px; display: block;
}
.outcome-card h3 { font-size: 16px; margin-bottom: 8px; color: var(--dark); }
.outcome-card p  { font-size: 14px; color: var(--muted); line-height: 1.65; font-weight: 300; }

/* ── PROBLEM/SOLUTION (students page) ────────────────────── */
.problem-section  { background: white; }
.solution-section { background: var(--soft); }
.problem-grid, .solution-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.problem-card, .solution-card {
  background: var(--soft); border-radius: var(--radius-card);
  padding: 28px 24px; border: 1px solid var(--border); transition: all 0.2s;
}
.solution-card { background: white; }
.problem-card:hover, .solution-card:hover {
  transform: translateY(-3px); box-shadow: 0 8px 24px rgba(124,58,237,0.08); border-color: var(--purple-mid);
}
.problem-icon, .solution-icon { font-size: 28px; margin-bottom: 14px; display: block; }
.problem-card h3, .solution-card h3 { font-size: 16px; margin-bottom: 8px; color: var(--dark); }
.problem-card p, .solution-card p   { font-size: 14px; color: var(--muted); line-height: 1.65; font-weight: 300; }

/* ── FEATURES (students page) ────────────────────────────── */
.features-section { background: var(--soft); }
.features-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.feature-card {
  background: white; border-radius: var(--radius-card);
  padding: 28px 24px; border: 1px solid var(--border); transition: all 0.2s;
}
.feature-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(124,58,237,0.08); border-color: var(--purple-mid); }
.feature-icon {
  width: 44px; height: 44px; background: var(--purple-light);
  border-radius: 12px; display: flex; align-items: center; justify-content: center;
  margin-bottom: 16px; font-size: 20px;
}
.feature-card h3 { font-size: 16px; margin-bottom: 8px; color: var(--dark); }
.feature-card p  { font-size: 14px; color: var(--muted); line-height: 1.65; font-weight: 300; }

/* ── FINAL CTA ────────────────────────────────────────────── */
/* ← CHANGE CTA TEXT: edit heading + paragraph in each page's cta-section */
.cta-section {
  background: var(--dark); padding: 96px var(--section-pad-h);
  text-align: center; position: relative; overflow: hidden;
}
.cta-section::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse 60% 70% at 50% 110%, rgba(124,58,237,0.45) 0%, transparent 65%);
  pointer-events: none;
}
.cta-section h2 { color: white; font-size: clamp(32px,4vw,54px); margin-bottom: 16px; }
.cta-section h2 em { color: var(--yellow); }
.cta-section p  { font-size: 17px; color: rgba(255,255,255,0.55); margin-bottom: 40px; font-weight: 300; }
.cta-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; position: relative; z-index: 1; }
.cta-section h2, .cta-section p { position: relative; z-index: 1; }

/* ── FOOTER ───────────────────────────────────────────────── */
/* ← CHANGE FOOTER LINKS/TEXT: edit the footer section in index.html
      (all pages share the same footer HTML via copy-paste) */
footer {
  background: var(--dark);
  border-top: 1px solid rgba(255,255,255,0.06);
  padding: 48px var(--section-pad-h) 32px;
}
.footer-inner {
  max-width: var(--max-w); margin: 0 auto;
  display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px;
}
.footer-brand p { font-size: 14px; color: rgba(255,255,255,0.4); line-height: 1.75; margin-top: 12px; max-width: 260px; }
/* Footer logo lockup: icon SVG + wordmark text. Using inline SVG +
   HTML text instead of a single combined raster image — the raster
   version (logos-duo-white.png) kept failing to load reliably across
   Hostinger uploads and mobile Safari. This version uses only
   known-good files and pure CSS typography, so it's rock-solid. */
.footer-logo {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  color: #FFFFFF;
  margin-bottom: 4px;
}
.footer-logo-icon {
  height: 56px;
  width: auto;
  display: block;
  flex-shrink: 0;
}
/* Full wordmark variant — single SVG containing icon + "MidwithMe".
   Sized roughly 30% larger than the pre-scroll header logo (81px) so the
   footer wordmark feels grounded but not dominant. */
.footer-logo-full {
  height: 105px;
  width: auto;
  display: block;
  flex-shrink: 0;
}
.footer-logo-wordmark {
  font-family: var(--font-body);
  font-size: 34px;
  font-weight: 600;
  letter-spacing: -1.6px;
  line-height: 1;
  color: #FFFFFF;
}
.footer-col h4 { font-size: 12px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,0.3); margin-bottom: 16px; }
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.footer-col ul a { font-size: 14px; color: rgba(255,255,255,0.55); text-decoration: none; transition: color 0.2s; }
.footer-col ul a:hover { color: white; }
.footer-bottom {
  max-width: var(--max-w); margin: 40px auto 0;
  padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.06);
  display: flex; justify-content: center; align-items: center;
}
.footer-bottom p   { font-size: 13px; color: rgba(255,255,255,0.25); text-align: center; }
.footer-bottom nav { display: flex; gap: 20px; }
.footer-bottom nav a { font-size: 13px; color: rgba(255,255,255,0.25); text-decoration: none; transition: color 0.2s; }
.footer-bottom nav a:hover { color: rgba(255,255,255,0.6); }

/* ── ANIMATIONS ───────────────────────────────────────────── */
.fade-up {
  opacity: 0; transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-up.in { opacity: 1; transform: translateY(0); }
.fade-up:nth-child(2) { transition-delay: 0.1s; }
.fade-up:nth-child(3) { transition-delay: 0.2s; }
.fade-up:nth-child(4) { transition-delay: 0.3s; }

/* ── RESPONSIVE ───────────────────────────────────────────── */
@media (max-width: 960px) {
  :root {
    --section-pad-h: 24px;
    --section-pad-v: 64px;
  }
  .hero-inner { grid-template-columns: 1fr; gap: 40px; }
  .hero-visual { display: none; } /* hide photo on tablet/mobile */
  .hero { padding-top: calc(var(--nav-height) + 40px); }
  .stats-grid { grid-template-columns: repeat(2,1fr); }
  .stats-grid-2 { grid-template-columns: repeat(2,1fr); }
  .steps-grid  { grid-template-columns: repeat(2,1fr); }
  .split-grid  { grid-template-columns: 1fr; }
  .faq-cols    { grid-template-columns: 1fr; gap: 0; }
  .founders-inner { grid-template-columns: 1fr; gap: 40px; }
  .founders-img { display: none; }
  .explainer-grid, .outcomes-grid { grid-template-columns: repeat(2,1fr); }
  .problem-grid, .solution-grid, .features-grid { grid-template-columns: repeat(2,1fr); }
  .footer-inner {
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "brand brand"
      "platform company"
      "platform legal";
    gap: 36px 32px;
    text-align: left;
    align-items: start;
  }
  /* Brand row: logo LEFT, blurb RIGHT, side by side */
  .footer-brand {
    grid-area: brand;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 32px;
    text-align: left;
  }
  .footer-brand .footer-logo { margin: 0; flex-shrink: 0; }
  .footer-brand p {
    margin: 0;
    max-width: 360px;
    text-align: left;
  }
  /* Two-column layout: Platform left (5 items, fills full height),
     Company over Legal stacked in the right column. */
  .footer-col:nth-of-type(1) { grid-area: platform; text-align: left; }
  .footer-col:nth-of-type(1) ul { align-items: flex-start; }
  .footer-col:nth-of-type(2) { grid-area: company; text-align: left; }
  .footer-col:nth-of-type(2) ul { align-items: flex-start; }
  .footer-col:nth-of-type(3) { grid-area: legal; text-align: left; }
  .footer-col:nth-of-type(3) ul { align-items: flex-start; }
  .nav-links { display: none; }
  .nav-burger, .nav-hamburger { display: flex; }
  /* Mobile: nav-actions (Login + Join free) STAY visible */
  .nav-actions { display: flex; }
  /* Mobile: always show icon-only logo, use violet variant at top, white when scrolled */
  .site-nav .nav-logo-violet { display: none !important; }
  .site-nav .nav-logo-icon-white {
    display: block !important;
    height: 28px;
    /* Swap to violet-coloured icon at top of page */
    content: url('../images/logo-icon-violet.svg?v=20260504-tight');
  }
  /* When scrolled (pill), revert to white icon */
  .site-nav.is-scrolled .nav-logo-icon-white {
    content: url('../images/logo-icon-white.svg?v=20260504-tight');
    height: 26px;
  }
  /* Mobile scrolled pill: keep a comfortable breathing gap on each side
     of the viewport — previously hugged the edges too tightly. */
  .site-nav.is-scrolled {
    max-width: calc(100% - 32px);
    width: calc(100% - 32px);
    padding: 8px 10px 8px 16px;
    gap: 12px;
  }
  /* Thin the inner reflective rim (the conic-gradient "glass border"
     drawn via ::before) on mobile/tablet by ~35% so it feels more
     delicate on a small pill — 1.5px was the desktop default, down
     to 1px here. */
  .site-nav.is-scrolled::before {
    padding: 1px;
  }
  .site-nav.is-scrolled .nav-actions {
    gap: 8px;
  }
  .site-nav.is-scrolled .btn-ghost-sm {
    padding: 8px 16px;
    font-size: 13px;
  }
  .site-nav.is-scrolled .btn-nav-cta {
    padding: 8px 16px;
    font-size: 13px;
  }
  .t-carousel-outer { margin: 0 -24px; }
  .testimonial-card { width: clamp(240px, 42vw, 320px); }
  /* Product showcase: hide browser, show phones */
  .ps-browser { display: none; }
  .ps-phones  { display: flex; }
}

/* ── ALIASES FOR MUMS + STUDENTS PAGES ───────────────────────
   These map the page-specific class names to shared styles.
   ← Do not delete, used by mums.html and students.html        */

/* Button aliases */
.btn-cta-primary {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 15px 32px; border-radius: var(--radius-pill);
  font-size: 15px; font-weight: 500;
  background: var(--yellow); color: var(--ink);
  border: none; text-decoration: none; cursor: pointer;
  transition: all 0.22s; font-family: var(--font-body);
}
.btn-cta-primary:hover {
  background: var(--purple); color: white;
  transform: translateY(-2px); box-shadow: 0 8px 28px rgba(124,58,237,0.3);
}
.btn-hero {
  display: inline-flex; align-items: center; gap: 11px;
  padding: 18px 37px; border-radius: var(--radius-pill);
  font-size: 16px; font-weight: 500;
  background: var(--yellow); color: var(--ink);
  border: none; text-decoration: none; cursor: pointer;
  transition: all 0.22s; font-family: var(--font-body);
  margin-bottom: 28px;
}
.btn-hero:hover {
  background: var(--purple); color: white;
  transform: translateY(-2px); box-shadow: 0 8px 28px rgba(124,58,237,0.3);
}

/* Nav aliases, map new names to existing nav behaviour */
.nav-hamburger {
  display: none;
  flex-direction: column; gap: 5px;
  background: none; border: none; cursor: pointer; padding: 4px;
}
.nav-hamburger span {
  width: 22px; height: 2px;
  background: var(--dark); border-radius: 2px;
  transition: all 0.3s; display: block;
}
.nav-mobile-overlay {
  display: none;
  position: fixed; top: var(--nav-height); left: 0; right: 0;
  background: rgba(250,248,255,0.98);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
  padding: 20px var(--section-pad-h);
  z-index: 99;
  flex-direction: column; gap: 16px;
}
.nav-mobile-overlay.open { display: flex; }
.nav-mobile-overlay ul { list-style: none; display: flex; flex-direction: column; gap: 4px; }
.nav-mobile-overlay a {
  font-size: 16px; color: var(--mid);
  text-decoration: none; font-weight: 400;
  display: block; padding: 10px 0;
  border-bottom: 1px solid var(--border);
  transition: color 0.25s ease, text-shadow 0.3s ease;
}
.nav-mobile-overlay a:last-child { border-bottom: none; }
.nav-mobile-overlay a:hover:not(.mobile-cta) {
  color: var(--yellow);
  text-shadow:
    0 0 8px rgba(255, 202, 1, 0.55),
    0 0 18px rgba(255, 202, 1, 0.32),
    0 0 28px rgba(255, 202, 1, 0.18);
}
.nav-mobile-overlay a.active { color: var(--purple); font-weight: 500; }
.nav-mobile-overlay a.mobile-cta {
  color: var(--yellow-dark); background: var(--yellow);
  border-radius: var(--radius-pill); text-align: center;
  padding: 12px 24px; margin-top: 8px; border: none;
}

/* Hero layout for students page */
.hero-split { width: 100%; max-width: 680px; }

@media (max-width: 600px) {
  :root { --section-pad-h: 20px; }
  h1 { letter-spacing: -1px; }
  .stats-grid, .stats-grid-2 { grid-template-columns: repeat(2,1fr); }
  .steps-grid  { grid-template-columns: 1fr; }
  .explainer-grid, .outcomes-grid { grid-template-columns: 1fr; }
  .problem-grid, .solution-grid, .features-grid { grid-template-columns: 1fr; }
  /* Mobile footer: same two-column layout as tablet but tighter.
     Platform on the left fills the full nav height, Company stacked
     over Legal on the right. Logo + blurb wrap above. */
  .footer-inner {
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "brand brand"
      "platform company"
      "platform legal";
    gap: 24px 20px;
    align-items: start;
  }
  .footer-brand {
    grid-area: brand;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
  }
  .footer-brand .footer-logo { margin: 0 auto; }
  .footer-brand p {
    text-align: center;
    max-width: 360px;
    margin: 0 auto;
  }
  .footer-col:nth-of-type(1) { grid-area: platform; text-align: left; }
  .footer-col:nth-of-type(1) ul { align-items: flex-start; }
  .footer-col:nth-of-type(2) { grid-area: company; text-align: left; }
  .footer-col:nth-of-type(2) ul { align-items: flex-start; }
  .footer-col:nth-of-type(3) { grid-area: legal; text-align: left; }
  .footer-col:nth-of-type(3) ul {
    align-items: flex-start;
  }
  .t-carousel-outer { margin: 0 -20px; }
  .testimonial-card { width: clamp(240px, 76vw, 300px); }
  .cta-btns { flex-direction: column; align-items: center; }
  .footer-bottom { flex-direction: column; gap: 12px; text-align: center; }
}


/* ============================================================
   UNIFIED MUM + STUDENT PAGE OVERHAUL (v20260422)
   Pulls mum/student page sections into the home page design language:
   - Soft lavender section backgrounds
   - Satoshi + Fraunces typography
   - White cards with purple hover
   - Home-style hero, testimonials, FAQ, CTA
   Scoped under .page-overhauled body class so it only affects mum/student.
   ============================================================ */

body.page-overhauled {
  background: #FDFAF5;
}

/* ── HERO (enlarged, home-style typography) ─────────────────── */
body.page-overhauled .hero {
  padding: 140px var(--section-pad-h) 100px;
  background: var(--soft);
}
body.page-overhauled .hero-bg {
  background:
    radial-gradient(ellipse 60% 50% at 50% 30%, rgba(124,58,237,0.10) 0%, transparent 70%),
    radial-gradient(ellipse 50% 40% at 85% 85%, rgba(255,202,1,0.06) 0%, transparent 60%);
}
body.page-overhauled .hero h1 {
  font-size: clamp(40px, 5.6vw, 72px);
  line-height: 0.98;
  letter-spacing: -2.4px;
  color: var(--ink);
  font-weight: 500;
  margin-bottom: 22px;
  max-width: 18ch;
}
body.page-overhauled .hero h1 em {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  color: var(--purple);
}
body.page-overhauled .hero-sub {
  font-size: 19px;
  line-height: 1.6;
  color: var(--mid);
  font-weight: 300;
  max-width: 62ch;
  margin: 0 auto 32px;
}
body.page-overhauled .hero-inner[style*="text-align:center"] .hero-sub,
body.page-overhauled .hero-inner[style*="text-align: center"] .hero-sub {
  margin-left: auto;
  margin-right: auto;
}
body.page-overhauled .hero-badge {
  background: rgba(124,58,237,0.10);
  color: var(--purple);
  padding: 8px 18px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 26px;
}
body.page-overhauled .hero-trust {
  justify-content: center;
  padding-top: 24px;
}
body.page-overhauled .hero-trust-text {
  font-size: 14px;
  color: var(--mid);
}
body.page-overhauled .hero-trust-text strong {
  color: var(--ink);
  font-weight: 600;
}

/* ── AVAILABILITY CHECKER CARD (refined) ────────────────────── */
body.page-overhauled .checker-card {
  background: white;
  border-radius: 24px;
  padding: 40px;
  border: 1px solid rgba(28,18,41,0.06);
  box-shadow: 0 20px 60px rgba(28,18,41,0.08);
  max-width: 560px;
  margin: 0 auto 32px;
}
body.page-overhauled .checker-label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--purple);
  margin-bottom: 22px;
}
body.page-overhauled .form-group input,
body.page-overhauled .form-group select {
  border-radius: 14px;
  padding: 14px 18px;
  background: var(--soft);
  border: 1.5px solid transparent;
  transition: all 0.2s;
}
body.page-overhauled .form-group input:focus,
body.page-overhauled .form-group select:focus {
  background: white;
  border-color: var(--purple);
  box-shadow: 0 0 0 4px rgba(124,58,237,0.08);
}

/* ── GENERIC SECTION POLISH ─────────────────────────────────── */
body.page-overhauled section {
  padding: 110px var(--section-pad-h);
}
body.page-overhauled section > .section-inner,
body.page-overhauled section > .explainer-header,
body.page-overhauled section > .outcomes-header,
body.page-overhauled section > .how-header {
  max-width: var(--max-w);
  margin: 0 auto;
}
body.page-overhauled h2 {
  font-size: clamp(34px, 4.4vw, 54px);
  line-height: 1.05;
  letter-spacing: -1.8px;
  font-weight: 500;
  color: var(--ink);
  margin-bottom: 16px;
}
body.page-overhauled h2 em {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  color: var(--purple);
}
body.page-overhauled .section-label {
  color: var(--purple);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  display: inline-block;
  margin-bottom: 18px;
}
body.page-overhauled .section-sub {
  font-size: 18px;
  line-height: 1.6;
  color: var(--mid);
  font-weight: 300;
  max-width: 62ch;
}

/* Explainer (mums) + Problem (students), soft lavender bg */
body.page-overhauled .explainer-section,
body.page-overhauled .problem-section {
  background: var(--soft);
}
body.page-overhauled .explainer-card,
body.page-overhauled .outcome-card {
  background: white;
  border: 1px solid rgba(28,18,41,0.06);
  border-radius: 22px;
  padding: 36px;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
body.page-overhauled .explainer-card:hover,
body.page-overhauled .outcome-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 34px rgba(28,18,41,0.08);
  border-color: rgba(124,58,237,0.22);
}
body.page-overhauled .explainer-card h3,
body.page-overhauled .outcome-card h3 {
  font-size: 20px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 12px;
  letter-spacing: -0.3px;
}
body.page-overhauled .explainer-card p,
body.page-overhauled .outcome-card p {
  font-size: 15px;
  line-height: 1.6;
  color: var(--mid);
  font-weight: 300;
}

/* Outcomes (mums) + Solution (students), cream bg */
body.page-overhauled .outcomes-section,
body.page-overhauled .solution-section {
  background: var(--cream);
}

/* How section, white bg, cards refined */
body.page-overhauled .how-section {
  background: white;
}
body.page-overhauled .how-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
body.page-overhauled .how-step {
  background: var(--soft);
  border-radius: 22px;
  padding: 32px;
  border: 1px solid rgba(28,18,41,0.06);
}
body.page-overhauled .how-step-num {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--purple);
  color: white;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: 600;
  margin-bottom: 18px;
}
body.page-overhauled .how-step h3 {
  font-size: 19px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 10px;
}
body.page-overhauled .how-step p {
  font-size: 15px;
  line-height: 1.6;
  color: var(--mid);
  font-weight: 300;
}

/* Features section (students), white cards */
body.page-overhauled .features-section {
  background: white;
}
body.page-overhauled .feature-card {
  background: var(--soft);
  border-radius: 20px;
  padding: 28px;
  border: 1px solid rgba(28,18,41,0.06);
  transition: all 0.25s;
}
body.page-overhauled .feature-card:hover {
  transform: translateY(-3px);
  border-color: rgba(124,58,237,0.25);
  box-shadow: 0 14px 34px rgba(28,18,41,0.06);
}

/* Stats blocks (students), cream with big numbers */
body.page-overhauled .stats-blocks-section {
  background: var(--cream);
}
body.page-overhauled .stat-block {
  background: white;
  border-radius: 22px;
  padding: 40px;
  border: 1px solid rgba(28,18,41,0.06);
}
body.page-overhauled .stat-block .stat-num {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  color: var(--ink);
  letter-spacing: -2px;
}

/* ── TESTIMONIALS, lighten to match home's voices ─────────── */
body.page-overhauled .testimonials-section {
  background: linear-gradient(180deg, #FDFAF5 0%, #F3EBFB 100%);
}
body.page-overhauled .testimonials-section h2 {
  color: var(--ink);
}
body.page-overhauled .testimonials-section .section-label {
  color: var(--purple);
}
body.page-overhauled .testimonials-section .section-sub {
  color: var(--mid);
}
body.page-overhauled .testimonial-card {
  background: white;
  border: 1px solid rgba(28,18,41,0.08);
  color: var(--ink);
  box-shadow: 0 4px 20px rgba(28,18,41,0.04);
}
body.page-overhauled .testimonial-card .t-quote,
body.page-overhauled .testimonial-card .voice-q,
body.page-overhauled .testimonial-card p {
  font-family: var(--font-body);
  font-style: normal;
  color: var(--ink);
}
body.page-overhauled .testimonial-card .t-name,
body.page-overhauled .testimonial-card .t-author {
  color: var(--ink);
}
body.page-overhauled .testimonial-card .t-role {
  color: var(--muted);
}

/* ── FAQ, match home's aesthetic ───────────────────────────── */
body.page-overhauled .faq-section {
  background: var(--soft);
}
body.page-overhauled .faq-item {
  background: white;
  border-radius: 16px;
  border: 1px solid rgba(28,18,41,0.08);
  padding: 0;
  margin-bottom: 12px;
  overflow: hidden;
}
body.page-overhauled .faq-q {
  padding: 20px 24px;
  font-size: 17px;
  font-weight: 500;
  color: var(--ink);
}
body.page-overhauled .faq-a {
  padding: 0 24px 20px;
  font-size: 15px;
  line-height: 1.65;
  color: var(--mid);
  font-weight: 300;
}

/* ── CTA SECTION, matches home's .home-cta exactly ────────── */
body.page-overhauled .cta-section {
  background:
    radial-gradient(ellipse 60% 50% at 20% 10%, rgba(124,58,237,0.28) 0%, transparent 70%),
    radial-gradient(ellipse 50% 50% at 90% 90%, rgba(255,202,1,0.08) 0%, transparent 70%),
    linear-gradient(180deg, #2E1F44 0%, #241834 100%);
  color: white;
  text-align: center;
  position: relative;
  overflow: hidden;
  padding: 120px var(--section-pad-h) 128px;
}
body.page-overhauled .cta-section::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 50% 50% at 50% 110%, rgba(124,58,237,0.35) 0%, transparent 65%),
    radial-gradient(ellipse 30% 25% at 20% 0%, rgba(255,202,1,0.08) 0%, transparent 65%);
  pointer-events: none;
}
body.page-overhauled .cta-section > * { position: relative; z-index: 1; }
body.page-overhauled .cta-section h2 {
  color: white;
  font-size: clamp(38px, 5vw, 64px);
  line-height: 1.02;
  letter-spacing: -2px;
  margin-bottom: 18px;
  text-align: center;
}
body.page-overhauled .cta-section h2 em {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  color: var(--yellow);
}
body.page-overhauled .cta-section p,
body.page-overhauled .cta-section .section-sub {
  color: rgba(255,255,255,0.7);
  font-size: 17px;
  line-height: 1.65;
  font-weight: 300;
  margin: 0 auto 36px;
  max-width: 520px;
  text-align: center;
}
body.page-overhauled .cta-btns {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

/* ── Responsive adjustments ─────────────────────────────────── */
@media (max-width: 960px) {
  body.page-overhauled section {
    padding: 72px var(--section-pad-h);
  }
  body.page-overhauled .hero {
    padding: 100px var(--section-pad-h) 60px;
  }
  body.page-overhauled .how-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 600px) {
  body.page-overhauled section {
    padding: 64px 20px;
  }
  body.page-overhauled .hero {
    padding: 90px 20px 48px;
  }
  body.page-overhauled .checker-card {
    padding: 28px 22px;
  }
  body.page-overhauled .how-grid {
    grid-template-columns: 1fr;
  }
  body.page-overhauled .explainer-card,
  body.page-overhauled .outcome-card {
    padding: 28px 24px;
  }
}
