/* Acupuncture Bray — shared styles. Generated pages link this file; edit here. */
:root{
  --ground:#FBF9F4;
  --ground-raised:#F1ECDD;
  --ground-deep:#E7E0CB;
  --ink:#2B3328;
  --ink-soft:#69765F;
  --ink-faint:#9BA48D;
  --sage:#6F8A5B;
  --sage-deep:#3F5535;
  --sage-tint:#E7EFDE;
  --clay:#C98B6D;
  --clay-tint:#F5E6DB;
  --line:#E6DECA;
  --line-strong:#D4C8A9;
  --paper:#FFFFFF;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#141911;
    --ground-raised:#1B2216;
    --ground-deep:#0E120B;
    --ink:#E9E6D8;
    --ink-soft:#A5AF98;
    --ink-faint:#67704F ;
    --sage:#93B87C;
    --sage-deep:#C0DCA9;
    --sage-tint:#1F2A1A;
    --clay:#E0A47F;
    --clay-tint:#2C2015;
    --line:#28311F;
    --line-strong:#3B4630;
    --paper:#191F14;
  }
}
:root[data-theme="dark"]{
  --ground:#141911;
  --ground-raised:#1B2216;
  --ground-deep:#0E120B;
  --ink:#E9E6D8;
  --ink-soft:#A5AF98;
  --ink-faint:#67704F;
  --sage:#93B87C;
  --sage-deep:#C0DCA9;
  --sage-tint:#1F2A1A;
  --clay:#E0A47F;
  --clay-tint:#2C2015;
  --line:#28311F;
  --line-strong:#3B4630;
  --paper:#191F14;
}

*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:'Karla', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size:16.5px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3{
  font-family:'Fraunces', Georgia, 'Times New Roman', serif;
  font-weight:480;
  font-optical-sizing:auto;
  color:var(--ink);
  margin:0;
  text-wrap:balance;
  letter-spacing:-0.005em;
}
em{ font-style:italic; color:var(--sage-deep); }
a{ color:inherit; }
.label{
  font-family:'Karla', sans-serif;
  font-weight:600;
  font-size:0.72rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--ink-faint);
}
.wrap{
  max-width:1160px;
  margin:0 auto;
  padding-inline:24px;
}
@media (min-width:720px){ .wrap{padding-inline:56px;} }

/* ---- botanical sprig, reused ---- */
.sprig{ display:block; }
.sprig path, .sprig ellipse{ vector-effect:non-scaling-stroke; }

/* ---- nav ---- */
header.nav{
  position:sticky;
  top:env(safe-area-inset-top, 0px);
  z-index:40;
  background:color-mix(in srgb, var(--ground) 90%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-block:18px;
  gap:16px;
}
.brand{
  display:flex;
  align-items:center;
  gap:8px;
  font-family:'Fraunces', serif;
  font-weight:520;
  font-size:1.12rem;
  letter-spacing:-0.01em;
  white-space:nowrap;
}
nav.links{
  display:none;
  gap:30px;
  font-size:0.92rem;
  color:var(--ink-soft);
}
@media (min-width:860px){ nav.links{display:flex;} }
nav.links a{text-decoration:none; transition:color .15s;}
nav.links a:hover{color:var(--sage-deep);}
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 22px;
  background:var(--sage-deep);
  color:var(--paper);
  border:1px solid var(--sage-deep);
  border-radius:999px;
  font-family:'Karla',sans-serif;
  font-weight:600;
  font-size:0.88rem;
  text-decoration:none;
  cursor:pointer;
  white-space:nowrap;
  transition:background .18s, border-color .18s, color .18s;
}
.btn:hover{ background:var(--sage); border-color:var(--sage); }
.btn.ghost{
  background:transparent;
  color:var(--ink);
  border:1px solid var(--line-strong);
}
.btn.ghost:hover{ border-color:var(--sage-deep); color:var(--sage-deep); }

