/* Self-hosted fonts */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/montserrat-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(../assets/fonts/montserrat-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url(../assets/fonts/montserrat-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:800;font-display:swap;src:url(../assets/fonts/montserrat-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:'Lora';font-style:italic;font-weight:400;font-display:swap;src:url(../assets/fonts/lora-latin-400-italic.woff2) format('woff2')}
/* Kids Rare Care v2 — editorial, photo-led */
:root {
  --navy: #1B2A5B; --ink: #0B1330; --pink: #E8378B; --pink-deep: #C9226F;
  --sky: #4FB3E8; --sky-deep: #2A8FC7; --blush: #FDE7F0; --ice: #EAF6FD;
  --paper: #FBFAFC; --white: #fff;
  --text: #1B2A5B; --muted: rgba(27,42,91,.68); --line: rgba(27,42,91,.10);
  --grad: linear-gradient(135deg,#E8378B 0%,#4FB3E8 100%);
  --grad-soft: linear-gradient(135deg,rgba(232,55,139,.12),rgba(79,179,232,.12));
  --grad-dark: linear-gradient(160deg,#1B2A5B 0%,#0B1330 100%);
  --r: 24px; --r-sm: 14px;
  --shadow: 0 10px 30px rgba(27,42,91,.08);
  --shadow-lg: 0 30px 80px rgba(27,42,91,.18);
  --max: 1180px; --ease: cubic-bezier(.22,1,.36,1);
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin:0; font-family:'Montserrat',system-ui,sans-serif; color:var(--text); background:var(--paper); font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img { max-width:100%; display:block; }
a { color:var(--sky-deep); text-decoration:none; }
h1,h2,h3,h4 { margin:0 0 .45em; line-height:1.05; letter-spacing:-.02em; font-weight:800; color:var(--navy); text-wrap:balance; }
h1 { font-size:clamp(40px,6.4vw,76px); }
h2 { font-size:clamp(30px,4vw,50px); }
h3 { font-size:22px; font-weight:700; letter-spacing:-.01em; }
p { margin:0 0 1em; }
.lead { font-size:clamp(18px,1.5vw,21px); color:var(--muted); line-height:1.6; }
.grad-text { background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.eyebrow { display:inline-flex; align-items:center; gap:10px; font-size:12px; letter-spacing:.2em; text-transform:uppercase; font-weight:700; color:var(--pink); margin-bottom:18px; }
.eyebrow::before { content:""; width:28px; height:2px; background:var(--grad); border-radius:2px; }
.container { max-width:var(--max); margin:0 auto; padding:0 24px; }
.section { padding:110px 0; }
.section.tight { padding:64px 0; }
.bg-ice { background:var(--ice); } .bg-blush { background:var(--blush); }
.bg-dark { background:var(--grad-dark); color:#fff; }
.bg-dark h1,.bg-dark h2,.bg-dark h3 { color:#fff; }
.bg-dark .lead,.bg-dark p { color:rgba(255,255,255,.8); }
.bg-dark .eyebrow { color:var(--sky); }
.center { text-align:center; } .center .eyebrow { justify-content:center; }
.narrow { max-width:780px; margin-left:auto; margin-right:auto; }
.mt-1{margin-top:12px}.mt-2{margin-top:28px}.mt-3{margin-top:48px}.mb-2{margin-bottom:28px}.mb-3{margin-bottom:56px}
.small{font-size:14px}.muted{color:var(--muted)}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;background:#fff;padding:10px;z-index:100}

/* Buttons */
.btn { position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:16px 30px; border-radius:999px; font-weight:700; font-size:16px; border:2px solid transparent; cursor:pointer; overflow:hidden; transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s, color .3s, border-color .3s; }
.btn:hover { transform:translateY(-2px); }
.btn:active { transform:translateY(0); }
.btn-primary { background:var(--grad); color:#fff; box-shadow:0 10px 26px rgba(232,55,139,.28); }
.btn-primary::after { content:""; position:absolute; inset:0; background:linear-gradient(135deg,rgba(255,255,255,.28),transparent 60%); opacity:0; transition:opacity .3s; }
.btn-primary:hover { box-shadow:0 18px 40px rgba(232,55,139,.36); } .btn-primary:hover::after { opacity:1; }
.btn-secondary { background:#fff; color:var(--navy); border-color:var(--line); box-shadow:var(--shadow); }
.btn-secondary:hover { border-color:var(--sky); color:var(--sky-deep); }
.btn-ghost { background:rgba(255,255,255,.06); color:#fff; border-color:rgba(255,255,255,.28); backdrop-filter:blur(6px); }
.btn-ghost:hover { background:rgba(255,255,255,.12); border-color:#fff; }
.btn-lg { padding:19px 36px; font-size:17px; } .btn-block { width:100%; }
.btn .arr { transition:transform .3s var(--ease); } .btn:hover .arr { transform:translateX(4px); }
.actions { display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.center .actions { justify-content:center; }

/* Header: floating liquid-glass pill */
.header { position:fixed; top:calc(env(safe-area-inset-top,0px) + 16px); left:0; right:0; z-index:50; pointer-events:none; transition:top .35s var(--ease); }
.header .container { pointer-events:auto; }
.nav { display:flex; align-items:center; justify-content:space-between; height:72px; gap:16px; padding:0 12px 0 18px; border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.5)); backdrop-filter:blur(22px) saturate(180%); -webkit-backdrop-filter:blur(22px) saturate(180%);
  border:1px solid rgba(255,255,255,.75); box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 12px 40px rgba(27,42,91,.12), 0 0 0 1px rgba(27,42,91,.05);
  transition:height .35s var(--ease), box-shadow .35s var(--ease), background .35s; }
.header.scrolled { top:calc(env(safe-area-inset-top,0px) + 8px); }
.header.scrolled .nav { height:62px; background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(255,255,255,.7)); box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 16px 50px rgba(27,42,91,.18), 0 0 0 1px rgba(27,42,91,.06); }
.header::after { content:""; position:absolute; left:50%; top:0; width:min(var(--max),calc(100% - 48px)); height:1px; transform:translateX(-50%); background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent); pointer-events:none; }
.brand { display:flex; align-items:center; gap:12px; color:var(--navy); font-weight:800; text-decoration:none!important; }
.brand img { height:46px; width:auto; transition:height .35s var(--ease); }
.header.scrolled .brand img { height:40px; }
.brand span { font-size:15px; line-height:1.1; letter-spacing:.01em; }
.brand small { display:block; font-size:10px; letter-spacing:.18em; font-weight:600; color:var(--muted); text-transform:uppercase; margin-top:3px; }
.menu { display:flex; align-items:center; gap:6px; }
.menu a { position:relative; color:var(--navy); font-weight:600; font-size:15px; padding:10px 14px; border-radius:999px; transition:background .25s, color .25s; }
.menu a:not(.btn):hover { background:rgba(27,42,91,.06); color:var(--pink-deep); }
.menu a:not(.btn)::after { display:none; }
.menu .btn { padding:12px 22px; font-size:14px; margin-left:8px; }
.burger { display:none; background:none; border:0; width:44px; height:44px; cursor:pointer; border-radius:50%; }
.burger span { display:block; height:2px; background:var(--navy); margin:6px 10px; border-radius:2px; transition:.3s; }
main { padding-top:0; }
:root { --navh: calc(env(safe-area-inset-top,0px) + 100px); }
@media (max-width:960px) {
  .nav { height:64px; padding:0 8px 0 14px; }
  .brand img { height:40px; }
  .menu { display:none; position:absolute; top:calc(100% + 10px); left:24px; right:24px; background:#fff; flex-direction:column; align-items:stretch; padding:12px; gap:2px; border-radius:24px; border:1px solid rgba(255,255,255,.8); box-shadow:0 20px 60px rgba(27,42,91,.2); }
  .menu.open { display:flex; } .menu a { padding:14px 16px; border-radius:14px; }
  .menu .btn { margin:8px 0 0; justify-content:center; } .burger { display:block; }
  :root { --navh: calc(env(safe-area-inset-top,0px) + 88px); }
}

/* Hero: centered, video under the H1 */
.hero { position:relative; padding:calc(var(--navh) + 48px) 0 0; text-align:center; overflow:hidden; background:linear-gradient(180deg,#F7EDF5 0%,#F3F1FA 38%,var(--paper) 88%); }
.hero::before { content:""; position:absolute; inset:-10% -10% auto; height:110%; background:radial-gradient(45% 45% at 30% 20%,rgba(232,55,139,.16),transparent 60%),radial-gradient(45% 45% at 75% 30%,rgba(79,179,232,.2),transparent 60%); pointer-events:none; animation:drift 18s ease-in-out infinite alternate; mask-image:linear-gradient(180deg,#000 0%,#000 62%,transparent 96%); -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 62%,transparent 96%); }
@keyframes drift { to { transform:translate3d(3%,2%,0) scale(1.05); } }
.hero .container { position:relative; }
.hero h1 { max-width:16ch; margin:0 auto 20px; }
.hero .lead { max-width:680px; margin:0 auto 44px; }
.hero .actions { margin:0 0 0; justify-content:center; }
.hero-note { font-size:14px; color:var(--muted); margin:18px auto 56px; max-width:560px; }
.video-stage { position:relative; max-width:960px; margin:0 auto 40px; }
.video-frame { position:relative; border-radius:28px; overflow:hidden; box-shadow:var(--shadow-lg); aspect-ratio:16/9; background:var(--ink); border:1px solid rgba(255,255,255,.5); transform:translateY(0); transition:transform .6s var(--ease), box-shadow .6s var(--ease); }
.video-frame:hover { transform:translateY(-6px); box-shadow:0 40px 100px rgba(27,42,91,.26); }
.video-frame iframe, .video-frame .poster { position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-frame .poster { display:flex; align-items:center; justify-content:center; background-size:cover; background-position:center; }
.video-frame .poster::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(11,19,48,.05),rgba(11,19,48,.6)); }
.play { position:relative; width:92px; height:92px; border-radius:50%; background:var(--grad); display:flex; align-items:center; justify-content:center; box-shadow:0 16px 40px rgba(0,0,0,.35); transition:transform .4s var(--ease); }
.play::after { content:""; position:absolute; inset:-14px; border-radius:50%; border:2px solid rgba(255,255,255,.55); animation:pulse 2.2s ease-out infinite; }
@keyframes pulse { 0%{transform:scale(.7);opacity:1} 100%{transform:scale(1.25);opacity:0} }
.poster:hover .play { transform:scale(1.08); }
.video-frame .cap { position:absolute; left:22px; bottom:18px; color:#fff; font-weight:700; font-size:15px; text-shadow:0 2px 10px rgba(0,0,0,.5); z-index:1; }
.video-credit { font-size:13px; color:var(--muted); margin-top:14px; }
.hero-strip { border-top:0; background:transparent; padding:6px 0 10px; }
.hero + .section { padding-top:76px; }
.marquee { overflow:hidden; white-space:nowrap; padding:22px 0; mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); }
.marquee-track { display:inline-flex; gap:56px; animation:scroll 32s linear infinite; }
.marquee-track span { font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.marquee:hover .marquee-track { animation-play-state:paused; }
.logos-label { text-align:center; font-size:10.5px; opacity:.72; margin-top:22px; font-size:11px; letter-spacing:.2em; text-transform:uppercase; font-weight:700; color:var(--muted); margin:0 0 6px; }
.logos .marquee-track { gap:72px; align-items:center; animation-duration:44s; }
.logos img { height:42px; width:auto; max-width:340px; object-fit:contain; filter:grayscale(1); opacity:.62; transition:filter .4s, opacity .4s; }
.logos img:hover { filter:none; opacity:1; }
@media (max-width:760px) { .logos .marquee-track { gap:44px; } .logos img { height:34px; max-width:200px; } }
@keyframes scroll { to { transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce) { .marquee-track, .hero::before, .play::after { animation:none; } }

/* Stats */
.stats { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.stat { text-align:center; padding:34px 20px; border-radius:var(--r); background:#fff; border:1px solid var(--line); transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.stat:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.stat b { display:block; font-size:56px; font-weight:800; letter-spacing:-.03em; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; line-height:1; font-variant-numeric:tabular-nums; }
.stat span { display:block; margin-top:10px; font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); font-weight:700; }
@media (max-width:700px) { .stats { grid-template-columns:1fr; } }

/* Story: photo-led editorial */
.story { display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:center; }
.story.flip { grid-template-columns:.9fr 1.1fr; } .story.flip .story-media { order:-1; }
.story-media { position:relative; }
.photo { position:relative; border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow-lg); aspect-ratio:4/5; }
.photo.wide { aspect-ratio:16/11; } .photo.square { aspect-ratio:1; }
.photo img { width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.photo:hover img { transform:scale(1.04); }
.photo .cap { position:absolute; left:18px; right:18px; bottom:18px; color:#fff; font-size:13px; font-weight:600; text-shadow:0 2px 8px rgba(0,0,0,.6); background:linear-gradient(transparent,rgba(11,19,48,.6)); padding:40px 16px 12px; margin:0 -18px -18px; border-radius:0 0 var(--r) var(--r); }
.photo .cap.top { top:0; bottom:auto; background:linear-gradient(rgba(11,19,48,.72),transparent); padding:14px 16px 44px; margin:-18px -18px 0; border-radius:var(--r) var(--r) 0 0; }
.float-card { position:absolute; bottom:-22px; left:-22px; background:#fff; border-radius:18px; padding:16px 20px; box-shadow:var(--shadow-lg); max-width:260px; border:1px solid var(--line); }
.float-card b { display:block; font-size:28px; letter-spacing:-.02em; color:var(--pink); line-height:1; }
.float-card span { font-size:13px; color:var(--muted); font-weight:600; }
.pull { font-family:'Lora',Georgia,serif; font-style:italic; font-size:clamp(22px,2.4vw,30px); line-height:1.35; color:var(--navy); border-left:3px solid; border-image:var(--grad) 1; padding-left:22px; margin:26px 0; }
@media (max-width:900px) { .story,.story.flip { grid-template-columns:1fr; gap:36px; } .story.flip .story-media { order:0; } .float-card { left:12px; bottom:-16px; } }

/* Moments */
.moments { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.moment { position:relative; padding:36px 30px; border-radius:var(--r); background:#fff; border:1px solid var(--line); overflow:hidden; transition:transform .45s var(--ease), box-shadow .45s var(--ease); }
.moment::before { content:""; position:absolute; inset:0; background:var(--grad-soft); opacity:0; transition:opacity .45s; }
.moment:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); } .moment:hover::before { opacity:1; }
.moment > * { position:relative; }
.moment .k { font-size:12px; letter-spacing:.18em; text-transform:uppercase; font-weight:700; color:var(--sky-deep); margin-bottom:12px; display:block; }
.moment .lesson { margin-top:18px; padding-top:16px; border-top:1px solid var(--line); font-size:15px; color:var(--muted); }
.moment .lesson b { color:var(--pink); }
@media (max-width:900px) { .moments { grid-template-columns:1fr; } }

/* B3 */
.b3 { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.b3 .step { position:relative; padding:40px 32px 34px; border-radius:var(--r); background:#fff; border:1px solid var(--line); overflow:hidden; transition:transform .45s var(--ease), box-shadow .45s var(--ease); }
.b3 .step:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.b3 .step::before { content:attr(data-letter); position:absolute; right:-10px; top:-30px; font-size:180px; font-weight:800; line-height:1; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; opacity:.10; transition:opacity .45s, transform .6s var(--ease); }
.b3 .step:hover::before { opacity:.2; transform:translate(-6px,6px); }
.b3 .step h3 { font-size:26px; }
@media (max-width:900px) { .b3 { grid-template-columns:1fr; } }

/* Event */
.event { position:relative; display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center; background:#fff; border-radius:32px; padding:52px; box-shadow:var(--shadow-lg); border:1px solid var(--line); overflow:hidden; }
.event::before { content:""; position:absolute; inset:0; background:var(--grad-soft); opacity:.6; }
.event > * { position:relative; }
.facts { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin:22px 0 26px; }
.fact { background:#fff; border:1px solid var(--line); border-radius:var(--r-sm); padding:14px 16px; font-weight:700; font-size:15px; transition:border-color .3s; }
.fact:hover { border-color:var(--sky); }
.fact small { display:block; font-weight:700; color:var(--muted); font-size:11px; letter-spacing:.14em; text-transform:uppercase; margin-bottom:4px; }
.price-pill { display:inline-flex; align-items:baseline; gap:8px; background:var(--pink); color:#fff; border-radius:999px; padding:10px 22px; font-weight:800; font-size:28px; box-shadow:0 10px 26px rgba(232,55,139,.3); }
.price-pill small { font-size:12px; letter-spacing:.14em; text-transform:uppercase; }
.event .photo { aspect-ratio:4/5; }
@media (max-width:900px) { .event { grid-template-columns:1fr; padding:30px; } }

/* Offers */
.offers { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch; }
.offer { position:relative; display:flex; flex-direction:column; padding:36px 30px; border-radius:var(--r); background:#fff; border:1px solid var(--line); transition:transform .45s var(--ease), box-shadow .45s var(--ease); }
.offer:hover { transform:translateY(-8px); box-shadow:var(--shadow-lg); }
.offer.featured { background:linear-gradient(#fff,#fff) padding-box, var(--grad) border-box; border:2px solid transparent; }
.offer .tag { align-self:flex-start; }
.offer .price { font-size:40px; font-weight:800; color:var(--navy); letter-spacing:-.03em; line-height:1; margin:14px 0 4px; }
.offer .price small { font-size:14px; color:var(--muted); font-weight:600; letter-spacing:0; margin-left:6px; }
.offer ul { list-style:none; padding:0; margin:18px 0 26px; flex:1; }
.offer li { padding:9px 0 9px 30px; position:relative; font-size:15px; border-bottom:1px solid var(--line); }
.offer li::before { content:""; position:absolute; left:0; top:14px; width:18px; height:18px; border-radius:50%; background:var(--grad); mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M9 16.2l-3.5-3.5L4 14.2l5 5 11-11-1.4-1.4z'/></svg>") center/12px no-repeat, linear-gradient(#000,#000); mask-composite:exclude; -webkit-mask-composite:xor; }
.tag { display:inline-block; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; padding:7px 14px; border-radius:999px; background:var(--blush); color:var(--pink-deep); }
.tag.sky { background:var(--ice); color:var(--sky-deep); }
@media (max-width:960px) { .offers { grid-template-columns:1fr; } }

/* Gallery */
.gallery { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:220px; gap:14px; grid-auto-flow:dense; }
.gallery .g { position:relative; border-radius:18px; overflow:hidden; box-shadow:var(--shadow); }
.gallery .g img { width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease), filter .6s; }
.gallery .g:hover img { transform:scale(1.06); }
.gallery .g span { position:absolute; left:14px; right:14px; bottom:12px; color:#fff; font-size:13px; font-weight:700; text-shadow:0 2px 8px rgba(0,0,0,.7); opacity:0; transform:translateY(6px); transition:.4s var(--ease); }
.gallery .g:hover span { opacity:1; transform:none; }
.gallery .g::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 55%,rgba(11,19,48,.65)); opacity:0; transition:opacity .4s; }
.gallery .g:hover::after { opacity:1; }
.gallery .tall { grid-row:span 2; } .gallery .wide { grid-column:span 2; }
@media (max-width:900px) { .gallery { grid-template-columns:repeat(2,1fr); grid-auto-rows:180px; } }

/* Speaking */
.speak { position:relative; }
.speak-bg { position:absolute; inset:0; background-size:cover; background-position:center 30%; opacity:.22; filter:saturate(.6); }
.speak::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(11,19,48,.96) 0%,rgba(11,19,48,.78) 55%,rgba(11,19,48,.5) 100%); }
.speak .container { position:relative; z-index:1; }
.topics { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin:26px 0 32px; }
.topic { padding:16px 18px; border-radius:var(--r-sm); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); transition:.3s; color:#fff; font-weight:600; font-size:15px; }
.topic:hover { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.3); transform:translateX(4px); }
.topic small { display:block; color:rgba(255,255,255,.65); font-weight:400; margin-top:4px; font-size:13px; }
.dates { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:var(--r); padding:26px 28px; backdrop-filter:blur(8px); }
.dates li { list-style:none; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.12); color:#fff; display:flex; gap:14px; }
.dates li b { color:var(--sky); min-width:86px; }
.dates ul { padding:0; margin:0; }
@media (max-width:640px) { .topics { grid-template-columns:1fr; } }

/* Products */
.products { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.product { border-radius:var(--r); background:#fff; border:1px solid var(--line); overflow:hidden; transition:transform .45s var(--ease), box-shadow .45s var(--ease); display:flex; flex-direction:column; }
.product:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.product .cover { aspect-ratio:16/10; overflow:hidden; background:var(--grad-soft); display:flex; align-items:center; justify-content:center; }
.product .cover img { width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); }
.product:hover .cover img { transform:scale(1.05); }
.product .partner { display:flex; align-items:center; gap:10px; margin:-6px 0 16px; } .product .partner span { font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--muted); } .product .partner img { height:30px; width:auto; }
.product .cover .ph { font-weight:800; color:var(--navy); text-align:center; padding:20px; font-size:20px; letter-spacing:-.01em; }
.product .body { padding:24px 26px 28px; display:flex; flex-direction:column; flex:1; }
.product h3 { font-size:20px; } .product p { font-size:15px; color:var(--muted); flex:1; }
@media (max-width:960px) { .products { grid-template-columns:1fr; } }

/* Forms */
.form { display:grid; gap:14px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:640px) { .form-row { grid-template-columns:1fr; } }
label { display:block; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:7px; color:var(--navy); }
input[type=text],input[type=email],input[type=tel],input[type=number],select,textarea { width:100%; padding:15px 18px; border-radius:14px; border:1.5px solid var(--line); font:inherit; font-size:16px; color:var(--navy); background:#fff; transition:border-color .3s, box-shadow .3s; }
input:focus,select:focus,textarea:focus { outline:none; border-color:var(--sky); box-shadow:0 0 0 4px rgba(79,179,232,.25); }
textarea { min-height:130px; resize:vertical; }
.form-note { font-size:13px; color:var(--muted); }
.form-card { background:#fff; color:var(--navy); border-radius:28px; padding:36px; box-shadow:var(--shadow-lg); border:1px solid var(--line); }
.form-card h3 { color:var(--navy); }
.card { background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:32px; box-shadow:var(--shadow); }

/* Assessment */
.quiz { max-width:820px; margin:0 auto; }
.q { background:#fff; border:1px solid var(--line); border-radius:18px; padding:22px 26px; margin-bottom:14px; display:grid; grid-template-columns:1fr; gap:16px; align-items:start; transition:border-color .3s, transform .3s var(--ease); }
.q:hover { border-color:var(--sky); }
.q p { margin:0; font-weight:600; }
.q .opts { display:flex; gap:8px; }
.q .opts label { display:inline-flex; align-items:center; gap:6px; padding:11px 18px; border-radius:999px; border:1.5px solid var(--line); cursor:pointer; font-weight:700; font-size:14px; margin:0; text-transform:none; letter-spacing:0; transition:.25s; }
.q .opts input { accent-color:var(--pink); }
.q .opts label:has(input:checked) { border-color:var(--pink); background:var(--pink); color:#fff; }
@media (max-width:640px) { .q { grid-template-columns:1fr; } }
.progress { position:sticky; top:calc(var(--navh) - 8px); z-index:5; height:8px; background:var(--ice); border-radius:999px; overflow:hidden; margin:0 0 28px; }
.progress span { display:block; height:100%; background:var(--grad); width:0; transition:width .4s var(--ease); }
.result { display:none; } .result.show { display:block; }
.band { font-size:48px; margin:6px 0 10px; }

/* Final CTA */
.final { position:relative; overflow:hidden; }
.final::before { content:""; position:absolute; width:600px; height:600px; border-radius:50%; background:radial-gradient(circle,rgba(232,55,139,.35),transparent 65%); top:-200px; right:-150px; }
.final::after { content:""; position:absolute; width:500px; height:500px; border-radius:50%; background:radial-gradient(circle,rgba(79,179,232,.3),transparent 65%); bottom:-200px; left:-120px; }
.final .container { position:relative; z-index:1; }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
@media (max-width:900px) { .grid-2 { grid-template-columns:1fr; } }

/* Footer */
.footer { background:var(--ink); color:rgba(255,255,255,.72); padding:80px 0 32px; }
.footer-top { display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:48px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.1); }
.footer h4 { color:#fff; font-size:12px; letter-spacing:.18em; text-transform:uppercase; margin-bottom:18px; }
.footer a { color:rgba(255,255,255,.72); display:block; margin-bottom:12px; font-size:15px; transition:color .25s, transform .25s; }
.footer a:hover { color:#fff; transform:translateX(3px); }
.footer .brand { color:#fff; margin-bottom:18px; } .footer .brand small { color:rgba(255,255,255,.55); }
.footer .words { display:flex; gap:12px; flex-wrap:wrap; margin-top:18px; }
.footer .words span { font-size:11px; letter-spacing:.2em; text-transform:uppercase; padding:6px 12px; border:1px solid rgba(255,255,255,.18); border-radius:999px; color:rgba(255,255,255,.75); }
.footer-bottom { padding-top:26px; font-size:13px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; color:rgba(255,255,255,.5); }
.social { display:flex; gap:10px; margin-top:6px; }
.social a { width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.18); display:flex!important; align-items:center; justify-content:center; margin:0!important; transition:.3s; }
.social a:hover { background:var(--grad); border-color:transparent; transform:translateY(-3px); }
.social svg { width:18px; height:18px; fill:#fff; }
@media (max-width:960px) { .footer-top { grid-template-columns:1fr 1fr; } }
@media (max-width:600px) { .footer-top { grid-template-columns:1fr; } }

/* Reveal */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in { opacity:1; transform:none; }
.reveal.d1 { transition-delay:.1s } .reveal.d2 { transition-delay:.2s } .reveal.d3 { transition-delay:.3s }
@media (prefers-reduced-motion:reduce) { .reveal { opacity:1; transform:none; transition:none; } * { transition-duration:.01ms!important; } }
.list-plain { list-style:none; padding:0; margin:0; }
.list-plain li { padding:12px 0 12px 32px; position:relative; border-bottom:1px solid var(--line); }
.list-plain li::before { content:"✓"; position:absolute; left:0; color:var(--pink); font-weight:800; }
.bg-dark .list-plain li { border-color:rgba(255,255,255,.12); }
.hero-note { font-size:14px; color:var(--muted); margin:18px auto 56px; max-width:560px; }

.section[style*="padding-top:72px"] { padding-top:calc(var(--navh) + 28px) !important; background:linear-gradient(180deg,#F7EDF5 0%,var(--paper) 100%); }

/* v3 additions */
.voice { font-family:'Lora',Georgia,serif; font-style:italic; font-size:17px; color:var(--navy); max-width:560px; margin:22px auto 56px; line-height:1.5; }
.voice span { display:block; font-family:'Montserrat',sans-serif; font-style:normal; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--pink); font-weight:700; margin-top:8px; }
.voice.light { color:#fff; margin:8px 0 0; } .voice.light span { color:var(--sky); }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; position:relative; }
.steps::before { content:""; position:absolute; top:38px; left:14%; right:14%; height:2px; background:linear-gradient(90deg,var(--pink),var(--sky)); opacity:.35; }
.stepc { position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:34px 28px 30px; transition:transform .45s var(--ease), box-shadow .45s var(--ease); }
.stepc:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.stepn { width:52px; height:52px; border-radius:50%; background:var(--grad); color:#fff; font-weight:800; font-size:20px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; box-shadow:0 10px 24px rgba(232,55,139,.28); }
.stepc p { color:var(--muted); font-size:15px; }
.stepc .link { font-weight:700; color:var(--pink-deep); }
@media (max-width:900px) { .steps { grid-template-columns:1fr; } .steps::before { display:none; } }
.quotes { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.quote { margin:0; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:34px 30px; position:relative; transition:transform .45s var(--ease), box-shadow .45s var(--ease); }
.quote:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.quote::before { content:"\201C"; position:absolute; top:10px; left:22px; font-family:'Lora',serif; font-size:90px; line-height:1; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; opacity:.35; }
.quote blockquote { margin:24px 0 16px; font-family:'Lora',Georgia,serif; font-style:italic; font-size:19px; line-height:1.5; color:var(--navy); }
.quote figcaption { font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--muted); }
@media (max-width:900px) { .quotes { grid-template-columns:1fr; } }
.sticky-cta { display:none; position:fixed; left:12px; right:12px; bottom:calc(env(safe-area-inset-bottom,0px) + 12px); z-index:45; }
@media (max-width:760px) { .sticky-cta { display:block; } .footer { padding-bottom:110px; } body.no-sticky .footer { padding-bottom:56px; } }


/* ===== Mobile optimization ===== */
@media (max-width:760px) {
  body { font-size:16px; }
  .container { padding:0 18px; }
  .section { padding:64px 0; } .section.tight { padding:36px 0; }
  .section.tight[style*="padding-top:72px"] { padding-bottom:12px; } .section[style*="padding-top:72px"] + .section.tight { padding-top:8px; }
  h1 { font-size:clamp(34px,10vw,44px); line-height:1.06; }
  h2 { font-size:clamp(27px,7.6vw,34px); line-height:1.1; }
  h3 { font-size:19px; }
  .lead { font-size:17px; }
  .eyebrow { font-size:11px; letter-spacing:.16em; margin-bottom:14px; }
  .hero { padding-top:calc(var(--navh) + 22px); }
  .hero h1 { max-width:none; margin-bottom:14px; }
  .hero .lead { margin-bottom:28px; }
  .video-stage { margin:0 -6px 28px; }
  .video-stage .play, .poster .play { width:64px; height:64px; }
  .actions { flex-direction:column; align-items:stretch; gap:10px; }
  .actions .btn { width:100%; }
  .btn { padding:15px 22px; font-size:15px; } .btn-lg { padding:17px 24px; font-size:16px; }
  .voice { font-size:16px; margin:18px auto 36px; padding:0 4px; }
  .marquee-track span { font-size:12px; }
  .stats { grid-template-columns:repeat(3,1fr); gap:8px; } .stat { padding:18px 8px; border-radius:18px; }
  .stat b { font-size:clamp(24px,7.5vw,32px); } .stat span { font-size:10px; letter-spacing:.08em; margin-top:6px; }
  .story, .story.flip { gap:28px; }
  .story-media { margin:0; }
  .float-card { position:static; margin:12px 0 0; display:inline-block; }
  .moments { gap:14px; }
  .stepc { padding:24px 20px; }
  .event { padding:22px 18px; border-radius:20px; }
  .offers { gap:14px; } .offer { padding:24px 20px; }
  .offer .price { font-size:34px; } .offer .price small { display:block; margin:8px 0 0; line-height:1.4; }
  .quote { padding:24px 20px; }
  .gallery { grid-template-columns:repeat(2,1fr); grid-auto-rows:140px; gap:8px; }
  .gallery .tall { grid-row:span 2; } .gallery .wide { grid-column:span 2; }
  .topics { gap:10px; }
  .products { gap:14px; }
  .form-row { gap:12px; }
  input, select, textarea { font-size:16px; }
  .footer { padding-top:56px; }
  .footer-top { gap:28px; }
  .social { gap:10px; }
  .nav { height:60px; padding:0 8px 0 12px; }
  .brand span { font-size:15px; } .brand small { font-size:9px; }
  .brand img { height:36px; }
  .header { top:calc(env(safe-area-inset-top,0px) + 10px); }
  .header.scrolled .nav { height:56px; }
  .menu .btn { width:100%; }
  .menu { top:calc(100% + 8px); left:12px; right:12px; background:#fff; box-shadow:0 24px 70px rgba(27,42,91,.28); }
  .stepn { width:46px; height:46px; font-size:18px; }
  .steps { gap:14px; }
  .b3 { gap:14px; }
  .bg-dark .section, .speaking { padding:64px 0; }
  [class*="grid-"] { gap:20px; }
  .narrow { padding:0; }
}
@media (max-width:400px) {
  h1 { font-size:32px; }
  .stat b, .stat strong { font-size:36px; }
  .gallery { grid-auto-rows:120px; }
}
@media (hover:none) {
  .btn:hover, .card:hover, .offer:hover, .moment:hover, .stepc:hover, .product:hover, .quote:hover, .gallery a:hover img, .gallery figure:hover img { transform:none; }
}


/* Assessment v2: multi-step */
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.step { border:0; padding:0; margin:0; min-width:0; }
.step-label { text-align:center; font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--muted); margin:0 0 22px; }
.part-intro { font-size:13px; letter-spacing:.16em; text-transform:uppercase; font-weight:800; color:var(--pink); margin:0 0 16px; text-align:center; }
.qk { display:block; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--sky-deep); font-weight:800; margin-bottom:8px; }
.q p { font-weight:600; line-height:1.5; }
.q .opts { display:flex; flex-wrap:wrap; gap:8px; }
.q .opts.opts-5 label { font-size:13.5px; padding:10px 16px; }
.q textarea { min-height:92px; }
.q label:not(.opts label) { text-transform:none; letter-spacing:0; }
.quiz-nav { display:flex; gap:12px; justify-content:space-between; align-items:center; margin-top:26px; }
.quiz-nav .btn-primary { margin-left:auto; }
.consents { display:grid; gap:12px; background:#fff; border:1px solid var(--line); border-radius:18px; padding:22px 26px; }
.check { display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start; text-transform:none; letter-spacing:0; font-size:14px; font-weight:500; color:var(--muted); line-height:1.5; margin:0; }
.check input { width:20px; height:20px; accent-color:var(--pink); margin-top:2px; }
.err { color:var(--pink-deep); font-weight:700; text-align:center; margin:14px 0 0; }
.shake { animation:shake .45s; }
@keyframes shake { 0%,100%{transform:none} 25%{transform:translateX(-6px)} 75%{transform:translateX(6px)} }
@media (max-width:760px) {
  .q { padding:18px 18px; }
  .q .opts { flex-direction:column; align-items:stretch; }
  .q .opts label { justify-content:flex-start; }
  .quiz-nav { flex-direction:column-reverse; }
  .quiz-nav .btn { width:100%; margin-left:0; }
  .consents { padding:18px; }
}

.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* Footer brand legibility on the dark panel */
.footer .brand img { filter:none; opacity:1; }
.footer .brand span { color:#fff; }
.footer .brand small { color:rgba(255,255,255,.72); }

.step-sub { display:block; font-size:11px; letter-spacing:.16em; text-transform:uppercase; font-weight:800; color:var(--pink); margin:-6px 0 12px; }

/* ===== B3 program page ===== */
.phase-head { display:flex; align-items:center; gap:22px; margin:0 0 40px; }
.phase-letter { flex:0 0 auto; width:76px; height:76px; border-radius:24px; background:var(--grad); color:#fff; font-size:38px; font-weight:800; display:flex; align-items:center; justify-content:center; box-shadow:0 18px 40px rgba(232,55,139,.28); }
.phase-head h2 { margin:0; }
.weeks { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.week { background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:28px 30px; box-shadow:var(--shadow); transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .3s; }
.week:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:var(--sky); }
.week .wk { display:inline-block; font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:800; color:var(--pink); margin-bottom:8px; }
.week h3 { margin:0 0 14px; }
.week .list-plain li { padding:9px 0 9px 28px; font-size:15px; }
.week .list-plain li:last-child { border-bottom:0; }
.power { margin:16px 0 0; padding:16px 18px; border-radius:var(--r-sm); background:var(--grad-soft); font-family:'Lora',Georgia,serif; font-style:italic; font-size:16px; color:var(--navy); line-height:1.5; }
.power small { display:block; font-family:'Montserrat',sans-serif; font-style:normal; font-size:10px; letter-spacing:.2em; text-transform:uppercase; font-weight:800; color:var(--pink); margin-bottom:6px; }
.chain { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:14px 0 0; font-weight:800; font-size:14px; color:var(--navy); }
.chain em { color:var(--pink); font-style:normal; }
.chips { display:flex; flex-wrap:wrap; gap:7px; margin:14px 0 0; }
.chips span { font-size:12.5px; font-weight:700; padding:7px 13px; border-radius:999px; background:rgba(79,179,232,.12); color:var(--navy); border:1px solid rgba(79,179,232,.28); }
.outcome { margin:32px 0 0; padding:22px 26px; border-radius:var(--r); background:var(--grad-dark); color:#fff; font-size:17px; font-weight:600; line-height:1.5; }
.outcome small { display:block; font-size:10px; letter-spacing:.2em; text-transform:uppercase; font-weight:800; color:var(--sky); margin-bottom:8px; }
.fromto { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:22px 0 0; }
.fromto div { padding:18px 20px; border-radius:var(--r-sm); border:1px solid var(--line); background:#fff; font-weight:700; color:var(--navy); line-height:1.4; }
.fromto div:last-child { background:var(--grad); color:#fff; border-color:transparent; }
.fromto small { display:block; font-size:10px; letter-spacing:.2em; text-transform:uppercase; font-weight:800; opacity:.75; margin-bottom:7px; }
.bg-blush .week, .bg-ice .week { background:#fff; }
@media (max-width:900px) { .weeks { grid-template-columns:1fr; } .fromto { grid-template-columns:1fr; } }
@media (max-width:760px) {
  .phase-head { gap:16px; margin-bottom:28px; }
  .phase-letter { width:56px; height:56px; border-radius:18px; font-size:28px; }
  .week { padding:22px 20px; }
  .outcome { padding:18px 20px; font-size:16px; }
}

/* Media kit */
.kit { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:26px 0 0; }
.kit .kit-primary { grid-column:1 / -1; background:var(--grad); border-color:transparent; box-shadow:0 12px 30px rgba(232,55,139,.26); }
.kit .kit-primary small { color:rgba(255,255,255,.85); }
.kit .kit-primary:hover { background:var(--grad); border-color:#fff; }
.kit a { display:block; padding:20px 22px; border-radius:var(--r); border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06); color:#fff; font-weight:700; transition:.3s; }
.kit a:hover { background:rgba(255,255,255,.14); border-color:#fff; transform:translateY(-3px); }
.kit a small { display:block; font-weight:500; font-size:13px; color:rgba(255,255,255,.7); margin-top:6px; letter-spacing:0; text-transform:none; }
@media (max-width:760px) { .kit { grid-template-columns:1fr; } }

/* A cut-out portrait needs a backdrop, not a photo crop */
.photo.cutout { background:#fff; border:1px solid var(--line); box-shadow:var(--shadow); }
.photo.cutout img { object-fit:contain; object-position:center bottom; }
.photo.cutout:hover img { transform:none; }

/* ===== Offloading page ===== */
.facts.facts-3 { grid-template-columns:repeat(3,1fr); max-width:620px; margin-left:auto; margin-right:auto; }
.method { display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
.mstep { background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:26px 22px; box-shadow:var(--shadow); transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .3s; }
.mstep:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:var(--pink); }
.mnum { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:14px; background:var(--grad); color:#fff; font-weight:800; font-size:19px; margin-bottom:16px; }
.mstep h3 { margin:0 0 10px; font-size:19px; }
.mstep p { margin:0; font-size:14.5px; color:var(--muted); line-height:1.55; }
.outcome-sm { margin:16px 0 0; padding:14px 16px; border-radius:var(--r-sm); background:var(--grad-soft); font-weight:700; color:var(--navy); font-size:15px; }
.outcome-sm small { display:block; font-size:10px; letter-spacing:.2em; text-transform:uppercase; font-weight:800; color:var(--pink); margin-bottom:5px; }
@media (max-width:1000px) { .method { grid-template-columns:repeat(2,1fr); } }
@media (max-width:760px) { .method { grid-template-columns:1fr; } .facts.facts-3 { grid-template-columns:1fr; } .mstep { padding:20px 18px; } }
