/* ============================================================
   Ballet Bloom — Marketing Website UI Kit styles
   Lifted + adapted from ballet-bloom.html (canonical mockup).
   Updated: WCAG-AA muted, 8 curriculum modules, 3-tier pricing.
   ============================================================ */
:root {
  --blush:#F2E8E4; --petal:#E7C9D1; --rose:#C4788A; --plum:#7D3F52; --brown:#4A2530;
  --warm-white:#FAF6F4; --text:#2E1A20; --muted:#7E5C66;
  /* Governed accent extensions (each has ONE job) */
  --sage:#8B9D83; --sage-deep:#5F7257; --sage-tint:rgba(139,157,131,.14);
  --champagne:#C8A96A; --champagne-deep:#A8884A; --champagne-tint:rgba(200,169,106,.14);
  --orchid:#BE3E72; --orchid-tint:rgba(190,62,114,.12);
}
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:'Jost',sans-serif; background:var(--warm-white);
  color:var(--text); overflow-x:hidden;
}
a { color:inherit; }
:focus-visible { outline:3px solid var(--orchid); outline-offset:4px; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

/* NAV */
nav.bb-nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:0.7rem 7rem 0.7rem 3rem; background:rgba(250,246,244,.92);
  backdrop-filter:blur(12px); border-bottom:1px solid rgba(196,120,138,.15);
}
.nav-logo { display:flex; align-items:center; text-decoration:none; }
.nav-logo img { height:62px; width:auto; display:block; }
.nav-links { display:flex; gap:2rem; list-style:none; align-items:center; }
.nav-links-nojs { display:flex; }
.nav-links a { font-size:.8rem; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); text-decoration:none; transition:color .3s; cursor:pointer; }
.nav-links a:hover { color:var(--plum); }
.nav-cta { background:var(--plum); color:#fff !important; padding:.6rem 1.4rem; border-radius:2rem; font-size:.75rem !important; letter-spacing:.12em !important; transition:background .3s !important; white-space:nowrap; border:none; cursor:pointer; font-family:'Jost',sans-serif; text-transform:uppercase; }
.nav-cta:hover { background:var(--brown) !important; }
.nav-links a.nav-login { color:var(--plum); }
.nav-links a.nav-login:hover { color:var(--brown); }
.public-account-menu { position:relative; margin-left:.5rem; }
.public-account-trigger { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid rgba(196,120,138,.35); border-radius:50%; color:var(--plum); font-size:.78rem; font-weight:600; cursor:pointer; list-style:none; }
.public-account-trigger::-webkit-details-marker { display:none; }
.public-account-panel { position:absolute; right:0; top:52px; z-index:40; min-width:220px; display:flex; flex-direction:column; gap:.15rem; padding:.75rem; background:#fff; border:1px solid rgba(196,120,138,.2); border-radius:12px; box-shadow:0 18px 44px rgba(74,37,48,.16); }
.public-account-panel strong { padding:.5rem .65rem; color:var(--plum); }
.public-account-panel a, .public-account-panel button { display:block; width:100%; min-height:44px; padding:.7rem .65rem; border:0; border-radius:8px; background:none; color:var(--ink); text-align:left; text-decoration:none; font:inherit; font-size:.86rem; }
.public-account-panel a:hover, .public-account-panel button:hover { background:var(--blush); color:var(--plum); }
.nav-burger { display:none; background:none; border:none; cursor:pointer; flex-direction:column; gap:5px; padding:6px; }
.nav-burger span { width:24px; height:1.5px; background:var(--plum); display:block; }

/* Buttons */
.btn-primary { background:var(--plum); color:#fff; padding:1rem 2.2rem; border-radius:3rem; font-size:.85rem; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; transition:all .3s; border:2px solid var(--plum); cursor:pointer; font-family:'Jost',sans-serif; display:inline-block; }
.btn-primary:hover { background:var(--brown); border-color:var(--brown); transform:translateY(-2px); }
.btn-ghost { color:var(--plum); border:2px solid var(--rose); padding:1rem 2.2rem; border-radius:3rem; font-size:.85rem; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; transition:all .3s; cursor:pointer; background:transparent; font-family:'Jost',sans-serif; display:inline-block; }
.waitlist-field-label { color:var(--brown); display:block; font-size:.78rem; font-weight:500; letter-spacing:.08em; margin:0 0 .3rem .85rem; }
.btn-ghost:hover { background:var(--rose); color:#fff; transform:translateY(-2px); }

/* HERO */
.hero { min-height:100vh; display:flex; align-items:center; padding:7rem 3rem 4rem; position:relative; overflow:hidden; }
.hero-photo-wrap { position:absolute; inset:0 0 0 54%; overflow:hidden; z-index:1; }
.hero-photo-wrap::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,var(--warm-white) 0%,rgba(250,246,244,.55) 18%,rgba(250,246,244,0) 48%),linear-gradient(0deg,rgba(46,26,32,.12),transparent 35%); }
.hero-photo { width:100%; height:100%; object-fit:cover; object-position:center 42%; display:block; }
.hero-bg { position:absolute; inset:0; background:
  radial-gradient(ellipse 60% 80% at 80% 50%, rgba(196,120,138,.12) 0%, transparent 70%),
  radial-gradient(ellipse 40% 60% at 15% 80%, rgba(125,63,82,.08) 0%, transparent 60%),
  var(--warm-white); }
.hero-content { position:relative; z-index:2; max-width:680px; }
.hero-eyebrow { font-size:.75rem; letter-spacing:.25em; text-transform:uppercase; color:#965066; margin-bottom:1.5rem; display:flex; align-items:center; gap:.75rem; }
.hero-eyebrow::before { content:''; display:block; width:40px; height:1px; background:var(--rose); }
.hero h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(3.2rem,7vw,6rem); font-weight:300; line-height:1.05; color:var(--brown); margin-bottom:1.8rem; }
.hero h1 em { font-style:italic; color:var(--rose); }
.hero-sub { font-size:1.05rem; font-weight:300; line-height:1.8; color:var(--muted); max-width:520px; margin-bottom:2.5rem; }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }
.hero-stats { display:flex; gap:3rem; margin-top:4rem; padding-top:2.5rem; border-top:1px solid rgba(196,120,138,.2); }
.stat-num { font-family:'Cormorant Garamond',serif; font-size:2.4rem; font-weight:300; color:var(--plum); line-height:1; }
.stat-label { font-size:.72rem; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); margin-top:.3rem; }

