:root{
  --cream:#f8f4ec;
  --cream-2:#f2ece1;
  --ivory:#fffdf9;
  --panel:#f1ebe0;
  --taupe-deep:#8c7559;
  --brown:#5a4a39;
  --brown-deep:#352b1d;
  --gold:#b8973f;
  --ink:#3b3225;
  --muted:#6f6557;
  --line:#e6dcca;
  --line-soft:#efe8da;

  --teal:#6f9ea3;
  --teal-deep:#3f6f74;
  --teal-darker:#2f565a;
  --teal-soft:#e6eded;
  --teal-line:#cfdfe0;
  --sand:#cdab86;
  --grad:linear-gradient(162deg,#d6b995 0%,#c6ac93 24%,#a7b2a5 50%,#88aeb0 74%,#74a1a7 100%);
  --grad-soft:linear-gradient(120deg,#ecdfcd,#dfe7e3 55%,#d3e0e1);

  --w:1080px;
  --w-read:660px;
  --nav-h:166px;

  /* ---- type scale: every font-size references one of these (values unchanged) ---- */
  --fs-label-card:.62rem; --fs-label-col:.64rem; --fs-label:.68rem; --fs-eyebrow:.7rem;
  --fs-caption:.72rem; --fs-meta:.74rem; --fs-footnote:.76rem; --fs-fineprint:.82rem;
  --fs-button:.85rem; --fs-portal:.88rem; --fs-blurb:.9rem; --fs-secondary:.92rem;
  --fs-input:1rem; --fs-body-sm:1.0625rem; --fs-body:1.125rem; --fs-cred:1.15rem;
  --fs-detail:1.25rem; --fs-tier:1.3rem; --fs-sub:1.4rem; --fs-amount:1.5rem;
  --fs-name:1.55rem; --fs-duo:1.7rem; --fs-price:1.9rem; --fs-menu:2.1rem;
  --fs-signature:2.8rem; --fs-dropcap:4.4rem;
  --fs-h1:clamp(1.9rem,4vw,2.7rem); --fs-h2:clamp(1.8rem,3vw,2.4rem);
  --fs-h3:clamp(1.7rem,3vw,2.2rem); --fs-qa:clamp(1.25rem,2.2vw,1.5rem);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Jost',sans-serif;color:var(--ink);background:var(--cream);line-height:1.75;font-weight:300;font-size:var(--fs-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:'Cormorant Garamond',serif;font-weight:500;line-height:1.12;color:var(--brown-deep);letter-spacing:.005em}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
address{font-style:normal}
::selection{background:var(--teal-soft)}

.wrap{max-width:var(--w);margin:0 auto;padding:0 32px}
.read{max-width:var(--w-read);margin:0 auto}
.eyebrow{font-size:var(--fs-footnote);letter-spacing:.32em;text-transform:uppercase;color:var(--teal-deep);font-weight:500;display:inline-flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--teal);display:inline-block}
.grad-rule{height:3px;width:64px;border-radius:3px;background:var(--grad)}

section{padding:clamp(56px,8vw,104px) 0}
.tight{padding-top:0}
/* pull the first content section up toward the hero */
.pagehead + section{padding-top:clamp(28px,4vw,52px)}

/* ---------------- NAV ---------------- */
header.nav{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--line-soft)}
.nav-inner{display:flex;align-items:center;justify-content:flex-start;gap:clamp(20px,3vw,44px);height:var(--nav-h);max-width:var(--w);margin:0 auto;padding:0 32px}
.brand{display:flex;align-items:center;gap:12px;font-family:'Cormorant Garamond',serif;font-size:var(--fs-amount);color:var(--brown-deep);letter-spacing:.01em}
.brand img{height:146px;width:auto;display:block}
.brand .dot{width:13px;height:13px;border-radius:50%;background:var(--grad);flex:0 0 auto}
.brand b{font-weight:600}
nav ul{list-style:none;display:flex;gap:1.5rem;align-items:center}
#nav{align-self:flex-end;padding-bottom:46px}
.navlink{background:none;border:none;cursor:pointer;font-family:'Jost',sans-serif;font-size:var(--fs-body);letter-spacing:.03em;color:var(--brown);font-weight:400;padding:8px 0;position:relative;white-space:nowrap}
.navlink::after{content:"";position:absolute;left:0;bottom:2px;width:0;height:1.5px;background:var(--teal);transition:width .28s ease}
.navlink:hover::after,.navlink.active::after{width:100%}
.navlink.active{color:var(--brown-deep)}
.portal{font-size:var(--fs-portal);letter-spacing:.1em;text-transform:uppercase;color:var(--teal-deep);border:1px solid var(--teal-line);padding:11px 20px;border-radius:999px;transition:.25s}
.portal:hover{background:var(--teal-soft);border-color:var(--teal)}
.nav-toggle{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;opacity:0;overflow:hidden;clip:rect(0 0 0 0);pointer-events:none}
.menu-toggle{display:none;margin-left:auto;font-size:var(--fs-menu);line-height:1;cursor:pointer;color:var(--brown-deep);user-select:none}
.nav-toggle:focus-visible ~ .menu-toggle{outline:2px solid var(--teal);outline-offset:4px;border-radius:4px}
a:focus-visible,button:focus-visible{outline:2px solid var(--teal-deep);outline-offset:3px;border-radius:3px}
.skip-link{position:absolute;left:8px;top:-48px;z-index:100;background:var(--teal-deep);color:#fff;padding:10px 18px;border-radius:0 0 10px 10px;font-size:var(--fs-input);transition:top .18s ease}
.skip-link:focus{top:0}

/* letter-beside-photo layout (home) */
.letter-grid{display:grid;grid-template-columns:1fr 300px;gap:clamp(30px,5vw,60px);align-items:start}
.letter-grid .letter-pic{max-width:300px}

/* page header band (inner pages) */
.pagehead{position:relative;color:#fff;overflow:hidden;padding:0;
  background:linear-gradient(90deg,rgba(40,33,22,.5),rgba(40,33,22,.18) 45%,rgba(40,33,22,0) 72%),radial-gradient(130% 130% at 78% 30%,rgba(255,255,255,.2),transparent 55%),var(--grad)}
.pagehead .inner{max-width:var(--w);margin:0 auto;padding:clamp(18px,2.6vw,34px) 32px}
.pagehead .eyebrow{color:rgba(255,255,255,.9)}
.pagehead .eyebrow::before{background:rgba(255,255,255,.7)}
.pagehead h1{color:#fff;font-size:var(--fs-h1);margin-top:0;text-shadow:0 1px 12px rgba(40,33,22,.3)}
.pagehead p{color:rgba(255,255,255,.92);max-width:50ch;margin-top:14px}

/* ---------------- LETTER ---------------- */
.letter p{margin-bottom:1.25em;color:var(--ink)}
.letter .read > p:first-of-type::first-letter{
  font-family:'Cormorant Garamond',serif;float:left;font-size:var(--fs-dropcap);line-height:.72;
  padding:8px 14px 0 0;color:var(--teal-deep);font-weight:600;
}
.signature{font-family:'Tangerine',cursive;font-weight:700;font-size:var(--fs-signature);color:var(--brown-deep);margin-top:.4em;line-height:1}
.sig-role{font-size:var(--fs-meta);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-top:6px}

/* ---------------- INCLUDES PANEL ---------------- */
.includes{background:var(--grad-soft);border-radius:22px;padding:clamp(34px,5vw,56px);position:relative;overflow:hidden}
.includes h2{font-size:var(--fs-h2);margin:10px 0 6px}
.inc-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 38px;margin-top:26px}
.inc-grid li{list-style:none;display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-top:1px solid rgba(63,111,116,.16)}

/* ---------------- TWO-UP ---------------- */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px)}
.duo .h{font-size:var(--fs-duo);margin-bottom:8px;display:flex;align-items:baseline;gap:12px}
.duo p{color:var(--ink)}

