:root{
  --sage:#DCE3D3;
  --sage-soft:#EAEFE4;
  --cream:#F7F4EC;
  --forest:#26352B;
  --forest-2:#2F4236;
  --moss:#3E4F43;
  --muted:#5B6B5F;
  --peach:#F2B8A0;
  --peach-deep:#E89F84;
  --line:#C9D2BF;
  --radius:22px;
  --display:'Josefin Sans', system-ui, sans-serif;
  --body:'Figtree', system-ui, sans-serif;
}

:root,[data-palette="green"]{
  --cream:#F7F4EC;--bg-rgb:247,244,236;--forest:#26352B;--ink-rgb:38,53,43;--forest-2:#2F4236;--moss:#3E4F43;--muted:#5B6B5F;--line:#C9D2BF;
  --sage:#DCE3D3;--sage-soft:#EAEFE4;--peach:#F2B8A0;--peach-deep:#E89F84;
  --p1:#DCE3D3;--p2:#F3EAD2;--p3:#F4E2D6;
  --on-dark:#DCE3D3;--on-dark-2:#C9D4C3;--on-dark-3:#E4E9DD;--shade:26,38,30}
/* palettes: clay (default), plum, ochre */
[data-palette="clay"]{
  --cream:#FAF7F2;--bg-rgb:250,247,242;--forest:#211C19;--ink-rgb:33,28,25;--forest-2:#2B2320;--moss:#4A403A;--muted:#776B63;--line:#E2D8CE;
  --sage:#EFE3D8;--sage-soft:#F5EEE6;--peach:#D98A6C;--peach-deep:#B5532E;
  --p1:#F0DFD3;--p2:#E7E3DA;--p3:#F3E8CC;
  --on-dark:#EADFD6;--on-dark-2:#CDBFB5;--on-dark-3:#F2E9E1;--shade:33,24,20}
[data-palette="plum"]{
  --cream:#FAF7F6;--bg-rgb:250,247,246;--forest:#1F1A1E;--ink-rgb:31,26,30;--forest-2:#2E1F2A;--moss:#4D4049;--muted:#7A6C75;--line:#E3D8DE;
  --sage:#EEE2E8;--sage-soft:#F5EEF1;--peach:#C98BAA;--peach-deep:#7A2E55;
  --p1:#EEDDE6;--p2:#E5E2EC;--p3:#F2E6D8;
  --on-dark:#EBDDE5;--on-dark-2:#CDBCC6;--on-dark-3:#F3EAEF;--shade:36,22,32}
[data-palette="ochre"]{
  --cream:#FBF8EF;--bg-rgb:251,248,239;--forest:#1D1C1A;--ink-rgb:29,28,26;--forest-2:#262420;--moss:#47443D;--muted:#77736A;--line:#E3DDCB;
  --sage:#F1E6C8;--sage-soft:#F6F0DE;--peach:#E0AE45;--peach-deep:#A8720E;
  --p1:#F1E3BC;--p2:#E4E2DA;--p3:#EBDAD0;
  --on-dark:#ECE6D6;--on-dark-2:#CFC8B6;--on-dark-3:#F4EFE2;--shade:30,28,24}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--cream);color:var(--forest);font-family:var(--body);font-size:18px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
.hero-text,.hero-photo,.who .side,.who ul,.split .copy,.split .img,.about .photo,.about .copy,.online .img,.online .copy{min-width:0}
a{color:var(--forest)}
h1,h2,h3{font-family:var(--display);font-weight:300;margin:0;line-height:1.1;letter-spacing:-0.005em}
h2{font-size:clamp(34px,4.6vw,54px)}
h3{font-size:26px;line-height:1.2}
p{margin:0}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
section[id],div[id]{scroll-margin-top:96px}

/* header */
.topbar{background:rgba(var(--bg-rgb),.94);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid rgba(var(--ink-rgb),.08);z-index:50}
@media (min-width:900px){.topbar{position:sticky;top:0}}
.topbar .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding-top:16px;padding-bottom:16px}
.logo{text-decoration:none;display:flex;flex-direction:column;line-height:1.05}
.logo b{font-family:var(--display);font-weight:400;letter-spacing:-0.01em;font-size:27px;color:var(--forest)}
.logo span{font-size:14px;color:var(--muted)}
nav.main{display:flex;flex-wrap:wrap;align-items:center;gap:10px 26px;font-size:16px}
nav.main a{text-decoration:none}
nav.main a:not(.pill):hover{text-decoration:underline;text-underline-offset:4px}
.pills{display:flex;gap:10px;flex-wrap:wrap}

/* buttons */
.pill{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 22px;border-radius:999px;text-decoration:none;font-weight:500;font-size:16px;border:1.5px solid transparent;cursor:pointer;font-family:var(--body);transition:background .15s, transform .15s}
.pill:hover{transform:translateY(-1px)}
.pill-peach{background:var(--peach);color:var(--forest)}
.pill-peach:hover{background:var(--peach-deep)}
.pill-line{border-color:var(--forest);color:var(--forest);background:transparent}
.pill-line:hover{background:rgba(var(--ink-rgb),.06)}
.pill-light{border-color:var(--cream);color:var(--cream)}
.pill-light:hover{background:rgba(var(--bg-rgb),.12)}
.pill-lg{min-height:54px;padding:14px 28px;font-size:18px}

/* hero */
.hero{background:var(--sage)}
.hero .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:48px;padding-top:72px;padding-bottom:88px}
.hero-text{flex:1 1 440px;display:flex;flex-direction:column;gap:26px}
.hero h1{font-size:clamp(40px,6vw,84px);line-height:1.02;display:flex;flex-direction:column}
.hero h1 span{white-space:nowrap}
.hero .lede{font-size:21px;color:var(--moss);max-width:540px}
.hero-photo{flex:1 1 300px;max-width:440px;margin:0 auto;width:100%}
@media (max-width:640px){.hero .wrap{padding-top:40px;padding-bottom:56px;gap:36px}.hero-photo{max-width:320px}.btns .pill-lg{flex:1 1 auto}}
.arch{border-radius:999px 999px 28px 28px;overflow:hidden;background:var(--line)}
.arch img{width:100%;aspect-ratio:4/5;object-fit:cover}
.btns{display:flex;flex-wrap:wrap;gap:12px}

/* bands */
.band{padding:104px 0}
.band-cream{background:var(--cream)}
.band-sage{background:var(--sage-soft)}
.band-green{background:var(--forest-2);color:var(--cream)}
.band-green p{color:var(--on-dark)}
.intro{display:flex;flex-direction:column;gap:14px;max-width:760px;margin-bottom:48px}
.intro p{font-size:19px;color:var(--muted)}
.band-green .intro p{color:var(--on-dark-2)}

.photo-band{height:clamp(240px,42vw,460px);background-size:cover;background-position:center}

/* who */
.who{display:flex;flex-wrap:wrap;gap:56px;align-items:flex-start}
.who .side{flex:1 1 320px;display:flex;flex-direction:column;gap:24px}
.who .side .round{border-radius:var(--radius);overflow:hidden}
.who .side .round img{aspect-ratio:4/3;object-fit:cover;width:100%}
.who ul{flex:2 1 520px;list-style:none;margin:0;padding:0}
.who li{display:flex;gap:16px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line);font-size:20px}
.who li::before{content:"";flex:0 0 12px;height:12px;margin-top:11px;border-radius:12px 0 12px 0;background:var(--peach-deep)}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.card{background:var(--cream);border-radius:var(--radius);padding:30px;display:flex;flex-direction:column;gap:10px}
.card h3{font-size:25px}
.card p{color:var(--moss)}

/* sessions */
.price{font-family:var(--display);font-size:42px;line-height:1}
.price small{font-family:var(--body);font-size:16px;color:var(--muted)}
.session-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px;display:flex;flex-direction:column;gap:14px}
.session-card p{color:var(--moss)}
.subhead{font-size:30px;margin:0 0 24px}
.online{display:flex;flex-wrap:wrap;gap:36px;align-items:stretch;margin-top:72px}
.online .img{flex:1 1 380px;border-radius:var(--radius);overflow:hidden;min-height:280px;background-size:cover;background-position:center}
.online .copy{flex:1 1 420px;display:flex;flex-direction:column;gap:16px}
.online ul{margin:0;padding-left:20px;color:var(--moss)}

