/* Coach landing pages. Themes: .lp-bold (Iron, dark) | .lp-clean (Chalk, split hero) | .lp-soft (Concrete, centred).
   Follows the Setsmith guidelines: Sora, flat colour (no gradients), 10px buttons / 16px cards, one highlighter move per page.
   Per-coach colour is injected on <html>: --accent (fill), --accent-text (readable as text), --on-accent (text on a fill). */
:root { --accent:#C6F135; --accent-text:#4B7A14; --on-accent:#0F1115; --radius:16px; }
*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:76px; }
img { max-width:100%; display:block; }

.font-modern    { --head:Sora,system-ui,sans-serif;        --body:Sora,system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"JetBrains Mono",ui-monospace,monospace; }
.font-editorial { --head:Fraunces,Georgia,serif;           --body:Sora,system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"JetBrains Mono",ui-monospace,monospace; }

.lp-bold  { --bg:#0F1115; --fg:#FFFFFF; --muted:#A3A8B3; --card:#181B21; --border:rgba(255,255,255,.14); --alt:#14171C; --overlay:rgba(15,17,21,.68); }
.lp-clean { --bg:#FFFFFF; --fg:#0F1115; --muted:#5A5F6B; --card:#F2F3F5; --border:#E4E6EA; --alt:#F2F3F5; }
.lp-soft  { --bg:#F2F3F5; --fg:#0F1115; --muted:#5A5F6B; --card:#FFFFFF; --border:#E4E6EA; --alt:#E9EBEE; --radius:28px; }

body.lp { margin:0; background:var(--bg); color:var(--fg); font:400 16.5px/1.65 var(--body); -webkit-font-smoothing:antialiased; }
.lp h1, .lp h2, .lp h3 { font-family:var(--head); line-height:1.08; margin:0; letter-spacing:-.04em; }
.lp h2 { font-size:clamp(2rem,4.4vw,3rem); font-weight:800; margin-bottom:18px; }
.lp h3 { font-size:1.3rem; font-weight:700; letter-spacing:-.03em; }
.lp p { margin:0 0 1em; }
.lp a { color:inherit; }
.lp-wrap { max-width:1140px; margin:0 auto; padding:0 20px; }
.lp-narrow { max-width:780px; }
.lp-center { text-align:center; }
.lp-muted { color:var(--muted); }
.hp { position:absolute; left:-9999px; }

/* The highlighter: wrap a headline phrase in *asterisks* */
.lp-hl { background:var(--accent); color:var(--on-accent); padding:0 .12em .06em; border-radius:.1em; -webkit-box-decoration-break:clone; box-decoration-break:clone; }

/* Buttons: primary = accent fill + readable text; ghost = 1.5px outline */
.lp-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:14px 26px; border-radius:10px;
  background:var(--accent); color:var(--on-accent); border:1.5px solid var(--accent); font:700 .95rem var(--body);
  text-decoration:none; cursor:pointer; transition:transform .15s; }
.lp-btn:hover { transform:translateY(-2px); text-decoration:none; }
.lp-btn.ghost { background:transparent; color:var(--fg); border-color:var(--fg); }
.lp-btn.sm { padding:9px 18px; font-size:.88rem; }
.lp a:focus-visible, .lp button:focus-visible, .lp summary:focus-visible, .lp input:focus-visible, .lp select:focus-visible, .lp textarea:focus-visible
  { outline:3px solid var(--accent-text); outline-offset:3px; }

/* Nav */
.lp-nav { position:sticky; top:0; z-index:50; background:var(--bg); border-bottom:1px solid var(--border); }
.lp-nav .lp-wrap { display:flex; align-items:center; justify-content:space-between; gap:16px; height:66px; }
.lp-brand { font:800 1.25rem var(--head); letter-spacing:-.05em; text-decoration:none; }
.lp-nav nav { display:flex; align-items:center; gap:22px; font-size:.92rem; }
.lp-nav nav a { text-decoration:none; opacity:.85; }
.lp-nav nav a:hover { opacity:1; }
.lp-nav nav a.lp-btn { opacity:1; color:var(--on-accent); }

.lp-flash { padding:14px 20px; text-align:center; font-weight:700; color:#fff; }
.lp-flash.ok { background:#2f6b12; } .lp-flash.err { background:#b42318; }

/* Hero */
.lp-hero { position:relative; overflow:hidden; }
.lp-hero-in { position:relative; z-index:1; padding:104px 20px 96px; }
.lp-hero h1 { font-size:clamp(2.7rem,7vw,5rem); font-weight:800; line-height:1.02; letter-spacing:-.05em; margin-bottom:22px; max-width:13em; }
.lp-kicker { display:inline-block; margin:0 0 22px !important; font:500 .75rem var(--mono); letter-spacing:.08em; text-transform:uppercase; color:var(--accent-text); }
.lp-sub { font-size:clamp(1.05rem,2vw,1.25rem); color:var(--muted); max-width:34em; }
.lp-cta { display:flex; gap:12px; flex-wrap:wrap; margin-top:34px; }
.lp-hero:not(.has-img) .lp-hero-in { text-align:center; }
.lp-hero:not(.has-img) h1, .lp-hero:not(.has-img) .lp-sub { margin-left:auto; margin-right:auto; }
.lp-hero:not(.has-img) .lp-cta { justify-content:center; }

/* Bold */
.lp-bold .lp-hero { min-height:min(82vh,760px); display:flex; align-items:center; background:var(--bg); }
.lp-bold .lp-hero .lp-wrap { width:100%; }
.lp-hero-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.lp-bold .lp-hero.has-img::after { content:""; position:absolute; inset:0; background:var(--overlay); }
.lp-bold .lp-hero.has-img .lp-sub { color:rgba(255,255,255,.85); }

/* Clean */
.lp-clean .lp-hero { background:var(--alt); }
.lp-clean .lp-hero.has-img .lp-hero-in { display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center; }
.lp-hero-media img { width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius); }

/* Soft */
.lp-soft .lp-hero { background:color-mix(in srgb, var(--accent) 16%, var(--bg)); }
.lp-soft .lp-hero.has-img .lp-hero-in { display:flex; flex-direction:column-reverse; align-items:center; text-align:center; gap:34px; padding-top:72px; }
.lp-soft .lp-hero.has-img h1, .lp-soft .lp-hero.has-img .lp-sub { margin-left:auto; margin-right:auto; }
.lp-soft .lp-hero.has-img .lp-cta { justify-content:center; }
.lp-soft .lp-hero-media img { width:208px; height:208px; aspect-ratio:1; border-radius:50%; border:6px solid #fff; }
.lp-soft .lp-hero h1 { font-size:clamp(2.4rem,6vw,4.2rem); }

/* Highlights */
.lp-strip { border-block:1px solid var(--border); background:var(--alt); }
.lp-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:26px; padding:38px 20px; text-align:center; }
.lp-stats strong { display:block; font:800 clamp(1.9rem,4.2vw,2.8rem)/1 var(--head); letter-spacing:-.05em; color:var(--accent-text); }
.lp-stats span { display:block; margin-top:8px; color:var(--muted); font:500 .72rem var(--mono); letter-spacing:.08em; text-transform:uppercase; }

/* Sections */
.lp-sec { padding:100px 0; }
.lp-sec.alt { background:var(--alt); }

.lp-about.with-img { display:grid; grid-template-columns:.85fr 1.15fr; gap:60px; align-items:center; }
.lp-about-img img { width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius); }
.lp-soft .lp-about-img img { border-radius:200px 200px var(--radius) var(--radius); }
.lp-about p { font-size:1.1rem; }

.lp-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(272px,1fr)); gap:20px; margin-top:46px; align-items:stretch; }
.lp-card { position:relative; display:flex; flex-direction:column; gap:12px; padding:34px 28px 30px; background:var(--card);
  border:1px solid var(--border); border-radius:var(--radius); }