/* ---- hero (full-bleed photo) ---- */
.hero{
  position:relative;
  padding-block:150px 100px;
  overflow:hidden;
}
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; display:block; }
.hero-bg::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(14,18,11,0.88) 0%, rgba(14,18,11,0.55) 45%, rgba(14,18,11,0.18) 100%);
}
.hero-content{ position:relative; z-index:1; max-width:620px; }
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:20px;
}
.eyebrow svg{ width:18px; height:18px; }
.eyebrow .label{ color:rgba(246,244,233,0.92); }
.hero h1{
  font-size:clamp(2.3rem, 4.6vw, 3.5rem);
  line-height:1.08;
  margin-bottom:22px;
  font-weight:440;
  color:#F6F4E9;
}
.hero h1 em{ color:#E0A47F; }
.hero p.lead{
  font-size:1.12rem;
  color:rgba(246,244,233,0.88);
  max-width:44ch;
  margin-bottom:32px;
}
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:36px; }
.hero .btn.ghost{ background:rgba(255,255,255,0.1); color:#F6F4E9; border-color:rgba(246,244,233,0.5); }
.hero .btn.ghost:hover{ border-color:#F6F4E9; color:#F6F4E9; }
.hero-meta{
  display:flex;
  gap:32px;
  flex-wrap:wrap;
}
.hero-meta div{ font-size:0.86rem; color:rgba(246,244,233,0.85); display:flex; align-items:center; gap:8px;}
.hero-meta svg{ width:15px; height:15px; flex-shrink:0; }
.hero-meta svg path, .hero-meta svg circle, .hero-meta svg rect{ stroke:rgba(246,244,233,0.85); }
.eyebrow svg path{ stroke:rgba(246,244,233,0.9); }

/* ---- photo placeholders ---- */
.photo{
  position:relative;
  background:
    repeating-linear-gradient(135deg, color-mix(in srgb, var(--sage) 12%, transparent) 0 2px, transparent 2px 14px),
    var(--sage-tint);
  border:1px dashed var(--line-strong);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.photo-tag{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  color:var(--ink-faint);
  text-align:center;
  padding:16px;
}
.photo-tag svg{ width:30px; height:30px; opacity:0.7; }
.photo-tag span{
  font-family:'Karla',sans-serif;
  font-size:0.74rem;
  letter-spacing:0.04em;
  max-width:20ch;
  line-height:1.4;
}
.photo-strip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-top:20px;
}
@media (max-width:640px){ .photo-strip{ grid-template-columns:1fr 1fr; } }
.photo-strip .photo{ aspect-ratio:1/1; border-radius:16px; }
.photo-strip .photo-tag svg{ width:22px; height:22px; }
.photo-strip .photo-tag span{ font-size:0.68rem; }
.photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.photo.filled{ border-style:solid; }
.photo-caption{
  position:absolute;
  left:12px;
  bottom:12px;
  background:color-mix(in srgb, var(--ink) 62%, transparent);
  color:var(--ground);
  font-family:'Karla',sans-serif;
  font-size:0.72rem;
  padding:5px 10px;
  border-radius:999px;
  letter-spacing:0.02em;
}

/* ---- intro / approach ---- */
.section{ padding-block:68px; }
.section.raised{ background:var(--ground-raised); }
.intro{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:52px;
  align-items:start;
}
@media (max-width:860px){ .intro{ grid-template-columns:1fr; gap:34px; } }
.intro h2{ font-size:clamp(1.7rem,3vw,2.3rem); margin-bottom:0; }
.intro-body p{ color:var(--ink-soft); margin:0 0 18px; max-width:60ch; }
.intro-body p:last-child{ margin-bottom:0; }

/* ---- service/condition cards ---- */
.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(250px,1fr));
  gap:20px;
  margin-top:44px;
}
.care-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:18px;
  padding:30px 26px;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.section.raised .care-card{ background:var(--ground); }
.care-card .leaf-icon{ width:30px; height:30px; color:var(--sage); }
.care-card h3{ font-size:1.14rem; font-weight:520; }
.care-card p{ color:var(--ink-soft); font-size:0.94rem; margin:0; }
.care-card .point-note{
  font-size:0.78rem;
  color:var(--clay);
  font-style:italic;
  margin-top:2px;
}

