/* Susan Robens Counseling: component styles, ported from the design system bundle.
   Colour, type and spacing values come from theme.json presets; the short names below
   are aliases so the component rules read like the design system. */

:root {
	--cream: var(--wp--preset--color--cream);
	--linen: var(--wp--preset--color--linen);
	--paper: var(--wp--preset--color--paper);
	--sprout: var(--wp--preset--color--sprout);
	--sun-soft: var(--wp--preset--color--sun-soft);
	--ink: var(--wp--preset--color--ink);
	--ink-muted: var(--wp--preset--color--ink-muted);
	--line: var(--wp--preset--color--line);
	--border-input: var(--wp--preset--color--border-input);
	--forest: var(--wp--preset--color--forest);
	--forest-deep: var(--wp--preset--color--forest-deep);
	--on-forest: var(--wp--preset--color--on-forest);
	--sage: var(--wp--preset--color--sage);
	--clay: var(--wp--preset--color--clay);
	--clay-deep: var(--wp--preset--color--clay-deep);
	--sun: var(--wp--preset--color--sun);
	--error: var(--wp--preset--color--error);
	--error-soft: var(--wp--preset--color--error-soft);
	--focus: var(--wp--custom--focus);
	--link: var(--wp--custom--link);
	--font-serif: var(--wp--preset--font-family--serif);
	--font-sans: var(--wp--preset--font-family--sans);
	--space-xs: 8px;
	--space-sm: 16px;
	--space-md: 24px;
	--space-lg: 48px;
	--space-xl: 80px;
	--space-2xl: 112px;
	--radius-sm: 8px;
	--radius-md: 12px;
	--radius-lg: 24px;
	--radius-pill: 50px;
	--shadow-soft: var(--wp--preset--shadow--soft);
	--shadow-lift: var(--wp--preset--shadow--lift);
	--measure: 38rem;
	--container: 72rem;
	--tap-target: 48px;
	--section-gap: var(--space-xl);
}
@media (max-width: 720px) {
	:root { --section-gap: var(--space-lg); }
}