/* ---------------- ABOUT ---------------- */
.about{display:grid;grid-template-columns:300px 1fr;gap:clamp(36px,6vw,72px);align-items:start}
.docpic{display:block;width:100%;height:auto;border-radius:12px}
.docpic-cap{margin-top:6px;text-align:center;font-size:var(--fs-caption);letter-spacing:.18em;text-transform:uppercase;color:var(--teal-deep);font-weight:500}
.about-side{position:sticky;top:calc(var(--nav-h) + 24px)}
.bio p{margin-bottom:1.1em}
.creds{margin-top:30px;border-top:1px solid var(--line);padding-top:24px;display:grid;grid-template-columns:auto 1fr;column-gap:16px;row-gap:14px;align-items:baseline}
.creds .c{display:contents}
.creds .c b{font-family:'Cormorant Garamond',serif;font-size:var(--fs-cred);color:var(--brown-deep);font-weight:600;white-space:nowrap}
.creds .c span{font-size:var(--fs-input);color:var(--ink)}

/* ---------------- TEAM ---------------- */
.member{display:grid;grid-template-columns:88px 1fr;gap:26px;padding:30px 0;border-top:1px solid var(--line);align-items:start}
.avatar{width:88px;height:88px;border-radius:50%;background:var(--grad)}
.member h2,.member h3{font-size:var(--fs-name)}
.member .role{font-size:var(--fs-meta);letter-spacing:.2em;text-transform:uppercase;color:var(--teal-deep);margin-bottom:10px;font-weight:500}
.member p{color:var(--ink)}
.member p + p{margin-top:.85em}
img.avatar{object-fit:cover;object-position:50% 22%}
.member ul{margin:.55em 0 .2em;padding-left:1.15em;color:var(--ink);display:grid;gap:5px}
.member ul li{list-style:disc}
.member .visit{display:inline-block;margin-top:.9em;color:var(--teal-deep);border-bottom:1px solid var(--teal-line)}
.member--nutrition{grid-template-columns:148px 1fr;gap:30px}
.member--nutrition .npic{width:148px;height:auto;align-self:start}

