/* Public page composition. Shared colors and controls live in site.css. */
.site-page .public-section { padding-block:60px 72px }
.site-page .public-section + .public-section { padding-top:0 }
.site-page .public-hero { margin-bottom:48px;max-width:880px }
.site-page .public-hero h1 { max-width:21ch;font-size:clamp(38px,5vw,66px);line-height:1.04;letter-spacing:-.025em }
.site-page .public-hero .page-lead { max-width:62ch;margin-top:22px }
.site-page .public-hero .page-kicker { margin-bottom:18px }
.site-page .public-hero .cta-row { margin-top:26px }
.site-page .public-hero-grid { display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px;align-items:center;max-width:none }
.site-page .public-hero-grid > * { min-width:0 }
.site-page .public-hero-grid .public-hero-copy { min-width:0 }
.site-page .public-hero-photo { margin:0;overflow:hidden;border-radius:70px 12px 12px 12px;aspect-ratio:1.1;background:var(--color-surface) }
.site-page .public-hero-photo img { width:100%;height:100%;object-fit:cover }
.site-page .public-hero-photo--wide { aspect-ratio:1.4 }
.site-page .public-caption { font-size:12px;line-height:1.7;color:var(--color-muted);margin:14px 0 0;max-width:66ch }
.site-page .public-hero-note { font-size:13px;line-height:1.75;color:var(--color-muted);margin:18px 0 0;max-width:62ch }
.site-page .public-hero-note a { text-decoration:underline;text-underline-offset:3px }
.site-page .public-intro { max-width:72ch;margin:0 0 36px;font-size:17px;line-height:1.85;color:var(--color-muted) }
.site-page .public-subsection { margin-top:52px }
.site-page .public-subsection > h2,.site-page .section-heading { max-width:34ch }
.site-page .public-subsection > p { max-width:76ch }
.site-page .public-result-heading { margin-bottom:24px }
.site-page .public-result-heading h2 { font-size:clamp(28px,3vw,42px);margin-bottom:12px }
.site-page .public-result-heading p { color:var(--color-muted);max-width:70ch }
.site-page .public-filter-panel { background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:28px;margin-bottom:42px }
.site-page .public-filter-panel h2 { font-size:24px;margin-bottom:18px }
.site-page .public-filter-row + .public-filter-row { border-top:1px solid var(--color-border);padding-top:20px;margin-top:20px }
.site-page .public-filter-row h3 { font:700 13px/1.6 var(--font-body);margin-bottom:12px;color:var(--color-muted) }
.site-page .public-filter-row .filters { margin:0 }
.site-page .public-stat-panel { padding:30px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;align-self:stretch;display:flex;flex-direction:column;justify-content:center }
.site-page .public-stat-panel dl { margin:0;display:grid;grid-template-columns:1fr 1fr;gap:24px }
.site-page .public-stat-panel dt { font-size:12px;line-height:1.6;color:var(--color-muted);margin-bottom:10px }
.site-page .public-stat-panel dd { margin:0;font:700 clamp(28px,3.5vw,46px)/1.1 var(--font-head);color:var(--color-accent) }
.site-page .public-stat-panel > p { font-size:12px;margin:24px 0 0;padding-top:20px;border-top:1px solid var(--color-border);color:var(--color-muted) }
.site-page .public-stat-panel h2 { font-size:28px }
.site-page .public-stat-panel .public-stat-note { margin-top:12px;border:0;padding:0;font-size:14px }
.site-page .public-stats-hero { grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);align-items:start }
.site-page .public-empty { text-align:left;padding:36px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px }
.site-page .public-empty h2,.site-page .public-empty h3 { font-size:30px }
.site-page .public-empty p { max-width:65ch;color:var(--color-muted) }
.site-page .public-empty .btn { margin-top:6px }
.site-page .public-closing { border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding-block:42px;padding-inline:0;border-inline:0;display:flex;justify-content:space-between;align-items:center;gap:38px;background:none;border-radius:0;text-align:left }
.site-page .public-closing h2 { font-size:clamp(32px,4vw,50px);max-width:23ch;margin-bottom:14px }
.site-page .public-closing p { margin:0;color:var(--color-muted);max-width:64ch;font-size:14px }
.site-page .public-closing > .cta-row { flex-shrink:0;margin:0 }
.site-page .public-closing .btn { box-shadow:none }
.site-page .public-article-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px }
.site-page .public-article-grid > * { min-width:0 }
.site-page .public-article-grid .blog-card { border:1px solid var(--color-border);border-radius:12px }
.site-page .public-article-grid .blog-card__body { padding:26px }
.site-page .public-article-grid .blog-card h3 { font-size:29px;line-height:1.2;margin:6px 0 15px }
.site-page .public-article-grid .blog-card .meta { display:flex;justify-content:space-between;gap:18px;align-items:center;padding-top:14px;margin-bottom:0;font-size:12px }
.site-page .public-article-grid .blog-card .meta a { color:var(--color-accent) }
.site-page .public-article-grid .blog-card--feature { grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) }
.site-page .public-article-grid .blog-card--feature .blog-card__img { height:100%;aspect-ratio:auto;min-height:300px }
.site-page .public-article-grid .blog-card--feature .blog-card__body { padding:36px;justify-content:center }
.site-page .public-article-grid .blog-card--feature h3 { font-size:clamp(30px,3.4vw,44px) }
.site-page .public-article-grid .blog-card--feature .meta { margin-top:18px }
.site-page .public-article-header { max-width:920px;margin-bottom:36px }
.site-page .public-article-header h1 { max-width:25ch;font-size:clamp(38px,5vw,64px);line-height:1.08 }
.site-page .public-article-header .tag-row { display:flex;flex-wrap:wrap;gap:8px;margin-top:22px }
.site-page .public-article-layout { display:grid;grid-template-columns:minmax(0,760px) minmax(220px,1fr);gap:64px;align-items:start }
.site-page .public-article-layout .prose { max-width:none;padding:0;margin:0;min-width:0 }
.site-page .public-article-layout .blog-hero { margin:0 0 36px }
.site-page .public-article-body { overflow-wrap:anywhere }
.site-page .public-article-body h2 { margin-top:40px;font-size:32px;line-height:1.2 }
.site-page .public-article-body p,.site-page .public-article-body li { font-size:16px;line-height:1.9 }
.site-page .public-article-body table { display:block;max-width:100%;overflow-x:auto }
.site-page .public-article-aside { position:sticky;top:32px;padding:26px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface) }
.site-page .public-article-aside h2 { font-size:28px;line-height:1.15 }
.site-page .public-article-aside p { color:var(--color-muted);font-size:13px;line-height:1.8 }
.site-page .public-article-aside .btn { margin-top:8px;width:100%;font-size:13px }
.site-page .public-how-layout { display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:72px;align-items:start }
.site-page .public-how-layout > div > p { color:var(--color-muted);max-width:34ch }
.site-page .public-steps { list-style:none;padding:0;margin:0 }
.site-page .public-steps li { display:grid;grid-template-columns:48px minmax(0,1fr);gap:24px;padding-bottom:28px }
.site-page .public-steps li+li { border-top:1px solid var(--color-border);padding-top:28px }
.site-page .public-steps li:last-child { padding-bottom:0 }
.site-page .public-step-number { font:700 34px/1.15 var(--font-head);color:var(--color-accent) }
.site-page .public-steps h3 { font-size:26px;margin-bottom:12px }
.site-page .public-steps p { font-size:14px;line-height:1.85;color:var(--color-muted);margin:0 }
.site-page .public-story-grid { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px 64px }
.site-page .public-story-grid > * { min-width:0 }
.site-page .public-story-grid h2 { font-size:34px }
.site-page .public-story-grid p { line-height:1.9;color:var(--color-muted) }
.site-page .public-values { padding:28px;border-left:3px solid var(--color-accent);background:var(--color-surface);border-radius:0 12px 12px 0 }
.site-page .public-values ul { list-style:none;padding:0;margin:0 }
.site-page .public-values li+li { margin-top:22px }
.site-page .public-values strong { display:block;margin-bottom:5px }
.site-page .public-plans { max-width:1060px;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px;align-items:stretch;margin-inline:auto }
.site-page .public-plans .plan-card { padding:34px;display:flex;flex-direction:column;min-width:0 }
.site-page .public-plans .plan-card > h2 { font-size:28px;margin-bottom:12px }
.site-page .public-plans .plan-card > .btn { margin-top:auto }
.site-page .public-plans .plan-card .price { font-size:64px;margin-top:8px;line-height:1.1 }
.site-page .public-plans .plan-card .price small { font-family:var(--font-body);font-size:13px }
.site-page .public-plans .plan-pick { flex:1;display:flex;flex-direction:column;gap:0 }
.site-page .public-plans .plan-pick > .btn { margin-top:auto }
.site-page .public-plans .ticks { margin-top:24px;margin-bottom:32px;font-size:14px }
.site-page .public-plans .ticks li { padding-block:5px }
.site-page .public-plan-options { display:grid;gap:10px;margin:12px 0 22px }
.site-page .public-plan-option { border:1px solid var(--color-border);border-radius:8px;padding:14px;cursor:pointer;font-size:14px;line-height:1.7;display:block }
.site-page .public-plan-option:has(input:checked) { background:var(--color-bg);border-color:var(--color-accent);box-shadow:inset 3px 0 var(--color-accent) }
.site-page .public-plan-option:focus-within { outline:2px solid var(--color-accent);outline-offset:3px }
.site-page .public-plan-option input { margin-right:8px;accent-color:var(--color-accent) }
.site-page .public-plan-option > span { display:block;color:var(--color-muted);font-size:12px;margin-top:4px }
.site-page .public-plan-option small { font-size:12px }
.site-page .public-plan-terms { max-width:90ch;margin:24px auto 0;font-size:12px;line-height:1.9;color:var(--color-muted) }
.site-page .public-compare-wrap { max-width:100%;overflow-x:auto;border:1px solid var(--color-border);border-radius:12px }
.site-page .public-compare-wrap .compare { margin:0;border:0;border-radius:0;box-shadow:none }
.site-page .public-compare-wrap .compare th { font-family:var(--font-body);font-size:13px }
.site-page .public-compare-wrap .compare td { font-size:14px }
.site-page .public-support-layout { display:grid;grid-template-columns:minmax(200px,.65fr) minmax(0,1.35fr);gap:72px;align-items:start }
.site-page .public-support-aside { position:sticky;top:32px;padding-top:8px }
.site-page .public-support-aside h2 { font-size:22px;margin-bottom:18px }
.site-page .public-support-aside nav { display:grid;gap:8px }
.site-page .public-support-aside nav a { padding:10px 0;font-size:14px;color:var(--color-muted);text-decoration:none }
.site-page .public-support-aside nav a:hover { color:var(--color-accent) }
.site-page .public-support-group { scroll-margin-top:24px }
.site-page .public-support-group + .public-support-group { margin-top:40px }
.site-page .public-support-group h2 { margin-bottom:22px;font-size:32px }
.site-page .public-contact-layout { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start }
.site-page .public-contact-layout .public-hero { margin:0 }
.site-page .public-contact-layout .public-hero h1 { font-size:clamp(38px,4.8vw,62px) }
.site-page .public-contact-help { margin-top:30px;padding-top:26px;border-top:1px solid var(--color-border) }
.site-page .public-contact-help h2 { font-size:23px }
.site-page .public-contact-help p,.site-page .public-contact-help li { color:var(--color-muted);font-size:14px;line-height:1.9 }
.site-page .public-contact-help ul { padding-left:20px }
.site-page .public-contact-form { padding:30px }
.site-page .public-contact-form textarea { min-height:180px;resize:vertical }
.site-page .public-contact-form .help { font-size:12px;line-height:1.8 }
.site-page .auth-layout { max-width:1050px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;align-items:start }
.site-page .auth-intro { padding-top:16px }
.site-page .auth-intro h1 { font-size:clamp(40px,5vw,64px);max-width:none;line-height:1.04 }
.site-page .auth-intro .page-lead { max-width:37ch;margin-top:24px }
.site-page .auth-benefits { padding:0;margin:30px 0 0;list-style:none;display:grid;gap:15px }
.site-page .auth-benefits li { display:flex;gap:12px;font-size:13px;color:var(--color-muted) }
.site-page .auth-benefits li:before { content:'✓';color:var(--color-accent) }
.site-page .auth-card { padding:34px }
.site-page .auth-card h2 { font-size:30px }
.site-page .auth-card > p,.site-page .auth-card details { color:var(--color-muted);font-size:13px;line-height:1.8 }
.site-page .auth-card .field { margin-bottom:20px }
.site-page .auth-card .help { font-size:12px;line-height:1.8 }
.site-page .auth-card details { padding-top:20px;border-top:1px solid var(--color-border) }
.site-page .auth-card summary { cursor:pointer;color:var(--color-ink);font-size:13px;font-weight:700 }
.site-page .auth-card details p { margin:14px 0 0 }
.site-page .auth-state { max-width:680px;padding-block:24px }
.site-page .auth-state-card { padding:44px;text-align:left }
.site-page .auth-state-card h1 { font-size:clamp(36px,4.5vw,52px);line-height:1.1 }
.site-page .auth-state-card p { color:var(--color-muted);overflow-wrap:anywhere }
.site-page .auth-state-card .cta-row { margin-top:26px }
.site-page .auth-state-code { font:700 64px/1 var(--font-head);color:var(--color-accent);margin-bottom:24px }
.site-page .auth-inbox-steps { padding-left:20px;margin-block:24px;color:var(--color-muted) }
.site-page .auth-inbox-steps li+li { margin-top:12px }
.site-page .auth-inbox-note { border-top:1px solid var(--color-border);padding-top:22px;margin-top:26px;font-size:13px }
@media(max-width:1023px) {
  .site-page .public-hero-grid { gap:32px }
  .site-page .public-article-layout { gap:32px;grid-template-columns:minmax(0,1fr) 245px }
  .site-page .public-how-layout,.site-page .public-support-layout { gap:40px }
  .site-page .public-contact-layout,.site-page .auth-layout { gap:40px }
  .site-page .public-plans .plan-card { padding:26px }
  .site-page .public-closing { align-items:flex-start;flex-direction:column;gap:24px }
}
@media(max-width:767px) {
  .site-page .public-section { padding-block:36px 48px }
  .site-page .public-hero { margin-bottom:34px }
  .site-page .public-hero-grid,.site-page .public-stats-hero,.site-page .public-article-layout,.site-page .public-how-layout,.site-page .public-story-grid,.site-page .public-support-layout,.site-page .public-contact-layout,.site-page .auth-layout,.site-page .public-plans { grid-template-columns:minmax(0,1fr);gap:30px }
  .site-page .public-hero h1,.site-page .public-contact-layout .public-hero h1 { font-size:clamp(36px,7vw,50px);max-width:23ch }
  .site-page .public-hero-photo { aspect-ratio:1.65;border-top-left-radius:44px }
  .site-page .public-hero .page-lead { font-size:16px;line-height:1.8 }
  .site-page .public-hero-note { font-size:12px }
  .site-page .public-filter-panel,.site-page .public-stat-panel { padding:22px }
  .site-page .public-subsection { margin-top:36px }
  .site-page .public-article-grid { gap:22px }
  .site-page .public-article-grid .blog-card--feature { display:flex }
  .site-page .public-article-grid .blog-card--feature .blog-card__img { aspect-ratio:16/9;min-height:0 }
  .site-page .public-article-grid .blog-card__body,.site-page .public-article-grid .blog-card--feature .blog-card__body { padding:22px }
  .site-page .public-article-grid .blog-card h3 { font-size:26px }
  .site-page .public-article-aside,.site-page .public-support-aside { position:static }
  .site-page .public-support-aside { border-bottom:1px solid var(--color-border);padding-bottom:22px }
  .site-page .public-support-aside nav { display:flex;flex-wrap:wrap;gap:8px 22px }
  .site-page .public-support-aside nav a { padding-block:5px }
  .site-page .public-article-body p,.site-page .public-article-body li { font-size:15px }
  .site-page .public-compare-wrap .compare th,.site-page .public-compare-wrap .compare td { padding:14px 10px;font-size:12px }
  .site-page .public-steps li { grid-template-columns:32px minmax(0,1fr);gap:18px }
  .site-page .public-steps h3 { font-size:24px }
  .site-page .public-story-grid { gap:36px }
  .site-page .public-contact-form,.site-page .auth-card { padding:24px }
  .site-page .auth-intro { padding:0 }
  .site-page .auth-intro h1 { max-width:none;font-size:44px }
  .site-page .auth-benefits { margin-top:22px;gap:10px }
  .site-page .auth-state { padding-block:0 }
  .site-page .auth-state-card { padding:28px }
  .site-page .public-empty { padding:26px }
}
@media(max-width:479px) {
  .site-page .public-article-grid { grid-template-columns:minmax(0,1fr) }
  .site-page .public-hero .cta-row { flex-direction:column;align-items:stretch }
  .site-page .public-hero .cta-row .btn { text-align:center;width:100% }
  .site-page .public-stat-panel dl { gap:16px }
  .site-page .public-plan-option { padding:12px;font-size:13px }
  .site-page .public-plans .plan-card { padding:22px }
  .site-page .public-compare-wrap .compare th,.site-page .public-compare-wrap .compare td { padding-inline:8px;font-size:11px }
  .site-page .auth-state-card { padding:24px }
  .site-page .auth-state-card .cta-row { flex-direction:column;align-items:stretch }
  .site-page .public-closing > .cta-row { width:100% }
  .site-page .public-closing .btn { width:100% }
}
