:root{--cream:#F6E7C8;--paper:#FBF3E2;--mustard:#E0A526;--orange:#D9622B;--peach:#F0B98A;--red:#B8321F;--brown:#5A3420;--choc:#2E1A10;--sand:#F0D9B5}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--choc);font:17px/1.55 'Figtree',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.09;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
a{color:var(--brown)}a:hover{color:var(--choc)}
a:focus-visible,summary:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:8px}
.wrap{max-width:1200px;margin:0 auto;padding-inline:24px}
.logo{font-family:'Shrikhand','Fraunces',Georgia,serif;color:var(--red);text-decoration:none;line-height:1;text-transform:capitalize;letter-spacing:.01em}
.display{font-family:'Fraunces',Georgia,serif;font-variation-settings:'SOFT' 100,'WONK' 1;font-weight:800;margin:0;text-wrap:balance;letter-spacing:-.015em}
.eyebrow{font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase}
.btn{display:inline-block;text-decoration:none;font-weight:700;border-radius:999px;padding:16px 30px;font-size:18px;line-height:1.2}
.btn-dark{background:var(--choc);color:var(--cream)}.btn-dark:hover{color:var(--cream);background:#452818}
.btn-gold{background:var(--mustard);color:var(--choc);box-shadow:0 5px 0 var(--brown);transition:transform .15s,box-shadow .15s}
.btn-gold:hover{transform:translateY(2px);box-shadow:0 3px 0 var(--brown);color:var(--choc)}
.btn-gold:active{transform:translateY(5px);box-shadow:0 0 0 var(--brown)}
header .wrap{padding-block:24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
nav{display:flex;align-items:center;gap:28px;flex-wrap:wrap;font-weight:600;font-size:15px}
nav a{text-decoration:none}
@media (max-width:640px){nav .hide-sm{display:none}}

/* hero */
.hero{padding-block:32px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:40px 56px;align-items:end}
.hero-copy{display:flex;flex-direction:column;gap:26px;padding-bottom:72px}
.hero h1{font-size:clamp(48px,7.4vw,100px);line-height:.95}
.hero h1 em{font-style:normal;color:var(--orange)}
.hero p{margin:0;max-width:36ch;font-size:20px;color:var(--brown)}
.sun{position:relative;width:100%;max-width:540px;aspect-ratio:1/.86;justify-self:center;overflow:hidden}
.sun .disc{position:absolute;left:0;right:0;top:0;aspect-ratio:1;border-radius:50%;background:linear-gradient(180deg,var(--mustard) 8%,var(--orange) 52%,var(--red) 92%);animation:rise 1.6s cubic-bezier(.16,.8,.24,1) both}
.sun .bar{position:absolute;left:0;right:0;background:var(--cream)}
@keyframes rise{from{transform:translateY(34%)}to{transform:none}}

.stripes div{height:18px}

/* treatments */
.treatments{background:var(--brown);color:var(--cream)}
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}
.goal{text-decoration:none;color:var(--choc);border-radius:28px;padding:28px;display:flex;flex-direction:column;gap:12px;min-height:280px;transition:transform .2s cubic-bezier(.2,.7,.2,1)}
.goal:hover{transform:translateY(-6px);color:var(--choc)}
.goal .cat{font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.goal .t{font-family:'Fraunces',Georgia,serif;font-variation-settings:'SOFT' 100,'WONK' 1;font-weight:800;font-size:34px;line-height:1.02}
.goal .b{font-size:16px;flex-grow:1}
.goal .go{font-weight:700;display:flex;align-items:center;gap:8px}
.goal .go svg{transition:transform .2s}
.goal:hover .go svg{transform:translateX(5px)}

/* how */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;counter-reset:s}
.step{display:flex;flex-direction:column;gap:10px;padding-top:18px;border-top:4px solid var(--choc)}
.step .n{font-family:'Shrikhand',serif;font-size:48px;line-height:1;color:var(--orange)}
.step b{font-size:21px}
.step span{color:var(--brown)}

/* membership */
.member{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px;align-items:start}
.included{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:3px solid var(--choc)}
.included li{display:flex;gap:14px;align-items:baseline;padding:16px 0;border-bottom:3px solid var(--choc);font-size:19px;font-weight:600}
.included li::before{content:"";flex:none;width:14px;height:14px;border-radius:50%;background:var(--orange);transform:translateY(1px)}
.included li:nth-child(2)::before{background:var(--mustard)}
.included li:nth-child(3)::before{background:var(--red)}
.included li:nth-child(4)::before{background:var(--brown)}

/* faq */
.faq{display:grid;gap:0;border-top:3px solid var(--choc);max-width:820px}
.faq details{border-bottom:3px solid var(--choc)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:20px 0;font-family:'Fraunces',Georgia,serif;font-variation-settings:'SOFT' 100;font-weight:700;font-size:22px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:'Figtree',sans-serif;font-weight:700;font-size:28px;line-height:1;color:var(--orange);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{margin:0 0 22px;max-width:62ch;color:var(--brown)}

section h2{font-size:clamp(36px,5.4vw,64px);line-height:1}
.foot-links{display:flex;gap:22px;flex-wrap:wrap;font-size:14px;font-weight:600}
.foot-links a{color:var(--sand);text-decoration:none}.foot-links a:hover{color:var(--mustard)}

/* legal pages */
.legal{max-width:760px;padding-block:48px 96px}
.legal h1{font-size:clamp(38px,6vw,64px);line-height:1.02;margin-bottom:8px}
.legal h2{font-family:'Fraunces',Georgia,serif;font-weight:800;font-size:26px;margin:40px 0 8px}
.legal p,.legal li{color:var(--brown)}
.legal .meta{font-size:14px;color:var(--brown);opacity:.85}
.callout{background:var(--paper);border:3px solid var(--choc);border-radius:20px;padding:18px 22px;margin-top:24px}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sun .disc{animation:none}.goal,.btn-gold,.goal .go svg,.faq summary::after{transition:none}}
