/* ════════════════════════════════════════════════════════════════════════
   D'MARIE VIVRE LEARNING HUB
   Design System v5.2 — "Glasslight"
   Premium gentle-glassmorphism · Brand: Orange #FF7D1E + Navy #243349
   Learn. Grow. Thrive.
   ════════════════════════════════════════════════════════════════════════ */

:root{
  /* ── Brand canvas ── */
  --cream:        #FBF7F1;
  --cream-deep:   #F3ECE2;
  --paper:        #FFFDFB;

  /* ── Brand colour ── */
  --orange:       #FF7D1E;
  --orange-deep:  #E56500;
  --orange-light: #FF9A4D;
  --orange-soft:  #FFC9A0;
  --orange-pale:  #FFF0E6;

  --navy:         #243349;
  --navy-deep:    #161F2D;
  --navy-mid:     #3D5173;
  --navy-pale:    #E8EDF5;

  /* ── Glasslight counter-tone (new) ── */
  --peri:         #AFC2E8;
  --peri-soft:    #DCE5F7;
  --gold:         #FFD040;
  --gold-pale:    #FFFBEB;

  /* ── Category accents (kept from brand flyers) ── */
  --green:        #2EAD6B;
  --green-pale:   #E6F7F0;
  --purple:       #7B3FE4;
  --purple-pale:  #F0E9FD;
  --red:          #E0594A;

  /* ── Ink ── */
  --ink:          #1B2333;
  --ink-mid:      #3B4456;
  --ink-soft:     #65707E;
  --ink-muted:    #9AA3AE;
  --white:        #FFFFFF;
  --border:       rgba(36,51,73,.09);

  /* ── Type ── */
  --font-display: 'DM Serif Display', Georgia, serif;
  --font-body:    'DM Sans', system-ui, -apple-system, sans-serif;

  /* ── Radii — generous, glass-friendly ── */
  --r-sm:   10px;
  --r-md:   16px;
  --r-lg:   24px;
  --r-xl:   32px;
  --r-2xl:  44px;
  --r-pill: 100px;

  /* ── Elevation (soft, navy-tinted) ── */
  --s-xs:  0 1px 3px rgba(27,35,51,.05);
  --s-sm:  0 4px 16px rgba(27,35,51,.07);
  --s-md:  0 10px 30px rgba(27,35,51,.10);
  --s-lg:  0 22px 60px rgba(27,35,51,.14);
  --s-xl:  0 36px 90px rgba(27,35,51,.18);
  --s-orange: 0 10px 28px rgba(255,125,30,.32);

  /* ── Glass — light surfaces ── */
  --glass-bg:        rgba(255,255,255,.58);
  --glass-bg-strong: rgba(255,255,255,.80);
  --glass-bg-soft:   rgba(255,255,255,.38);
  --glass-border:    rgba(255,255,255,.75);
  --glass-blur:      blur(22px) saturate(180%);
  --glass-shadow:    0 18px 50px rgba(36,51,73,.12), inset 0 1px 0 rgba(255,255,255,.6);

  /* ── Glass — dark surfaces (footer / over-photo panels) ── */
  --glass-dark-bg:     rgba(22,31,45,.58);
  --glass-dark-bg-deep:rgba(22,31,45,.78);
  --glass-dark-border: rgba(255,255,255,.14);
  --glass-dark-blur:   blur(20px) saturate(160%);
  --glass-dark-shadow: 0 24px 60px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.08);

  /* ── Motion ── */
  --ease:        cubic-bezier(.4,0,.2,1);
  --ease-spring: cubic-bezier(.34,1.56,.64,1);
  --ease-soft:   cubic-bezier(.22,.61,.36,1);
  --t-fast:  .2s;
  --t-base:  .35s;
  --t-slow:  .6s;
}

/* ════════════════════════════════════════════════════════════════════════
   RESET
   ════════════════════════════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);background:var(--cream);color:var(--ink);overflow-x:hidden;line-height:1.6;position:relative}
img{display:block;max-width:100%;height:auto}
a{text-decoration:none;color:inherit}
ul{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:inherit;color:inherit}
svg{display:block}
:focus-visible{outline:2.5px solid var(--orange);outline-offset:3px;border-radius:4px}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

/* ════════════════════════════════════════════════════════════════════════
   AURORA — ambient background blobs (the signature "Glasslight" device)
   One .aurora container per page, fixed behind everything, very low opacity,
   gentle drift. Blur is heavy so blobs read as soft light, never shapes.
   ════════════════════════════════════════════════════════════════════════ */
.aurora{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.aurora-local{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.aurora-blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;will-change:transform}
.aurora-blob.b1{width:46vw;height:46vw;top:-14vw;left:-10vw;background:radial-gradient(circle,var(--orange-soft) 0%,transparent 72%);animation:driftA 34s ease-in-out infinite}
.aurora-blob.b2{width:38vw;height:38vw;top:8vw;right:-12vw;background:radial-gradient(circle,var(--peri) 0%,transparent 72%);animation:driftB 40s ease-in-out infinite}
.aurora-blob.b3{width:34vw;height:34vw;bottom:-12vw;left:18vw;background:radial-gradient(circle,var(--gold) 0%,transparent 75%);opacity:.4;animation:driftC 30s ease-in-out infinite}
.aurora-blob.b4{width:30vw;height:30vw;bottom:6vw;right:8vw;background:radial-gradient(circle,var(--orange-soft) 0%,transparent 75%);opacity:.35;animation:driftA 38s ease-in-out infinite reverse}
@keyframes driftA{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(3vw,4vw) scale(1.08)}}
@keyframes driftB{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-4vw,3vw) scale(1.05)}}
@keyframes driftC{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(2vw,-3vw) scale(1.1)}}

/* Dark aurora variant — used behind footer / navy bands */
.aurora-dark .aurora-blob.b1{background:radial-gradient(circle,rgba(255,125,30,.5) 0%,transparent 72%)}
.aurora-dark .aurora-blob.b2{background:radial-gradient(circle,rgba(175,194,232,.4) 0%,transparent 72%)}
.aurora-dark .aurora-blob.b3{background:radial-gradient(circle,rgba(255,208,64,.35) 0%,transparent 75%)}

main,header,footer,section,nav{position:relative;z-index:1}

/* ════════════════════════════════════════════════════════════════════════
   TYPOGRAPHY
   ════════════════════════════════════════════════════════════════════════ */
.d-2xl{font-family:var(--font-display);font-size:clamp(2.8rem,8vw,8.8rem);font-weight:400;line-height:.93;letter-spacing:-.025em}
.d-xl {font-family:var(--font-display);font-size:clamp(2.1rem,5vw,5.4rem);font-weight:400;line-height:1.05;letter-spacing:-.02em}
.d-lg {font-family:var(--font-display);font-size:clamp(1.75rem,3.8vw,3.6rem);font-weight:400;line-height:1.1;letter-spacing:-.015em}
.d-md {font-family:var(--font-display);font-size:clamp(1.4rem,2.8vw,2.5rem);font-weight:400;line-height:1.2}
.d-sm {font-family:var(--font-display);font-size:clamp(1.15rem,2.2vw,1.85rem);font-weight:400;line-height:1.3}
.body-lg{font-size:1.05rem;line-height:1.8}
.body-md{font-size:1rem;line-height:1.75}
.body-sm{font-size:.875rem;line-height:1.7}
.body-xs{font-size:.78rem;line-height:1.6}
em.accent{font-style:italic;color:var(--orange)}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}

/* ════════════════════════════════════════════════════════════════════════
   LAYOUT
   ════════════════════════════════════════════════════════════════════════ */
.container   {max-width:1240px;margin:0 auto;padding:0 28px}
.container-sm{max-width:860px;margin:0 auto;padding:0 28px}
.section   {padding:104px 0}
.section-sm{padding:64px 0}
.section-lg{padding:128px 0}

/* ════════════════════════════════════════════════════════════════════════
   GLASS UTILITIES — the core surface system
   ════════════════════════════════════════════════════════════════════════ */
.glass{
  background:var(--glass-bg);
  -webkit-backdrop-filter:var(--glass-blur);
  backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);
  box-shadow:var(--glass-shadow);
}
.glass-strong{
  background:var(--glass-bg-strong);
  -webkit-backdrop-filter:var(--glass-blur);
  backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);
  box-shadow:var(--glass-shadow);
}
.glass-dark{
  background:var(--glass-dark-bg);
  -webkit-backdrop-filter:var(--glass-dark-blur);
  backdrop-filter:var(--glass-dark-blur);
  border:1px solid var(--glass-dark-border);
  box-shadow:var(--glass-dark-shadow);
}
.glass-card{
  background:var(--glass-bg);
  -webkit-backdrop-filter:var(--glass-blur);
  backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);
  border-radius:var(--r-xl);
  box-shadow:var(--glass-shadow);
  transition:transform var(--t-base) var(--ease-soft),box-shadow var(--t-base) var(--ease-soft),background var(--t-base) var(--ease-soft);
}
.glass-card:hover{transform:translateY(-6px);box-shadow:var(--s-xl);background:var(--glass-bg-strong)}

/* Fallback for browsers without backdrop-filter support: raise opacity so it still reads */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .glass,.glass-strong,.glass-card{background:rgba(255,255,255,.92)}
  .glass-dark{background:rgba(22,31,45,.92)}
}

/* ════════════════════════════════════════════════════════════════════════
   TAGS / BADGES
   ════════════════════════════════════════════════════════════════════════ */
