:root {
  --ivory: #faf8f5;
  --oat: #ece3d8;
  --sand: #d8c5b1;
  --plum: #5c3b5e;
  --plum-dark: #38243b;
  --sage: #a8b8a0;
  --sage-dark: #72816c;
  --gold: #c9a646;
  --ink: #2f292d;
  --muted: #6c6267;
  --white: #fffdfb;
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --radius: 2px;
  --shadow: 0 28px 70px rgba(49, 33, 48, 0.11);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--ivory); font-family: var(--sans); line-height: 1.65; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
a { color: inherit; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; background: var(--plum); color: white; padding: .75rem 1rem; }
.skip-link:focus { top: 1rem; }

.site-header { height: 86px; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(1.25rem, 5vw, 5rem); position: absolute; z-index: 10; width: 100%; color: var(--plum-dark); }
.brand { display: flex; gap: .7rem; align-items: center; text-decoration: none; line-height: 1.05; }
.brand-logo { width: 154px; height: auto; max-height: 48px; object-fit: contain; display: block; mix-blend-mode: multiply; }
.brand-mark { width: 40px; height: 40px; border: 1px solid currentColor; border-radius: 50%; display: grid; place-items: center; font: 600 1.35rem var(--serif); }
.brand strong { display: block; font: 600 1rem var(--serif); letter-spacing: .02em; }
.brand small { display: block; font-size: .62rem; opacity: .7; margin-top: .25rem; }
nav { display: flex; align-items: center; gap: 1.6rem; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }
nav a { text-decoration: none; }
.header-shop-link { border: 1px solid var(--plum); padding: .68rem .9rem; }
.text-button { color: white; border: 0; background: var(--plum); padding: .75rem 1rem; cursor: pointer; text-transform: uppercase; letter-spacing: .06em; font-size: .72rem; }