/* ---- why band ---- */
.why-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px;
  margin-top:44px;
}
@media (max-width:820px){ .why-grid{ grid-template-columns:1fr; gap:30px; } }
.why-item{ display:flex; gap:16px; }
.why-item svg{ width:26px; height:26px; flex-shrink:0; color:var(--sage-deep); margin-top:2px; }
.why-item h3{ font-size:1.08rem; margin-bottom:6px; font-weight:520; }
.why-item p{ color:var(--ink-soft); font-size:0.92rem; margin:0; }

/* ---- clinic ---- */
.clinic{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:center;
}
@media (max-width:860px){ .clinic{ grid-template-columns:1fr; gap:32px; } }
.clinic-visual{
  aspect-ratio:4/3.2;
  border-radius:24px;
  background:linear-gradient(160deg, var(--sage-tint), var(--ground-deep));
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.clinic-facts{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px 30px;
  margin-top:28px;
}
.clinic-facts div{ font-size:0.88rem; color:var(--ink-soft); }
.clinic-facts strong{ display:block; color:var(--ink); font-weight:600; font-family:'Fraunces',serif; font-size:1.02rem; margin-bottom:3px; }

/* ---- about ---- */
.about-grid{
  display:grid;
  grid-template-columns:0.8fr 1.2fr;
  gap:54px;
}
@media (max-width:900px){ .about-grid{ grid-template-columns:1fr; gap:36px; } }
.about-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:20px;
  padding:32px;
  height:fit-content;
}
.about-card .initial{
  width:58px;height:58px;
  border-radius:50%;
  background:var(--sage-tint);
  color:var(--sage-deep);
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-weight:520; font-size:1.4rem;
  margin-bottom:18px;
}
.about-card h3{ font-size:1.22rem; margin-bottom:2px; font-weight:520; }
.about-card .role{ font-size:0.86rem; color:var(--sage-deep); margin-bottom:20px; font-weight:600;}
.cred-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.cred-list li{
  font-size:0.85rem;
  color:var(--ink-soft);
  padding-left:18px;
  position:relative;
  line-height:1.45;
}
.cred-list li::before{
  content:"";
  position:absolute; left:0; top:8px;
  width:5px;height:5px;
  background:var(--clay);
  border-radius:50%;
}
.about-body p{ color:var(--ink-soft); margin:0 0 18px; max-width:64ch; }
.about-body h4.label{ margin:32px 0 16px; }
.exp-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(210px,1fr));
  gap:0;
  list-style:none; padding:0; margin:0;
}
.exp-grid li{
  font-size:0.9rem;
  color:var(--ink);
  padding:12px 0;
  border-top:1px solid var(--line);
}

/* ---- testimonial ---- */
.testimonial{ padding-block:64px; text-align:center; }
.testimonial .mark{ width:34px; height:34px; color:var(--clay); margin:0 auto 18px; }
.testimonial blockquote{
  font-family:'Fraunces',serif;
  font-style:italic;
  font-weight:460;
  font-size:clamp(1.25rem,2.4vw,1.65rem);
  max-width:52ch;
  margin:0 auto 22px;
  line-height:1.45;
  color:var(--ink);
}
.testimonial cite{ font-style:normal; font-size:0.88rem; color:var(--ink-soft); }