/* Base */
html { scroll-padding-top: var(--space-md); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
h1, h2, h3, h4 { text-wrap: balance; margin-block: 0; }
p, li { text-wrap: pretty; }
img { max-width: 100%; height: auto; }
a { text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
main a:not([class]) { font-weight: 600; }
ul, ol { padding-left: 1.25em; }
li + li { margin-top: 4px; }
strong { font-weight: 700; }

a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
	outline: 3px solid var(--focus);
	outline-offset: 2px;
}

.screen-reader-text, .src-hp {
	position: absolute !important;
	width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.skip-link:focus { clip: auto; clip-path: none; width: auto; height: auto; z-index: 100; padding: 12px 16px; background: var(--paper); }

@media (max-width: 599px) {
	h1, .wp-block-heading.is-h1 { font-size: 32px !important; line-height: 40px !important; }
	h2 { font-size: 26px !important; line-height: 34px !important; }
}

/* Gutters: content sits within the 72rem container, 16px from the edge on phones */
.src-section, .src-hero-wrap, .src-crumbs-wrap, .src-footer, .src-header__inner {
	padding-inline: max(16px, calc((100% - var(--container)) / 2));
}
.src-section > :is(p, ul, ol, h2, h3, h4, .wp-block-heading, .src-fact-block, .src-quote) { max-width: var(--measure); }
.src-section > .src-cards, .src-section > .src-notes, .src-section > .wp-block-columns, .src-section > .src-steps { max-width: none; }
.src-prose > *, .src-prose .wp-block-post-content > * { max-width: var(--measure); margin-inline: auto; }
.src-prose > .wp-block-post-content { max-width: none; }
.src-prose > * + *, .src-prose .wp-block-post-content > * + * { margin-top: var(--space-sm); }
.src-prose .wp-block-post-content > :is(h2, h3) { margin-top: var(--space-lg); }
.src-prose .src-post-meta { color: var(--ink-muted); font-size: 14px; line-height: 22px; }

/* Page rhythm */
.src-main { padding-bottom: 0; }
.src-section { padding-block: var(--section-gap); margin-block: 0 !important; }
.src-section:not(.src-band) + .src-section:not(.src-band) { padding-top: 0; }
.src-band + .src-section:not(.src-band) { padding-top: var(--section-gap); }
.src-band { background: var(--linen); }
.src-section > * + * { margin-top: var(--space-sm); }
.src-section h2 + *, .src-section h3 + * { margin-top: var(--space-sm); }
.src-section > h2 { margin-bottom: var(--space-xs); }
.src-section .src-note, .src-section .src-crisis, .src-section .src-form, .src-section .src-photo-wrap,
.src-section .wp-block-columns, .src-section .src-cards, .src-section .src-faqs { margin-top: var(--space-md); }
.src-hero-wrap { padding-block: var(--space-lg) var(--section-gap); }
@media (min-width: 900px) { .src-hero-wrap { padding-block: var(--space-xl) var(--space-2xl); } }
.src-hero-wrap:has(.src-hero--text) { padding-bottom: 0; }

.src-split { align-items: center; gap: var(--space-xl) !important; }
.src-split > .wp-block-column { min-width: 0; }
.wp-block-column > * + * { margin-top: var(--space-sm); }
.wp-block-column > h2 + * { margin-top: var(--space-sm); }
.wp-block-column > .src-form, .wp-block-column > .src-note { margin-top: var(--space-md); }
@media (max-width: 781px) { .src-split { gap: var(--space-lg) !important; } }

.src-steps { counter-reset: step; list-style: none; padding: 0; display: grid; gap: var(--space-md); grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); max-width: var(--container); }
.src-steps li { counter-increment: step; margin: 0; padding: var(--space-md); background: var(--paper); border-radius: var(--radius-md); box-shadow: var(--shadow-soft); font-size: 16px; line-height: 26px; }
.src-steps li::before { content: counter(step); display: grid; place-items: center; width: 36px; height: 36px; margin-bottom: var(--space-xs); border-radius: 50%; background: var(--sprout); color: var(--forest-deep); font-family: var(--font-serif); font-weight: 600; font-size: 18px; }
.src-steps strong { display: block; font-family: var(--font-serif); font-size: 20px; line-height: 28px; font-weight: 600; margin-bottom: 4px; }

.src-quote { margin: var(--space-md) 0 0; padding: 0 0 0 var(--space-md); border-left: 3px solid var(--sage); font-family: var(--font-serif); font-style: italic; font-size: 22px; line-height: 34px; max-width: var(--measure); }
.src-quote p { margin: 0; }
.src-quote cite { display: block; margin-top: var(--space-xs); font-family: var(--font-sans); font-style: normal; font-size: 14px; line-height: 22px; color: var(--ink-muted); }

.src-lead { font-size: 20px; line-height: 32px; }
.src-small { font-size: 16px; line-height: 26px; }
.src-muted { color: var(--ink-muted); }
.src-actions { display: flex; flex-wrap: wrap; gap: var(--space-sm); margin-top: var(--space-md); }
.src-actions .src-btn-wrap { margin: 0; }

/* Review tokens (staging only; stripped when review highlights are off) */
mark.src-token { background: #fff3a3; color: var(--ink); padding: 0 4px; border-radius: 4px; font: 400 14px/22px var(--font-sans); font-style: normal; letter-spacing: 0; box-decoration-break: clone; -webkit-box-decoration-break: clone; }

/* Header */
.src-header { background: var(--cream); border-bottom: 1px solid var(--line); position: relative; z-index: 30; }
.src-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); padding-block: 12px; }
.src-brand { display: flex; align-items: center; gap: 12px !important; min-height: var(--tap-target); }
.src-brand .wp-block-site-logo, .src-brand .wp-block-site-logo a { display: block; line-height: 0; }
.src-brand .wp-block-site-logo img { width: 44px; height: 44px; }
.src-brand__name { margin: 0; font-family: var(--font-serif); font-size: 21px; line-height: 26px; font-weight: 600; }
.src-brand__name a { color: var(--ink); text-decoration: none; display: inline-flex; align-items: center; min-height: var(--tap-target); }
.src-brand__name a:hover { color: var(--forest); }
.src-header .wp-block-navigation { font-size: 16px; font-weight: 600; gap: 4px var(--space-md); }
.src-header .wp-block-navigation a { text-decoration: none; color: var(--ink); min-height: var(--tap-target); display: inline-flex; align-items: center; }
.src-header .wp-block-navigation a:hover, .src-header .wp-block-navigation .current-menu-item > a { color: var(--forest); text-decoration: underline; }
.src-header .wp-block-navigation__submenu-container { background: var(--paper) !important; border: 1px solid var(--line) !important; border-radius: var(--radius-md); box-shadow: var(--shadow-soft); padding: 8px !important; min-width: 16rem !important; }
.src-header .wp-block-navigation__submenu-container a { padding: 4px 12px !important; }
.src-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--cream); padding: var(--space-md); }
.src-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { gap: 4px; }
.src-header .wp-block-navigation__responsive-container-open, .src-header .wp-block-navigation__responsive-container-close { min-width: var(--tap-target); min-height: var(--tap-target); justify-content: center; color: var(--ink); }
.src-header__actions { display: flex; align-items: center; gap: var(--space-sm); }
.src-header__call { display: none; }
@media (min-width: 900px) { .src-header__call { display: block; } }
@media (max-width: 420px) { .src-brand__name { font-size: 18px; line-height: 22px; } }

/* Footer */
.src-footer { background: var(--forest-deep); color: var(--on-forest); padding-block: var(--space-xl) calc(var(--space-lg) + 96px); font-size: 16px; line-height: 26px; }
@media (min-width: 900px) { .src-footer { padding-bottom: var(--space-lg); } }
.src-footer a { color: var(--on-forest); }
.src-footer a:focus-visible { outline-color: var(--on-forest); }
.src-footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: var(--space-lg); }
.src-footer__grid > .src-footer__col:last-child { grid-column: 1 / -1; }
@media (min-width: 1100px) { .src-footer__grid { grid-template-columns: 1.2fr 1fr 1fr 1.6fr; } .src-footer__grid > .src-footer__col:last-child { grid-column: auto; } }
.src-footer__name { font-family: var(--font-serif); font-size: 22px; line-height: 30px; font-weight: 600; margin: 0 0 var(--space-xs); }
.src-footer__name + .src-footer__formerly { margin-top: calc(-1 * var(--space-xs)); font-style: italic; }
.src-footer p { margin: 0 0 var(--space-xs); }
.src-footer ul { list-style: none; padding: 0; margin: 0; }
.src-footer li { margin: 0; }
.src-footer li a { display: inline-flex; align-items: center; min-height: var(--tap-target); }
.src-footer .src-crisis { color: var(--ink); }
.src-footer .src-crisis a { color: var(--forest-deep); }
.src-footer__base { margin: var(--space-lg) 0 0; padding-top: var(--space-md); border-top: 1px solid rgba(255, 255, 255, 0.25); font-size: 14px; line-height: 22px; display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-md); justify-content: space-between; }