.hero { min-height: 100vh; display: grid; grid-template-columns: 1.08fr .92fr; grid-template-rows: 1fr auto; background: linear-gradient(115deg, #f8f3ee 0%, #eee3d8 100%); overflow: hidden; }
.hero-copy { align-self: center; padding: 9rem 6vw 5rem 9vw; max-width: 800px; }
.eyebrow { text-transform: uppercase; letter-spacing: .15em; font-weight: 600; font-size: .7rem; margin: 0 0 1rem; }
h1, h2, h3, h4, p { margin-top: 0; }
h1 { font: 500 clamp(4.5rem, 9vw, 9rem)/.73 var(--serif); letter-spacing: -.055em; color: var(--plum-dark); margin: 1.3rem 0 2rem; }
h1 em { font-weight: 500; color: var(--plum); }
.hero-lead { max-width: 630px; font-size: clamp(1rem, 1.3vw, 1.25rem); color: var(--muted); }
.hero-actions { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: 2.2rem; }
.button { border: 1px solid transparent; padding: .95rem 1.3rem; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; font-weight: 600; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; transition: transform .2s, background .2s, color .2s; border-radius: var(--radius); }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--plum); color: white; }
.button-primary:hover { background: var(--plum-dark); }
.button-secondary { border-color: var(--plum); color: var(--plum); background: transparent; }
.button-disabled { cursor: default; opacity: .58; }
.button-disabled:hover { transform: none; }
.microcopy { font-size: .73rem; color: var(--muted); margin-top: 1rem; }
.hero-art { position: relative; min-height: 650px; background: var(--sage); overflow: hidden; display: grid; align-items: end; padding: 6rem 5vw; isolation: isolate; }
.hero-art::before { content: ""; position: absolute; inset: 0; opacity: .35; background-image: radial-gradient(#fbf9f3 1px, transparent 1px); background-size: 18px 18px; z-index: -2; }
.sun { width: 45vw; height: 45vw; max-width: 670px; max-height: 670px; min-width: 430px; min-height: 430px; position: absolute; top: 10%; right: -12%; border-radius: 50%; background: rgba(250,248,245,.57); z-index: -1; }
.arch { position: absolute; border: 1px solid rgba(56,36,59,.38); border-bottom: 0; border-radius: 180px 180px 0 0; }
.arch-one { width: 310px; height: 470px; right: 18%; bottom: 0; }
.arch-two { width: 210px; height: 350px; right: 23%; bottom: 0; }
.hero-art p { font: 500 clamp(1.6rem, 2.5vw, 2.7rem)/1.05 var(--serif); max-width: 440px; color: var(--plum-dark); }
.hero-art p span { font-size: 4em; line-height: .7; display: block; opacity: .24; }
.trust-strip { grid-column: 1/-1; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid rgba(56,36,59,.18); padding: 1rem 6vw; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; }
.trust-strip p { margin: 0; padding: .5rem 1.2rem; border-right: 1px solid rgba(56,36,59,.14); }
.trust-strip p:last-child { border: 0; }

.assessment-section { padding: 8rem clamp(1.25rem, 7vw, 8rem); background: var(--ivory); }
.section-heading { display: grid; grid-template-columns: .65fr 1.1fr 1fr; align-items: end; gap: 3rem; max-width: 1400px; margin: 0 auto 3.5rem; }
.section-heading .eyebrow { color: var(--plum); }
.section-heading h2 { font: 500 clamp(3.2rem, 5.5vw, 6rem)/.9 var(--serif); letter-spacing: -.035em; color: var(--plum-dark); margin: 0; }
.section-heading > p:last-child { color: var(--muted); margin: 0; max-width: 500px; }
.assessment-shell { max-width: 1200px; margin: auto; background: var(--white); box-shadow: var(--shadow); border-top: 5px solid var(--plum); min-height: 560px; }
.assessment-intro { display: grid; grid-template-columns: 1.15fr .85fr; gap: 4rem; padding: clamp(2rem, 5vw, 5rem); }
.assessment-intro h3, .results h3 { font: 500 clamp(2.5rem, 4.5vw, 4.5rem)/.95 var(--serif); color: var(--plum-dark); margin: 1rem 0 1.5rem; }
.assessment-intro > div > p { color: var(--muted); max-width: 650px; }
.step-label { font-size: .7rem; text-transform: uppercase; letter-spacing: .13em; color: var(--plum); font-weight: 600; }
.assessment-notes { border-left: 1px solid var(--oat); padding-left: 2rem; }
.assessment-notes div { display: flex; gap: 1rem; border-bottom: 1px solid var(--oat); padding: 1rem 0; }
.assessment-notes span { font: 600 1.5rem var(--serif); color: var(--gold); }
.assessment-notes p { font-size: .9rem; margin: 0; }
.assessment-intro .button { justify-self: start; }
.assessment-form { padding: clamp(2rem, 5vw, 5rem); }
.progress-wrap { margin-bottom: 3rem; }
.progress-copy { display: flex; justify-content: space-between; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); font-size: .68rem; }
.progress-track { margin-top: .75rem; background: var(--oat); height: 3px; }
.progress-track span { display: block; height: 100%; background: var(--plum); transition: width .3s; }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
legend { font: 500 clamp(2rem, 3.8vw, 3.75rem)/1 var(--serif); max-width: 850px; color: var(--plum-dark); }
.question-context { color: var(--muted); margin: 1rem 0 2rem; }
.answer-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: .75rem; }
.answer-option { position: relative; }
.answer-option input { position: absolute; opacity: 0; pointer-events: none; }
.answer-option label { display: block; border: 1px solid var(--oat); padding: 1.25rem; min-height: 98px; cursor: pointer; transition: .2s; background: var(--ivory); }
.answer-option label span { display: block; font-size: .67rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-bottom: .5rem; }
.answer-option input:focus-visible + label { outline: 3px solid var(--gold); outline-offset: 2px; }
.answer-option input:checked + label { background: var(--plum); color: white; border-color: var(--plum); }
.answer-option input:checked + label span { color: var(--oat); }
.form-nav { display: flex; justify-content: space-between; margin-top: 3rem; }
.answer-prompt { color: #8b3b4a; min-height: 1.5em; margin: 1rem 0 0; font-size: .8rem; }
.results { padding: clamp(2rem, 5vw, 5rem); }
.results-header { max-width: 820px; }
.results-header > p:last-child { color: var(--muted); font-size: 1.05rem; }
.priority-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 3rem 0; }
.priority-card { border: 1px solid var(--oat); padding: 2rem; background: var(--ivory); position: relative; }
.priority-card:first-child { background: var(--plum); color: white; border-color: var(--plum); }
.priority-number { font: 600 2rem var(--serif); color: var(--gold); }
.priority-card h4 { font: 500 2rem var(--serif); margin: .5rem 0; }
.priority-card p { font-size: .9rem; margin-bottom: 0; }
.score-bar { height: 4px; background: rgba(168,184,160,.35); margin-top: 1.5rem; }
.score-bar span { display: block; height: 100%; background: var(--sage-dark); }
.priority-card:first-child .score-bar span { background: var(--gold); }
.results-next { display: grid; grid-template-columns: 1fr .65fr; gap: 3rem; padding-top: 2.5rem; border-top: 1px solid var(--oat); }
.results-next h4 { font: 500 2.6rem var(--serif); margin-bottom: 1rem; }
.results-next ol { padding-left: 1.25rem; }
.results-next li { padding: .35rem 0 .35rem .4rem; }
.result-actions { display: flex; gap: .75rem; align-items: start; justify-content: end; flex-wrap: wrap; }
.result-caveat { font-size: .72rem; color: var(--muted); border-top: 1px solid var(--oat); margin: 2.5rem 0 0; padding-top: 1.5rem; }