/* ---- CTA ---- */
.cta-band{
  background:var(--sage-deep);
  color:#F6F4E9;
  padding-block:68px;
  border-radius:32px;
  margin-inline:24px;
}
@media (min-width:720px){ .cta-band{ margin-inline:56px; } }
@media (min-width:1216px){ .cta-band{ margin-inline:auto; max-width:1160px; } }
:root[data-theme="dark"] .cta-band{ background:var(--sage-tint); color:var(--ink); }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .cta-band{ background:var(--sage-tint); color:var(--ink); } }
.cta-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  flex-wrap:wrap;
  padding-inline:40px;
}
.cta-band h2{ color:inherit; font-size:clamp(1.6rem,3vw,2.15rem); max-width:22ch; font-weight:440; }
.cta-band .btn{ background:var(--clay); border-color:var(--clay); color:#2B1A0F; }
.cta-band .btn:hover{ background:#D79E7E; border-color:#D79E7E; }

/* ---- footer ---- */
footer{ padding-block:52px 40px; font-size:0.87rem; color:var(--ink-soft); }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 0.9fr 1fr; gap:34px; }
@media (max-width:900px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; gap:28px; } }
.footer-grid h4.label{ margin:0 0 14px; }
.footer-grid a{ text-decoration:none; }
.footer-grid a:hover{ color:var(--sage-deep); }
.footer-links{ display:flex; flex-direction:column; gap:9px; }
.foot-bottom{
  margin-top:40px; padding-top:22px; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap;
  font-size:0.78rem; color:var(--ink-faint);
}

/* ======================================================================
   Multi-page additions
   ====================================================================== */
.brand{ text-decoration:none; color:var(--ink); }
nav.links a[aria-current="page"]{ color:var(--sage-deep); font-weight:600; }
.nav-actions{ display:flex; align-items:center; gap:10px; }
.menu-toggle{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px;
  border:1px solid var(--line-strong); border-radius:50%;
  background:transparent; color:var(--ink); cursor:pointer;
}
.menu-toggle svg{ width:20px; height:20px; }
@media (min-width:980px){ .menu-toggle{ display:none; } }
@media (max-width:420px){ .nav-actions .btn{ padding:10px 16px; } }
/* seven links need more room than the original four */
nav.links{ gap:24px; }
@media (min-width:860px){ nav.links{ display:none; } }
@media (min-width:980px){ nav.links{ display:flex; } }
.mobile-menu{
  display:none;
  border-top:1px solid var(--line);
  padding-block:10px 18px;
}
.mobile-menu.open{ display:block; }
@media (min-width:980px){ .mobile-menu, .mobile-menu.open{ display:none; } }
.mobile-menu a{
  display:block; padding:12px 0;
  text-decoration:none; font-size:1.02rem;
  border-bottom:1px solid var(--line);
}
.mobile-menu a:last-child{ border-bottom:0; }
.mobile-menu a[aria-current="page"]{ color:var(--sage-deep); font-weight:600; }

/* ---- sub-page hero ---- */
.page-hero{
  background:var(--ground-raised);
  border-bottom:1px solid var(--line);
  padding-block:64px 56px;
  position:relative;
  overflow:hidden;
}
.page-hero .label{ display:inline-flex; align-items:center; gap:8px; color:var(--sage-deep); }
.page-hero h1{
  font-size:clamp(2rem,4.2vw,3.1rem);
  line-height:1.1;
  font-weight:440;
  margin:14px 0 16px;
  max-width:22ch;
}
.page-hero p.lead{ font-size:1.1rem; color:var(--ink-soft); max-width:58ch; margin:0; }
.page-hero .hero-actions{ margin:28px 0 0; }
.page-hero .sprig-bg{
  position:absolute; right:-40px; bottom:-60px;
  width:320px; height:320px; opacity:0.35; pointer-events:none;
}
@media (max-width:720px){ .page-hero .sprig-bg{ display:none; } }
.crumbs{ font-size:0.84rem; color:var(--ink-faint); margin-bottom:18px; }
.crumbs a{ text-decoration:none; color:var(--ink-soft); }
.crumbs a:hover{ color:var(--sage-deep); }

/* ---- long-form text ---- */
.prose{ max-width:68ch; }
.prose p, .prose li{ color:var(--ink-soft); }
.prose p{ margin:0 0 18px; }
.prose h2{ font-size:clamp(1.45rem,2.6vw,1.9rem); margin:44px 0 14px; }
.prose h3{ font-size:1.2rem; font-weight:520; margin:32px 0 10px; }
.prose h2:first-child, .prose h3:first-child{ margin-top:0; }
.prose ul{ padding-left:0; list-style:none; margin:0 0 20px; }
.prose ul li{ position:relative; padding-left:20px; margin-bottom:10px; }
.prose ul li::before{
  content:""; position:absolute; left:2px; top:0.66em;
  width:6px; height:6px; border-radius:50%; background:var(--clay);
}
.prose strong{ color:var(--ink); font-weight:600; }
.prose a{ color:var(--sage-deep); text-underline-offset:3px; }

