/* self-hosted faces (fetch-fonts.js) */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/cormorant-garamond-500-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/cormorant-garamond-500-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/cormorant-garamond-600-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/cormorant-garamond-600-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/figtree-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/figtree-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/figtree-500-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/figtree-500-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/figtree-700-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/figtree-700-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  /* palette from her own brand: the ivory of the wordmark, the taupe of the lotus, the sage of the office walls */
  --bg: #f6f2ec;
  --surface: #fffdf9;
  --text: #2a2622;
  --text-dim: #6b625a;
  --accent: #c4a184;      /* lotus taupe: rules, petals, chips. Never small text on ivory. */
  --accent-ink: #2a2622;
  --deep: #4a5a47;        /* office sage: buttons, the specialties ground, the accent word */
  --deep-ink: #f6f2ec;
  --border: 1px solid rgba(42,38,34,.14);
  --font-display: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-body: 'Figtree', 'Segoe UI', Arial, sans-serif;
  --font-mono: 'Figtree', 'Segoe UI', Arial, sans-serif;
  --step-0: 1rem; --step-1: 1.2rem; --step-2: 1.44rem;
  --step-3: 1.8rem; --step-4: 2.3rem; --step-5: 3rem;
  --s-1:.5rem; --s-2:1rem; --s-3:1.5rem; --s-4:2.5rem; --s-5:4rem; --s-6:6rem;
  --max: 85rem;
  --max-wide: 107.5rem;
}

*{ box-sizing:border-box; min-width:0; }
/* the scaffolder default; the linter fails without a clamp on the root (see build-state, cutover log) */
html{ scroll-behavior:smooth; font-size:clamp(16px, .5vw + 12px, 20px); }
body{ margin:0; background:var(--bg); color:var(--text); font-family:var(--font-body); line-height:1.6; }
img{ display:block; max-width:100%; height:auto; }
picture{ display:contents; }
h1,h2,h3{ font-family:var(--font-display); line-height:1.15; font-weight:600; letter-spacing:-.005em; margin:0 0 var(--s-2); text-wrap:balance; }
h1{ font-size:clamp(2.6rem, 4.6vw, 4.4rem); line-height:1.06; font-weight:500; }
h2{ font-size:clamp(1.9rem, 2.6vw, 2.7rem); }
h3{ font-size:var(--step-2); }
p{ margin:0 0 var(--s-2); }
a{ color:inherit; }
.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ---------- header ---------- */
.site-head{
  position:sticky; top:0; z-index:50; background:var(--bg); border-bottom:var(--border);
  display:flex; align-items:center; justify-content:space-between; gap:var(--s-3);
  padding:.8rem var(--s-3); flex-wrap:nowrap;
}
.brand{ display:inline-flex; align-items:center; text-decoration:none; }
.brand img{ width:220px; height:auto; }
.site-head nav{ display:flex; align-items:center; gap:var(--s-3); flex-wrap:wrap; }
.site-head nav a{ color:var(--text-dim); text-decoration:none; font-weight:500; font-size:.95rem; }
.site-head nav a:hover, .site-head nav a:focus-visible{ color:var(--text); }
.site-head nav a.head-call{ color:var(--text); font-weight:700; }
.site-head nav a.head-book{
  color:var(--deep-ink); background:var(--deep); padding:.55rem 1rem; border-radius:999px; font-weight:600;
}
.site-head nav a.head-book:hover, .site-head nav a.head-book:focus-visible{ color:var(--deep-ink); background:rgba(74,90,71,.85); }
.nav-toggle{ display:none; background:none; border:var(--border); color:var(--text); padding:.5rem .7rem; border-radius:.4rem; font:inherit; cursor:pointer; }

/* ---------- bands ---------- */
main{ padding:0; max-width:none; margin:0; }
.band{ position:relative; overflow:hidden; padding-block:var(--s-6); }
.wrap{ max-width:var(--max); margin-inline:auto; padding-inline:var(--s-3); }
.wrap-wide{ max-width:var(--max-wide); margin-inline:auto; padding-inline:var(--s-3); }
.narrow{ max-width:48rem; }
.eyebrow{
  display:flex; align-items:center; gap:.8rem; margin:0 0 var(--s-2);
  font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:var(--text-dim);
}
.eyebrow::before, .eyebrow::after{ content:""; height:1px; width:2.2rem; background:var(--accent); }
.eyebrow.light{ color:var(--deep-ink); }
.eyebrow.light::before, .eyebrow.light::after{ background:rgba(246,242,236,.55); }

