/* ====== Visitor path tokens ====== */
:root {
  --vp-font-body: 'Inter', sans-serif;
  --vp-font-display: 'Fraunces', Georgia, serif;
  --vp-gap-small: 12px;
  --vp-gap: 24px;
  --vp-gap-large: 40px;
  --vp-section-space: 64px;
  --vp-reading-width: 760px;
  --vp-header-height: 76px;
  --vp-touch-size: 48px;
  --vp-border: 1px;
  --vp-body-size: 1rem;
  --vp-small-size: .9rem;
  --vp-radius: 10px;
}

/* ====== Shared navigation ====== */
.nav-inner { gap: var(--vp-gap); }
.nav-links { gap: var(--vp-gap); }
.nav-links > a, .care-menu > summary { font-family: var(--vp-font-body); font-size: var(--vp-small-size); white-space: nowrap; }
.nav-links a.nav-cta { background: var(--terracotta-dark) !important; color: var(--cream); padding: var(--vp-gap-small) var(--vp-gap); border-radius: var(--vp-radius); }
.nav-links .nav-cta:hover { background: var(--ink); color: var(--cream); }
.care-menu { position: relative; }
.care-menu > summary { cursor: pointer; min-height: var(--vp-touch-size); display: flex; align-items: center; gap: var(--vp-gap-small); color: var(--ink); list-style: none; }
.care-menu > summary::-webkit-details-marker { display: none; }
.care-menu > summary::after { content: '+'; }
.care-menu[open] > summary::after { content: '−'; }
.care-menu-links { position: absolute; top: 100%; right: 0; min-width: 220px; padding: var(--vp-gap-small); background: var(--cream); border: var(--vp-border) solid var(--line); border-radius: var(--vp-radius); box-shadow: var(--shadow); }
.care-menu-links a { display: block; min-height: var(--vp-touch-size); padding: var(--vp-gap-small); color: var(--ink); }
.care-menu-links a:hover { background: var(--cream-2); }
body.visitor-menu-open { overflow: hidden; }
.nav-links a[aria-current='page'] { text-decoration: underline; text-underline-offset: .3em; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--terracotta-dark); outline-offset: 4px; }
.nav-toggle { z-index: 70; min-width: var(--vp-touch-size); min-height: var(--vp-touch-size); flex-direction: column; align-items: center; justify-content: center; gap: 5px; }
.skip-link { position: absolute; left: -9999px; background: var(--ink); color: var(--cream); padding: var(--vp-gap-small); z-index: 100; }
.skip-link:focus { left: var(--vp-gap-small); top: var(--vp-gap-small); }

/* ====== Homepage hierarchy ====== */
body { padding-bottom: 0; }
.hero .hero-grid { align-items: center; }
.hero h1 { max-width: 15ch; }
.hero .hero-photo { height: auto; aspect-ratio: 1; }
.hero .hero-photo img { width: 100%; height: 100%; object-fit: cover; }
.vp-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--vp-gap); margin-block: var(--vp-gap); }
.vp-actions .btn { max-width: 100%; white-space: normal; }
.vp-sponsor-link { margin-top: var(--vp-gap); }
.vp-reading { max-width: var(--vp-reading-width); margin-inline: auto; }
.vp-process { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--vp-gap-large); max-width: var(--vp-reading-width); margin-inline: auto; padding-left: var(--vp-gap); }
.vp-process h3 { font-size: 1.2rem; }
section[id], form[id], h2[id] { scroll-margin-top: calc(var(--vp-header-height) + var(--vp-gap)); }
.btn-primary { background: var(--terracotta-dark); color: var(--cream); }
.btn-primary:hover { background: var(--ink); color: var(--cream); }
.btn-secondary { color: var(--ink); }
.reveal { opacity: 1; transform: none; }