/* how it works */
.split{display:flex;flex-wrap:wrap;gap:56px;align-items:center}
.split .copy{flex:3 1 480px;display:flex;flex-direction:column;gap:18px}
.split .img{flex:2 1 300px;border-radius:999px 999px 28px 28px;overflow:hidden;max-width:420px}
.split .img img{aspect-ratio:3/4;object-fit:cover;width:100%}
.quad{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:22px;margin-top:12px}
.quad div{border-top:2px solid var(--peach);padding-top:16px}
.quad h3{font-size:23px;color:var(--cream)}
.quad p{font-size:16px}

.agreements{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px 44px}
.agreements p{color:var(--moss)}
.agreements b{color:var(--forest);font-weight:600}

/* about */
.about{display:flex;flex-wrap:wrap;gap:56px;align-items:center}
.about .photo{flex:1 1 320px;max-width:440px}
.about .copy{flex:1 1 460px;display:flex;flex-direction:column;gap:18px}
.about .copy p{color:var(--moss)}

/* faq */
.faq-group{margin-top:44px}
.faq-group h3{font-size:24px;margin-bottom:8px;color:var(--moss)}
details{border-bottom:1px solid var(--line)}
details:first-of-type{border-top:1px solid var(--line)}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px 0;min-height:44px;font-size:20px;font-weight:500}
summary::-webkit-details-marker{display:none}
summary .plus{flex:0 0 32px;height:32px;border-radius:50%;background:var(--sage);display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1;transition:transform .2s}
details[open] summary .plus{transform:rotate(45deg)}
summary:focus-visible{outline:2px solid var(--forest);outline-offset:4px;border-radius:6px}
details .answer{padding:0 0 24px;max-width:820px;color:var(--moss);display:flex;flex-direction:column;gap:12px}