.tag{display:inline-flex;align-items:center;gap:5px;padding:6px 15px;border-radius:var(--r-pill);font-size:.67rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;margin-bottom:16px}
.tag-orange {background:var(--orange-pale);color:var(--orange-deep)}
.tag-navy   {background:var(--navy-pale);color:var(--navy)}
.tag-yellow {background:var(--gold-pale);color:#A36A00}
.tag-green  {background:var(--green-pale);color:#1A7A4C}
.tag-purple {background:var(--purple-pale);color:#5B1FBF}
.tag-white  {background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.25)}
.tag-glass  {background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);color:var(--navy);border:1px solid var(--glass-border)}

/* ════════════════════════════════════════════════════════════════════════
   BUTTONS
   ════════════════════════════════════════════════════════════════════════ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-size:.82rem;font-weight:700;letter-spacing:.04em;padding:14px 30px;border-radius:var(--r-pill);transition:all var(--t-base) var(--ease-soft);border:1.5px solid transparent;white-space:nowrap;cursor:pointer;position:relative}
.btn svg{width:15px;height:15px;flex-shrink:0;transition:transform var(--t-base) var(--ease-spring)}
.btn:hover svg{transform:translateX(3px)}
.btn-lg{padding:17px 42px;font-size:.9rem}
.btn-sm{padding:11px 23px;font-size:.75rem}
.btn-xl{padding:21px 54px;font-size:.95rem}

.btn-orange{background:var(--orange);color:#fff;border-color:var(--orange);box-shadow:0 6px 18px rgba(255,125,30,.25)}
.btn-orange:hover{background:var(--orange-deep);transform:translateY(-2px);box-shadow:var(--s-orange)}

.btn-navy{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-navy:hover{background:var(--navy-mid);transform:translateY(-2px);box-shadow:0 10px 26px rgba(36,51,73,.3)}

.btn-yellow{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.btn-yellow:hover{background:#E6BB00;transform:translateY(-2px);box-shadow:0 10px 26px rgba(255,208,64,.4)}

.btn-glass{
  background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  color:var(--navy);border-color:var(--glass-border);box-shadow:var(--glass-shadow);
}
.btn-glass:hover{transform:translateY(-2px);background:#fff;box-shadow:var(--s-lg)}

.btn-glass-dark{
  background:var(--glass-dark-bg);-webkit-backdrop-filter:var(--glass-dark-blur);backdrop-filter:var(--glass-dark-blur);
  color:#fff;border-color:var(--glass-dark-border);
}
.btn-glass-dark:hover{transform:translateY(-2px);background:var(--glass-dark-bg-deep)}

.btn-outline-orange{background:transparent;color:var(--orange-deep);border-color:rgba(255,125,30,.45)}
.btn-outline-orange:hover{background:var(--orange);color:#fff;border-color:var(--orange);transform:translateY(-2px)}
.btn-outline-navy{background:transparent;color:var(--navy);border-color:rgba(36,51,73,.3)}
.btn-outline-navy:hover{background:var(--navy);color:#fff;border-color:var(--navy);transform:translateY(-2px)}
.btn-outline-white{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.btn-outline-white:hover{background:#fff;color:var(--navy);border-color:#fff}
.btn-ghost{background:transparent;color:var(--orange-deep);border:none;padding-left:2px;padding-right:2px}
.btn-ghost:hover{gap:14px;color:var(--orange)}

/* category-accent solid buttons */
.btn-purple{background:var(--purple);color:#fff;border-color:var(--purple)}
.btn-purple:hover{background:#6928C9;transform:translateY(-2px);box-shadow:0 10px 26px rgba(123,63,228,.35)}
.btn-green{background:var(--green);color:#fff;border-color:var(--green)}
.btn-green:hover{background:#249960;transform:translateY(-2px);box-shadow:0 10px 26px rgba(46,173,107,.35)}

/* WhatsApp button — kept distinct (universally recognised colour) */
.wa-btn{display:inline-flex;align-items:center;gap:10px;background:#25D366;color:#fff;font-weight:700;font-size:.92rem;padding:16px 34px;border-radius:var(--r-pill);box-shadow:0 10px 28px rgba(37,211,102,.35);transition:all var(--t-base) var(--ease-soft)}
.wa-btn:hover{transform:translateY(-2px);box-shadow:0 14px 36px rgba(37,211,102,.45);background:#21BD5C}
.wa-btn svg{width:20px;height:20px;flex-shrink:0}

/* ════════════════════════════════════════════════════════════════════════
   ANNOUNCEMENT BAR
   ════════════════════════════════════════════════════════════════════════ */
.ann-bar{
  background:var(--navy-deep);color:#fff;
  padding:10px 44px 10px 16px;
  text-align:center;font-size:.8rem;font-weight:500;
  position:relative;z-index:1100;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ann-bar strong{font-weight:700;color:var(--orange-light)}
.ann-bar a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.ann-bar a:hover{color:var(--orange-light)}
.ann-close{position:absolute;top:50%;right:14px;transform:translateY(-50%);background:none;border:none;color:rgba(255,255,255,.45);cursor:pointer;padding:6px;line-height:1;transition:color var(--t-fast);display:flex;align-items:center;justify-content:center}
.ann-close svg{width:13px;height:13px}
.ann-close:hover{color:#fff}

/* ════════════════════════════════════════════════════════════════════════
   NAVIGATION — floating glass pill
   ════════════════════════════════════════════════════════════════════════ */
.nav-wrap{position:fixed;top:18px;left:0;right:0;z-index:1000;padding:0 20px;transition:top var(--t-base) var(--ease)}
.nav{
  max-width:1180px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:9px 10px 9px 20px;border-radius:var(--r-pill);
  background:rgba(255,255,255,.4);
  -webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);
  border:1px solid rgba(255,255,255,.55);
  box-shadow:0 10px 34px rgba(36,51,73,.10);
  transition:background var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease),border-color var(--t-base) var(--ease);
}
.nav.hero-over{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.22);box-shadow:0 8px 28px rgba(0,0,0,.12)}
.nav.scrolled{background:rgba(255,255,255,.72);box-shadow:0 14px 40px rgba(36,51,73,.14)}

.nav-logo{display:flex;align-items:center;gap:10px;flex-shrink:0}
.nav-logo-img{height:38px;width:auto;border-radius:9px}
.nav-wordmark{font-family:var(--font-display);font-size:1.02rem;font-weight:400;color:var(--navy);line-height:1.15;display:block;transition:color var(--t-fast)}
.nav-tagline-mini{font-size:.55rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--orange-deep);display:block;transition:color var(--t-fast)}
.nav.hero-over .nav-wordmark{color:#fff}
.nav.hero-over .nav-tagline-mini{color:var(--orange-light)}

.nav-links{display:flex;align-items:center;gap:24px}
.nav-links a{font-size:.79rem;font-weight:600;color:var(--ink-mid);letter-spacing:.02em;transition:color var(--t-fast);position:relative}
.nav-links a::after{content:'';position:absolute;bottom:-5px;left:0;width:0;height:2px;background:var(--orange);transition:width .25s var(--ease);border-radius:2px}
.nav-links a:hover{color:var(--navy)}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav.hero-over .nav-links a{color:rgba(255,255,255,.85)}
.nav.hero-over .nav-links a:hover{color:#fff}

.nav-right{display:flex;align-items:center;gap:8px}
.nav-hamburger{display:none;flex-direction:column;gap:5px;padding:10px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.nav-hamburger span{display:block;width:20px;height:2px;background:var(--navy);border-radius:2px;transition:all var(--t-base) var(--ease)}
.nav.hero-over .nav-hamburger span{background:#fff}

.mobile-menu{display:none;position:fixed;inset:0;background:var(--navy-deep);z-index:1500;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:80px 40px 40px;overflow-y:auto}
.mobile-menu::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 12% 8%,rgba(255,125,30,.24),transparent 38%),radial-gradient(circle at 88% 92%,rgba(175,194,232,.18),transparent 40%);pointer-events:none}
.mobile-menu.open{display:flex}
.mobile-menu a{position:relative;z-index:1;font-family:var(--font-display);font-size:1.85rem;color:#fff;font-weight:400;transition:color var(--t-fast);padding:8px 0;-webkit-tap-highlight-color:transparent}
.mobile-menu a:hover,.mobile-menu a:active{color:var(--orange)}
.mobile-close{position:absolute;top:24px;right:24px;color:rgba(255,255,255,.55);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;z-index:2}
.mobile-close svg{width:16px;height:16px}
.mobile-close:hover{color:#fff;background:rgba(255,255,255,.16)}
.mobile-wa-link{
  position:relative;z-index:1;margin-top:18px;display:inline-flex;align-items:center;justify-content:center;
  white-space:nowrap;min-height:46px;box-sizing:border-box;
  background:rgba(37,211,102,.15);border:1px solid rgba(37,211,102,.35);border-radius:var(--r-pill);
  padding:11px 28px;color:#25D366 !important;font-size:.88rem !important;font-family:var(--font-body) !important;font-weight:700 !important;letter-spacing:.04em;
}

/* ════════════════════════════════════════════════════════════════════════
   HERO — photo + floating glass content panel
   ════════════════════════════════════════════════════════════════════════ */
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;overflow:hidden;background:var(--navy-deep)}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.06);animation:heroZoom 14s var(--ease) forwards}
@keyframes heroZoom{to{transform:scale(1)}}
.hero-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(to right, rgba(22,31,45,.55) 0%, rgba(22,31,45,.05) 55%),
    linear-gradient(to top, rgba(22,31,45,.85) 0%, rgba(22,31,45,.25) 50%, rgba(22,31,45,.05) 100%)
}
.hero-glow{position:absolute;top:10%;right:8%;width:clamp(200px,28vw,420px);height:clamp(200px,28vw,420px);background:radial-gradient(circle,rgba(255,125,30,.32) 0%,transparent 70%);border-radius:50%;pointer-events:none;filter:blur(8px)}
.hero-glow.glow-peri{top:auto;bottom:14%;right:auto;left:4%;width:clamp(140px,18vw,260px);height:clamp(140px,18vw,260px);background:radial-gradient(circle,rgba(175,194,232,.28) 0%,transparent 70%)}

.hero-content{position:relative;z-index:2;width:100%;max-width:1240px;margin:0 auto;padding:0 28px 56px}
.hero-panel{
  background:var(--glass-dark-bg);-webkit-backdrop-filter:var(--glass-dark-blur);backdrop-filter:var(--glass-dark-blur);
  border:1px solid var(--glass-dark-border);box-shadow:var(--glass-dark-shadow);
  border-radius:var(--r-2xl);padding:clamp(28px,4vw,56px) clamp(28px,5vw,64px);
  max-width:760px;
}

.hero-eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:18px;animation:fadeUp .6s .2s both}
.hero-pulse{width:8px;height:8px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 3px rgba(255,125,30,.3);animation:pulse 2.5s infinite;flex-shrink:0}
@keyframes pulse{0%,100%{box-shadow:0 0 0 3px rgba(255,125,30,.3)}50%{box-shadow:0 0 0 9px rgba(255,125,30,.08)}}
.hero-eyebrow-text{font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.68)}
.hero-eyebrow-text .mobile-short{display:none}

.hero h1{font-family:var(--font-display);font-size:clamp(2.6rem,7.2vw,6.4rem);font-weight:400;line-height:.96;letter-spacing:-.02em;color:#fff;margin-bottom:16px;animation:fadeUp .7s .35s both}
.hero-accent{color:var(--orange);font-style:italic;display:block}

.hero-tagline{font-family:var(--font-display);font-size:clamp(.95rem,2vw,1.45rem);font-style:italic;color:rgba(255,255,255,.75);margin-bottom:30px;animation:fadeUp .7s .5s both;max-width:520px;line-height:1.45}
.hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;animation:fadeUp .7s .65s both}

.hero-stats{display:flex;align-items:center;gap:22px;margin-top:36px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14);animation:fadeUp .7s .8s both}
.hero-stat-item{flex-shrink:0}
.hero-stat-num{font-family:var(--font-display);font-size:clamp(1.4rem,2.8vw,2.2rem);font-weight:400;color:var(--orange-light);line-height:1;margin-bottom:3px}
.hero-stat-label{font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.hero-stat-sep{width:1px;height:34px;background:rgba(255,255,255,.16);flex-shrink:0}

.hero-scroll{position:absolute;bottom:32px;right:36px;display:flex;flex-direction:column;align-items:center;gap:6px;color:rgba(255,255,255,.4);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;z-index:2;animation:fadeUp .7s 1.2s both}
.hero-scroll-bar{width:1px;height:40px;background:linear-gradient(to bottom,rgba(255,255,255,.5),transparent);animation:scrollcue 1.8s 1.8s infinite}
@keyframes scrollcue{0%{transform:scaleY(0);transform-origin:top;opacity:1}49%{transform:scaleY(1);transform-origin:top}50%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom;opacity:0}}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}

/* ── PAGE HERO — subpages without a photo; aurora + glass panel ── */
.page-hero{background:var(--navy-deep);padding:152px 0 92px;position:relative;overflow:hidden}
.page-hero-inner{position:relative;z-index:1;max-width:740px}
.breadcrumb{display:flex;align-items:center;gap:8px;font-size:.74rem;font-weight:600;color:rgba(255,255,255,.46);margin-bottom:22px}
.breadcrumb a{color:rgba(255,255,255,.46);transition:color .18s}
.breadcrumb a:hover{color:var(--orange-light)}
.breadcrumb span{color:rgba(255,255,255,.26)}

/* Halo ring decoration — signature device, used sparingly behind portraits/orbs */
.halo-ring{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.14);pointer-events:none}
.halo-ring.r1{width:420px;height:420px}
.halo-ring.r2{width:560px;height:560px;border-color:rgba(255,255,255,.08)}

/* ════════════════════════════════════════════════════════════════════════
   TRUST BAR — glass strip
   ════════════════════════════════════════════════════════════════════════ */
.trust-bar{padding:18px 28px;position:relative}
.trust-inner{
  max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:24px;flex-wrap:wrap;justify-content:center;
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--r-pill);
  padding:16px 32px;
}
.trust-item{display:flex;align-items:center;gap:8px;font-size:.75rem;font-weight:600;color:var(--ink-mid);white-space:nowrap}
.trust-dot{width:6px;height:6px;border-radius:50%;background:var(--orange);flex-shrink:0}
.trust-sep{width:1px;height:18px;background:var(--border);flex-shrink:0}

/* ════════════════════════════════════════════════════════════════════════
   MISSION BAND — Learn / Grow / Thrive
   ════════════════════════════════════════════════════════════════════════ */
.mission-band{padding:80px 0;position:relative}
.mission-inner{display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px;text-align:center}
.mission-item{
  padding:38px 26px;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-xl);box-shadow:var(--glass-shadow);
  transition:transform var(--t-base) var(--ease-soft),background var(--t-base) var(--ease-soft);
}
.mission-item:hover{transform:translateY(-5px);background:var(--glass-bg-strong)}
.mission-icon{
  width:54px;height:54px;border-radius:50%;
  border:2px solid rgba(255,125,30,.35);
  background:rgba(255,125,30,.1);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 18px;color:var(--orange-deep)
}
.mission-icon svg{width:22px;height:22px;stroke-width:1.8}
.mission-label{font-family:var(--font-display);font-size:1.4rem;font-weight:400;color:var(--navy);margin-bottom:9px}
.mission-desc{font-size:.86rem;color:var(--ink-soft);line-height:1.68;max-width:250px;margin:0 auto}