.cols-2,.cols-3,.cols-4,.cols-6{ display:grid; gap:var(--s-3); }
.cols-2{ grid-template-columns:repeat(2,1fr); }
.cols-3{ grid-template-columns:repeat(3,1fr); }
.cols-4{ grid-template-columns:repeat(4,1fr); }
.cols-6{ grid-template-columns:repeat(6,1fr); }
@media(max-width:1180px){ .cols-6{ grid-template-columns:repeat(3,1fr); } .cols-4{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:768px){ .cols-3,.cols-6{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:480px){ .cols-2,.cols-3,.cols-4,.cols-6{ grid-template-columns:1fr; } }

.btn{ display:inline-block; padding:.85rem 1.4rem; border-radius:999px; text-decoration:none; font-weight:600; line-height:1.2; }
.btn.primary{ background:var(--deep); color:var(--deep-ink); }
.btn.primary:hover, .btn.primary:focus-visible{ background:rgba(74,90,71,.85); }
.btn.ghost{ border:1px solid rgba(42,38,34,.35); color:var(--text); background:transparent; }
.btn.ghost:hover, .btn.ghost:focus-visible{ border-color:var(--text); }
.cta-row{ display:flex; flex-wrap:wrap; gap:var(--s-2); margin:var(--s-3) 0; }
.small{ font-size:.9rem; color:var(--text-dim); }

/* ---------- hero ---------- */
.hero{ padding-block:var(--s-5) var(--s-6); }
.hero::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(60rem 30rem at 85% 0%, rgba(196,161,132,.22), transparent 60%);
}
.hero-grid{ display:grid; grid-template-columns:1fr 1.25fr; gap:var(--s-5); align-items:center; position:relative; }
.hero h1 em{ font-style:italic; color:var(--deep); }
.tagline{ font-size:var(--step-1); color:var(--text-dim); max-width:36rem; }
.proof{ list-style:none; padding:0; margin:var(--s-3) 0 0; display:flex; flex-wrap:wrap; gap:.5rem .6rem; }
.proof li{
  font-size:.85rem; padding:.35rem .75rem; border-radius:999px;
  background:var(--surface); border:var(--border); color:var(--text);
}
.proof li strong{ font-weight:700; }
.hero-visual{ position:relative; display:flex; gap:var(--s-5); align-items:center; justify-content:center; }
.frame-wrap{ position:relative; flex:0 1 22rem; }
.hero-note{ flex:0 1 17rem; margin-left:2.5rem; background:var(--surface); border:var(--border); border-left:3px solid var(--accent); border-radius:.6rem; padding:var(--s-3); }
.note-h{ font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:var(--text-dim); margin:0 0 .8rem; }
.hero-note ul{ list-style:none; padding:0; margin:0 0 var(--s-2); display:grid; gap:.55rem; }
.hero-note li{ position:relative; padding-left:1.1rem; font-size:.95rem; line-height:1.45; }
.hero-note li::before{ content:""; position:absolute; left:0; top:.5em; width:.45rem; height:.45rem; border-radius:50%; background:var(--deep); }
.note-f{ margin:0; font-size:.88rem; color:var(--text-dim); }
.frame{
  margin:0; background:var(--surface); padding:.7rem .7rem 1rem; border:var(--border);
  box-shadow:0 30px 60px -30px rgba(42,38,34,.45); position:relative; max-width:26rem; width:100%;
}
.frame img{ width:100%; }
.frame figcaption{ font-family:var(--font-display); font-size:1.15rem; text-align:center; margin-top:.7rem; color:var(--text-dim); }
.frame-wide{ max-width:none; }
.lotus{ display:block; fill:var(--accent); }
.lotus-hero{ position:absolute; width:min(40rem, 150%); bottom:-6%; left:50%; transform:translateX(-50%); opacity:.42; z-index:0; }
.frame{ z-index:1; }

/* ---------- feel ---------- */
.feel{ background:var(--surface); border-top:var(--border); border-bottom:var(--border); }
.feel p{ font-size:var(--step-1); max-width:46rem; }

/* ---------- specialties: the sage ground ---------- */
.specialties{ background:var(--deep); color:var(--deep-ink); }
.specialties h2{ color:var(--deep-ink); }
.card{ background:var(--surface); color:var(--text); padding:var(--s-3); border-radius:.6rem; display:flex; flex-direction:column; gap:.5rem; }
.card h3{ margin:0; color:var(--text); }
.card p{ margin:0; color:var(--text-dim); }
.chip{ width:2.4rem; height:2.4rem; padding:.5rem; border-radius:.6rem; background:rgba(196,161,132,.28); fill:var(--deep); }

/* ---------- how ---------- */
.steps{ list-style:none; padding:0; margin:0; counter-reset:step; }
.steps li{ background:var(--surface); border:var(--border); padding:var(--s-3); border-radius:.6rem; counter-increment:step; }
.steps li::before{
  content:counter(step); display:inline-flex; width:2.2rem; height:2.2rem; align-items:center; justify-content:center;
  border-radius:50%; background:var(--deep); color:var(--deep-ink); font-family:var(--font-display); font-size:1.3rem; font-weight:600; margin-bottom:.8rem;
}
.steps p{ margin:0; color:var(--text-dim); }

/* ---------- fees ---------- */
.fees{ background:var(--surface); border-top:var(--border); border-bottom:var(--border); }
.fees-grid{ display:grid; grid-template-columns:1fr 1fr; gap:var(--s-5); align-items:start; }
.fee-list{ margin:0; border-top:var(--border); }
.fee-list div{ display:grid; grid-template-columns:1fr auto; gap:.2rem var(--s-2); padding:.9rem 0; border-bottom:var(--border); align-items:baseline; }
.fee-list dt{ font-weight:600; }
.fee-list dd{ margin:0; color:var(--text-dim); font-size:.92rem; grid-column:1; }
.fee-list dd.n{ grid-column:2; grid-row:1 / span 2; font-family:var(--font-display); font-size:var(--step-3); color:var(--text); font-variant-numeric:tabular-nums; }

/* ---------- about ---------- */
.about-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:var(--s-5); align-items:start; }
.prose p{ margin-bottom:var(--s-2); }
.who{ border-left:3px solid var(--accent); padding-left:var(--s-2); color:var(--text-dim); }

