@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700;800&family=Noto+Serif+TC:wght@500;600;700;800&display=swap');
/* Lotus — readability and editorial polish. Visual-only; preserve semantic statuses. */
:root{--lotus-copy:#28384C;--lotus-copy-muted:#516174;--lotus-soft-border:#DFE6EC;--lotus-surface:#F8FAFB}
html{-webkit-text-size-adjust:100%}
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.65;color:var(--lotus-copy);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,.pf-h1,.pf-h2,.pf-h3,.prog-group-heading,.pricing-tier-head h3,.lr-hero h1,.booking-hero h1{font-family:Inter,system-ui,sans-serif;text-transform:none;letter-spacing:-.025em;overflow-wrap:break-word}
h1{font-size:clamp(2.45rem,5vw,4.5rem);font-weight:800;line-height:1.12}
h2{font-size:clamp(1.85rem,3.1vw,2.8rem);font-weight:780;line-height:1.18}
h3{font-weight:750;line-height:1.3}
p{line-height:1.7}
.eyebrow,.pf-eyebrow,.prog-kicker,.lr-hero .eyebrow{letter-spacing:.055em;font-size:.78rem;font-weight:750}
.section{padding-top:clamp(58px,7vw,85px);padding-bottom:clamp(58px,7vw,85px)}
.section-heading{max-width:865px;text-align:left;margin:0 auto 32px}
.section-heading.left{margin-bottom:28px}
.section-heading p:not(.eyebrow){max-width:65ch;font-size:1rem;line-height:1.7;margin-top:14px}
.section-muted{background:var(--lotus-surface)}
/* Navy hero with restrained Lotus brand accents. */
.hero.section-dark{min-height:570px;padding:clamp(64px,8vw,104px) 0}
.hero-bg{background:linear-gradient(105deg,rgba(8,42,91,.97),rgba(8,42,91,.87)),var(--lotus-navy)}
.hero-grid{gap:clamp(28px,4vw,58px);align-items:center}
.hero-copy h1,.hero h1{font-size:clamp(2.55rem,5.2vw,4.8rem);line-height:1.1;letter-spacing:-.033em;max-width:800px}
.hero-lead{font-size:clamp(1rem,1.3vw,1.12rem);line-height:1.72;max-width:59ch;color:#F0F4F8;margin:24px 0 29px}
.hero-card{border-radius:16px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.24);box-shadow:none;padding:clamp(24px,3vw,34px)}
.hero-card h2{font-size:clamp(1.5rem,2.15vw,2.15rem);line-height:1.22}
.hero-card p,.hero-card li{color:#ECF2F6;line-height:1.65}
.card-topline{background:transparent;color:#FFADCF;padding:0;border-radius:0;margin-bottom:14px;font-size:.78rem;letter-spacing:.035em;text-transform:none}
.trust-row span{background:transparent;border:1px solid rgba(255,255,255,.25);color:#EEF6FA;border-radius:8px;padding:7px 12px;font-weight:600}
/* Genuine academy content and images should lead, not decorative rings. */
.program-grid{gap:20px}
.program-card,.staff-card,.faq,.approach-panel,.contact-card,.mission-card,.price-card,.pf-card,.prog-card,.lr-card,.form-section{border-radius:14px;box-shadow:0 3px 16px rgba(8,42,91,.035)}
.program-card{min-height:unset;padding:clamp(22px,2.8vw,30px)}
.program-card::after{display:none}
.program-card h3{font-size:1.35rem;line-height:1.3;margin-bottom:12px;color:var(--lotus-navy)}
.program-card p,.program-card li{color:var(--lotus-copy-muted);font-size:1rem;line-height:1.7}
.program-tag{background:transparent;color:var(--lotus-navy);padding:0;margin-bottom:15px;border-radius:0;font-size:.79rem;font-weight:780;text-transform:none;letter-spacing:0}
#priorities .program-card:nth-child(1),#priorities .program-card:nth-child(2),#priorities .program-card:nth-child(3){border-top-width:3px}
.pill-list span{background:#fff;color:var(--lotus-copy);border:1px solid var(--lotus-soft-border);border-radius:8px;font-weight:550}
.stats-strip{padding:26px 0}
.stats-grid strong{font-family:Inter,sans-serif;font-weight:800;font-size:1.95rem;letter-spacing:-.04em}
.stats-grid span{font-weight:550;font-size:.86rem;color:#E8F1F6}
.button,.nav-cta,.pf-btn,.lr-btn,.submit-button{border-radius:10px;font-weight:750;letter-spacing:0;box-shadow:none}
.button:hover,.pf-btn:hover,.pf-card:hover,.prog-card:hover{transform:none}
.nav-cta,.nav-links .nav-cta,.parent-facing-shell .nav-links .nav-cta,.button-primary,.pf-btn-primary,.pf-nav-links .pf-nav-request,.lr-btn,.submit-button{color:var(--lotus-on-pink) !important;box-shadow:none}
.site-footer p{color:#E3EAF2}
.site-footer,.pf-footer,.site-mini-footer{background:var(--lotus-navy)}
.site-mini-footer{color:var(--lotus-white)}
/* Program and pricing content: larger labels and clearer line heights. */
.prog-hero,.lr-hero,.booking-hero{background:var(--lotus-navy);padding-top:clamp(46px,6vw,74px);padding-bottom:clamp(38px,5vw,60px)}
.prog-hero h1,.lr-hero h1,.booking-hero h1{font-size:clamp(2.35rem,4.4vw,4.15rem);font-weight:800;line-height:1.14;letter-spacing:-.035em}
.prog-group-heading{font-size:clamp(1.55rem,2.6vw,2.2rem);line-height:1.2;font-weight:780}
.prog-card-desc,.prog-card-meta,.prog-dates-sub,.pf-program-card-desc{font-size:.94rem;line-height:1.63;color:var(--lotus-copy-muted)}
.prog-card-body h3{font-size:1.15rem;line-height:1.35}
.prog-card,.pricing-tier-card,.lr-card{border-color:var(--lotus-soft-border);box-shadow:0 3px 12px rgba(8,42,91,.04)}
.prog-card:hover{box-shadow:0 5px 18px rgba(8,42,91,.07)}
.prog-card-img{background:#EDF3F7}
.prog-card-cat,.lr-card-kicker{font-size:.8rem;letter-spacing:.025em;color:var(--lotus-navy)}
.pricing-tier-head h3{font-size:1.6rem;font-weight:780;line-height:1.24}
.pricing-tier-head p{font-size:.96rem;line-height:1.65}
.pricing-tier-card.community .pricing-tier-head{background:var(--lotus-navy)}
.price-amount,.pf-summary-card .pf-summary-value,.pf-stat-value{font-family:Inter,sans-serif;letter-spacing:-.035em}
.lr-card h2{font-size:1.15rem;line-height:1.35}
.lr-status,.prog-tag,.pf-badge{letter-spacing:0}
.lr-cap-fill.full{background:var(--lotus-danger)}
/* Portal and administration: restrained headings, legible information. */
.pf-h1,.pf-h2,.pf-h3{font-family:Inter,sans-serif;text-transform:none;letter-spacing:-.025em;line-height:1.2}
.pf-h1{font-size:clamp(2.2rem,4.2vw,3.7rem);font-weight:800}
.pf-h2,.pf-page-header .pf-h2{font-size:clamp(1.6rem,2.6vw,2.5rem);font-weight:780}
.pf-page-hero,.pf-page-header{background:var(--lotus-navy)}
.pf-page-hero .pf-lead,.pf-page-header .pf-lead{color:#ECF2F8;font-size:1rem;line-height:1.65}
.pf-page-hero .pf-eyebrow,.pf-page-header .pf-eyebrow{color:#FFADCF}
.pf-card:hover{box-shadow:0 4px 16px rgba(8,42,91,.05)}
.pf-muted,.pf-small{font-size:.9rem;line-height:1.6;color:var(--lotus-copy-muted)}
.pf-nav-links a,.mt-links a{font-size:.85rem}
.mt-hero{background:var(--lotus-navy)}
.mt-hero h1{font-size:clamp(2.1rem,4vw,3.45rem);font-weight:800;line-height:1.15;letter-spacing:-.03em}
.mt-hero .parent-kicker{color:#FFADCF}
.portal-welcome h1,.schedule-portal-welcome h1{font-size:clamp(2.25rem,4.4vw,3.8rem);line-height:1.15}
.portal-panel h2,.portal-section-heading h2,.auth-card h2{font-size:clamp(1.45rem,2.5vw,2.15rem);line-height:1.24}
.portal-body .portal-auth-main h1{font-size:clamp(2.25rem,4vw,3.55rem);line-height:1.15}
.credits-hero h1{font-size:clamp(2.3rem,4.4vw,4rem)}
.wallet-balance{font-family:Inter,sans-serif;font-size:clamp(2.6rem,5vw,4rem);font-weight:800}
.book-hero h1,.pricing-hero h1{font-size:clamp(2.2rem,4.3vw,4rem)}
.booking-hero p{color:#EDF2F6}
.booking-kicker{color:#FFADCF}
.booking-step span,.section-number{background:var(--lotus-navy)}
/* Avoid hiding content behind decorative scroll animations. */
.reveal,.reveal.visible{opacity:1;transform:none;transition:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto !important;animation-duration:.01ms !important;transition-duration:.01ms !important}}
@media(max-width:920px){.hero.section-dark{min-height:0}.hero-grid{gap:26px}.section-heading{max-width:100%}.nav-links.open,.nav-links.is-open{border-radius:12px}}
@media(max-width:640px){body{font-size:16px}h1,.hero-copy h1,.hero h1{font-size:clamp(2.2rem,8.2vw,3.15rem);line-height:1.12}h2{font-size:clamp(1.7rem,6vw,2.15rem)}.hero.section-dark{padding:58px 0 50px}.hero-card{padding:23px}.section{padding-top:52px;padding-bottom:52px}.section-heading{margin-bottom:24px}.program-grid{gap:14px}.program-card{padding:22px}.stats-grid strong{font-size:1.6rem}.pf-page-hero,.pf-page-header{padding-top:32px;padding-bottom:34px}.prog-card-desc,.pf-program-card-desc{font-size:.96rem}}


/* -------------------------------------------------------------------------
   Lotus experience polish: intentional photography, typographic contrast,
   vibrant brand accents and aligned content. NO copy or business logic.
   ------------------------------------------------------------------------- */

/* Fix the section heading alignment shown in the desktop screenshot.
   A combined .container.section-heading was losing the .container's auto margin. */
.container.section-heading {
  width:min(100% - 32px,1180px);
  max-width:1180px;
  margin:0 auto 42px;
  text-align:left;
}
.container.section-heading > h2 { max-width:21ch; }
.container.section-heading > p:not(.eyebrow) {
  max-width:69ch;
  color:#48596D;
  font-size:clamp(1rem,1.12vw,1.09rem);
  margin:14px 0 0;
}
.container.section-heading .eyebrow {
  color:var(--lotus-navy);
  font-size:.76rem;
  letter-spacing:.085em;
  font-weight:800;
}
.container.section-heading > h2 {
  color:var(--lotus-navy);
  font-size:clamp(2.35rem,3.8vw,3.5rem);
  font-weight:850;
  letter-spacing:-.042em;
  line-height:1.13;
}
#priorities { background:#F3F7FB; position:relative; isolation:isolate; }
#priorities::before {
  content:"";
  position:absolute;
  top:0;left:0;right:0;height:5px;
  background:linear-gradient(90deg,#FF2D8B 0%,#082A5B 52%,#44C7B1 100%);
}
#priorities .container.section-heading { padding-top:3px; }
#priorities .container.section-heading > h2 { max-width:24ch; }

/* The academy's actual training images lead each priority card.
   Images are decorative backgrounds; original wording remains in HTML. */
#priorities .program-grid { align-items:stretch; gap:22px; }
#priorities .program-card {
  position:relative;
  background:#FFFFFF;
  border:1px solid #DDE6F0;
  border-top:0;
  border-radius:18px;
  overflow:hidden;
  min-height:450px;
  padding:228px 29px 30px;
  box-shadow:0 14px 38px rgba(8,42,91,.09);
  transition:transform .25s ease,box-shadow .25s ease;
}
#priorities .program-card::before {
  display:block;
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  width:100%;height:196px;
  border:0;border-radius:0;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  filter:saturate(1.08);
  transition:transform .45s ease;
}
#priorities .program-card::after {
  display:block;
  content:"";
  position:absolute;
  top:196px;left:0;right:0;
  width:100%;height:5px;
  border:0;border-radius:0;
  background:var(--priority-accent,var(--lotus-pink));
}
#priorities .program-card:nth-child(1) {
  --priority-accent:#FF2D8B;
  --priority-tint:#FFF0F7;
  --priority-text:var(--lotus-navy);
}
#priorities .program-card:nth-child(2) {
  --priority-accent:#082A5B;
  --priority-tint:#EAF1FB;
  --priority-text:#082A5B;
}
#priorities .program-card:nth-child(3) {
  --priority-accent:#44C7B1;
  --priority-tint:#E6F8F4;
  --priority-text:#10655A;
}
#priorities .program-card:nth-child(1)::before { background-image:url('assets/gallery/photo-7.jpg');background-position:center 42%; }
#priorities .program-card:nth-child(2)::before { background-image:url('assets/gallery/photo-9.jpg');background-position:center 43%; }
#priorities .program-card:nth-child(3)::before { background-image:url('assets/gallery/photo-10.jpg');background-position:center 26%; }
#priorities .program-card .program-tag {
  display:inline-flex;
  align-items:center;
  min-height:29px;
  padding:5px 11px;
  background:var(--priority-tint);
  color:var(--priority-text);
  border:1px solid color-mix(in srgb,var(--priority-accent),#FFF 72%);
  border-radius:8px;
  font-size:.76rem;
  font-weight:800;
  line-height:1.25;
  margin:0 0 17px;
  letter-spacing:.005em;
}
#priorities .program-card h3 {
  color:var(--lotus-navy);
  font-size:clamp(1.3rem,1.65vw,1.55rem);
  font-weight:820;
  line-height:1.26;
  letter-spacing:-.035em;
  margin:0 0 12px;
}
#priorities .program-card p {
  color:#49596C;
  font-size:.98rem;
  line-height:1.72;
  margin:0;
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  #priorities .program-card:hover {
    transform:translateY(-6px);
    box-shadow:0 24px 48px rgba(8,42,91,.16);
  }
  #priorities .program-card:hover::before { transform:scale(1.045); }
}

/* Human, photo-led first impression with a brighter CTA. */
.hero.section-dark { background:var(--lotus-navy); }
.hero-bg {
  background:
    linear-gradient(95deg,rgba(5,26,59,.95) 0%,rgba(5,26,59,.92) 40%,rgba(5,26,59,.65) 100%),
    url('assets/gallery/20260712_154122.jpg') center 45%/cover no-repeat,
    var(--lotus-navy);
}
.hero-copy { position:relative; }
.hero-copy .eyebrow {
  display:inline-flex;align-items:center;
  border-left:3px solid var(--lotus-pink);
  padding:4px 0 4px 12px;
  color:#9CF1DF;
  font-weight:800;
  letter-spacing:.09em;
}
.hero-copy h1 {
  color:#FFF;
  text-shadow:0 2px 18px rgba(0,0,0,.10);
  font-weight:850;
}
.hero .hero-lead { color:#F0F5FA; }
.hero-actions .button-primary {
  background:#FF2D8B;
  color:#03182F !important;
  border:1px solid #FF2D8B;
  box-shadow:0 12px 29px rgba(3,24,47,.18);
}
.hero-actions .button-primary:hover {
  background:var(--lotus-pink);
  box-shadow:0 14px 34px rgba(3,24,47,.18);
}
.hero-actions .button-secondary {
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.58);
  color:#FFF;
}
.hero-actions .button-secondary:hover { background:rgba(255,255,255,.2); }
.hero-card {
  position:relative;
  background:rgba(7,33,71,.87);
  border:1px solid rgba(190,232,255,.32);
  border-radius:18px;
  box-shadow:0 20px 44px rgba(2,14,36,.27);
  backdrop-filter:blur(8px);
  overflow:hidden;
}
.hero-card::before {
  content:"";
  position:absolute;
  top:0;left:0;width:100%;height:4px;
  background:linear-gradient(90deg,#FF2D8B,#44C7B1);
}
.hero-card .card-topline { color:#A1F0E0; font-weight:800; }
.hero-card h2 { color:#FFF; font-weight:800; letter-spacing:-.028em; }
.hero-card p,.hero-card li { color:#F0F4FA; }
.trust-row span { border-color:rgba(163,223,231,.4);background:rgba(8,42,91,.45); }

/* Make the second three-card section distinct without repeating the photo mosaic. */
#programs-overview { background:#FFF; }
#programs-overview .program-card {
  padding:33px;
  border:1px solid #E0E8EF;
  box-shadow:0 11px 30px rgba(8,42,91,.07);
  min-height:285px;
}
#programs-overview .program-tag {
  padding:6px 11px;
  background:#FFF0F7;
  color:var(--lotus-navy);
  border-radius:8px;
}
#programs-overview .program-card:nth-child(2) .program-tag { background:#EAF1FB;color:var(--lotus-navy); }
#programs-overview .program-card:nth-child(3) .program-tag { background:#E6F8F4;color:#10655A; }
#programs-overview .program-link { color:var(--lotus-navy); font-weight:800; text-underline-offset:4px; }
#programs-overview .program-link:hover { color:var(--lotus-navy); }

/* Supporting sections: quiet paper, high-contrast readable text. */
.section-muted { background:#F5F8FB; }
.approach-panel,.mission-card,.contact-card,.staff-card { border-color:#E0E8F0;box-shadow:0 10px 34px rgba(8,42,91,.065); }
.stats-strip {
  background:var(--lotus-navy);
  padding:35px 0;
}
.stats-grid div { border-left-color:rgba(255,255,255,.28); }
.stats-grid strong { color:#FFF;font-weight:850; }
.stats-grid span { color:#E7F1F9; }
.gallery-item { border-radius:14px; overflow:hidden;box-shadow:0 9px 25px rgba(8,42,91,.08); }
.gallery-item img { transition:transform .35s ease; }
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  .gallery-item:hover img { transform:scale(1.045); }
}

/* Highlight usability on program and portal pages without touching states. */
.pf-page-header,.pf-page-hero,.prog-hero,.lr-hero,.booking-hero { border-bottom:4px solid #44C7B1; }
.pf-card,.prog-card,.lr-card { box-shadow:0 9px 29px rgba(8,42,91,.07); }
.prog-card:hover { box-shadow:0 15px 32px rgba(8,42,91,.11); }
.mt-hero { border-bottom:4px solid #44C7B1; }
.parent-tabs a:first-child { background:var(--lotus-navy);color:#FFF; }
.parent-tabs a:first-child:hover { background:#0F3D75;color:#FFF; }
:focus-visible { outline:3px solid #239D8D;outline-offset:3px; }

@media(max-width:1020px){
  #priorities .program-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #priorities .program-card { min-height:420px; }
  #priorities .program-card:last-child { grid-column:1 / -1; }
}
@media(max-width:760px){
  .container.section-heading { width:calc(100% - 32px);margin:0 auto 30px; }
  .container.section-heading > h2 { max-width:100%;font-size:clamp(2.1rem,8vw,2.7rem); }
  #priorities .program-grid { grid-template-columns:1fr;gap:17px; }
  #priorities .program-card:last-child { grid-column:auto; }
  #priorities .program-card { min-height:0;padding:218px 23px 28px; }
  #priorities .program-card::before { height:187px; }
  #priorities .program-card::after { top:187px; }
  #priorities .program-card h3 { font-size:1.38rem; }
  .hero-bg {
    background:
      linear-gradient(100deg,rgba(5,26,59,.95),rgba(5,26,59,.78)),
      url('assets/gallery/20260712_154122.jpg') center/cover no-repeat,
      var(--lotus-navy);
  }
  .hero-copy h1 { font-size:clamp(2.25rem,9vw,3.6rem); }
  .hero-card { box-shadow:0 12px 30px rgba(2,14,36,.19); }
  #programs-overview .program-card { min-height:0;padding:25px; }
}
@media(prefers-reduced-motion:reduce){
  #priorities .program-card,#priorities .program-card::before,
  .gallery-item img { transition:none !important;transform:none !important; }
}


/* ==========================================================================
   Parent-friendly readability | October 2026
   All website copy is unchanged. Colours for functional statuses stay intact.
   Comfortable reading on phones and desktop, not tiny 11–13px metadata.
   ========================================================================== */
:root {
  --lotus-reading-copy:#263A52;
  --lotus-reading-secondary:#43566E;
  --lotus-reading-link:var(--lotus-navy);
}
body,.prog-body,body.mt-body,.portal-body,body.booking-page {
  font-size:17px;
  line-height:1.7;
}
a,button,input,select,textarea { -webkit-tap-highlight-color:transparent; }
a:not(.button):not(.nav-cta):not(.pf-btn):not(.prog-btn):not(.lr-btn) {
  text-underline-offset:3px;
}
.container.section-heading > p:not(.eyebrow) {
  font-size:1.105rem;
  line-height:1.8;
  color:var(--lotus-reading-secondary);
  max-width:68ch;
}
.container.section-heading > h2 {
  line-height:1.18;
  letter-spacing:-.032em;
}
.eyebrow,.panel-kicker,.section-heading .eyebrow,.pf-eyebrow {
  font-size:.875rem;
  line-height:1.5;
  letter-spacing:.055em;
}
.hero .hero-lead,.pricing-hero .hero-lead,
.credits-hero .hero-lead,.book-hero .hero-lead {
  font-size:clamp(1.0625rem,1.3vw,1.17rem);
  line-height:1.78;
  color:#F4F8FB;
}
.hero-card p,.hero-card li,.trust-row span {
  font-size:1.015rem;
  line-height:1.7;
}
.hero-card h2 { line-height:1.3; }
#priorities .program-card { min-height:unset; }
#priorities .program-card .program-tag {
  font-size:.885rem;
  line-height:1.3;
  padding:7px 12px;
}
#priorities .program-card h3 {
  font-size:clamp(1.4rem,1.72vw,1.63rem);
  line-height:1.32;
  letter-spacing:-.025em;
}
#priorities .program-card p {
  font-size:1.08rem;
  line-height:1.75;
  color:var(--lotus-reading-secondary);
}
#programs-overview .program-tag { font-size:.91rem; line-height:1.4; }
#programs-overview .program-card p { font-size:1.065rem; line-height:1.78; color:var(--lotus-reading-secondary); }
#programs-overview .program-link { font-size:1.01rem; }
.split-grid p,.about-block p,.community-section p,
.staff-card p:not(.staff-role),.faq p,.contact-card p,
.mission-statement,.approach-panel li,.step span {
  font-size:1.07rem;
  line-height:1.8;
}
.split-grid p:not(.eyebrow),.staff-card p:not(.staff-role),
.faq p,.contact-card p { color:var(--lotus-reading-secondary); }
.skill-focus small { font-size:.99rem; line-height:1.62; color:var(--lotus-reading-secondary); }
.skill-focus:first-child small { color:#F0F5F8; }
.panel-kicker,.staff-role { color:var(--lotus-reading-link); }
.pill-list span { font-size:.99rem; line-height:1.5; }
.faq summary { font-size:1.08rem; line-height:1.55; }
.site-footer p,.site-footer a,.footer-links a { color:#EDF3F9; font-size:1rem; line-height:1.65; }
.microcopy,.site-footer .copyright { font-size:.92rem; line-height:1.6; }

/* Buttons and filters: readable type, practical targets and text contrast. */
.button,.nav-cta,.pf-btn,.prog-btn,.lr-btn,.btn,
.parent-signout,.mt-payment-copy,.member-lab-payment-copy {
  font-size:1rem;
  line-height:1.4;
  min-height:44px;
  text-align:center;
}
.hero-actions .button { min-height:52px; padding:14px 22px; }
.nav-links > a,.nav-group-link { font-size:.93rem; }
.nav-links .nav-cta { color:#03182F !important; font-weight:800; }
.prog-btn:not(.disabled):not(:disabled):not(.waitlist),
.mt-body .btn-red:not(:disabled) {
  color:#03182F;
}
.prog-btn.waitlist { color:var(--lotus-reading-link); }
.mt-body .btn-red:hover { color:#03182F; }
input,select,textarea,button { font-family:inherit; }
input:not([type="checkbox"]):not([type="radio"]),select,textarea {
  font-size:16px;
  line-height:1.5;
}
input::placeholder,textarea::placeholder { color:#586779; opacity:1; }
input:not([type="checkbox"]):not([type="radio"]),select { min-height:44px; }
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible,summary:focus-visible {
  outline:3px solid #147C70;
  outline-offset:3px;
}

/* Program discovery: session times, fees and availability should not be tiny. */
.prog-body { color:var(--lotus-reading-copy); }
.prog-hero p,.prog-hero .hero-lead,.lr-hero p { font-size:1.08rem; line-height:1.72; color:#EEF5FB; }
.prog-kicker,.prog-card-cat,.lr-card-kicker { font-size:.88rem; line-height:1.5; }
.prog-card-body { gap:3px; }
.prog-card-body h3 { font-size:1.27rem; line-height:1.36; }
.prog-card-desc {
  font-size:1.03rem;
  line-height:1.7;
  color:var(--lotus-reading-secondary);
}
.prog-card-meta,.prog-dates-sub,.prog-cap-line,.prog-card-static {
  font-size:.965rem;
  line-height:1.6;
  color:var(--lotus-reading-secondary);
}
.prog-dates-range { font-size:1.035rem; line-height:1.5; }
.prog-card-price { font-size:1.22rem; }
.prog-card .prog-tag {
  font-size:.87rem;
  line-height:1.35;
  min-height:30px;
  padding:6px 11px;
}
.prog-filters input,.prog-filters select {
  min-height:48px;
  padding:12px 14px;
  font-size:1rem;
}
.prog-btn { min-height:46px; padding:11px 17px; }
.empty-state { font-size:1.05rem; line-height:1.7; }

/* Pricing: show the real amount, rate and conditions clearly. */
.pricing-tier-label,.price-tag,.best-value { font-size:.9rem; line-height:1.45; }
.pricing-tier-head p,.pricing-community-note,.pricing-tier-name {
  font-size:1.035rem;
  line-height:1.7;
  color:var(--lotus-reading-secondary);
}
.pricing-tier-price { font-size:1.14rem; }
.pricing-tier-price small { font-size:.91rem; color:var(--lotus-reading-secondary); }
.pricing-tier-row { gap:14px; }
.price-note,.price-equiv,.price-features li,.price-card p {
  font-size:1.055rem;
  line-height:1.72;
}
.price-features li { margin-bottom:9px; }
.pricing-hero-inner > div[style*="font-size"] {
  font-size:1.035rem !important;
  line-height:1.72 !important;
  color:#F1F5FA !important;
}
.price-toggle span { font-size:.97rem; line-height:1.55; }

/* Lab request: parent can scan dates, price, status and next steps. */
.lr-field label { font-size:.94rem; letter-spacing:.025em; color:var(--lotus-reading-copy); }
.lr-price-note,.lr-date-range,.lr-cap-line,.lr-notice {
  font-size:.99rem;
  line-height:1.6;
}
.lr-session-list li { font-size:.975rem; line-height:1.58; gap:14px; }
.lr-session-list span:last-child,.lr-date-range { color:var(--lotus-reading-secondary); }
.lr-card h2 { font-size:1.3rem; }
.lr-status { font-size:.87rem; line-height:1.35; padding:7px 11px; }
.lr-btn { min-height:46px; padding:11px 16px; }
.lr-filter button { min-height:44px; font-size:.99rem; }
.lr-price { font-size:1.52rem; }
.lr-empty { color:var(--lotus-reading-secondary); font-size:1.04rem; line-height:1.7; }

/* Parent Portal: especially explanations, action cards, payment and status. */
.mt-body { color:var(--lotus-reading-copy); }
.mt-hero p:last-child { font-size:1.07rem; line-height:1.72; color:#F2F5FA !important; }
.parent-kicker { font-size:.87rem; }
.parent-tabs { gap:7px; }
.parent-tabs a {
  font-size:.945rem;
  line-height:1.35;
  padding:11px 14px;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
}
.mt-section h2 { font-family:Inter,system-ui,sans-serif; font-size:1.7rem; line-height:1.25; letter-spacing:-.022em; }
.mt-section > p {
  font-size:1.055rem;
  line-height:1.75;
  color:var(--lotus-reading-secondary);
}
.section-label { font-size:.9rem; line-height:1.5; letter-spacing:.05em; color:var(--lotus-reading-link); }
.parent-action-card { min-height:155px; padding:19px 39px 19px 18px; }
.parent-action-card strong { font-size:1.08rem; line-height:1.4; }
.parent-action-card span { font-size:.975rem; line-height:1.65; color:var(--lotus-reading-secondary); }
.mt-stat .lbl { font-size:.87rem; letter-spacing:.025em; color:var(--lotus-reading-secondary); }
.bk-card .bk-name { font-size:1.04rem; line-height:1.45; }
.bk-card .bk-meta,.member-lab-meta,.member-lab-note,.empty p {
  font-size:.975rem;
  line-height:1.65;
  color:var(--lotus-reading-secondary);
}
.member-lab-card h3 { font-size:1.15rem; line-height:1.35; }
.member-lab-toolbar label { font-size:.975rem; }
.member-lab-toolbar select { min-height:46px; font-size:1rem; }
.member-lab-spots { font-size:.9rem; line-height:1.4; }
.member-lab-payment-title { font-size:.97rem; line-height:1.45; }
.member-lab-payment-item small { font-size:.87rem; line-height:1.4; color:var(--lotus-reading-secondary); }
.member-lab-payment-item strong,.member-lab-payment-item a {
  font-size:.97rem;
  line-height:1.45;
}
.member-lab-payment-note { font-size:.95rem; line-height:1.62; color:var(--lotus-reading-secondary); }
.member-lab-payment-copy { font-size:.94rem; min-height:44px; }
.tx-row { font-size:.97rem; line-height:1.5; gap:14px; }
.mt-body .badge { font-size:.86rem; line-height:1.4; padding:6px 10px; }
.mt-body .btn { font-size:.98rem; min-height:44px; }
.mt-body .btn-sm { padding:9px 12px; }
.mt-payment-head h2 { font-family:Inter,system-ui,sans-serif; font-size:1.45rem; line-height:1.3; }
.mt-payment-instructions { font-size:1.015rem; line-height:1.75; }
.mt-payment-instructions a { color:var(--lotus-reading-link); }
.mt-payment-ref strong { font-size:1.1rem; }

/* Parent membership card: remove low-opacity microtext; retain card layout. */
.lotus-member-card-brand span { font-size:.78rem; opacity:.94; letter-spacing:.055em; }
.lotus-member-card-status { font-size:.8rem; letter-spacing:.025em; line-height:1.3; }
.lotus-member-card-label { font-size:.81rem; opacity:.94; letter-spacing:.055em; }
.lotus-member-card-plan { font-size:.97rem; opacity:.94; }
.lotus-member-card-meta small { font-size:.77rem; opacity:.92; letter-spacing:.025em; line-height:1.4; }
.lotus-member-card-meta strong { font-size:.99rem; line-height:1.35; }
.lotus-member-card { min-height:285px; }

/* Account sign-in and the training schedule. */
.auth-card-intro,.auth-card p,.portal-form label { font-size:1.025rem; line-height:1.66; }
.auth-card small,.portal-back-link { font-size:.94rem; }
.portal-form input,.portal-form select { min-height:48px; font-size:16px; }
.portal-welcome p,.portal-panel > p,.portal-section-heading p {
  font-size:1.055rem;
  line-height:1.72;
  color:var(--lotus-reading-secondary);
}
.schedule-control-card label,.schedule-wallet span {
  font-size:.97rem;
  line-height:1.5;
}
.schedule-wallet span { color:#F1F5FA; }
.schedule-session p,.schedule-book small { font-size:.98rem; line-height:1.65; color:var(--lotus-reading-secondary); }
.schedule-session h3 { font-size:1.21rem; line-height:1.4; }
.schedule-date .dow,.schedule-date .month { font-size:.89rem; }
.schedule-pass-tag { font-size:.88rem; line-height:1.45; }

/* Platform / parent-accessible account pages. */
.pf-lead,.pf-page-header .pf-lead,.pf-page-hero .pf-lead { font-size:1.065rem; line-height:1.75; }
.pf-muted,.pf-small { font-size:.975rem; line-height:1.65; color:var(--lotus-reading-secondary); }
.pf-page-hero .pf-muted,.pf-page-header .pf-muted { color:#ECF2F8; }
.pf-program-card-desc { font-size:1.01rem; line-height:1.65; color:var(--lotus-reading-secondary); }
.pf-card p,.pf-detail-block p { line-height:1.7; }
.pf-chip,.pf-badge,.pf-stat-label,.pf-summary-card .pf-summary-label {
  font-size:.89rem;
  line-height:1.45;
}
.pf-btn { min-height:44px; font-size:.99rem; padding:11px 17px; }
.pf-btn-sm { min-height:42px; font-size:.93rem; }
.pf-nav-links a { font-size:.87rem; }

/* Keep cards and label spacing usable on small devices, without horizontal scroll. */
@media(max-width:920px){
  .nav-links a,.nav-submenu a { font-size:1rem; line-height:1.5; }
  .nav-links a { padding-top:11px; padding-bottom:11px; }
}
@media(max-width:760px){
  body,.prog-body,body.mt-body,.portal-body,body.booking-page { font-size:16px; line-height:1.7; }
  .container.section-heading > p:not(.eyebrow) { font-size:1.075rem; line-height:1.73; }
  #priorities .program-card p,#programs-overview .program-card p { font-size:1.04rem; line-height:1.7; }
  .hero .hero-lead { font-size:1.085rem; line-height:1.73; }
  .hero-card p,.hero-card li { font-size:1rem; }
  .parent-action-card { min-height:auto; }
  .mt-section { padding:20px; }
  .parent-tabs a { font-size:.93rem; }
  .mt-hero p:last-child { font-size:1.03rem; }
  .lr-session-list li { flex-wrap:wrap; }
  .lr-session-list span:last-child { text-align:left; }
  .prog-card-footer,.lr-footer { gap:14px; }
  .prog-btn,.lr-btn { min-height:48px; }
  .lotus-member-card { min-height:unset; }
}
@media(max-width:380px){
  .prog-card-body,.lr-card-body { padding:16px; }
  .parent-tabs a { font-size:.9rem; padding:10px 12px; }
  .lotus-member-card { padding:17px; }
  .lotus-member-card-meta { gap:7px; }
  .lotus-member-card-meta strong { font-size:.925rem; }
}


/* ==========================================================================
   FIX: dark-surface contrast regression (October 19, 2026)
   The generic .container.section-heading typography above was applying navy
   headings and muted dark paragraphs to navy .section-dark sections.
   These rules win by specificity without affecting light cards, form statuses,
   portal data, or any text content.
   ========================================================================== */
.section-dark .container.section-heading > h2,
.section-dark .section-heading.left > h2 {
  color:#FFFFFF;
  text-shadow:none;
}
.section-dark .container.section-heading > p:not(.eyebrow),
.section-dark .section-heading.left > p:not(.eyebrow) {
  color:#EDF5FC;
  font-size:clamp(1.05rem,1.25vw,1.14rem);
  line-height:1.8;
  opacity:1;
}
.section-dark .container.section-heading > .eyebrow,
.section-dark .section-heading.left > .eyebrow {
  color:#9CECD8;
  opacity:1;
}
#culture-programming .section-heading > h2 {
  color:#FFFFFF;
}
#culture-programming .section-heading > p:not(.eyebrow) {
  color:#EDF5FC;
  max-width:72ch;
}
#culture-programming .season-step {
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 8px 28px rgba(2,17,44,.12);
}
#culture-programming .season-step > strong,
#process .step > strong {
  font-family:Inter,system-ui,sans-serif;
  color:#A5F2E0;
  font-size:clamp(1.7rem,2.1vw,2.1rem);
  font-weight:850;
  line-height:1.25;
}
#culture-programming .season-step .season-title {
  font-family:Inter,system-ui,sans-serif;
  color:#FFFFFF;
  font-size:1.36rem;
  font-weight:800;
  letter-spacing:-.015em;
  line-height:1.35;
}
#culture-programming .season-step .check-list li,
#process .step span {
  color:#F4F8FC;
  font-size:1.045rem;
  font-weight:600;
  line-height:1.7;
}
#culture-programming .season-close {
  color:#F2F7FC;
  font-size:1.045rem;
  line-height:1.72;
}
#process .section-heading.left > p:not(.eyebrow) {
  max-width:64ch;
}
/* Keep the pricing CTA legible over the pink-to-navy brand system. */
.pricing-cta-section .pricing-cta-card {
  background:#103B70;
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 15px 40px rgba(2,18,45,.2);
}
.pricing-cta-section .pricing-cta-card h2 { color:#FFFFFF; }
.pricing-cta-section .pricing-cta-card p { color:#EEF5FD; }
.pricing-cta-section .pricing-cta-card .eyebrow { color:#A5F2E0; }
.pricing-cta-section .pricing-cta-card .microcopy a { color:#FFFFFF; }
.pricing-cta-section .pricing-cta-card .button-secondary {
  color:#FFFFFF;
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.65);
}
.pricing-cta-section .pricing-cta-card .button-primary {
  color:#03182F;
}
@media(max-width:760px) {
  .section-dark .container.section-heading > p:not(.eyebrow),
  .section-dark .section-heading.left > p:not(.eyebrow) {
    font-size:1.065rem;
    line-height:1.75;
  }
  #culture-programming .season-step .check-list li,
  #process .step span { font-size:1.02rem; }
  #culture-programming .season-step { padding:19px; }
}


/* ==========================================================================
   Lotus Asian-inspired typography system | 2026
   Traditional Chinese Ming-style editorial headings; readable Noto Sans TC
   for English, Vietnamese names, and mixed-language family information.
   All current words, booking logic and status colours remain unchanged.
   ========================================================================== */
:root {
  --lotus-type-body:"Noto Sans TC","Noto Sans",Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  --lotus-type-display:"Noto Serif TC","Noto Serif",Georgia,serif;
}
/* Root layout and all HTML public pages, including parent/athlete/coach/admin
   screens, use the same readable Asian-language-capable body typeface. */
html,body,body.mt-body,body.prog-body,body.portal-body,body.booking-page,
.pf-page,.pf-shell,.app-shell {
  font-family:var(--lotus-type-body) !important;
  font-synthesis:none;
}
button,input,select,textarea,option,summary,fieldset,legend,th,td,
.pf-btn,.lr-btn,.prog-btn,.nav-links,.pf-nav-links,.mt-links,
.prog-filters,.parent-tabs,.portal-form {
  font-family:var(--lotus-type-body) !important;
}
/* True Ming/Mincho-style serif rather than stereotyped decorative lettering.
   The original heading sizes and dark/light colours remain intact. */
h1,h2,h3,h4,h5,h6,
.pf-h1,.pf-h2,.pf-h3,
.prog-group-heading,.prog-card-body h3,.prog-hero h1,
.lr-hero h1,.lr-card h2,.lr-empty h2,
.booking-hero h1,.form-section h2,.modal-head h2,
.pricing-tier-head h3,.pf-program-card-title,
.portal-welcome h1,.portal-section-heading h2,.portal-panel h2,
.mt-hero h1,.mt-section h2,.mt-payment-head h2,
.schedule-portal-welcome h1,.schedule-session h3,
.auth-card h2,.portal-auth-main h1,
.hero-card h2,.program-card h3,.staff-card h3,
.faq summary,.season-step .season-title,
.section-heading-row h2,.section-heading h2,
.pricing-cta-card h2 {
  font-family:var(--lotus-type-display) !important;
  font-synthesis:none;
  letter-spacing:-.018em;
  line-height:1.33;
  text-transform:none;
}
/* Headline rhythm is wider and less compressed in a serif design. */
h1,.hero-copy h1,.hero h1,.page-hero h1,
.prog-hero h1,.lr-hero h1,.booking-hero h1,
.pf-h1,.mt-hero h1,.portal-welcome h1 {
  line-height:1.19;
  letter-spacing:-.028em;
  font-weight:700;
}
h2,.container.section-heading > h2,.pf-h2,.mt-section h2,
.portal-panel h2,.portal-section-heading h2 {
  line-height:1.28;
  letter-spacing:-.02em;
  font-weight:700;
}
h3,.program-card h3,.pf-h3,.prog-card-body h3 {
  font-weight:700;
  line-height:1.4;
}
.brand strong,.pf-brand-text strong,.mt-brand strong,
.prog-brand strong,.lr-brand strong,
.portal-brand strong,.site-footer .footer-brand strong {
  font-family:var(--lotus-type-display) !important;
  font-weight:700;
  letter-spacing:.02em;
}
/* Numbers, prices, availability and financial references remain sans serif. */
.price-amount,.wallet-balance,.pf-stat-value,
.pf-summary-card .pf-summary-value,.pf-membership-card .pf-membership-price,
.pf-detail-price-block .pf-price,
.stats-grid strong,.step > strong,.season-step > strong,
.prog-card-price,.lr-price,.pricing-tier-price,
.lotus-member-card-meta strong,.lotus-member-card-name,
.mt-payment-ref strong,.member-lab-payment-item strong {
  font-family:var(--lotus-type-body) !important;
  font-variant-numeric:tabular-nums;
}
.mt-payment-ref strong,.member-lab-payment-item strong {
  overflow-wrap:anywhere;
}
.hero .hero-lead,.section-heading p,.container.section-heading > p:not(.eyebrow),
#priorities .program-card p,.prog-card-desc,
.pf-program-card-desc,.mt-section > p,
.lr-session-list li,.price-features li,
.faq p,.mission-statement,.portal-welcome p,
.pf-lead,.pf-page-hero .pf-lead,.pf-page-header .pf-lead {
  font-family:var(--lotus-type-body) !important;
}
/* Small caps and labels stay clean, with subtle calligraphic-like spacing. */
.eyebrow,.pf-eyebrow,.panel-kicker,.prog-kicker,
.program-tag,.price-tag,.lr-card-kicker,
.section-label,.parent-kicker,.card-topline,
.pf-badge,.prog-tag,.lr-status {
  font-family:var(--lotus-type-body) !important;
  letter-spacing:.055em;
}
.program-card h3,.hero-card h2 { text-wrap:balance; }
.container.section-heading h2 { text-wrap:balance; }
p,li { text-wrap:pretty; }
@media(max-width:760px) {
  h1,.hero-copy h1,.hero h1 { line-height:1.18; }
  h2,.container.section-heading > h2 { line-height:1.29; }
  .brand strong,.mt-brand strong,.pf-brand-text strong { letter-spacing:0; }
}
/* Font loading is optional enhancement: system sans and Georgia provide
   predictable readable fallback if Google Fonts is unavailable. */


/* Neutralize legacy red overlays on informational academy cards.
   Keep Lotus Pink for brand CTAs and red for real error/warning states. */
.approach-panel {
  background:#FFFFFF;
  border:1px solid #DCE8ED;
  box-shadow:0 11px 32px rgba(8,42,91,.075);
}
.approach-panel .panel-kicker {
  color:#0C7468;
}
.approach-panel h3 { color:var(--lotus-navy); }
.approach-panel .check-list li { color:#344B62; }
.approach-panel .check-list li::before { color:#0C7468; }

/* The older mission-card component also used strong red glow and stripes.
   Give it the same navy-and-mint treatment where it appears. */
.mission-card {
  background:linear-gradient(120deg,#082A5B 0%,#103B70 100%);
  border:1px solid rgba(68,199,177,.55);
  box-shadow:0 16px 40px rgba(8,42,91,.18);
}
.mission-card::before,.mission-card::after { display:none; }
.mission-card .mission-body h2 { color:#FFFFFF; }
.mission-card .mission-statement,.mission-card .mission-tag { color:#EFF7FA; }


/* One Lotus Pink (#FF2D8B) across brand accents and CTA states.
   Navy remains the accessible label colour on light cards. Error and
   waitlist status hues are deliberately untouched. */
:root{--lotus-pink:#FF2D8B;--lotus-pink-hover:#FF2D8B;--lotus-on-pink:#03182F;--lotus-reading-link:var(--lotus-navy)}
.nav-cta,.nav-links .nav-cta,.button-primary,.hero-actions .button-primary,
.pf-btn-primary,.pf-nav-links .pf-nav-request,.parent-facing-shell .nav-links .nav-cta,
.prog-btn:not(.waitlist):not(.disabled):not(:disabled),.lr-btn:not(.waitlist):not(:disabled),
.submit-button,.mt-body .btn-red:not(:disabled),.mt-links a.request-link,
.price-tag.light,.price-toggle span.alt {
  background-color:var(--lotus-pink) !important;
  color:var(--lotus-on-pink) !important;
  border-color:var(--lotus-pink);
}
.nav-cta:hover,.nav-links .nav-cta:hover,.button-primary:hover,
.hero-actions .button-primary:hover,.pf-btn-primary:hover,
.pf-nav-links .pf-nav-request:hover,
.prog-btn:not(.waitlist):not(.disabled):not(:disabled):hover,
.lr-btn:not(.waitlist):not(:disabled):hover,
.submit-button:hover,.mt-body .btn-red:not(:disabled):hover,
.mt-links a.request-link:hover {
  background-color:var(--lotus-pink) !important;
  color:var(--lotus-on-pink) !important;
  border-color:var(--lotus-pink);
  box-shadow:0 7px 20px rgba(3,24,47,.18);
}
/* Large bold Lotus Pink headings clear the accessible large-text threshold.
   Small labels use navy text and the exact pink as the accent stroke. */
.section:not(.section-dark) .eyebrow.red,
.container.section-heading > .eyebrow.red,
.section-muted .eyebrow.red {
  color:var(--lotus-pink) !important;
  font-size:1.19rem;
  font-weight:800;
  line-height:1.45;
  letter-spacing:.035em;
}
.section-dark .eyebrow.red,.section-dark .section-heading .eyebrow.red {
  color:#9CECD8 !important;
}
#priorities .program-card:nth-child(1) {
  --priority-text:var(--lotus-navy);
  --priority-tint:#FFF0F7;
  --priority-accent:var(--lotus-pink);
}
#priorities .program-card:nth-child(1) .program-tag {
  color:#FF2D8B;
  background:var(--priority-tint);
  border:1px solid rgba(255,45,139,.27);
}
#programs-overview .program-card:nth-child(1){border-left-color:var(--lotus-pink)}
/* Program categories follow the same Pink / Navy / Mint colour sequence
   as Community Building, Athlete Development, and Personal Development. */
#programs-overview .program-card:nth-child(1) .program-tag,
#programs-overview .program-card:nth-child(2) .program-tag,
#programs-overview .program-card:nth-child(3) .program-tag {
  display:inline-flex;
  align-items:center;
  width:fit-content;
  max-width:100%;
  padding:8px 11px;
  border-width:1px;
  border-style:solid;
  border-radius:9px;
  font-size:clamp(1.05rem,1.28vw,1.18rem);
  font-weight:800;
  line-height:1.35;
  letter-spacing:-.02em;
  text-transform:none;
  box-shadow:none;
}
#programs-overview .program-card:nth-child(1) .program-tag {
  background:#FFF0F7;
  color:#FF2D8B;
  border-color:rgba(255,45,139,.32);
}
#programs-overview .program-card:nth-child(2) .program-tag {
  background:#EAF1FB;
  color:#082A5B;
  border-color:rgba(8,42,91,.27);
}
#programs-overview .program-card:nth-child(3) .program-tag {
  background:#E6F8F4;
  color:#10655A;
  border-color:rgba(68,199,177,.32);
}
#programs-overview .program-link,.program-link,.access-legend a,
.staff-role,.prog-card-cat,.lr-card-kicker,.pricing-tier-label,.community-saving,.lab-sub {
  color:var(--lotus-navy);
  text-decoration-color:var(--lotus-pink);
}
#programs-overview .program-link,.program-link {
  text-decoration:underline;
  text-decoration-color:var(--lotus-pink);
  text-decoration-thickness:2px;
  text-underline-offset:5px;
}
.prog-card-cat,.lr-card-kicker,.pricing-tier-label {
  line-height:1.5;
}
.pricing-tier-card.community .pricing-tier-label,
.prog-hero .prog-kicker,.lr-hero .eyebrow,
.mt-hero .parent-kicker {color:#9CECD8}
.community-saving {border-bottom:2px solid var(--lotus-pink);font-size:.92rem}
.staff-role,.lab-sub {border-bottom:2px solid var(--lotus-pink);width:fit-content}
.nav-links a:not(.nav-cta):hover,
.nav-links a[aria-current="page"]:not(.nav-cta),
.pf-nav-links a:not(.pf-nav-request):hover,
.pf-nav-links a[aria-current="page"]:not(.pf-nav-request),
.mt-links a.cur,.mt-links a:hover,.prog-links a.cur {
  color:var(--lotus-navy) !important;
  box-shadow:inset 0 -2px 0 var(--lotus-pink);
}
.price-toggle span.alt,.price-card-featured .price-tag.light {
  color:var(--lotus-on-pink) !important;
}

/* ==========================================================================
   Homepage hero: real practice footage instead of a tinted still and card.
   ========================================================================== */
.hero.section-dark { position:relative; min-height:min(92svh,860px); display:flex; flex-direction:column; justify-content:flex-end; padding:0; overflow:hidden; background:var(--lotus-navy-deep); }
.hero-media { position:absolute; inset:0; z-index:0; }
.hero-video { width:100%; height:100%; object-fit:cover; object-position:center 55%; display:block; }
/* Navy holds the copy on the left and the facts along the bottom; the gym stays visible on the right. */
.hero-media::after { content:""; position:absolute; inset:0; background:
  linear-gradient(90deg,rgba(3,24,47,.94) 0%,rgba(3,24,47,.82) 34%,rgba(3,24,47,.25) 68%,rgba(3,24,47,.05) 100%),
  linear-gradient(0deg,rgba(3,24,47,.9) 0%,rgba(3,24,47,0) 32%); }
.hero .hero-grid { position:relative; z-index:1; display:block; padding-top:clamp(48px,7vh,96px); }
.hero .hero-copy { max-width:760px; }
.hero .hero-copy h1 { font-size:clamp(2.6rem,min(5.4vw,8.6vh),5.2rem); line-height:1.02; letter-spacing:-.035em; text-wrap:balance; }
.hero .hero-actions { margin-top:8px; }
.hero-motto { margin:22px 0 0; font-family:var(--lotus-type-display); font-size:clamp(1.05rem,1.4vw,1.25rem); color:#FFADCF; letter-spacing:0; }
.hero-foot { position:relative; z-index:1; display:flex; justify-content:flex-end; padding-top:clamp(28px,5vh,64px); padding-bottom:28px; }
.hero-video-toggle { flex:none; min-height:44px; padding:10px 16px; border-radius:999px; border:1px solid rgba(255,255,255,.4); background:rgba(3,24,47,.4); color:#fff; font:inherit; font-size:.88rem; font-weight:700; cursor:pointer; }
.hero-video-toggle:hover { background:rgba(3,24,47,.7); }
.hero-video-toggle:focus-visible { outline:3px solid var(--lotus-focus); outline-offset:3px; }
@media (max-width:920px) {
  /* Phones: the footage is a clear band on top, the words sit below it on navy. */
  .hero.section-dark { justify-content:flex-start; min-height:0; }
  .hero-media { position:relative; inset:auto; height:min(58vw,420px); }
  .hero-media::after { background:linear-gradient(0deg,rgba(3,24,47,1) 0%,rgba(3,24,47,0) 45%); }
  .hero .hero-grid { padding-top:4px; }
  .hero-foot { justify-content:flex-start; }
}

/* Pill clouds read as generated filler; set them as a plain two-column list. */
.pill-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 28px; }
.pill-list span { background:none !important; border:0 !important; border-radius:0; padding:0 0 0 18px; position:relative; font-weight:500; color:var(--lotus-copy); }
.pill-list span::before { content:""; position:absolute; left:0; top:.62em; width:7px; height:7px; border-radius:50%; background:var(--lotus-mint); }
@media (max-width:560px) { .pill-list { grid-template-columns:1fr; } }

/* Card labels as plain category names, not tinted pills; no colour bars or edge stripes. */
#priorities .program-card::after { display:none; }
#priorities .program-card .program-tag,
#programs-overview .program-card .program-tag,
#programs-overview .program-card:nth-child(1) .program-tag,
#programs-overview .program-card:nth-child(2) .program-tag,
#programs-overview .program-card:nth-child(3) .program-tag {
  display:block; min-height:0; width:auto; padding:0; margin-bottom:8px;
  background:none; border:0; border-radius:0;
  color:var(--lotus-mint-ink); font-size:.9rem; font-weight:700; letter-spacing:0; text-transform:none;
}
#programs-overview .program-card:nth-child(1) { border-left-color:#E0E8EF; }
#approach .panel-kicker { text-transform:none !important; letter-spacing:0 !important; font-size:.95rem; font-weight:700; color:var(--lotus-mint-ink); }
.season-step { grid-template-columns:1fr; }
.section-heading h2,.hero h1 { text-wrap:balance; }
#priorities .program-card:nth-child(1) .program-tag,
#priorities .program-card:nth-child(2) .program-tag,
#priorities .program-card:nth-child(3) .program-tag { background:none; border:0; padding:0; min-height:0; color:var(--lotus-mint-ink); }
.section-heading h2 { max-width:18em; }

/* Contrast and size floor fixes found by the rendered scan. */
.founder-tagline { color:#C3175F; }
.lab-tag { color:var(--lotus-on-pink); font-size:.78rem; }
.site-footer .brand small,.pf-footer .brand small { color:#B9C9DA; }
.hero-motto { color:#FFD1E5; }
.staff-meta-grid strong { font-size:.8rem; letter-spacing:.02em; }