/* ════════════════════════════════════════════════════════════════════════
   PROGRAMS GRID
   ════════════════════════════════════════════════════════════════════════ */
.programs{padding:64px 0 96px}
.programs-header{display:grid;grid-template-columns:1fr auto;align-items:end;gap:20px;margin-bottom:56px}
.prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}

.prog-card{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--glass-shadow);
  transition:transform var(--t-base) var(--ease-soft),box-shadow var(--t-base) var(--ease-soft),background var(--t-base) var(--ease-soft);
  display:flex;flex-direction:column;
}
.prog-card:hover{transform:translateY(-7px);box-shadow:var(--s-xl);background:var(--glass-bg-strong)}
.prog-card-cta:hover{
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-deep) 100%);
}
.prog-card-wide{grid-column:span 2}
.prog-card-wide .prog-img{min-height:280px}
.prog-card-wide .prog-inner{display:grid;grid-template-columns:1.2fr 1fr}
.prog-card-wide .prog-body{display:flex;flex-direction:column;justify-content:center}
.prog-img{position:relative;overflow:hidden}
.prog-card:not(.prog-card-wide) .prog-img{aspect-ratio:16/9}
.prog-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.prog-card:hover .prog-img img{transform:scale(1.06)}
.prog-badges{position:absolute;top:14px;left:14px;display:flex;gap:6px;z-index:1}
.prog-badges .tag{margin:0;font-size:.6rem;padding:5px 12px}
.prog-body{padding:26px 28px 30px;flex:1}
.prog-cat{font-size:.63rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase;margin-bottom:9px}
.prog-name{font-family:var(--font-display);font-size:clamp(1.35rem,2.5vw,2rem);font-weight:400;color:var(--navy);line-height:1.1;margin-bottom:12px}
.prog-desc{font-size:.88rem;color:var(--ink-soft);line-height:1.75;margin-bottom:17px}
.prog-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:21px}
.prog-chip{font-size:.67rem;font-weight:600;padding:5px 12px;border-radius:var(--r-pill);background:rgba(36,51,73,.06);color:var(--ink-soft)}
.prog-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.acc-orange .prog-body{border-top:1px solid rgba(255,125,30,.28)}
.acc-orange .prog-cat{color:var(--orange-deep)}
.acc-navy .prog-body{border-top:1px solid rgba(61,81,115,.28)}
.acc-navy .prog-cat{color:var(--navy)}
.acc-yellow .prog-body{border-top:1px solid rgba(255,208,64,.4)}
.acc-yellow .prog-cat{color:#A36A00}
.acc-green .prog-body{border-top:1px solid rgba(46,173,107,.32)}
.acc-green .prog-cat{color:#1A7A4C}
.acc-purple .prog-body{border-top:1px solid rgba(123,63,228,.3)}
.acc-purple .prog-cat{color:#5B1FBF}
.acc-red .prog-body{border-top:1px solid rgba(224,89,74,.3)}
.acc-red .prog-cat{color:var(--red)}

/* Placeholder art tile (used where no real photo exists yet) */
.prog-art{aspect-ratio:16/9;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative}
.prog-art-orb{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.prog-art-orb svg{width:28px;height:28px;stroke-width:1.6}
.prog-art-label{font-family:var(--font-display);font-size:1.3rem;color:var(--navy);text-align:center}

/* ════════════════════════════════════════════════════════════════════════
   CORE VALUES
   ════════════════════════════════════════════════════════════════════════ */
.values-section{padding:96px 0}
.values-header{text-align:center;margin-bottom:56px}
.value-card{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-xl);padding:34px 24px;text-align:center;box-shadow:var(--glass-shadow);
  transition:transform var(--t-base) var(--ease-soft),background var(--t-base) var(--ease-soft);
}
.value-card:hover{transform:translateY(-5px);background:var(--glass-bg-strong)}
.value-icon{width:54px;height:54px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;color:var(--orange-deep)}
.value-icon svg{width:24px;height:24px;stroke-width:1.8}
.value-name{font-family:var(--font-display);font-size:1.35rem;font-weight:400;color:var(--navy);margin-bottom:8px}
.value-desc{font-size:.83rem;color:var(--ink-soft);line-height:1.65}

/* Dark variant of values band (navy aurora bg, used on About) */
.value-band{background:var(--navy-deep);padding:96px 0;position:relative;overflow:hidden}
.value-band .value-card{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);box-shadow:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.value-band .value-card:hover{background:rgba(255,255,255,.13)}
.value-band .value-name{color:#fff}
.value-band .value-desc{color:rgba(255,255,255,.6)}
.approach-quote{
  background:rgba(255,125,30,.14);border:1px solid rgba(255,125,30,.28);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-radius:var(--r-xl);padding:38px 42px;text-align:center;
}
.approach-label{font-size:.66rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--orange-light);margin-bottom:10px}
.approach-text{font-family:var(--font-display);font-size:clamp(1.15rem,2.3vw,1.85rem);color:#fff;line-height:1.4}

/* ════════════════════════════════════════════════════════════════════════
   ABOUT PAGE — bio grid, credentials, timeline
   ════════════════════════════════════════════════════════════════════════ */
.about-grid{display:grid;grid-template-columns:1fr 1.45fr;gap:64px;align-items:start}
.about-img-wrap{position:sticky;top:104px}
.about-img-frame{
  border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--s-xl);position:relative;
  border:1px solid var(--glass-border);
}
.about-img-frame img{width:100%;display:block}
.about-img-caption{
  margin-top:16px;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-lg);padding:20px 22px;box-shadow:var(--glass-shadow);
}
.about-bio-section{margin-bottom:40px}
.about-bio-section h3{font-family:var(--font-display);font-size:1.5rem;color:var(--navy);margin-bottom:13px;line-height:1.15}
.about-bio-section p{font-size:.95rem;color:var(--ink-soft);line-height:1.9;margin-bottom:14px}

.credential-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:10px}
.credential-item{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-md);padding:14px 16px;display:flex;align-items:center;gap:11px;
  font-size:.83rem;font-weight:600;color:var(--navy);transition:background var(--t-fast),transform var(--t-fast);box-shadow:var(--s-xs);
}
.credential-item:hover{background:var(--glass-bg-strong);transform:translateY(-2px)}
.cred-icon{width:32px;height:32px;background:#fff;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--orange-deep);box-shadow:var(--s-xs)}
.cred-icon svg{width:14px;height:14px;stroke-width:2;stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round}

.timeline{display:flex;flex-direction:column;gap:0;margin-top:8px}
.timeline-item{display:flex;gap:20px;padding-bottom:30px;position:relative}
.timeline-item::before{content:'';position:absolute;left:19px;top:42px;bottom:0;width:1px;background:linear-gradient(to bottom,rgba(36,51,73,.18),transparent)}
.timeline-item:last-child::before{display:none}
.timeline-dot{
  width:40px;height:40px;border-radius:50%;background:var(--orange);display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-family:var(--font-display);font-size:1rem;color:#fff;font-weight:400;z-index:1;box-shadow:0 6px 16px rgba(255,125,30,.35);
}
.timeline-year{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:5px}
.timeline-text{font-size:.88rem;color:var(--ink-soft);line-height:1.7}

/* Learn-more panel — links About → Media page */
.learnmore-panel{
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-xl);box-shadow:var(--glass-shadow);
  padding:30px 34px;margin-top:8px;
}
.learnmore-text h4{font-family:var(--font-display);font-size:1.3rem;color:var(--navy);margin-bottom:6px;font-weight:400}
.learnmore-text p{font-size:.86rem;color:var(--ink-soft);max-width:420px}

/* ════════════════════════════════════════════════════════════════════════
   STATS STRIP (reusable)
   ════════════════════════════════════════════════════════════════════════ */
.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.stat-card{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-lg);padding:26px 22px;text-align:center;box-shadow:var(--glass-shadow);
}
.stat-num{font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.6rem);color:var(--orange-deep);margin-bottom:4px}
.stat-label{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}

/* ════════════════════════════════════════════════════════════════════════
   TESTIMONIALS
   ════════════════════════════════════════════════════════════════════════ */


/* ════════════════════════════════════════════════════════════════════════
   PACKAGES / SHOP CARDS
   ════════════════════════════════════════════════════════════════════════ */
.packages{padding:96px 0}
.packages-header{text-align:center;margin-bottom:56px}
.pkg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-items:start}
.pkg-card{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--glass-shadow);
  transition:transform var(--t-base) var(--ease-soft),background var(--t-base) var(--ease-soft);position:relative;display:flex;flex-direction:column;
}
.pkg-card:hover{transform:translateY(-6px);background:var(--glass-bg-strong)}
.pkg-featured{border:1.5px solid var(--orange);box-shadow:var(--s-lg)}
.pkg-popular{position:absolute;top:0;left:50%;transform:translateX(-50%);background:var(--orange);color:#fff;font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:5px 16px;border-radius:0 0 10px 10px}
.pkg-body{padding:26px 24px 28px}
.pkg-name{font-family:var(--font-display);font-size:1.3rem;color:var(--navy);margin-bottom:8px}
.pkg-price{font-size:1.05rem;font-weight:700;color:var(--orange-deep);margin-bottom:14px}
.pkg-price span{font-size:.72rem;color:var(--ink-muted);font-weight:500}
.pkg-desc{font-size:.84rem;color:var(--ink-soft);line-height:1.65;margin-bottom:18px}
.pkg-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.pkg-list li{display:flex;align-items:flex-start;gap:8px;font-size:.8rem;color:var(--ink-mid)}
.pkg-list svg{width:15px;height:15px;color:var(--green);flex-shrink:0;margin-top:2px}

/* Product image fallback art tile */
.pkg-art{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}

/* ════════════════════════════════════════════════════════════════════════
   FAQ ACCORDION
   ════════════════════════════════════════════════════════════════════════ */
.faq-list{display:flex;flex-direction:column;gap:14px}
.faq-item{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--glass-shadow);overflow:hidden;
  transition:background var(--t-fast);
}
.faq-item.open{background:var(--glass-bg-strong)}
.faq-question{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:22px 26px;text-align:left;font-size:.96rem;font-weight:700;color:var(--navy);
  transition:color var(--t-fast);
}
.faq-question:hover{color:var(--orange-deep)}
.faq-question svg{width:18px;height:18px;flex-shrink:0;color:var(--orange-deep);transition:transform var(--t-base) var(--ease)}
.faq-item.open .faq-question svg{transform:rotate(45deg)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height var(--t-base) var(--ease)}
.faq-answer-inner{padding:0 26px 24px;font-size:.88rem;color:var(--ink-soft);line-height:1.75}

/* ════════════════════════════════════════════════════════════════════════
   TABS
   ════════════════════════════════════════════════════════════════════════ */
.tab-nav{display:inline-flex;gap:4px;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--r-pill);padding:5px;box-shadow:var(--glass-shadow)}
.tab-btn{padding:10px 22px;border-radius:var(--r-pill);font-size:.8rem;font-weight:700;color:var(--ink-soft);transition:all var(--t-fast)}
.tab-btn.active{background:var(--navy);color:#fff;box-shadow:0 4px 14px rgba(36,51,73,.3)}
.tab-panel{display:none}
.tab-panel.active{display:block}

/* ════════════════════════════════════════════════════════════════════════
   BOOK PAGE
   ════════════════════════════════════════════════════════════════════════ */
.book-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center}
.book-title-hero{font-family:var(--font-display);font-size:clamp(2.4rem,5.6vw,4.6rem);color:#fff;line-height:1.05;letter-spacing:-.015em}
.book-quote{
  background:rgba(255,125,30,.14);border:1px solid rgba(255,125,30,.28);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-radius:var(--r-lg);padding:26px 28px;margin:24px 0;
}
.book-quote p{font-family:var(--font-display);font-style:italic;font-size:1.15rem;color:var(--navy);line-height:1.5}

/* ════════════════════════════════════════════════════════════════════════
   MEDIA & PRESS PAGE — editorial "clipping" glass cards
   Signature device for this page: masthead rules + glass "clipping" cards,
   grounded in the page's own subject matter (press coverage).
   ════════════════════════════════════════════════════════════════════════ */
.press-masthead{
  display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:14px;
}
.press-masthead .rule{height:1px;flex:1;background:linear-gradient(to right,transparent,rgba(255,255,255,.35),transparent)}
.press-filter-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:48px}

