/* The public pages: / for signed-out visitors and /coaching (views/landing.ts). Tokens only (tokens.css):
   dark by default, light with the header's theme button. No external resource. */
.pubnav{display:flex;gap:4px;margin-left:16px}
.pubnav a{color:var(--ink2);text-decoration:none;padding:8px 10px;border-radius:var(--radius-sm);font-weight:500}
.pubnav a:hover,.pubnav a.on{color:var(--ink);background:var(--surface2)}
header.top .topright .button.primary{margin-left:8px}

.landing{max-width:1180px;margin:0 auto}
.landing .eyebrow{font:600 12px var(--font-head);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--accent);margin:0 0 10px}
.landing h1{font-size:clamp(30px,4.4vw,48px);line-height:1.08;margin:0 0 16px;max-width:16ch}
.landing h2{font-size:clamp(22px,2.4vw,28px);line-height:1.2;margin:0 0 16px;color:var(--ink);letter-spacing:.01em}
.landing .card h2{font-size:13px;letter-spacing:var(--ls-label);color:var(--ink2);text-transform:uppercase}
.landing h3{font-size:17px;margin:0 0 6px}
.landing p{max-width:68ch}
.landing .lead{font-size:17px;line-height:1.6;color:var(--ink2);margin:0 0 20px}
.landing .lcta{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px}
.landing .lcta .button{min-height:44px;padding:10px 18px;font-size:15px;text-decoration:none;display:inline-flex;align-items:center}
.landing a{color:var(--link)}

.lhero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:40px;align-items:center;padding:40px 0 48px}
.lsec{padding:40px 0;border-top:1px solid var(--hair)}
.lsplit{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:32px;align-items:start}
.lband{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center;background:var(--surface);border:1px solid var(--ring);border-radius:var(--radius);padding:32px;margin:40px 0}
.lband-end{grid-template-columns:1fr;text-align:left}

.shot{margin:0}
.shot svg,.shot img{display:block;width:100%;height:auto;border-radius:var(--radius);border:1px solid var(--ring)}
.shot figcaption{color:var(--muted);font-size:var(--fs-small);margin-top:8px}

.lgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.lfeat{background:var(--surface);border:1px solid var(--ring);border-radius:var(--radius);padding:18px 20px}
.lfeat h3{color:var(--ink)}
.lfeat p{color:var(--ink2);margin:0}

.lsteps{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.lsteps-wide{grid-template-columns:repeat(3,minmax(0,1fr))}
.lstep{display:flex;gap:14px;align-items:flex-start}
.lstep p{color:var(--ink2);margin:0}
.lnum{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font:700 15px var(--font-num);background:var(--accentbg);color:var(--accent);border:1px solid var(--accent)}
.lnote{margin:0}
.ltick{margin:0 0 12px;padding-left:20px}
.ltick li{margin:0 0 8px;color:var(--ink2)}
.ltick li::marker{color:var(--accent)}

.lfaq{border-bottom:1px solid var(--hair);padding:12px 0}
.lfaq summary{cursor:pointer;font-weight:600;font-size:15px;list-style-position:outside}
.lfaq p{color:var(--ink2);margin:8px 0 0}


@media (max-width:900px){
  .lhero,.lsplit,.lband{grid-template-columns:1fr;gap:24px}
  .lgrid,.lsteps-wide{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* app.css hides header nav on a phone (the signed-in menu sheet); the public nav has no menu button, so
   it stays visible as the header's second row (Coaching / Videos were unreachable at 390 px). */
@media (max-width:700px){header.top nav.pubnav{display:flex;margin:0 -8px}}
@media (max-width:600px){
  .pubnav a[href="/"]{display:none}
  .pubnav{margin-left:4px}
  .lhero{padding:20px 0 28px}
  .lsec{padding:28px 0}
  .lgrid,.lsteps-wide{grid-template-columns:1fr}
  .lband{padding:20px;margin:28px 0}
  .landing .lead{font-size:16px}
  .landing .lcta .button{flex:1 1 auto;justify-content:center}
}
