@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600&display=swap');

:root {
  --ink:#192d35; --peach:#fcc9b9; --cream:#fbf3e4; --green:#174b44; --copper:#975022;
  --paper:#fffaf1; --rule:#97502250; --serif:"Playfair Display",Georgia,serif;
  color:var(--ink); background:var(--paper); font-family:"DM Sans",Arial,sans-serif;
}
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { scroll-behavior:smooth; }
body { margin:0; }
a { color:inherit; }
img { display:block; max-width:100%; height:auto; }
button { font:inherit; }
:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.wrap { width:min(1160px,calc(100% - 64px)); margin-inline:auto; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:500; line-height:1.08; }
h2 { font-size:clamp(2.25rem,4.4vw,4.3rem); letter-spacing:-.035em; }
h3 { font-size:clamp(1.65rem,2.8vw,2.5rem); }
p,li { line-height:1.65; }
p+p { margin-top:1rem; }
.eyebrow { font-size:.76rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; margin-bottom:1rem; }
.masthead,footer { background:var(--green); color:var(--cream); }
.nav { min-height:100px; display:flex; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid #fff9e633; }
.nav nav { display:flex; gap:2rem; }
.nav nav a { font-size:.9rem; text-decoration:none; }
.nav nav a:hover,.text-link:hover { text-decoration:underline; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:1rem; padding:.9rem 1.35rem; min-height:48px; border:1px solid transparent; border-radius:100px; background:var(--peach); color:var(--ink); font-weight:700; text-decoration:none; }
a.button:hover { background:var(--cream); border-color:currentColor; }
.button.compact { padding:.55rem 1.1rem; min-height:42px; font-size:.85rem; }
.button:disabled { cursor:default; }
.hero { position:relative; overflow:hidden; isolation:isolate; background:var(--cream); }
.hero-grid { position:relative; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:clamp(1.25rem,3vw,3rem); padding-block:clamp(2.5rem,5vw,5rem) 0; }
.hero::after { content:""; position:absolute; z-index:-1; top:0; right:0; width:min(34%,480px); height:clamp(130px,19vw,265px); background:url("assets/botanica.svg") right 12% top 12% / auto 88% no-repeat,var(--green); border-radius:0 0 0 90% / 0 0 0 100%; pointer-events:none; }
.hero h1 { font-size:clamp(3rem,6.4vw,6.5rem); letter-spacing:-.065em; line-height:1.01; }
.hero h1 em { color:var(--copper); display:block; font-style:normal; }
.hero .eyebrow { color:var(--copper); }
.clip-definitions { position:absolute; }
.hero-grid > div { padding-bottom:clamp(2rem,5vw,5rem); }
.hero-still-life { align-self:end; width:calc(100% + max(32px,(100vw - 1160px)/2)); }
.hero-still-life img { width:100%; height:auto; clip-path:url(#infusion-shape); }
.doshas::before,.doshas::after {
  content:""; position:absolute; pointer-events:none;
  background:url("assets/botanica.svg") center / contain no-repeat;
}
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.9rem 1.35rem; }
.hero-actions .text-link { margin:0; font-size:.92rem; }
.hero-actions .button,.bonus .button { background:var(--green); color:var(--cream); }
.hero-actions .button:hover,.bonus .button:hover { background:var(--ink); }
.course-facts { display:grid; grid-template-columns:repeat(4,1fr); padding:1.4rem 0; margin-block:0; border-block:1px solid var(--rule); list-style:none; }
.course-facts li { display:flex; flex-direction:column; align-items:center; gap:.55rem; text-align:center; padding-inline:.5rem; font-size:.9rem; font-weight:600; }
.course-facts li+li { border-left:1px solid var(--rule); }
.course-facts span { display:grid; place-items:center; width:42px; height:42px; background:#f5ddce; border-radius:50%; color:var(--green); font-size:1.4rem; }
.lead { font-size:clamp(1.1rem,2.1vw,1.5rem); line-height:1.45; max-width:28ch; margin:1.75rem 0; }
.doshas { position:relative; display:grid; grid-template-columns:17% 1fr 1fr 17%; align-items:center; justify-items:center; align-self:center; max-width:500px; width:100%; margin-inline:auto; padding-block:12px; }
.doshas::before,.doshas::after { width:32%; height:47%; opacity:.88; }
.doshas::before { left:0; top:5%; background-position:right bottom; transform:rotate(-18deg); }
.doshas::after { right:0; top:0; background-position:left bottom; transform:scaleX(-1) rotate(-9deg); }
.dosha { display:grid; align-content:center; justify-items:center; text-align:center; width:100%; max-width:165px; aspect-ratio:1; border:1px solid var(--rule); border-radius:50%; color:var(--ink); }
.dosha strong { font:500 clamp(1.35rem,3vw,2.25rem)/1 var(--serif); }
.dosha small { font-size:clamp(.65rem,1.3vw,.86rem); margin-top:.45rem; }
.vata { background:#e5ece4; grid-column:2 / 4; margin-bottom:-3%; }
.pitta { background:var(--peach); grid-column:2; }
.kapha { background:var(--cream); grid-column:3; }
.wind,.flame,.drop { display:block; height:clamp(15px,3.4vw,36px); width:clamp(15px,3.4vw,36px); margin-bottom:.7rem; }
.wind { font-size:clamp(1.4rem,4vw,3.2rem); line-height:.75; }
.flame,.drop { width:clamp(12px,2.7vw,26px); border:2px solid currentColor; border-radius:5% 70% 70% 70%; transform:rotate(25deg); }
.flame::after { content:""; display:block; width:35%; height:45%; border:1px solid currentColor; border-radius:50%; margin:44% auto 0; }
.intro,.faq { display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(2rem,6vw,6rem); padding-block:clamp(3rem,7vw,7rem); }
.intro p,.illustrated-heading p { font-size:1.12rem; }
.intro h2 { margin-bottom:1.3rem; }
.intro h2::after { content:""; display:block; width:74px; height:1px; margin-top:1.25rem; background:#b88046; }
.program { background:#f4e8d6; padding-block:clamp(3rem,7vw,6rem); }
.program .section-top::after { content:""; order:1; width:clamp(60px,10vw,125px); height:94px; margin-left:auto; flex:none; background:url("assets/botanica.svg") center / contain no-repeat; }
.program .carousel-controls { order:2; }
.section-top { display:flex; align-items:end; justify-content:space-between; gap:1rem; }
.carousel-controls { display:flex; gap:.5rem; }
.carousel-controls button { border:1px solid currentColor; background:transparent; color:var(--ink); width:44px; height:44px; border-radius:50%; cursor:pointer; font-size:1.2rem; }
.carousel-controls button:disabled { opacity:.4; cursor:default; }
.modules { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 32px)/3); gap:16px; padding:0 0 1rem; margin:2rem 0 0; overflow:auto; scroll-snap-type:x mandatory; list-style:none; scrollbar-color:var(--ink) transparent; }
.modules li { scroll-snap-align:start; display:flex; flex-direction:column; justify-content:space-between; min-height:195px; padding:1.4rem; border:1px solid var(--rule); border-radius:1.1rem; background:var(--paper); }
.modules li:nth-child(3n+2) { background:#f5ddce; }
.modules li:nth-child(3n+3) { background:var(--green); color:var(--cream); }
.modules span { font-size:.8rem; font-weight:700; margin-bottom:1.4rem; }
.bonus { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-top:1.8rem; padding-top:1.4rem; border-top:1px solid var(--rule); }
.plans { padding-block:clamp(3rem,7vw,7rem); }
.illustrated-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(60px,22%); align-items:center; gap:1rem; }
.illustrated-heading::after,.faq-heading::after { content:""; display:block; background:url("assets/botanica.svg") center / contain no-repeat; }
.illustrated-heading::after { height:clamp(100px,15vw,190px); }
.illustrated-heading p { margin-top:1rem; }
.faq-heading::after { width:min(70%,230px); height:185px; margin-top:1.4rem; }
.plan-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:2rem; }
.plan { display:flex; flex-direction:column; align-items:flex-start; padding:clamp(1.3rem,4vw,3rem); border-radius:1.1rem; background:var(--cream); border:1px solid var(--rule); }
.plan.vip { background:var(--green); color:var(--cream); }
.plan ul { padding-left:1.2rem; margin:1.4rem 0 2rem; }
.plan li+li { margin-top:.4rem; }
.plan .button { margin-top:auto; }
.plan small { margin-top:.6rem; }
.bio { background:#f5ddce; padding-block:clamp(3rem,7vw,7rem); }
.bio-grid { display:grid; grid-template-columns:.85fr 1fr; align-items:center; gap:clamp(2rem,6vw,6rem); }
.bio img { border-radius:48% 48% 1rem 1rem; }
.bio h2 { margin-bottom:1.4rem; }
.text-link { display:inline-block; font-weight:700; margin-top:1.4rem; text-underline-offset:.25em; }
details { border-bottom:1px solid var(--rule); }
details:first-child { border-top:1px solid var(--rule); }
summary { display:flex; justify-content:space-between; gap:1rem; cursor:pointer; list-style:none; font-weight:700; padding:1.2rem 0; }
summary::-webkit-details-marker { display:none; }
summary::after { content:"+"; }
details[open] summary::after { content:"−"; }
details p { padding:0 1.7rem 1.25rem 0; }
.footer { display:flex; justify-content:space-between; gap:1rem; padding-block:2rem; font-size:.88rem; }
@media (max-width:800px) {
  .nav nav { display:none; }
  .intro,.bio-grid,.faq { grid-template-columns:1fr; }
  .hero-grid { grid-template-columns:minmax(0,1fr); }
  .hero::after { width:19%; height:66px; background-size:auto 70%; }
  .hero-grid > div { padding-bottom:0; }
  .hero-still-life { width:calc(100% + 64px); margin-inline:-32px; }
  .faq-heading { display:grid; grid-template-columns:1fr 84px; align-items:center; gap:1rem; }
  .faq-heading::after { width:100%; height:90px; margin:0; }
  .doshas { max-width:380px; }
  .bio figure { max-width:450px; }
  .modules { grid-auto-columns:calc((100% - 16px)/2); }
}
@media (max-width:540px) {
  .wrap { width:calc(100% - 36px); }
  .nav { min-height:84px; }
  .nav img { width:140px; }
  .hero-grid { gap:1.25rem; }
  .hero-still-life { width:calc(100% + 36px); margin-inline:-18px; }
  .course-facts { grid-template-columns:1fr 1fr; row-gap:1rem; }
  .course-facts li:nth-child(3) { border-left:0; }
  .program .section-top::after { display:none; }
  .plan-grid { grid-template-columns:1fr; }
  .modules { grid-auto-columns:85%; }
  .bonus { align-items:flex-start; flex-direction:column; }
  .footer { flex-wrap:wrap; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