.press-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.press-card{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-xl);box-shadow:var(--glass-shadow);
  padding:0;overflow:hidden;display:flex;flex-direction:column;transition:transform var(--t-base) var(--ease-soft),box-shadow var(--t-base) var(--ease-soft);
}
.press-card:hover{transform:translateY(-6px);box-shadow:var(--s-xl)}
.press-card-feature{grid-column:span 2}
.press-card-feature .press-card-body{padding:38px 40px}
.press-kicker{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:16px 24px;border-bottom:1px solid var(--glass-border);
}
.press-outlet{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:1.05rem;color:var(--navy)}
.press-outlet-mark{width:34px;height:34px;border-radius:9px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.95rem;flex-shrink:0}
.press-type{font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--orange-deep);background:var(--orange-pale);padding:5px 11px;border-radius:var(--r-pill)}
.press-card-body{padding:22px 24px 26px}
.press-headline{font-family:var(--font-display);font-size:1.35rem;color:var(--navy);line-height:1.25;margin-bottom:10px}
.press-excerpt{font-size:.86rem;color:var(--ink-soft);line-height:1.7;margin-bottom:16px}
.press-meta{display:flex;align-items:center;justify-content:space-between;font-size:.72rem;color:var(--ink-muted);font-weight:600}
.press-meta a{color:var(--orange-deep);font-weight:700}
.press-meta a:hover{color:var(--orange)}

/* "Coming soon" placeholder card — clearly a template slot, not a real claim */
.press-card-placeholder{
  border:1.5px dashed rgba(36,51,73,.22);background:rgba(255,255,255,.32);box-shadow:none;
}
.press-card-placeholder:hover{transform:none;box-shadow:none}
.press-placeholder-icon{width:46px;height:46px;border-radius:14px;background:var(--navy-pale);color:var(--navy);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.press-placeholder-icon svg{width:20px;height:20px;stroke-width:1.7}

.press-quote-card{
  background:var(--glass-dark-bg);-webkit-backdrop-filter:var(--glass-dark-blur);backdrop-filter:var(--glass-dark-blur);
  border:1px solid var(--glass-dark-border);border-radius:var(--r-xl);box-shadow:var(--glass-dark-shadow);
  padding:40px 44px;text-align:center;
}
.press-quote-card p.quote{font-family:var(--font-display);font-size:clamp(1.2rem,2.4vw,1.7rem);font-style:italic;color:#fff;line-height:1.5;margin-bottom:16px}
.press-quote-card .src{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-light)}

/* ════════════════════════════════════════════════════════════════════════
   CTA SECTION
   ════════════════════════════════════════════════════════════════════════ */
.cta-section{padding:30px 0 120px}
.cta-inner{
  max-width:760px;margin:0 auto;text-align:center;
  background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);
  border-radius:var(--r-2xl);padding:clamp(40px,6vw,72px) clamp(28px,6vw,64px);
}
.cta-headline{font-family:var(--font-display);font-size:clamp(2rem,4.4vw,3.4rem);color:var(--navy);margin-bottom:14px;line-height:1.1}
.cta-sub{font-size:1rem;color:var(--ink-soft);max-width:480px;margin:0 auto 30px;line-height:1.7}
.cta-sub-note{margin-top:16px;font-size:.84rem;color:var(--ink-soft)}
.cta-sub-note a{color:var(--orange-deep);font-weight:700}

/* ════════════════════════════════════════════════════════════════════════
   FOOTER — navy aurora + glass panel (day/night bookend)
   ════════════════════════════════════════════════════════════════════════ */
.footer{background:var(--navy-deep);padding:80px 0 0;position:relative;overflow:hidden}
.footer-panel{
  background:rgba(255,255,255,.05);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.1);border-radius:var(--r-2xl);padding:52px 48px 8px;
}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:40px;padding-bottom:36px}
.f-brand-name{font-family:var(--font-display);font-size:1.5rem;color:#fff;margin-bottom:2px}
.f-brand-tag{font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--orange-light);display:block;margin-bottom:16px}
.f-brand p{font-size:.84rem;color:rgba(255,255,255,.5);line-height:1.7;margin-bottom:20px}
.f-socials{display:flex;gap:10px}
.f-soc{
  width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.65);transition:all var(--t-fast);
}
.f-soc:hover{background:var(--orange);color:#fff;border-color:var(--orange);transform:translateY(-2px)}
.f-soc svg{width:16px;height:16px}
.f-col h4{font-family:var(--font-display);font-size:1.05rem;color:#fff;margin-bottom:16px;font-weight:400}
.f-col ul{display:flex;flex-direction:column;gap:11px}
.f-col a{font-size:.83rem;color:rgba(255,255,255,.52);transition:color var(--t-fast)}
.f-col a:hover{color:var(--orange-light)}
.f-contact{display:flex;align-items:flex-start;gap:10px;font-size:.83rem;color:rgba(255,255,255,.52);margin-bottom:14px;line-height:1.5}
.f-contact svg{width:14px;height:14px;flex-shrink:0;margin-top:3px;color:var(--orange-light)}
.f-contact a{color:rgba(255,255,255,.62);transition:color var(--t-fast)}
.f-contact a:hover{color:var(--orange-light)}
.footer-bottom{padding:22px 0 26px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.08)}
.footer-bottom p{font-size:.76rem;color:rgba(255,255,255,.32)}
.footer-bottom a{color:var(--orange-light);transition:color var(--t-fast)}
.footer-bottom a:hover{color:#fff}

/* ════════════════════════════════════════════════════════════════════════
   FLOATING WHATSAPP
   ════════════════════════════════════════════════════════════════════════ */
.float-wa{position:fixed;bottom:28px;right:28px;z-index:900;width:56px;height:56px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 26px rgba(37,211,102,.4),0 0 0 6px rgba(37,211,102,.12);transition:all var(--t-base) var(--ease-spring);text-decoration:none;-webkit-tap-highlight-color:transparent}
.float-wa:hover,.float-wa:active{transform:scale(1.08);box-shadow:0 12px 34px rgba(37,211,102,.5),0 0 0 8px rgba(37,211,102,.16)}
.float-wa svg{width:27px;height:27px}

/* ════════════════════════════════════════════════════════════════════════
   SCROLL REVEAL
   ════════════════════════════════════════════════════════════════════════ */
.reveal{opacity:1;transform:none;transition:none}
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease-soft),transform .7s var(--ease-soft)}
.js .reveal.visible{opacity:1;transform:translateY(0)}
.js .reveal-left{transform:translateX(-26px)}
.js .reveal-left.visible{transform:translateX(0)}
.reveal-d1{transition-delay:.1s}
.reveal-d2{transition-delay:.2s}
.reveal-d3{transition-delay:.3s}
.reveal-d4{transition-delay:.4s}

/* ════════════════════════════════════════════════════════════════════════
   RESPONSIVE — 1100px tablet
   ════════════════════════════════════════════════════════════════════════ */
@media(max-width:1100px){
  .nav-links{display:none}
  .nav-hamburger{display:flex}
  .prog-grid{grid-template-columns:repeat(2,1fr)}
  .prog-card-wide{grid-column:span 2}
  .pkg-grid{grid-template-columns:repeat(2,1fr)}
  .book-grid{grid-template-columns:1fr;gap:48px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .mission-inner{grid-template-columns:1fr}
  .press-grid{grid-template-columns:repeat(2,1fr)}
  .press-card-feature{grid-column:span 2}
  .stats-strip{grid-template-columns:repeat(2,1fr)}
  .about-grid{grid-template-columns:1fr}
  .about-img-wrap{position:static}
  .credential-grid{grid-template-columns:1fr 1fr}
}

/* ════════════════════════════════════════════════════════════════════════
   RESPONSIVE — 768px mobile
   ════════════════════════════════════════════════════════════════════════ */
@media(max-width:768px){
  .section{padding:76px 0}
  .container,.container-sm{padding:0 18px}
  .nav-wrap{top:12px;padding:0 14px}
  .nav{padding:8px 8px 8px 16px;border-radius:var(--r-2xl)}
  .nav-right .btn{display:none}
  .nav-inner{height:auto}
  .ann-bar{font-size:.73rem;padding:9px 40px 9px 14px}

  .hero-content{padding:0 16px 36px}
  .hero-panel{padding:24px 22px;border-radius:var(--r-xl)}
  .hero-eyebrow{margin-bottom:12px}
  .hero-eyebrow-text .mobile-short{display:inline}
  .hero-eyebrow-text .mobile-hide{display:none}
  .hero h1{font-size:clamp(2.4rem,11vw,3.8rem);margin-bottom:12px}
  .hero-tagline{font-size:.88rem;margin-bottom:22px;max-width:100%}
  .hero-actions{flex-wrap:wrap;gap:8px}
  .hero-actions .btn-lg{padding:13px 22px;font-size:.78rem}

  .hero-stats{gap:16px;margin-top:24px;padding-top:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;-webkit-mask:linear-gradient(to right,#000 80%,transparent 100%);mask:linear-gradient(to right,#000 80%,transparent 100%)}
  .hero-stats::-webkit-scrollbar{display:none}
  .hero-stat-num{font-size:1.3rem}
  .hero-stat-label{font-size:.55rem}
  .hero-stat-sep{height:26px}
  .hero-scroll{display:none}
  .hero-glow{display:none}

  .page-hero{padding:104px 0 48px}

  .trust-bar{padding:14px 0}
  .trust-inner{flex-wrap:nowrap;gap:16px;overflow-x:auto;justify-content:flex-start;scrollbar-width:none;-webkit-overflow-scrolling:touch;width:calc(100% - 32px);margin:0 16px;border-radius:var(--r-lg);padding:14px 20px}
  .trust-inner::-webkit-scrollbar{display:none}
  .trust-sep{display:none}

  .prog-grid{grid-template-columns:1fr}
  .prog-card-wide{grid-column:span 1}
  .prog-card-wide .prog-inner{grid-template-columns:1fr}
  .prog-card-wide .prog-img{min-height:200px}
  .programs-header{grid-template-columns:1fr;gap:14px}
  .programs-header .btn{align-self:flex-start}

  .pkg-grid{grid-template-columns:1fr}
  .press-grid{grid-template-columns:1fr}
  .press-card-feature{grid-column:span 1}
  .stats-strip{grid-template-columns:1fr 1fr}
  .credential-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:30px}
  .footer-panel{padding:36px 24px 8px;border-radius:var(--r-xl)}
  .footer-bottom{flex-direction:column;text-align:center}
  .learnmore-panel{flex-direction:column;text-align:center;padding:26px}
  .cta-inner{border-radius:var(--r-xl)}
}

/* ════════════════════════════════════════════════════════════════════════
   RESPONSIVE — 480px small phone
   ════════════════════════════════════════════════════════════════════════ */
@media(max-width:480px){
  .hero h1{font-size:clamp(2.2rem,12vw,3.2rem)}
  .hero-actions{flex-wrap:wrap}
  .hero-actions .btn{flex:0 0 auto}
  .float-wa{bottom:18px;right:18px;width:50px;height:50px}
  .float-wa svg{width:24px;height:24px}
  .stats-strip{grid-template-columns:1fr}
}

/* ── UTILS ── */
.text-center{text-align:center}
.text-orange{color:var(--orange-deep)}
.text-navy{color:var(--navy)}
.text-white{color:#fff}
.text-soft{color:var(--ink-soft)}
.bg-cream{background:var(--cream)}
.bg-navy{background:var(--navy-deep)}
.bg-white{background:#fff}
.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mt-8{margin-top:32px}.mt-12{margin-top:48px}
.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.mb-8{margin-bottom:32px}.mb-12{margin-bottom:48px}
.hidden{display:none!important}

/* ════════════════════════════════════════════════════════════════════════
   IMAGE FALLBACK SYSTEM
   When an <img> fails to load, JS adds .img-broken to the img and
   .img-failed to the nearest [data-fallback] ancestor (or direct parent).
   The fallback shows a soft glass-tinted gradient + icon + label.
   ════════════════════════════════════════════════════════════════════════ */
img.img-broken{opacity:0;position:absolute;pointer-events:none}

[data-fallback].img-failed{
  position:relative;display:flex !important;align-items:center;justify-content:center;
  flex-direction:column;gap:10px;aspect-ratio:16/9;max-height:300px;min-height:140px;
}
[data-fallback].img-failed::after{
  content:attr(data-fallback);font-family:var(--font-body);font-size:.7rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;opacity:.62;pointer-events:none;position:relative;z-index:1;color:var(--navy);
}
[data-fallback].img-failed::before{
  content:'';position:relative;z-index:1;width:44px;height:44px;opacity:.55;
  background-repeat:no-repeat;background-position:center;background-size:contain;
}

[data-fallback="After-School Program"].img-failed,
[data-fallback="Reading Club"].img-failed,
[data-fallback="Arts & Crafts"].img-failed,
[data-fallback="Tech Club"].img-failed,
[data-fallback="Creative Writing"].img-failed,
[data-fallback="Special Needs"].img-failed,
[data-fallback="Book Club"].img-failed,
[data-fallback="Adult Education"].img-failed,
[data-fallback="Program"].img-failed{
  background:linear-gradient(135deg,var(--orange-pale) 0%,var(--peri-soft) 100%);color:var(--navy);
}
[data-fallback="After-School Program"].img-failed::before,
[data-fallback="Program"].img-failed::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23243349' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpolyline points='9 22 9 12 15 12 15 22'/%3E%3C/svg%3E");
}
[data-fallback="Reading Club"].img-failed::before,
[data-fallback="Book Club"].img-failed::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23243349' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z'/%3E%3Cpath d='M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z'/%3E%3C/svg%3E");
}
[data-fallback="Arts & Crafts"].img-failed::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23243349' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
}
[data-fallback="Tech Club"].img-failed::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23243349' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='14' rx='2'/%3E%3Cline x1='8' y1='21' x2='16' y2='21'/%3E%3Cline x1='12' y1='17' x2='12' y2='21'/%3E%3C/svg%3E");
}
[data-fallback="Creative Writing"].img-failed::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23243349' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z'/%3E%3C/svg%3E");
}
[data-fallback="Special Needs"].img-failed::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23243349' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l8.84-8.84 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/%3E%3C/svg%3E");
}
[data-fallback="Adult Education"].img-failed::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23243349' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 10v6M2 10l10-5 10 5-10 5z'/%3E%3Cpath d='M6 12v5c3 3 9 3 12 0v-5'/%3E%3C/svg%3E");
}