/* Breadcrumbs */
.src-crumbs { padding-top: var(--space-xs); font-size: 14px; line-height: 22px; color: var(--ink-muted); }
.src-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; }
.src-crumbs li { margin: 0; }
.src-crumbs li + li::before { content: "/"; margin-right: 4px; color: var(--ink-muted); }
.src-crumbs ol { align-items: center; }
.src-crumbs li { display: inline-flex; align-items: center; min-height: var(--tap-target); }
.src-crumbs a { color: var(--forest); display: inline-flex; align-items: center; min-height: var(--tap-target); }

/* Button */
.src-btn-wrap { margin: 0; }
.src-btn {
	box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: var(--space-xs);
	height: var(--tap-target); min-width: 11rem; margin: 0; padding: 0 24px;
	-webkit-appearance: none; appearance: none; border-radius: var(--radius-pill); border: 2px solid transparent;
	font-family: var(--font-sans); font-size: 17px; line-height: 24px; font-weight: 600;
	white-space: nowrap; text-decoration: none; cursor: pointer;
	transition: background-color 160ms ease-out, border-color 160ms ease-out, color 160ms ease-out;
}
.src-btn:hover { text-decoration: none; }
.src-btn__icon { width: 20px; height: 20px; flex: none; }
.src-btn--primary { background: var(--forest); color: var(--on-forest) !important; }
.src-btn--primary:hover { background: var(--forest-deep); }
.src-btn--secondary { background: var(--paper); color: var(--forest) !important; border-color: var(--forest); }
.src-btn--secondary:hover { background: var(--sprout); }
.src-btn--quiet { background: transparent; color: var(--forest) !important; min-width: 0; padding-inline: 8px; text-decoration: underline; text-underline-offset: 3px; }
.src-btn--quiet:hover { color: var(--forest-deep) !important; }
.src-btn .src-fact { font-variant-numeric: tabular-nums; }
@media (max-width: 380px) { .src-btn { white-space: normal; height: auto; min-height: var(--tap-target); text-align: center; } }

/* Links */
.src-link { color: var(--link); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; font-weight: 600; display: inline-block; padding-block: 12px; }
.src-link:hover { color: var(--forest-deep); text-decoration-thickness: 2px; }

/* Photo */
.src-photo-wrap { margin: 0; }
.src-photo { position: relative; isolation: isolate; margin: 0; max-width: 100%; }
.src-photo__frame { position: relative; overflow: hidden; border-radius: var(--radius-lg); background: var(--linen); max-width: 100%; }
.src-photo__img { display: block; width: 100%; height: 100% !important; object-fit: cover; }
.src-photo--pebble { margin-inline-end: 5%; }
.src-photo--pebble::before {
	content: ""; position: absolute; z-index: -1; inset: 10% -5% -6% 12%;
	border-radius: 62% 38% 56% 44% / 46% 58% 42% 54%; background: var(--sage); opacity: 0.55;
}
.src-photo--left.src-photo--pebble { margin-inline: 5% 0; }
.src-photo--left.src-photo--pebble::before { inset: 10% 12% -6% -5%; border-radius: 40% 60% 46% 54% / 56% 44% 58% 42%; }
.src-pebble--sun::before { background: var(--sun); opacity: 0.6; }
.src-pebble--clay::before { background: var(--clay); opacity: 0.45; }
.src-pebble--sage::before { background: var(--sage); opacity: 0.5; }
.src-pebble--sprout::before { background: var(--sprout); opacity: 1; }
.src-photo__slot { display: flex; align-items: flex-end; width: 100%; height: 100%; padding: var(--space-md); background: var(--linen); box-sizing: border-box; }
.src-photo__slot-label { display: inline-block; padding: 4px 12px; border-radius: var(--radius-pill); background: var(--paper); color: var(--ink-muted); font-size: 14px; line-height: 22px; }
.src-photo__caption { margin-top: var(--space-xs); color: var(--ink-muted); font-size: 14px; line-height: 22px; }