/* ---------------- MEMBERSHIP ---------------- */
.ptable-wrap{overflow-x:auto;margin-top:28px;border:1px solid var(--line);border-radius:18px;background:var(--ivory)}
.ptable{width:100%;border-collapse:collapse;min-width:520px}
.ptable thead th{text-align:left;vertical-align:top;font-family:'Jost',sans-serif;font-weight:500;font-size:var(--fs-portal);letter-spacing:.18em;text-transform:uppercase;color:var(--teal-deep);padding:20px 24px;border-bottom:1px solid var(--line);background:var(--teal-soft)}
.ptable th.num,.ptable td.num{text-align:right}
.ptable td{padding:20px 24px;border-bottom:1px solid var(--line-soft);font-size:var(--fs-secondary);color:var(--ink)}
.ptable tr:last-child td,.ptable tr:last-child th{border-bottom:none}
.ptable tbody tr{transition:background .2s}
.ptable tbody tr:hover{background:var(--cream-2)}
.ptable .tier{padding:20px 24px;border-bottom:1px solid var(--line-soft);text-align:left;font-family:'Cormorant Garamond',serif;font-weight:400;font-size:var(--fs-tier);color:var(--brown-deep)}
.ptable td.amt{font-family:'Cormorant Garamond',serif;font-size:var(--fs-amount);color:var(--teal-deep)}
.fineprint{font-size:var(--fs-fineprint);color:var(--ink);margin-top:28px;line-height:1.7;max-width:60ch}
.mem-desc{margin-top:44px;display:grid;gap:6px}
.mem-desc h2{font-size:var(--fs-sub);margin-top:22px}
.mem-desc h2:first-child{margin-top:0}
.mem-desc p{color:var(--ink)}
.mem-desc ul{margin:.3em 0 0;padding-left:1.2em;color:var(--ink);display:grid;gap:5px}
.mem-desc ul li{list-style:disc}
/* pricing table -> stacked cards on small screens (so Annual/Couples aren't hidden off-screen) */
@media(max-width:640px){
  .ptable-wrap{overflow:visible}
  .ptable{min-width:0;display:block}
  .ptable thead{display:none}
  .ptable tbody{display:block}
  .ptable tr{display:block;padding:4px 0 16px;border-bottom:1px solid var(--line)}
  .ptable tr:last-child{border-bottom:none}
  .ptable td{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:7px 24px;border:none;text-align:right;font-size:var(--fs-input)}
  .ptable td.amt{font-size:var(--fs-cred)}
  .ptable td::before{content:attr(data-label);text-align:left;font-family:'Jost',sans-serif;font-weight:500;font-size:var(--fs-caption);letter-spacing:.14em;text-transform:uppercase;color:var(--teal-deep);white-space:nowrap}
  .ptable .tier{display:block;text-align:left;padding:18px 24px 6px;border:none}
  .ptable .tier::before{content:none}
}

/* ---------------- FAQ ---------------- */
.qa{border-top:1px solid var(--line);padding:24px 4px}
.qa:last-child{border-bottom:1px solid var(--line)}
.qa .q{font-family:'Cormorant Garamond',serif;font-size:var(--fs-qa);font-weight:500;color:var(--brown-deep);line-height:1.2;margin-bottom:8px}
.qa .ans p{color:var(--ink)}
.qa .ans p + p{margin-top:.8em}
.qa a{color:var(--teal-deep);border-bottom:1px solid var(--teal-line)}