[data-fallback="Ms. Mary"].img-failed{
  background:linear-gradient(135deg,var(--navy-pale) 0%,var(--peri-soft) 100%);color:var(--navy);
  border-radius:var(--r-xl);aspect-ratio:3/4;max-height:440px;
}
[data-fallback="Ms. Mary"].img-failed::before{
  width:64px;height:64px;opacity:.32;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23243349' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
}

[data-fallback="Book Cover"].img-failed,
[data-fallback="Book Image"].img-failed{
  background:linear-gradient(135deg,#1E2A3A 0%,#2D4060 100%);color:rgba(255,255,255,.6);
  border-radius:var(--r-lg);aspect-ratio:3/4;max-height:340px;
}
[data-fallback="Book Cover"].img-failed::after,
[data-fallback="Book Image"].img-failed::after{color:rgba(255,255,255,.45)}
[data-fallback="Book Cover"].img-failed::before,
[data-fallback="Book Image"].img-failed::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z'/%3E%3Cpath d='M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z'/%3E%3C/svg%3E");
}

[data-fallback="Hub Photo"].img-failed,
[data-fallback="Gallery"].img-failed{
  background:linear-gradient(135deg,var(--orange-pale) 0%,var(--peri-soft) 100%);color:var(--navy);aspect-ratio:1/1;
}
[data-fallback="Hub Photo"].img-failed::before,
[data-fallback="Gallery"].img-failed::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23243349' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpolyline points='21 15 16 10 5 21'/%3E%3C/svg%3E");
}

[data-fallback="Product"].img-failed{
  background:linear-gradient(135deg,var(--orange-pale) 0%,var(--peri-soft) 100%);color:var(--navy);
}
[data-fallback="Product"].img-failed::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23243349' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2L3 6v14a2 2 0 002 2h14a2 2 0 002-2V6l-3-4z'/%3E%3Cline x1='3' y1='6' x2='21' y2='6'/%3E%3Cpath d='M16 10a4 4 0 01-8 0'/%3E%3C/svg%3E");
}

/* ════════════════════════════════════════════════════════════════════════
   PACKAGE CARD HEADER (icon / tier / sub) + feature list
   ════════════════════════════════════════════════════════════════════════ */
.pkg-top{padding:28px 24px 18px;text-align:center;border-bottom:1px solid var(--glass-border)}
.pkg-icon{width:48px;height:48px;border-radius:14px;background:var(--orange-pale);color:var(--orange-deep);display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.pkg-icon svg{width:22px;height:22px}
.pkg-tier{font-family:var(--font-display);font-size:1.4rem;color:var(--navy);margin-bottom:4px}
.pkg-sub{font-size:.76rem;color:var(--ink-soft)}
.pkg-feats{display:flex;flex-direction:column;gap:11px;margin-bottom:20px}
.pkg-feat-item{display:flex;align-items:flex-start;gap:9px;font-size:.83rem;color:var(--ink-mid);line-height:1.4}
.pkg-check{width:18px;height:18px;border-radius:50%;background:var(--orange-pale);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.pkg-check svg{width:10px;height:10px}

/* ════════════════════════════════════════════════════════════════════════
   TESTIMONIALS — author row with avatar
   ════════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════════
   VISIT / HUB SECTION — location + hours
   ════════════════════════════════════════════════════════════════════════ */
.hub-section{padding:96px 0}
.hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.hub-placeholder{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--r-2xl);
  aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:32px;text-align:center;
}
.hub-pin{width:52px;height:52px;border-radius:50%;background:var(--orange-pale);color:var(--orange-deep);display:flex;align-items:center;justify-content:center}
.hub-pin svg{width:24px;height:24px}
.hub-hours{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--r-lg);
  padding:6px 22px;margin-bottom:22px;
}
.hub-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;font-size:.86rem}
.hub-row+.hub-row{border-top:1px solid var(--glass-border)}
.hub-day{font-weight:700;color:var(--navy)}
.hub-time{color:var(--ink-soft);font-weight:600}
.hub-time.closed{color:var(--ink-muted)}

@media(max-width:1100px){.hub-grid{grid-template-columns:1fr;gap:36px}}

/* ════════════════════════════════════════════════════════════════════════
   CONSULTATION REQUEST FORM — glass form fields
   ════════════════════════════════════════════════════════════════════════ */
.consult-panel{
  background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);
  border-radius:var(--r-2xl);padding:clamp(32px,5vw,56px);
}
.consult-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:48px;align-items:start}
.consult-intro h3{font-family:var(--font-display);font-size:1.85rem;color:var(--navy);margin-bottom:14px;line-height:1.2}
.consult-intro p{font-size:.92rem;color:var(--ink-soft);line-height:1.75;margin-bottom:20px}
.consult-reasons{display:flex;flex-direction:column;gap:10px}
.consult-reason-item{display:flex;align-items:center;gap:10px;font-size:.83rem;color:var(--ink-mid);font-weight:600}
.consult-reason-item svg{width:16px;height:16px;color:var(--orange-deep);flex-shrink:0}

.form-row{margin-bottom:16px}
.form-row-split{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);margin-bottom:7px}
.form-input,.form-select,.form-textarea{
  width:100%;padding:13px 16px;border-radius:var(--r-md);font-family:var(--font-body);font-size:.9rem;color:var(--ink);
  background:rgba(255,255,255,.55);border:1px solid rgba(36,51,73,.14);transition:border-color var(--t-fast),background var(--t-fast);
}
.form-input::placeholder,.form-textarea::placeholder{color:var(--ink-muted)}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--orange);background:rgba(255,255,255,.85)}
.form-textarea{resize:vertical;min-height:96px}
.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2365707E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:42px}
.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.form-note{font-size:.74rem;color:var(--ink-muted);margin-top:12px;line-height:1.6}

@media(max-width:900px){
  .consult-grid{grid-template-columns:1fr;gap:32px}
}
@media(max-width:480px){
  .form-row-split{grid-template-columns:1fr}
}

/* ════════════════════════════════════════════════════════════════════════
   MOBILE-FIRST HARDENING
   Majority of visitors are on phones — these rules are not afterthoughts.
   ════════════════════════════════════════════════════════════════════════ */

/* Anchor jumps must clear the floating glass nav */
[id]{scroll-margin-top:110px}
@media(max-width:768px){[id]{scroll-margin-top:90px}}

/* Dynamic viewport height — avoids mobile browser chrome jump on load */
.hero{min-height:100vh}
@supports (height:100dvh){ .hero{min-height:100dvh} }

/* Real 44px+ tap targets everywhere on touch screens */
@media(max-width:768px){
  .btn{min-height:46px}
  .btn-sm{min-height:42px;padding:11px 20px}
  .nav-hamburger{min-width:44px;min-height:44px;justify-content:center}
  .ann-close{min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center}
  .f-soc{width:42px;height:42px}
  .faq-question{padding:18px 20px;min-height:44px}
  .tab-btn{min-height:40px;display:flex;align-items:center}
  .mobile-close{width:46px;height:46px}
  .float-wa{width:54px;height:54px}
}

/* Forms: 16px minimum stops iOS Safari auto-zooming the page on focus */
@media(max-width:768px){
  .form-input,.form-select,.form-textarea{font-size:16px;padding:14px 16px;min-height:48px}
  .form-textarea{min-height:110px}
}

/* Lighter glass on mobile — backdrop-filter blur is GPU-costly when many
   translucent cards stack in a scrolling feed on mid-range phones.
   Visual effect stays, cost drops. */
@media(max-width:768px){
  :root{
    --glass-blur: blur(13px) saturate(165%);
    --glass-dark-blur: blur(11px) saturate(150%);
  }
  .aurora-blob{filter:blur(46px)}
  .aurora{position:absolute;inset:auto 0 auto 0;top:0;height:100vh;max-height:900px}
  .aurora-blob.b4{display:none}
  .nav{-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%)}
}

/* Active/tap feedback (touch screens have no :hover) */
@media(hover:none){
  .btn:active{transform:scale(.97)}
  .glass-card:active,.prog-card:active,.pkg-card:active,.value-card:active,.press-card:active{transform:translateY(-2px) scale(.995)}
  .f-soc:active{background:var(--orange);color:#fff}
}

/* Prevent horizontal overflow from any stray wide element on small screens */
@media(max-width:480px){
  html,body{max-width:100vw}
  .d-2xl,.d-xl,.d-lg{word-break:break-word}
}

/* Responsive embed wrapper (used for YouTube features on the Media page) */
.embed-16x9{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--r-lg);overflow:hidden;background:var(--navy-deep)}
.embed-16x9 iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Publication card — image + text, stacks on narrow phones */
.pub-card-grid{display:grid;grid-template-columns:140px 1fr}
@media(max-width:560px){
  .pub-card-grid{grid-template-columns:1fr}
  .pub-card-grid > div:first-child{aspect-ratio:16/9}
}

/* ════════════════════════════════════════════════════════════════════════
   PROGRAM DETAIL CARDS (full detail page — learning-hub.html)
   ════════════════════════════════════════════════════════════════════════ */