/* HeroSplit */
.src-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); align-items: center; gap: var(--space-xl); max-width: var(--container); margin-inline: auto; }
.src-hero--text { grid-template-columns: minmax(0, 1fr); }
.src-hero__text { display: flex; flex-direction: column; gap: var(--space-md); max-width: var(--measure); }
.src-hero__title { margin: 0; font-family: var(--font-serif); font-size: 40px; line-height: 48px; font-weight: 600; color: var(--ink); text-wrap: balance; }
.src-hero--display .src-hero__title { font-size: 48px; line-height: 56px; letter-spacing: -0.01em; }
.src-hero__lead { margin: 0; font-size: 20px; line-height: 32px; color: var(--ink); }
.src-hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.src-hero__note { margin: 0; color: var(--ink-muted); font-size: 16px; line-height: 26px; }
.src-hero__media { padding-right: 4%; }
@media (max-width: 720px) {
	.src-hero { grid-template-columns: 1fr; gap: var(--space-lg); }
	.src-hero__title, .src-hero--display .src-hero__title { font-size: 32px !important; line-height: 40px !important; }
	.src-hero--display .src-hero__title { font-size: 36px !important; line-height: 44px !important; }
	.src-hero__media { padding-right: 5%; max-width: 30rem; }
}
/* About hero portrait about 25% smaller (Susan, 28 Sep 2026), same 4:5 frame, centred in its column. */
.src-hero--portrait .src-hero__media { width: 75%; justify-self: center; padding-right: 0; }
@media (max-width: 720px) {
	.src-hero--portrait .src-hero__media { width: 75%; max-width: 22.5rem; justify-self: start; padding-right: 0; }
}

/* PortraitCard */
.src-portrait { display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: var(--space-lg); align-items: center; max-width: var(--container); }
.src-portrait__body { display: flex; flex-direction: column; gap: var(--space-sm); max-width: var(--measure); }
.src-portrait__name { margin: 0; font-family: var(--font-serif); font-size: 30px; line-height: 38px; font-weight: 600; }
.src-portrait__cred { margin: 0; color: var(--ink-muted); font-size: 16px; line-height: 26px; }
.src-portrait__text p { margin: 0 0 var(--space-sm); }
.src-portrait__body > p { margin: 0; }
@media (max-width: 720px) {
	.src-portrait { grid-template-columns: 1fr; }
	.src-portrait .src-photo { max-width: 280px; }
}

/* ServiceCard and card sets */
.src-cards { display: grid; gap: var(--space-md); grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); max-width: var(--container); }
.src-cards > * { margin: 0 !important; }
.src-service { position: relative; display: flex; flex-direction: column; overflow: hidden; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); transition: box-shadow 200ms ease-out, transform 200ms ease-out; }
.src-service--clickable:hover { box-shadow: var(--shadow-lift); transform: translateY(-2px); }
.src-service__media { aspect-ratio: 3/2; background: var(--linen); }
.src-service__media img { display: block; width: 100%; height: 100% !important; object-fit: cover; }
.src-service__body { display: flex; flex-direction: column; gap: var(--space-xs); padding: var(--space-md); }
.src-service__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--sprout); color: var(--forest); }
.src-service__icon svg { width: 24px; height: 24px; }
.src-service__title { margin: var(--space-xs) 0 0; font-family: var(--font-serif); font-size: 22px; line-height: 30px; font-weight: 600; }
.src-service__link { color: var(--ink); text-decoration: none; }
.src-service__link::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius-lg); }
.src-service__link:hover { color: var(--forest); text-decoration: underline; text-underline-offset: 3px; }
.src-service__link:focus-visible { outline: none; }
.src-service__link:focus-visible::after { outline: 3px solid var(--focus); outline-offset: 2px; }
.src-service__meta { margin: 0; color: var(--clay-deep); font-size: 15px; line-height: 20px; font-weight: 600; }
.src-service__text { margin: 0; color: var(--ink-muted); font-size: 16px; line-height: 26px; }

/* Link list (related services) */
.src-links { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-md); }
.src-links li { margin: 0; }
.src-links a { display: inline-flex; align-items: center; min-height: var(--tap-target); }

/* FaqItem */
.src-faqs { max-width: 48rem; border-top: 1px solid var(--line); }
.src-faq { border-bottom: 1px solid var(--line); margin: 0 !important; }
.src-faq__q { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); min-height: var(--tap-target); padding: var(--space-sm) 0; cursor: pointer; list-style: none; font-family: var(--font-serif); font-size: 22px; line-height: 30px; font-weight: 600; color: var(--ink); }
.src-faq__q::-webkit-details-marker { display: none; }
.src-faq__q:hover { color: var(--forest); }
.src-faq__mark { position: relative; flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--sprout); }
.src-faq__mark::before, .src-faq__mark::after { content: ""; position: absolute; left: 9px; top: 15px; width: 14px; height: 2px; background: var(--forest); transition: transform 200ms ease-out; }
.src-faq__mark::after { transform: rotate(90deg); }
.src-faq[open] .src-faq__mark::after { transform: rotate(0deg); }
.src-faq__a { padding: 0 0 var(--space-md); max-width: var(--measure); font-size: 16px; line-height: 26px; color: var(--ink); }
.src-faq__a p { margin: 0 0 var(--space-xs); }
@media (max-width: 599px) { .src-faq__q { font-size: 19px; line-height: 27px; } }

