/* Exercise Prescription acquisition funnel (BUY_NOW / BUY_LATER) — additive layer; reuses night.css tokens, touches no shared rules. */
.fn { background:var(--bg); }
.fn main { overflow-x:clip; }
.fn-hero { min-height:min(86svh,860px); display:grid; grid-template-columns:minmax(0,1.3fr) minmax(240px,.7fr); align-items:end; gap:clamp(28px,6vw,90px); padding:140px var(--gutter) clamp(48px,8vw,96px); }
.fn--now .fn-hero { background:radial-gradient(ellipse at 88% 4%,#2a1805 0%,var(--bg) 46%); }
.fn--later .fn-hero { min-height:min(70svh,700px); grid-template-columns:minmax(0,1fr); background:linear-gradient(180deg,#101010 0%,var(--bg) 100%); }
.fn-hero h1 { font:850 clamp(2.7rem,8.4vw,7.6rem)/.88 var(--display); font-stretch:62%; text-transform:uppercase; letter-spacing:-.012em; max-width:13ch; overflow-wrap:normal; }
.fn--later .fn-hero h1 { max-width:15ch; font-size:clamp(2.5rem,7vw,6.2rem); }
.fn-lede { margin-top:24px; max-width:46ch; color:var(--text-on-image); font-size:clamp(1rem,1.4vw,1.2rem); }
.fn-cta { margin-top:34px; }
.fn-microcopy { margin-top:14px; max-width:46ch; color:var(--text-2); font-size:.9rem; }
.fn-hero__facts { border-left:1px solid var(--line); padding-left:clamp(18px,3vw,40px); align-self:stretch; display:flex; align-items:flex-end; }
.fn-hero__facts dl { margin:0; display:grid; gap:22px; }
.fn-hero__facts dt { color:var(--text-2); font:700 12px/1.4 var(--body); letter-spacing:.1em; text-transform:uppercase; }
.fn-hero__facts dd { margin:4px 0 0; font:800 clamp(1.3rem,2.2vw,1.8rem)/1.05 var(--display); font-stretch:70%; text-transform:uppercase; }
.fn-section { max-width:1440px; margin:0 auto; padding:clamp(56px,8vw,112px) var(--gutter); border-top:1px solid var(--line); }
.fn-section--split { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(28px,6vw,96px); align-items:start; }
.fn-section__head h2, .fn-final h2 { font:850 clamp(2.2rem,5vw,4.6rem)/.9 var(--display); font-stretch:62%; text-transform:uppercase; max-width:13ch; margin-top:14px; overflow-wrap:normal; }
.fn-prose { margin-top:28px; max-width:60ch; color:var(--text-on-image); font-size:clamp(1rem,1.3vw,1.15rem); }
.fn-section--split .fn-prose { margin-top:0; }
.fn-prose p + p { margin-top:18px; }
.fn-prose a, .fn-expect a { color:var(--glow); text-underline-offset:3px; }
.fn-steps { list-style:none; margin:clamp(28px,4vw,48px) 0 0; padding:0; border-bottom:1px solid var(--line); }
.fn-steps li { display:grid; grid-template-columns:72px minmax(0,1fr); gap:18px; padding:26px 0; border-top:1px solid var(--line); }
.fn-steps__n { color:var(--ember); font:800 2.4rem/.85 var(--display); font-stretch:62%; }
.fn-steps h3 { font:800 clamp(1.4rem,2.6vw,2.1rem)/1 var(--display); font-stretch:62%; text-transform:uppercase; }
.fn-steps p { margin-top:8px; max-width:56ch; color:var(--text-2); }
.fn-list { list-style:none; margin:0; padding:0; border-bottom:1px solid var(--line); }
.fn-list li { padding:20px 0 20px 26px; border-top:1px solid var(--line); position:relative; color:var(--text-on-image); }
.fn-list li::before { content:""; position:absolute; left:0; top:1.75em; width:8px; height:8px; background:var(--ember); }
.fn-list strong { color:var(--text); }
.fn-final { max-width:1440px; margin:0 auto; padding:clamp(56px,8vw,112px) var(--gutter) clamp(72px,9vw,128px); border-top:1px solid var(--line); display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,6vw,96px); align-items:start; }
.fn-final__main .btn { margin-top:28px; }
.fn-expect { border-left:2px solid var(--ember); padding:4px 0 4px clamp(18px,3vw,32px); color:var(--text-on-image); }
.fn-expect h3 { font:800 1.3rem/1 var(--display); font-stretch:70%; text-transform:uppercase; margin-bottom:14px; }
.fn-expect ul { margin:0; padding-left:1.1em; display:grid; gap:10px; font-size:.95rem; }
.fn a:focus-visible { outline:2px solid var(--glow); outline-offset:3px; }
@media (max-width:820px) { .fn-hero, .fn--now .fn-hero { grid-template-columns:minmax(0,1fr); min-height:0; padding-top:120px; } .fn-hero__facts { border-left:0; border-top:1px solid var(--line); padding:22px 0 0; } .fn-hero__facts dl { grid-template-columns:1fr; } .fn-section--split, .fn-final { grid-template-columns:minmax(0,1fr); } .fn-steps li { grid-template-columns:52px minmax(0,1fr); } }
@media (prefers-reduced-motion: reduce) { .fn *, .fn *::before, .fn *::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; } }

/* Information-page FAQ (additive). Plain headings + paragraphs: readable without JS, no accordion. */
.fn-faq-wrap .fn-prose { margin-top:28px; }
.fn-faq { max-width:60ch; }
.fn-faq h3 { margin:26px 0 6px; font-size:1.05rem; color:var(--text); }
.fn-faq h3:first-child { margin-top:0; }
.fn-faq p { margin:0; color:var(--text-on-image); }

/* Phase 2.8: first-screen fact strip and honest self-qualification line (questionnaire intro; qualification line also on the result pages). Existing tokens only. */
.fn-factstrip { list-style:none; margin:18px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px 10px; }
.fn-factstrip li { padding:6px 12px; border:1px solid var(--line); color:var(--text-on-image); font-size:.88rem; line-height:1.3; }
.fn-qualify { margin:16px 0 0; max-width:52ch; color:var(--text-2); font-size:.92rem; line-height:1.5; }
.fn-hero .fn-qualify { margin-top:10px; }
/* Conversion pass: comparison block + clinic photo (approved v3 asset). Additive. */
.fn-compare { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(16px,3vw,32px); margin-top:clamp(24px,4vw,40px); }
.fn-compare__col { border:1px solid var(--line); padding:clamp(18px,3vw,30px); }
.fn-compare__col h3 { font:800 clamp(1.15rem,2vw,1.5rem)/1 var(--display); font-stretch:70%; text-transform:uppercase; color:var(--text-2); margin-bottom:6px; }
.fn-compare__col--us { border-color:var(--ember); }
.fn-compare__col--us h3 { color:var(--text); }
.fn-compare .fn-list { border-bottom:0; }
.fn-compare .fn-list li:first-child { border-top:0; }
.fn-photo { margin:clamp(24px,4vw,40px) 0 0; }
.fn-photo img { display:block; width:100%; height:clamp(220px,34vw,460px); object-fit:cover; object-position:50% 36%; border:1px solid var(--line); }
.fn-faq { max-width:68ch; }
.fn-hero .fn-cta .btn { max-width:100%; }
.fn-hero .fn-cta .btn__face { flex-wrap:wrap; }
@media (max-width:820px) { .fn-compare { grid-template-columns:minmax(0,1fr); } .fn-hero h1 { font-size:clamp(2.4rem,11.5vw,3.4rem); } .fn--later .fn-hero h1 { font-size:clamp(2.2rem,10vw,3.2rem); } }