.prog-anchor{margin-bottom:32px}
.prog-detail{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-xl);box-shadow:var(--glass-shadow);overflow:hidden;
}
.prog-detail-inner{display:grid;grid-template-columns:1fr 1.1fr;min-height:400px}
.prog-detail-inner.flip{grid-template-columns:1.1fr 1fr}
.prog-detail-inner.flip .prog-detail-img{order:2}
.prog-detail-inner.flip .prog-detail-body{order:1}
.prog-detail-img{position:relative;overflow:hidden}
.prog-detail-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.prog-detail:hover .prog-detail-img img{transform:scale(1.04)}
.prog-detail-body{padding:44px 46px;display:flex;flex-direction:column;justify-content:center}
.prog-icon-badge{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:18px;flex-shrink:0}
.prog-icon-badge svg{stroke:currentColor}
.prog-detail-cat{font-size:.65rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:10px}
.prog-detail-name{font-family:var(--font-display);font-size:clamp(1.7rem,3vw,2.6rem);font-weight:400;color:var(--navy);line-height:1.1;margin-bottom:14px}
.prog-detail-desc{font-size:.93rem;color:var(--ink-soft);line-height:1.8;margin-bottom:20px}
.prog-includes{margin-bottom:24px}
.prog-includes-title{font-size:.66rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-mid);margin-bottom:12px}
.prog-include-list{display:flex;flex-direction:column;gap:9px}
.prog-include-item{display:flex;align-items:flex-start;gap:10px;font-size:.87rem;color:var(--ink-soft);line-height:1.55}
.prog-check-dot{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;flex-shrink:0;margin-top:1px}
.prog-meta-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.prog-meta-chip{display:flex;align-items:center;gap:5px;font-size:.71rem;font-weight:600;padding:6px 13px;border-radius:var(--r-pill);background:rgba(36,51,73,.06);color:var(--ink-soft)}
.prog-ctas{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

.prog-art-detail{display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;padding:40px;text-align:center}
.prog-art-detail .icon{font-size:3.6rem;display:block;margin-bottom:14px}

/* Accent colours per program */
.acc-o .prog-detail-cat{color:var(--orange-deep)} .acc-o .prog-icon-badge{background:var(--orange-pale);color:var(--orange-deep)} .acc-o .prog-check-dot{background:var(--orange-pale);color:var(--orange-deep)} .acc-o .prog-detail{border-top:4px solid var(--orange)}
.acc-n .prog-detail-cat{color:var(--navy)} .acc-n .prog-icon-badge{background:var(--navy-pale);color:var(--navy)} .acc-n .prog-check-dot{background:var(--navy-pale);color:var(--navy)} .acc-n .prog-detail{border-top:4px solid var(--navy)}
.acc-y .prog-detail-cat{color:#A36A00} .acc-y .prog-icon-badge{background:var(--gold-pale);color:#A36A00} .acc-y .prog-check-dot{background:var(--gold-pale);color:#A36A00} .acc-y .prog-detail{border-top:4px solid var(--gold)}
.acc-p .prog-detail-cat{color:#5B1FBF} .acc-p .prog-icon-badge{background:var(--purple-pale);color:#5B1FBF} .acc-p .prog-check-dot{background:var(--purple-pale);color:#5B1FBF} .acc-p .prog-detail{border-top:4px solid var(--purple)}
.acc-g .prog-detail-cat{color:#1A7A4C} .acc-g .prog-icon-badge{background:var(--green-pale);color:#1A7A4C} .acc-g .prog-check-dot{background:var(--green-pale);color:#1A7A4C} .acc-g .prog-detail{border-top:4px solid var(--green)}
.acc-r .prog-detail-cat{color:var(--red)} .acc-r .prog-icon-badge{background:#FDE8E0;color:var(--red)} .acc-r .prog-check-dot{background:#FDE8E0;color:var(--red)} .acc-r .prog-detail{border-top:4px solid var(--red)}

/* Sticky quick-nav pill bar */
.prog-quicknav{position:sticky;top:80px;z-index:90;padding:10px 0;margin-bottom:8px}
.prog-quicknav-inner{
  max-width:1180px;margin:0 auto;padding:10px 18px;display:flex;gap:8px;flex-wrap:nowrap;align-items:center;overflow-x:auto;
  background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--r-pill);
  scrollbar-width:none;
}
.prog-quicknav-inner::-webkit-scrollbar{display:none}
.prog-quicknav-label{font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-right:4px;flex-shrink:0;white-space:nowrap}
.prog-quicknav-btn{font-size:.72rem;font-weight:700;letter-spacing:.02em;padding:8px 16px;border-radius:var(--r-pill);background:rgba(36,51,73,.06);color:var(--ink-mid);transition:all var(--t-fast) var(--ease);cursor:pointer;white-space:nowrap;flex-shrink:0}
.prog-quicknav-btn:hover,.prog-quicknav-btn.active{background:var(--orange);color:#fff}

@media(max-width:900px){
  .prog-detail-inner,.prog-detail-inner.flip{grid-template-columns:1fr;min-height:0}
  .prog-detail-inner.flip .prog-detail-img,.prog-detail-inner.flip .prog-detail-body{order:unset}
  .prog-detail-img,.prog-art-detail{min-height:0}
  .prog-detail-body{padding:30px 26px}
}
@media(max-width:600px){
  .prog-detail-body{padding:24px 20px}
  .prog-quicknav{top:70px}
}

/* Generic light service cards (consulting band) */
.service-card{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-lg);padding:30px 28px;box-shadow:var(--glass-shadow);
  transition:transform var(--t-base) var(--ease-soft);
}
.service-card:hover{transform:translateY(-5px)}
.service-icon-emoji{font-size:2rem;display:block;margin-bottom:14px}
.service-card h3{font-family:var(--font-display);font-size:1.3rem;color:var(--navy);margin-bottom:10px;font-weight:400}
.service-card p{font-size:.85rem;color:var(--ink-soft);line-height:1.7}
.service-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:860px){.service-grid-3{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.service-grid-3{grid-template-columns:1fr}}

/* ════════════════════════════════════════════════════════════════════════
   KIDSPRAY — orange community band + social cards
   ════════════════════════════════════════════════════════════════════════ */
.orange-band{background:linear-gradient(135deg,var(--orange) 0%,var(--orange-deep) 100%);padding:96px 0;position:relative;overflow:hidden}
.orange-band::before{content:'';position:absolute;right:-10%;top:-20%;width:60%;height:140%;background:radial-gradient(circle,rgba(255,255,255,.12) 0%,transparent 70%);pointer-events:none}
.social-card{display:flex;align-items:center;gap:16px;background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.22);border-radius:var(--r-lg);padding:16px 20px;transition:all .25s var(--ease-soft);position:relative;z-index:1}
.social-card:hover{background:rgba(255,255,255,.24);transform:translateY(-2px)}
.social-ico{width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.social-ico svg{width:20px;height:20px}
.social-name{font-size:.82rem;font-weight:700;color:#fff;margin-bottom:2px}
.social-handle{font-size:.72rem;color:rgba(255,255,255,.72)}

@media(max-width:900px){.comm-grid{grid-template-columns:1fr!important;gap:36px!important}}
@media(max-width:900px){.book-details-grid{grid-template-columns:1fr!important;gap:40px!important}.pkg-teaser-grid{grid-template-columns:1fr!important;gap:28px!important}}

/* ════════════════════════════════════════════════════════════════════════
   SHOP — selar banner + digital product cards
   ════════════════════════════════════════════════════════════════════════ */
.selar-banner{
  background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);
  border-radius:var(--r-xl);padding:32px 36px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:60px;
}
.selar-banner h3{font-family:var(--font-display);font-size:1.5rem;color:var(--navy);margin-bottom:6px;font-weight:400}
.selar-banner p{font-size:.88rem;color:var(--ink-soft)}

.shop-hd{text-align:center;margin-bottom:48px}
.shop-hd h2{font-family:var(--font-display);font-size:clamp(1.8rem,3.5vw,3rem);color:var(--navy);line-height:1.1;margin-bottom:12px;font-weight:400}

.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.product-card{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--glass-shadow);
  transition:transform var(--t-base) var(--ease-soft),background var(--t-base) var(--ease-soft);display:flex;flex-direction:column;
}
.product-card:hover{transform:translateY(-6px);background:var(--glass-bg-strong)}
.product-img{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.product-img.product-img-portrait{aspect-ratio:3/4}
.product-img.product-img-portrait img{object-position:center 40%}
.product-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.product-card:hover .product-img img{transform:scale(1.05)}
.product-img-icon{width:60px;height:60px;border-radius:16px;display:flex;align-items:center;justify-content:center}
.product-img-icon svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.product-badge{position:absolute;top:12px;left:12px;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 12px;border-radius:var(--r-pill)}
.product-body{padding:22px 24px 26px;flex:1;display:flex;flex-direction:column}
.product-cat{font-size:.63rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:7px}
.product-name{font-family:var(--font-display);font-size:1.3rem;color:var(--navy);line-height:1.15;margin-bottom:10px;font-weight:400}
.product-desc{font-size:.84rem;color:var(--ink-soft);line-height:1.72;flex:1;margin-bottom:14px}
.product-feats{margin-bottom:16px;display:flex;flex-direction:column;gap:7px}
.product-feat{display:flex;align-items:center;gap:8px;font-size:.79rem;color:var(--ink-soft)}
.feat-check{width:16px;height:16px;background:var(--orange-pale);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.feat-check svg{width:8px;height:8px;stroke:var(--orange-deep);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}

@media(max-width:1000px){.product-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.product-grid{grid-template-columns:1fr}.selar-banner{flex-direction:column;text-align:center}}

/* ════════════════════════════════════════════════════════════════════════
   RESOURCES — tip cards, routine cards, WRAD cards, gallery
   ════════════════════════════════════════════════════════════════════════ */
.tip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tip-card{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-xl);box-shadow:var(--glass-shadow);overflow:hidden;
  display:flex;flex-direction:column;transition:transform var(--t-base) var(--ease-soft),background var(--t-base) var(--ease-soft);
}
.tip-card:hover{transform:translateY(-5px);background:var(--glass-bg-strong)}
.tip-card-top{padding:28px 26px 0}
.tip-number{font-family:var(--font-display);font-size:3rem;color:var(--orange-pale);line-height:1;margin-bottom:8px;font-weight:400}
.tip-cat{font-size:.62rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:8px}
.tip-title{font-family:var(--font-display);font-size:1.2rem;color:var(--navy);line-height:1.2;margin-bottom:10px;font-weight:400}
.tip-body{padding:0 26px 26px;flex:1;display:flex;flex-direction:column}
.tip-text{font-size:.87rem;color:var(--ink-soft);line-height:1.78;flex:1}
.tip-steps{margin:12px 0;display:flex;flex-direction:column;gap:7px}
.tip-step{display:flex;align-items:flex-start;gap:9px;font-size:.82rem;color:var(--ink-soft)}
.tip-step-num{width:20px;height:20px;border-radius:50%;background:var(--orange);color:#fff;font-size:.62rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}

.routine-card{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-xl);box-shadow:var(--glass-shadow);padding:30px 32px;
  transition:transform var(--t-base) var(--ease-soft),background var(--t-base) var(--ease-soft);
}
.routine-card:hover{transform:translateY(-4px);background:var(--glass-bg-strong)}
.routine-card h3{font-family:var(--font-display);font-size:1.3rem;color:var(--navy);margin-bottom:14px;font-weight:400}
.routine-row{display:flex;align-items:center;gap:10px;font-size:.88rem;color:var(--ink-soft)}
.routine-time{font-weight:700;font-size:.78rem;width:46px;flex-shrink:0}

.wrad-card{background:rgba(255,255,255,.15);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--r-lg);padding:24px 26px;border:1px solid rgba(255,255,255,.22)}
.wrad-card h3{font-family:var(--font-display);font-size:1.2rem;color:#fff;margin-bottom:8px;font-weight:400}
.wrad-card p{font-size:.86rem;color:rgba(255,255,255,.82);line-height:1.7}

.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gallery-img{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--s-sm);cursor:zoom-in;border:1px solid var(--glass-border)}
.gallery-img img{width:100%;display:block;aspect-ratio:1/1;object-fit:cover;transition:transform .5s var(--ease)}
.gallery-img:hover img{transform:scale(1.05)}

@media(max-width:900px){.tip-grid{grid-template-columns:1fr 1fr}.gallery-grid{grid-template-columns:1fr 1fr}.routine-grid{grid-template-columns:1fr!important}}
@media(max-width:600px){.tip-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr}}

/* ════════════════════════════════════════════════════════════════════════
   CONTACT PAGE
   ════════════════════════════════════════════════════════════════════════ */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start}

.map-placeholder{
  background:linear-gradient(135deg,var(--orange-pale) 0%,var(--peri-soft) 100%);
  border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);
  border-radius:var(--r-xl);aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;text-align:center;padding:32px;position:relative;overflow:hidden;
}
.map-placeholder::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 28px,rgba(36,51,73,.04) 28px,rgba(36,51,73,.04) 29px),repeating-linear-gradient(90deg,transparent,transparent 28px,rgba(36,51,73,.04) 28px,rgba(36,51,73,.04) 29px)}
.map-pin-wrap{position:relative;z-index:1;width:52px;height:52px;background:var(--orange);border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(255,125,30,.4);flex-shrink:0}
.map-pin-inner{width:18px;height:18px;background:#fff;border-radius:50%;transform:rotate(45deg)}
.map-placeholder strong,.map-placeholder p,.map-placeholder a{position:relative;z-index:1}

.contact-card{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--r-xl);padding:36px;
}
.contact-item{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--glass-border)}
.contact-item:last-child{border:none;padding-bottom:0}
.contact-icon{width:42px;height:42px;background:var(--orange-pale);border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--orange-deep)}
.contact-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.contact-label{font-size:.63rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:4px}
.contact-value{font-size:.93rem;color:var(--ink);line-height:1.6}
.contact-value a{color:var(--ink);transition:color .18s}
.contact-value a:hover{color:var(--orange)}

