/* =========================================================
   Forty Love Tennis Club — dark, cinematic, premium
   Manrope (display) · Inter (UI) · Cormorant Garamond (italic accents)
   Mobile-first, conversion-optimised
   ========================================================= */

:root {
  --bg:#0a110c; --bg-2:#0d160f;
  --text:#F3F1E9; --text-soft:rgba(243,241,233,.66); --muted:rgba(243,241,233,.42);
  --green:#5FBE86; --green-2:#8FD9AC; --gold:#CBA96A;
  --line:rgba(243,241,233,.10); --line-2:rgba(243,241,233,.16);
  --glass:rgba(255,255,255,.045);
  --radius:20px; --radius-lg:24px;
  --serif:"Cormorant Garamond",Georgia,serif; --display:"Manrope",system-ui,sans-serif; --sans:"Inter",system-ui,-apple-system,sans-serif;
  --maxw:1220px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:clip; scroll-padding-top:90px; }
body { margin:0; background:var(--bg); color:var(--text); font-family:var(--sans); line-height:1.55; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
iframe { display:block; border:0; }

.fx-grain { position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* ---------- shared ---------- */
.container { max-width:var(--maxw); margin:0 auto; }
.container.narrow { max-width:900px; }
.center { text-align:center; }
.accent { background:linear-gradient(100deg,var(--green-2),var(--gold)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.section { position:relative; z-index:2; padding:98px 20px; }
.sec-head { margin-bottom:52px; }
.sec-head.center { display:flex; flex-direction:column; align-items:center; }
.sec-eyebrow { font-size:.76rem; letter-spacing:.2em; text-transform:uppercase; color:var(--green-2); font-weight:600; margin:0 0 14px; }
.sec-title { font-family:var(--display); font-weight:800; font-size:clamp(2rem,4.4vw,3.4rem); line-height:1.04; letter-spacing:-.032em; margin:0; }
.sec-title.sm { font-size:clamp(1.8rem,3.2vw,2.5rem); }
.sec-sub { color:var(--text-soft); max-width:62ch; margin:20px auto 0; font-size:1.06rem; }
.note { color:var(--text-soft); font-family:var(--serif); font-style:italic; font-size:1.3rem; max-width:56ch; margin:40px auto 0; }

/* ---------- Buttons ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.55em; font-family:var(--sans); font-weight:600; font-size:.95rem; border-radius:999px; padding:.82em 1.35em; border:1px solid transparent; cursor:pointer; transition:transform .2s cubic-bezier(.2,.7,.2,1), box-shadow .25s ease; }
.btn .arrow { font-size:.82em; transform:translateY(-1px); }
.btn-cta { color:#072012; background:linear-gradient(180deg,var(--green-2),var(--green)); box-shadow:0 8px 26px -8px rgba(95,190,134,.55), inset 0 1px 0 rgba(255,255,255,.4); }
.btn-cta:hover { transform:translateY(-2px); box-shadow:0 14px 40px -10px rgba(95,190,134,.7), inset 0 1px 0 rgba(255,255,255,.5); }
.btn-lg { font-size:1.02rem; padding:1.05em 1.7em; }
.ghost { display:inline-flex; align-items:center; gap:.5em; font-weight:600; font-size:.96rem; color:var(--text); transition:gap .2s ease,color .2s ease; }
.ghost .arrow-r { transition:transform .2s ease; }
.ghost:hover { color:var(--green-2); gap:.8em; } .ghost:hover .arrow-r { transform:translateX(4px); }

/* ---------- Nav ---------- */
.nav-wrap { position:sticky; top:16px; z-index:60; padding:0 20px; }
.nav { max-width:var(--maxw); margin:0 auto; display:flex; align-items:center; gap:24px; padding:10px 12px 10px 22px;
  background:rgba(12,20,14,.6); backdrop-filter:blur(16px) saturate(1.3); -webkit-backdrop-filter:blur(16px) saturate(1.3);
  border:1px solid var(--line-2); border-radius:999px; box-shadow:0 20px 50px -24px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.06); }
.brand { display:flex; align-items:center; margin-right:auto; }
.brand-logo { height:40px; width:auto; filter:brightness(0) invert(.95); opacity:.96; }
.nav-links { display:flex; gap:30px; list-style:none; margin:0; padding:0; }
.nav-links a { font-size:.9rem; font-weight:500; color:var(--text-soft); transition:color .18s ease; }
.nav-links a:hover { color:var(--text); }
.nav-cta { padding:.68em 1.1em; }

/* ---------- Hero ---------- */
.hero { position:relative; z-index:2; padding:66px 20px 84px; overflow:hidden; }
.hero-glow { position:absolute; border-radius:50%; filter:blur(30px); pointer-events:none; z-index:-1; }
.hero-glow--green { top:-240px; right:-120px; width:760px; height:760px; background:radial-gradient(circle at center,rgba(95,190,134,.22),rgba(95,190,134,0) 60%); }
.hero-glow--gold { bottom:-300px; left:-160px; width:640px; height:640px; background:radial-gradient(circle at center,rgba(203,169,106,.14),rgba(203,169,106,0) 62%); }
.hero-inner { position:relative; max-width:var(--maxw); margin:0 auto; display:grid; column-gap:60px; row-gap:30px; align-items:center; grid-template-columns:1.06fr .94fr; grid-template-areas:"lede media" "rest media"; }
.hero-lede { grid-area:lede; } .hero-rest { grid-area:rest; } .hero-media { grid-area:media; }
.eyebrow { display:inline-flex; align-items:center; gap:.6em; font-size:.78rem; font-weight:600; letter-spacing:.03em; color:var(--text-soft); background:var(--glass); border:1px solid var(--line); padding:.5em 1em; border-radius:999px; margin:0 0 24px; backdrop-filter:blur(6px); }
.eyebrow .star { color:var(--green-2); }
.hero-title { font-family:var(--display); font-weight:800; font-size:clamp(2.5rem,5.4vw,4.7rem); line-height:1.06; letter-spacing:-.035em; margin:0; max-width:15ch; text-wrap:balance; }
.hero-title .accent { display:block; font-weight:700; padding-bottom:.1em; }
.hero-sub { font-size:1.1rem; color:var(--text-soft); max-width:46ch; margin:26px 0 30px; }
.hero-actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; margin-bottom:34px; }
.hero-proof { display:flex; align-items:center; gap:22px; }
.proof-item { display:flex; flex-direction:column; line-height:1.1; }
.proof-item b { font-family:var(--display); font-weight:800; font-size:1.5rem; letter-spacing:-.02em; }
.proof-item span { font-size:.78rem; color:var(--muted); }
.proof-sep { width:1px; height:34px; background:var(--line-2); }

.media-frame { position:relative; width:100%; padding-top:56.25%; border-radius:var(--radius-lg); overflow:hidden; background:#000; border:1px solid var(--line-2); box-shadow:0 50px 90px -40px rgba(0,0,0,.9), 0 0 0 1px rgba(255,255,255,.03); }
.media-video { position:absolute; inset:0; width:100%; height:100%; }
.mentor-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

/* ---------- Trust strip ---------- */
.trust { position:relative; z-index:2; text-align:center; padding:20px; color:var(--muted); font-size:.86rem; letter-spacing:.02em; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.trust-star { color:var(--green-2); } .trust-dot { color:var(--line-2); margin:0 .3em; }

/* ---------- Testimonials ---------- */
.vid-grid { display:grid; gap:18px; margin:0 auto; }
.vid-grid--port { grid-template-columns:repeat(2,1fr); max-width:560px; }
.vid-grid--land { grid-template-columns:repeat(3,1fr); max-width:1100px; margin-top:18px; }
.vid-card { min-width:0; }
.vid-frame { position:relative; aspect-ratio:9/16; border-radius:16px; overflow:hidden; background:#000; border:1px solid var(--line-2); }
.vid-grid--land .vid-frame { aspect-ratio:16/9; }
.vid-frame iframe { position:absolute; inset:0; width:100%; height:100%; }
.vid-card figcaption { padding:16px 4px 0; }
.vid-card figcaption b { display:block; font-weight:700; font-size:1.05rem; margin-bottom:6px; }
.vid-card figcaption p { margin:0; font-size:.9rem; color:var(--text-soft); line-height:1.45; }

/* ---------- Marquee (scrolling images) ---------- */
.marquee-wrap { margin-top:64px; }
.team-carousel { margin:26px 0 40px; }
.marquee-label { text-align:center; color:var(--muted); font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; margin:0 0 22px; }
.marquee { overflow:hidden; -webkit-mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
.marquee-track { display:flex; gap:16px; width:max-content; animation:scroll-x 60s linear infinite; }
.marquee:hover .marquee-track { animation-play-state:paused; }
.marquee-track img { height:320px; width:auto; border-radius:14px; border:1px solid var(--line-2); object-fit:cover; }
@keyframes scroll-x { to { transform:translateX(-50%); } }

/* ---------- Guarantee band ---------- */
.band { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:radial-gradient(120% 140% at 50% 0%, rgba(95,190,134,.08), rgba(95,190,134,0) 60%); }
.band-title { font-family:var(--display); font-weight:700; font-size:clamp(1.6rem,3.2vw,2.5rem); line-height:1.2; letter-spacing:-.02em; margin:0 auto 34px; max-width:22ch; }

/* ---------- Stats ---------- */
.stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.stat-card { background:var(--glass); border:1px solid var(--line); border-radius:var(--radius); padding:38px 30px; text-align:center; }
.stat-card b { display:block; font-family:var(--display); font-weight:800; font-size:clamp(2.6rem,4.6vw,3.6rem); letter-spacing:-.03em; background:linear-gradient(100deg,var(--green-2),var(--gold)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stat-card span { display:block; color:var(--text-soft); margin-top:10px; font-size:.98rem; }

/* ---------- Mentor ---------- */
.mentor-grid { display:grid; grid-template-columns:.92fr 1.08fr; gap:56px; align-items:center; }
.mentor-name { margin:20px 2px 0; font-weight:700; }
.mentor-name span { display:block; color:var(--muted); font-weight:500; font-size:.9rem; margin-top:2px; }
.mentor-copy p { color:var(--text-soft); margin:0 0 16px; }
.mentor-copy blockquote { margin:24px 0 0; padding:18px 26px; border-left:2px solid var(--green); background:var(--glass); border-radius:0 14px 14px 0; font-family:var(--serif); font-style:italic; font-size:1.5rem; line-height:1.35; color:var(--text); }
.mentor-copy cite { display:block; font-style:normal; font-family:var(--sans); font-size:.85rem; color:var(--muted); margin-top:12px; }
.mentor-media { display:flex; flex-direction:column; align-items:flex-start; }
.mentor-img-sm { width:min(300px,100%); aspect-ratio:4/5; object-fit:cover; object-position:top center; border-radius:16px; border:1px solid var(--line-2); box-shadow:0 30px 60px -40px rgba(0,0,0,.9); }
.marquee-sub { color:var(--text-soft); font-size:1.04rem; margin:14px auto 0; max-width:52ch; }
.book-inline { padding-top:12px; }
.book-inline .calendly-wrap { margin-top:6px; }

/* prose text blocks */
.prose { max-width:64ch; margin:26px auto 0; }
.prose p { color:var(--text-soft); margin:0 0 16px; font-size:1.08rem; line-height:1.6; }
.fine, .prose .fine { color:var(--muted); font-size:.85rem; }

/* how it works */
.steps-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.step { background:var(--glass); border:1px solid var(--line); border-radius:var(--radius); padding:28px 24px; }
.step-n { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; font-family:var(--display); font-weight:800; color:#072012; background:linear-gradient(180deg,var(--green-2),var(--green)); margin-bottom:16px; }
.step b { display:block; font-size:1.08rem; margin-bottom:8px; }
.step p { margin:0; color:var(--text-soft); font-size:.94rem; }

/* safeguarding list */
.safeguard-list { list-style:none; margin:30px auto 0; padding:0; max-width:640px; text-align:left; }
.safeguard-list li { position:relative; padding:12px 0 12px 30px; border-top:1px solid var(--line); color:var(--text-soft); }
.safeguard-list li:first-child { border-top:0; }
.safeguard-list li::before { content:"✓"; position:absolute; left:0; top:12px; color:var(--green-2); font-weight:700; }

/* [CONFIRM] placeholders */
.confirm { background:rgba(203,169,106,.16); color:var(--gold); padding:.05em .4em; border-radius:5px; font-style:normal; }

/* CTA note */
.cta-note { margin:22px auto 10px; color:var(--text-soft); font-size:1rem; max-width:54ch; }
.guarantee .prose { margin-top:6px; }

/* ---------- Features ---------- */
.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.feature { background:var(--glass); border:1px solid var(--line); border-radius:var(--radius); padding:26px; }
.fi { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; background:rgba(95,190,134,.14); color:var(--green-2); font-size:.9rem; margin-bottom:14px; }
.fi.x { background:rgba(243,241,233,.06); color:var(--muted); }
.feature b { display:block; font-size:1.06rem; margin-bottom:8px; }
.feature p { margin:0; color:var(--text-soft); font-size:.92rem; }

/* ---------- Support team photo + accordion ---------- */
.team-photo { border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--line-2); margin:0 0 34px; box-shadow:0 40px 80px -50px rgba(0,0,0,.9); }
.team-photo img { display:block; width:100%; height:auto; }
.accordion { border:1px solid var(--line); border-radius:18px; background:var(--glass); overflow:hidden; }
.accordion details { border-bottom:1px solid var(--line); }
.accordion details:last-child { border-bottom:0; }
.accordion summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 24px; transition:background .18s ease; }
.accordion summary::-webkit-details-marker { display:none; }
.accordion summary:hover { background:rgba(255,255,255,.02); }
.ac-q b { display:block; font-weight:700; font-size:1.06rem; line-height:1.3; }
.ac-q em { display:block; font-style:normal; font-family:var(--sans); color:var(--green-2); font-size:.82rem; margin-top:4px; letter-spacing:.02em; }
.ac-ico { flex:none; font-size:1.5rem; line-height:1; color:var(--green-2); transition:transform .22s ease; }
details[open] .ac-ico { transform:rotate(45deg); }
.ac-body { padding:0 24px 24px; color:var(--text-soft); max-width:72ch; }

/* ---------- Who it's for ---------- */
.fit-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.fit-card { background:var(--glass); border:1px solid var(--line); border-radius:var(--radius); padding:30px 30px 34px; }
.fit-card.yes { border-color:rgba(95,190,134,.3); }
.fit-card h3 { display:flex; align-items:center; gap:10px; margin:0 0 18px; font-size:1.2rem; font-weight:700; }
.fit-card ul { list-style:none; margin:0; padding:0; }
.fit-card li { position:relative; padding:9px 0 9px 30px; color:var(--text-soft); border-top:1px solid var(--line); }
.fit-card li:first-child { border-top:0; }
.fit-card.yes li::before { content:"✓"; position:absolute; left:0; top:9px; color:var(--green-2); font-weight:700; }
.fit-card.no li::before { content:"✕"; position:absolute; left:0; top:9px; color:var(--muted); }

/* ---------- Guarantee ---------- */
.guarantee { margin:44px auto 40px; max-width:820px; text-align:center; background:radial-gradient(120% 160% at 50% 0%, rgba(95,190,134,.12), rgba(95,190,134,0) 65%); border:1px solid rgba(95,190,134,.28); border-radius:22px; padding:36px 34px; }
.g-badge { display:inline-block; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700; color:#072012; background:linear-gradient(180deg,var(--green-2),var(--green)); padding:.45em .9em; border-radius:999px; margin-bottom:16px; }
.guarantee p { font-size:1.14rem; color:var(--text); max-width:60ch; margin:0 auto; }

/* ---------- Community / social ---------- */
.social-cards { display:flex; gap:18px; justify-content:center; flex-wrap:wrap; margin-top:34px; }
.social-card { display:flex; align-items:center; gap:14px; background:var(--glass); border:1px solid var(--line); border-radius:16px; padding:14px 20px 14px 14px; transition:transform .2s ease, border-color .2s ease; }
.social-card:hover { transform:translateY(-2px); border-color:var(--line-2); }
.ig-badge { flex:none; width:46px; height:46px; border-radius:13px; display:flex; align-items:center; justify-content:center; background:radial-gradient(120% 120% at 30% 110%, #FDCB52 0%, #F14F79 45%, #832FCB 100%); }
.ig-badge svg { width:24px; height:24px; fill:#fff; }
.social-txt { text-align:left; } .social-txt b { display:block; font-weight:700; } .social-txt em { font-style:normal; color:var(--muted); font-size:.82rem; }
.social-card .arrow { color:var(--muted); margin-left:6px; }

/* ---------- Book / Calendly ---------- */
.book { position:relative; overflow:hidden; border-top:1px solid var(--line); }
.final-glow { position:absolute; top:-160px; left:50%; transform:translateX(-50%); width:900px; height:520px; background:radial-gradient(closest-side, rgba(95,190,134,.2), rgba(95,190,134,0)); filter:blur(20px); pointer-events:none; }
.calendly-wrap { position:relative; margin:38px auto 0; max-width:1040px; background:var(--bg-2); border:1px solid var(--line-2); border-radius:22px; overflow:hidden; box-shadow:0 40px 90px -50px rgba(0,0,0,.9); }
.calendly-inline-widget { width:100%; }

/* ---------- Footer ---------- */
.footer { border-top:1px solid var(--line); padding:44px 20px; position:relative; z-index:2; }
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.footer-logo { height:46px; filter:brightness(0) invert(.95); opacity:.9; }
.footer-links { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.footer-links a { color:var(--text-soft); font-size:.9rem; }
.footer-links a:hover { color:var(--text); }
.footer-ig svg { width:20px; height:20px; fill:currentColor; display:block; }
.footer-legal { color:var(--muted); font-size:.82rem; margin:0; width:100%; text-align:center; padding-top:20px; border-top:1px solid var(--line); }

/* ---------- Sticky mobile CTA ---------- */
.mobile-cta { display:none; position:fixed; left:14px; right:14px; bottom:14px; z-index:80; align-items:center; justify-content:center; gap:.5em; font-family:var(--sans); font-weight:700; font-size:1rem; color:#072012; padding:1.05em 1.2em; border-radius:16px; background:linear-gradient(180deg,var(--green-2),var(--green)); box-shadow:0 16px 40px -12px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.15) inset; }
.mobile-cta .arrow { font-size:.82em; }

/* ---------- Entrance ---------- */
.rise { opacity:0; transform:translateY(16px); animation:rise .8s cubic-bezier(.2,.7,.2,1) forwards; animation-delay:var(--d,0s); }
@keyframes rise { to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { .rise,.marquee-track { animation:none; opacity:1; transform:none; } }

/* =========================================================
   RESPONSIVE — PC / tablet / phone
   ========================================================= */
@media (max-width:1080px) {
  .vid-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:980px) {
  .mentor-grid { grid-template-columns:1fr; gap:32px; max-width:640px; margin:0 auto; }
  .mentor-media { max-width:460px; margin:0 auto; }
  .feature-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:920px) {
  .nav-links { display:none; }
  /* HERO — centred on tablet & phone */
  .hero { padding:40px 18px 60px; }
  .hero-inner { grid-template-columns:1fr; grid-template-areas:"lede" "media" "rest"; row-gap:26px; justify-items:center; text-align:center; }
  .hero-lede, .hero-rest { display:flex; flex-direction:column; align-items:center; }
  .hero-title { font-size:clamp(2.2rem,7.4vw,3.4rem); max-width:18ch; }
  .hero-sub { margin:18px auto 24px; }
  .hero-actions { justify-content:center; }
  .hero-proof { justify-content:center; }
  .hero-media { width:100%; max-width:560px; }
  .hero-actions { margin-bottom:26px; }
  /* sections */
  .section { padding:66px 18px; }
  .sec-head { margin-bottom:34px; }
  .stat-grid { grid-template-columns:1fr; }
  .fit-grid { grid-template-columns:1fr; }
  .steps-grid { grid-template-columns:1fr 1fr; }
  .mobile-cta { display:flex; }
  body { padding-bottom:88px; }
}
@media (max-width:600px) {
  .feature-grid { grid-template-columns:1fr; }
  .steps-grid { grid-template-columns:1fr; }
  /* testimonials stacked one under another */
  .vid-grid { grid-template-columns:1fr; max-width:360px; margin:0 auto; }
  .footer-inner { flex-direction:column; align-items:flex-start; }
  .social-cards { flex-direction:column; }
  .social-card { width:100%; }
  .marquee-track img { height:260px; }
}
@media (max-width:560px) {
  .nav { padding:8px 8px 8px 16px; }
  .brand-logo { height:32px; }
  .nav-cta { font-size:.82rem; padding:.6em .9em; }
  .eyebrow { font-size:.72rem; padding:.45em .8em; margin-bottom:18px; }
  .hero-proof { gap:16px; }
  .proof-item b { font-size:1.35rem; }
  .proof-item span { font-size:.72rem; }
  .band-title { font-size:1.5rem; }
}

/* ========================================================
   MOBILE CONVERSION PATCH (v14)
   ======================================================== */
:root { --text-soft:rgba(243,241,233,.78); }        /* lighter body text for contrast */

.section.tight { padding:70px 20px; }               /* trimmed vertical rhythm */
.prose.left, .prose.left p { text-align:left; }
.mentor-sub { color:var(--green-2); font-weight:600; font-size:.96rem; margin:2px 0 18px; }

/* how-it-works: 2x2 grid, shorter cards */
.steps-grid { grid-template-columns:repeat(2,1fr); max-width:820px; margin:0 auto; }
.step { padding:22px 22px; }
.feature { padding:22px; }

/* CTAs open a popup; sticky bottom CTA hidden until revealed by JS */
.mobile-cta { display:none; }

@media (max-width:920px) {
  /* logo-only compact header, centred */
  .nav-cta { display:none; }
  .nav { padding:12px 20px; justify-content:center; }
  .brand { margin-right:0; }
  /* smaller hero headline (~3 lines) */
  .hero-title { font-size:clamp(1.85rem,6.4vw,2.7rem); }
  /* tighter spacing */
  .section, .section.tight { padding:46px 18px; }
  .sec-head { margin-bottom:26px; }
  .steps-grid { grid-template-columns:1fr; }
  /* these blocks are centred on mobile (parent-problem, mentor, guarantee, final CTA) */
  .prose, .prose p, .prose.left, .prose.left p, .mentor-copy, .mentor-copy p, .mentor-copy blockquote, .mentor-copy cite, .mentor-sub { text-align:center; }
  .mentor-media { align-items:center; }
  /* compact card padding (~30% less) */
  .step, .feature, .fit-card, .stat-card { padding:18px 18px; }
  /* messages: swipeable carousel, large & readable */
  .msgs .marquee { overflow-x:auto; -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory; -webkit-mask:none; mask:none; }
  .msgs .marquee-track { animation:none; gap:12px; }
  .msgs .marquee-track img { height:60vh; max-height:520px; scroll-snap-align:center; border-radius:16px; }
  /* reveal sticky CTA after hero CTA scrolls away (.show added by JS) */
  .mobile-cta.show { display:flex; }
  body { padding-bottom:86px; }
}

/* ========================================================
   LAUNCH-READINESS PATCH (v15)
   ======================================================== */
.msgs .marquee-track { animation-direction:reverse; }   /* WhatsApp carousel autoscrolls left → right */

/* sticky CTA: iPhone safe-area, 44px+ tap target, hidden while booking modal open */
.mobile-cta { min-height:52px; bottom:calc(14px + env(safe-area-inset-bottom,0px)); }
body.booking-open { overflow:hidden; }
body.booking-open .mobile-cta { display:none !important; }

/* visible keyboard focus */
a:focus-visible, button:focus-visible, summary:focus-visible, .btn:focus-visible, .social-card:focus-visible {
  outline:2px solid var(--green-2); outline-offset:3px; border-radius:8px;
}

@media (max-width:920px){
  /* messages: auto-scrolling (overrides earlier swipe), larger & readable */
  .msgs .marquee { overflow:hidden; -webkit-mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
  .msgs .marquee-track { animation:scroll-x 40s linear infinite reverse; }
  .msgs .marquee-track img { height:44vh; max-height:400px; }
  body { padding-bottom:calc(86px + env(safe-area-inset-bottom,0px)); }
}
@media (prefers-reduced-motion:reduce){ .marquee-track { animation:none !important; } }
