:root {
  --plum: #302238;
  --plum-soft: #49384f;
  --sage: #b9c7b9;
  --sage-light: #e6ebe2;
  --cream: #faf8f4;
  --paper: #fffdf9;
  --green: #243b3b;
  --ink: #302d32;
  --muted: #65625f;
  --line: #dcdcd2;
  --white: #ffffff;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
  --shadow: 0 20px 60px rgb(48 34 56 / 10%);
}

.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:16px; top:-100px; z-index:100; background:#fff; color:#302238; padding:12px 20px; }
.skip-link:focus { top:12px; }
.brand-dot { font-family:Georgia,serif; color:#71866d; font-size:1.1rem; margin-left:7px; vertical-align:top; }
.concern-article { max-width:850px; padding:64px 0; border-bottom:1px solid #dcdcd2; }
.concern-article h2 { font-size:clamp(2.1rem,3.4vw,3rem); }
.section-plum .partner-banner { background:transparent; border-color:#6e5c75; }
.section-plum .partner-banner p { color:#ddd4df; }
.location-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.map-sidebar .location-controls { margin-top:16px; }
.map-sidebar .map-detail { margin-top:0; }
.location-button span { font-size:.75rem; display:block; font-weight:400; }
.image-caption > span + span { display:block; margin-top:8px; }
#draft-preview { white-space:pre-wrap; overflow-wrap:anywhere; font:14px/1.6 -apple-system,sans-serif; background:#f0ede5; padding:18px; border-radius:4px; }
#inquiry-result { margin-top:28px; border-top:1px solid #dcdcd2; padding-top:24px; }
.split blockquote { margin:24px 0; font:italic 1.5rem/1.5 Georgia,serif; color:#302238; }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; color: var(--ink); background: var(--cream); font: 16px/1.65 var(--sans); -webkit-font-smoothing: antialiased; }
::selection { color: var(--plum); background: #d4dfc8; }
a { color: inherit; text-underline-offset: .23em; }
a, button, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
button, input, select, textarea { font: inherit; }
button, summary { cursor: pointer; }
button { color: inherit; }
button:disabled { opacity: .55; cursor: not-allowed; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
figure { margin: 0; }
p { margin: 0 0 1.2em; }
p:last-child { margin-bottom: 0; }
h1, h2, h3, h4 { color: var(--plum); font-weight: 400; line-height: 1.12; margin: 0 0 .65em; text-wrap: balance; }
h1, h2, h3 { font-family: var(--serif); }
h1 { font-size: clamp(3.05rem, 5.4vw, 5.5rem); letter-spacing: -.052em; }
h2 { font-size: clamp(2.3rem, 3.8vw, 3.8rem); letter-spacing: -.045em; }
h3 { font-size: 1.8rem; letter-spacing: -.025em; line-height: 1.2; }
h4 { font: 650 1rem/1.4 var(--sans); }
h1 em, h2 em { font-weight: 400; color: var(--green); }
ul, ol { padding-left: 1.3rem; }
li + li { margin-top: .5rem; }
hr { border: 0; border-top: 1px solid var(--line); margin: 2rem 0; }
:focus-visible { outline: 3px solid #8a573e; outline-offset: 5px; }
[hidden] { display: none !important; }
.container { width: min(1180px, calc(100% - 96px)); margin-inline: auto; }
.small { font-size: .84rem; line-height: 1.6; }
.muted { color: var(--muted); }
.pill { display: inline-flex; align-items: center; gap: .4rem; border: 1px solid currentColor; border-radius: 30px; padding: .35rem .75rem; font-size: .72rem; line-height: 1.3; font-weight: 600; letter-spacing: .04em; }
.eyebrow { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .16em; line-height: 1.55; text-transform: uppercase; color: var(--green); margin-bottom: 1.4rem; }
.lede { font-size: clamp(1.02rem, 1.5vw, 1.2rem); line-height: 1.75; color: #57535a; max-width: 560px; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 2rem; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 50px; padding: .85rem 1.45rem; border: 1px solid transparent; border-radius: 4px; font-size: .83rem; font-weight: 600; line-height: 1.3; text-decoration: none; transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--plum); color: var(--white); }
.btn-primary:hover { background: #4c3855; }
.btn-secondary { border-color: #b3b3a8; color: var(--plum); background: transparent; }
.btn-secondary:hover { border-color: var(--plum); background: #f1eee8; }
.btn-light { background: var(--cream); color: var(--plum); }
.btn-light:hover { background: #e0e8d8; }
.btn-small { min-height: 44px; padding: .7rem 1.1rem; font-size: .77rem; }
.text-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--plum); font-size: .87rem; font-weight: 650; text-decoration-thickness: 1px; }
.text-link:hover { color: #65506a; }

.review-bar { min-height: 31px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; padding: 6px 24px; background: var(--plum); color: #eee7ec; text-align: center; font-size: .66rem; letter-spacing: .045em; line-height: 1.5; }
.review-bar button, .review-bar a { appearance: none; color: inherit; background: none; border: 0; padding: 0; font-size: inherit; text-decoration: underline; text-underline-offset: 3px; }
.site-header { position: relative; z-index: 20; background: var(--cream); border-bottom: 1px solid var(--line); }
.site-header > .container { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 99px; }
.brand { display: inline-flex; flex-direction: column; flex-shrink: 0; text-decoration: none; color: var(--plum); padding-block: 10px; }
.brand-logo { display: block; width: 164px; height: auto; }
.brand-sub { margin-top: .45rem; font-size: .52rem; font-weight: 650; letter-spacing: .23em; line-height: 1.4; text-transform: uppercase; }
.main-nav { display: flex; align-items: center; gap: 25px; }
.main-nav > a:not(.btn) { display: inline-flex; align-items: center; min-height: 44px; font-size: .77rem; font-weight: 550; text-decoration: none; white-space: nowrap; position: relative; }
.main-nav > a:not(.btn)::after { content: ''; height: 1px; width: 100%; position: absolute; bottom: 8px; left: 0; background: var(--plum); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.main-nav > a:hover::after, .main-nav > a.nav-active::after, .main-nav > a[aria-current='page']::after { transform: scaleX(1); }
.nav-toggle { display: none; min-width: 44px; min-height: 44px; border: 1px solid var(--line); border-radius: 3px; background: transparent; font-size: .8rem; }

.hero { padding: 70px 0 82px; overflow: hidden; }
.hero-grid { display: grid; grid-template-columns: 1.06fr 1fr; gap: clamp(40px, 6vw, 90px); align-items: center; }
.hero-grid > * { min-width: 0; }
.hero h1 { max-width: 650px; }
.hero-partners h1 { font-size:clamp(2.9rem,4.35vw,4.5rem); }
.hero .lede { max-width: 470px; }
.hero .eyebrow { margin-bottom: 1.6rem; }
.hero-image { position: relative; isolation: isolate; padding-bottom: 36px; }
.hero-image > img, .hero-image > picture > img { width: 100%; aspect-ratio: 1 / 1.08; object-fit: cover; border-radius: 48% 48% 4px 4px; background: var(--sage-light); }
.hero-partners .hero-image > img, .hero-partners .hero-image > picture > img { border-radius: 4px 4px 42% 4px; aspect-ratio: 1 / 1.06; }
.hero-image::before { content: ''; position: absolute; z-index: -1; width: 100%; height: 90%; top: 4%; left: 18px; border: 1px solid var(--sage); border-radius: 48% 48% 4px 4px; }
.hero-partners .hero-image::before { content: none; }
.moms-photo::before, .peak-performers-photo::before, .kids-teens-photo::before { content: none; }
.hero-image.moms-photo > img, .hero-image.kids-teens-photo > img, .hero-image.peak-performers-photo > img { border-radius: 4px; aspect-ratio: 4 / 5; object-position: center top; }
.image-caption { margin-top: 1rem; font-size: .68rem; letter-spacing: .03em; line-height: 1.6; color: var(--muted); }
.hero-note { margin-top: 1.65rem; color: var(--muted); font-size: .74rem; line-height: 1.65; max-width: 455px; }
.hero-note strong { font-weight: 650; color: var(--green); }
.hero.hero-home { position: relative; isolation: isolate; padding: 0; min-height: clamp(720px, calc(100svh - 130px), 850px); background: var(--plum); }
.home-backdrop { position: absolute; inset: 0; z-index: -1; }
.home-backdrop img { width: 100%; height: 100%; object-fit: cover; object-position: left 55%; }
.home-backdrop::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(48 34 56 / 0%) 0%, rgb(48 34 56 / 4%) 28%, rgb(63 37 77 / 74%) 52%, rgb(48 28 61 / 92%) 100%); pointer-events: none; }
.home-hero-inner { display: flex; align-items: center; justify-content: flex-end; min-height: inherit; }
.home-hero-copy { width: min(49%, 570px); padding-block: 72px; color: var(--cream); }
.hero-home h1 { font-size: clamp(3.15rem, 4.8vw, 5.15rem); color: #fff; }
.hero-home h1 em { color: #fff; }
.hero-home .eyebrow, .hero-home .lede, .hero-home .hero-note, .hero-home .text-link { color: var(--cream); }
.hero-home .lede { max-width: 510px; }
.hero-home .text-link:hover { color: #fff; }
.hero-home :focus-visible { outline-color: #fff; }
.page-hero { padding: 76px 0 68px; border-bottom: 1px solid var(--line); }
.page-hero h1 { max-width: 930px; font-size: clamp(3rem, 5.1vw, 5.1rem); }
.page-hero .lede { max-width: 710px; }
.page-hero .actions { margin-top: 1.75rem; }

.section { padding: 90px 0; }
.section-sage { background: var(--sage-light); }
.section-plum { color: #eee8ee; background: var(--plum); }
.section-plum h1, .section-plum h2, .section-plum h3, .section-plum h4, .section-plum .eyebrow, .section-plum .text-link { color: var(--cream); }
.section-plum h1 em, .section-plum h2 em { color: var(--sage); }
.section-plum .lede, .section-plum .muted, .section-plum .section-intro, .section-plum .small { color: #cfc6d1; }
.section-plum .btn-secondary { border-color: #958399; color: var(--cream); }
.section-plum .btn-secondary:hover { background: #4c3855; }
.section-cream { background: #f0ede5; }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 48px; margin-bottom: 42px; }
.section-head > :first-child { flex: 1 1 60%; }
.section-head h2 { max-width: 710px; margin-bottom: 0; }
.section-head .eyebrow { margin-bottom: 1.1rem; }
.section-head > p, .section-head > .section-intro { flex: 0 1 370px; margin-bottom: .25rem; }
.section-intro { max-width: 660px; color: var(--muted); font-size: 1rem; }
.section-head + .section-intro { margin-top: -20px; margin-bottom: 38px; }
.three-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.two-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.four-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px; }
.audience-card { position: relative; display: flex; flex-direction: column; padding: 32px 30px 25px; border: 1px solid #d5d9cd; border-radius: 4px; background: var(--cream); min-height: 320px; text-decoration: none; }
a.audience-card:hover { border-color: #7e8b75; }
.audience-card:nth-child(2) { background: #f0eee9; }
.audience-card:nth-child(3) { background: #e1e8dd; }
.audience-card h3 { margin-top: 1.1rem; margin-bottom: .65rem; }
.audience-card p { color: #5b5958; font-size: .9rem; }
.audience-card .text-link { margin-top: auto; padding-top: 1rem; }
.review-card { display: flex; flex-direction: column; margin: 0; padding: 32px 30px; background: var(--cream); border: 1px solid #d8d1dc; border-top: 3px solid #9b7fa8; border-radius: 4px; }
.review-card blockquote { margin: 0 0 30px; color: var(--plum); font: 1.55rem/1.35 var(--serif); }
.review-card figcaption { margin-top: auto; }
.review-card cite { display: block; font-size: .85rem; font-weight: 600; font-style: normal; }
.review-origin { display: block; margin-top: 8px; font-size: .72rem; color: var(--muted); line-height: 1.5; }
.audience-num { display: block; color: #687464; font: .73rem/1 var(--sans); letter-spacing: .08em; }
.audience-card > img { width: calc(100% + 60px); max-width: none; margin: -32px -30px 28px; aspect-ratio: 1.35; object-fit: cover; border-radius: 4px 4px 0 0; }
.concern-card { padding: 28px 0; border-top: 1px solid #c5cbbf; }
.concern-card h3 { font-size: 1.6rem; }
.concern-card p { font-size: .91rem; color: var(--muted); }
.concern-links { display: flex; flex-wrap: wrap; gap: 10px; margin-block: 28px; }
.concern-links a { display: inline-flex; align-items: center; gap: 18px; min-height: 48px; padding: 10px 18px; border: 1px solid #bfc7b8; border-radius: 3px; background: rgb(255 255 255 / 35%); color: var(--green); font-size: .86rem; text-decoration: none; transition: background .2s, border-color .2s; }
.concern-links a:hover { border-color: var(--green); background: var(--cream); }
.step { padding-top: 22px; border-top: 1px solid #b9c3b3; }
.step-num { display: block; margin-bottom: 30px; color: #6c7869; font-size: .76rem; letter-spacing: .09em; }
.step h3 { font-size: 1.45rem; }
.step p { font-size: .86rem; line-height: 1.75; color: #5e655b; }
.section-plum .step { border-color: #6e5c75; }
.section-plum .step-num { color: var(--sage); }
.section-plum .step p { color: #d3cad5; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 84px; align-items: center; }
.split > * { min-width: 0; }
.split img, .portrait { width: 100%; object-fit: cover; aspect-ratio: 4 / 4.6; border-radius: 4px; }
.portrait { object-position: center 30%; }
.split p { color: #5c595e; }
.split .image-caption { font-size: .68rem; }
.section-plum .split p { color: #d3cad5; }
.quote-block { max-width: 920px; margin-inline: auto; text-align: center; }
.quote-block blockquote { margin: 0 0 1.8rem; font: 400 clamp(1.8rem, 3.2vw, 2.9rem)/1.4 var(--serif); letter-spacing: -.025em; color: var(--plum); text-wrap: balance; }
.quote-block cite { display: block; font: 600 .75rem/1.6 var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.quote-block .small { margin-top: 1.3rem; color: var(--muted); }
.section-plum .quote-block blockquote { color: var(--cream); }
.section-plum .quote-block cite { color: var(--sage); }
.section-plum .quote-block .small { color: #cfc6d1; }
.partner-banner { display: flex; align-items: center; justify-content: space-between; gap: 50px; padding: 42px 48px; border: 1px solid #b6c1b0; border-radius: 4px; background: #e3e9dd; }
.partner-banner h2, .partner-banner h3 { margin-bottom: .45rem; font-size: clamp(1.8rem, 3vw, 2.65rem); }
.partner-banner > div { max-width: 710px; }
.partner-banner p { font-size: .92rem; color: #53604f; }
.partner-banner .btn { flex-shrink: 0; }
.icon-line { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; padding-block: 20px; font-size: .76rem; color: var(--green); }
.icon-line > * { display: inline-flex; align-items: center; gap: 8px; }
.icon-line svg { width: 18px; height: 18px; }

.faq { max-width: 850px; }
.faq details { border-top: 1px solid #cdd1c6; }
.faq details:last-child { border-bottom: 1px solid #cdd1c6; }
.faq summary { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 25px; min-height: 74px; padding: 20px 42px 20px 0; list-style: none; color: var(--plum); font-size: 1rem; font-weight: 500; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; position: absolute; right: 5px; top: 50%; transform: translateY(-50%); font: 400 1.5rem/1 var(--sans); color: var(--green); }
.faq details[open] > summary::after { content: '−'; }
.faq details > p, .faq details > div { max-width: 740px; padding: 0 38px 25px 0; color: var(--muted); font-size: .94rem; }
.faq details > div > p:last-child { margin-bottom: 0; }
.cta-block { max-width: 850px; margin-inline: auto; text-align: center; }
.cta-block h2 { margin-inline: auto; max-width: 750px; }
.cta-block > p, .cta-block .lede { max-width: 610px; margin-inline: auto; }
.cta-block .actions { justify-content: center; }
.cta-block .small { margin-top: 1.3rem; }
.source-note, .research-note { margin-top: 25px; padding-top: 18px; border-top: 1px solid var(--line); font-size: .75rem; line-height: 1.7; color: var(--muted); }
.research-note { border-left: 2px solid #85947b; border-top: 0; padding: 16px 20px; background: rgb(185 199 185 / 14%); }
.research-note strong { color: var(--green); }
.source-note a, .research-note a { overflow-wrap: anywhere; }
.section-plum .research-note { color: #d3cad5; background: rgb(255 255 255 / 5%); }
.section-plum .research-note strong { color: var(--sage); }

.map-layout { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(260px, 1fr); gap: 40px; align-items: start; }
.service-map { position: relative; background: #f1f0e9; border: 1px solid var(--line); border-radius: 4px; padding: 26px; overflow: hidden; }
.service-map svg { width: 100%; height: auto; overflow: visible; }
.service-map .state { fill: #dedfd5; stroke: var(--cream); stroke-width: 1.5; vector-effect: non-scaling-stroke; transition: fill .2s, opacity .2s; }
.service-map .state-base { fill: var(--plum); }
.service-map .state-served { fill: #738e74; }
.service-map .state-active { fill: #4a6750; stroke: var(--plum); stroke-width: 2.5; }
.service-map .state-base.state-active { fill: #58405f; }
.service-map .state-base:hover, .service-map .state-served:hover { opacity: .8; }
.service-map text { fill: var(--green); font-family: var(--sans); font-size: 13px; font-weight: 600; }
.service-map .map-label-light { fill: var(--cream); }
.map-legend { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; margin-top: 24px; padding-top: 20px; border-top: 1px solid #d7d9cc; font-size: .72rem; color: var(--muted); }
.map-legend > * { display: inline-flex; align-items: center; gap: 8px; }
.legend-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #dedfd5; flex: 0 0 10px; }
.legend-dot.base { background: var(--plum); }
.legend-dot.served { background: #738e74; }
.location-button { width: 100%; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 3px; min-height: 58px; text-align: left; padding: 10px 12px; margin: 0; background: transparent; border: 1px solid #c6ccbe; border-radius: 3px; color: var(--green); font-size: .92rem; transition: background .2s, border-color .2s; }
.location-button:hover { background: #eef0e7; }
.location-button[aria-pressed='true'] { background: var(--plum); color: var(--cream); border-color: var(--plum); }
.location-button small { display: block; opacity: .8; font-size: .72rem; }
.map-detail { margin-top: 24px; padding: 24px; border: 1px solid var(--line); border-radius: 3px; background: var(--paper); }
.map-detail h3 { font-size: 1.55rem; }
.map-detail p { font-size: .85rem; color: var(--muted); }
.map-detail .eyebrow { font-size: .63rem; margin-bottom: .8rem; }
.table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 4px; }
.role-table { width: 100%; border-collapse: collapse; text-align: left; font-size: .9rem; }
.role-table th, .role-table td { padding: 23px 26px; vertical-align: top; border-bottom: 1px solid var(--line); }
.role-table th { background: #e6ebe2; font-size: .71rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 650; color: var(--green); }
.role-table td:first-child { color: var(--plum); font-weight: 650; width: 25%; }
.role-table td { color: #625d63; }
.role-table tr:last-child td { border-bottom: 0; }
.value-list { margin-top: 24px; }
.value-row { display: grid; grid-template-columns: 50px minmax(0, 1fr); gap: 18px; border-top: 1px solid var(--line); padding: 25px 0; }
.value-row > :first-child:not(div) { color: #6c7869; font-size: .8rem; }
.value-row h3 { font-size: 1.5rem; margin-bottom: .45rem; }
.value-row p { font-size: .9rem; color: var(--muted); }
.process-list { list-style: none; counter-reset: process; margin: 30px 0; padding: 0; }
.process-list > li { position: relative; counter-increment: process; min-height: 80px; padding: 20px 0 25px 65px; margin: 0; border-top: 1px solid var(--line); }
.process-list > li::before { content: counter(process, decimal-leading-zero); position: absolute; top: 22px; left: 0; color: #687464; font-size: .8rem; letter-spacing: .08em; }
.process-list h3 { font-size: 1.5rem; margin-bottom: .5rem; }
.process-list p { font-size: .92rem; color: var(--muted); }

.site-footer { background: #e9e9df; padding: 58px 0 30px; border-top: 1px solid #d4d8ca; }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.1fr; gap: 36px; }
.footer-grid h3, .footer-grid h4 { margin: .6rem 0 1.2rem; color: var(--green); font: 650 .65rem/1.5 var(--sans); letter-spacing: .13em; text-transform: uppercase; }
.footer-grid p { max-width: 270px; color: #63665d; font-size: .77rem; line-height: 1.8; }
.footer-grid .brand { margin-bottom: 1.25rem; }
.footer-grid a:not(.brand):not(.btn) { display: block; width: fit-content; min-height: 34px; padding-block: 4px; font-size: .79rem; color: #4d544a; text-decoration: none; }
.footer-grid a:not(.brand):hover { text-decoration: underline; }
.site-footer > .container > .small, .site-footer .footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 30px; margin-top: 40px; padding-top: 22px; border-top: 1px solid #cbd0c2; color: #666a60; font-size: .68rem; }
.site-footer .footer-bottom p { margin: 0; }
.site-footer .footer-bottom a { margin-left: 15px; }

.review-tab { position: fixed; z-index: 35; right: 22px; bottom: 22px; display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 11px 18px; border: 1px solid #c7cbbf; border-radius: 40px; box-shadow: 0 4px 20px rgb(48 34 56 / 12%); color: var(--plum); background: var(--paper); font-size: .72rem; font-weight: 600; }
.review-tab:hover { background: var(--sage-light); }
dialog.review-dialog, dialog.contact-dialog { width: min(710px, calc(100% - 40px)); max-height: calc(100dvh - 64px); padding: 36px; margin: auto; border: 1px solid #ddd9cf; border-radius: 6px; background: var(--cream); color: var(--ink); box-shadow: var(--shadow); overflow-y: auto; }
dialog::backdrop { background: rgb(31 24 34 / 65%); backdrop-filter: blur(4px); }
.dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.dialog-head h2 { font-size: 2rem; margin-bottom: 0; }
.dialog-head button { flex-shrink: 0; display: grid; place-items: center; width: 44px; height: 44px; margin-top: -8px; border: 1px solid #c8c9bf; border-radius: 50%; background: transparent; color: var(--plum); font-size: 1.3rem; }
.dialog-head button:hover { background: var(--sage-light); }
.review-items { padding-left: 20px; font-size: .9rem; }
.review-items li { padding-left: 5px; }
.review-items li + li { margin-top: 18px; }
.review-items strong { color: var(--plum); }
.contact-dialog form { margin-top: 24px; }
.contact-dialog label { display: block; margin-bottom: 18px; color: var(--plum); font-size: .79rem; font-weight: 600; }
.contact-dialog input, .contact-dialog select, .contact-dialog textarea { width: 100%; display: block; min-height: 48px; margin-top: 7px; padding: 11px 13px; border: 1px solid #bfc4b8; border-radius: 3px; background: var(--paper); color: var(--ink); font-size: .92rem; font-weight: 400; }
.contact-dialog textarea { min-height: 115px; resize: vertical; }
.contact-dialog input::placeholder, .contact-dialog textarea::placeholder { color: #75776f; }
.contact-dialog input[type='checkbox'], .contact-dialog input[type='radio'] { display: inline-block; width: 18px; min-height: 18px; margin: 0 8px 0 0; vertical-align: middle; accent-color: var(--plum); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.contact-dialog .form-note { margin-top: 16px; color: var(--muted); font-size: .75rem; }

@media (min-width: 1440px) {
  .hero { padding-top: 86px; padding-bottom: 94px; }
  .section { padding-block: 104px; }
}

@media (max-width: 980px) {
  .container { width: min(1180px, calc(100% - 56px)); }
  .site-header > .container { min-height: 86px; }
  .brand-name { font-size: 1.8rem; }
  .nav-toggle { display: inline-grid; place-items: center; padding: 8px 12px; }
  .main-nav { display: none; position: absolute; top: 100%; left: 0; width: 100%; padding: 16px 28px 25px; background: var(--cream); border-bottom: 1px solid var(--line); box-shadow: 0 20px 20px rgb(48 34 56 / 8%); }
  .main-nav.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
  .main-nav > a:not(.btn) { min-height: 48px; font-size: .91rem; }
  .main-nav > a:not(.btn)::after { width: 35px; bottom: 7px; }
  .main-nav .btn { margin-top: 10px; min-height: 48px; font-size: .82rem; }
  .hero { padding-block: 55px 62px; }
  .hero-grid { gap: 40px; grid-template-columns: 1.1fr 1fr; }
  h1 { font-size: clamp(2.9rem, 5.7vw, 4.6rem); }
  .hero .lede { font-size: 1rem; }
  .hero-image { padding-bottom: 12px; }
  .hero-image > img, .hero-image > picture > img { aspect-ratio: 1 / 1.35; }
  .section { padding-block: 70px; }
  .section-head { gap: 30px; }
  .section-head > p, .section-head > .section-intro { flex-basis: 290px; font-size: .9rem; }
  .three-grid { gap: 16px; }
  .audience-card { padding: 25px 22px 22px; min-height: 330px; }
  .audience-card > img { width: calc(100% + 44px); margin: -25px -22px 25px; }
  .audience-card h3 { font-size: 1.65rem; }
  .audience-card p { font-size: .85rem; }
  .four-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
  .step-num { margin-bottom: 22px; }
  .split { gap: 44px; }
  .partner-banner { padding: 32px; gap: 32px; }
  .map-layout { grid-template-columns: minmax(0, 1.5fr) minmax(240px, 1fr); gap: 24px; }
  .service-map { padding: 18px; }
  .map-detail { padding: 20px; }
  .footer-grid { grid-template-columns: 1.3fr 1fr 1fr; gap: 28px; }
  .footer-grid > :first-child { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 20px 50px; }
  .footer-grid > :first-child p { max-width: 400px; }
}

@media (max-width: 800px) {
  .hero.hero-home { min-height: 0; background: var(--cream); }
  .home-backdrop { position: relative; z-index: auto; }
  .home-backdrop img { height: auto; aspect-ratio: 4 / 3; object-fit: contain; }
  .home-backdrop::after { background: rgb(125 78 134 / 10%); }
  .home-hero-inner { display: block; min-height: 0; }
  .home-hero-copy { width: 100%; padding-block: 38px 48px; color: var(--ink); }
  .hero-home .home-hero-copy h1 { font-size: clamp(2.65rem, 8.5vw, 4rem); color: var(--plum); }
  .hero-home h1 em { color: var(--green); }
  .hero-home .eyebrow, .hero-home .text-link, .hero-home .text-link:hover { color: var(--green); }
  .hero-home .lede { color: var(--ink); }
  .hero-home .hero-note { color: var(--muted); }
  .hero-home .btn-light { background: var(--plum); color: var(--cream); }
  .hero-home .btn-light:hover { background: var(--plum-soft); }
  .hero-home :focus-visible { outline-color: #8a573e; }
}

@media (max-width: 700px) {
  html { scroll-padding-top: 24px; }
  body { font-size: 15px; }
  .container { width: calc(100% - 40px); }
  .review-bar { padding-inline: 20px; font-size: .59rem; gap: 4px 7px; }
  .site-header > .container { min-height: 78px; gap: 15px; }
  .brand-name { font-size: 1.8rem; }
  .brand-sub { font-size: .49rem; }
  .nav-toggle { display: inline-grid; place-items: center; padding: 8px 12px; }
  .main-nav { display: none; position: absolute; top: 100%; left: 0; width: 100%; padding: 16px 20px 25px; background: var(--cream); border-bottom: 1px solid var(--line); box-shadow: 0 20px 20px rgb(48 34 56 / 8%); }
  .main-nav.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
  .main-nav > a:not(.btn) { min-height: 48px; font-size: .91rem; }
  .main-nav > a:not(.btn)::after { width: 35px; bottom: 7px; }
  .main-nav .btn { margin-top: 10px; min-height: 48px; font-size: .82rem; }
  .hero { padding: 46px 0 45px; }
  .hero-grid { grid-template-columns: 1fr; gap: 38px; }
  .hero h1 { font-size: clamp(3rem, 10.8vw, 4.4rem); max-width: 560px; margin-bottom: .45em; }
  .hero .eyebrow { margin-bottom: 1.25rem; }
  .hero .lede { max-width: 520px; font-size: 1rem; }
  .hero-image { width: 100%; padding-bottom: 0; }
  .hero-image > img, .hero-image > picture > img { aspect-ratio: 1.18 / 1; border-radius: 44% 44% 3px 3px; object-position: center 40%; }
  .hero-partners .hero-image > img, .hero-partners .hero-image > picture > img { aspect-ratio: 1.2 / 1; }
  .hero-image::before { display: none; }
  .image-caption { font-size: .63rem; }
  .hero-note { font-size: .72rem; }
  .actions { margin-top: 1.6rem; gap: 10px; }
  .btn { padding: .85rem 1.15rem; font-size: .79rem; }
  .page-hero { padding: 48px 0; }
  .page-hero h1 { font-size: clamp(2.8rem, 10.2vw, 4rem); }
  .page-hero .lede { font-size: 1rem; }
  h2 { font-size: clamp(2.15rem, 8.4vw, 3rem); }
  h3 { font-size: 1.65rem; }
  .eyebrow { font-size: .65rem; margin-bottom: 1rem; }
  .section { padding: 56px 0; }
  .section-head { display: block; margin-bottom: 30px; }
  .section-head h2 { max-width: 550px; }
  .section-head > p, .section-head > .section-intro { margin-top: 20px; font-size: .93rem; max-width: 540px; }
  .section-head + .section-intro { margin-top: -10px; margin-bottom: 28px; }
  .three-grid, .two-grid { grid-template-columns: 1fr; gap: 18px; }
  .four-grid { gap: 25px 20px; }
  .audience-card { min-height: 0; padding: 27px 25px 22px; }
  .audience-card h3 { font-size: 1.9rem; margin-top: 1rem; }
  .audience-card p { font-size: .92rem; max-width: 480px; }
  .audience-card .text-link { padding-top: 4px; }
  .audience-card > img { width: calc(100% + 50px); margin: -27px -25px 25px; aspect-ratio: 1.6; }
  .step { padding-top: 18px; }
  .step h3 { font-size: 1.35rem; }
  .step p { font-size: .82rem; }
  .step-num { margin-bottom: 20px; }
  .split { grid-template-columns: 1fr; gap: 35px; }
  .split img, .portrait { aspect-ratio: 1.1 / 1; object-position: center 30%; }
  .split p { font-size: .95rem; }
  .partner-banner { flex-direction: column; align-items: flex-start; gap: 25px; padding: 29px 25px; }
  .partner-banner h2, .partner-banner h3 { font-size: 2rem; }
  .quote-block blockquote { font-size: 1.95rem; line-height: 1.4; }
  .quote-block cite { font-size: .68rem; }
  .concern-links { gap: 8px; margin-block: 22px; }
  .concern-links a { padding: 10px 13px; font-size: .78rem; gap: 12px; }
  .concern-card { padding: 20px 0 8px; }
  .faq summary { min-height: 74px; font-size: .94rem; line-height: 1.5; }
  .faq details > p, .faq details > div { padding-right: 15px; font-size: .88rem; }
  .map-layout { grid-template-columns: 1fr; gap: 24px; }
  .service-map { padding: 16px 10px; }
  .map-legend { padding-inline: 6px; gap: 10px 18px; font-size: .65rem; }
  .map-detail { margin-top: 18px; }
  .location-button { min-height: 60px; }
  .role-table { min-width: 570px; font-size: .84rem; }
  .role-table th, .role-table td { padding: 18px; }
  .value-row { grid-template-columns: 32px minmax(0, 1fr); gap: 15px; padding: 21px 0; }
  .value-row h3 { font-size: 1.45rem; }
  .process-list > li { padding-left: 47px; }
  .process-list h3 { font-size: 1.45rem; }
  .source-note, .research-note { font-size: .7rem; }
  .site-footer { padding-top: 40px; padding-bottom: 76px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 25px; }
  .footer-grid > :first-child { display: block; }
  .footer-grid > :last-child { grid-column: 1 / -1; }
  .footer-grid > :first-child p { max-width: 330px; }
  .footer-grid h3, .footer-grid h4 { margin-top: 0; }
  .footer-grid a:not(.brand):not(.btn) { min-height: 44px; padding-block: 10px; font-size: .82rem; }
  .site-footer .footer-bottom { display: block; margin-top: 27px; }
  .site-footer .footer-bottom a { display: inline-block; min-height: 44px; padding-block: 12px; margin-left: 0; margin-right: 16px; }
  .review-tab { bottom: 14px; right: 14px; font-size: .69rem; padding-inline: 15px; }
  dialog.review-dialog, dialog.contact-dialog { width: calc(100% - 24px); max-height: calc(100dvh - 24px); padding: 26px 22px; }
  .dialog-head { gap: 15px; }
  .dialog-head h2 { font-size: 1.8rem; }
  .dialog-head button { margin-top: -4px; }
  .form-grid { grid-template-columns: 1fr; gap: 0; }
  .contact-dialog input, .contact-dialog select, .contact-dialog textarea { font-size: 16px; }
  .contact-dialog form .btn { width: 100%; }
}

@media (max-width: 380px) {
  .container { width: calc(100% - 32px); }
  .hero h1 { font-size: 2.9rem; }
  .hero .actions .btn { width: 100%; }
  .four-grid { grid-template-columns: 1fr; }
  .step-num { margin-bottom: 12px; }
  .footer-grid { column-gap: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .btn:hover { transform: none; }
}

@media print {
  @page { margin: 18mm; }
  html { scroll-behavior: auto; }
  body { background: white; color: #222; font-size: 10pt; }
  .container { width: 100%; }
  .review-bar, .main-nav, .nav-toggle, .review-tab, dialog, .contact-dialog, .actions, .site-footer { display: none !important; }
  .site-header { background: white; border-bottom: 1px solid #ccc; }
  .site-header > .container { min-height: 70px; }
  .hero, .page-hero, .section { padding-block: 25px; overflow: visible; }
  h1 { font-size: 34pt; }
  h2 { font-size: 25pt; }
  h3 { font-size: 17pt; }
  h1, h2, h3, h4 { break-after: avoid; color: #222 !important; }
  .section-plum, .section-sage, .section-cream { background: white; color: #222; }
  .section-plum p, .section-plum .small, .section-plum .muted, .section-plum .eyebrow { color: #555; }
  .hero-grid, .split { gap: 28px; }
  .hero-image > img { max-height: 300px; }
  .hero.hero-home { min-height: 0; background: white; }
  .hero-home .home-backdrop { position: relative; z-index: auto; max-height: 260px; overflow: hidden; }
  .hero-home .home-backdrop::after { display: none; }
  .hero-home .home-hero-inner { display: block; min-height: 0; }
  .hero-home .home-hero-copy { width: 100%; padding-block: 25px; }
  .hero-home .eyebrow, .hero-home .lede, .hero-home .hero-note { color: #222; }
  .audience-card, .step, .quote-block, .map-layout, .partner-banner, .value-row, .role-table tr { break-inside: avoid; }
  .audience-card { min-height: 0; }
  .audience-card, .partner-banner, .map-detail, .service-map { background: #f5f5f0; box-shadow: none; }
  .table-wrap { overflow: visible; }
  .role-table { min-width: 0; }
  .faq details > p, .faq details > div { display: block !important; }
  .faq summary::after { display: none; }
  .map-legend, .service-map { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .review-dialog, .contact-dialog { display: none !important; }
  a { text-decoration: none; }
}

.hero-image.moms-photo > img { object-position: center 35%; }

/* Research summaries stay on the page; original papers are optional. */
.research-audience { margin-top: 24px; color: var(--green); font-size: .86rem; }
.research-overview { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; padding: 28px 0; border-block: 1px solid var(--line); }
.research-overview h3 { font-size: 1.35rem; margin-bottom: 12px; }
.research-overview p { margin-bottom: 0; font-size: .88rem; color: var(--muted); }
.research-page .research-topic { max-width: none; scroll-margin-top: 28px; }
.research-topic-intro { max-width: 840px; margin-bottom: 28px; color: var(--muted); }
.research-study-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
.study-card { padding: 30px; background: #f0eee6; border: 1px solid var(--line); border-radius: 4px; }
.study-card h3 { font-size: 1.55rem; line-height: 1.22; margin-bottom: 20px; }
.study-card p { font-size: .9rem; line-height: 1.7; }
.study-card .study-meta { font: 600 .63rem/1.7 var(--sans); letter-spacing: .09em; color: var(--green); margin-bottom: 16px; }
.study-card strong { color: var(--green); }
.study-card .study-context { padding-top: 16px; border-top: 1px solid var(--line); margin-top: 20px; color: #5c595e; }
.study-source { margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--line); font-size: .78rem; }
.study-source summary { cursor: pointer; padding-block: 7px; min-height: 44px; font-weight: 650; color: var(--plum); }
.study-source p { margin-top: 12px; font-size: .78rem; overflow-wrap: anywhere; }
.study-source a { display: inline-block; padding-block: 8px; overflow-wrap: anywhere; }
.research-context { margin-top: 26px; padding: 0 0 0 24px; border-left: 3px solid var(--sage); max-width: 900px; }
.research-context h3 { font-size: 1.3rem; }
.research-context > p, .research-bridge { font-size: .88rem; line-height: 1.7; }
.research-context .study-source { margin-top: 12px; }
.research-bridge { margin-top: 24px; }
.research-plan { margin-top: 40px; font-size: .88rem; }
.research-plan h3 { font-size: 1.5rem; }
.research-reviewed { margin-bottom: 0; font-size: .72rem; }
@media (max-width: 800px) {
  .research-overview, .research-study-grid { grid-template-columns: 1fr; }
  .research-overview { gap: 24px; }
  .study-card { padding: 24px; }
  .research-context { padding-left: 18px; }
}

/* Research topic guides */
.topic-breadcrumb{display:flex;gap:12px;align-items:center;margin-bottom:30px;font-size:.85rem;color:var(--green)}
.topic-breadcrumb a{text-underline-offset:4px}.topic-hero h1{max-width:1000px;font-size:clamp(2.8rem,5vw,4.6rem)}
.topic-byline{font-size:.8rem;margin-top:30px;color:var(--muted)}
.topic-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(200px,260px);gap:70px;align-items:start}
.topic-main{min-width:0}.topic-section{padding-bottom:54px;margin-bottom:54px;border-bottom:1px solid var(--line);scroll-margin-top:30px}
.topic-section h2{font-size:clamp(2rem,3.2vw,2.8rem);margin-bottom:24px}.topic-section h3{font-size:1.45rem;line-height:1.25}
.topic-main p{max-width:75ch}.topic-mechanism{padding:25px 28px;background:var(--sage-light);margin-top:30px;border-radius:4px}
.topic-study-stack{display:grid;gap:24px}.topic-study-stack .study-card{margin:0}.topic-reading-point{margin:30px 0}.topic-reading-point h3{margin-bottom:10px}
.topic-goal{border-top:1px solid var(--line);padding:24px 0}.topic-goal .step-num{display:block;margin-bottom:14px}.topic-goal h3{margin-bottom:10px}.topic-takeaway{border-left:3px solid var(--sage);padding:10px 0 10px 24px;color:var(--green)}
.topic-toc{position:sticky;top:30px;border-top:2px solid var(--plum);padding-top:24px}.topic-toc>a,.topic-toc-next>a{display:block;margin:14px 0;font-size:.9rem;text-decoration:none}.topic-toc a:hover{text-decoration:underline;text-underline-offset:4px}.topic-toc-next{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.topic-back{border-top:1px solid var(--line);padding-top:22px}.topic-related-links,.audience-research-links{display:flex;flex-wrap:wrap;gap:14px 24px;margin:25px 0}.topic-related-links a,.audience-research-links a{font-weight:600;text-underline-offset:5px}.topic-source-note{font-size:.8rem;color:var(--muted);margin-top:30px}.topic-related{margin-bottom:0;border:0}
@media(max-width:900px){.topic-layout{grid-template-columns:1fr;gap:35px}.topic-sidebar{grid-row:1}.topic-toc{position:static;display:flex;flex-wrap:wrap;gap:8px 22px;padding-top:20px}.topic-toc>.eyebrow{width:100%;margin-bottom:0}.topic-toc>a{margin:3px 0}.topic-toc-next,.topic-toc .topic-back{display:none}.topic-section{padding-bottom:40px;margin-bottom:40px}}
@media(max-width:600px){.topic-hero h1{font-size:2.65rem}.topic-breadcrumb{flex-wrap:wrap}.topic-mechanism{padding:22px}.topic-study-stack .study-card{padding:24px}.topic-section h2{font-size:2.1rem}}
@media(min-width:901px){.topic-sidebar{align-self:stretch}}

/* November 9 homepage and founder story */
#client-reviews{background:#dfd0eb}
#client-reviews .review-card{background:#fffdf9;border:1px solid #a585b6;border-top:5px solid #74458e;box-shadow:0 10px 26px rgb(66 36 82 / 9%)}
#client-reviews .review-card:nth-child(2){background:#edf3e7;border-top-color:#65865a}
#client-reviews .review-card:nth-child(3){background:#f8e9db;border-top-color:#b77b4a}
#client-reviews .review-origin{color:#514857}
.about-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(240px,.7fr);gap:65px;align-items:center}
.about-hero h1{font-size:clamp(2.8rem,4.5vw,4.4rem)}.about-hero img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top;border-radius:4px}
.about-story{max-width:850px}.about-story h2:not(:first-of-type){margin-top:50px}.about-story p{font-size:1.05rem}.about-story .source-note{font-size:.8rem}
@media(min-width:981px){.main-nav{gap:18px}.site-header .container{gap:20px}.brand-logo{max-width:170px}}
@media(max-width:980px){.about-hero{grid-template-columns:1fr;gap:35px}.about-hero img{max-width:440px}.about-hero h1{font-size:clamp(2.7rem,6vw,4rem)}}
@media(max-width:980px){.hero-home .home-backdrop img{aspect-ratio:4/3;object-fit:cover;object-position:left center}}
/* Selected at-home photograph on the homepage */
@media(min-width:981px){.hero-home .home-backdrop{width:56%}.hero-home .home-backdrop img{object-position:center 48%}.hero-home .home-backdrop::after{background:linear-gradient(90deg,transparent 65%,rgb(48 34 56 / 12%) 78%,var(--plum) 100%)}}
@media(max-width:980px){.hero-home .home-backdrop img{aspect-ratio:4/5;object-fit:cover;object-position:center 45%}}
/* Show slightly more of the original portrait without extending the photograph. */
@media(min-width:981px){.hero-home .home-backdrop{width:52%}.hero-home .home-backdrop img{object-fit:cover;object-position:center 48%}}

/* Authentic phone photographs supplied by Claire. */
.hero-image.moms-photo > img{aspect-ratio:3/4;object-position:center center}
.hero-image.kids-teens-photo > img{aspect-ratio:4/3;object-fit:contain;object-position:center}

.legacy-content{max-width:850px}.legacy-content h2,.legacy-content h3{margin:35px 0 18px}.legacy-content img{max-width:100%;height:auto;border-radius:4px}.legacy-content figure{margin:25px 0}.legacy-content a{overflow-wrap:anywhere}