/* ---------- office ---------- */
.office{ background:var(--surface); border-top:var(--border); border-bottom:var(--border); }
.office h2{ max-width:40rem; }
.photos figure{ margin:0; }
.photos img{ width:100%; border-radius:.5rem; }
.photos figcaption{ font-size:.9rem; color:var(--text-dim); margin-top:.5rem; }

/* ---------- contact ---------- */
.contact-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:var(--s-5); align-items:start; }
.details{ background:var(--surface); border:var(--border); padding:var(--s-3); border-radius:.6rem; }
.details h3{ font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; font-family:var(--font-body); color:var(--text-dim); margin:var(--s-2) 0 .4rem; }
.details h3:first-child{ margin-top:0; }
.details .big a{ font-family:var(--font-display); font-size:var(--step-3); text-decoration:none; font-weight:600; }
.details address{ font-style:normal; }
.addr-link{ display:inline-block; color:inherit; text-decoration:underline; text-decoration-color:var(--accent); text-decoration-thickness:1px; text-underline-offset:.22em; border-radius:4px; }
.addr-link:hover{ text-decoration-thickness:2px; }
.addr-link:focus-visible{ outline:2px solid var(--deep); outline-offset:3px; }
.hours{ margin:0; }
.hours div{ display:flex; justify-content:space-between; gap:var(--s-2); padding:.35rem 0; border-bottom:var(--border); }
.hours dt{ font-weight:500; }
.hours dd{ margin:0; color:var(--text-dim); font-variant-numeric:tabular-nums; }

