
:root{
  color-scheme:light;
  --ink:#3A3833; --muted:#6E6A5E; --paper:#FBF8F5; --mist:#F4E9E4; --line:#E4D8D1;
  --teal:#557561; --teal-deep:#44604F; --on-teal:#FBF8F5; --marigold:#557561; --petal:#A9C7B2;
  --sage-deep:#E6DDD1; --wordmark:#6E6A4E;
  --wm:"Montserrat", "Helvetica Neue", Arial, sans-serif;
  --display:"Cormorant Garamond", Georgia, "Times New Roman", serif;
  --body:"Atkinson Hyperlegible", Verdana, system-ui, sans-serif;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}


*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px);scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.1875rem;line-height:1.7;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
a{color:var(--teal)}
a:focus-visible,button:focus-visible{outline:3px solid var(--marigold);outline-offset:3px;border-radius:6px}
.wrap{width:min(1200px,100% - 2.5rem);margin-inline:auto}
.prose{max-width:62ch}
h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.1;letter-spacing:0;margin:0}
h2{font-size:clamp(2rem,1.4rem + 2.2vw,2.9rem);margin-bottom:1.25rem}
p{margin:0 0 1.1rem}

/* header */
.site-head{border-bottom:1px solid var(--line)}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1.1rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--wordmark);font-family:var(--wm);font-weight:300;font-size:1.2rem;letter-spacing:.16em}
.brand img{width:38px;height:38px;flex:none;object-fit:contain}
nav ul{list-style:none;margin:0;padding:0;display:flex;gap:1.1rem;align-items:center}
nav a{white-space:nowrap;text-decoration:none;color:var(--ink);font-size:.95rem}
nav a:hover{color:var(--teal)}
nav a[aria-current="page"]{color:var(--teal);font-weight:700}
.btn{white-space:nowrap;display:inline-block;background:var(--teal);color:var(--on-teal);text-decoration:none;font-weight:700;font-size:1.05rem;padding:.85rem 1.4rem;border-radius:999px;line-height:1.2}
.btn:hover{background:var(--teal-deep)}
.menu-toggle{display:none}
@media (max-width:1320px){
  .menu-toggle{display:block;background:none;border:1px solid var(--line);color:var(--ink);font:inherit;font-size:1rem;padding:.45rem .9rem;border-radius:999px;cursor:pointer}
  nav{display:none;width:100%}
  nav.open{display:block}
  nav ul{flex-direction:column;align-items:flex-start;gap:.9rem;padding:1rem 0 1.25rem}
  .head-row{flex-wrap:wrap}
  .brand{flex:1;font-size:.95rem;letter-spacing:.12em}
  .head-cta{display:none}
}

/* hero */
.hero{padding-block:clamp(3rem,7vw,6rem) clamp(3rem,6vw,5rem)}
.hero-grid > *{min-width:0}
.hero-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.hero h1 .h1-brand{display:block;font-family:var(--wm);font-weight:300;font-size:.36em;letter-spacing:.22em;color:var(--wordmark);margin-bottom:.35em}
.hero h1{font-size:clamp(2.5rem,1.2rem + 5vw,4.9rem);font-weight:500;letter-spacing:-0.01em;margin-bottom:1.5rem}
.hero .lede{font-size:1.3rem;color:var(--muted);max-width:40ch;margin-bottom:2rem}
.portrait{position:relative;width:100%;max-width:440px;justify-self:end;aspect-ratio:4/5;margin:0 18px 18px 0}
.portrait::before{content:"";position:absolute;inset:18px -18px -18px 18px;background:var(--mist);border-radius:6px}
.portrait img{position:relative;border-radius:6px}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 35%;display:block}

@media (max-width:800px){.hero-grid{grid-template-columns:1fr}.portrait{max-width:none;justify-self:stretch;order:-1;aspect-ratio:1/1;margin:0 18px 18px 0}}