.split{
  display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:start;
}
@media (max-width:900px){ .split{ grid-template-columns:1fr; gap:36px; } }
.split.reverse{ grid-template-columns:0.85fr 1.15fr; }
@media (max-width:900px){ .split.reverse{ grid-template-columns:1fr; } }
.figure{ border-radius:22px; overflow:hidden; background:var(--sage-tint); }
.figure img{ width:100%; height:100%; object-fit:cover; display:block; }
.sticky-col{ position:sticky; top:96px; }
@media (max-width:900px){ .sticky-col{ position:static; } }

.section-head{ max-width:60ch; margin-bottom:8px; }
.section-head h2{ font-size:clamp(1.6rem,3vw,2.2rem); margin:12px 0 12px; }
.section-head p{ color:var(--ink-soft); margin:0; }

.benefit-list{ list-style:none; padding:0; margin:18px 0 0; display:grid; gap:10px; }
.benefit-list li{
  display:flex; gap:12px; align-items:flex-start;
  font-size:0.95rem; color:var(--ink);
}
.benefit-list li::before{
  content:""; flex-shrink:0; margin-top:8px;
  width:7px; height:7px; border-radius:50%; background:var(--sage);
}

/* ---- callout / note ---- */
.note{
  background:var(--sage-tint);
  border:1px solid color-mix(in srgb, var(--sage) 30%, transparent);
  border-radius:18px;
  padding:24px 26px;
  color:var(--ink);
}
.note h3{ font-size:1.08rem; font-weight:520; margin-bottom:6px; }
.note p{ margin:0; color:var(--ink-soft); font-size:0.95rem; }
.note.clay{ background:var(--clay-tint); border-color:color-mix(in srgb, var(--clay) 35%, transparent); }

/* ---- logos row ---- */
.logo-row{ display:flex; flex-wrap:wrap; gap:18px; align-items:center; margin-top:18px; }
.logo-row a, .logo-row span{
  display:flex; align-items:center; justify-content:center;
  background:#fff; border:1px solid var(--line); border-radius:12px;
  padding:12px 18px; height:72px;
}
.logo-row img{ max-height:44px; width:auto; display:block; }

/* ---- testimonials ---- */
.quote-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px; margin-top:36px; }
.quote-card{
  background:var(--paper); border:1px solid var(--line); border-radius:18px;
  padding:28px; display:flex; flex-direction:column; gap:14px;
}
.section.raised .quote-card{ background:var(--ground); }
.quote-card blockquote{
  margin:0; font-family:'Fraunces',serif; font-style:italic; font-weight:460;
  font-size:1.06rem; line-height:1.55; color:var(--ink);
}
.quote-card cite{ font-style:normal; font-size:0.86rem; color:var(--ink-soft); }