/* ---------- footer ---------- */
.site-foot{ background:var(--surface); border-top:var(--border); padding-block:var(--s-5) var(--s-4); }
.foot-grid{ display:grid; grid-template-columns:1.3fr .7fr .7fr; gap:var(--s-4); }
.foot-grid nav, .foot-actions{ display:flex; flex-direction:column; gap:.5rem; }
.foot-grid a{ color:var(--text-dim); text-decoration:none; }
.foot-grid a:hover, .foot-grid a:focus-visible{ color:var(--text); }
.foot-h{ font-family:var(--font-body); font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:var(--text-dim); margin:0 0 .4rem; }
.foot-brand img{ width:200px; margin-bottom:var(--s-2); }
.foot-brand p{ color:var(--text-dim); max-width:32rem; }
.crisis{ font-size:.9rem; }
.crisis a{ color:var(--text); font-weight:700; }
.foot-bar{
  display:flex; justify-content:space-between; align-items:center; gap:var(--s-2); flex-wrap:wrap;
  border-top:var(--border); margin-top:var(--s-4); padding-top:var(--s-3); font-size:.85rem; color:var(--text-dim);
}
.foot-bar a{ color:var(--text-dim); }
.foot-meta{ margin:0; }
.st-credit{ font-family:var(--font-mono, monospace); font-size:.75rem; letter-spacing:.02em; color:var(--text); opacity:.6; text-decoration:none; transition:color .2s ease, opacity .2s ease; }
.st-credit:hover{ opacity:1; }
.st-wm{ font-weight:700; }
.st-wm u{ color:var(--deep); text-decoration:none; }

/* skip link */
.skip-link{ position:absolute; left:-9999px; top:0; z-index:100; background:var(--deep); color:var(--deep-ink); padding:.6rem 1rem; border-radius:0 0 .4rem 0; }
.skip-link:focus{ left:0; }

/* mobile action bar */
.mobile-cta{ display:none; }

/* ---------- motion: default and reduced-motion states are the finished page ---------- */
.reveal{ opacity:1; transform:none; }
@media(prefers-reduced-motion:no-preference){
  .reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
  .reveal.in{ opacity:1; transform:none; }
  /* the signature moment: the lotus opens petal by petal, then the portrait settles in */
  .lotus-hero .petal{ transform-box:view-box; transform-origin:100px 130px; animation:bloom 1.1s cubic-bezier(.2,.7,.2,1) both; }
  .lotus-hero .p4{ animation-delay:.15s; }
  .lotus-hero .p3{ animation-delay:.35s; }
  .lotus-hero .p2{ animation-delay:.55s; }
  .lotus-hero .p1{ animation-delay:.75s; }
  .hero .frame{ animation:settle 1s .6s cubic-bezier(.2,.7,.2,1) both; }
  .hero-copy > *{ animation:rise .7s ease both; }
  .hero-copy > *:nth-child(2){ animation-delay:.15s; }
  .hero-copy > *:nth-child(3){ animation-delay:.3s; }
  .hero-copy > *:nth-child(4){ animation-delay:.45s; }
  .hero-copy > *:nth-child(5){ animation-delay:.6s; }
}
/* phone: the words arrive slowly first, the photo settles in underneath */
@media(max-width:1000px) and (prefers-reduced-motion:no-preference){
  .hero-copy > *{ animation-duration:1.4s; animation-timing-function:cubic-bezier(.2,.7,.2,1); }
  .hero-copy > *:nth-child(1){ animation-delay:.1s; }
  .hero-copy > *:nth-child(2){ animation-delay:.4s; }
  .hero-copy > *:nth-child(3){ animation-delay:.75s; }
  .hero-copy > *:nth-child(4){ animation-delay:1.05s; }
  .hero-copy > *:nth-child(5){ animation-delay:1.3s; }
  .hero .frame{ animation-delay:1.5s; animation-duration:1.2s; }
  .lotus-hero .p4{ animation-delay:1.7s; }
  .lotus-hero .p3{ animation-delay:1.9s; }
  .lotus-hero .p2{ animation-delay:2.1s; }
  .lotus-hero .p1{ animation-delay:2.3s; }
  .hero-note{ animation:rise 1s 2.2s ease both; }
}
@keyframes bloom{ from{ transform:scale(.15); opacity:0; } to{ transform:scale(1); opacity:1; } }
@keyframes settle{ from{ transform:translateY(24px) rotate(1.5deg); opacity:0; } to{ transform:none; opacity:1; } }
@keyframes rise{ from{ transform:translateY(14px); opacity:0; } to{ transform:none; opacity:1; } }
@media(prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } .reveal, .lotus-hero .petal, .hero .frame, .hero-copy > *, .hero-note{ animation:none; transition:none; opacity:1; transform:none; } }

