/* Root Wellness Lab: shared styles for the coaching, About, guide and legal pages,
   plus the sitewide footer. Loaded after tokens.css and styles.css on every page. */

/* Header: featured coaching link */
.site-nav__link--feature{display:inline-flex;align-items:center;height:28px;padding:0 12px;margin:-4px 0;border-radius:var(--radius-full);background:var(--accent-subtle);color:var(--accent);font-weight:500}
.site-nav__link--feature:hover{color:var(--accent-hover);background:color-mix(in srgb,var(--accent-subtle) 70%,var(--accent) 12%)}
.site-nav__link[aria-current="page"]{color:var(--fg-1)}
@media (max-width:600px){.site-header .btn--primary{white-space:nowrap}}

/* Sitewide footer */
.site-footer--full .site-footer__inner{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:28px 40px;padding:40px 24px 28px;font-size:13px;line-height:1.55;color:var(--fg-2)}
.foot__brand{display:grid;gap:10px;align-content:start}
.foot__name{font:600 15px/1.2 var(--font-sans);color:var(--fg-1);letter-spacing:-0.01em}
.foot__mission{max-width:360px;text-wrap:pretty}
.foot__h{font:600 12px/1 var(--font-sans);letter-spacing:.02em;color:var(--fg-1);margin:0 0 10px}
.foot__list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.foot__list a{color:var(--fg-2);text-decoration:underline;text-decoration-color:var(--border-2);text-underline-offset:3px}
.foot__list a:hover{color:var(--accent)}
.foot__fine{grid-column:1/-1;display:grid;gap:8px;padding-top:20px;border-top:1px solid var(--border-1);color:var(--fg-2)}
.foot__fine strong{color:var(--fg-1);font-weight:600}
@media (max-width:760px){.site-footer--full .site-footer__inner{grid-template-columns:minmax(0,1fr);padding:32px 16px 24px}}