/* closing */
.closing{position:relative;color:var(--cream);background-size:cover;background-position:30% center;min-height:min(92vh,820px);display:flex;align-items:center}
.closing::before{content:"";position:absolute;inset:0;background:linear-gradient(270deg,rgba(var(--shade),.88) 0%,rgba(var(--shade),.7) 45%,rgba(var(--shade),.15) 100%)}
@media (max-width:760px){.closing::before{background:rgba(var(--shade),.72)}}
.closing .wrap{position:relative;width:100%;padding-top:120px;padding-bottom:120px;display:flex;flex-direction:column;align-items:flex-end;gap:22px;max-width:1180px}
.closing .wrap>*{max-width:600px;width:100%}
@media (max-width:760px){.closing .wrap{align-items:flex-start}}
.closing blockquote{margin:0;font-family:var(--display);font-size:clamp(30px,3.4vw,46px);line-height:1.15}
.closing p{max-width:620px;color:var(--on-dark-3);font-size:19px}

footer{background:var(--forest);color:var(--on-dark-2);font-size:15px}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;padding-top:36px;padding-bottom:40px}
footer a{color:var(--on-dark-3)}

/* inner pages */
.page-head{background:var(--sage);padding:64px 0 56px}
.page-head h1{font-size:clamp(44px,6vw,72px)}
.page-head p{margin-top:14px;font-size:19px;color:var(--moss);max-width:680px}
.book{cursor:pointer}
.card:target,.session-card:target{outline:3px solid var(--peach-deep);outline-offset:4px}
.note{color:var(--muted);font-size:16px}

/* better */
.better{background:var(--p3)}
.better .wrap{display:flex;flex-wrap:wrap;gap:48px;align-items:center}
.better .big{flex:1 1 420px;min-width:0}
.better .big h2{font-size:clamp(44px,6vw,80px);line-height:1.02}
.better .copy{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:16px;color:var(--moss)}
.better .chips{display:flex;flex-wrap:wrap;gap:8px}
.better .chips span{font-size:15px;background:rgba(255,255,255,.6);border-radius:999px;padding:7px 14px;color:var(--forest)}

.six .card{background:#fff;position:relative;padding-top:56px}
.six .num{position:absolute;top:22px;left:30px;font-weight:600;font-size:15px;width:28px;height:28px;border-radius:50%;background:var(--peach);display:flex;align-items:center;justify-content:center}

/* Josefin headings: keep small headings a touch heavier for legibility */
h3{font-weight:400}
.logo b{font-weight:400}
.price{font-weight:300}

/* outcomes on cream */
.card-soft{background:var(--sage-soft)}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.pillar{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;background:var(--cream);color:var(--forest);border-radius:var(--radius);overflow:hidden;transition:transform .18s, box-shadow .18s}
.pillar:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.22)}
.pillar:focus-visible{outline:3px solid var(--peach);outline-offset:4px}
.pimg img{width:100%;aspect-ratio:16/10;object-fit:cover}
.pbody{display:flex;flex-direction:column;gap:12px;padding:26px 28px 28px;flex:1}
.pname{font-size:15px;font-weight:600;color:var(--muted)}
.pkey{font-family:var(--display);font-weight:300;font-size:32px;line-height:1.12}
.ptext{color:var(--moss);font-size:17px}
.pmore{margin-top:auto;padding-top:6px;font-weight:600;font-size:16px;display:flex;align-items:center;gap:10px}
.pmore span{width:28px;height:28px;border-radius:50%;background:var(--peach);display:inline-flex;align-items:center;justify-content:center;font-size:20px;line-height:1}
#wheel .pbody,#dlg-wheel{background:var(--p1) !important}
#agreements .pbody,#dlg-agreements{background:var(--p2) !important}
#better .pbody,#dlg-better{background:var(--p3) !important}
#dlg-wheel .close{background:#fff}