/* ---------------- CONTACT BLOCK / FORM ---------------- */

/* contact form */
.form-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px clamp(28px,5vw,56px);align-items:start}
.cform{display:grid;gap:18px}
.cform .row{display:grid;gap:18px;grid-template-columns:1fr 1fr}
.field{display:grid;gap:7px}
.field label{font-size:var(--fs-caption);letter-spacing:.14em;text-transform:uppercase;color:var(--teal-deep);font-weight:500}
.field input,.field textarea,.field select{
  font-family:'Jost',sans-serif;font-size:var(--fs-input);font-weight:300;color:var(--ink);
  background:var(--ivory);border:1px solid var(--line);border-radius:12px;padding:13px 15px;width:100%;transition:.2s}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft)}
.btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border:none;
  font-family:'Jost',sans-serif;font-weight:400;letter-spacing:.06em;font-size:var(--fs-button);
  background:var(--teal-deep);color:#fff;padding:15px 32px;border-radius:999px;transition:.25s;justify-self:start}
.btn:hover{background:var(--teal-darker);transform:translateY(-1px)}
.contact-detail{display:grid;gap:18px;align-content:start}
.contact-detail address{display:grid;gap:18px}
.contact-detail .ci{display:grid;gap:3px}
.contact-detail .ci .k{font-size:var(--fs-label);letter-spacing:.18em;text-transform:uppercase;color:var(--teal-deep);font-weight:500}
.contact-detail .ci a,.contact-detail .ci span{font-family:'Cormorant Garamond',serif;font-size:var(--fs-detail);color:var(--brown-deep)}
.contact-detail .ci a:hover{color:var(--teal-deep)}

/* ---------------- FOOTER ---------------- */
footer{background:#37636a;color:#e7e0d2;padding:64px 0 36px}
.foot{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}
footer .brand{color:#f4f0e6}
footer .blurb{color:rgba(231,224,210,.88);font-size:var(--fs-blurb);margin-top:16px;max-width:30ch}
footer h2{font-family:'Jost',sans-serif;font-weight:500;font-size:var(--fs-label);letter-spacing:.2em;text-transform:uppercase;color:#dccaa0;margin-bottom:16px}
footer ul{list-style:none;display:grid;gap:11px}
footer a,footer button{color:rgba(231,224,210,.96);font-family:'Jost',sans-serif;font-weight:400;font-size:var(--fs-secondary);background:none;border:none;cursor:pointer;padding:0;text-align:left}
footer a:hover,footer button:hover{color:#fff}
.foot-bottom{border-top:1px solid rgba(231,224,210,.22);margin-top:46px;padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:var(--fs-footnote);color:rgba(231,224,210,.8)}

/* reveal — visible by default; fades up on scroll only where CSS scroll-driven
   animations are supported (Chromium). Safari/Firefox simply show the content. */
.reveal{opacity:1;transform:none}
@keyframes reveal-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@supports (animation-timeline: view()){
  @media(prefers-reduced-motion:no-preference){
    .reveal{animation:reveal-in linear both;animation-timeline:view();animation-range:entry 0% entry 45%}
  }
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

@media(max-width:1040px){
  nav ul{display:none}
  .menu-toggle{display:block;align-self:flex-end;margin-bottom:22px}
  .nav-toggle:checked ~ nav ul{display:flex;position:absolute;top:var(--nav-h);left:0;right:0;flex-direction:column;background:var(--ivory);border-bottom:1px solid var(--line);padding:18px 32px;gap:4px}
  .nav-toggle:checked ~ nav ul .navlink{display:block;padding:11px 0}
}
@media(max-width:860px){
  :root{--nav-h:104px}
  .brand img{height:80px}
  .menu-toggle{margin-bottom:12px}
  body{font-size:var(--fs-body-sm)}
  .inc-grid,.duo,.about,.form-grid,.cform .row,.letter-grid{grid-template-columns:1fr}
  .letter-grid .letter-pic{max-width:300px}
  .about-side{position:static}
  .about-side .docpic{max-width:300px;margin-inline:auto}
  .foot{grid-template-columns:1fr;gap:30px}
  .member{grid-template-columns:72px 1fr;gap:18px}
  img.avatar{width:72px;height:72px}
  .member--nutrition{grid-template-columns:1fr;gap:14px}
  .member--nutrition .npic{width:120px}
}