/* Note */
.src-note { display: flex; gap: var(--space-sm); align-items: flex-start; padding: var(--space-md); border-radius: var(--radius-md); max-width: var(--measure); }
.src-note--reassure { background: var(--sprout); }
.src-note--insurance { background: var(--sun-soft); }
.src-note--privacy { background: var(--linen); }
.src-note__icon { width: 24px; height: 24px; flex: none; margin-top: 3px; color: var(--forest); }
.src-note--insurance .src-note__icon { color: var(--clay-deep); }
.src-note__title { margin: 0 0 4px; font-weight: 600; font-size: 17px; line-height: 26px; color: var(--ink); }
.src-note--insurance .src-note__title { color: var(--clay-deep); }
.src-note__text { font-size: 16px; line-height: 26px; color: var(--ink); }
.src-note__text p { margin: 0; }
.src-note__text p + p { margin-top: var(--space-xs); }
.src-notes { display: grid; gap: var(--space-md); grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); max-width: var(--container); }
.src-notes .src-note { max-width: none; margin: 0 !important; }

/* CrisisNote */
.src-crisis { padding: var(--space-md); border-radius: var(--radius-md); background: var(--paper); border: 2px solid var(--forest); max-width: var(--measure); color: var(--ink); }
.src-crisis__title { margin: 0 0 4px; font-family: var(--font-serif); font-size: 22px; line-height: 30px; font-weight: 600; }
.src-crisis__intro { margin: 0 0 var(--space-sm); font-size: 16px; line-height: 26px; }
.src-crisis__list { display: grid; gap: var(--space-xs); margin: 0; padding: 0; list-style: none; }
.src-crisis__list li { display: flex; flex-wrap: wrap; column-gap: var(--space-xs); align-items: baseline; font-size: 16px; line-height: 26px; margin: 0; }
.src-crisis__detail { flex-basis: 100%; }
.src-crisis__label { color: var(--ink-muted); }
.src-crisis__value { font-weight: 700; color: var(--forest-deep) !important; font-variant-numeric: tabular-nums; user-select: all; text-decoration: underline; }
.src-crisis__detail { color: var(--ink-muted); font-size: 14px; }

/* ContactForm */
.src-form { display: flex; flex-direction: column; gap: var(--space-sm); padding: var(--space-md); background: var(--paper); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); max-width: 40rem; }
.src-form__title { margin: 0; font-family: var(--font-serif); font-size: 22px; line-height: 30px; font-weight: 600; }
.src-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-sm); }
@media (max-width: 560px) { .src-form__grid { grid-template-columns: 1fr; } }
.src-field { display: flex; flex-direction: column; gap: 6px; }
.src-field__label { font-size: 15px; line-height: 20px; font-weight: 600; color: var(--ink); letter-spacing: 0.01em; }
.src-field__hint { margin: 0; color: var(--ink-muted); font-size: 14px; line-height: 22px; }
.src-input { box-sizing: border-box; width: 100%; min-height: var(--tap-target); padding: 10px 14px; border: 1.5px solid var(--border-input); border-radius: var(--radius-sm); background: var(--paper); color: var(--ink); font-family: var(--font-sans); font-size: 17px; line-height: 24px; }
.src-input--area { min-height: 96px; resize: vertical; }
.src-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm); }
.src-form__after { margin: 0; color: var(--ink-muted); font-size: 14px; line-height: 22px; }
.src-form__status { margin: 0; padding: 12px 16px; border-radius: var(--radius-sm); font-size: 16px; line-height: 26px; }
.src-form__status--ok { background: var(--sprout); color: var(--ink); }
.src-form__status--error { background: var(--error-soft); color: var(--error); }

/* Practice fact */
.src-fact-block ul { margin: 4px 0 0; }

/* CallBar */
.src-callbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); background: var(--paper); border-top: 1px solid var(--line); box-shadow: var(--shadow-lift); margin: 0 !important; }
.src-callbar__text { display: flex; flex-direction: column; min-width: 0; }
.src-callbar .src-btn { flex: none; min-width: 0; }
.src-callbar__label { color: var(--ink-muted); font-size: 14px; line-height: 20px; }
.src-callbar__number { font-weight: 700; font-size: 18px; line-height: 24px; font-variant-numeric: tabular-nums; }
@media (min-width: 900px) { .src-callbar { display: none; } }

/* Posts */
.src-post-meta { color: var(--ink-muted); font-size: 14px; line-height: 22px; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
	.src-service--clickable:hover { transform: none; }
}

/* ---------- Rows (26 Sep design pass) ---------- */

/* Steps: always one row of three from tablet up */
@media (min-width: 768px) { .src-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Editorial row: heading beside the text */
.src-row { gap: var(--space-xl) !important; margin: 0 !important; }
.src-row > .wp-block-column:last-child { max-width: 44rem; }
.src-row > .wp-block-column:last-child > * + * { margin-top: var(--space-sm); }
.src-row h2 { position: sticky; top: var(--space-md); }
.src-row .src-faqs { margin-top: 0; }
@media (max-width: 781px) { .src-row { gap: var(--space-sm) !important; } .src-row h2 { position: static; } }

/* Two short sections, or the form and its details, side by side */
.src-pair { gap: var(--space-md) !important; align-items: stretch !important; margin: 0 !important; }
.src-pair > .wp-block-column { display: flex; flex-direction: column; }
.src-pair > .wp-block-column > * { flex: 1; margin: 0 !important; max-width: none; }
.src-card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); padding: var(--space-lg) var(--space-md); }
@media (min-width: 900px) { .src-card { padding: var(--space-lg); } }
.src-card > * + * { margin-top: var(--space-sm); }
.src-card__title { font-size: 26px !important; line-height: 34px !important; }
.src-pair--form .src-form { max-width: none; height: 100%; }