/* SECTION BASE */
section.bb-section { padding:6rem 3rem; }
.section-label { font-size:.72rem; letter-spacing:.25em; text-transform:uppercase; color:#965066; margin-bottom:1rem; display:flex; align-items:center; gap:.75rem; }
.section-label::before { content:''; display:block; width:30px; height:1px; background:var(--rose); }
h2.section-title { font-family:'Cormorant Garamond',serif; font-size:clamp(2.4rem,5vw,4rem); font-weight:300; line-height:1.1; color:var(--brown); margin-bottom:1.2rem; }
h2.section-title em { font-style:italic; color:var(--rose); }
.section-body { font-size:1rem; font-weight:300; line-height:1.9; color:var(--muted); max-width:600px; }

/* MANIFESTO */
.manifesto { background:var(--warm-white); display:flex; align-items:center; justify-content:center; text-align:center; padding:7rem 3rem; }
.manifesto-inner { max-width:800px; }
.manifesto blockquote { font-family:'Cormorant Garamond',serif; font-size:clamp(1.8rem,4vw,3rem); font-weight:300; font-style:italic; line-height:1.4; color:var(--brown); margin-bottom:2rem; }
.manifesto blockquote span { color:var(--rose); }
.manifesto cite { font-size:.78rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); font-style:normal; }

