/* Generated by tools/sync-design.py. Do not edit this copy. */
@font-face { font-family: 'VitaWay Sans'; src: url('public/fonts/vitaway-sans-400.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'VitaWay Sans'; src: url('public/fonts/vitaway-sans-600.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'VitaWay Sans'; src: url('public/fonts/vitaway-sans-700.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
/* VitaWay foundations. Edit here, then run python3 tools/sync-design.py. */
:root {
  --vw-canvas: #f8faf8;
  --vw-surface: #ffffff;
  --vw-ink: #092a30;
  --vw-muted: #4a6065;
  --vw-action: #256b3a;
  --vw-action-hover: #1b522c;
  --vw-on-action: #ffffff;
  --vw-highlight: #c7ed5a;
  --vw-soft: #edf3e8;
  --vw-story: #a84332;
  --vw-line: #d5dfd8;
  --vw-control-line: #7c9185;
  --vw-focus: #256b3a;
  --vw-radius-control: 6px;
  --vw-radius-card: 12px;
  --vw-shadow: 0 8px 24px rgb(9 42 48 / 6%);
  --vw-font: 'VitaWay Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ink: var(--vw-ink);
  --ink-soft: var(--vw-muted);
  --paper: var(--vw-canvas);
  --white: var(--vw-surface);
  --lime: var(--vw-highlight);
  --lime-soft: var(--vw-soft);
  --coral: var(--vw-story);
  --coral-strong: var(--vw-story);
  --line: var(--vw-line);
  --sans: var(--vw-font);
  --display: var(--vw-font);
}
body { font-family: var(--vw-font); text-rendering: optimizeLegibility; }
button, input, textarea, select { font-family: inherit; }
button, a, input, textarea, select, summary { -webkit-tap-highlight-color: transparent; }
:is(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--vw-focus);
  outline-offset: 4px;
  box-shadow: 0 0 0 6px var(--vw-surface);
}
:is(button, input, select, textarea):disabled { cursor: not-allowed; }
::selection { background: var(--vw-highlight); color: #092a30; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
@media (prefers-reduced-transparency: reduce) {
  .site-header, .hero__top, .mobile-contact, .auth-card, .nav-panel, .profile-panel {
    background: var(--vw-surface) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}
@media (prefers-contrast: more) {
  :root { --vw-line: #7c9185; --vw-control-line: #4a6065; }
}
@media (forced-colors: active) {
  :is(button, .button, .btn, .primary, .ghost, input, select, textarea) { border: 1px solid ButtonText; }
  :is(a, button, input, textarea, select, summary, [tabindex]):focus-visible { outline-color: Highlight; }
}

/* Shared public website/profile components; existing responsive layouts stay in charge. */
.site-header { background: rgb(255 255 255 / 97%); border-bottom-color: var(--vw-line); }
.site-header__inner { min-height: 78px; gap: 24px; }
.main-nav { font-size: .9375rem; gap: 24px; }
.main-nav a { min-height: 44px; display: inline-flex; align-items: center; }
.main-nav .nav-cta, .button, .btn, .contact-choice__option {
  min-height: 48px;
  border-radius: var(--vw-radius-control);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
  transition: background-color 160ms ease, border-color 160ms ease;
}
.nav-cta, .button--primary, .contact .button--light, .btn--primary, .contact-choice__option:first-child {
  background: var(--vw-action);
  color: var(--vw-on-action);
  border-color: var(--vw-action);
}
.nav-cta:hover, .button--primary:hover, .contact .button--light:hover, .btn--primary:hover, .contact-choice__option:first-child:hover {
  background: var(--vw-action-hover);
  color: var(--vw-on-action);
  transform: none;
  box-shadow: none;
}
.button:hover { transform: none; box-shadow: none; }
.btn--ghost, .contact-choice__option { border-color: var(--vw-control-line); }
.menu-toggle { width: 44px; height: 44px; border-radius: var(--vw-radius-control); }
.contact__panel, .concept-card, .shop-card, .contact-card, .result-quote,
.voice-card, .story-card, .social-card, .contact-modal, .qr-dialog {
  border-radius: var(--vw-radius-card);
}
.contact-card, .shop-card { box-shadow: none; }
.coach-card-page .hero__kicker, .coach-card-page .section-kicker,
.coach-card-page .contact-card__eyebrow, .coach-card-page .shop-card__eyebrow {
  text-transform: none; letter-spacing: .015em; font-size: .875rem;
}
.coach-card-page .hero { gap: clamp(2rem, 5vw, 4rem); }
.coach-card-page .hero__image, .coach-card-page .hero__initials { border-radius: 6px; }
.coach-card-page .shop-card { border: 0; border-top: 1px solid var(--line); border-radius: 0; padding-inline: 0; background: transparent; }
@media (min-width: 981px) {
  .coach-card-page .hero { grid-template-columns: minmax(0, 1fr) minmax(0, 300px); }
  .coach-card-page .hero__media { max-width: 300px; }
}
.coach-companion:not(.coach-companion--quiet), .coach-contact-identity {
  border-radius: var(--vw-radius-card);
}
.coach-companion__message, .coach-companion__options-panel, .coach-companion__welcome-dismiss {
  border-radius: var(--vw-radius-control);
}
.hero__image, .hero__initials { border-radius: var(--vw-radius-card); }
/* A coach's identity is visible immediately, including during the page entrance. */
.profile-motion-ready .hero__media.reveal,
.profile-motion-ready .hero__media.reveal.is-visible {
  opacity: 1; transform: none; transition: none;
}
.contact-card__avatar, .contact-card__avatar img, .social-card__logo { border-radius: var(--vw-radius-control); }
.profile-share-fallback input, .qr-copy-fallback input {
  border-radius: var(--vw-radius-control); border-color: var(--vw-control-line); font-size: 1rem;
}
.contact-list a { min-height: 48px; }
.topline { font-size: .8125rem; }
.topline__inner { flex-wrap: wrap; padding-block: 5px; }
.hero__kicker, .section-kicker, .eyebrow { letter-spacing: .1em; }
@media (max-width: 1100px) and (min-width: 761px) {
  .main-nav { gap: 12px; font-size: .875rem; }
  .main-nav .nav-cta { padding-inline: 12px; font-size: .875rem; }
  .brand img { width: 128px; height: 40px; }
}
@media (max-width: 760px) {
  .site-header__inner { min-height: 70px; gap: 12px; }
  .main-nav { gap: 0; }
  .main-nav a { justify-content: flex-start; }
  .main-nav .nav-cta { justify-content: center; }
  .topline__inner { white-space: normal; gap: 4px 8px; font-size: .75rem; }
  .topline__inner > span:nth-of-type(2) { flex: 1 1 200px; }
  .topline__inner a { margin-left: 14px; }
  .hero__trust { line-height: 1.6; }
}
@media print {
  .contact-card, .shop-card { box-shadow: none; }
}

/* VitaWay's public voice: clear typography, people and generous photography. */
.site-header { backdrop-filter: none; background: #fff; }
.main-nav a:not(.nav-cta) { font-weight: 400; }
.hero__grid h1, .page-hero h1 {
  letter-spacing: -.045em;
  line-height: 1.03;
  font-weight: 600;
}
.hero__grid h1 em, .page-hero h1 em { color: inherit; font-weight: 400; }
.content-intro h2 em, .content-copy h2 em, .section-heading h2 em,
.section-intro h2 em { color: inherit; font-weight: 400; }
.eyebrow, .section-kicker {
  font-size: .875rem; font-weight: 600; text-transform: none; letter-spacing: .015em;
}
.hero__grid .eyebrow { display: block; margin-bottom: 1.5rem; }
.hero__grid h1 { font-size: clamp(3rem, 5.5vw, 5.25rem); margin-bottom: 1.75rem; }
.hero__lead { font-size: 1.125rem; max-width: 43ch; line-height: 1.65; }
.hero__notes { margin-top: 2rem; padding-top: 1.25rem; font-size: .875rem; }
.hero__caption {
  max-width: 100%; padding: .875rem 0 0; margin-top: .875rem;
  background: transparent; border: 0; border-top: 1px solid var(--line);
  font-size: .875rem; font-weight: 400; color: var(--ink-soft);
}
.hero__caption .caption-line { display: none; }
.media-frame--hero, .page-hero__media { border: 0; }
.page-hero__meta { font-size: 1rem; line-height: 1.6; }
.proof-strip { background: var(--paper); color: var(--ink); border-block: 1px solid var(--line); }
.proof-strip strong { color: var(--ink); font-size: clamp(2.5rem, 3.5vw, 3.5rem); font-weight: 600; }
.proof-strip span, .proof-strip p { color: var(--ink-soft); }
.proof-strip p b { color: var(--ink); }
.proof-strip p, .proof-strip__grid > div { border-color: var(--line); }
.story-grid .story-card {
  min-height: 0; padding: 1.5rem 0; background: transparent;
  color: #fff; border: 0; border-top: 1px solid #6f8584; border-radius: 0;
}
.story-grid .story-card .story-card__label { color: #c7ed5a; text-transform: none; letter-spacing: 0; }
.story-grid .story-card h3 { font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 400; }
.story-grid .story-card p { color: #d5e3da; }
.contact__panel { background: var(--ink); color: #fff; border: 0; padding: clamp(2rem, 5vw, 4.5rem); }
.contact__panel .eyebrow, .contact__copy p, .contact__action p { color: #d5e3da; }
.contact__panel h2 em { color: #fff; font-weight: 400; }
.contact .button--light { background: #fff; color: var(--ink); }
.contact .button--light:hover { background: var(--lime-soft); color: var(--ink); }
.site-footer__top > p { font-weight: 400; }
@media (min-width: 981px) {
  .hero { padding-block: 4rem 5rem; }
  .hero__grid { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(2rem, 5vw, 5rem); }
  .media-frame--hero { height: clamp(440px, 39vw, 560px); min-height: 0; }
  .hero__grid .hero__visual { align-self: start; }
  .proof-strip__grid { min-height: 144px; }
}
@media (max-width: 980px) and (min-width: 761px) {
  .hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, .85fr); gap: 2rem; }
  .hero__grid h1 { font-size: clamp(2.75rem, 5.7vw, 3.5rem); }
  .hero__actions { align-items: flex-start; gap: 1rem; }
}
@media (max-width: 760px) {
  .hero { padding-block: 2.5rem 3rem; }
  .hero__grid h1 { font-size: clamp(2.6rem, 10.5vw, 4rem); }
  .hero__lead { font-size: 1.0625rem; }
  .hero__grid { gap: 2rem; }
  .media-frame--hero { min-height: 0; height: auto; aspect-ratio: 1 / 1.1; }
  .proof-strip__grid > div, .proof-strip p { border-color: var(--line); }
  .contact__panel { padding: 2rem 1.5rem; }
}