/* Long lists of short items: a grid of ticks */
.src-ticks { list-style: none; padding: 0; display: grid; gap: var(--space-sm); grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); max-width: none !important; margin-top: var(--space-md) !important; }
.src-ticks li { margin: 0; display: flex; gap: 12px; align-items: flex-start; padding: 14px 18px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-md); font-size: 17px; line-height: 26px; }
.src-ticks li::before { content: ""; flex: none; width: 22px; height: 22px; margin-top: 2px; border-radius: 50%; background: var(--sprout) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d6a4f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 13px no-repeat; }

/* Pull quote: one of Susan's lines per page at most */
p.src-quote { margin-top: var(--space-md) !important; padding: 4px 0 4px var(--space-md); border-left: 3px solid var(--sage); font-family: var(--font-serif); font-style: italic; font-size: 22px; line-height: 34px; color: var(--ink); }

/* Closing call to action, centred */
.src-cta--center { text-align: center; }
.src-cta--center > * { margin-inline: auto !important; }
.src-cta--center .src-actions { justify-content: center; }

/* Services mosaic (masonry) */
.src-mosaic { columns: 3 16rem; column-gap: var(--space-md); max-width: none !important; margin-top: var(--space-md) !important; }
.src-mosaic > .src-service { break-inside: avoid; margin: 0 0 var(--space-md) !important; display: flex; }
.src-mosaic .src-service__body { padding: var(--space-sm) var(--space-md) var(--space-md); gap: 4px; }
.src-mosaic .src-service__title { font-size: 20px; line-height: 28px; margin-top: 0; }
.src-service--tall .src-service__media { aspect-ratio: 4/5; }
.src-service--square .src-service__media { aspect-ratio: 1/1; }

/* Map */
.src-map { margin: 0; }
.src-map__frame { overflow: hidden; border-radius: var(--radius-lg); border: 1px solid var(--line); background: var(--linen); aspect-ratio: 4/3; box-shadow: var(--shadow-soft); }
.src-map__frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.src-map__caption { margin-top: var(--space-xs); font-size: 16px; }
.src-map__caption a { display: inline-flex; align-items: center; min-height: var(--tap-target); font-weight: 600; }

/* ---------- Parent Guide article ---------- */
.src-article__cols { gap: var(--space-xl) !important; margin: 0 !important; }
.src-article__main { max-width: 44rem; min-width: 0; }
.src-article__main > * + * { margin-top: var(--space-sm); }
.src-article__main > .wp-block-post-title { margin-top: var(--space-xs); font-size: 40px; line-height: 48px; }
.src-post-meta { color: var(--ink-muted); font-size: 14px; line-height: 22px; }
.src-post-image { margin-top: var(--space-md) !important; }
.src-post-image img { border-radius: var(--radius-lg); }
.src-article__content > * + * { margin-top: var(--space-sm); }
.src-article__content > h2 { margin-top: var(--space-lg); scroll-margin-top: var(--space-md); }
.src-article__content > h3 { margin-top: var(--space-md); }
.src-article__main > .src-author, .src-article__main > .src-note { margin-top: var(--space-lg); }

/* Byline */
.src-byline { display: flex; align-items: center; gap: 12px; margin-top: var(--space-sm) !important; font-size: 16px; line-height: 24px; color: var(--ink-muted); }
.src-byline__img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex: none; }
.src-byline strong { color: var(--ink); font-weight: 600; }

/* Author box */
.src-author { display: flex; gap: var(--space-md); align-items: flex-start; padding: var(--space-md); background: var(--linen); border-radius: var(--radius-lg); }
.src-author__img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; flex: none; }
.src-author__body > * { margin: 0; }
.src-author__label { font-size: 14px; line-height: 22px; color: var(--ink-muted); }
.src-author__name { font-family: var(--font-serif); font-size: 22px; line-height: 30px; font-weight: 600; }
.src-author__cred { font-size: 15px; line-height: 22px; color: var(--ink-muted); }
.src-author__text { margin-top: var(--space-xs) !important; font-size: 16px; line-height: 26px; }
@media (max-width: 480px) { .src-author { flex-direction: column; } }

/* On this page */
.src-toc__wide { position: sticky; top: var(--space-md); padding-top: 40px; }
.src-toc__title, .src-toc__narrow summary { font-size: 14px; line-height: 22px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-muted); margin: 0 0 var(--space-xs); }
.src-toc__list { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--line); }
.src-toc__list li { margin: 0; }
.src-toc__list a { display: flex; align-items: center; min-height: 40px; padding: 6px 0 6px var(--space-sm); margin-left: -2px; border-left: 2px solid transparent; color: var(--ink); text-decoration: none; font-size: 15px; line-height: 22px; }
.src-toc__list a:hover { color: var(--forest); border-left-color: var(--forest); }
.src-toc__narrow { display: none; }
@media (max-width: 781px) {
	.src-toc__wide { display: none; }
	.src-toc__narrow { display: block; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 0 var(--space-sm); }
	.src-toc__narrow summary { display: flex; align-items: center; min-height: var(--tap-target); margin: 0; cursor: pointer; }
	.src-toc__narrow .src-toc__list { margin-bottom: var(--space-sm); }
	.src-article__cols { gap: var(--space-md) !important; }
	.src-article__main > .wp-block-post-title { font-size: 32px; line-height: 40px; }
}

