/* Chattams Rooted Care Collective — site styles (hand-edited; pages are generated by scripts/build.mjs) */

/* Fluid scale (same as /matrix): everything is sized in rem. 1rem = 16px up to a 1440px-wide screen;
   beyond that the whole page scales up proportionally (limited by screen height so ultrawides don't get huge). */
html { font-size: max(16px, min(100vw / 90, 100vh / 45)); }

:root {
  --forest: #355E3B;
  --forest-dk: #284A2D;
  --forest-ink: #2B4D31;
  --sage: #8FAF88;
  --sage-lt: #E4EBDA;
  --sage-tint: #EEF2E6;
  --terra: #C76D4E;
  --terra-dk: #A9543A;
  --terra-lt: #EBB79E;
  --peach: #F6D9C3;
  --gold: #C5A24D;
  --gold-dk: #A9863A;
  --gold-lt: #E5D3A2;
  --cream: #F7F1E3;
  --cream-lt: #FBF7EE;
  --paper: #FFFCF6;
  --cocoa: #5A4032;
  --cocoa-dk: #46311F;
  --text: #5A4032;
  --muted: #84695A;
  --line: rgba(197, 162, 77, .45);
  --serif: 'Cormorant Garamond', 'Times New Roman', serif;
  --sans: 'DM Sans', system-ui, sans-serif;
  --max: 87.5rem;
  --gutter: clamp(1.25rem, 5vw, 4.5rem);
  --ease: cubic-bezier(.22, .61, .36, 1);
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --header-h: 5rem;
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 6rem; overflow-x: hidden; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--cream); color: var(--text);
  font-family: var(--sans); font-size: 1rem; line-height: 1.65;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  overflow-x: hidden; position: relative; width: 100%;
  overscroll-behavior-x: none;
}
/* Nothing may ever widen the page on mobile */
@supports (overflow: clip) { html, body { overflow-x: clip; } }
main, section, footer { max-width: 100%; }
a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
h1, h2, h3 { font-family: var(--serif); font-weight: 600; color: var(--forest); margin: 0; line-height: 1.06; letter-spacing: -.005em; }
h2 { font-size: 2.75rem; text-wrap: balance; }
h3 { font-size: 1.5rem; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: .2rem; border-radius: .25rem; }
::selection { background: var(--terra-lt); color: var(--cocoa-dk); }
.defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 200; background: var(--forest); color: var(--cream); padding: .6rem 1rem; border-radius: .5rem; font-size: .875rem; }
.skip-link:focus { top: 1rem; }
.wrap { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); }

.eyebrow { display: inline-flex; align-items: center; gap: .9rem; font-size: .75rem; font-weight: 500; letter-spacing: .32em; text-transform: uppercase; color: var(--cocoa); }
.eyebrow-lined::before, .eyebrow-lined::after { content: ''; width: 2.5rem; height: 1px; background: var(--gold); }
.gold-rule { display: block; width: 3.5rem; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--gold), var(--gold-lt)); margin: 1rem 0 1.25rem; transform-origin: left; }
.lede { font-size: 1.0625rem; line-height: 1.7; color: var(--cocoa); }