/* ---------- responsive ---------- */
@media(max-width:1180px){
  .hero-visual{ flex-direction:column; }
  .frame-wrap{ flex-basis:auto; width:100%; max-width:24rem; }
  .hero-note{ flex-basis:auto; width:100%; max-width:24rem; margin-left:0; }
}
@media(max-width:1000px){
  .hero-grid, .fees-grid, .about-grid, .contact-grid{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr; }
  .band{ padding-block:var(--s-5); }
}
@media(max-width:768px){
  .nav-toggle{ display:inline-flex; align-items:center; gap:.4rem; }
  .site-head nav{ display:none; flex-direction:column; align-items:flex-start; width:100%; padding-top:var(--s-2); }
  .site-head nav.open{ display:flex; }
  .site-head{ flex-wrap:wrap; }
  .brand img{ width:170px; }
  .mobile-cta{
    display:grid; grid-template-columns:1fr 1.6fr; gap:.5rem; position:fixed; left:0; right:0; bottom:0; z-index:40;
    background:var(--surface); border-top:var(--border); padding:.6rem;
  }
  .mobile-cta a{ text-align:center; text-decoration:none; padding:.75rem .5rem; border-radius:999px; font-weight:600; border:1px solid rgba(42,38,34,.35); }
  .mobile-cta a.primary{ background:var(--deep); color:var(--deep-ink); border-color:transparent; }
  body{ padding-bottom:4.5rem; }
  .hero{ padding-block:var(--s-3) var(--s-5); }
  .frame{ max-width:20rem; }
  .lotus-hero{ width:min(30rem, 150%); bottom:-4%; opacity:.38; }
  .fee-list dd.n{ font-size:var(--step-2); }
}

/* ---------- specialty pages ---------- */
.narrow-wide{ max-width:56rem; }
.page-hero{ padding-block:var(--s-5); }
.page-hero::before{ content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(50rem 22rem at 90% 0%, rgba(196,161,132,.2), transparent 60%); }
.page-hero .wrap{ position:relative; }
.page-hero h1{ font-size:clamp(2.3rem, 3.8vw, 3.6rem); }
.page-hero h1 em{ font-style:italic; color:var(--deep); }
.feel-list{ list-style:none; padding:0; margin:0; display:grid; gap:.7rem; }
.feel-list li{ position:relative; padding-left:1.4rem; font-size:var(--step-1); }
.feel-list li::before{ content:""; position:absolute; left:0; top:.65em; width:.55rem; height:.55rem; border-radius:50%; background:var(--accent); }
.what-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:var(--s-5); align-items:start; }
.what-grid p{ max-width:60ch; }
.who-list{ list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:.6rem; }
.who-list li{ background:var(--surface); border:var(--border); border-radius:999px; padding:.55rem 1rem; }
.faq{ background:var(--surface); border-top:var(--border); border-bottom:var(--border); }
.faq-list{ margin:0; }
.faq-list div{ padding:1rem 0; border-bottom:var(--border); }
.faq-list dt{ font-family:var(--font-display); font-size:var(--step-2); font-weight:600; margin-bottom:.4rem; }
.faq-list dd{ margin:0; color:var(--text-dim); max-width:60ch; }
.cta-grid{ display:grid; grid-template-columns:1.3fr .7fr; gap:var(--s-5); align-items:start; }
.cta-grid p{ max-width:52ch; }
.btn.light{ background:var(--deep-ink); color:var(--deep); }
.btn.light:hover, .btn.light:focus-visible{ background:rgba(246,242,236,.85); }
.btn.ghost-light{ border:1px solid rgba(246,242,236,.6); color:var(--deep-ink); }
.btn.ghost-light:hover, .btn.ghost-light:focus-visible{ border-color:var(--deep-ink); }
.related{ background:rgba(246,242,236,.1); border:1px solid rgba(246,242,236,.25); border-radius:.6rem; padding:var(--s-3); }
.related h3{ font-family:var(--font-body); font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:var(--deep-ink); margin:0 0 .6rem; }
.related ul{ list-style:none; padding:0; margin:0; display:grid; gap:.45rem; }
.related a{ color:var(--deep-ink); }
.card h3 a{ color:inherit; text-decoration:none; }
.card h3 a:hover, .card h3 a:focus-visible{ text-decoration:underline; }
.card-link{ margin-top:auto; padding-top:.6rem; font-weight:600; color:var(--deep); text-decoration:none; font-size:.92rem; }
.card-link:hover, .card-link:focus-visible{ text-decoration:underline; }
@media(max-width:1000px){ .what-grid, .cta-grid{ grid-template-columns:1fr; } }