.hours-table{width:100%;border-collapse:collapse;margin-top:8px}
.hours-table tr td{padding:10px 0;font-size:.87rem;border-bottom:1px solid var(--glass-border)}
.hours-table tr:last-child td{border:none}
.hours-table td:first-child{font-weight:600;color:var(--ink)}
.hours-table td:last-child{color:var(--ink-soft);text-align:right}
.closed{color:var(--red)!important;font-weight:600}

.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.qa-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:13px 16px;border-radius:var(--r-md);font-size:.78rem;font-weight:700;letter-spacing:.03em;transition:all var(--t-base) var(--ease);border:1.5px solid transparent;text-align:center}
.qa-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.qa-orange{background:var(--orange);color:#fff;border-color:var(--orange)}
.qa-orange:hover{background:var(--orange-deep);transform:translateY(-1px)}
.qa-outline{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  color:var(--navy);border-color:var(--glass-border);
}
.qa-outline:hover{border-color:var(--navy);background:var(--glass-bg-strong)}
.qa-full{grid-column:span 2}

.directions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.dir-card{
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--r-lg);padding:28px 24px;text-align:center;
  transition:transform var(--t-base) var(--ease-soft),box-shadow var(--t-base) var(--ease-soft);
}
.dir-card:hover{transform:translateY(-3px);box-shadow:var(--s-lg)}
.dir-icon{width:48px;height:48px;border-radius:14px;background:var(--orange-pale);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;color:var(--orange-deep)}
.dir-icon svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dir-title{font-family:var(--font-display);font-size:1.18rem;color:var(--navy);margin-bottom:8px;font-weight:400}
.dir-text{font-size:.84rem;color:var(--ink-soft);line-height:1.7}

@media(max-width:900px){
  .contact-grid{grid-template-columns:1fr}
  .directions-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .directions-grid{grid-template-columns:1fr}
  .quick-actions{grid-template-columns:1fr}
  .qa-full{grid-column:span 1}
}

/* ════════════════════════════════════════════════════════════════════════
   CAROUSEL — premium overlapping "peek" carousel
   Real native scroll-snap underneath (buttery touch-swipe, no JS required
   for it to work at all) with JS-enhanced arrows/dots layered on top.
   Active card rises in scale + z-index + shadow; neighbours sit dimmed and
   tucked partially behind it via negative margin overlap.
   ════════════════════════════════════════════════════════════════════════ */
.carousel{position:relative}
.carousel-track{
  display:flex;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;touch-action:pan-x;
  padding:26px 7% 38px;scrollbar-width:none;scroll-padding:0 7%;
}
.carousel-track::-webkit-scrollbar{display:none}
.carousel-card{
  flex:0 0 auto;width:min(82vw,320px);scroll-snap-align:center;position:relative;
  opacity:.68;transform:scale(.88);z-index:1;
  transition:transform .45s var(--ease-soft),opacity .45s var(--ease-soft);
  cursor:pointer;
}
.carousel-card:not(:first-child){margin-left:-28px}
.carousel-card.is-active{opacity:1;transform:scale(1);z-index:5;cursor:default}
.carousel-card.is-active .value-card,
.carousel-card.is-active .glass-card{box-shadow:var(--s-xl)}

.carousel-arrow{
  position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;
  background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);box-shadow:0 6px 20px rgba(22,31,45,.16),0 2px 6px rgba(22,31,45,.1);
  display:flex;align-items:center;justify-content:center;z-index:9;color:var(--navy);
  transition:all var(--t-fast) var(--ease);-webkit-tap-highlight-color:transparent;
}
.carousel-arrow:hover{background:#fff;transform:translateY(-50%) scale(1.06)}
.carousel-arrow svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.carousel-arrow-prev{left:-20px}
.carousel-arrow-next{right:-20px}
.carousel-arrow[disabled]{opacity:0;pointer-events:none}
.carousel.no-scroll-needed .carousel-arrow,
.carousel.no-scroll-needed .carousel-dots{display:none}
.carousel.no-scroll-needed .carousel-track{padding:26px 0 6px;justify-content:center;gap:22px}
.carousel.no-scroll-needed .carousel-card{opacity:1;transform:scale(1);cursor:default}
.carousel.no-scroll-needed .carousel-card:not(:first-child){margin-left:0}

@media(max-width:600px){
  .carousel-arrow-prev{left:-4px}
  .carousel-arrow-next{right:-4px}
}

/* Dark variant for arrows sitting over a navy band */
.carousel-dark .carousel-arrow{
  background:var(--glass-dark-bg);-webkit-backdrop-filter:var(--glass-dark-blur);backdrop-filter:var(--glass-dark-blur);
  border-color:var(--glass-dark-border);color:#fff;
}
.carousel-dark .carousel-arrow:hover{background:var(--glass-dark-bg-deep)}

.carousel-dots{display:flex;justify-content:center;gap:7px;margin-top:-22px;position:relative;z-index:6}
.carousel-dot{width:6px;height:6px;border-radius:50%;background:rgba(36,51,73,.18);transition:all var(--t-fast) var(--ease);cursor:pointer}
.carousel-dot.active{width:20px;border-radius:4px;background:var(--orange)}
.carousel-dark .carousel-dot{background:rgba(255,255,255,.22)}
.carousel-dark .carousel-dot.active{background:var(--orange-light)}

/* Image-card variant (book gallery, hub gallery) — image fills the card,
   no inner card chrome, rounded corners + shadow live on the card itself */
.carousel-card.img-card{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--s-sm);aspect-ratio:1/1}
.carousel-card.img-card.is-active{box-shadow:var(--s-xl)}
.carousel-card.img-card img{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block}

@media(max-width:480px){
  .carousel-card{width:min(86vw,300px)}
  .carousel-arrow{width:40px;height:40px}
  .carousel-arrow svg{width:16px;height:16px}
}
@media(prefers-reduced-motion:reduce){
  .carousel-track{scroll-behavior:auto}
}

/* ════════════════════════════════════════════════════════════════════════
   ICON SYSTEM EXTENSIONS — replacing emoji with custom SVG icons
   (platform emoji render inconsistently across iOS/Android/desktop and
   read as template-y; custom line icons match the rest of the brand)
   ════════════════════════════════════════════════════════════════════════ */

/* Service cards (consulting / free-resources) — icon badge instead of bare emoji */
.service-icon{width:52px;height:52px;border-radius:15px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.service-icon svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Small inline icons inside meta-chips and glass tags */
.chip-ic{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}

/* The "featured/popular" mark — a clean geometric sparkle, not a platform emoji */
.spark{display:inline-flex;width:12px;height:12px;flex-shrink:0}
.spark svg{width:100%;height:100%}
.pkg-popular .spark,.pkg-popular svg{width:13px;height:13px}

/* ════════════════════════════════════════════════════════════════════════
   (Book cover presentation now lives in the BOOK COVER CAROUSEL block below)
   ════════════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════════════
   PROGRAM GRID — closing CTA tile (desktop bookend)
   At 3 columns, 1 wide card (span 2) + 5 standard cards leaves a lone card
   on the last row with two empty cells beside it on wide screens. This wide
   CTA tile completes that row exactly (2+5+2=9 grid units = clean 3×3) while
   adding real navigational value — a deliberate "bookend" to the flagship
   wide card at the top, not a patch.
   ════════════════════════════════════════════════════════════════════════ */
.prog-card-cta{
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-deep) 100%);
  display:flex;align-items:center;justify-content:center;padding:44px 36px;position:relative;overflow:hidden;
}
.prog-card-cta::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 85% 15%,rgba(255,125,30,.22) 0%,transparent 55%);
  pointer-events:none;
}
.prog-cta-inner{position:relative;z-index:1;text-align:center;max-width:380px}
.prog-cta-icons{display:flex;justify-content:center;gap:9px;margin-bottom:20px}
.prog-cta-dot{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.85);flex-shrink:0}
.prog-cta-dot svg{width:16px;height:16px;stroke-width:1.8}
.prog-cta-title{font-family:var(--font-display);font-size:1.55rem;color:#fff;line-height:1.25;margin-bottom:11px;font-weight:400}
.prog-cta-desc{font-size:.85rem;color:rgba(255,255,255,.6);line-height:1.7;margin-bottom:24px}

/* ════════════════════════════════════════════════════════════════════════
   BOOK COVER CAROUSEL — front + back cover, swipeable
   Reuses the shared carousel component (img-card variant) at a portrait
   book-cover size. Always built for 2 slides (front, back) — when a real
   back-cover photo isn't available yet, repeat the front-cover image as a
   placeholder in the 2nd slot so the carousel UI is ready the moment a real
   photo exists; nothing else needs to change but the one image src.
   ════════════════════════════════════════════════════════════════════════ */
.book-cover-carousel .carousel-track{padding:22px 9% 34px}
.book-cover-card{
  width:min(66vw,260px) !important;aspect-ratio:3/4;border-radius:var(--r-lg);
  box-shadow:0 2px 4px rgba(22,31,45,.06),0 14px 28px -6px rgba(22,31,45,.22),0 30px 60px -18px rgba(22,31,45,.28);
}
.book-cover-card img{object-position:center 42%}
.book-cover-carousel.no-scroll-needed .carousel-track{padding:22px 0 6px}

/* ════════════════════════════════════════════════════════════════════════
   EVENT YEAR PANELS — KidsPray Fun Art page
   Reuses existing tab-nav/tab-btn/tab-panel, prog-meta-chip, and carousel
   components; only a small status-badge treatment is new here.
   ════════════════════════════════════════════════════════════════════════ */
.event-badge{
  display:inline-flex;align-items:center;gap:6px;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:7px 14px;border-radius:var(--r-pill);margin-bottom:16px;
}
.event-badge-past{background:rgba(36,51,73,.08);color:var(--ink-mid)}
.event-badge-upcoming{background:var(--green-pale);color:#1A7A4C}
.event-badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}


.event-reg-table{margin-top:18px}
.event-reg-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--glass-border);font-size:.86rem}
.event-reg-row:last-child{border-bottom:none}
.event-reg-label{color:var(--ink-soft)}
.event-reg-price{font-weight:700;color:var(--navy)}
.event-reg-price.closed{color:var(--ink-muted);text-decoration:line-through;font-weight:600}

/* ════════════════════════════════════════════════════════════════════════
   EVENT FEATURE BANNER — image + content, used to make Fun Art prominent
   on the KidsPray page (not just a text-only panel)
   ════════════════════════════════════════════════════════════════════════ */
.event-feature-banner{
  display:grid;grid-template-columns:.9fr 1.1fr;gap:0;align-items:stretch;
  background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);border-radius:var(--r-xl);box-shadow:var(--glass-shadow);overflow:hidden;
}
.event-feature-img{position:relative;min-height:220px}
.event-feature-img img{width:100%;height:100%;object-fit:cover;display:block}
.event-feature-body{padding:36px 38px;display:flex;flex-direction:column;justify-content:center}
.event-feature-body h4{font-family:var(--font-display);font-size:1.5rem;color:var(--navy);margin-bottom:10px;font-weight:400}
.event-feature-body p{font-size:.88rem;color:var(--ink-soft);line-height:1.75;margin-bottom:20px;max-width:440px}

@media(max-width:760px){
  .event-feature-banner{grid-template-columns:1fr}
  .event-feature-img{min-height:180px}
  .event-feature-body{padding:28px 26px}
}

/* ════════════════════════════════════════════════════════════════════════
   v1.8.0 — MOBILE VIEWPORT STABILITY + PREMIUM CONTAINMENT
   Fixes the pinch-zoom/right-gutter bug by containing wide premium devices
   (glass nav, carousels, pill rows, hero panels) inside the viewport without
   flattening the visual language.
   ════════════════════════════════════════════════════════════════════════ */
html,body{width:100%;max-width:100%;overflow-x:hidden}
@supports (overflow-x:clip){html,body{overflow-x:clip}}
body{min-width:0}

main,header,footer,section,.container,.container-sm,.nav-wrap,.hero,.page-hero,.aurora,.aurora-local{
  max-width:100%;
}

.carousel,.carousel-track,.book-cover-carousel,.prog-quicknav,.trust-bar,.trust-inner,.tab-nav,.mobile-menu{
  max-width:100%;
  min-width:0;
}