/* ABOUT */
.about { background:var(--blush); display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.about-image-wrap { position:relative; }
.about-image-wrap::before { content:''; position:absolute; top:-1.5rem; left:-1.5rem; right:1.5rem; bottom:1.5rem; border:1px solid var(--rose); border-radius:2px; opacity:.4; }
.photo-slot { width:100%; aspect-ratio:3/4; background:linear-gradient(145deg, rgba(196,120,138,.15), rgba(125,63,82,.1)); border-radius:2px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem; color:var(--muted); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; border:1px dashed rgba(196,120,138,.3); }
.section-photo { display:block; width:100%; aspect-ratio:3/4; object-fit:cover; border-radius:2px; position:relative; z-index:1; }
.credentials { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:2rem; }
.credential-pill { background:rgba(125,63,82,.1); color:var(--plum); padding:.45rem 1rem; border-radius:2rem; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; }

/* WHY — editorial serif index + hairline replaces emoji */
.why { background:var(--warm-white); }
.why-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:3.5rem; }
.why-card { padding:2.5rem 2rem; border:1px solid rgba(196,120,138,.2); border-radius:4px; transition:all .3s; position:relative; overflow:hidden; background:var(--warm-white); }
.why-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--rose),var(--plum)); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.why-card:hover { transform:translateY(-6px); box-shadow:0 20px 50px rgba(74,37,48,.1); }
.why-card:hover::before { transform:scaleX(1); }
.why-num { font-family:'Cormorant Garamond',serif; font-size:2.4rem; font-weight:300; line-height:1; color:var(--rose); margin-bottom:.4rem; }
.why-num::after { content:''; display:block; width:32px; height:1px; background:var(--rose); margin-top:1rem; opacity:.55; }
.why-card h3 { font-family:'Cormorant Garamond',serif; font-size:1.4rem; font-weight:400; color:var(--brown); margin:1.2rem 0 .7rem; }
.why-card p { font-size:.88rem; font-weight:300; line-height:1.8; color:var(--muted); }

/* CURRICULUM */
.curriculum { background:var(--brown); color:var(--blush); }
.curriculum .section-label { color:var(--rose); }
.curriculum .section-label::before { background:var(--rose); }
.curriculum h2.section-title { color:var(--blush); }
.curriculum h2.section-title em { color:var(--rose); }
.curriculum .section-body { color:rgba(242,232,228,.6); }
.modules { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; margin-top:3.5rem; }
.module-card { background:rgba(255,255,255,.04); border:1px solid rgba(196,120,138,.2); border-radius:4px; padding:2rem; transition:background .3s; }
.module-card:hover { background:rgba(255,255,255,.08); }
.module-num { font-family:'Cormorant Garamond',serif; font-size:3.5rem; font-weight:300; line-height:1; color:rgba(196,120,138,.3); margin-bottom:.5rem; }
.module-card h3 { font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:400; color:var(--blush); margin-bottom:.6rem; }
.module-card p { font-size:.83rem; font-weight:300; line-height:1.7; color:rgba(242,232,228,.5); }
.module-tag { display:inline-block; margin-top:1rem; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--rose); }

