/* Second design direction: quiet typography, broad surfaces, occasional drawings. */
:root { --ink:#25443c; --ink-soft:#50645c; --green:#375f50; --green-hover:#284d40; --sage:#edf3ee; --line:#dce5dd; --container:1200px; --section-space:clamp(72px,8vw,116px); }
body { background:#fdfefd; }
h1,h2,h3,h4 { font-family:var(--sans); font-weight:450; letter-spacing:-.045em; }
.brand-name { font-family:var(--sans); font-size:25px; font-weight:500; letter-spacing:-.045em; }
.brand-name i { font-style:normal; font-weight:350; }
.brand-symbol { width:32px; height:43px; }
.brand-sub { font-size:8px; letter-spacing:.07em; margin-top:7px; }
.site-header { border-bottom:0; background:rgb(253 254 253 / 96%); }
.header-inner { min-height:96px; }
.site-nav { gap:27px; }
.site-nav a { font-size:12px; }
.button { border-radius:8px; padding:15px 24px; font-size:13px; font-weight:500; box-shadow:none; }
.site-nav .button { padding:13px 18px; }
.eyebrow,.kicker { font-size:10px; letter-spacing:.12em; font-weight:550; }
.hero { position:relative; display:block; width:min(1440px,calc(100% - 48px)); min-height:630px; padding:64px max(36px,calc((100vw - 1200px)/2 - 24px)); margin-top:12px; margin-bottom:40px; overflow:hidden; border-radius:18px; background:#edf3ee; }
.hero::before { content:none; }
.hero-copy { position:relative; z-index:3; width:52%; max-width:600px; padding:0; }
.hero-title { margin:26px 0 24px; font-family:var(--sans); font-size:clamp(62px,6.25vw,92px); font-weight:450; letter-spacing:-.04em; line-height:1.04; }
.hero-title em { color:#547762; font-style:normal; font-weight:450; }
.hero-subline { margin-bottom:22px; font-family:var(--sans); font-size:23px; font-weight:400; letter-spacing:-.035em; }
.hero-desc { max-width:420px; font-size:15px; line-height:1.8; }
.hero .actions { gap:12px 20px; margin-top:28px; }
.hero .text-link { font-size:12px; }
.hero-small { margin:24px 0 0; font-size:11px; }
.hero-art { position:absolute; z-index:1; inset:0 0 0 auto; width:55%; margin:0; padding:0; }
.hero-art::before,.hero-art::after { content:none; }
.hero-photo { height:100%; width:100%; aspect-ratio:auto; border-radius:0; background:transparent; }
.hero-photo img { object-position:65% center; mask-image:linear-gradient(to right,transparent,#000 38%); -webkit-mask-image:linear-gradient(to right,transparent,#000 38%); }
.hero-photo > .photo-note { inset:auto 20px 20px auto; max-width:calc(100% - 40px); font-size:9px; }
.hero-caption { display:none; }
.quickfacts { padding-block:20px; border-top:0; }
.quickfacts > * { font-size:11px; }
.section-title { font-size:clamp(34px,3.5vw,49px); letter-spacing:-.045em; line-height:1.18; }
.section-heading { max-width:800px; margin-bottom:45px; }
.section-heading > p:not(.kicker),.prose,.split-copy>p { font-size:15px; line-height:1.9; }
.intro-grid { gap:clamp(45px,7vw,105px); }
.intro-grid .prose { padding-top:32px; }
.prose .lead { font-size:19px; line-height:1.7; letter-spacing:-.02em; }
.page-home main > .intro-grid > div:first-child::after { content:""; display:block; width:150px; height:240px; margin:34px 0 0 30px; background:url("images/child-figures-v2-900.webp") left center / auto 100% no-repeat; opacity:.27; }
.section-tinted { background:#f0f5f2; }
.services-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; border:0; }
.service-row { display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:20px; padding:25px 0 0; border-top:1px solid #b6c9bd; border-bottom:0; }
.service-row:hover { background:transparent; }
.service-index { font-family:var(--sans); font-size:11px; }
.service-content h3 { font-size:26px; line-height:1.3; letter-spacing:-.035em; }
.service-content p { font-size:14px; line-height:1.85; }
.service-arrow { display:flex; align-self:flex-end; margin-top:auto; }
.split-photo { border-radius:14px; }
.split-section { gap:clamp(48px,7vw,100px); }
.split-copy .section-title { font-size:clamp(34px,3.2vw,46px); }
.therapist-grid { gap:55px; }
.portrait { border-radius:14px; aspect-ratio:1 / 1.07; }
.portrait img { object-position:center 27%; }
.therapist-content { padding-top:20px; }
.therapist-content .kicker { margin-top:0; }
.therapist-content h3 { font-size:30px; font-weight:450; }
.faq-question { padding-block:25px; font-family:var(--sans); font-size:20px; line-height:1.5; letter-spacing:-.025em; }
.faq-question::after { border:0; }
.cta { padding-block:85px; background:#eaf1ec; }
.cta-inner { align-items:flex-start; text-align:left; gap:25px; }
.cta-inner > div { width:min(66%,650px); }
.cta h2 { font-size:clamp(42px,4vw,60px); font-weight:450; }
.cta p { margin-inline:0; max-width:560px; font-size:15px; line-height:1.9; }
.cta::before { inset:auto max(50px,8vw) 12px auto; width:215px; height:345px; background:url("images/child-figures-v2.webp") left center / auto 100% no-repeat; opacity:.25; }
.site-footer { padding-top:68px; }
.site-footer h2 { font-size:15px; font-weight:550; letter-spacing:-.02em; }
.footer-grid { gap:55px; }
.footer-brand p { font-size:13px; }
.footer-links a,.site-footer address,.site-footer p { font-size:13px; }
.page-intro { padding-block:35px 60px; background:transparent; border-bottom:1px solid var(--line); }
.page-intro h1 { font-family:var(--sans); max-width:950px; font-size:clamp(44px,5.2vw,72px); font-weight:450; line-height:1.12; }
.page-intro p:not(.kicker) { max-width:780px; font-size:16px; line-height:1.85; }
.breadcrumbs { margin-bottom:48px; }
.contact-card { border:1px solid var(--line); border-radius:12px; background:#f2f6f3; }
.contact-card:nth-child(even) { background:#f5f3f8; }
.contact-card h2,.contact-card h3 { font-size:30px; letter-spacing:-.04em; }
.contact-card .contact-actions { flex-direction:column; align-items:flex-start; gap:10px; }
.contact-card .contact-actions a { font-size:14px; overflow-wrap:anywhere; }
.direction-item h3 { font-size:23px; }
.richtext h2,.legal-content h2,.step h2 { font-size:31px; line-height:1.25; }
.richtext h3,.legal-content h3 { font-size:24px; }
.step-number { font-family:var(--sans); font-size:14px; }
.contact-choices h2 { font-size:35px; line-height:1.2; }
.contact-choices .contact-card h3 { font-size:25px; }
@media (min-width:761px) and (max-width:1050px) {
 .brand-name { font-size:22px; }
 .site-nav { gap:17px; }
 .hero { min-height:630px; padding:50px 34px; }
 .hero-copy { width:56%; }
 .hero-title { font-size:65px; }
 .hero-art { width:49%; }
 .hero-desc { max-width:350px; }
 .hero .actions { flex-direction:column; align-items:flex-start; gap:10px; }
 .services-list { gap:25px; }
 .service-content h3 { font-size:23px; }
 .cta::before { right:30px; width:180px; height:290px; }
}
@media (max-width:760px) {
 .header-inner { min-height:86px; gap:12px; }
 .brand-name { font-size:21px; }
 .brand-sub { font-size:6.5px; max-width:215px; }
 .brand-symbol { width:27px; height:38px; }
 .site-nav { gap:0; }
 .site-nav a { font-size:16px; }
 .hero { width:calc(100% - 24px); min-height:0; padding:34px 24px 0; margin-top:0; margin-bottom:25px; border-radius:14px; }
 .hero-copy { width:100%; max-width:none; }
 .hero-title { font-size:clamp(44px,12vw,65px); margin:22px 0; line-height:1.06; }
 .hero-subline { font-size:20px; margin-bottom:20px; }
 .hero-desc { max-width:none; font-size:16px; line-height:1.8; }
 .hero .actions { flex-direction:column; align-items:flex-start; gap:12px; margin-top:25px; }
 .hero .text-link { font-size:12px; }
 .hero-small { font-size:10px; margin-top:22px; }
 .hero-art { position:relative; inset:auto; width:calc(100% + 48px); height:310px; margin:5px -24px 0; }
 .hero-photo { aspect-ratio:auto; border-radius:0; }
 .hero-photo img { object-position:center 60%; mask-image:linear-gradient(to bottom,transparent,#000 35%); -webkit-mask-image:linear-gradient(to bottom,transparent,#000 35%); }
 .hero-photo > .photo-note { bottom:14px; right:14px; font-size:9px; }
 .quickfacts { align-items:flex-start; gap:12px; padding-block:8px 25px; }
 .quickfacts > * { font-size:11px; }
 .section-title,.split-copy .section-title { font-size:34px; line-height:1.23; }
 .section-heading { margin-bottom:32px; }
 .section-heading > p:not(.kicker),.prose,.split-copy>p { font-size:16px; }
 .intro-grid { gap:25px; }
 .intro-grid .prose { padding-top:0; }
 .prose .lead { font-size:18px; }
 .page-home main > .intro-grid > div:first-child::after { width:105px; height:170px; margin-top:24px; margin-left:12px; }
 .services-list { display:block; }
 .service-row { padding-block:25px; gap:14px; }
 .service-content h3 { font-size:26px; }
 .service-content p { font-size:15px; }
 .service-arrow { align-self:flex-start; }
 .split-section { gap:32px; }
 .therapist-grid { gap:50px; }
 .therapist-content h3 { font-size:29px; }
 .faq-question { font-size:19px; gap:18px; }
 .cta { padding-block:60px 230px; }
 .cta-inner { gap:25px; }
 .cta-inner > div { width:100%; }
 .cta h2 { font-size:42px; }
 .cta p { font-size:16px; }
 .cta::before { right:25px; bottom:14px; width:130px; height:210px; background-image:url("images/child-figures-v2-900.webp"); background-size:auto 100%; background-position:left center; }
 .footer-grid { gap:35px; }
 .page-intro { padding-block:25px 40px; }
 .breadcrumbs { margin-bottom:35px; }
 .page-intro h1 { font-size:42px; line-height:1.15; }
 .page-intro p:not(.kicker) { font-size:16px; }
 .contact-card h2,.contact-card h3 { font-size:27px; }
 .contact-choices h2 { font-size:28px; }
 .richtext h2,.legal-content h2,.step h2 { font-size:27px; }
}
@media print { .hero-art,.cta::before,.page-home main > .intro-grid > div:first-child::after { display:none; } .hero-copy { width:100%; } }

/* Address and map remain useful without scripts or third-party connections. */
.location-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:30px; }
.location-heading .section-heading { margin-bottom:0; }
.location-heading address { font-style:normal; line-height:1.9; font-size:15px; }
.location-map { margin-top:45px; }
.map-viewport { min-height:420px; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:#edf3ee; }
.map-placeholder { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:420px; padding:36px 24px; text-align:center; background:radial-gradient(ellipse at 12% 15%,#e0eade,transparent 65%),radial-gradient(ellipse at 92% 80%,#e2e8ee,transparent 65%); }
.location-map [hidden] { display:none!important; }
.map-pin { width:38px; height:46px; margin-bottom:18px; color:var(--green); }
.map-placeholder h3 { margin:0 0 10px; font-size:30px; line-height:1.25; }
.map-address { margin:0 0 18px; font-size:15px; }
.map-consent { max-width:570px; margin:0 0 24px; font-size:13px; line-height:1.75; color:var(--ink-soft); }
.map-consent a { text-decoration:underline; text-underline-offset:3px; }
.map-viewport iframe { display:block; width:100%; height:420px; border:0; }
.map-toolbar,.map-tools { display:flex; align-items:center; justify-content:space-between; gap:14px 24px; flex-wrap:wrap; }
.map-toolbar { padding-block:18px 0; }
.map-caption { font-size:13px; color:var(--ink-soft); }
.map-tools .text-link { font-size:13px; }
.map-disable { padding:8px 0; border:0; background:none; color:var(--ink-soft); font:inherit; font-size:13px; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.map-status { margin:10px 0 0; font-size:12px; color:var(--ink-soft); }
.map-status:empty { display:none; }
@media(max-width:760px) {
 .location-heading { align-items:flex-start; flex-direction:column; gap:20px; }
 .location-map { margin-top:28px; }
 .map-placeholder { padding:32px 20px; }
 .map-placeholder h3 { font-size:27px; }
 .map-caption { font-size:12px; }
 .map-toolbar { align-items:flex-start; flex-direction:column; gap:12px; }
 .map-tools { width:100%; }
}
@media print { .map-viewport,.map-disable,.map-status { display:none; } }

/* Softer, hand-shaped edges and a single, aligned welcome. */
.shape-definitions { position:absolute; width:0; height:0; overflow:hidden; pointer-events:none; }
.hero { min-height:610px; padding-block:76px 98px; border-radius:0; clip-path:url(#hero-edge); }
.hero-title { width:min(100%,460px); max-width:none; margin:25px 0 28px; container-type:inline-size; line-height:1.06; letter-spacing:-.045em; }
.hero-title .title-line { display:block; width:max-content; max-width:none; white-space:nowrap; font-size:calc(100cqi / 4.548); line-height:1.06; letter-spacing:-.045em; }
.hero-title .title-line-accent { color:#547762; font-size:calc(100cqi / 4.039); }
.hero-art { width:56%; }
.page-home .section-tinted,.cta { clip-path:url(#section-edge); }
.offer-section { position:relative; isolation:isolate; padding-block:calc(var(--section-space) + 18px); }
.offer-section::before { content:""; position:absolute; z-index:-1; inset:0; background:url("images/offer-corner-v1.webp") right top / cover no-repeat; mask-image:linear-gradient(to bottom,#000 0%,#000 38%,transparent 76%); pointer-events:none; }
.offer-section .section-heading { max-width:690px; }
.offer-section .section-heading > p { max-width:605px; }
.service-row { position:relative; border:0; padding-top:35px; }
.service-row::before { content:""; position:absolute; inset:0 0 auto; height:20px; background:url("curve-line.svg") center / 100% 100% no-repeat; }
.service-row:nth-child(2)::before { transform:scaleY(-1); }
.service-row:nth-child(3)::before { transform:scaleX(-1); }
.split-photo { border-radius:0; clip-path:url(#photo-edge); }
.drawn-divider { height:34px; width:100%; margin-bottom:52px; background:url("curve-line.svg") center / 100% 100% no-repeat; }
.team-section { padding-top:0; }
.therapist-name { margin:0 0 24px; font-size:clamp(30px,3vw,39px); font-weight:450; line-height:1.2; }
.portrait,.therapist:nth-child(even) .portrait { border-radius:0; overflow:visible; aspect-ratio:auto; background:transparent; }
.portrait-image { overflow:hidden; aspect-ratio:1 / 1.07; clip-path:url(#photo-edge); }
.portrait-image img { object-position:center 27%; }
.portrait > .portrait-caption { position:static; display:block; max-width:none; margin:0; padding:12px 0 0; background:transparent; border:0; box-shadow:none; backdrop-filter:none; color:var(--ink-soft); font-size:10px; text-align:left; }
.therapist-content { padding-top:16px; }
.therapist-content .kicker { margin-top:0; }
@media(min-width:761px) and (max-width:1050px) {
 .hero { padding-block:68px 88px; }
 .hero-copy { width:55%; }
 .hero-title { width:min(100%,390px); }
 .offer-section::before { opacity:.6; }
}
@media(max-width:760px) {
 .hero { padding:46px 24px 0; }
 .hero-title { width:min(100%,390px); margin-block:24px; }
 .hero-art { width:calc(100% + 48px); height:320px; margin-top:10px; }
 .offer-section { padding-block:88px; }
 .offer-section::before { background-image:url("images/offer-corner-v1-700.webp"); background-size:100% auto; background-position:right top; opacity:.8; mask-image:linear-gradient(to bottom,#000,transparent 220px); }
 .service-row { padding-block:34px 25px; }
 .drawn-divider { margin-bottom:35px; height:25px; }
 .therapist-name { font-size:31px; margin-bottom:18px; }
 .therapist-grid { gap:46px; }
 .portrait > .portrait-caption { font-size:10px; }
}
@media print { .hero,.page-home .section-tinted,.cta,.split-photo,.portrait-image { clip-path:none; } .offer-section::before { display:none; } }