.lp-card.featured { border:2px solid var(--fg); }
.lp-badge { position:absolute; top:-13px; left:24px; background:var(--accent); color:var(--on-accent); font:500 .68rem var(--mono);
  letter-spacing:.08em; text-transform:uppercase; padding:5px 12px; border-radius:6px; }
.lp-price { font:800 2.3rem/1 var(--head); letter-spacing:-.05em; }
.lp-desc { color:var(--muted); margin:0; }
.lp-feat { list-style:none; padding:0; margin:6px 0 auto; display:grid; gap:9px; }
.lp-feat li { display:flex; gap:10px; }
.lp-feat li::before { content:"✓"; flex:none; font-weight:800; color:var(--accent-text); }
.lp-card .lp-btn { align-self:flex-start; margin-top:18px; }

.lp-gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px; margin-top:44px; }
.lp-gallery figure { margin:0; }
.lp-gallery img { width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius); }
.lp-gallery figcaption { margin-top:8px; font-size:.88rem; color:var(--muted); }

.lp-steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:30px; margin:46px 0 0; padding:0; list-style:none; counter-reset:s; }
.lp-steps li { counter-increment:s; border-top:2px solid var(--fg); padding-top:20px; }
.lp-steps li::before { content:"0" counter(s); display:block; font:500 .8rem var(--mono); letter-spacing:.08em; color:var(--accent-text); margin-bottom:14px; }
.lp-steps strong { display:block; font:700 1.25rem var(--head); letter-spacing:-.03em; margin-bottom:6px; }
.lp-steps span { color:var(--muted); }