/* ---- team ---- */
.team-list{ display:flex; flex-direction:column; gap:28px; }
.team-card{
  display:grid; grid-template-columns:240px 1fr; gap:36px;
  background:var(--paper); border:1px solid var(--line); border-radius:22px;
  padding:30px;
}
@media (max-width:760px){ .team-card{ grid-template-columns:1fr; gap:22px; padding:22px; } }
.team-photo{
  aspect-ratio:4/5; border-radius:16px; overflow:hidden; background:var(--sage-tint);
  display:flex; align-items:center; justify-content:center;
}
.team-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.team-photo.logo{ background:#fff; border:1px solid var(--line); padding:18px; }
.team-photo.logo img{ object-fit:contain; }
@media (max-width:760px){ .team-photo{ max-width:260px; } }
.team-card h2{ font-size:1.5rem; margin-bottom:2px; }
.team-card .role{ font-size:0.9rem; color:var(--sage-deep); font-weight:600; margin-bottom:16px; }
.team-card p{ color:var(--ink-soft); margin:0 0 14px; font-size:0.96rem; }
.team-card details{ margin:4px 0 14px; }
.team-card summary{
  cursor:pointer; color:var(--sage-deep); font-weight:600; font-size:0.9rem;
  list-style:none; display:inline-flex; align-items:center; gap:6px;
}
.team-card summary::-webkit-details-marker{ display:none; }
.team-card summary::after{ content:"+"; font-size:1.1rem; line-height:1; }
.team-card details[open] summary::after{ content:"–"; }
.team-card details[open] summary{ margin-bottom:14px; }
.contact-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:6px; }
.chip{
  display:inline-flex; align-items:center; gap:6px;
  font-size:0.84rem; padding:7px 13px; border-radius:999px;
  border:1px solid var(--line-strong); text-decoration:none; color:var(--ink);
  transition:border-color .15s, color .15s;
}
a.chip:hover{ border-color:var(--sage-deep); color:var(--sage-deep); }
.chip.static{ background:var(--ground-raised); border-color:var(--line); }

/* ---- hours ---- */
.hours{ list-style:none; padding:0; margin:0; border-top:1px solid var(--line); }
.hours li{
  display:flex; justify-content:space-between; gap:16px;
  padding:12px 0; border-bottom:1px solid var(--line);
  font-size:0.95rem; color:var(--ink);
}
.hours li span:last-child{ color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.hours li.muted span:last-child{ font-style:italic; }

/* ---- map ---- */
.map-frame{
  position:relative; border-radius:22px; overflow:hidden;
  border:1px solid var(--line); background:var(--sage-tint);
  aspect-ratio:4/3.4;
}
.map-frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.map-placeholder{
  position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:14px; text-align:center; padding:24px;
  background:
    repeating-linear-gradient(135deg, color-mix(in srgb, var(--sage) 10%, transparent) 0 2px, transparent 2px 16px),
    var(--sage-tint);
}
.map-placeholder p{ margin:0; font-size:0.86rem; color:var(--ink-soft); max-width:34ch; }

/* ---- embeds (Acuity) ---- */
.embed-card{
  background:var(--paper); border:1px solid var(--line); border-radius:22px;
  padding:10px; overflow:hidden;
}
.embed-card iframe{ display:block; width:100%; min-height:800px; border:0; border-radius:14px; }

/* ---- steps ---- */
.steps{ list-style:none; counter-reset:step; padding:0; margin:28px 0 0; display:grid; gap:18px; }
.steps li{
  counter-increment:step; position:relative; padding-left:52px; color:var(--ink-soft);
}
.steps li::before{
  content:counter(step);
  position:absolute; left:0; top:-2px;
  width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--sage-tint); color:var(--sage-deep);
  font-family:'Fraunces',serif; font-weight:520;
}
.steps li strong{ display:block; color:var(--ink); font-weight:600; margin-bottom:2px; }

/* ---- course modules ---- */
.module{ margin-top:40px; }
.module > h3{ font-size:1.35rem; margin-bottom:6px; }
.module > .label{ display:block; margin-bottom:8px; color:var(--clay); }
.week{
  border:1px solid var(--line); border-radius:16px; background:var(--paper);
  margin-top:14px; overflow:hidden;
}
.section.raised .week{ background:var(--ground); }
.week summary{
  cursor:pointer; list-style:none; padding:18px 22px;
  display:flex; justify-content:space-between; align-items:center; gap:14px;
  font-family:'Fraunces',serif; font-weight:520; font-size:1.05rem;
}
.week summary::-webkit-details-marker{ display:none; }
.week summary::after{ content:"+"; color:var(--sage-deep); font-size:1.3rem; line-height:1; }
.week[open] summary::after{ content:"–"; }
.week summary small{ font-family:'Karla',sans-serif; font-weight:600; color:var(--ink-faint); font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; display:block; margin-bottom:2px; }
.week .week-body{ padding:0 22px 20px; }
.week dl{ margin:0; display:grid; gap:14px; }
.week dt{ font-size:0.74rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--sage-deep); }
.week dd{ margin:4px 0 0; color:var(--ink-soft); font-size:0.95rem; }