.reset-section { background: var(--plum-dark); color: var(--ivory); padding: 8rem clamp(1.25rem, 7vw, 8rem) 2rem; }
.section-heading-light h2, .section-heading-light .eyebrow { color: var(--ivory); }
.section-heading-light > p:last-child { color: var(--oat); }
.foundation-tabs { display: grid; grid-template-columns: repeat(4,1fr); max-width: 1400px; margin: 0 auto; border: 1px solid rgba(250,248,245,.23); }
.foundation-tabs button { border: 0; border-right: 1px solid rgba(250,248,245,.23); padding: 1.2rem; background: transparent; color: var(--oat); cursor: pointer; text-transform: uppercase; letter-spacing: .1em; }
.foundation-tabs button:last-child { border-right: 0; }
.foundation-tabs button[aria-selected="true"] { background: var(--ivory); color: var(--plum-dark); }
.foundation-panels { max-width: 1400px; margin: 0 auto; background: var(--ivory); color: var(--ink); }
.foundation-panels article { padding: clamp(2rem, 5vw, 5rem); }
.panel-intro { display: grid; grid-template-columns: .25fr 1fr; gap: 2rem; max-width: 980px; }
.panel-intro > span { font: 500 clamp(5rem, 10vw, 9rem)/.7 var(--serif); color: var(--oat); }
.panel-intro h3, .recipes-heading h3, .conversion-card h3, .brand-links h3 { font: 500 clamp(2.8rem, 4.5vw, 4.8rem)/.93 var(--serif); color: var(--plum-dark); margin-bottom: 1rem; }
.panel-intro > div > p:last-child { color: var(--muted); max-width: 700px; }
.action-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--sand); margin-top: 3.5rem; border: 1px solid var(--sand); }
.action-cards > div { padding: 1.6rem; background: var(--white); }
.action-cards small { color: var(--plum); text-transform: uppercase; letter-spacing: .1em; }
.action-cards h4 { font: 500 1.5rem var(--serif); margin: .6rem 0; }
.action-cards p { color: var(--muted); font-size: .88rem; }
.recipes-block { max-width: 1400px; margin: 8rem auto; }
.recipes-heading { display: grid; grid-template-columns: .45fr 1fr .8fr; gap: 2rem; align-items: end; margin-bottom: 2.5rem; }
.recipes-heading h3 { color: var(--ivory); margin: 0; }
.recipes-heading > p:last-child { color: var(--oat); }
.recipe-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.recipe-card { background: var(--ivory); color: var(--ink); }
.recipe-visual { min-height: 230px; aspect-ratio: 4/3; position: relative; overflow: hidden; background: var(--oat); }
.recipe-visual img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.recipe-card:hover .recipe-visual img { transform: scale(1.025); }
.recipe-visual span { position: absolute; top: 1rem; left: 1rem; z-index: 1; display: grid; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: 50%; background: rgba(250,248,245,.92); box-shadow: 0 8px 20px rgba(42,30,40,.14); font: 600 1.25rem var(--serif); color: var(--plum-dark); }
.recipe-copy { padding: 1.8rem; }
.recipe-copy h4 { font: 500 1.75rem/1 var(--serif); color: var(--plum-dark); }
.recipe-copy > p:not(.eyebrow) { color: var(--muted); font-size: .87rem; }
details { border-top: 1px solid var(--oat); padding-top: .8rem; }
summary { cursor: pointer; color: var(--plum); font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; }
details p { margin: .8rem 0 0; font-size: .83rem; color: var(--muted); }
.product-offer { max-width: 1400px; margin: 8rem auto; padding: clamp(2rem, 5vw, 5rem); background: var(--ivory); color: var(--ink); display: grid; grid-template-columns: minmax(240px,.56fr) 1.44fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.product-cover-wrap { text-align: center; }
.product-cover { width: 100%; max-width: 420px; height: auto; display: block; margin: auto; box-shadow: 0 26px 55px rgba(42,30,40,.2); border: 1px solid var(--oat); }
.product-cover-wrap > span { display: block; margin-top: 1rem; color: var(--muted); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.product-copy h3 { font: 500 clamp(3rem, 5vw, 5.5rem)/.88 var(--serif); color: var(--plum-dark); margin-bottom: 1.4rem; }
.product-lead { color: var(--muted); max-width: 760px; font-size: 1rem; }
.included-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 2rem; margin: 2.2rem 0; border-top: 1px solid var(--oat); }
.included-grid p { display: grid; grid-template-columns: 2.3rem 1fr; gap: .6rem; border-bottom: 1px solid var(--oat); padding: .8rem 0; margin: 0; font-size: .82rem; }
.included-grid span { color: var(--gold); font: 600 1.1rem var(--serif); }
.format-options { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 2rem; }
.format-card { border: 1px solid var(--oat); padding: 1.25rem; background: var(--white); }
.format-card > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.format-card .eyebrow { margin: 0; }
.format-card strong { color: var(--plum-dark); font: 600 1.65rem var(--serif); white-space: nowrap; }
.format-card > p { min-height: 2.8em; color: var(--muted); font-size: .82rem; }
.format-card .button { width: 100%; text-align: center; }
.checkout-note { display: block; margin-top: .85rem; color: var(--muted); }
.licence-note { color: var(--muted); font-size: .7rem; margin: 1.4rem 0 0; }
.conversion-card { max-width: 1400px; margin: 8rem auto; background: var(--sage); color: var(--plum-dark); padding: clamp(2rem, 5vw, 5rem); display: grid; grid-template-columns: 1.25fr .75fr; gap: 4rem; align-items: center; }
.conversion-card > div:first-child > p:not(.eyebrow) { max-width: 700px; }
.inline-price { display: inline-block; margin-left: .4rem; color: var(--plum); font: 600 1.2rem var(--sans); letter-spacing: .04em; white-space: nowrap; }
.conversion-card ul { columns: 3; padding: 0; list-style-position: inside; font-size: .8rem; margin: 2rem 0; }
.conversion-card small { display: block; margin-top: .75rem; opacity: .72; }
.practitioner-card { background: var(--ivory); padding: 1rem 1rem 1.7rem; }
.portrait-image { display: block; width: 100%; height: 300px; object-fit: cover; object-position: center 24%; }
.portrait-placeholder { min-height: 300px; background: linear-gradient(145deg, var(--oat), #dfd4cc); display: grid; place-content: center; text-align: center; border: 1px dashed var(--plum); color: var(--plum); padding: 2rem; }
.portrait-placeholder span { font: 500 1.45rem var(--serif); }
.portrait-placeholder small { margin-top: .5rem; }
.practitioner-card h4 { font: 500 2rem var(--serif); margin: 1rem 0 .2rem; }
.practitioner-card p { font-size: .8rem; }
.practitioner-card a { color: var(--plum); font-weight: 600; font-size: .8rem; }
.brand-links { max-width: 1400px; margin: 0 auto 6rem; border-top: 1px solid rgba(250,248,245,.2); border-bottom: 1px solid rgba(250,248,245,.2); padding: 3rem 0; display: grid; grid-template-columns: .45fr 1fr; gap: 4rem; align-items: center; }
.book-placeholder { aspect-ratio: 4/5.7; max-width: 300px; border: 1px dashed var(--sage); color: var(--sage); display: grid; place-content: center; text-align: center; padding: 2rem; }
.book-placeholder span { font: 500 1.5rem var(--serif); }
.book-placeholder small { font-size: .7rem; margin-top: .5rem; }
.book-journal-block { max-width: 1400px; margin: 8rem auto 6rem; border-top: 1px solid rgba(250,248,245,.2); border-bottom: 1px solid rgba(250,248,245,.2); padding: 3rem 0; }
.book-journal-heading { display: grid; grid-template-columns: .5fr 1fr .8fr; gap: 2rem; align-items: end; margin-bottom: 2.5rem; }
.book-journal-heading h3 { font: 500 clamp(2.8rem, 4.5vw, 4.8rem)/.93 var(--serif); color: var(--ivory); margin: 0; }
.book-journal-heading > p:last-child { color: var(--oat); margin: 0; }
.book-journal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.book-journal-card { display: grid; grid-template-columns: .6fr 1fr; gap: 1.5rem; padding: 1.25rem; background: var(--ivory); color: var(--ink); align-items: center; }
.companion-cover { display: block; width: 100%; aspect-ratio: 4/5.7; object-fit: cover; object-position: center; box-shadow: 0 16px 32px rgba(42,30,40,.16); border: 1px solid var(--oat); }
.cover-placeholder { aspect-ratio: 4/5.7; display: grid; place-content: center; text-align: center; padding: 1.2rem; border: 1px dashed var(--plum); color: var(--plum-dark); }
.cover-placeholder span { font: 600 clamp(1.25rem, 2.2vw, 2rem)/.9 var(--serif); letter-spacing: .03em; }
.cover-placeholder small { display: block; margin-top: 1rem; font-size: .62rem; line-height: 1.35; color: var(--muted); }
.book-cover { background: linear-gradient(145deg, #eaded3, #f9f4ef); }
.journal-cover { background: linear-gradient(145deg, #d5dfd0, #f4efe7); }
.book-journal-card h4 { font: 500 1.8rem/1 var(--serif); color: var(--plum-dark); margin-bottom: .8rem; }
.book-journal-card > div:last-child > p:not(.eyebrow) { color: var(--muted); font-size: .84rem; }
.book-journal-card .button { margin-top: .5rem; }
.purchase-note { display: block; margin-top: .65rem; color: var(--muted); font-size: .68rem; line-height: 1.4; }
.brand-links h3 { color: var(--ivory); }
.link-row { display: flex; flex-wrap: wrap; gap: .7rem 1.4rem; }
.link-row a { color: var(--sage); text-underline-offset: 4px; }
.placeholder-note { font-size: .72rem; color: var(--oat); margin-top: 1.2rem; }
footer { max-width: 1400px; margin: auto; display: grid; grid-template-columns: .6fr 1.4fr .5fr; gap: 2rem; align-items: end; color: var(--oat); font-size: .72rem; }
footer strong { color: var(--ivory); font: 500 1.4rem var(--serif); }
footer p { margin-bottom: 0; }
.footer-disclaimer { line-height: 1.5; }

[hidden] { display: none !important; }
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .65s ease, transform .65s ease; }
.reveal.visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .reveal { opacity: 1; transform: none; transition: none; } .button { transition: none; } }

@media (max-width: 900px) {
  .site-header nav a { display: none; }
  .hero { grid-template-columns: 1fr; }
  .hero-copy { padding: 8rem 1.5rem 4rem; }
  .hero-art { min-height: 430px; }
  .trust-strip { grid-template-columns: 1fr 1fr; padding: 1rem; }
  .section-heading, .recipes-heading, .book-journal-heading { grid-template-columns: 1fr; gap: 1rem; }
  .assessment-intro, .results-next, .product-offer, .conversion-card, .brand-links { grid-template-columns: 1fr; }
  .book-journal-grid, .book-journal-card { grid-template-columns: 1fr; }
  .answer-grid, .priority-grid, .recipe-grid { grid-template-columns: 1fr 1fr; }
  .panel-intro { grid-template-columns: 1fr; }
  .panel-intro > span { font-size: 5rem; }
  .conversion-card ul { columns: 1; }
  footer { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .site-header { height: 72px; padding: 0 1rem; }
  .brand small { display: none; }
  nav { gap: .5rem; }
  .text-button { padding: .65rem .7rem; }
  h1 { font-size: clamp(4rem, 22vw, 6.4rem); }
  .assessment-section, .reset-section { padding-left: 1rem; padding-right: 1rem; }
  .assessment-shell { min-height: 0; }
  .assessment-intro { gap: 1.5rem; }
  .assessment-notes { border: 0; border-top: 1px solid var(--oat); padding: 1rem 0 0; }
  .answer-grid, .priority-grid, .recipe-grid, .action-cards { grid-template-columns: 1fr; }
  .answer-option label { min-height: 0; padding: 1rem; }
  .foundation-tabs { grid-template-columns: 1fr 1fr; }
  .foundation-tabs button { border-bottom: 1px solid rgba(250,248,245,.23); }
  .foundation-panels article { padding: 2rem 1.25rem; }
  .recipes-block, .product-offer, .conversion-card, .book-journal-block { margin: 5rem auto; }
  .included-grid { grid-template-columns: 1fr; }
  .format-options { grid-template-columns: 1fr; }
  .recipe-visual { min-height: 170px; }
  .result-actions { justify-content: stretch; }
  .result-actions .button { width: 100%; }
  .book-placeholder { margin: auto; }
  .book-journal-card { padding: 1rem; }
}