/* holistic + offer */
.band{background:var(--mist);padding-block:clamp(3.5rem,7vw,6rem)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5rem)}
@media (max-width:800px){.two-col{grid-template-columns:1fr}}
.offer{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.offer li{border-bottom:1px solid var(--line)}
.offer a{display:block;padding:1.1rem 0;text-decoration:none;color:var(--ink)}
.offer a:hover strong{color:var(--teal)}
.offer strong{display:block;font-family:var(--display);font-weight:600;font-size:1.5rem;line-height:1.3;margin-bottom:.15rem}
.offer span{color:var(--muted);font-size:1.05rem}

/* recognition */
.recognition{padding-block:clamp(3.5rem,7vw,6rem)}
.recognition .big{font-family:var(--display);font-weight:500;font-size:clamp(1.8rem,1.3rem + 1.6vw,2.5rem);line-height:1.3;max-width:30ch;margin-bottom:1.75rem;letter-spacing:-0.01em}

/* journey */
.journey{background:var(--sage-deep);color:var(--ink);padding-block:clamp(3.5rem,7vw,6rem)}


.journey .intro{max-width:46ch;opacity:.9;margin-bottom:2.5rem}
.stem{list-style:none;margin:0;padding:0;position:relative;max-width:720px}
.stem::before{content:"";position:absolute;left:21px;top:22px;bottom:22px;width:2px;background:currentColor;opacity:.3}
.step{position:relative;padding-left:4.25rem;margin-bottom:.5rem}
.step button{all:unset;cursor:pointer;display:block;width:100%;padding:.55rem 0;font-family:var(--display);font-weight:600;font-size:clamp(1.5rem,1.2rem + 1vw,1.95rem);line-height:1.25}
.step button:focus-visible{outline:3px solid var(--marigold);outline-offset:4px;border-radius:6px}
.step .hint{display:block;font-family:var(--body);font-weight:400;font-size:.95rem;opacity:.75;margin-top:.15rem}
.bud{position:absolute;left:0;top:.35rem;width:44px;height:44px}
.bud .petals{transform-origin:22px 22px;transform:scale(.35) rotate(-30deg);opacity:.0;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s}
.bud .core{fill:var(--marigold)}
.bud .ring{fill:none;stroke:currentColor;stroke-width:2;opacity:.6}
.step.open .petals{transform:scale(1) rotate(0);opacity:1}
.step.open .ring{opacity:0}
.detail{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s ease}
.detail > div{overflow:hidden}
.detail p{margin:.25rem 0 1.25rem;max-width:52ch;opacity:.92}
.step.open .detail{grid-template-rows:1fr}
@media (prefers-reduced-motion: reduce){.bud .petals,.detail{transition:none}html{scroll-behavior:auto}}

/* reach out */
.reach{padding-block:clamp(4rem,8vw,7rem)}
.reach .card{display:grid;grid-template-columns:auto 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center}
.reach .mark{width:clamp(80px,12vw,130px)}
@media (max-width:640px){.reach .card{grid-template-columns:1fr}}

/* footer */
.site-foot{border-top:1px solid var(--line);padding-block:2.5rem;font-size:1rem;color:var(--muted)}
.foot-grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.5rem}
.creds{list-style:none;margin:0 0 .4rem;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;color:var(--ink);font-weight:700}
.foot-links{display:flex;gap:1.25rem;flex-wrap:wrap}
.foot-links a{color:var(--muted)}