.fact-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:16px; margin-top:28px; }
.fact{
  background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:20px 22px;
}
.section.raised .fact{ background:var(--ground); }
.fact strong{ display:block; font-family:'Fraunces',serif; font-weight:520; font-size:1.2rem; color:var(--ink); }
.fact span{ font-size:0.86rem; color:var(--ink-soft); }

/* ---- blog ---- */
.post-list{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:24px; }
.post-card{
  display:flex; flex-direction:column; text-decoration:none;
  background:var(--paper); border:1px solid var(--line); border-radius:20px; overflow:hidden;
  transition:border-color .15s, transform .15s;
}
.post-card:hover{ border-color:var(--line-strong); transform:translateY(-2px); }
.post-card .post-img{ aspect-ratio:16/10; overflow:hidden; background:var(--sage-tint); }
.post-card img{ width:100%; height:100%; object-fit:cover; display:block; }
.post-card .post-body{ padding:22px 24px 26px; display:flex; flex-direction:column; gap:10px; }
.post-card h2{ font-size:1.22rem; font-weight:520; line-height:1.3; }
.post-card p{ margin:0; color:var(--ink-soft); font-size:0.94rem; }
.post-meta{ font-size:0.8rem; color:var(--ink-faint); display:flex; gap:10px; flex-wrap:wrap; }
.tag{ font-size:0.76rem; padding:4px 10px; border-radius:999px; background:var(--sage-tint); color:var(--sage-deep); font-weight:600; }
.article-cover{ aspect-ratio:21/9; border-radius:22px; overflow:hidden; margin:0 0 44px; }
.article-cover img{ width:100%; height:100%; object-fit:cover; display:block; }
.article{ max-width:70ch; margin-inline:auto; }
.article .prose{ max-width:none; }
.article .prose > p:first-of-type{ font-size:1.12rem; color:var(--ink); }
.author-box{
  display:flex; gap:18px; align-items:center; margin-top:48px; padding-top:28px;
  border-top:1px solid var(--line);
}
.author-box img{ width:64px; height:64px; border-radius:50%; object-fit:cover; }
.author-box p{ margin:0; font-size:0.9rem; color:var(--ink-soft); }
.author-box strong{ color:var(--ink); font-family:'Fraunces',serif; font-weight:520; font-size:1.02rem; display:block; }

/* ---- centered message pages (thank-you / 404) ---- */
.message-page{ text-align:center; padding-block:110px 90px; }
.message-page h1{ font-size:clamp(2rem,4vw,2.8rem); font-weight:440; margin:18px 0 14px; }
.message-page p{ color:var(--ink-soft); max-width:46ch; margin:0 auto 12px; }
.message-page .hero-actions{ justify-content:center; margin-top:30px; }
.message-page .sprig{ margin:0 auto; width:44px; height:44px; }

/* ---- cookie notice ---- */
.consent{
  position:fixed; left:16px; right:16px; bottom:16px; z-index:60;
  max-width:520px; margin-inline:auto;
  background:var(--paper); color:var(--ink);
  border:1px solid var(--line-strong); border-radius:18px;
  padding:18px 20px; box-shadow:0 12px 36px rgba(20,25,17,0.18);
  display:none; gap:14px; flex-direction:column;
}
.consent.show{ display:flex; }
.consent p{ margin:0; font-size:0.88rem; color:var(--ink-soft); }
.consent .row{ display:flex; gap:10px; flex-wrap:wrap; }
.consent .btn{ padding:10px 18px; }

.btn:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible{
  outline:2px solid var(--clay); outline-offset:3px;
}
.skip{ position:absolute; left:-999px; top:8px; z-index:100; background:var(--paper); padding:10px 16px; border-radius:8px; }
.skip:focus{ left:16px; }
.split.booking{ grid-template-columns:1fr 300px; }
@media (max-width:900px){ .split.booking{ grid-template-columns:1fr; } }