.carousel,.book-cover-carousel,.prog-quicknav,.trust-bar,.tab-nav{
  overflow-x:clip;
}
@supports not (overflow-x:clip){
  .carousel,.book-cover-carousel,.prog-quicknav,.trust-bar,.tab-nav{overflow-x:hidden}
}

.tag,.btn,.prog-meta-chip,.glass-tag{max-width:100%}

@media(max-width:768px){
  body{position:relative;touch-action:pan-x pan-y pinch-zoom}
  .container,.container-sm{width:100%;max-width:100%;min-width:0}

  .ann-bar{max-width:100%;box-sizing:border-box;line-height:1.35}
  .ann-close{right:8px}

  .nav-wrap{
    left:0;right:0;width:100%;box-sizing:border-box;
    padding-left:max(12px,env(safe-area-inset-left));
    padding-right:max(12px,env(safe-area-inset-right));
  }
  .nav{
    width:100%;max-width:100%;min-width:0;overflow:hidden;
    border-radius:28px;gap:10px;justify-content:flex-start;
  }
  .nav-logo{flex:1 1 auto;min-width:0;max-width:calc(100% - 54px);overflow:hidden}
  .nav-right{margin-left:auto;flex:0 0 auto}
  .nav-wordmark,.nav-tagline-mini{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .nav-logo-img{flex-shrink:0}
  .mobile-menu{width:100vw;max-width:100vw;overflow-x:hidden}

  .hero{min-height:min(100svh,760px)}
  @supports (height:100dvh){.hero{min-height:min(100dvh,760px)}}
  .hero-content{width:100%;max-width:100%;padding:0 16px 34px;min-width:0}
  .hero-panel{width:100%;max-width:100%;padding:24px 20px;border-radius:28px;overflow:hidden}
  .hero h1{font-size:clamp(2.15rem,10.6vw,3.25rem);line-height:.98}
  .hero-tagline{font-size:.9rem;line-height:1.5;margin-bottom:20px}
  .hero-actions{display:grid;grid-template-columns:1fr;gap:9px;width:100%}
  .hero-actions .btn{width:100%;justify-content:center;white-space:normal;text-align:center}
  .hero-eyebrow,.hero h1,.hero-tagline,.hero-actions,.hero-stats{animation:none!important;opacity:1!important;transform:none!important}
  .hero-stats{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;
    overflow:visible;-webkit-mask:none;mask:none;margin-top:20px;padding-top:15px;
  }
  .hero-stat-item{min-width:0;text-align:left}
  .hero-stat-num{font-size:1.16rem;white-space:nowrap}
  .hero-stat-label{font-size:.5rem;letter-spacing:.07em;line-height:1.25}
  .hero-stat-sep{display:none}

  .page-hero{padding:122px 0 64px;overflow:hidden}
  .page-hero-inner{max-width:100%;min-width:0}
  .d-2xl{font-size:clamp(2.25rem,12vw,4rem);line-height:.98}
  .d-xl{font-size:clamp(2rem,10vw,3.35rem);line-height:1.02}
  .d-lg{font-size:clamp(1.7rem,8.3vw,2.75rem)}

  .book-grid,.book-details-grid,.pkg-teaser-grid,.comm-grid{max-width:100%;min-width:0;overflow:hidden}
  .book-title-hero{font-size:clamp(2.55rem,13vw,4rem);line-height:.96;overflow-wrap:anywhere}
  .book-cover-carousel{width:100%;max-width:100%;overflow:hidden;padding-inline:0}
  .book-cover-carousel .carousel-track{
    width:100%;max-width:100%;overflow-x:auto;overflow-y:visible;
    scroll-padding-inline:18px;padding:18px 18px 32px;overscroll-behavior-x:contain;
  }
  .book-cover-card{width:min(72vw,260px)!important;max-width:260px;flex-basis:min(72vw,260px)!important}
  .carousel-card:not(:first-child){margin-left:-16px}
  .carousel-arrow-prev{left:4px}.carousel-arrow-next{right:4px}

  .tag,.tag-glass,.btn,.btn-lg,.btn-xl,.btn-sm{
    white-space:normal;overflow-wrap:anywhere;text-align:center;
  }
  .tab-nav,.prog-quicknav-inner,.trust-inner{
    overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;
  }
  .prog-quicknav{overflow:hidden}
  .prog-quicknav-inner{max-width:calc(100vw - 28px);box-sizing:border-box}

  .product-grid,.pkg-grid,.prog-grid,.service-grid-3,.tip-grid,.gallery-grid,.directions-grid,.quick-actions{
    max-width:100%;min-width:0;
  }
  .glass-card,.prog-card,.product-card,.pkg-card,.service-card,.contact-card,.cta-inner,.footer-panel{
    max-width:100%;min-width:0;overflow:hidden;
  }

  .float-wa{
    right:max(14px,env(safe-area-inset-right));
    bottom:max(18px,env(safe-area-inset-bottom));
    width:50px;height:50px;
  }
}

@media(max-width:420px){
  .nav{padding:8px 8px 8px 13px}
  .hero-content{padding-left:14px;padding-right:14px}
  .hero-panel{padding:22px 18px;border-radius:26px}
  .hero h1{font-size:clamp(2rem,10.8vw,2.95rem)}
  .book-cover-card{width:min(76vw,250px)!important;flex-basis:min(76vw,250px)!important}
}

/* v1.8.0 mobile carousel/grid final containment */
@media(max-width:768px){
  .book-grid > *,.book-details-grid > *,.pkg-teaser-grid > *,.comm-grid > *{min-width:0;max-width:100%;width:100%}
  .book-cover-carousel.no-scroll-needed .carousel-track{justify-content:flex-start;gap:0;padding:18px 18px 32px}
  .book-cover-carousel.no-scroll-needed .carousel-card:not(:first-child){margin-left:-16px}
  .carousel.no-scroll-needed:not(.book-cover-carousel) .carousel-track{max-width:100%;overflow:hidden}
}

/* ════════════════════════════════════════════════════════════════════════
   v1.9.0 — PREMIUM POLISH + CONVERSION REFINEMENT
   Preserve the Glasslight luxury language while adding trust, better
   missing-image art, stronger mobile readability, and calmer CTAs.
   ════════════════════════════════════════════════════════════════════════ */
.ann-bar{
  background:linear-gradient(90deg,var(--navy-deep),#1f3047 54%,var(--navy-deep));
  letter-spacing:.01em;
}
.ann-kicker{color:rgba(255,255,255,.78);font-weight:600}
.ann-bar strong{color:var(--orange-light);font-family:var(--font-display);font-weight:400;font-size:1.02em}
.ann-bar a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.42)}
.ann-close{background:rgba(255,255,255,.07);border-radius:50%}

.hero-eyebrow-text{display:inline-flex;align-items:center;gap:0;flex-wrap:wrap;row-gap:3px}
.hero-dot-sep{padding:0 .35em;color:rgba(255,255,255,.4)}

/* Premium editorial fallback art for missing local photos */
[data-fallback].img-failed,
[data-fallback]:has(> img.img-broken){
  position:relative;isolation:isolate;
  background:
    radial-gradient(circle at 18% 18%,rgba(255,255,255,.55),transparent 22%),
    radial-gradient(circle at 82% 78%,rgba(255,125,30,.20),transparent 28%),
    linear-gradient(135deg,#fff6eb 0%,#f7ebdb 45%,#eaf0fb 100%)!important;
}
[data-fallback].img-failed::before,
[data-fallback]:has(> img.img-broken)::before{
  content:'';position:absolute;inset:14px;border-radius:inherit;z-index:0;pointer-events:none;
  border:1px solid rgba(255,255,255,.62);
  background:
    linear-gradient(120deg,rgba(255,255,255,.32),rgba(255,255,255,.04)),
    repeating-linear-gradient(135deg,rgba(61,81,115,.055) 0 1px,transparent 1px 12px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
}
[data-fallback].img-failed::after,
[data-fallback]:has(> img.img-broken)::after{
  content:attr(data-fallback);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;
  min-width:min(72%,260px);max-width:82%;text-align:center;
  padding:16px 18px;border-radius:22px;
  background:rgba(255,255,255,.52);-webkit-backdrop-filter:blur(14px) saturate(150%);backdrop-filter:blur(14px) saturate(150%);
  border:1px solid rgba(255,255,255,.66);box-shadow:0 18px 42px rgba(36,51,73,.13);
  color:var(--navy);font-family:var(--font-display);font-size:clamp(1.05rem,3.5vw,1.55rem);line-height:1.05;
}
.prog-img.img-failed::after,.prog-detail-img.img-failed::after{content:attr(data-fallback) '\A curated learning experience';white-space:pre-line}
.img-card.img-failed::after{content:attr(data-fallback) '\A Gallery moment';white-space:pre-line}

/* Parent trust section */
.premium-proof{padding:0 0 42px;position:relative}
.proof-panel{
  display:grid;grid-template-columns:.82fr 1.18fr;gap:26px;align-items:center;
  padding:30px clamp(22px,4vw,42px);border-radius:var(--r-2xl);
  background:linear-gradient(135deg,rgba(255,255,255,.58),rgba(255,255,255,.28));
  -webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);
}
.proof-intro h2{font-family:var(--font-display);font-weight:400;color:var(--navy);font-size:clamp(1.75rem,4vw,3rem);line-height:1;margin:10px 0}
.proof-intro p{color:var(--ink-soft);line-height:1.72;font-size:.94rem;max-width:520px}
.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.proof-item{padding:20px 18px;border-radius:var(--r-lg);background:rgba(255,255,255,.54);border:1px solid rgba(255,255,255,.64);box-shadow:var(--s-xs)}
.proof-item strong{display:block;font-family:var(--font-display);font-weight:400;color:var(--navy);font-size:1.22rem;margin-bottom:6px;line-height:1.05}
.proof-item span{display:block;color:var(--ink-soft);font-size:.8rem;line-height:1.55}

/* Contact concierge */
.contact-concierge{padding:28px 0 0;margin-bottom:-16px;position:relative;z-index:2}
.concierge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.concierge-card{
  display:block;padding:20px 22px;border-radius:var(--r-xl);
  background:rgba(255,255,255,.58);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:transform var(--t-base) var(--ease-soft),background var(--t-base) var(--ease-soft);
}
.concierge-card:hover{transform:translateY(-4px);background:rgba(255,255,255,.74)}
.concierge-card.primary{background:linear-gradient(135deg,rgba(255,125,30,.18),rgba(255,255,255,.58));border-color:rgba(255,125,30,.26)}
.concierge-card span{display:block;font-size:.63rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--orange-deep);margin-bottom:8px}
.concierge-card strong{display:block;font-family:var(--font-display);font-weight:400;color:var(--navy);font-size:1.32rem;line-height:1.05;margin-bottom:7px}
.concierge-card em{display:block;font-style:normal;color:var(--ink-soft);font-size:.82rem;line-height:1.45}

/* Dark page readability: richer contrast without flattening luxury styling */
.page-hero .page-hero-inner{position:relative}
.page-hero .body-lg{max-width:660px;text-shadow:0 1px 12px rgba(0,0,0,.22)}
.book-title-hero,.page-hero h1{text-shadow:0 10px 32px rgba(0,0,0,.25)}
.book-grid .tag,.page-hero .tag{box-shadow:0 8px 22px rgba(0,0,0,.14)}

/* Conversion polish: clearer primary choices on mobile without changing palette */
.hero-actions .btn:first-child,.prog-actions .btn:first-child,.prog-ctas .btn:first-child{box-shadow:0 12px 30px rgba(255,125,30,.28)}

@media(max-width:900px){
  .proof-panel{grid-template-columns:1fr;gap:20px}
  .proof-grid,.concierge-grid{grid-template-columns:1fr}
}
@media(max-width:768px){
  .ann-bar{font-size:.70rem;padding:8px 38px 8px 12px;white-space:normal;line-height:1.25}
  .ann-kicker{display:inline}
  .premium-proof{padding:0 0 30px}
  .proof-panel{padding:22px 18px;border-radius:28px}
  .proof-grid{gap:10px}
  .proof-item{padding:17px 16px}
  .contact-concierge{padding:20px 0 0;margin-bottom:-8px}
  .concierge-card{padding:18px 18px;border-radius:22px}
  [data-fallback].img-failed::before,[data-fallback]:has(> img.img-broken)::before{inset:10px}
  [data-fallback].img-failed::after,[data-fallback]:has(> img.img-broken)::after{padding:13px 14px;border-radius:18px;min-width:min(76%,240px)}
  .page-hero{padding-top:138px;padding-bottom:72px}
}