/* ====== Sponsorship signup ====== */
.hero-form .row { display: grid; grid-template-columns: 1fr; text-align: left; gap: var(--vp-gap-small); }
.hero-form input { width: 100%; min-width: 0; }
.hero-form .btn-join { background: var(--terracotta-dark); color: var(--cream); }
.pack-hero > .container > p { max-width: var(--vp-reading-width); margin-inline: auto; }
.faq-list { max-width: var(--vp-reading-width); margin-inline: auto; }
details.faq > p { margin: 0; padding: var(--vp-gap); }

/* ====== Shared footer ====== */
.nsf-cols { grid-template-columns: repeat(4, 1fr); gap: var(--vp-gap); }
.nsf-col h2 { font-family: var(--vp-font-display); color: var(--cream); font-size: var(--vp-body-size); margin-bottom: var(--vp-gap-small); letter-spacing: normal; }
.nsf-legal-line, .nsf-strip, .nsf-strip p { color: var(--sand); }
.nsf-col a, .nsf-strip a, .nsf-legal-line a { color: var(--cream); }
.nsf-col a { display: inline-block; padding-block: var(--vp-gap-small); }
.nsf-strip p a { text-decoration: underline; text-underline-offset: .2em; }

/* ====== Readable links and supporting labels ====== */
main a:not(.btn):not(.btn-primary):not(.btn-secondary):not(.guide-cta):not(.path-cta),
.eyebrow, .track-label, .track-eyebrow, .day-time, .kicker-badge,
.price-row:not(.head) > span, .price, .limits-close, .ch-num, .post-card-cat,
.post-card-arrow, .path-eyebrow, .r-link { color: var(--terracotta-dark) !important; }
main p a:not(.btn):not(.btn-primary):not(.btn-secondary) { text-decoration: underline; text-underline-offset: .2em; }
button.btn-submit, main button[type='submit'], .guide-cta, .path-cta, .cat-btn.active,
main .btn-primary { background: var(--terracotta-dark); color: var(--cream); }
.r-card.coming { opacity: 1; }
.r-card.coming p::after { color: var(--terracotta-dark); }
.network-cards > * { min-width: 0; }
.network-card input { min-width: 0; max-width: 100%; }
main .vp-reading > a:not(.btn) { text-decoration: underline; text-underline-offset: .2em; }
.money-block p strong, main a[href='/training/#guide'] > span:last-child { color: var(--terracotta-dark) !important; }
.chip.active, .cta-bar .btn-primary { background: var(--terracotta-dark); color: var(--cream); }

/* ====== Responsive navigation and sections ====== */
@media (max-width: 1100px) {
  .nav-toggle { display: flex; }
  .nav-links { position: fixed; inset: 0; width: 100%; max-width: none; height: 100dvh; padding: calc(var(--vp-header-height) + var(--vp-gap)) var(--vp-gap) var(--vp-gap-large); background: var(--cream); display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: var(--vp-gap-small); transform: translateY(-100%); visibility: hidden; overflow-y: auto; z-index: 60; transition: none; }
  .nav-links.open { transform: none; visibility: visible; }
  .nav-links > a, .care-menu > summary { font-size: var(--vp-body-size); min-height: var(--vp-touch-size); padding: var(--vp-gap-small); }
  .nav-links .nav-cta { align-self: flex-start; margin: 0; }
  .care-menu-links { position: static; min-width: 0; box-shadow: none; border: 0; background: var(--cream-2); }
}
@media (max-width: 768px) {
  .vp-process, .nsf-cols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .vp-process, .nsf-cols { grid-template-columns: 1fr; }
  .hero .hero-grid, .contact-grid { grid-template-columns: 1fr; }
  .hero .hero-visual { margin-top: var(--vp-gap); }
  .vp-actions { align-items: stretch; }
  .vp-actions .btn { width: 100%; }
  .nav-inner .brand { font-size: var(--vp-body-size); }
  .hero { padding-top: var(--vp-gap-large); }
}

/* ====== Motion preferences ====== */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .nav, .nav-toggle, .nav-toggle span, .btn { transition: none; }
}