/* Three photo cards in a row (service pages) */
@media (min-width: 900px) { .src-cards--three { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.src-split--form { align-items: start !important; }
.src-split--form .src-form { max-width: none; }
.src-service__media { position: relative; overflow: hidden; }
.src-service__media img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; }

/* A section whose text may run the full container width (Sean, 26 Sep) */
.src-section.src-section--wide > * { max-width: none; }

/* FAQ rows: the questions sit centred in the row (Sean, 26 Sep) */
.src-section:has(> .src-faqs) > * { margin-inline: auto; }
.src-section:has(> .src-faqs) > h2 { text-align: center; max-width: 48rem; }
.src-section:has(> .src-faqs) > p { text-align: center; }
.src-faqs { margin-inline: auto; width: 100%; max-width: 48rem; }

/* Labelled lists as tiles (service pages) */
.src-tiles { list-style: none; padding: 0; display: grid; gap: var(--space-md); grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); max-width: none !important; margin-top: var(--space-md) !important; }
.src-tiles li { margin: 0; padding: var(--space-md); background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); font-size: 16px; line-height: 26px; color: var(--ink-muted); }
.src-tiles li strong:first-child { display: block; margin-bottom: 6px; font-family: var(--font-serif); font-size: 20px; line-height: 28px; font-weight: 600; color: var(--ink); }
@media (min-width: 900px) { .src-cards--two { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.src-cards .src-service:not(.src-service--image) .src-service__body { padding: var(--space-lg) var(--space-md); }
@media (min-width: 900px) { .src-cards .src-service:not(.src-service--image) .src-service__body { padding: var(--space-lg); } }

/* Parent Guide listing: three across on desktop (Sean, 26 Sep), cards of equal height */
.wp-block-post-template.src-cards { list-style: none; padding: 0; }
@media (min-width: 900px) { .wp-block-post-template.src-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.wp-block-post-template.src-cards > li { margin: 0; display: flex; }
.wp-block-post-template.src-cards > li > .src-service { flex: 1; }
.wp-block-post-template .src-service__body { padding: var(--space-md) !important; }
.wp-block-post-template .src-service__media { margin: 0; }
.wp-block-post-template .src-service__media img { aspect-ratio: 3/2; }

/* Header menu: every item on one baseline, submenu parents included (Sean, 26 Sep) */
.src-header .wp-block-navigation__container { align-items: center; }
.src-header .wp-block-navigation-item { display: flex; align-items: center; margin: 0; }
.src-header .wp-block-navigation-item__content { display: inline-flex; align-items: center; min-height: var(--tap-target); padding: 0 !important; line-height: 24px; }
.src-header .wp-block-navigation-submenu__toggle { display: inline-flex; align-items: center; min-height: var(--tap-target); }
.src-header .wp-block-navigation .wp-block-navigation-item__label { line-height: 24px; }
.src-header .wp-block-navigation-submenu__toggle[aria-expanded] + .wp-block-navigation__submenu-icon,
.src-header .wp-block-navigation__submenu-icon { align-self: center; margin-left: 4px; }
/* Leave room for the Call button: tighter menu gaps on narrower desktops */
@media (min-width: 900px) and (max-width: 1240px) {
	.src-header .wp-block-navigation { gap: 4px 16px; font-size: 15px; }
	.src-brand__name { font-size: 18px; }
}
.src-header__actions { flex-wrap: nowrap; }
.src-header__call .src-btn { min-width: 0; }

/* Gravity Forms inside the contact card: match the theme's own fields (Sean, 26 Sep) */
.src-form--gravity .gform_wrapper.gform-theme {
	--gf-color-primary: var(--forest); --gf-color-primary-darker: var(--forest-deep); --gf-color-primary-contrast: var(--on-forest);
	--gf-ctrl-border-color: var(--border-input); --gf-ctrl-radius: var(--radius-sm); --gf-ctrl-size: var(--tap-target);
	--gf-ctrl-font-size: 17px; --gf-ctrl-label-color-primary: var(--ink); --gf-ctrl-desc-color: var(--ink-muted);
	--gf-font-family-base: var(--font-sans); --gf-ctrl-btn-radius: 999px; --gf-ctrl-btn-font-size: 17px;
	margin: 0;
}
.src-form--gravity .gform_wrapper .gform_heading { display: none; }
.src-form--gravity .gform_wrapper .gfield_label { font-size: 15px; font-weight: 600; }
.src-form--gravity .gform_wrapper .gfield_description { font-size: 14px; line-height: 22px; }
.src-form--gravity .gform_wrapper .gform_footer { margin-top: var(--space-sm); padding: 0; }
.src-form--gravity .gform_wrapper .gform_button { min-height: var(--tap-target); padding-inline: 28px; font-weight: 600; }
.src-form--gravity .gform_confirmation_message { padding: 12px 16px; border-radius: var(--radius-sm); background: var(--sprout); color: var(--ink); font-size: 16px; line-height: 26px; }

/* Gravity Forms prints its own blue theme inline with an ID selector; override it on every form (Sean, 26 Sep) */
.gform_wrapper.gform-theme {
	--gf-color-primary: var(--forest) !important; --gf-color-primary-rgb: 45, 106, 79 !important;
	--gf-color-primary-darker: var(--forest-deep) !important; --gf-color-primary-lighter: var(--sprout) !important;
	--gf-color-primary-contrast: var(--on-forest) !important;
	--gf-ctrl-outline-color-focus: var(--forest) !important;
}
.gform_wrapper.gform-theme .gform_footer input[type="submit"].gform_button,
.gform_wrapper.gform-theme .gform_page_footer input[type="submit"],
.gform_wrapper.gform-theme .gform_page_footer .gform_next_button,
.gform_wrapper.gform-theme .gform_page_footer .gform_previous_button {
	background: var(--forest) !important; color: var(--on-forest) !important; border: 2px solid var(--forest) !important;
	border-radius: 999px !important; min-height: var(--tap-target); padding: 0 28px !important;
	font-family: var(--font-sans) !important; font-size: 17px !important; font-weight: 600 !important; line-height: 1 !important;
	box-shadow: none !important; cursor: pointer; transition: background-color var(--duration-fast, 150ms) ease;
}
.gform_wrapper.gform-theme .gform_footer input[type="submit"].gform_button:hover,
.gform_wrapper.gform-theme .gform_page_footer input[type="submit"]:hover { background: var(--forest-deep) !important; border-color: var(--forest-deep) !important; }
.gform_wrapper.gform-theme .gform_footer input[type="submit"].gform_button:focus-visible { outline: 3px solid var(--forest) !important; outline-offset: 3px; }

/* QA, 26 Sep: 48px targets for Gravity Forms fields and the small footer, crisis and pagination links */
.gform_wrapper.gform-theme .gfield input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.gform_wrapper.gform-theme .gfield select { min-height: var(--tap-target) !important; font-size: 17px !important; }
.src-footer a, .src-crisis a, .wp-block-query-pagination a, .wp-block-query-pagination .page-numbers {
	display: inline-flex; align-items: center; min-height: var(--tap-target); min-width: var(--tap-target);
}

/* Credentials under service-page headings (Sean, 26 Sep) */
.src-hero__creds { margin-top: var(--space-md); padding-top: var(--space-sm); border-top: 1px solid var(--line); max-width: 34rem; }
.src-hero__creds p { margin: 0; font-size: 15px; line-height: 24px; color: var(--ink-muted); }
.src-hero__creds strong { color: var(--ink); }
.src-hero__creds a { color: var(--forest); padding-block: 12px; }
.src-hero__creds ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.src-hero__creds li { margin: 0; padding: 4px 12px; border-radius: 999px; background: var(--sprout); color: var(--ink); font-size: 14px; line-height: 22px; }

/* About: story beside education and memberships, two text columns (Sean, 28 Sep) */
.src-text-cols { gap: var(--space-xl, 64px) !important; align-items: flex-start !important; margin: 0 !important; }
.src-text-cols > .wp-block-column > * { max-width: none; }
.src-text-cols > .wp-block-column > * + * { margin-top: var(--space-sm); }
.src-text-cols > .wp-block-column > h2 + * { margin-top: var(--space-sm); }
.src-text-cols > .wp-block-column > * + h2 { margin-top: var(--space-lg, 48px); }
@media (max-width: 899px) { .src-text-cols { flex-wrap: wrap !important; } .src-text-cols > .wp-block-column { flex-basis: 100% !important; } }

/* Crisis note: one consistent row per line, name and detail on the left, number on the right (Sean, 28 Sep) */
.src-crisis__list { gap: 0; }
.src-crisis__list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "label value" "detail value"; column-gap: var(--space-sm); row-gap: 0; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); }
.src-crisis__list li:first-child { border-top: 0; padding-top: 0; }
.src-crisis__list li:last-child { padding-bottom: 0; }
.src-crisis__label { grid-area: label; color: var(--ink); font-weight: 600; font-size: 16px; line-height: 24px; }
.src-crisis__detail { grid-area: detail; flex-basis: auto; font-size: 14px; line-height: 20px; }
.src-crisis__value { grid-area: value; justify-content: flex-end; font-size: 18px; white-space: nowrap; }
.src-crisis__list li:not(:has(.src-crisis__detail)) { grid-template-areas: "label value"; }

/* A closing line that sits in the tile grid beside the last tile, as plain text (Sean, 28 Sep) */
.src-tiles li.src-tiles__aside { background: none; border: 0; box-shadow: none; padding: var(--space-sm) 0; align-self: center; font-size: 18px; line-height: 30px; color: var(--ink); }
@media (min-width: 640px) { .src-tiles li.src-tiles__aside { grid-column: span 2; padding: var(--space-md); } }