/* MEDICAL */
.medical { background:var(--blush); }
.medical-inner { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.medical .section-photo { aspect-ratio:4/5; object-position:center; }
.medical-points { display:flex; flex-direction:column; gap:1.6rem; margin-top:2rem; }
.medical-point { display:flex; gap:1.3rem; align-items:flex-start; padding-left:1.3rem; border-left:1px solid var(--sage); }
.mp-marker { font-family:'Cormorant Garamond',serif; font-size:1.4rem; font-weight:300; line-height:1.1; color:var(--sage-deep); flex-shrink:0; min-width:1.6rem; }
.mp-text h4 { font-family:'Cormorant Garamond',serif; font-size:1.15rem; font-weight:500; color:var(--brown); margin-bottom:.3rem; }
.mp-text p { font-size:.85rem; font-weight:300; line-height:1.7; color:var(--muted); }

/* PRICING */
.pricing { background:var(--blush); text-align:center; }
.trial-banner { display:inline-flex; align-items:center; gap:.6rem; margin:1.5rem auto 0; background:rgba(125,63,82,.08); border:1px solid rgba(196,120,138,.25); padding:.55rem 1.4rem; border-radius:2rem; font-size:.78rem; color:var(--plum); letter-spacing:.04em; }
.billing-toggle { display:inline-flex; gap:.3rem; margin:2rem auto 0; background:rgba(255,255,255,.6); border:1px solid rgba(196,120,138,.2); padding:.3rem; border-radius:2rem; }
.billing-toggle button { border:none; background:transparent; padding:.5rem 1.4rem; border-radius:2rem; font-family:'Jost',sans-serif; font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); cursor:pointer; transition:all .25s; }
.billing-toggle button.active { background:var(--plum); color:#fff; }
.pricing-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; margin-top:3rem; max-width:960px; margin-left:auto; margin-right:auto; }
.pricing-grid:has(> :nth-child(3)) { grid-template-columns:repeat(3,minmax(0,1fr)); }
.pricing-card { background:var(--warm-white); border:1px solid rgba(196,120,138,.2); border-radius:6px; padding:2.5rem 2rem; transition:all .3s; position:relative; text-align:left; }
.pricing-card.featured { background:var(--plum); color:var(--blush); border-color:var(--plum); transform:scale(1.05); }
.pricing-card.featured .plan-name,.pricing-card.featured .plan-price,.pricing-card.featured .plan-period { color:var(--blush); }
.pricing-card.featured .plan-features li { color:rgba(242,232,228,.78); }
.pricing-card.featured .plan-features li::before { color:var(--rose); }
/* Atelier — champagne premium flag (the one job of champagne) */
.pricing-card.premium { border:1px solid var(--champagne); background:linear-gradient(180deg,var(--warm-white),var(--champagne-tint)); }
.pricing-card.premium .plan-name { color:var(--champagne-deep); }
.pricing-card.premium .plan-features li::before { content:'✓'; color:var(--champagne-deep); }
.premium-badge { position:absolute; top:-1rem; left:50%; transform:translateX(-50%); background:var(--champagne); color:var(--brown); padding:.3rem 1.2rem; border-radius:2rem; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; white-space:nowrap; font-weight:500; }
.btn-plan-champagne { background:var(--champagne); color:var(--brown); border:2px solid var(--champagne); }
.btn-plan-champagne:hover { background:var(--champagne-deep); border-color:var(--champagne-deep); color:#fff; }
.featured-badge { position:absolute; top:-1rem; left:50%; transform:translateX(-50%); background:var(--rose); color:#fff; padding:.3rem 1.2rem; border-radius:2rem; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; }
.plan-name { font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-bottom:1rem; }
.plan-price { font-family:'Cormorant Garamond',serif; font-size:3.2rem; font-weight:300; color:var(--brown); line-height:1; }
.plan-period { font-size:.78rem; color:var(--muted); margin-bottom:1.5rem; min-height:1.1rem; }
.plan-features { list-style:none; text-align:left; margin:1.5rem 0; }
.plan-features li { font-size:.85rem; font-weight:300; color:var(--muted); padding:.5rem 0; border-bottom:1px solid rgba(196,120,138,.1); display:flex; align-items:center; gap:.6rem; }
.plan-features li::before { content:'✓'; color:var(--rose); font-size:.78rem; }
.btn-plan { display:block; width:100%; padding:.9rem; border-radius:3rem; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; transition:all .3s; margin-top:1rem; text-align:center; cursor:pointer; border:none; font-family:'Jost',sans-serif; }
.btn-plan-outline { border:2px solid var(--rose); color:var(--plum); background:transparent; }
.btn-plan-outline:hover { background:var(--rose); color:#fff; }
.btn-plan-filled { background:var(--rose); color:#fff; border:2px solid var(--rose); }
.btn-plan-filled:hover { background:var(--brown); border-color:var(--brown); }

/* CTA BANNER */
.cta-banner { background:linear-gradient(135deg,var(--plum) 0%,var(--brown) 100%); padding:6rem 3rem; text-align:center; position:relative; overflow:hidden; }
.cta-banner::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 80% 60% at 50% 100%, rgba(196,120,138,.2) 0%, transparent 70%); }
.cta-banner h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(2.5rem,6vw,5rem); font-weight:300; color:var(--blush); line-height:1.1; margin-bottom:1.2rem; position:relative; }
.cta-banner h2 em { font-style:italic; color:var(--rose); }
.cta-banner p { font-size:1rem; font-weight:300; color:rgba(242,232,228,.7); max-width:500px; margin:0 auto 2.5rem; line-height:1.8; position:relative; }
.cta-banner .btn-primary { background:var(--orchid); border-color:var(--orchid); position:relative; font-size:.9rem; padding:1.1rem 2.8rem; box-shadow:0 12px 40px rgba(190,62,114,.35); }
.cta-banner .btn-primary:hover { background:#a8305f; border-color:#a8305f; }

/* FOOTER */
footer.bb-footer { background:var(--brown); color:rgba(242,232,228,.6); padding:4rem 3rem 2rem; }
.footer-logo { height:74px; width:auto; display:block; margin-bottom:1rem; }
.footer-inner { display:grid; grid-template-columns:2fr 1fr 1fr; gap:3rem; margin-bottom:3rem; }
.footer-brand-name { font-family:'Cormorant Garamond',serif; font-size:1.6rem; font-weight:300; color:var(--blush); margin-bottom:.8rem; letter-spacing:.08em; }
.footer-tagline { font-size:.83rem; font-weight:300; line-height:1.7; max-width:280px; }
.footer-col h4 { font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--rose); margin-bottom:1.2rem; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:.6rem; }
.footer-col a { color:rgba(242,232,228,.5); text-decoration:none; font-size:.85rem; font-weight:300; transition:color .3s; }
.footer-col a:hover { color:var(--blush); }
.footer-bottom { border-top:1px solid rgba(196,120,138,.15); padding-top:1.5rem; display:flex; justify-content:space-between; align-items:center; font-size:.75rem; }

/* TRIAL MODAL */
.modal-overlay { position:fixed; inset:0; z-index:200; background:rgba(46,26,32,.55); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; padding:2rem; animation:fade .3s ease; }
.modal { background:var(--warm-white); border-radius:12px; max-width:440px; width:100%; padding:2.8rem; position:relative; box-shadow:0 30px 80px rgba(46,26,32,.3); }
.modal-close { position:absolute; top:1.2rem; right:1.4rem; background:none; border:none; font-size:1.4rem; color:var(--muted); cursor:pointer; line-height:1; }
.modal .eyebrow2 { font-size:.72rem; letter-spacing:.25em; text-transform:uppercase; color:var(--rose); margin-bottom:1rem; }
.modal h3 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:2rem; color:var(--brown); line-height:1.15; margin-bottom:.8rem; }
.modal h3 em { font-style:italic; color:var(--rose); }
.modal p { font-size:.9rem; font-weight:300; line-height:1.7; color:var(--muted); margin-bottom:1.6rem; }
.modal input { width:100%; padding:.9rem 1.1rem; border:1px solid rgba(196,120,138,.3); border-radius:8px; font-family:'Jost',sans-serif; font-size:.9rem; color:var(--text); background:#fff; margin-bottom:1rem; }
.modal input:focus { border-color:var(--rose); }
.modal .btn-primary { width:100%; text-align:center; }
.modal .fineprint { font-size:.72rem; color:var(--muted); margin-top:1rem; margin-bottom:0; text-align:center; }

/* FREE PREVIEW */
.preview { background:var(--warm-white); }
.preview-inner { display:grid; grid-template-columns:1fr 1.15fr; gap:5rem; align-items:center; max-width:1100px; margin:0 auto; }
.preview-note { font-size:.72rem; letter-spacing:.15em; text-transform:uppercase; color:var(--rose); margin-top:1.6rem; }
.preview-stage { display:flex; flex-direction:column; gap:1rem; }
.preview-player { position:relative; aspect-ratio:16/10; border-radius:8px; overflow:hidden; border:1px solid rgba(196,120,138,.25); background:linear-gradient(150deg, var(--blush) 0%, rgba(196,120,138,.16) 60%, rgba(125,63,82,.14) 100%); display:flex; align-items:center; justify-content:center; }
.preview-play { position:relative; z-index:2; width:76px; height:76px; border-radius:50%; border:none; background:rgba(250,246,244,.92); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .3s; box-shadow:0 12px 30px rgba(74,37,48,.14); }
.preview-play:hover { transform:scale(1.06); background:#fff; }
.preview-triangle { width:0; height:0; border-left:20px solid var(--plum); border-top:13px solid transparent; border-bottom:13px solid transparent; margin-left:5px; }
.preview-meta { position:absolute; inset:auto 1rem 1rem 1rem; display:flex; justify-content:space-between; align-items:center; z-index:2; }
.preview-tag { background:rgba(250,246,244,.9); color:var(--plum); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; padding:.3rem .8rem; border-radius:2rem; }
.preview-time { background:rgba(46,26,32,.65); color:#fff; font-size:.7rem; padding:.25rem .65rem; border-radius:1rem; }
.preview-scrub { position:absolute; left:0; right:0; bottom:0; height:4px; background:rgba(125,63,82,.18); z-index:2; }
.preview-scrub span { display:block; height:100%; width:0; background:var(--rose); animation:scrub 4.2s linear forwards; }
@keyframes scrub { to { width:100%; } }
.preview-player.ended { background:linear-gradient(150deg, var(--plum) 0%, var(--brown) 100%); }
.preview-end { position:relative; z-index:2; text-align:center; padding:2rem; max-width:380px; animation:fade .4s ease; }
.preview-end-eyebrow { font-size:.7rem; letter-spacing:.25em; text-transform:uppercase; color:var(--rose); margin-bottom:.8rem; }
.preview-end h3 { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:2rem; color:var(--blush); line-height:1.1; margin-bottom:.7rem; }
.preview-end h3 em { font-style:italic; color:var(--rose); }
.preview-end p { font-size:.88rem; font-weight:300; line-height:1.7; color:rgba(242,232,228,.78); margin-bottom:1.6rem; }
.preview-end-actions { display:flex; flex-direction:column; gap:.9rem; align-items:center; }
.btn-text-light { background:none; border:none; color:var(--blush); font-size:.78rem; letter-spacing:.04em; text-decoration:underline; text-underline-offset:5px; cursor:pointer; font-family:'Jost',sans-serif; opacity:.85; }
.btn-text-light:hover { opacity:1; }
.preview-caption { font-size:.74rem; font-weight:300; color:var(--muted); line-height:1.6; text-align:center; }

/* REVEAL — intentionally inert. Content is always fully visible; we do not
   gate it behind opacity/animation (the preview re-instruments the React tree,
   which restarts CSS animations and can pin elements at their 0-opacity start
   frame). The `.reveal` class is kept so the JSX markup stays unchanged. */
.reveal { opacity: 1; }

@keyframes fade { from{opacity:0} to{opacity:1} }

/* RESPONSIVE */
@media (max-width:900px) {
  nav.bb-nav { padding:1rem 1.5rem; }
  .nav-links { display:none; }
  .nav-links-nojs { display:flex; flex-direction:column; gap:1.2rem; position:absolute; top:100%; left:0; right:0; background:rgba(250,246,244,.98); padding:1.5rem; border-bottom:1px solid rgba(196,120,138,.15); }
  .nav-menu-summary[open] + .nav-links,
  .nav-links.open { display:flex; position:absolute; top:100%; left:0; right:0; flex-direction:column; background:rgba(250,246,244,.98); padding:1.5rem; gap:1.2rem; border-bottom:1px solid rgba(196,120,138,.15); }
  .nav-burger { display:flex; }
  section.bb-section { padding:4rem 1.5rem; }
  .hero { padding:6rem 1.5rem 3rem; }
  .hero-photo-wrap { inset:0; opacity:.28; }
  .hero-photo-wrap::after { background:linear-gradient(90deg,var(--warm-white) 0%,rgba(250,246,244,.72) 65%,rgba(250,246,244,.4)),linear-gradient(0deg,var(--warm-white) 0%,transparent 35%); }
  .hero-photo { object-position:center 30%; }
  .about,.medical-inner { grid-template-columns:1fr; gap:2.5rem; }
  .preview-inner { grid-template-columns:1fr; gap:2.5rem; }
  .why-grid,.modules { grid-template-columns:1fr; }
  .pricing-grid { grid-template-columns:1fr; }
  .pricing-grid:has(> :nth-child(3)) { grid-template-columns:1fr; }
  .pricing-card.featured { transform:none; }
  .footer-inner { grid-template-columns:1fr; gap:2rem; }
  .hero-stats { gap:1.5rem; }
}
