:root {
  --sage: #9bafa3;
  --sage-deep: #456a58;
  --sage-light: #e5ece8;
  --line: #d6dfd9;
  --media-warm-ivory: #F5F3ED;
  --media-pale-sage: #EDEFE8;
  --media-misty-blue: #EDF1F2;
  --media-warm-linen: #F1EDE6;
}

body { font-size: 1rem; }
h1, h2, h3, p, li, a, th, td { overflow-wrap: anywhere; }
h2 { font-size: clamp(1.625rem, 3vw, 2.375rem); }
h3 { font-size: 1.3125rem; }
.container, .wrap { max-width: 1200px; margin: auto; padding-left: 38px; padding-right: 38px; }
.brand strong { font-size: 1.0625rem; }
.brand { min-width: 0; flex-shrink: 1; }
.brand-logo { display: block; width: 100%; height: auto; }
.site-header .brand { flex: 0 1 420px; }
.footer-bottom .brand { flex: 0 1 420px; max-width: 100%; }
.brand > span:last-child { min-width: 0; }
.menu-toggle { flex-shrink: 0; }
.brand small { font-size: 1rem; letter-spacing: .04em; }
.site-header nav a, .footer nav a { font-size: 1rem; }
.site-header { height: auto; min-height: 80px; padding-top: 15px; padding-bottom: 15px; }
.site-header nav, .site-header .nav-cta { flex-shrink: 0; }
.site-header nav a { white-space: nowrap; overflow-wrap: normal; }
.button, .btn { font-size: 1rem; }
.btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 13px 21px;
  border-radius: 4px;
  background: var(--green);
  color: white;
  text-decoration: none;
}
.eyebrow { font-size: 1rem; }
.hero h1 { max-width: 510px; font-size: clamp(1.75rem, 3vw, 2.5rem); }
.hero p:not(.eyebrow) { font-size: 1.0625rem; }
.support { overflow: hidden; }
.support, .therapy-copy { position: relative; isolation: isolate; }
.support::before, .support::after {
  content: "";
  position: absolute;
  pointer-events: none;
  background: url("../approved/assets/fern-edge.svg") no-repeat center / contain;
  z-index: -1;
}
.support::before { width: 210px; height: 335px; left: -64px; bottom: -72px; transform: rotate(-7deg); opacity: .42; }
.support::after { width: 160px; height: 255px; right: -46px; bottom: -88px; transform: scaleX(-1) rotate(-9deg); opacity: .29; }
.therapy-copy { overflow: hidden; }
.therapy-copy::before {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: -1;
  left: -62px;
  top: 14px;
  width: 205px;
  height: 350px;
  background: url("../approved/assets/fern-edge.svg") no-repeat center / contain;
  opacity: .38;
  transform: rotate(-8deg);
}
.hero { position: relative; isolation: isolate; overflow: hidden; }
.hero-content { position: relative; z-index: 1; }
.support-grid li { font-size: 1rem; }
.support-grid ul.area-bullets { grid-column: 1 / -1; columns: 3; column-gap: 0; }
.support-grid ul.area-bullets li { break-inside: avoid; }
.therapy-copy p { font-size: 1rem; }
.therapy { position: relative; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr); }
.about-anchor { position: absolute; top: 0; left: 0; }
.therapy > * { min-width: 0; }
.therapy-image {
  background: none;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  padding: 24px;
}
.therapy-image img { width: 100%; max-width: 420px; height: auto; }
.therapy-quote p { font-size: clamp(1.0625rem, 1.8vw, 1.5625rem); }
.therapy-quote blockquote { margin: 0; }
.page-card p, .contact p { font-size: 1rem; }
.details p, .details li { font-size: 1rem; }
.about-content { display: flex; align-items: flex-start; gap: 35px; }
.about-portrait { width: min(100%, 320px); height: auto; }
.section { padding-top: 56px; padding-bottom: 56px; }
.section-head { margin-bottom: 25px; }
.card { background: #f0f1eb; padding: 25px; }
.stories-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.story-card { min-width: 0; }
.story-card:nth-child(4n + 1) { background: var(--media-warm-ivory); }
.story-card:nth-child(4n + 2) { background: var(--media-pale-sage); }
.story-card:nth-child(4n + 3) { background: var(--media-misty-blue); }
.story-card:nth-child(4n) { background: var(--media-warm-linen); }
.story-card h3 { margin-bottom: 15px; }
.story-photos { float: left; display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; width: 200px; max-width: 100%; margin: 0 20px 12px 0; }
.story-photo { min-width: 0; margin: 0; }
.story-photo img { display: block; width: 100%; height: auto; }
.story-photo-link { display: block; }
.story-photo figcaption { margin-top: 8px; font-size: 1rem; }
.story-card::after { display: table; clear: both; content: ""; }
.stories-empty { width: 100%; }
.rates { width: 100%; max-width: 850px; border-collapse: collapse; }
.rates th, .rates td { padding: 10px 0; border-bottom: 1px solid var(--border); }
.rates th { text-align: left; font-weight: 400; }
.rates td { text-align: right; font-weight: 700; }
.contact { background: #214e49; text-align: left; }
.contact h2 { margin-bottom: 13px; }
.contact .eyebrow { color: #e5ece8; }
.contact .btn { background: #f5f4ed; color: var(--ink); }
.contact small { font-size: 1rem; }
.footer { display: block; padding: 30px 0; }
.footer .professional-credentials, .footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  flex-wrap: wrap;
}
.professional-credentials { padding-bottom: 25px; border-bottom: 1px solid var(--border); }
.professional-credentials h2 { font-size: 1.3rem; margin-bottom: 18px; }
.license-list { list-style: none; padding: 0; font-size: 1rem; }
.license-list li + li { margin-top: 14px; }
.credential-badge { display: block; flex-shrink: 0; }
.credential-badge img { width: 200px; max-width: 100%; height: auto; }
.emdr-badge { width: 80px; margin: 24px 0 0 auto; }
.emdr-badge img { width: 80px; }
.footer-bottom { padding-top: 25px; font-size: 1rem; }
.footer .brand strong { font-size: 1rem; }
.footer-bottom p { text-align: left; font-size: inherit; }
.footer nav { flex-wrap: wrap; }
.section-extras { display: grid; gap: 18px; margin-top: 24px; }
.content-block { min-width: 0; margin: 0; }
.content-block p { margin: 0 0 12px; }
.content-block img { max-width: 100%; width: auto; max-height: 600px; height: auto; }
.content-block figcaption { margin-top: 8px; font-size: 1rem; }
.content-block a { overflow-wrap: anywhere; }
.text-size-bar { background: var(--mist); }
.text-size-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; padding-top: 8px; padding-bottom: 8px; font-size: 1rem; }
.menu-toggle { font: inherit; }
.text-size-controls button { min-width: 44px; min-height: 44px; padding: 6px 10px; font: inherit; font-weight: 700; color: var(--ink); background: white; border: 1px solid var(--green); border-radius: 4px; cursor: pointer; }
.text-size-controls button:disabled { opacity: .55; cursor: default; }
.text-size-status { overflow-wrap: anywhere; }
.postpartum-plan { max-width: 980px; }
.postpartum-plan h1 { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 22px; }
.postpartum-plan h2 { margin-top: 40px; margin-bottom: 16px; }
.postpartum-plan h3 { margin: 25px 0 12px; }
.privacy-policy { max-width: 980px; overflow-wrap: anywhere; }
.privacy-policy h1 { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 22px; }
.privacy-policy h2 { margin: 32px 0 16px; }
.privacy-policy p, .privacy-policy li { font-size: 1rem; line-height: 1.7; }
.privacy-policy p { margin: 0 0 16px; }
.privacy-policy ul { padding-left: 1.5em; margin-bottom: 16px; }
.privacy-policy-link { padding-top: 16px; font-size: 1rem; }
.plan-prompts li { padding: 8px 0; }

html[data-large-text] .site-header { height: auto; min-height: 80px; flex-wrap: wrap; padding-top: 15px; padding-bottom: 15px; }
html[data-large-text] .brand { min-width: 0; flex: 1 1 180px; }
html[data-large-text] .brand strong { white-space: normal; }
html[data-large-text] .brand small { font-size: 1rem; }
html[data-large-text] .fern-mark { font-size: 40px; }
html[data-large-text] .menu-toggle { display: block; margin-left: auto; font: inherit; }
html[data-large-text] .nav-cta { display: none; }
html[data-large-text] .site-header nav { display: none; position: absolute; top: 100%; left: 0; right: 0; margin: 0; padding: 15px 25px; background: #fafaf7; flex-direction: column; align-items: stretch; max-height: 65vh; overflow-y: auto; box-shadow: 0 10px 18px #0002; }
html[data-large-text] .site-header nav.open { display: flex; }
html[data-large-text] .site-header nav a { padding: 11px; }
html[data-large-text] .hero-content { width: auto; max-width: 850px; margin: 0; padding: 44px 24px; }
html[data-large-text] .hero { background-image: linear-gradient(90deg, rgba(250,250,246,.96), rgba(250,250,246,.86)), url("../approved/assets/hero-nature.jpg"); }
html[data-large-text] .therapy { display: block; }
html[data-large-text] .therapy-image { height: auto; }
html[data-large-text] .support-grid { grid-template-columns: minmax(0, 1fr); }
html[data-large-text] .support-grid ul { border: 0; padding: 0; }
html[data-large-text] .support-grid ul.area-bullets { columns: 1; }
html[data-large-text] .page-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
html[data-large-text] .about-content { flex-direction: column; }
html[data-large-text] .footer nav { width: 100%; }

@media (max-width: 1200px) {
  .therapy { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
  .therapy-quote { grid-column: 1 / -1; padding: 28px 38px; }
}
@media (max-width: 1500px) {
  .site-header { height: auto; min-height: 80px; gap: 16px; padding: 15px 20px; }
  .site-header nav { display: none; position: absolute; top: 100%; left: 0; right: 0; margin: 0; padding: 15px 25px; background: #fafaf7; flex-direction: column; align-items: stretch; box-shadow: 0 10px 18px #0002; }
  .site-header nav.open { display: flex; }
  .site-header nav a { padding: 11px; }
  .menu-toggle { display: block; margin-left: auto; }
  .nav-cta { display: none; }
}
@media (max-width: 800px) {
  .stories-grid { grid-template-columns: minmax(0, 1fr); }
  .story-photos { float: none; margin-right: 0; }
  .support-grid ul.area-bullets { columns: 1; }
  .support::before { opacity: .24; width: 140px; left: -55px; }
  .support::after { opacity: .18; }
  .therapy-copy::before { opacity: .18; width: 130px; left: -48px; }
  .therapy { display: block; }
  .therapy-image { height: auto; min-height: 0; padding: 0 24px 28px; }
  .site-header nav { top: 100%; max-height: 65vh; overflow-y: auto; }
  .about-content { flex-direction: column; }
}
@media (max-width: 540px) {
  .support::before { width: 105px; left: -45px; bottom: -35px; opacity: .17; }
  .support::after { display: none; }
  .therapy-copy::before { width: 110px; left: -55px; opacity: .16; }
  .container, .wrap { padding-left: 22px; padding-right: 22px; }
  .brand { min-width: 0; }
  .brand strong { font-size: 1rem; }
  .brand small { font-size: 1rem; }
  .hero p:not(.eyebrow) { font-size: 1rem; }
  .footer { padding-left: 0; padding-right: 0; }
  .professional-credentials { align-items: flex-start; }
}
@media print {
  .text-size-bar, .site-header, .footer, .skip-link { display: none !important; }
  body { background: white; color: black; }
  .postpartum-plan { max-width: none; padding: 0; }
  .postpartum-plan h1 { font-size: 24pt; }
  .postpartum-plan h2 { font-size: 18pt; break-after: avoid; }
  .plan-prompts li { break-inside: avoid; }
}