.lp-quote { margin:0; padding:30px 28px; background:var(--card); border:1px solid var(--border); border-radius:var(--radius); }
.lp-quote p { font-size:1.08rem; margin-bottom:18px; }
.lp-quote footer { display:flex; flex-direction:column; font-size:.9rem; }
.lp-quote footer span { color:var(--muted); }

.lp-sec details { border-bottom:1px solid var(--border); padding:20px 0; }
.lp-sec details:first-of-type { margin-top:36px; border-top:1px solid var(--border); }
.lp-sec summary { display:flex; justify-content:space-between; gap:16px; cursor:pointer; list-style:none; font:700 1.1rem var(--head); letter-spacing:-.02em; }
.lp-sec summary::-webkit-details-marker { display:none; }
.lp-sec summary::after { content:"+"; font-size:1.5rem; line-height:1; color:var(--accent-text); }
.lp-sec details[open] summary::after { content:"–"; }
.lp-sec details p { margin:12px 0 0; color:var(--muted); }

.lp-form { background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:clamp(24px,5vw,44px); }
.lp-form h2 { margin-bottom:8px; }
.lp-form label { display:block; font-weight:600; font-size:.88rem; margin-top:18px; }
.lp-form input, .lp-form select, .lp-form textarea { display:block; width:100%; margin-top:6px; padding:14px 15px; border-radius:10px;
  border:1.5px solid var(--border); background:var(--bg); color:var(--fg); font:400 1rem var(--body); }
.lp-form textarea { min-height:120px; resize:vertical; }
.lp-form .lp-btn { margin-top:24px; width:100%; }

.lp-foot { border-top:1px solid var(--border); padding:30px 0; font-size:.9rem; color:var(--muted); }
.lp-foot .lp-wrap { display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; align-items:center; }
.lp-socials { display:flex; gap:20px; flex-wrap:wrap; }
.lp-socials a { text-decoration:none; }
.lp-socials a:hover { color:var(--fg); text-decoration:underline; }

@media (max-width:860px) {
  .lp-clean .lp-hero.has-img .lp-hero-in, .lp-about.with-img { grid-template-columns:1fr; gap:36px; }
  .lp-hero-media img { aspect-ratio:1; max-height:420px; }
  .lp-about-img img { aspect-ratio:1; max-height:420px; }
  .lp-sec { padding:72px 0; }
  .lp-hero-in { padding:68px 20px 64px; }
  .lp-hide-sm { display:none; }
}
@media (max-width:520px) {
  .lp-nav nav { gap:14px; }
  .lp-bold .lp-hero { min-height:0; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .lp-btn { transition:none; } }