/* lightbox */
dialog.lightbox{border:none;border-radius:var(--radius);padding:44px 40px 40px;max-width:760px;width:calc(100% - 32px);max-height:calc(100dvh - 48px);overflow:auto;background:var(--cream);color:var(--forest);font-size:18px}
dialog.lightbox::backdrop{background:rgba(var(--shade),.6);backdrop-filter:blur(3px)}
dialog.lightbox>*+*{margin-top:16px}
dialog.lightbox h2{font-size:clamp(30px,4vw,42px);padding-right:44px}
dialog.lightbox .key{font-family:var(--display);font-weight:300;font-size:26px;line-height:1.2;color:var(--moss);border-left:3px solid var(--peach);padding-left:16px}
dialog.lightbox p{color:var(--moss)}
dialog.lightbox .close{position:absolute;top:18px;right:18px;width:42px;height:42px;border-radius:50%;border:none;background:var(--sage);font-size:26px;line-height:1;cursor:pointer;color:var(--forest)}
dialog.lightbox .quad h3{color:var(--forest)}
dialog.lightbox .quad p{color:var(--moss)}

.lightbox .chips{display:flex;flex-wrap:wrap;gap:8px}
.lightbox .chips span{font-size:15px;background:rgba(255,255,255,.65);border-radius:999px;padding:7px 14px}
.ground,.six-list,.lineage{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:10px;color:var(--moss)}
.ground b,.six-list b,.lineage b{color:var(--forest);font-weight:600}
@media (max-width:640px){dialog.lightbox{padding:56px 22px 28px}}

/* about lineage */
.lineage-h{font-size:24px;margin-top:6px}
.lineage{list-style:none;padding:0}
.lineage li{padding-left:24px;position:relative}
.lineage li::before{content:"";position:absolute;left:0;top:11px;width:10px;height:10px;border-radius:10px 0 10px 0;background:var(--peach-deep)}

/* actions as text links, one per section */
.pill,.pill:hover{background:none !important;border:none;padding:6px 0;min-height:44px;border-radius:0;transform:none;gap:10px;
  font-weight:600;color:var(--forest);text-decoration:underline;text-decoration-color:var(--peach-deep);text-decoration-thickness:2px;text-underline-offset:7px}
.pill::after{content:"\2192";text-decoration:none;display:inline-block;transition:transform .15s}
.pill:hover::after{transform:translateX(4px)}
.pill-light,.pill-light:hover{color:var(--cream);text-decoration-color:var(--peach)}
.pill-lg{font-size:20px;padding:6px 0}
.topbar .pill{font-weight:500}
.topbar .pill::after{content:none}
.topbar .pill-line{text-decoration:none}
.topbar .pill-line:hover{text-decoration:underline;text-decoration-color:var(--forest);text-decoration-thickness:1px;text-underline-offset:4px}
.topbar .pill-peach{color:var(--forest);font-weight:600}
.pills{gap:26px}

/* hero texture */
.hero{background:linear-gradient(90deg,rgba(var(--shade),.88) 0%,rgba(var(--shade),.72) 50%,rgba(var(--shade),.35) 100%),url('/images/nature/moss.jpg') center/cover no-repeat;color:var(--cream)}
@media (max-width:760px){.hero{background:linear-gradient(rgba(var(--shade),.78),rgba(var(--shade),.78)),url('/images/nature/moss.jpg') center/cover no-repeat}}
.hero h1{color:var(--cream)}
.hero .lede{color:var(--on-dark-3)}
.hero .pill{color:var(--cream);text-decoration-color:var(--peach)}