/* ---------- legal pages ---------- */
.legal h1{ font-size:clamp(2rem, 3.4vw, 3rem); }
.legal h2{ font-size:var(--step-2); margin-top:var(--s-4); }
.legal p, .legal li{ max-width:70ch; }
.legal ul{ padding-left:1.2rem; }
.legal ul.sub{ list-style:lower-alpha; margin-left:1.2rem; }
.legal .item b{ margin-right:.25rem; }

/* ---------- blog ---------- */
.posts-band{ background:var(--surface); border-top:var(--border); border-bottom:var(--border); }
.post-card{ background:var(--bg); border:var(--border); border-radius:.6rem; overflow:hidden; display:flex; flex-direction:column; }
.post-img{ display:block; }
.post-img img{ width:100%; aspect-ratio:3/2; object-fit:cover; }
.post-body{ padding:var(--s-3); display:flex; flex-direction:column; gap:.4rem; }
.post-date{ font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; color:var(--text-dim); margin:0; }
.post-body h2{ font-size:var(--step-2); margin:0; }
.post-body h2 a{ color:inherit; text-decoration:none; }
.post-body h2 a:hover, .post-body h2 a:focus-visible{ text-decoration:underline; }
.post-body p{ margin:0; color:var(--text-dim); }
.post-more{ margin-top:auto; padding-top:.5rem; font-weight:600; color:var(--deep); text-decoration:none; }
.post-more:hover, .post-more:focus-visible{ text-decoration:underline; }
.post-figure{ margin:0 0 var(--s-4); }
.post-article{ font-size:var(--step-1); }
.post-article h2{ font-size:var(--step-3); margin-top:var(--s-4); }
.post-article h3{ margin-top:var(--s-3); }
.post-article blockquote{ margin:var(--s-3) 0; padding:.2rem 0 .2rem var(--s-3); border-left:3px solid var(--accent); color:var(--text-dim); font-family:var(--font-display); font-size:var(--step-2); }
.post-article ul, .post-article ol{ padding-left:1.3rem; }
.post-back{ margin-top:var(--s-4); }
.post-back a{ font-weight:600; color:var(--deep); }

/* ---------- hover: the cards lift, the photo breathes, nothing moves for reduced-motion ---------- */
.card, .post-card, .steps li, .hero-note{ transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .35s ease; }
.card:hover, .post-card:hover, .steps li:hover{ transform:translateY(-4px); box-shadow:0 22px 40px -24px rgba(42,38,34,.45); border-color:var(--accent); }
.card:hover .chip{ background:var(--deep); fill:var(--deep-ink); }
.chip{ transition:background .35s ease, fill .35s ease; }
.card-link, .post-more{ transition:color .2s ease; }
.card:hover .card-link, .post-card:hover .post-more{ color:var(--text); text-decoration:underline; }
.post-img{ overflow:hidden; }
.post-img img{ transition:transform 1.2s cubic-bezier(.2,.7,.2,1); }
.post-card:hover .post-img img{ transform:scale(1.04); }
.steps li:hover::before{ background:var(--accent); color:var(--text); }
.steps li::before{ transition:background .35s ease, color .35s ease; }
.btn{ transition:transform .2s ease, background .2s ease, border-color .2s ease; }
.btn:hover{ transform:translateY(-1px); }
@media(prefers-reduced-motion:reduce){
  .card, .post-card, .steps li, .hero-note, .chip, .post-img img, .steps li::before, .btn{ transition:none; }
  .card:hover, .post-card:hover, .steps li:hover, .btn:hover{ transform:none; }
  .post-card:hover .post-img img{ transform:none; }
}
/* inline consult call-to-action at the end of every post */
.post-cta{ margin:var(--s-4) 0 var(--s-3); padding:var(--s-3); background:var(--surface); border:var(--border); border-left:3px solid var(--deep); border-radius:.6rem; }
.post-cta h2{ font-size:var(--step-2); margin:0 0 .35rem; }
.post-cta p{ margin:0 0 .8rem; color:var(--text-dim); }
.post-cta .cta-row{ margin:0; }