/* ---------- image placeholders: a missing file shows its own filename ---------- */
.ph { position: relative; }
.ph img, .ph picture { width: 100%; height: 100%; object-fit: cover; }
.ph picture { display: block; }
.ph.img-error img, .ph.img-error picture { visibility: hidden; }
.ph.img-error::after {
  content: attr(data-label);
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  font: 500 .6875rem/1 var(--sans); letter-spacing: .06em; white-space: nowrap;
  color: var(--cocoa); background: rgba(251, 247, 238, .9);
  border: 1px dashed var(--gold); border-radius: .4rem; padding: .5rem .75rem;
  pointer-events: none; z-index: 2;
}
.ph-photo { background: #EDE3CF; overflow: hidden; }
.ph-photo.img-error { background: repeating-linear-gradient(135deg, #EFE6D3 0 .6rem, #E9DDC6 .6rem 1.2rem); }

/* ---------- buttons ---------- */
.btn {
  position: relative; isolation: isolate; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center; gap: .65rem;
  min-height: 3.25rem; padding: 0 1.75rem; border-radius: 999px; border: 1px solid transparent;
  font: 500 .9375rem/1 var(--sans); letter-spacing: .01em; white-space: nowrap; cursor: pointer;
  transition: background-color .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);
}
.btn .ico { width: 1.1rem; height: 1.1rem; flex: none; }
.btn .arrow { width: 1.05rem; height: 1.05rem; flex: none; transition: transform .3s var(--ease); }
.btn:hover .arrow { transform: translateX(.25rem); }
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }
/* soft sheen that passes across on hover */
.btn::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, .22) 50%, transparent 70%); transform: translateX(-120%); transition: transform .8s var(--ease); }
.btn:hover::after { transform: translateX(120%); }
.btn-forest { background: var(--forest); color: var(--cream); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 .6rem 1.4rem -.7rem rgba(40, 74, 45, .7); }
.btn-forest:hover { background: var(--forest-dk); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 .9rem 1.8rem -.8rem rgba(40, 74, 45, .75); }
.btn-ghost { background: rgba(251, 247, 238, .55); color: var(--forest); border-color: rgba(53, 94, 59, .45); backdrop-filter: blur(4px); }
.btn-ghost:hover { background: var(--cream-lt); border-color: var(--forest); }
.btn-cream { background: var(--cream); color: var(--forest); box-shadow: 0 .6rem 1.4rem -.8rem rgba(0, 0, 0, .45); }
.btn-cream .ico { color: var(--gold-dk); }
.btn-cream:hover { background: #fff; }
.btn-sm { min-height: 2.75rem; padding: 0 1.25rem; font-size: .875rem; }
.btn-block { width: 100%; }
.text-link { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.25rem; font-weight: 600; font-size: .9375rem; color: var(--terra-dk); }
.text-link { border-bottom: 1px solid rgba(169, 84, 58, .35); padding-bottom: .15rem; transition: border-color .3s var(--ease), color .3s var(--ease); }
.text-link:hover { border-color: currentColor; }
.text-link .arrow { width: 1rem; height: 1rem; transition: transform .3s var(--ease); }
.text-link:hover .arrow { transform: translateX(.25rem); }
.text-link.on-dark { color: var(--gold-lt); border-color: rgba(229, 211, 162, .35); }
.link-btn { background: none; border: 0; padding: 0; color: var(--forest); text-decoration: underline; text-underline-offset: .2em; cursor: pointer; font-weight: 500; }

/* ---------- header ---------- */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 70; transition: background-color .4s var(--ease), box-shadow .4s var(--ease), backdrop-filter .4s; }
.header-inner { display: flex; align-items: flex-start; gap: 2rem; }
.brand { display: block; flex: none; position: relative; z-index: 2; margin-top: .75rem; transition: margin .45s var(--ease); }
.brand-logo { width: 12.5rem; height: 11.5rem; transition: width .45s var(--ease), height .45s var(--ease); }
.brand-logo img { object-fit: contain; object-position: left top; }
.brand-logo.img-error { border-radius: 50%; background: radial-gradient(circle, rgba(251, 247, 238, .9), rgba(251, 247, 238, .4)); border: 1px dashed rgba(197, 162, 77, .6); width: 10.5rem; height: 10.5rem; }
.header-right { flex: 1; min-width: 0; padding-left: 2rem; margin-top: 1.25rem; border-left: 1px solid var(--line); transition: margin .45s var(--ease); }
.topbar { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .5rem 2.25rem; font-size: .8125rem; color: var(--cocoa); max-height: 2.5rem; overflow: hidden; transition: max-height .45s var(--ease), opacity .3s var(--ease), margin .45s var(--ease); margin-bottom: .6rem; }
.topbar li, .topbar a { display: inline-flex; align-items: center; gap: .5rem; }
.topbar a:hover { color: var(--forest); }
.topbar .ico { width: 1rem; height: 1rem; color: var(--terra); }
.navrow { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.main-nav { display: flex; align-items: center; gap: .25rem; }
.nav-link { position: relative; display: inline-flex; align-items: center; gap: .3rem; padding: .7rem .8rem; font-size: .9375rem; font-weight: 500; color: var(--forest-ink); transition: color .25s var(--ease); }
.nav-link .chev { width: .85rem; height: .85rem; transition: transform .3s var(--ease); }
.nav-link::after { content: ''; position: absolute; left: .8rem; right: .8rem; bottom: .35rem; height: 1.5px; border-radius: 2px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.nav-link:hover::after, .nav-link.is-active::after, .nav-item.open > .nav-link::after { transform: scaleX(1); }
.has-dd .nav-link::after { right: 1.95rem; }
.nav-item { position: relative; }
.nav-item.open .chev { transform: rotate(180deg); }
.dd { position: absolute; top: 100%; left: -.5rem; padding-top: .5rem; opacity: 0; visibility: hidden; transform: translateY(.5rem); transition: opacity .3s var(--ease), transform .3s var(--ease), visibility 0s .3s; z-index: 5; }
.nav-item.open .dd { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.dd-panel { width: 19rem; padding: .6rem; border-radius: 1.1rem; background: var(--paper); border: 1px solid rgba(197, 162, 77, .3); box-shadow: 0 1.5rem 3rem -1.5rem rgba(70, 49, 31, .35), 0 .25rem .75rem -.4rem rgba(70, 49, 31, .15); }
.dd-link { display: block; padding: .65rem .85rem; border-radius: .7rem; transition: background-color .2s var(--ease); }
.dd-link:hover, .dd-link:focus-visible { background: var(--sage-tint); }
.dd-title { display: block; font-family: var(--serif); font-size: 1.15rem; font-weight: 600; color: var(--forest); line-height: 1.2; }
.dd-desc { display: block; font-size: .78rem; color: var(--muted); line-height: 1.4; margin-top: .1rem; }
.dd-all { display: flex; align-items: center; gap: .4rem; margin: .35rem .85rem .35rem; padding-top: .7rem; border-top: 1px solid rgba(197, 162, 77, .3); font-size: .8rem; font-weight: 600; color: var(--terra-dk); }
.dd-all .arrow { width: .9rem; height: .9rem; transition: transform .25s var(--ease); }
.dd-all:hover .arrow { transform: translateX(.2rem); }
.menu-toggle { display: none; }

/* scrolled: compact, translucent cream */
.site-header.scrolled { background: rgba(247, 241, 227, .86); backdrop-filter: saturate(1.2) blur(14px); -webkit-backdrop-filter: saturate(1.2) blur(14px); box-shadow: 0 1px 0 rgba(197, 162, 77, .25), 0 .75rem 2rem -1.5rem rgba(70, 49, 31, .35); }
.site-header.scrolled .brand { margin: .45rem 0; }
.site-header.scrolled .brand-logo { width: 4.75rem; height: 4.25rem; }
.site-header.scrolled .brand-logo.img-error { width: 4.25rem; height: 4.25rem; }
.site-header.scrolled .brand-logo.img-error::after { font-size: .55rem; padding: .3rem .4rem; }
.site-header.scrolled .header-right { margin-top: .7rem; }
.site-header.scrolled .topbar { max-height: 0; opacity: 0; margin-bottom: 0; }

/* ---------- mobile menu ---------- */
.mobile-menu {
  position: fixed; inset: 0; z-index: 65; background: var(--cream);
  display: flex; flex-direction: column; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain;
  padding: 6.5rem var(--gutter) 2rem;
  clip-path: circle(0 at calc(100% - var(--gutter) - 1.4rem) 2.5rem); visibility: hidden;
  transition: clip-path .7s var(--ease-out), visibility 0s .7s;
}
body.menu-open .mobile-menu { clip-path: circle(150% at calc(100% - var(--gutter) - 1.4rem) 2.5rem); visibility: visible; transition: clip-path .8s var(--ease-out), visibility 0s; }
.mm-art { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.mm-branch { position: absolute; right: -2rem; bottom: -1rem; width: 11rem; opacity: .9; }
.mm-branch-2 { right: auto; left: -3rem; bottom: auto; top: 30%; width: 8rem; opacity: .45; }
.mm-nav { position: relative; display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.mm-link { display: block; padding: .8rem 0; font-family: var(--serif); font-size: 2rem; font-weight: 600; line-height: 1.1; color: var(--forest); }
.mm-nav > .mm-link, .mm-group { border-bottom: 1px solid rgba(197, 162, 77, .3); }
.mm-link.is-active { color: var(--terra-dk); }
.mm-row { display: flex; align-items: center; justify-content: space-between; }
.mm-exp { width: 2.75rem; height: 2.75rem; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line); background: transparent; color: var(--forest); cursor: pointer; }
.mm-exp .ico { width: 1.1rem; height: 1.1rem; transition: transform .35s var(--ease); }
.mm-exp[aria-expanded="true"] .ico { transform: rotate(45deg); }
.mm-sub { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s var(--ease); }
.mm-sub > div { overflow: hidden; }
.mm-group.open .mm-sub { grid-template-rows: 1fr; }
.mm-sub a { display: block; padding: .45rem 0 .45rem 1rem; font-size: 1rem; color: var(--cocoa); border-left: 1px solid var(--gold); }
.mm-sub a:last-child { margin-bottom: 1rem; }
.mm-foot { position: relative; margin-top: auto; padding-top: 2rem; }
.mm-foot p { margin-top: 1.25rem; font-size: .9375rem; line-height: 1.8; color: var(--cocoa); }
.mm-foot p a { color: var(--forest); }
.mobile-menu .mm-nav > *, .mobile-menu .mm-foot { opacity: 0; transform: translateY(1rem); transition: opacity .5s var(--ease), transform .6s var(--ease); }
body.menu-open .mobile-menu .mm-nav > *, body.menu-open .mobile-menu .mm-foot { opacity: 1; transform: none; transition-delay: calc(.18s + var(--i, 0) * 60ms); }
body.menu-open { overflow: hidden; }

/* ---------- hero ---------- */
.hero { position: relative; overflow: hidden; min-height: clamp(42rem, 100svh, 52rem); display: flex; align-items: center; padding: 8.5rem 0 9rem; }
@supports (overflow: clip) { .hero { overflow: clip; } }
.hero-sky { position: absolute; inset: 0; background: linear-gradient(180deg, #FBF4E8 0%, #F9EAD9 38%, #F4D8BF 70%, #EFCBAE 100%); }
.hero-glow { position: absolute; width: 64rem; height: 64rem; left: 38%; top: 22%; transform: translate(-50%, 0); border-radius: 50%; background: radial-gradient(circle, rgba(253, 228, 190, .95) 0%, rgba(248, 210, 172, .5) 35%, rgba(248, 210, 172, 0) 65%); }
.hero-drawn { position: absolute; left: 4%; right: 24%; bottom: 6rem; height: 54%; color: #CF9F86; }
.hero-skyline-art { width: 100%; height: 100%; }
.hero-skyline-art .sky-back { opacity: .32; }
.hero-skyline-art .sky-front { opacity: .55; }
.hero-skyline-art .sky-line { opacity: .55; }
.hero-photo { position: absolute; inset: 0; }
.hero-photo img { object-position: 35% 72%; }
/* the supplied skyline is a transparent 3:1 cut-out: show it whole, full-width, sitting on the waves */
.hero-photo:not(.img-error) { inset: auto -5% 2.5rem; aspect-ratio: 2172 / 724; }
.hero-photo:not(.img-error) img { object-fit: contain; object-position: 50% 100%; }
.hero-sky:has(.hero-photo:not(.img-error)) .hero-drawn { display: none; }
.hero-photo.img-error::after { left: var(--gutter); top: auto; bottom: 9.5rem; transform: none; }
.hero-wash { position: absolute; inset: 0; background:
  linear-gradient(180deg, rgba(251, 244, 232, .95) 0%, rgba(251, 244, 232, .35) 32%, rgba(251, 244, 232, 0) 55%),
  radial-gradient(ellipse 40% 45% at 40% 48%, rgba(251, 244, 232, .78), rgba(251, 244, 232, 0) 100%); }
.hero-mother { position: absolute; z-index: 2; right: 3.5%; bottom: 3.5rem; width: 39.5%; top: 6.5rem; height: auto; }
.mother-halo { position: absolute; inset: 8% -10% 0; border-radius: 50% 50% 0 0; background: radial-gradient(ellipse 55% 60% at 50% 55%, rgba(255, 226, 190, .85), rgba(255, 226, 190, 0) 70%); }
.mother-img { position: absolute; inset: 0; }
.mother-img img { object-fit: contain; object-position: 50% 100%; }
.mother-img.img-error { border-radius: 48% 48% 0 0 / 34% 34% 0 0; background: linear-gradient(180deg, rgba(246, 217, 195, .55), rgba(235, 183, 158, .45)); border: 1px dashed rgba(197, 162, 77, .55); border-bottom: 0; }
.hero-flora { position: absolute; z-index: 3; right: 0; bottom: 2.5rem; height: 82%; width: 25rem; pointer-events: none; }
.hero-cluster { width: 100%; height: 100%; }
.hero-flora-left { position: absolute; z-index: 3; left: 0; bottom: 3.5rem; height: 22rem; width: 13rem; pointer-events: none; }
.hero-left-leaves { width: 100%; height: 100%; }
.hero-inner { position: relative; z-index: 4; }
.hero-copy { width: 46rem; max-width: 100%; margin-left: 8.5rem; text-align: center; display: flex; flex-direction: column; align-items: center; }
.hero h1 { font-size: 4.1rem; font-weight: 600; line-height: 1.02; margin: 1.25rem 0 0; color: var(--forest); }
.hl { display: block; overflow: hidden; padding: 0 .1em .08em; white-space: nowrap; }
.hl > span { display: block; }
.swoosh { width: 24rem; max-width: 80%; height: 1.4rem; margin: .5rem auto 0; overflow: visible; }
.hero .lede { max-width: 31rem; margin-top: 1rem; }
.hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .9rem; margin-top: 2rem; }
.hero-waves { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 8rem; z-index: 5; pointer-events: none; }

/* hero entrance (gentle, cinematic) */
.js .hero-sky { opacity: 0; transition: opacity 1.6s var(--ease); }
.js .hero-load { opacity: 0; transform: translateY(1.1rem); transition: opacity 1s var(--ease) var(--d, 0s), transform 1.1s var(--ease-out) var(--d, 0s); }
.js .hl > .hero-load { opacity: 1; transform: translateY(108%); transition: transform 1.25s var(--ease-out) var(--d, 0s); }
.js .mother-img, .js .mother-halo { opacity: 0; transform: translateY(1.5rem); transition: opacity 1.6s var(--ease) .45s, transform 1.8s var(--ease-out) .45s; }
.js .hero-flora, .js .hero-flora-left { opacity: 0; transition: opacity 1.4s var(--ease) .6s; }
.js .bloom-in { opacity: 0; transform: scale(.7) rotate(-8deg); transform-box: fill-box; transform-origin: center; transition: opacity 1.2s var(--ease) var(--d), transform 1.6s var(--ease-out) var(--d); }
.js .swoosh path { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.4s var(--ease) 1s; }
.js .swoosh path + path { transition-delay: 1.25s; }
.ready .hero-sky, .ready .hero-flora, .ready .hero-flora-left, .ready .hero-load, .ready .mother-img, .ready .mother-halo, .ready .bloom-in { opacity: 1; transform: none; }
.ready .hl > .hero-load { transform: none; }
.ready .swoosh path { stroke-dashoffset: 0; }

/* leaf sway */
.sway { transform-box: fill-box; transform-origin: 50% 100%; animation: sway 9s ease-in-out infinite alternate; }
.sway-b { animation-duration: 11s; animation-delay: -4s; }
.sway-c { animation-duration: 13s; animation-delay: -7s; }
@keyframes sway { from { transform: rotate(-1.4deg); } to { transform: rotate(1.8deg); } }

/* ---------- scroll reveals ---------- */
.js [data-rv="up"] { opacity: 0; transform: translateY(1.75rem); transition: opacity .8s var(--ease) var(--d, 0s), transform .95s var(--ease-out) var(--d, 0s); }
.js [data-rv="mask"] { clip-path: inset(0 -.3em 100% -.3em); transform: translateY(.45em); transition: clip-path 1s var(--ease-out) var(--d, 0s), transform 1s var(--ease-out) var(--d, 0s); }
.js [data-rv="draw"] { transform: scaleX(0); transform-origin: left; transition: transform 1.2s var(--ease) calc(var(--d, 0s) + .25s); }
.js [data-rv="stagger"] > * { opacity: 0; transform: translateY(1.25rem); transition: opacity .7s var(--ease) calc(var(--i, 0) * 110ms), transform .85s var(--ease-out) calc(var(--i, 0) * 110ms); }
.js [data-rv="unveil"] { clip-path: inset(12% 10% 12% 10% round 2rem); transition: clip-path 1.3s var(--ease-out); }
.js [data-rv="unveil"] img { transform: scale(1.1); transition: transform 1.6s var(--ease-out); }
.js [data-rv].in, .js [data-rv="stagger"].in > * { opacity: 1; transform: none; }
.js [data-rv="mask"].in { clip-path: inset(-.3em -.3em -.3em -.3em); }
.js [data-rv="unveil"].in { clip-path: inset(0 0 0 0 round 0); }
.js [data-rv="unveil"].in img { transform: none; }
.js .why-ico svg [pathLength] { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.6s var(--ease) calc(.3s + var(--i, 0) * 140ms); }
.js .in .why-ico svg [pathLength] { stroke-dashoffset: 0; }

/* ---------- section heads ---------- */
.sec-head { margin-bottom: 2.25rem; }
.sec-head h2 { display: inline-block; }
.sec-line { display: block; height: 1px; background: linear-gradient(90deg, var(--gold), rgba(197, 162, 77, 0)); width: 7rem; margin-top: .9rem; }
.sec-sub { margin-top: .8rem; font-size: .75rem; font-weight: 500; letter-spacing: .26em; text-transform: uppercase; color: var(--cocoa); }
.sec-head-row { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem 1.75rem; }
.sec-head-row .sec-line { flex: 1; min-width: 4rem; width: auto; margin: 0; }
.sec-head-row .sec-sub { margin: 0; }

/* ---------- our story ---------- */
.story { position: relative; padding: 2.5rem 0 4rem; }
.story-grid { display: grid; grid-template-columns: 1fr .95fr 2.2fr; gap: 2.75rem; align-items: center; }
.story-intro h2 { font-size: 3rem; }
.story-intro p { font-size: 1rem; }
.story-photo { position: relative; }
.story-img { aspect-ratio: 4 / 3.5; border-radius: 3rem .9rem 3rem .9rem; box-shadow: 0 1.5rem 3rem -1.75rem rgba(70, 49, 31, .55); }
.unveil { border-radius: 3rem .9rem 3rem .9rem; }
.story-branch { position: absolute; z-index: 2; left: -3.25rem; top: -2rem; width: 6rem; pointer-events: none; }
.story-pillars { display: grid; grid-template-columns: repeat(3, 1fr); }
.pillar { padding: .25rem 1.6rem; border-left: 1px solid var(--line); }
.pillar-ico { width: 2.75rem; height: 2.75rem; color: var(--terra); margin: 0 0 .85rem; }
.pillar h3 { font-size: 1.6rem; margin-bottom: .55rem; }
.pillar p { font-size: .9rem; line-height: 1.6; }
.values li { display: flex; align-items: center; gap: .55rem; font-size: .9rem; line-height: 1.85; }
.brush-check { width: 1.05rem; height: .9rem; flex: none; color: var(--gold); }

/* ---------- why doulas matter ---------- */
.why { padding: 0 0 4.5rem; }
.why-band { display: grid; grid-template-columns: minmax(0, 27rem) 1fr; align-items: stretch; border-radius: 2.75rem; background: linear-gradient(90deg, rgba(251, 247, 238, .4), var(--paper) 40%); border: 1px solid rgba(197, 162, 77, .28); box-shadow: 0 1.5rem 3rem -2.5rem rgba(70, 49, 31, .4); }
.why-intro { position: relative; padding: 2.5rem 3rem 2.5rem 6.25rem; border-radius: 2.75rem 7rem 7rem 2.75rem; background: radial-gradient(ellipse at 0% 50%, #DCE6D2, var(--sage-lt) 60%, #EAF0E2); }
.why-branch { position: absolute; left: -1.25rem; top: 50%; width: 6.5rem; transform: translateY(-46%); pointer-events: none; }
.why-intro h2 { font-size: 2.6rem; margin-bottom: .8rem; }
.why-intro p { font-size: .9375rem; }
.why-list { display: grid; grid-template-columns: repeat(5, 1fr); align-items: center; padding: 1.75rem 1.5rem; }
.why-list li { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: .9rem; padding: .75rem 1rem; }
.why-list li + li::before { content: ''; position: absolute; left: 0; top: 15%; bottom: 15%; width: 1px; background: linear-gradient(180deg, transparent, var(--line), transparent); }
.why-ico { display: grid; place-items: center; width: 4rem; height: 4rem; border-radius: 50%; transition: transform .35s var(--ease), background-color .35s var(--ease); }
.why-ico .ico { width: 2.6rem; height: 2.6rem; }
.why-ico.c0 { color: var(--terra); }
.why-ico.c1 { color: var(--gold-dk); }
.why-ico.c2 { color: var(--forest); }
.why-list li:hover .why-ico { transform: translateY(-.25rem); background: rgba(197, 162, 77, .1); }
.why-list h3 { font-size: 1.2rem; line-height: 1.15; }

/* ---------- trimesters ---------- */
.trimesters { padding: 0 0 4.5rem; }
.tri-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.tri-card {
  position: relative; overflow: hidden; display: flex; flex-direction: column;
  padding: 1.75rem 1.6rem 4.75rem; border-radius: 1.5rem; border: 1px solid rgba(255, 255, 255, .7);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), 0 1px 0 rgba(90, 64, 50, .06), 0 1rem 2.25rem -1.75rem rgba(90, 64, 50, .45);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.tri-card.tone-gold { background: linear-gradient(160deg, #FCF6E7 0%, #F4E5C2 100%); --tone: var(--gold-dk); }
.tri-card.tone-sage { background: linear-gradient(160deg, #F0F4E8 0%, #D9E5CE 100%); --tone: var(--forest); }
.tri-card.tone-terra { background: linear-gradient(160deg, #FCEAE0 0%, #F1C7B1 100%); --tone: var(--terra-dk); }
.tri-card.tone-peach { background: linear-gradient(160deg, #FEF3E6 0%, #F8DCC2 100%); --tone: var(--terra); }
.tri-card:hover { transform: translateY(-.35rem); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), 0 1px 0 rgba(90, 64, 50, .06), 0 1.6rem 2.75rem -1.75rem rgba(90, 64, 50, .55); }
.tri-num { position: absolute; top: .4rem; right: 1.1rem; font: italic 600 5.5rem/1 var(--serif); color: var(--tone); opacity: .1; pointer-events: none; }
.tri-ico { display: block; width: 2.75rem; height: 2.75rem; color: var(--tone); margin-bottom: .9rem; transition: transform .45s var(--ease); transform-origin: 50% 100%; }
.tri-ico .ico { width: 100%; height: 100%; }
.tri-card:hover .tri-ico { transform: rotate(-6deg) translateY(-2px); }
.tri-card h3 { font-size: 1.65rem; }
.tri-sum { margin: .55rem 0 1rem; font: italic 500 1.08rem/1.4 var(--serif); color: var(--cocoa); }
.tri-list { border-top: 1px solid rgba(90, 64, 50, .14); padding-top: .85rem; }
.tri-list li { position: relative; padding-left: 1rem; font-size: .8625rem; line-height: 1.5; margin: .2rem 0; color: var(--cocoa); }
.tri-list li::before { content: ''; position: absolute; left: 0; top: .62em; width: .4rem; height: 1px; background: var(--tone); }
.tri-go { position: absolute; right: 1.4rem; bottom: 1.4rem; width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--tone); color: var(--tone); transition: background-color .3s var(--ease), color .3s var(--ease); }
.tri-go .arrow { width: 1.05rem; height: 1.05rem; transition: transform .3s var(--ease); }
.tri-card:hover .tri-go { background: var(--tone); color: var(--cream); }
.tri-card:hover .tri-go .arrow { transform: translateX(.2rem); }

/* ---------- labor + signature journey ---------- */
.duo { padding: 0 0 4.5rem; overflow: hidden; }
@supports (overflow: clip) { .duo { overflow: clip; } }
.duo-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 3.5rem; align-items: center; }
.labor { position: relative; display: grid; grid-template-columns: 1.1fr 1fr; min-height: 22rem; border-radius: 2rem 2rem 2rem 5rem; overflow: hidden; background: var(--cocoa); box-shadow: 0 1.75rem 3rem -2rem rgba(70, 49, 31, .7); }
.labor-photo { position: relative; min-height: 18rem; }
.labor-photo::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(90, 64, 50, 0) 55%, var(--cocoa) 100%); pointer-events: none; }
.labor .ph-photo { background: #6D5040; }
.labor .ph-photo.img-error { background: repeating-linear-gradient(135deg, #654A3B 0 .6rem, #5F4536 .6rem 1.2rem); }
.labor-body { position: relative; z-index: 2; padding: 2.5rem 2.5rem 2.5rem .75rem; color: var(--cream); }
.labor-body h2 { color: var(--cream); font-size: 2.4rem; margin-bottom: 1.25rem; }
.check-list li { display: flex; gap: .7rem; align-items: flex-start; font-size: .9375rem; line-height: 1.45; margin: .45rem 0; }
.check-list .ico { width: 1rem; height: 1rem; flex: none; margin-top: .15em; color: var(--gold); }
.labor .text-link { margin-top: 1.25rem; }
.duo-journey { position: relative; }
.journey-branch { position: absolute; right: -2.5rem; top: -2rem; width: 7rem; opacity: .9; pointer-events: none; }
.duo-journey .sec-head { margin-bottom: 1.5rem; }
.duo-journey h2 { font-size: 2.4rem; }

/* journey timeline */
.journey { position: relative; --illo: 7rem; }
.journey-big { --illo: 9.5rem; margin-top: 1rem; }
.vine { position: absolute; pointer-events: none; overflow: visible; }
.vine-path { fill: none; stroke: #5E6B3C; stroke-width: 2.2; stroke-linecap: round; }
.vine-h { left: 0; width: 100%; height: auto; top: calc(var(--illo) + .85rem); transform: translateY(-50%); }
.vine-v { display: none; }
.j-stages { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); }
.j-stage { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0 .5rem; }
.j-illo { height: var(--illo); width: 100%; display: flex; justify-content: center; align-items: flex-end; }
.j-art { height: 100%; width: auto; overflow: visible; }
.j-dot { position: relative; width: 1.1rem; height: 1.1rem; margin: .3rem 0; border-radius: 50%; background: var(--cream); border: 2px solid var(--terra); box-shadow: 0 0 0 .3rem var(--cream); }
.j-dot::after { content: ''; position: absolute; inset: .2rem; border-radius: 50%; background: var(--terra); }
.j-step { display: block; margin-top: .6rem; font-size: .65rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--gold-dk); }
.j-text h3 { font-size: 1.3rem; margin-top: .2rem; }
.j-text p { font-size: .8125rem; line-height: 1.5; margin-top: .35rem; color: var(--cocoa); }
.journey-big .j-text h3 { font-size: 1.6rem; }
.journey-big .j-text p { font-size: .9375rem; max-width: 15rem; margin-inline: auto; }
/* journey animation — runs once when it enters view */
.js .journey .vine-path { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.4s cubic-bezier(.45, .05, .35, 1); }
.js .journey .v-leaf { opacity: 0; transform: scale(0); transform-box: fill-box; transform-origin: 0 50%; transition: opacity .6s var(--ease) calc(.7s + var(--i) * .2s), transform .9s var(--ease-out) calc(.7s + var(--i) * .2s); }
.js .journey .j-dot { transform: scale(0); transition: transform .7s cubic-bezier(.34, 1.4, .64, 1) calc(.35s + var(--i) * .5s); }
.js .journey .j-grow, .js .journey .j-sun { opacity: 0; transform: scale(.35); transform-box: fill-box; transform-origin: 50% 100%; transition: opacity .9s var(--ease) calc(.55s + var(--i) * .5s), transform 1.4s var(--ease-out) calc(.55s + var(--i) * .5s); }
.js .journey .j-sun { transform-origin: 50% 50%; }
.js .journey .j-bloom { transform: scale(.4) rotate(-20deg); transform-box: fill-box; transform-origin: 50% 50%; transition: transform 1.6s var(--ease-out) calc(1.1s + var(--i) * .5s); }
.js .journey .j-text { opacity: 0; transform: translateY(.75rem); transition: opacity .8s var(--ease) calc(.8s + var(--i) * .5s), transform .9s var(--ease-out) calc(.8s + var(--i) * .5s); }
.journey.in .vine-path { stroke-dashoffset: 0; }
.journey.in .v-leaf, .journey.in .j-dot, .journey.in .j-grow, .journey.in .j-sun, .journey.in .j-bloom, .journey.in .j-text { opacity: 1; transform: none; }
.j-stage { --i: 0; }

/* ---------- services / insurance / why choose ---------- */
.trio { position: relative; padding: 0 0 4rem; }
.trio-grid { display: grid; grid-template-columns: 1fr 1fr 1.3fr; }
.trio-col { padding: 0 2.25rem; border-left: 1px solid var(--line); }
.trio-col:first-child { padding-left: 0; border-left: 0; }
.trio-col:last-child { padding-right: 0; }
.trio .sec-head { margin-bottom: 1.5rem; }
.trio h2 { font-size: 2.15rem; }
.trio-branch { position: absolute; left: -1rem; bottom: 1rem; width: 5.5rem; opacity: .85; pointer-events: none; }
.svc-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.svc-tile { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .55rem; height: 100%; min-height: 6.75rem; padding: 1rem .5rem; text-align: center; border-radius: 1rem; background: linear-gradient(170deg, #FCF4E6, #F6E5CC); border: 1px solid rgba(197, 162, 77, .28); font-size: .8125rem; font-weight: 500; line-height: 1.25; color: var(--cocoa); transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease); }
.svc-tile .ico { width: 2.15rem; height: 2.15rem; color: var(--terra); transition: transform .35s var(--ease); }
.svc-tile:hover { transform: translateY(-.25rem); border-color: rgba(199, 109, 78, .45); box-shadow: 0 1rem 1.75rem -1.25rem rgba(90, 64, 50, .5); }
.svc-tile:hover .ico { transform: scale(1.06); }
.pay-rows { display: grid; gap: .65rem; }
.pay-row { display: flex; align-items: center; gap: .9rem; padding: .85rem 1.15rem; border-radius: .9rem; background: linear-gradient(90deg, #E5ECDC, #EDF1E6); border: 1px solid rgba(143, 175, 136, .35); }
.pay-row .ico { width: 1.5rem; height: 1.5rem; color: var(--forest); flex: none; }
.pay-label { font-weight: 500; font-size: .9375rem; color: var(--forest-ink); }
.pay-note { display: flex; gap: .55rem; align-items: flex-start; margin-top: 1rem; font-size: .8125rem; line-height: 1.5; color: var(--muted); }
.pay-note .ico { width: 1rem; height: 1rem; flex: none; margin-top: .15em; color: var(--gold-dk); }
.choose-body { display: grid; grid-template-columns: 1fr 10.5rem; gap: 1rem; align-items: center; }
.choose-list li { display: flex; align-items: center; gap: .8rem; font-size: .9375rem; line-height: 1.4; margin: .55rem 0; }
.choose-list .brush-check { width: 1.4rem; height: 1.2rem; color: var(--terra); }
.choose-art { position: relative; height: 13rem; }
.choose-sun { position: absolute; left: 50%; top: 50%; width: 10rem; height: 10rem; transform: translate(-50%, -46%); border-radius: 50%; background: radial-gradient(circle at 40% 35%, #F2C29F, #E59A74 60%, #D9805F); }
.choose-img { position: absolute; inset: 0; }
.choose-img img { object-fit: contain; object-position: 50% 100%; }
.choose-img.img-error::after { white-space: normal; text-align: center; width: 8.5rem; line-height: 1.35; }

/* ---------- partnerships ---------- */
.partners { padding: 0 0 7.5rem; }
.partners-grid { position: relative; display: grid; grid-template-columns: minmax(0, 24rem) 1fr; gap: 2.5rem; align-items: center; padding-top: 2.5rem; border-top: 1px solid var(--line); }
.partners-intro { position: relative; padding-left: 4.5rem; }
.partners-branch { position: absolute; left: -1rem; top: 50%; width: 5rem; transform: translateY(-50%); pointer-events: none; }
.partners-intro h2 { font-size: 2.3rem; margin-bottom: .6rem; }
.partners-intro p { font-size: .9375rem; }
.partner-icons { display: grid; grid-template-columns: repeat(7, 1fr); border-left: 1px solid var(--line); }
.partner-icons li { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: .6rem; padding: .25rem .4rem; font-size: .8125rem; font-weight: 500; line-height: 1.25; color: var(--cocoa); }
.partner-icons .ico { width: 2.4rem; height: 2.4rem; color: var(--forest); transition: transform .35s var(--ease), color .35s var(--ease); }
.partner-icons li:hover .ico { transform: translateY(-.2rem); color: var(--gold-dk); }

/* ---------- footer / contact ---------- */
.site-footer { position: relative; margin-top: 2rem; color: var(--cream); }
.footer-wave { position: absolute; left: 0; width: 100%; height: 6.5rem; top: -6.45rem; pointer-events: none; }
.footer-body { position: relative; background: var(--forest); overflow: hidden; }
@supports (overflow: clip) { .footer-body { overflow: clip; } }
.footer-body::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 60% 70% at 15% 100%, rgba(143, 175, 136, .18), transparent 70%), radial-gradient(ellipse 40% 50% at 100% 0%, rgba(197, 162, 77, .12), transparent 70%); pointer-events: none; }
.footer-sky { position: absolute; left: 0; bottom: 4.5rem; width: 52rem; max-width: 70%; color: var(--sage); pointer-events: none; }
.footer-skyline { width: 100%; height: auto; }
.footer-skyline .sky-back { opacity: .16; }
.footer-skyline .sky-front { opacity: .32; }
.footer-skyline .sky-line { opacity: .4; }
.footer-gold-arc { position: absolute; left: 0; bottom: 5rem; width: 48rem; max-width: 66%; height: 14rem; opacity: .55; pointer-events: none; }
.footer-gold-arc svg { width: 100%; height: 100%; }
.footer-flowers { position: absolute; right: 0; bottom: 3.5rem; width: 17rem; height: 14rem; pointer-events: none; }
.footer-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr 1.35fr; gap: 4rem; padding-top: 3.5rem; padding-bottom: 11rem; }
.footer-title { font-size: 3.5rem; color: var(--cream); }
.footer-contact .gold-rule { margin: 1rem 0 1.75rem; }
.fc-list { display: flex; flex-direction: column; align-items: flex-start; }
.fc-list li { margin: .75rem 0; }
.fc-list li, .fc-list a { display: inline-flex; align-items: center; gap: .85rem; font-size: 1.0625rem; }
.fc-list a:hover { color: var(--gold-lt); }
.fc-list .ico { width: 1.15rem; height: 1.15rem; color: var(--gold); flex: none; }
.footer-contact .btn-cream { margin-top: 1.75rem; }
.qr { display: flex; align-items: center; gap: 1rem; margin-top: 1.75rem; font-size: .875rem; }
.qr img { background: #fff; padding: .4rem; border-radius: .5rem; }
.footer-form { position: relative; background: var(--cream-lt); color: var(--text); border-radius: 1.75rem; padding: 2.25rem 2.25rem 2rem; box-shadow: 0 2rem 3.5rem -2rem rgba(0, 0, 0, .55); }
.footer-form h3 { font-size: 2rem; }
.ff-lede { margin: .35rem 0 1.5rem; font-size: .9375rem; color: var(--muted); }
.footer-bottom { position: relative; z-index: 2; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem 2rem; padding-top: 1.4rem; padding-bottom: 1.75rem; border-top: 1px solid rgba(247, 241, 227, .16); font-size: .8125rem; color: rgba(247, 241, 227, .72); }
.footer-bottom nav { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; }
.footer-bottom a:hover { color: var(--cream); }

/* form */
.cform { position: relative; }
.cform-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.1rem; }
.field-wide { grid-column: 1 / -1; }
.field label { display: block; margin-bottom: .4rem; font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--cocoa); }
.field label small { font-size: .9em; font-weight: 500; letter-spacing: .04em; text-transform: none; color: var(--muted); }
.field input, .field select, .field textarea {
  width: 100%; font: 400 1rem/1.4 var(--sans); color: var(--cocoa-dk);
  background: var(--paper); border: 1px solid rgba(90, 64, 50, .2); border-radius: .75rem; padding: .85rem 1rem;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
  -webkit-appearance: none; appearance: none;
}
.field textarea { resize: vertical; min-height: 7rem; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--forest); box-shadow: 0 0 0 .2rem rgba(53, 94, 59, .14); }
.select { position: relative; }
.select select { padding-right: 2.5rem; cursor: pointer; }
.select .ico { position: absolute; right: .9rem; top: 50%; width: 1rem; height: 1rem; transform: translateY(-50%); pointer-events: none; color: var(--forest); }
.field-err { min-height: 0; font-size: .78rem; color: var(--terra-dk); margin-top: .3rem; }
.field-err:empty { display: none; }
.field.invalid input, .field.invalid select, .field.invalid textarea { border-color: var(--terra); background: #FFF8F3; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cform-foot { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.5rem; margin-top: 1.4rem; }
.form-submit[disabled] { opacity: .7; cursor: progress; transform: none; }
.form-status { font-size: .875rem; }
.form-status.err { color: var(--terra-dk); }
.form-privacy { margin-top: .9rem; font-size: .75rem; color: var(--muted); }
.cform.is-done > :not(.form-success) { visibility: hidden; }
.form-success { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 1rem; outline: none; }
.form-success[hidden] { display: none; }
.success-ico { width: 3rem; height: 3rem; color: var(--forest); margin-bottom: 1rem; }
.form-success h3 { font-size: 2rem; }
.success-text { margin-top: .6rem; max-width: 26rem; }
.success-ref { margin-top: .5rem; font-size: .8rem; color: var(--muted); letter-spacing: .06em; }
.success-again { margin-top: 1.25rem; }

/* ---------- inner pages ---------- */
.page-hero { position: relative; overflow: hidden; padding: 12.5rem 0 10rem; background: linear-gradient(180deg, #FBF4E8 0%, #F8E7D5 60%, #F2D3B9 100%); }
@supports (overflow: clip) { .page-hero { overflow: clip; } }
.ph-sky { position: absolute; inset: 0; color: #D3A68C; pointer-events: none; }
.ph-glow { position: absolute; width: 50rem; height: 50rem; right: 5%; top: 20%; border-radius: 50%; background: radial-gradient(circle, rgba(253, 228, 190, .9), rgba(253, 228, 190, 0) 65%); }
.page-skyline { position: absolute; left: 0; right: 0; bottom: 5.5rem; width: 100%; height: 42%; }
.page-skyline .sky-back { opacity: .2; }
.page-skyline .sky-front, .page-skyline .sky-line { opacity: .32; }
.page-hero-art { position: absolute; right: 0; bottom: 4rem; width: 24rem; height: 26rem; pointer-events: none; z-index: 1; }
.phero-branch { position: absolute; right: 3rem; bottom: 0; height: 100%; width: auto; }
.phero-flowers { position: absolute; right: 1rem; bottom: 2rem; width: 13rem; }
.page-hero-inner { position: relative; z-index: 2; }
.page-hero h1 { font-size: 4.5rem; max-width: 46rem; margin-top: 1rem; line-height: 1.02; }
.page-hero .swoosh { margin: .6rem 0 0; width: 20rem; }
.page-hero .lede { max-width: 38rem; margin-top: 1.1rem; }
.page-hero .lede a { color: var(--forest); font-weight: 500; border-bottom: 1px solid var(--line); }
.page-hero .hero-waves { height: 6rem; }
.sec { position: relative; padding: 5rem 0; }
.sec-tint { background: linear-gradient(180deg, var(--sage-tint), #F3F2E6); }
.sec-cocoa { background: var(--cocoa); color: var(--cream); overflow: hidden; }
.sec-cocoa h2 { color: var(--cream); }
.sec-cocoa .eyebrow { color: var(--gold-lt); }
.split { display: grid; grid-template-columns: 1fr 1.1fr; gap: 4.5rem; align-items: center; }
.split-img { aspect-ratio: 5 / 4; border-radius: 4rem 1rem 4rem 1rem; }
.split-media { border-radius: 4rem 1rem 4rem 1rem; }
.split-copy h2 { margin-top: .9rem; }
.split-copy p + p { margin-top: 1rem; }
.mv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.mv-card { padding: 2.5rem; border-radius: 1.75rem; background: var(--paper); border: 1px solid rgba(197, 162, 77, .3); }
.mv-card h2 { font-size: 2.25rem; margin-bottom: .75rem; }
.mv-card p { font: 500 1.35rem/1.45 var(--serif); color: var(--cocoa); }
.values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--line); }
.values-grid li { padding: 2rem 2rem 2rem 0; border-bottom: 1px solid var(--line); }
.values-grid li:not(:nth-child(3n + 1)) { padding-left: 2rem; border-left: 1px solid var(--line); }
.vg-num { font: italic 600 1.2rem/1 var(--serif); color: var(--terra); }
.values-grid h3 { font-size: 1.75rem; margin: .5rem 0 .5rem; }
.values-grid p { font-size: .9375rem; }
.philo { position: relative; display: grid; grid-template-columns: 16rem 1fr; gap: 3rem; align-items: center; }
.philo-branch { width: 9rem; margin: 0 auto; }
.philo h2 { font-size: 3rem; margin: .8rem 0 1.25rem; }
.philo p { font-size: 1.0625rem; max-width: 44rem; color: rgba(247, 241, 227, .9); }
.philo p + p { margin-top: 1rem; }
.cta-band { padding: 0 0 7rem; }
.sec + .cta-band { padding-top: 5rem; }
.cta-inner { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: center; padding-top: 3rem; padding-bottom: 3rem; }
.cta-inner::before { content: ''; position: absolute; inset: 0 var(--gutter); border-radius: 2.25rem; background: radial-gradient(ellipse at 0% 100%, #DCE6D2, var(--sage-lt) 50%, #F1EFE2); border: 1px solid rgba(143, 175, 136, .4); z-index: -1; }
.cta-inner > div { padding-left: 4.5rem; }
.cta-inner > .cta-actions { padding: 0 3rem 0 0; display: flex; flex-wrap: wrap; gap: .8rem; }
.cta-art { position: absolute; left: calc(var(--gutter) - 1rem); top: 50%; transform: translateY(-50%); width: 5rem; padding: 0 !important; pointer-events: none; }
.cta-inner h2 { font-size: 2.4rem; }
.cta-inner p { margin-top: .5rem; max-width: 36rem; }
.cta-band { position: relative; z-index: 0; }
.chips { padding: 1.5rem 0 0; }
.chips-inner { display: flex; flex-wrap: wrap; gap: .6rem; }
.chips a { padding: .55rem 1.1rem; border-radius: 999px; border: 1px solid var(--line); font-size: .875rem; font-weight: 500; color: var(--forest); background: var(--cream-lt); transition: background-color .25s var(--ease), color .25s var(--ease); }
.chips a:hover { background: var(--forest); color: var(--cream); }
.stage-sec { overflow: hidden; }
.stage-sec.tone-gold { background: linear-gradient(180deg, var(--cream), #F7ECD3); --tone: var(--gold-dk); }
.stage-sec.tone-sage { background: linear-gradient(180deg, var(--cream), #E6EDDD); --tone: var(--forest); }
.stage-sec.tone-terra { background: linear-gradient(180deg, var(--cream), #F7DCCD); --tone: var(--terra-dk); }
.stage-sec.tone-peach { background: linear-gradient(180deg, var(--cream), #F9E3CF); --tone: var(--terra); }
.stage-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 4rem; align-items: center; }
.stage-head { position: relative; }
.stage-num { position: absolute; right: 0; top: -2.5rem; font: italic 600 10rem/1 var(--serif); color: color-mix(in srgb, var(--tone) 9%, transparent); pointer-events: none; }
.stage-head .tri-ico { width: 3.25rem; height: 3.25rem; }
.stage-head h2 { font-size: 3.25rem; }
.stage-head p { margin-top: .9rem; font: italic 500 1.35rem/1.45 var(--serif); max-width: 28rem; }
.stage-list { display: grid; grid-template-columns: 1fr 1fr; gap: .25rem 2rem; padding: 2rem 2.25rem; border-radius: 1.5rem; background: rgba(255, 252, 246, .7); border: 1px solid rgba(197, 162, 77, .3); }
.stage-list li { display: flex; gap: .7rem; align-items: center; padding: .55rem 0; border-bottom: 1px solid rgba(90, 64, 50, .1); font-size: .9375rem; }
.stage-list .brush-check { color: var(--tone); }
.svc-detail-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.svc-detail { display: flex; flex-direction: column; padding: 2.25rem 2rem; border-radius: 1.75rem; background: var(--paper); border: 1px solid rgba(197, 162, 77, .28); scroll-margin-top: 7rem; transition: box-shadow .35s var(--ease), transform .35s var(--ease); }
.svc-detail:hover { transform: translateY(-.25rem); box-shadow: 0 1.5rem 2.75rem -2rem rgba(70, 49, 31, .5); }
.svc-detail-ico { width: 3.75rem; height: 3.75rem; display: grid; place-items: center; border-radius: 1.1rem; background: linear-gradient(160deg, #FCF1E2, #F5DCC5); color: var(--terra); margin-bottom: 1.25rem; }
.svc-detail-ico .ico { width: 2.1rem; height: 2.1rem; }
.svc-detail h2 { font-size: 2rem; }
.svc-short { margin: .5rem 0 .8rem; font: italic 500 1.15rem/1.4 var(--serif); color: var(--forest); }
.svc-detail > p:not(.svc-short) { font-size: .9375rem; }
.svc-detail ul { margin: 1.1rem 0 .25rem; }
.svc-detail li { display: flex; gap: .6rem; align-items: flex-start; font-size: .875rem; margin: .35rem 0; }
.svc-detail li .ico { width: .95rem; height: .95rem; flex: none; margin-top: .25em; color: var(--gold-dk); }
.svc-detail .text-link { margin-top: auto; padding-top: 1.25rem; align-self: flex-start; border: 0; }
.pay-wide { display: grid; grid-template-columns: 1fr 1.2fr; gap: 4rem; align-items: start; }
.pay-intro { font-size: 1.0625rem; max-width: 30rem; }
.pay-detail { display: grid; gap: .75rem; }
.pay-detail li { display: flex; gap: 1.1rem; align-items: flex-start; padding: 1.25rem 1.5rem; border-radius: 1.1rem; background: linear-gradient(90deg, #E5ECDC, #EDF1E6); border: 1px solid rgba(143, 175, 136, .35); }
.pay-detail .ico { width: 1.75rem; height: 1.75rem; color: var(--forest); flex: none; }
.pay-detail h3 { font-size: 1.4rem; }
.pay-detail p { font-size: .9rem; margin-top: .15rem; }
.res-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.res-grid li { display: flex; gap: 1.1rem; align-items: flex-start; padding: 1.6rem; border-radius: 1.4rem; background: var(--paper); border: 1px solid rgba(197, 162, 77, .25); }
.res-grid .ico { width: 2.25rem; height: 2.25rem; flex: none; color: var(--forest); }
.res-grid h3 { font-size: 1.4rem; }
.res-grid p { font-size: .875rem; margin-top: .25rem; }
.partners-lede { max-width: 48rem; margin-bottom: 2.5rem; }
.partners-lede p { font: 500 1.5rem/1.5 var(--serif); color: var(--forest); }
.edu-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 2.5rem; }
.edu-grid li { padding: 1.5rem 0; border-top: 1px solid var(--line); }
.edu-grid h3 { font-size: 1.45rem; }
.edu-grid p { font-size: .9375rem; margin-top: .35rem; }
.faq-wrap { display: grid; grid-template-columns: 1fr 1.6fr; gap: 4rem; align-items: start; }
.faq details { border-bottom: 1px solid var(--line); }
.faq details:first-child { border-top: 1px solid var(--line); }
.faq summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.2rem 0; cursor: pointer; list-style: none; font: 600 1.4rem/1.25 var(--serif); color: var(--forest); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary .ico { width: 1.25rem; height: 1.25rem; flex: none; color: var(--terra); transition: transform .35s var(--ease); }
.faq details[open] summary .ico { transform: rotate(45deg); }
.faq-a p { padding: 0 2.5rem 1.4rem 0; font-size: .9375rem; }
.next-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; counter-reset: ns; }
.next-steps li { position: relative; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.ns-num { display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1px solid var(--terra); color: var(--terra); font: 600 1.35rem/1 var(--serif); }
.next-steps h3 { font-size: 1.75rem; margin: 1rem 0 .4rem; }
.next-steps p { font-size: .9375rem; }

/* =================================================== responsive */
@media (max-width: 1280px) {
  .main-nav { gap: 0; }
  .nav-link { padding: .7rem .55rem; font-size: .875rem; }
  .nav-link::after { left: .55rem; right: .55rem; }
  .has-dd .nav-link::after { right: 1.7rem; }
  .hero-copy { margin-left: 8rem; width: 40rem; }
  .hero h1 { font-size: 3.5rem; }
  .story-grid { grid-template-columns: 1fr 1fr; }
  .story-pillars { grid-column: 1 / -1; }
  .pillar:first-child { border-left: 0; padding-left: 0; }
  .partners-grid { grid-template-columns: 1fr; }
  .partners-intro { max-width: 36rem; }
  .partner-icons { border-left: 0; }
}

/* ---------- tablet & mobile header ---------- */
@media (max-width: 1140px) {
  .header-right { display: none; }
  .header-inner { align-items: center; justify-content: space-between; min-height: var(--header-h); }
  .brand, .site-header.scrolled .brand { margin: .5rem 0; }
  .brand-logo, .site-header.scrolled .brand-logo { width: 5.25rem; height: 4.5rem; }
  .brand-logo.img-error, .site-header.scrolled .brand-logo.img-error { width: 4.5rem; height: 4.5rem; }
  .brand-logo.img-error::after { font-size: .55rem; padding: .3rem .4rem; }
  .menu-toggle { position: relative; z-index: 2; display: grid; place-items: center; width: 2.9rem; height: 2.9rem; border-radius: 50%; border: 1px solid rgba(53, 94, 59, .3); background: rgba(251, 247, 238, .75); cursor: pointer; }
  .menu-toggle span { position: absolute; left: 50%; width: 1.15rem; height: 1.5px; margin-left: -.575rem; background: var(--forest); border-radius: 2px; transition: transform .45s var(--ease), top .45s var(--ease); }
  .menu-toggle span { margin-top: -.75px; transition: transform .45s var(--ease), top .45s var(--ease), opacity .25s var(--ease); }
  .menu-toggle span:nth-child(1) { top: calc(50% - .35rem); }
  .menu-toggle span:nth-child(2) { top: 50%; }
  .menu-toggle span:nth-child(3) { top: calc(50% + .35rem); }
  body.menu-open .menu-toggle span:nth-child(1) { top: 50%; transform: rotate(45deg); }
  body.menu-open .menu-toggle span:nth-child(2) { opacity: 0; }
  body.menu-open .menu-toggle span:nth-child(3) { top: 50%; transform: rotate(-45deg); }
  body.menu-open .site-header { background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .hero { padding-top: 7.5rem; }
  .hero-copy { margin-left: 0; width: 36rem; }
  .hero h1 { font-size: 3.2rem; }
  .hero-mother { right: 4%; width: 48%; }
  .duo-grid { grid-template-columns: 1fr; gap: 4rem; }
  .duo-journey .sec-head, .duo-journey > .text-link { text-align: left; }
  .trio-grid { grid-template-columns: 1fr 1fr; row-gap: 3.5rem; }
  .trio-col.choose { grid-column: 1 / -1; padding-left: 0; border-left: 0; padding-top: 3rem; border-top: 1px solid var(--line); }
  .trio-col:nth-child(2) { padding-right: 0; }
  .why-band { grid-template-columns: 1fr; }
  .why-intro { border-radius: 2.75rem 2.75rem 4rem 4rem; }
  .tri-grid { grid-template-columns: 1fr 1fr; }
  .svc-detail-grid, .res-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 3rem; }
}

@media (max-width: 900px) {
  h2 { font-size: 2.4rem; }
  .hero { flex-direction: column; align-items: stretch; min-height: 0; padding: 7rem 0 0; }
  .hero-inner { order: 1; }
  .hero-copy { width: 100%; max-width: 34rem; margin: 0 auto; }
  .hl { white-space: normal; }
  .hero h1 { font-size: clamp(2.5rem, 8.6vw, 3.5rem); }
  .hero-mother { order: 2; position: relative; right: auto; bottom: auto; width: min(90%, 28.5rem); height: auto; aspect-ratio: 4 / 5; margin: 1.5rem auto 0; }
  .hero-drawn { left: -10%; right: -10%; bottom: 7rem; height: 34%; }
  .hero-wash { background: linear-gradient(180deg, rgba(251, 244, 232, .96) 0%, rgba(251, 244, 232, .75) 35%, rgba(251, 244, 232, 0) 62%); }
  .hero-photo.img-error::after { top: auto; bottom: 5.5rem; z-index: 3; }
  .hero-flora { height: 20rem; width: 11rem; bottom: 4rem; right: -1.5rem; }
  .hero-flora-left { height: 13rem; width: 8rem; bottom: 4.5rem; }
  .hero-waves { position: relative; order: 3; height: 5rem; margin-top: -4.5rem; }
  .story-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .story-photo { max-width: 30rem; margin: 0 auto; width: 100%; }
  .story-branch { left: -1rem; }
  .story-pillars { grid-template-columns: 1fr; gap: 0; }
  .pillar { border-left: 0; padding: 1.5rem 0; border-top: 1px solid var(--line); }
  .pillar:first-child { padding-top: 1.5rem; }
  .values { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1rem; }
  .why-intro { padding: 2.25rem 1.75rem 2.25rem 5rem; }
  .why-list { grid-template-columns: repeat(2, 1fr); padding: 1.25rem; gap: .5rem; }
  .why-list li + li::before { display: none; }
  .why-list li:last-child { grid-column: 1 / -1; }
  .labor { grid-template-columns: 1fr; border-radius: 2rem 2rem 2rem 4rem; }
  .labor-photo { aspect-ratio: 4 / 3; min-height: 0; }
  .labor-photo::before { background: linear-gradient(180deg, rgba(90, 64, 50, 0) 55%, var(--cocoa) 100%); }
  .labor-body { padding: 0 1.75rem 2.25rem; margin-top: -1.5rem; }
  .split, .stage-grid, .pay-wide, .faq-wrap, .mv-grid, .philo { grid-template-columns: 1fr; gap: 2.5rem; }
  .philo-art { display: none; }
  .values-grid { grid-template-columns: 1fr 1fr; }
  .values-grid li, .values-grid li:not(:nth-child(3n + 1)) { padding: 1.5rem 1.25rem 1.5rem 0; border-left: 0; }
  .values-grid li:nth-child(2n) { padding-left: 1.25rem; border-left: 1px solid var(--line); }
  .edu-grid { grid-template-columns: 1fr 1fr; }
  .next-steps { grid-template-columns: 1fr; gap: 1.5rem; }
  .cta-inner { grid-template-columns: 1fr; }
  .cta-inner > .cta-actions { padding: 0 1.75rem 0 4.5rem; }
  .cta-inner > div:not(.cta-art) { padding-right: 1.75rem; }
  .page-hero { padding: 9rem 0 8rem; }
  .page-hero h1 { font-size: clamp(2.6rem, 9vw, 3.75rem); }
  .page-hero-art { width: 13rem; height: 15rem; right: -2rem; opacity: .75; bottom: 3.5rem; }
  .page-hero .lede { max-width: 32rem; }
}

@media (max-width: 700px) {
  /* journey becomes a vertical climbing vine */
  .vine-h { display: none; }
  .vine-v { display: block; left: .5rem; top: 2rem; bottom: 2rem; width: 2.5rem; height: calc(100% - 4rem); }
  .j-stages { grid-template-columns: 1fr; gap: 1.75rem; }
  .j-stage { display: grid; grid-template-columns: 3.5rem 5.5rem 1fr; align-items: center; text-align: left; padding: 0; }
  .j-dot { grid-column: 1; grid-row: 1; justify-self: center; margin: 0; }
  .j-illo { grid-column: 2; grid-row: 1; height: 5.5rem; }
  .j-text { grid-column: 3; grid-row: 1; padding-left: .75rem; }
  .j-step { margin-top: 0; }
  .journey-big .j-text p { margin-inline: 0; }
  .journey-big { --illo: 5.5rem; }
  .js .journey .vine-path { transition-duration: 2.8s; }
}

@media (max-width: 600px) {
  :root { --header-h: 4.5rem; }
  h2 { font-size: 2.15rem; }
  .brand-logo, .site-header.scrolled .brand-logo { width: 4.75rem; height: 4rem; }
  .hero { padding-top: 6.25rem; }
  .hero .eyebrow { font-size: .62rem; letter-spacing: .24em; gap: .6rem; }
  .eyebrow-lined::before, .eyebrow-lined::after { width: 1.25rem; }
  .hero .lede { font-size: 1rem; }
  .hero-actions { flex-direction: column; align-items: stretch; width: 100%; max-width: 22rem; }
  .hero-actions .btn { min-height: 3.4rem; }
  .hero-mother { width: 96%; }
  .hero-flora { height: 16rem; width: 9rem; right: -2rem; }
  .hero-flora-left { width: 6rem; height: 10rem; left: -1rem; }
  .story-intro h2 { font-size: 2.5rem; }
  .why-intro { padding: 2rem 1.5rem 2rem 4rem; }
  .why-branch { width: 5rem; left: -1.5rem; }
  .why-intro h2 { font-size: 2.15rem; }
  .why-list h3 { font-size: 1.1rem; }
  .tri-grid { grid-template-columns: 1fr; }
  .tri-card { padding-bottom: 4.5rem; }
  .labor-body h2 { font-size: 2rem; }
  .trio-grid { grid-template-columns: 1fr; }
  .trio-col, .trio-col:nth-child(2) { padding: 3rem 0 0; border-left: 0; border-top: 1px solid var(--line); }
  .trio-col:first-child { padding-top: 0; border-top: 0; }
  .svc-tiles { grid-template-columns: repeat(2, 1fr); }
  .choose-body { grid-template-columns: 1fr; }
  .choose-art { order: -1; width: 12rem; margin: 0 auto; }
  .partner-icons { grid-template-columns: repeat(3, 1fr); row-gap: 1.75rem; }
  .partners-intro { padding-left: 3.5rem; }
  .partners-branch { width: 4rem; left: -1.25rem; }
  .footer-title { font-size: 2.75rem; }
  .footer-form { padding: 1.75rem 1.25rem; border-radius: 1.4rem; margin: 0 calc(var(--gutter) * -.4); }
  .cform-grid { grid-template-columns: 1fr; }
  .cform-foot .btn { width: 100%; }
  .footer-sky { max-width: none; width: 34rem; bottom: 6rem; }
  .footer-flowers { width: 10rem; height: 8.5rem; bottom: 8.5rem; }
  .footer-sky { bottom: 9rem; }
  .footer-grid { padding-bottom: 9rem; }
  .fc-list li, .fc-list a { font-size: 1rem; word-break: break-word; }
  .footer-bottom { flex-direction: column; }
  .svc-detail-grid, .res-grid, .edu-grid, .values-grid { grid-template-columns: 1fr; }
  .values-grid li:nth-child(2n) { padding-left: 0; border-left: 0; }
  .stage-list { grid-template-columns: 1fr; padding: 1.25rem 1.5rem; }
  .stage-head h2 { font-size: 2.6rem; }
  .stage-num { font-size: 7rem; }
  .cta-inner > div:not(.cta-art) { padding-left: 1.5rem; padding-right: 1.5rem; padding-top: 1rem; }
  .cta-inner > .cta-actions { padding: 0 1.5rem 1rem; flex-direction: column; }
  .cta-art { display: none; }
  .faq summary { font-size: 1.25rem; }
  .faq-a p { padding-right: 0; }
}

@media (max-width: 360px) {
  .hero h1 { font-size: 2.3rem; }
  .why-list { grid-template-columns: 1fr; }
  .partner-icons { grid-template-columns: repeat(2, 1fr); }
  .svc-tile { font-size: .75rem; }
}

/* motion preferences */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .js [data-rv], .js [data-rv="stagger"] > *, .js .hero-load, .js .hl > .hero-load, .js .hero-sky, .js .mother-img, .js .mother-halo, .js .hero-flora, .js .hero-flora-left, .js .bloom-in,
  .js .journey .v-leaf, .js .journey .j-dot, .js .journey .j-grow, .js .journey .j-sun, .js .journey .j-bloom, .js .journey .j-text { opacity: 1 !important; transform: none !important; clip-path: none !important; }
  .js .swoosh path, .js .journey .vine-path, .js .why-ico svg [pathLength] { stroke-dashoffset: 0 !important; }
}

/* keep placeholder filename tags clear of the botanical art */
.mother-img.img-error::after { top: 32%; left: 40%; }
.hero-photo.img-error::after { left: calc(var(--gutter) + 12rem); }
@media (max-width: 900px) { .mother-img.img-error::after { top: 40%; left: 50%; } .hero-photo.img-error::after { left: 50%; transform: translateX(-50%); } }

/* journey stage drawn from an image (Rooted Recovery) — sized and animated like the SVG illustrations */
.j-photo { height: 100%; aspect-ratio: 400 / 407; }
.j-photo img { object-fit: contain; object-position: 50% 100%; }
.j-photo.img-error::after { font-size: .55rem; padding: .3rem .4rem; }
.js .journey .j-photo { opacity: 0; transform: scale(.4); transform-origin: 50% 100%; transition: opacity .9s var(--ease) calc(.55s + var(--i) * .5s), transform 1.4s var(--ease-out) calc(.55s + var(--i) * .5s); }
.journey.in .j-photo { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .js .journey .j-photo { opacity: 1 !important; transform: none !important; } }
.branch-art { overflow: visible; }

/* branch sizes, re-tuned now that each branch's box fits its full (rotated) artwork */
.story-branch { width: 7.5rem; left: -4.25rem; top: -2.75rem; }
.why-branch { width: 8.5rem; left: -3.25rem; top: auto; bottom: 1rem; transform: none; }
.journey-branch { width: 8.5rem; right: -2.75rem; top: -2.5rem; }
.trio-branch { width: 6.5rem; left: calc(var(--gutter) - 5.25rem); bottom: -.5rem; }
.partners-branch { width: 7rem; left: -2.25rem; }
.cta-art { width: 7rem; }
.mm-branch { width: 13rem; }
.mm-branch-2 { width: 9rem; }
@media (max-width: 600px) {
  .why-branch { width: 6.5rem; left: -2.5rem; }
  .partners-branch { width: 5.5rem; left: -2rem; }
  .trio-branch { display: none; }
}
@media (max-width: 900px) {
  .hero-mother { top: auto; }
  .hero-photo:not(.img-error) { left: -42%; right: -42%; bottom: 3rem; }
}

/* ---------- phone hero: copy on top, buttons left, mother large on the right over a full-bleed skyline ---------- */
@media (max-width: 600px) {
  .brand-logo, .site-header.scrolled .brand-logo { width: 5.5rem; height: 5rem; }
  .menu-toggle { width: 2.9rem; height: 2.9rem; border: 0; background: transparent; }
  .menu-toggle span { width: 1.9rem; height: 2.5px; margin-left: -.95rem; margin-top: -1.25px; }
  .menu-toggle span:nth-child(1) { top: calc(50% - .5rem); }
  .menu-toggle span:nth-child(3) { top: calc(50% + .5rem); }
  .site-header.scrolled .menu-toggle span { width: 1.6rem; margin-left: -.8rem; }

  .hero { display: block; padding: 6.75rem 0 15.5rem; }
  .hero-copy { max-width: none; }
  .hero .eyebrow { font-size: .6rem; letter-spacing: .26em; }
  .hero h1 { font-size: clamp(1.6rem, 8.5vw, 2.4rem); margin-top: .9rem; }
  .hl { white-space: nowrap; }
  .swoosh { width: 15rem; margin-top: .35rem; }
  .hero .lede { font-size: .9375rem; line-height: 1.55; margin-top: .65rem; max-width: 21.5rem; }
  .hero-actions { width: 64%; align-self: flex-start; flex-direction: column; align-items: center; gap: .7rem; margin-top: 1.4rem; max-width: none; }
  .hero-actions .btn { min-height: 3rem; padding: 0 1.25rem; font-size: .9rem; }
  .hero-actions .btn-forest { width: 100%; }
  .hero-actions .btn-ghost { width: 74%; background: rgba(238, 236, 220, .7); }

  .hero-mother { position: absolute; top: auto; left: auto; right: -9%; bottom: 3rem; width: 80%; height: auto; aspect-ratio: 1279 / 1230; margin: 0; }
  .mother-halo { inset: 15% 0 0; }
  .hero-photo:not(.img-error) { left: -12%; right: -40%; bottom: 2.4rem; }
  .hero-wash { background: linear-gradient(180deg, rgba(251, 244, 232, .97) 0%, rgba(251, 244, 232, .85) 40%, rgba(251, 244, 232, 0) 66%); }
  .hero-flora { width: 8.5rem; height: 13rem; right: -1.75rem; bottom: 3rem; }
  .hero-flora-left { width: 6.5rem; height: 11rem; left: -1.25rem; bottom: 9rem; }
  .hero-waves { position: absolute; bottom: -1px; height: 4.5rem; margin: 0; }
}
@media (max-width: 380px) {
  .hero .eyebrow { font-size: .55rem; letter-spacing: .2em; }
  .hero .eyebrow-lined::before, .hero .eyebrow-lined::after { width: .9rem; }
  .hero-actions { width: 70%; }
  .hero-actions .btn { font-size: .8rem; padding: 0 .9rem; gap: .45rem; }
}

/* ---------- services: 7 services + "view all" tile, 4 across ---------- */
.trio-grid { grid-template-columns: 1.35fr 1fr 1.2fr; }
.svc-tiles { grid-template-columns: repeat(4, 1fr); gap: .6rem; }
.svc-tile { min-height: 6.25rem; padding: .85rem .35rem; font-size: .75rem; gap: .5rem; }
.svc-tile .ico { width: 1.95rem; height: 1.95rem; }
.svc-tile-all { flex-direction: column; background: transparent; border: 1px dashed rgba(169, 84, 58, .45); color: var(--terra-dk); font-weight: 600; }
.svc-tile-all .arrow { width: 1.2rem; height: 1.2rem; transition: transform .3s var(--ease); }
.svc-tile-all:hover { background: rgba(199, 109, 78, .06); }
.svc-tile-all:hover .arrow { transform: translateX(.25rem); }
@media (max-width: 1140px) { .trio-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .trio-grid { grid-template-columns: 1fr; } .svc-tiles { grid-template-columns: repeat(2, 1fr); } .svc-tile { font-size: .8125rem; } }

/* services page: 2 / 3 / 2 editorial rhythm for seven cards */
.svc-detail-grid { grid-template-columns: repeat(6, 1fr); }
.svc-detail { grid-column: span 2; }
.svc-detail:nth-child(-n + 2), .svc-detail:nth-child(n + 6) { grid-column: span 3; }
@media (max-width: 1140px) {
  .svc-detail-grid { grid-template-columns: 1fr 1fr; }
  .svc-detail, .svc-detail:nth-child(-n + 2), .svc-detail:nth-child(n + 6) { grid-column: auto; }
  .svc-detail:last-child { grid-column: 1 / -1; }
}
@media (max-width: 600px) { .svc-detail-grid { grid-template-columns: 1fr; } .svc-detail:last-child { grid-column: auto; } }

/* care journey: link under a stage's list */
.stage-side .text-link { margin-top: 1.25rem; }

/* ---------- founder (Our Story #meet-denise) ---------- */
.founder { padding-top: 5.5rem; }
.founder-grid { display: grid; grid-template-columns: .9fr 1.25fr; gap: 5rem; align-items: center; }
.founder-media { position: relative; max-width: 27rem; width: 100%; justify-self: center; padding: 1.5rem 1.5rem 0; }
.founder-arch-bg { position: absolute; inset: 0 0 -1.5rem; border-radius: 50% 50% 2rem 2rem / 34% 34% 2rem 2rem; background: radial-gradient(ellipse at 50% 30%, #F6D9C3, #EBC0A4 70%, #E3AD8E); }
.founder-frame { position: relative; border-radius: 50% 50% 1.25rem 1.25rem / 30% 30% 1.25rem 1.25rem; box-shadow: 0 2rem 3rem -2rem rgba(70, 49, 31, .7); }
.founder-img { aspect-ratio: 1248 / 1602; border-radius: inherit; }
.founder-img img { object-position: 50% 20%; }
.founder-branch { position: absolute; z-index: 2; left: -4rem; bottom: 2rem; width: 8rem; pointer-events: none; }
.founder-flowers { position: absolute; z-index: 2; right: -2.5rem; bottom: -2.5rem; width: 9rem; pointer-events: none; }
.founder-copy h2 { font-size: 3.5rem; margin-top: .6rem; }
.founder-role { margin-top: .5rem; font-size: .8rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--terra-dk); }
.founder-copy > p:not(.founder-role) { font-size: 1rem; max-width: 40rem; }
.founder-copy > p + p { margin-top: 1rem; }
.founder-quote { margin: 1.25rem 0 0; padding: .25rem 0 .25rem 1.4rem; border-left: 2px solid var(--gold); font: italic 600 1.9rem/1.25 var(--serif); color: var(--forest); }
.founder-quote span { color: var(--gold); }
.founder-creds { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.75rem; }
.founder-creds li { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .85rem; border-radius: .6rem; background: var(--sage-tint); border: 1px solid rgba(143, 175, 136, .4); font-size: .8125rem; color: var(--forest-ink); }
.founder-creds .brush-check { width: .9rem; height: .8rem; color: var(--gold-dk); }
@media (max-width: 900px) {
  .founder-grid { grid-template-columns: 1fr; gap: 3.5rem; }
  .founder-media { max-width: 22rem; }
  .founder-copy h2 { font-size: 2.75rem; }
  .founder-quote { font-size: 1.6rem; }
}
@media (max-width: 600px) {
  .founder { padding-top: 4rem; }
  .founder-branch { left: -2.5rem; width: 6rem; }
  .founder-flowers { right: -1.5rem; width: 7rem; }
}

/* stronger cream glow behind the hero copy (the Dayton skyline's towers sit behind the paragraph) */
@media (min-width: 901px) {
  .hero-wash { background:
    linear-gradient(180deg, rgba(251, 244, 232, .95) 0%, rgba(251, 244, 232, .35) 32%, rgba(251, 244, 232, 0) 55%),
    radial-gradient(ellipse 34% 40% at 41% 54%, rgba(251, 244, 232, .9), rgba(251, 244, 232, .55) 55%, rgba(251, 244, 232, 0) 100%); }
}

/* =================================================== PACKAGES (/packages) */
.h1-sub { display: block; margin-top: .6rem; font: 500 .8rem/1.4 var(--sans); letter-spacing: .3em; text-transform: uppercase; color: var(--terra-dk); }

/* pricing cards */
.pk-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; align-items: stretch; }
.pk-card { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 2.25rem 2rem 2rem; border-radius: 2rem; background: var(--paper); border: 1px solid rgba(197, 162, 77, .35); box-shadow: 0 1.25rem 2.5rem -2rem rgba(70, 49, 31, .45); transition: transform .35s var(--ease), box-shadow .35s var(--ease); scroll-margin-top: 7rem; }
.pk-card:hover { transform: translateY(-.35rem); box-shadow: 0 1.75rem 3rem -2rem rgba(70, 49, 31, .55); }
.pk-card.is-featured { background: radial-gradient(ellipse at 50% 0%, #41704A, var(--forest) 55%, var(--forest-dk)); border-color: var(--forest-dk); color: var(--cream); transform: translateY(-.75rem); box-shadow: 0 2rem 3.5rem -2rem rgba(40, 74, 45, .8); }
.pk-card.is-featured:hover { transform: translateY(-1.1rem); }
.pk-card.is-featured h3, .pk-card.is-featured .pk-price { color: var(--cream); }
.pk-badge { position: absolute; top: -.85rem; left: 50%; transform: translateX(-50%); padding: .4rem 1rem; border-radius: 999px; background: var(--gold); color: var(--forest-dk); font-size: .7rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; white-space: nowrap; box-shadow: 0 .5rem 1rem -.5rem rgba(0, 0, 0, .4); }
.pk-art { width: 6.5rem; height: 6.5rem; margin-bottom: .75rem; }
.pk-art .j-art { width: 100%; height: 100%; }
.is-featured .pk-art { border-radius: 50%; background: radial-gradient(circle, rgba(247, 241, 227, .22), rgba(247, 241, 227, 0) 70%); }
.pk-card h3 { font-size: 1.9rem; line-height: 1.1; }
.pk-tag { margin-top: .35rem; min-height: 1.4em; font: italic 500 1.08rem/1.35 var(--serif); color: var(--terra-dk); }
.is-featured .pk-tag { color: var(--gold-lt); }
.pk-price { margin: 1rem 0 1.25rem; font: 600 4rem/1 var(--serif); color: var(--forest); letter-spacing: -.01em; }
.pk-cur { font-size: .5em; vertical-align: .75em; margin-right: .08em; color: var(--gold-dk); }
.is-featured .pk-cur { color: var(--gold); }
.pk-items { width: 100%; padding-top: 1.25rem; border-top: 1px solid rgba(197, 162, 77, .35); text-align: left; flex: 1; }
.is-featured .pk-items { border-color: rgba(247, 241, 227, .2); }
.pk-items li { display: flex; align-items: flex-start; gap: .65rem; padding: .35rem 0; font-size: .9375rem; }
.pk-items .brush-check { margin-top: .3em; color: var(--terra); }
.is-featured .pk-items .brush-check { color: var(--gold); }
.pk-cta { width: 100%; margin-top: 1.75rem; }
.pk-note { display: flex; justify-content: center; align-items: center; gap: .55rem; margin-top: 2.5rem; font-size: .9375rem; color: var(--cocoa); text-align: center; }
.pk-note .ico { width: 1.1rem; height: 1.1rem; flex: none; color: var(--gold-dk); }
.pk-note a { color: var(--terra-dk); font-weight: 600; border-bottom: 1px solid rgba(169, 84, 58, .35); }

/* every package includes */
.pk-inc-grid { display: grid; grid-template-columns: 1fr 1.6fr; gap: 4rem; align-items: center; }
.pk-inc-intro { position: relative; }
.pk-branch { position: absolute; right: -1rem; top: -3.5rem; width: 6.5rem; opacity: .9; pointer-events: none; }
.pk-inc-intro h2 { font-size: 2.6rem; }
.pk-promise { margin-top: 1.25rem; padding-left: 1.25rem; border-left: 2px solid var(--gold); font: italic 500 1.35rem/1.45 var(--serif); color: var(--forest); }
.pk-inc-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.pk-inc-list li { display: flex; align-items: flex-start; gap: .6rem; padding: 1rem 1.1rem; border-radius: 1rem; background: rgba(255, 252, 246, .8); border: 1px solid rgba(143, 175, 136, .35); font-size: .9rem; line-height: 1.4; }
.pk-inc-list .brush-check { margin-top: .2em; color: var(--terra); }

/* detail steps */
.pk-steps { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; counter-reset: none; }
.pk-step { padding: 2rem 2rem 1.75rem; border-radius: 1.75rem; background: var(--paper); border: 1px solid rgba(197, 162, 77, .3); scroll-margin-top: 7rem; }
.pk-step:nth-child(4) { grid-column: 1 / -1; }
.pk-step-head { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.1rem; }
.pk-num { flex: none; display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--forest); color: var(--cream); font: 600 1.5rem/1 var(--serif); box-shadow: 0 0 0 .3rem var(--sage-tint); }
.pk-step h3 { font-size: 1.85rem; }
.pk-kicker { margin-top: .2rem; font-size: .7rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--terra-dk); }
.pk-step-text { font-size: .9875rem; }
.pk-list-title { margin-top: 1rem; font-size: .8125rem; font-weight: 600; color: var(--forest); }
.pk-step-list { margin-top: .75rem; display: grid; gap: .1rem 1.5rem; }
.pk-step-list.is-cols { grid-template-columns: 1fr 1fr; }
.pk-step:nth-child(4) .pk-step-list { grid-template-columns: repeat(3, 1fr); }
.pk-step-list li, .pk-addons li { display: flex; gap: .55rem; align-items: baseline; padding: .28rem 0; font-size: .9rem; line-height: 1.4; }
.pk-heart { flex: none; font-size: .7rem; color: var(--terra); }
.pk-callout { display: flex; gap: .75rem; align-items: center; margin-top: 1.25rem; padding: 1rem 1.15rem; border-radius: 1rem; background: linear-gradient(90deg, #F4EBDA, #EEF0E3); font: italic 500 1.12rem/1.4 var(--serif); color: var(--forest-ink); }
.pk-callout .ico { width: 1.6rem; height: 1.6rem; flex: none; color: var(--terra); }

/* welcome kit / add-ons / resources */
.pk-extras-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 1.5rem; align-items: start; }
.pk-side { display: grid; gap: 1.5rem; }
.pk-box { padding: 2.25rem; border-radius: 1.75rem; background: var(--paper); border: 1px solid rgba(197, 162, 77, .3); scroll-margin-top: 7rem; }
.pk-box-ico { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: 1rem; background: linear-gradient(160deg, #FCF1E2, #F5DCC5); color: var(--terra); margin-bottom: 1rem; }
.pk-box-ico .ico { width: 1.75rem; height: 1.75rem; }
.pk-box h2 { font-size: 2.1rem; }
.pk-kit { margin-top: 1.25rem; display: grid; grid-template-columns: 1fr 1fr; gap: .1rem 1.5rem; }
.pk-kit li { display: flex; gap: .55rem; align-items: center; padding: .3rem 0; font-size: .9rem; }
.pk-kit .ico { width: .95rem; height: .95rem; flex: none; color: var(--gold-dk); }
.pk-box-note { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--line); font: italic 500 1.15rem/1.4 var(--serif); color: var(--forest); }
.pk-addons { margin-top: 1rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
.pk-box-forest { background: radial-gradient(ellipse at 0% 0%, #41704A, var(--forest) 60%); border-color: var(--forest-dk); color: var(--cream); }
.pk-box-forest h2 { color: var(--cream); font-size: 1.75rem; }
.pk-chips { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1.1rem; }
.pk-chips li { padding: .4rem .8rem; border-radius: .6rem; background: rgba(247, 241, 227, .1); border: 1px solid rgba(247, 241, 227, .2); font-size: .8125rem; }
.svc-detail .svc-pk-link { margin-top: auto; padding-top: 1.25rem; }
.svc-detail .svc-pk-link + .text-link { margin-top: .25rem; padding-top: .5rem; }

@media (max-width: 1140px) {
  .pk-grid { grid-template-columns: 1fr 1fr; }
  .pk-card:last-child { grid-column: 1 / -1; max-width: 32rem; justify-self: center; width: 100%; }
  .pk-card.is-featured { transform: none; }
  .pk-inc-grid, .pk-extras-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .pk-inc-list { grid-template-columns: 1fr 1fr; }
  .pk-steps { grid-template-columns: 1fr; }
  .pk-step:nth-child(4) .pk-step-list { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .pk-grid { grid-template-columns: 1fr; gap: 2rem; }
  .pk-card { padding: 2rem 1.5rem 1.75rem; }
  .pk-card:last-child { grid-column: auto; }
  .pk-price { font-size: 3.5rem; }
  .pk-note { flex-direction: column; }
  .pk-inc-list, .pk-step-list.is-cols, .pk-step:nth-child(4) .pk-step-list, .pk-kit { grid-template-columns: 1fr; }
  .pk-addons { grid-template-columns: 1fr; }
  .pk-step, .pk-box { padding: 1.6rem 1.35rem; }
  .pk-step h3 { font-size: 1.6rem; }
  .pk-inc-intro h2 { font-size: 2.2rem; }
  .pk-branch { width: 5rem; right: -.5rem; top: -3rem; }
  .h1-sub { font-size: .68rem; letter-spacing: .22em; }
}
/* step 1 (longest) spans two rows so steps 2 + 3 stack beside it; prices line up across cards */
@media (min-width: 1141px) { .pk-step:nth-child(1) { grid-row: span 2; } }
.pk-card h3 { min-height: 2.2em; display: flex; align-items: center; justify-content: center; }
@media (max-width: 600px) { .pk-card h3 { min-height: 0; } }
.pk-step { display: flex; flex-direction: column; }
.pk-step-body { flex: 1; display: flex; flex-direction: column; }
.pk-callout { margin-top: auto; }
.pk-step-list { margin-bottom: 1.25rem; }

/* =================================================== CLIENT INTAKE (/intake) */
.ik-sec { padding-top: 3.5rem; }
.ik-layout { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: 2.5rem; align-items: start; }
.ik-main { min-width: 0; padding: 2.5rem 2.75rem 2.25rem; border-radius: 2rem; background: var(--paper); border: 1px solid rgba(197, 162, 77, .3); box-shadow: 0 1.5rem 3rem -2.5rem rgba(70, 49, 31, .45); scroll-margin-top: 7rem; }
/* botanical progress: a vine that fills as you go */
.ik-progress { position: relative; list-style: none; display: grid; grid-template-columns: repeat(var(--n, 7), 1fr); margin: 0 0 2.25rem; --p: 0; }
.ik-progress::before, .ik-progress::after { content: ''; position: absolute; top: 1rem; left: calc(100% / (var(--n, 7) * 2)); right: calc(100% / (var(--n, 7) * 2)); height: 2px; border-radius: 2px; background: rgba(197, 162, 77, .3); }
.ik-progress::after { background: linear-gradient(90deg, var(--sage), var(--forest)); transform: scaleX(var(--p)); transform-origin: left; transition: transform .6s var(--ease); }
.ik-progress li { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: .45rem; text-align: center; }
.ik-dot { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--paper); border: 1.5px solid rgba(197, 162, 77, .6); font: 600 .95rem/1 var(--serif); color: var(--muted); transition: background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease); }
.ik-plabel { font-size: .7rem; line-height: 1.25; color: var(--muted); max-width: 6.5rem; }
.ik-progress li.is-done { cursor: pointer; }
.ik-progress li.is-done .ik-dot { background: var(--sage); border-color: var(--sage); color: #fff; }
.ik-progress li.is-current .ik-dot { background: var(--forest); border-color: var(--forest); color: var(--cream); box-shadow: 0 0 0 .3rem rgba(53, 94, 59, .14); }
.ik-progress li.is-current .ik-plabel { color: var(--forest); font-weight: 600; }
.ik-mobile-step { display: none; }
.ik-kicker { font-size: .7rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--terra-dk); }
.ik-step h2 { font-size: 2.4rem; margin-top: .35rem; outline: none; }
.ik-intro { margin-top: .6rem; font-size: .9375rem; color: var(--muted); max-width: 40rem; }
.ik-grid { margin-top: 1.6rem; }
.ik-req { color: var(--terra); margin-left: .2rem; }
.ik-hint { margin-top: .35rem; font-size: .78rem; color: var(--muted); }
.field-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.1rem; }
.ik-sign { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.1rem; margin-top: .5rem; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.ik-sign .ik-hint { grid-column: 1 / -1; margin-top: -.25rem; }
#ik-signature { font: italic 600 1.35rem/1.2 var(--serif); color: var(--forest); }
fieldset.field { border: 0; padding: 0; margin: 0; min-width: 0; }
.ik-choice legend { display: block; margin-bottom: .55rem; padding: 0; font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--cocoa); }
.ik-opts { display: grid; grid-template-columns: repeat(var(--cols, 2), minmax(0, 1fr)); gap: .5rem; }
.ik-opt { position: relative; display: flex; cursor: pointer; }
.ik-opt input, .ik-pkg input, .ik-ack-box input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ik-opt span { flex: 1; display: flex; align-items: center; gap: .55rem; min-height: 2.9rem; padding: .6rem .9rem; border-radius: .75rem; border: 1px solid rgba(90, 64, 50, .2); background: var(--paper); font-size: .875rem; line-height: 1.3; transition: border-color .2s var(--ease), background-color .2s var(--ease), box-shadow .2s var(--ease); }
.ik-opt span::before { content: ''; flex: none; width: 1rem; height: 1rem; border-radius: 50%; border: 1.5px solid rgba(90, 64, 50, .35); background: #fff; transition: border-color .2s, box-shadow .2s, background-color .2s; }
.ik-opt input[type="checkbox"] + span::before { border-radius: .3rem; }
.ik-opt:hover span { border-color: rgba(53, 94, 59, .45); }
.ik-opt input:checked + span { border-color: var(--forest); background: var(--sage-tint); box-shadow: inset 0 0 0 1px var(--forest); }
.ik-opt input:checked + span::before { border-color: var(--forest); background: var(--forest); box-shadow: inset 0 0 0 .18rem #fff; }
.ik-opt input[type="checkbox"]:checked + span::before { box-shadow: none; background: var(--forest) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 80% no-repeat; }
.ik-opt input:focus-visible + span, .ik-pkg input:focus-visible + .ik-pkg-card, .ik-ack-box input:focus-visible ~ .ik-ack-mark { outline: 2px solid var(--gold); outline-offset: 2px; }
.field.invalid .ik-opt span, .field.invalid .ik-pkg-card, .field.invalid .ik-ack-box { border-color: var(--terra); }
.ik-pkgs { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
.ik-pkg { position: relative; cursor: pointer; display: flex; }
.ik-pkg-card { flex: 1; display: grid; grid-template-columns: 1fr auto; gap: .2rem 1rem; padding: 1rem 1.15rem; border-radius: 1rem; border: 1px solid rgba(90, 64, 50, .2); background: var(--paper); transition: border-color .2s var(--ease), box-shadow .2s var(--ease), background-color .2s var(--ease); }
.ik-pkg-name { font: 600 1.3rem/1.15 var(--serif); color: var(--forest); }
.ik-pkg-price { font: 600 1.3rem/1.15 var(--serif); color: var(--terra-dk); }
.ik-pkg-sum { grid-column: 1 / -1; font-size: .78rem; color: var(--muted); line-height: 1.4; }
.ik-pkg:hover .ik-pkg-card { border-color: rgba(53, 94, 59, .45); }
.ik-pkg input:checked + .ik-pkg-card { border-color: var(--forest); background: var(--sage-tint); box-shadow: inset 0 0 0 1px var(--forest), 0 .75rem 1.5rem -1.25rem rgba(40, 74, 45, .6); }
.ik-sub { grid-column: 1 / -1; margin-top: .75rem; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.ik-sub-title { font: 600 1.35rem/1.2 var(--serif); color: var(--forest); }
.ik-sub-title small { font: 400 .8rem var(--sans); color: var(--muted); }
.ik-ack-box { display: flex; gap: .9rem; align-items: flex-start; padding: 1rem 1.15rem; border-radius: 1rem; border: 1px solid rgba(90, 64, 50, .18); background: var(--paper); cursor: pointer; font-size: .9rem; line-height: 1.5; transition: border-color .2s var(--ease), background-color .2s var(--ease); }
.ik-ack-box strong { color: var(--forest); }
.ik-ack-mark { flex: none; display: grid; place-items: center; width: 1.4rem; height: 1.4rem; margin-top: .05rem; border-radius: .4rem; border: 1.5px solid rgba(90, 64, 50, .35); background: #fff; color: transparent; transition: background-color .2s, border-color .2s, color .2s; }
.ik-ack-mark .ico { width: .95rem; height: .95rem; }
.ik-ack-box:has(input:checked) { border-color: var(--forest); background: var(--sage-tint); }
.ik-ack-box input:checked ~ .ik-ack-mark { background: var(--forest); border-color: var(--forest); color: #fff; }
.ik-nav { display: flex; align-items: center; gap: 1rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.ik-nav .form-status { flex: 1; text-align: center; }
.ik-next, .ik-submit { margin-left: auto; }
.ik-back[hidden] ~ .form-status { text-align: left; }
.ik-done { text-align: center; padding: 1.5rem 0 1rem; outline: none; }
.ik-done-art { width: 7rem; height: 7rem; margin: 0 auto 1rem; }
.ik-done-art svg { width: 100%; height: 100%; }
.ik-done h2 { font-size: 2.75rem; }
.ik-done p { max-width: 30rem; margin: .75rem auto 0; }
.ik-done-pkg { font-weight: 600; color: var(--forest); }
.ik-done .btn { margin-top: 1.75rem; }
.ik-aside { position: sticky; top: 7rem; display: grid; gap: 1rem; }
.ik-aside-card { padding: 1.5rem; border-radius: 1.5rem; background: radial-gradient(ellipse at 0% 0%, #41704A, var(--forest) 60%); color: var(--cream); }
.ik-aside-label { font-size: .7rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-lt); }
.ik-aside-pkg { margin-top: .4rem; font: 600 1.6rem/1.15 var(--serif); }
.ik-aside-price { font: 600 2.25rem/1.1 var(--serif); color: var(--gold-lt); }
.ik-aside-card .text-link { color: var(--gold-lt); border-color: rgba(229, 211, 162, .35); margin-top: .9rem; }
.ik-aside-soft { display: flex; gap: .75rem; background: var(--sage-tint); color: var(--text); border: 1px solid rgba(143, 175, 136, .4); font-size: .875rem; line-height: 1.5; }
.ik-aside-soft .ico { width: 1.4rem; height: 1.4rem; flex: none; color: var(--terra); }
.ik-aside-soft a { color: var(--forest); font-weight: 600; word-break: break-word; }
.ik-privacy { display: flex; gap: .55rem; font-size: .78rem; color: var(--muted); line-height: 1.45; padding: 0 .25rem; }
.ik-privacy .ico { width: 1.05rem; height: 1.05rem; flex: none; color: var(--forest); }
@media (max-width: 1140px) {
  .ik-layout { grid-template-columns: 1fr; }
  .ik-aside { position: static; grid-template-columns: 1fr 1fr; order: -1; }
  .ik-privacy { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .ik-main { padding: 1.75rem 1.25rem 1.5rem; border-radius: 1.5rem; margin: 0 calc(var(--gutter) * -.4); }
  .ik-plabel { display: none; }
  .ik-progress { margin-bottom: .6rem; }
  .ik-dot { width: 1.75rem; height: 1.75rem; font-size: .85rem; }
  .ik-progress::before, .ik-progress::after { top: .875rem; }
  .ik-mobile-step { display: block; margin-bottom: 1.5rem; text-align: center; font-size: .75rem; color: var(--muted); }
  .ik-step h2 { font-size: 2rem; }
  .ik-opts { grid-template-columns: 1fr; }
  .ik-pkgs, .ik-sign, .field-pair { grid-template-columns: 1fr; }
  .ik-aside { grid-template-columns: 1fr; }
  .ik-aside-soft, .ik-privacy { display: none; }
  .ik-nav { flex-wrap: wrap; }
  .ik-nav .form-status { order: -1; flex-basis: 100%; }
  .ik-next, .ik-submit { flex: 1; }
}
.field-pair { grid-column: 1 / -1; }
/* hidden must always win (buttons/progress use display:flex/grid) */
[hidden] { display: none !important; }
/* choice / package / agreement labels are content, not small-caps field labels */
.field label.ik-opt, .field label.ik-pkg, .field label.ik-ack-box { margin-bottom: 0; font-size: .9rem; font-weight: 400; letter-spacing: normal; text-transform: none; color: var(--text); }
.field label.ik-opt { display: flex; }
.field label.ik-pkg { display: flex; }
.field label.ik-ack-box { display: flex; }
.ik-pkg-sum { letter-spacing: normal; text-transform: none; }

/* intake: Ohio Medicaid breakdown */
.ik-medicaid { grid-column: 1 / -1; padding: 1.25rem 1.4rem; border-radius: 1rem; background: linear-gradient(135deg, #FBF1E3, #F4E6D0); border: 1px solid rgba(197, 162, 77, .45); }
.ik-med-title { display: flex; align-items: center; gap: .55rem; font: 600 1.35rem/1.2 var(--serif); color: var(--forest); }
.ik-med-title .ico { width: 1.15rem; height: 1.15rem; color: var(--gold-dk); flex: none; }
.ik-med-rows, .ik-aside-med { margin: .85rem 0 0; }
.ik-med-rows > div, .ik-aside-med > div { display: flex; justify-content: space-between; gap: 1rem; padding: .4rem 0; border-bottom: 1px dashed rgba(90, 64, 50, .18); font-size: .9375rem; }
.ik-med-rows dt, .ik-aside-med dt { color: var(--cocoa); }
.ik-med-rows dd, .ik-aside-med dd { margin: 0; font-weight: 600; color: var(--forest); font-variant-numeric: tabular-nums; }
.ik-med-credit { color: var(--terra-dk) !important; }
.ik-med-rows .ik-med-total, .ik-aside-med .ik-med-total { border-bottom: 0; padding-top: .6rem; }
.ik-med-total dt { font-weight: 600; color: var(--forest); }
.ik-med-total dd { font: 600 1.5rem/1 var(--serif); }
.ik-med-note { margin-top: .75rem; font-size: .875rem; color: var(--cocoa); }
.ik-aside-med > div { border-color: rgba(247, 241, 227, .2); font-size: .85rem; }
.ik-aside-med dt { color: rgba(247, 241, 227, .8); }
.ik-aside-med dd { color: var(--cream); }
.ik-aside-med .ik-med-total dt { color: var(--cream); }
.ik-aside-med .ik-med-total dd { color: var(--gold-lt); }
.ik-done-med { font-weight: 500; color: var(--cocoa); }

/* =================================================== RICHER PALETTE (2026-11-05)
   Same six brand colors; deeper, warmer tints and gradients built from them. */
:root {
  --sage-lt: #D5E2C8;
  --sage-tint: #E2EBD6;
  --terra-lt: #E8A588;
  --peach: #F2C7A6;
  --gold-lt: #E6CC8A;
  --paper: #FFF9EF;
  --cream-lt: #FBF3E3;
  --muted: #7A5A49;
  --line: rgba(197, 162, 77, .62);
}
body { background: linear-gradient(180deg, #F7F1E3 0%, #F6ECDA 50%, #F7F1E3 100%); }

/* hero: deeper golden-hour sky */
.hero-sky { background: linear-gradient(180deg, #FAEFDD 0%, #F7DDC2 36%, #F0C29E 70%, #E8AE86 100%); }
.hero-glow { background: radial-gradient(circle, rgba(255, 214, 160, .95) 0%, rgba(246, 190, 140, .55) 35%, rgba(246, 190, 140, 0) 65%); }
.page-hero { background: linear-gradient(180deg, #FAEFDD 0%, #F6DABE 58%, #EDBD98 100%); }
.ph-glow { background: radial-gradient(circle, rgba(255, 210, 156, .9), rgba(255, 210, 156, 0) 65%); }
.page-skyline .sky-front, .page-skyline .sky-line { opacity: .42; }
.page-skyline .sky-back { opacity: .26; }
.ph-sky { color: #C98B6C; }

/* buttons */
.btn-forest { background: linear-gradient(180deg, #3E6B44, #2F5434); }
.btn-forest:hover { background: linear-gradient(180deg, #355E3B, #26452A); }
.btn-ghost { background: rgba(255, 249, 239, .7); border-color: rgba(53, 94, 59, .6); }

/* gold accents */
.gold-rule { background: linear-gradient(90deg, #B8913A, var(--gold) 60%, #E2C47A); height: 2.5px; }
.sec-line { background: linear-gradient(90deg, #B8913A, rgba(197, 162, 77, 0)); height: 1.5px; }
.pillar-ico { color: var(--terra-dk); }

/* why doulas matter */
.why-band { background: linear-gradient(90deg, #EAD9BC, #FBF2E2 38%, #FFF9EF); border-color: rgba(197, 162, 77, .5); box-shadow: 0 1.75rem 3rem -2.25rem rgba(90, 64, 50, .55); }
.why-intro { background: radial-gradient(ellipse at 0% 50%, #BFD3B1, #CFDEC2 55%, #DCE7D0); }

/* trimester cards: deeper, distinct tints */
.tri-card.tone-gold { background: linear-gradient(160deg, #FAEFD3 0%, #EDD39A 100%); }
.tri-card.tone-sage { background: linear-gradient(160deg, #E7EFDC 0%, #BFD4AF 100%); }
.tri-card.tone-terra { background: linear-gradient(160deg, #FADCCB 0%, #E9A587 100%); }
.tri-card.tone-peach { background: linear-gradient(160deg, #FCE6D0 0%, #F1BF94 100%); }
.tri-num { opacity: .16; }

/* services / payment / why choose */
.svc-tile { background: linear-gradient(170deg, #FBEBD2, #F1D2AA); border-color: rgba(199, 109, 78, .32); }
.svc-tile-all { background: transparent; }
.pay-row, .pay-detail li { background: linear-gradient(90deg, #D6E3CA, #E5EDDB); border-color: rgba(143, 175, 136, .6); }
.choose-sun { background: radial-gradient(circle at 40% 35%, #F0B28A, #DB875F 60%, #C76D4E); }
.choose-list .brush-check, .values .brush-check { color: var(--terra); }

/* labor card + section tints */
.labor { background: linear-gradient(135deg, #654836, #4E3628); }
.sec-tint { background: linear-gradient(180deg, #E3EBD6, #EDEBDA); }
.sec-cocoa { background: linear-gradient(135deg, #654836, #4A3326); }
.cta-inner::before { background: radial-gradient(ellipse at 0% 100%, #C3D6B4, #D5E2C8 50%, #E8EBD9); border-color: rgba(143, 175, 136, .6); }
.stage-sec.tone-gold { background: linear-gradient(180deg, var(--cream), #F1DDAE); }
.stage-sec.tone-sage { background: linear-gradient(180deg, var(--cream), #D2E0C4); }
.stage-sec.tone-terra { background: linear-gradient(180deg, var(--cream), #F2C6AE); }
.stage-sec.tone-peach { background: linear-gradient(180deg, var(--cream), #F5D2B2); }

/* journey */
.j-dot { border-color: var(--terra-dk); }
.j-dot::after { background: var(--terra-dk); }
.vine-path { stroke: #4E6A33; }

/* footer: deeper forest with warm glow */
.footer-body { background: linear-gradient(180deg, #355E3B 0%, #2C5032 55%, #233F28 100%); }
.footer-body::before { background: radial-gradient(ellipse 60% 70% at 15% 100%, rgba(143, 175, 136, .26), transparent 70%), radial-gradient(ellipse 40% 50% at 100% 0%, rgba(197, 162, 77, .2), transparent 70%); }
.footer-skyline .sky-front { opacity: .4; }
.footer-skyline .sky-line { opacity: .5; }

/* packages + intake */
.pk-card.is-featured { background: radial-gradient(ellipse at 50% 0%, #4A7D52, #355E3B 50%, #233F28); }
.pk-inc-list li { background: #FFF9EF; border-color: rgba(143, 175, 136, .55); }
.pk-callout { background: linear-gradient(90deg, #F1DFC0, #DCE7CF); }
.pk-box-forest, .ik-aside-card:not(.ik-aside-soft) { background: radial-gradient(ellipse at 0% 0%, #4A7D52, #355E3B 55%, #263F2A); }
.svc-detail-ico, .pk-box-ico { background: linear-gradient(160deg, #FBE6CC, #EFC6A2); }
.mv-card, .svc-detail, .res-grid li, .pk-step, .pk-box, .ik-main, .footer-form { border-color: rgba(197, 162, 77, .45); }
body { background: linear-gradient(180deg, #F6EDDB 0%, #F2E4CB 50%, #F5EAD6 100%); }
.site-header.scrolled { background: rgba(245, 234, 214, .88); }
.mobile-menu { background: #F5EAD6; }

/* one shared page color, so the hero's front wave melts into the page below it */
:root { --page-bg: #F3E6CF; }
body { background: var(--page-bg); }
.hero-waves .w4 { fill: var(--page-bg); }
.site-header.scrolled { background: rgba(243, 230, 207, .9); }
.mobile-menu { background: var(--page-bg); }

/* intake: Medicaid package + per-card Medicaid pricing */
.ik-pkg-medicaid { grid-column: 1 / -1; }
.ik-pkg-medicaid .ik-pkg-card { background: linear-gradient(135deg, #E2EBD6, #CFDEC2); border-color: rgba(53, 94, 59, .45); }
.ik-pkg-badge { grid-column: 1 / -1; justify-self: start; margin-bottom: .35rem; padding: .25rem .65rem; border-radius: 999px; background: var(--forest); color: var(--cream); font-size: .65rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.ik-pkg-med { grid-column: 1 / -1; margin-top: .35rem; padding-top: .45rem; border-top: 1px dashed rgba(90, 64, 50, .2); font-size: .8rem; font-weight: 600; color: var(--terra-dk); }
.ik-pkg-med.is-free { color: var(--forest); }
.ik-med-hint { margin: 0 0 .65rem; }

/* ---------- intake: SDOH step ---------- */
.ik-scale .ik-opt span { justify-content: center; text-align: center; }
.ik-safety-note { display: flex; gap: .75rem; align-items: flex-start; margin: .25rem 0 .5rem; padding: 1rem 1.15rem; border-radius: 1rem; background: rgba(199, 109, 78, .08); border: 1px solid rgba(199, 109, 78, .22); font-size: .9rem; line-height: 1.55; color: var(--text); grid-column: 1 / -1; }
.ik-safety-note .ico { flex: none; width: 1.25rem; height: 1.25rem; color: var(--terra); margin-top: .1rem; }
.ik-safety-note a { color: var(--forest); font-weight: 600; text-decoration: underline; text-underline-offset: .15em; }
@media (max-width: 700px) {
  .ik-scale .ik-opts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ik-choice:has(input[name="sdohLonely"]) .ik-opts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* SDOH questions are full sentences — sentence case reads better than the small-caps field labels */
[aria-labelledby="ik-h-needs"] .ik-choice legend, [aria-labelledby="ik-h-needs"] .field label[for] { text-transform: none; letter-spacing: 0; font-size: .95rem; font-weight: 600; line-height: 1.45; color: var(--cocoa); }