/* mobile menu */
.menu-toggle{display:none}
@media (max-width:899px){
  .topbar{position:sticky;top:0}
  .topbar .wrap{flex-wrap:nowrap;padding-top:12px;padding-bottom:12px}
  .logo b{font-size:24px}
  .menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;width:48px;height:48px;padding:0 11px;border:none;border-radius:50%;background:var(--sage);cursor:pointer;flex:0 0 auto}
  .menu-toggle span{display:block;height:2px;border-radius:2px;background:var(--forest);transition:transform .2s,opacity .2s}
  .menu-open .menu-toggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .menu-open .menu-toggle span:nth-child(2){opacity:0}
  .menu-open .menu-toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
  nav.main{display:none;position:absolute;left:0;right:0;top:100%;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(var(--ink-rgb),.12);flex-direction:column;align-items:stretch;gap:0;padding:8px 24px 20px;font-size:20px}
  .menu-open nav.main{display:flex}
  nav.main>a,nav.main .pills a{padding:14px 0;border-bottom:1px solid var(--line);min-height:auto}
  nav.main .pills{flex-direction:column;gap:0}
  nav.main .pills a:last-child{border-bottom:none}
  .btns .pill-lg{flex:0 0 auto}
}
@media (max-width:899px){nav.main .pills a{justify-content:flex-start;font-size:20px;font-weight:500}nav.main .pills a.pill-peach{font-weight:600}}
.pill{max-width:100%}

/* events */
.events,#event-list{display:flex;flex-direction:column;gap:40px}
.event{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.event>img{width:100%;aspect-ratio:1600/609;object-fit:cover}
.event-body{display:flex;flex-wrap:wrap;gap:36px;padding:36px 36px 8px}
.event-main{flex:3 1 420px;min-width:0;display:flex;flex-direction:column;gap:14px}
.event-main h2{font-size:clamp(30px,3.6vw,42px)}
.event-main p{color:var(--moss)}
.event-who{font-weight:600;color:var(--forest) !important}
.event-facts{flex:2 1 280px;min-width:0;margin:0;display:flex;flex-direction:column;gap:0;background:var(--sage-soft);border-radius:16px;padding:8px 24px}
.event-facts div{padding:14px 0;border-bottom:1px solid var(--line)}
.event-facts div:last-child{border-bottom:none}
.event-facts dt{font-size:15px;font-weight:600;color:var(--muted)}
.event-facts dd{margin:2px 0 0;color:var(--forest)}
.event-cta{padding:20px 36px 36px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
@media (max-width:640px){.event-body{padding:24px 22px 4px}.event-cta{padding:16px 22px 26px}}

/* home events carousel */
.events-home{padding:64px 0}
.ec-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:24px}
.ec-nav{display:flex;gap:10px}
.ec-nav button{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--forest);background:transparent;color:var(--forest);font-size:20px;cursor:pointer}
.ec-nav button:hover{background:rgba(var(--ink-rgb),.06)}
.events-home.single .ec-nav{display:none}
.ec-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:var(--radius)}
.ec-track::-webkit-scrollbar{display:none}
.ec-slide{flex:0 0 100%;scroll-snap-align:start;display:flex;flex-wrap:wrap;background:#fff;border-radius:var(--radius);overflow:hidden}
.ec-img{flex:3 1 460px;min-width:0}
.ec-img img{width:100%;height:100%;object-fit:cover;aspect-ratio:1600/609}
.ec-copy{flex:2 1 320px;min-width:0;padding:30px 32px;display:flex;flex-direction:column;gap:10px;justify-content:center}
.ec-copy h3{font-size:clamp(26px,2.6vw,32px)}
.ec-copy p{color:var(--moss)}
.ec-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;margin-top:6px}
.ec-more{font-size:16px;color:var(--muted)}
.ec-dots{display:flex;justify-content:center;gap:8px;margin-top:16px}
.ec-dots:empty{display:none}
.ec-dots button{width:10px;height:10px;border-radius:50%;border:none;background:var(--line);padding:0;cursor:pointer}
.ec-dots button[aria-current=true]{background:var(--forest)}
@media (max-width:640px){.ec-copy{padding:22px}.events-home{padding:48px 0}}

/* what gets easier cards: border + gentle hover */
#outcomes .card{border:1px solid var(--line);transition:transform .35s cubic-bezier(.2,.7,.3,1),box-shadow .35s ease,border-color .35s ease}
#outcomes .card:hover{transform:translateY(-3px);border-color:var(--moss);box-shadow:0 10px 24px rgba(var(--ink-rgb),.08)}
@media (prefers-reduced-motion: reduce){#outcomes .card{transition:border-color .2s}#outcomes .card:hover{transform:none}}