/* inner pages */
.page-hero{padding-block:clamp(3rem,6vw,5rem) clamp(1.5rem,3vw,2.5rem)}
.page-hero h1{font-size:clamp(2.5rem,1.3rem + 4vw,4.3rem);max-width:18ch;margin-bottom:1.25rem}
.intro-note{font-family:var(--display);font-style:italic;font-size:clamp(1.4rem,1.1rem + .9vw,1.8rem);line-height:1.45;color:var(--muted);max-width:44ch;margin:0 0 1rem}
.section{padding-block:clamp(2.75rem,5.5vw,4.5rem)}
.section.tint{background:var(--mist)}
.lead-strong{font-family:var(--display);font-weight:500;font-size:clamp(1.7rem,1.25rem + 1.3vw,2.4rem);line-height:1.25;max-width:28ch;margin-bottom:1.1rem}
.steps{list-style:none;counter-reset:s;padding:0;margin:0;max-width:64ch}
.steps li{counter-increment:s;position:relative;padding-left:3.6rem;margin-bottom:1.9rem}
.steps li:last-child{margin-bottom:0}
.steps li::before{content:counter(s);position:absolute;left:0;top:.15rem;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--teal);color:var(--on-teal);display:grid;place-items:center;font-weight:700;font-size:1.05rem}
.steps h3,.block h3{font-size:1.7rem;margin-bottom:.35rem}
.steps p{margin:0}
.dots{list-style:none;padding:0;margin:0 0 1.1rem;max-width:64ch}
.dots li{position:relative;padding-left:1.7rem;margin-bottom:.8rem}
.dots li::before{content:"";position:absolute;left:.15rem;top:.68em;width:.55rem;height:.55rem;border-radius:50%;background:var(--teal)}
.weeks{list-style:none;padding:0;margin:0;border-top:1px solid var(--line);max-width:780px}
.weeks li{display:grid;grid-template-columns:7rem 1fr;gap:1rem;padding:1.2rem 0;border-bottom:1px solid var(--line)}
.weeks .wk{font-family:var(--wm);font-weight:400;font-size:.9rem;letter-spacing:.14em;color:var(--muted);padding-top:.4rem}
.weeks h3{font-size:1.55rem;margin-bottom:.25rem}
.weeks p{margin:0}
@media (max-width:640px){.weeks li{grid-template-columns:1fr;gap:.2rem}}
.options{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;max-width:980px}
@media (max-width:760px){.options{grid-template-columns:1fr}}
.option{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:1.75rem 1.75rem 1.25rem}
.option h3{font-size:1.7rem;margin-bottom:.5rem}
.note-box{border-left:3px solid var(--teal);padding:.35rem 0 .35rem 1.35rem;max-width:62ch}
.note-box h2{font-size:clamp(1.6rem,1.3rem + 1vw,2.1rem);margin-bottom:.6rem}
.ph{background:#F2E2BF;color:#57420E;padding:0 .3em;border-radius:3px}
.btn-row{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.5rem}
.btn-ghost{background:transparent;color:var(--teal);box-shadow:inset 0 0 0 1.5px var(--teal)}
.btn-ghost:hover{background:var(--mist);color:var(--teal-deep)}
.split{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.split > *{min-width:0}
@media (max-width:800px){.split{grid-template-columns:1fr}}
.about-photo{position:relative;max-width:380px;aspect-ratio:4/5;margin:0 18px 18px 0}
.about-photo::before{content:"";position:absolute;inset:18px -18px -18px 18px;background:var(--mist);border-radius:6px}
.about-photo img{position:relative;width:100%;height:100%;object-fit:cover;object-position:50% 35%;border-radius:6px;display:block}
.creds-strip{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.75rem}
.creds-strip li{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:.45rem 1rem;font-size:1rem}
.act-stem{color:var(--ink)}
/* form */
.form{display:grid;gap:1.4rem;max-width:640px}
.form fieldset{border:0;padding:0;margin:0}
.form legend{font-family:var(--display);font-size:1.6rem;margin-bottom:.75rem;padding:0}
.checks{display:grid;gap:.6rem}
.checks label{display:flex;gap:.7rem;align-items:flex-start;cursor:pointer}
.checks input{width:1.2rem;height:1.2rem;margin-top:.3rem;accent-color:var(--teal);flex:none}
.field label{display:block;font-weight:700;margin-bottom:.35rem}
.field input,.field textarea{width:100%;font:inherit;font-size:1.05rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:.8rem .9rem}
.field input:focus,.field textarea:focus{outline:3px solid var(--marigold);outline-offset:1px;border-color:transparent}
.form .btn{border:0;cursor:pointer;justify-self:start;font-family:inherit}
.small{font-size:1rem;color:var(--muted)}


.wrap.prose{max-width:none}
.wrap.prose > *{max-width:62ch}
.wrap.prose > .lead-strong{max-width:28ch}