/* Generic page building blocks */
.pg-hero{padding:80px 0 40px;display:grid;gap:22px;max-width:860px}
.pg-eyebrow{display:flex;align-items:center;gap:8px;font:500 13px/1.3 var(--font-sans);color:var(--fg-2)}
.pg-title{font:600 clamp(36px,5.4vw,60px)/1.04 var(--font-sans);letter-spacing:-0.045em;text-wrap:balance}
.pg-title--sm{font-size:clamp(32px,4.4vw,48px)}
.pg-lede{font-size:18px;line-height:1.55;color:var(--fg-2);max-width:640px;text-wrap:pretty}
.pg-note{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--fg-2)}
.pg-note::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}
.pg-sec{padding:48px 0;display:grid;gap:22px;scroll-margin-top:72px;border-top:1px solid var(--border-1)}
.pg-sec--plain{border-top:0}
.pg-h2{font:600 clamp(24px,3.2vw,32px)/1.12 var(--font-sans);letter-spacing:-0.035em;text-wrap:balance;max-width:760px}
.pg-h3{font:600 17px/1.3 var(--font-sans);letter-spacing:-0.01em}
.pg-intro{font-size:16px;line-height:1.6;color:var(--fg-2);max-width:680px;text-wrap:pretty}
.prose{display:grid;gap:14px;align-content:start;max-width:700px;font-size:16px;line-height:1.65;color:var(--fg-2)}
.prose p,.prose li{text-wrap:pretty}
.prose strong{color:var(--fg-1);font-weight:600}
.prose a,.pg-link{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.prose ul,.prose ol{margin:0;padding-left:20px;display:grid;gap:8px}
.prose ul.ticks{padding-left:0;gap:10px}
.prose h2{font:600 22px/1.2 var(--font-sans);letter-spacing:-0.03em;color:var(--fg-1);margin-top:18px}
.prose h3{font:600 17px/1.3 var(--font-sans);color:var(--fg-1);margin-top:8px}
.cta-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.cta-row .btn--lg{height:44px;padding:0 18px}
.sub-cta{font-size:14px;color:var(--fg-2)}
.sub-cta a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{display:grid;gap:10px;align-content:start;padding:22px;border-radius:var(--radius-xl);box-shadow:var(--ring-1);background:var(--bg-page)}
.card--tint{box-shadow:none;background-color:var(--mesh-base);background-image:var(--gradient-mesh)}
[data-theme="dark"] .card--tint{background-color:#22322A;background-image:none}
.card__kicker{font:500 12px/1 var(--font-sans);color:var(--accent)}
.card__quote{font:600 19px/1.3 var(--font-sans);letter-spacing:-0.02em;text-wrap:balance}
.card p{font-size:15px;line-height:1.55;color:var(--fg-2);text-wrap:pretty}
.card small{font-size:13px;color:var(--fg-3);line-height:1.5}
@media (max-width:860px){.cards,.cards--2{grid-template-columns:minmax(0,1fr)}}

/* Check and cross lists */
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:10px;max-width:720px}
.ticks li{position:relative;padding-left:30px;font-size:16px;line-height:1.55;color:var(--fg-2);text-wrap:pretty}
.ticks li strong{color:var(--fg-1);font-weight:600}
.ticks li::before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;border-radius:50%;background:var(--accent-subtle) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%233F7D52' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/20px no-repeat}
.ticks--x li::before{background:var(--warning-subtle) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6.5 6.5l7 7M13.5 6.5l-7 7' fill='none' stroke='%23B8401F' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/20px no-repeat}
.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 40px}
@media (max-width:860px){.split{grid-template-columns:minmax(0,1fr)}}

/* Week table */
.weeks{display:grid;gap:0;border-radius:var(--radius-xl);box-shadow:var(--ring-1);overflow:hidden}
.week{display:grid;grid-template-columns:92px minmax(0,220px) minmax(0,1fr);gap:16px;padding:16px 20px;border-top:1px solid var(--border-1);align-items:start}
.week:first-child{border-top:0}
.week__n{font:500 13px/1.4 var(--font-sans);color:var(--fg-3)}
.week__focus{font:600 16px/1.35 var(--font-sans);letter-spacing:-0.01em}
.week__do{font-size:15px;line-height:1.55;color:var(--fg-2);text-wrap:pretty}
@media (max-width:760px){.week{grid-template-columns:minmax(0,1fr);gap:4px}}

/* Price block */
.price{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;padding:32px;border-radius:var(--radius-xl);background-color:var(--mesh-base);background-image:var(--gradient-mesh)}
[data-theme="dark"] .price{background-color:#2B4335;background-image:radial-gradient(at 12% 20%,#3B5E45 0,transparent 55%),radial-gradient(at 70% 92%,#6A4334 0,transparent 60%)}
.price__amt{font:600 clamp(44px,6vw,64px)/1 var(--font-sans);letter-spacing:-0.05em}
.price__label{font:500 13px/1.3 var(--font-sans);color:var(--fg-2)}
.price__body{display:grid;gap:12px;align-content:start;font-size:15px;line-height:1.55;color:var(--fg-2)}
.price__body strong{color:var(--fg-1)}
[data-theme="dark"] .price__label,[data-theme="dark"] .price__body{color:#D9E2D5}
[data-theme="dark"] .price__body strong,[data-theme="dark"] .price__amt{color:#FFFFFF}
@media (max-width:760px){.price{grid-template-columns:minmax(0,1fr);padding:24px}}

/* Callouts */
.callout{display:grid;gap:8px;padding:18px 20px;border-radius:var(--radius-lg);background:var(--bg-hover);font-size:15px;line-height:1.55;color:var(--fg-2);max-width:760px}
.callout strong{color:var(--fg-1)}
.callout--warn{background:var(--warning-subtle);color:#5A4410}
.callout--warn strong{color:#3D2E08}
[data-theme="dark"] .callout--warn{background:#3D3519;color:#F1DFAE}
[data-theme="dark"] .callout--warn strong{color:#FFF4D6}
.callout--empty{border:1px dashed var(--border-2);background:transparent}

/* Scope lines */
.scope{display:grid;gap:12px;max-width:780px;font-size:14px;line-height:1.6;color:var(--fg-2)}
.scope p strong{color:var(--fg-1)}

/* Meet JT */
.meet{display:grid;grid-template-columns:140px minmax(0,1fr);gap:24px;align-items:start}
.meet__img{width:140px;height:auto;aspect-ratio:1;border-radius:var(--radius-xl);object-fit:cover;box-shadow:var(--ring-1);object-position:50% 22%}
.meet__body{display:grid;gap:12px;max-width:620px;font-size:16px;line-height:1.6;color:var(--fg-2)}
.meet__cred{font:600 15px/1.4 var(--font-sans);color:var(--fg-1)}
@media (max-width:600px){.meet{grid-template-columns:minmax(0,1fr)}.meet__img{width:120px}}

/* Breadcrumb + byline */
.crumbs{display:flex;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--fg-3);padding-top:24px}
.crumbs a{color:var(--fg-2)}
.byline{font-size:13px;color:var(--fg-3)}
.byline a{color:var(--fg-2);text-decoration:underline;text-underline-offset:3px}

/* Disclosure + answer boxes (articles) */
.disclose{padding:14px 18px;border-radius:var(--radius-lg);box-shadow:inset 0 0 0 1px var(--border-2);font-size:14px;line-height:1.55;color:var(--fg-2);max-width:760px}
.answer{padding:20px 22px;border-radius:var(--radius-xl);background:var(--accent-subtle);font-size:17px;line-height:1.55;color:var(--fg-1);max-width:760px;text-wrap:pretty}
.answer__label{display:block;font:600 12px/1 var(--font-sans);color:var(--accent);margin-bottom:8px}
.sources{display:grid;gap:8px;font-size:14px;line-height:1.55;color:var(--fg-2);max-width:780px;padding-left:20px;margin:0}
.sources a{color:var(--accent);word-break:break-word}

/* Lead magnet */
.guide{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:40px;align-items:start}
.guide__cover{aspect-ratio:3/4;border-radius:var(--radius-xl);padding:28px;display:grid;align-content:space-between;background-color:var(--mesh-base);background-image:var(--gradient-mesh);box-shadow:0 24px 48px -24px rgba(29,29,31,.35)}
[data-theme="dark"] .guide__cover{background-color:#2B4335;background-image:radial-gradient(at 12% 20%,#3B5E45 0,transparent 55%),radial-gradient(at 70% 92%,#6A4334 0,transparent 60%)}
.guide__cover-title{font:600 clamp(26px,3.2vw,34px)/1.08 var(--font-sans);letter-spacing:-0.04em;color:#1D1D1F}
.guide__cover-sub{font-size:14px;color:#3A3A37}
[data-theme="dark"] .guide__cover-title{color:#FFFFFF}
[data-theme="dark"] .guide__cover-sub{color:#D9E2D5}
.guide-form{display:grid;gap:10px;max-width:460px}
.guide-form .newsletter-form{max-width:none}
@media (max-width:860px){.guide{grid-template-columns:minmax(0,1fr)}.guide__cover{max-width:320px}}
/* Guide preview: real pages from the PDF, fanned to the left so their content shows */
.guide__pages{position:relative;margin:0;padding:8px 0 0 22%;display:grid;justify-items:end}
.guide__page{grid-area:1/1;width:82%;height:auto;aspect-ratio:760/984;border-radius:10px;background:#fff;box-shadow:0 18px 40px -18px rgba(29,29,31,.35),0 0 0 1px rgba(29,29,31,.06)}
.guide__page--1{position:relative;z-index:3}
.guide__page--2{z-index:2;transform:translate(-17%,3%) rotate(-4deg)}
.guide__page--3{z-index:1;transform:translate(-30%,6%) rotate(-8deg)}
.guide__pages-cap{grid-area:2/1;justify-self:center;margin-top:44px;font-size:13px;color:var(--fg-2);text-align:center}
@media (max-width:860px){.guide__pages{max-width:360px;margin:8px auto 0;padding-left:20%}}
@media (prefers-reduced-motion:no-preference){.guide__page{transition:transform .3s ease}.guide__pages:hover .guide__page--2{transform:translate(-21%,2%) rotate(-5deg)}.guide__pages:hover .guide__page--3{transform:translate(-37%,4%) rotate(-10deg)}}


/* Legal pages */
.legal .prose{max-width:760px}
.legal .prose h2{scroll-margin-top:72px}
.legal-toc{display:flex;flex-wrap:wrap;gap:8px}
.legal-toc a{display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:var(--radius-full);box-shadow:var(--ring-1);font-size:13px;color:var(--fg-2)}
.legal-toc a:hover{background:var(--bg-hover);color:var(--fg-1)}
.draft-flag{display:inline-block;padding:2px 8px;border-radius:6px;background:var(--warning-subtle);color:#5A4410;font:500 12px/1.4 var(--font-sans)}

/* Booking: featured plan card and state gate (used on booking.html) */
.plan--feature{grid-column:1/-1}
.plan--feature .plan__head{background-image:linear-gradient(100deg,color-mix(in srgb,var(--sage-bg) 100%,transparent),color-mix(in srgb,var(--sea-bg) 80%,transparent))}
.plan__flag{display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:var(--radius-full);background:var(--bg-inverse);color:var(--fg-inverse);font:500 12px/1 var(--font-sans);letter-spacing:0;white-space:nowrap;margin-left:8px;vertical-align:middle}
.plan__line a{color:var(--c);text-decoration:underline;text-underline-offset:2px}
.gate-msg{display:grid;gap:8px;padding:16px 18px;border-radius:var(--radius-lg);font-size:15px;line-height:1.55}
.gate-msg[hidden]{display:none}
.gate-msg--ok{background:var(--accent-subtle);color:var(--fg-1)}
.gate-msg--wait{background:var(--warning-subtle);color:#3D2E08}
.gate-msg--no{background:var(--tint-5);color:#3D1F18}
[data-theme="dark"] .gate-msg--wait,[data-theme="dark"] .gate-msg--no{color:#FFF4D6}
.gate-msg a{color:inherit;text-decoration:underline;text-underline-offset:3px;font-weight:500}
.intake [data-needs-eligible][hidden]{display:none}
.redflag{display:grid;gap:6px;padding:14px 16px;border-radius:var(--radius-lg);background:var(--tint-5);color:#3D1F18;font-size:14px;line-height:1.5}
.redflag[hidden]{display:none}
[data-theme="dark"] .redflag{color:#FFE7DF}
.consent--health{padding:14px 16px;border-radius:var(--radius-lg);background:var(--bg-hover)}
.consent--health a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.bk-glp1{margin:0 0 16px}

/* WCAG AA contrast fixes (decision 32, 2026-10-19). Checked with axe-core on every page, light and dark.
   Text on the pale sage/sea/clay tints uses a darker shade of the same hue. */
html:not([data-theme="dark"]) .booking{--accent:#336844;--sage:#336844;--sea:#246660;--clay:#984629}
html:not([data-theme="dark"]) .site-nav__link--feature,html:not([data-theme="dark"]) .pg-link{color:#336844}
.status-badge--tested{color:#2F6640}
.tick__num{color:color-mix(in srgb,var(--fg-inverse) 62%,transparent)}
[data-theme="dark"] .gate-msg--wait{background:#3D3519}
.mini a{text-decoration:underline;text-underline-offset:3px}

/* Header call button: short label on small phones so nothing scrolls sideways at 320px (independent review 2026-10-19) */
.site-header .theme-toggle{flex:none}
.site-header .btn--cta{white-space:nowrap}
.cta-short{display:none}
@media (max-width:420px){.cta-long{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.cta-short{display:inline}}

/* California Bus. & Prof. Code § 2068 notice, displayed prominently (2026-10-20) */
.legal-notice{margin:12px 0 20px;padding:20px 22px;border:2px solid var(--fg-1);border-radius:var(--radius-lg)}
.legal-notice__title{font:700 28px/1 var(--font-sans);letter-spacing:.06em;margin-bottom:10px}
.legal-notice p{font-size:17px;line-height:1.5;color:var(--fg-1)}
.legal-notice .legal-notice__src{font-size:13px;color:var(--fg-2);margin-top:8px}

/* Free-guide card (shared): the secondary offer, repeated at decision points */
.v5-guide{display:flex;align-items:center;gap:14px;max-width:440px;margin:18px 0 0;padding:10px 16px 10px 10px;border-radius:18px;background:var(--sage-bg,#DCE8CF);box-shadow:var(--ring-1);color:var(--fg-1);text-decoration:none;transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.v5-guide:hover{transform:translateY(-2px);box-shadow:var(--ring-1),0 14px 28px -18px rgba(29,29,31,.35)}
.v5-guide:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.v5-guide__thumb{flex:none;width:52px;height:auto;aspect-ratio:760/984;border-radius:6px;background:#fff;box-shadow:0 6px 14px -8px rgba(29,29,31,.45),0 0 0 1px rgba(29,29,31,.08);transform:rotate(-3deg)}
.v5-guide__text{display:grid;gap:2px;min-width:0}
.v5-guide__kicker{font-size:12px;letter-spacing:.02em;color:var(--fg-2)}
.v5-guide__title{font:600 15px/1.3 var(--font-sans);color:var(--fg-1);text-wrap:pretty}
.v5-guide__go{font-size:14px;font-weight:500;color:var(--accent)}
.v5-guide--hero{margin-top:16px}
.v5-guide--center{margin:22px auto 0}
[data-theme="dark"] .v5-guide{background:var(--sage-bg,#25382B)}
[data-theme="dark"] .v5-guide__go{color:var(--accent,#9EC5A3)}
