/*
 * SW Laki — component styles. Tokens come from theme.json: presets as
 * --wp--preset--*, semantic tokens as --wp--custom--*. This file only
 * composes them. No build step; edit and reload.
 *
 * DIRECTION CONTRACT (impeccable, 2026-09-03)
 * THESIS: A Finnish statute book set on screen — green cloth cover, gilt imprint,
 *   thin law-book paper, § marks, measured headings. Typeset, not assembled.
 *   Refuses the law-firm template: no labels above headings, no card grids, no
 *   tracked capitals as decoration.
 * OWN-WORLD: Two grounds (cover, paper; one tinted section). Gilt foil for
 *   hairlines, §, links and the foil button on green; gilt ink as the only gold
 *   on paper. Cormorant Garamond 600 display with one italic gilt word; Cormorant
 *   italic for every label; Source Sans 3 text with tabular numerals. Hairlines
 *   are the only structure. No shadows. Radius 0. Tracked capitals only in the
 *   imprint under the wordmark.
 * STORY: The visitor recognises a calm, dignified firm in one viewport, reads the
 *   three areas as a table of contents, believes because two named lawyers are
 *   reachable, and calls or writes.
 * FIRST VIEWPORT (1440): spine header (wordmark, imprint, three links). H1 ~84px,
 *   13ch, left 58%, "Selkeää lakiapua elämän *käännekohtiin*." with the italic
 *   word in bright gilt. Right: lead (64ch), foil button "Ota yhteyttä" and a
 *   text link. Below: the contact dl with italic labels; the § rule closes the cover.
 * FORM: refinement of the established world (new-work §1, inherit and document);
 *   code-led; no seed roll because no new world is created.
 * FINISH: unreviewed and undocumented is unfinished; this build ends with the
 *   finish review, the verdict, DESIGN.md, and every shipping raster carrying
 *   its provenance.
 */

/* ---- 0. Metric-matched fallback faces (limit reflow while woff2 loads) ------ */

@font-face {
	font-family: "Cormorant Garamond Fallback";
	src: local("Georgia"), local("Times New Roman");
	size-adjust: 88%;
	ascent-override: 105%;
	descent-override: 33%;
	line-gap-override: 0%;
}
@font-face {
	font-family: "Source Sans 3 Fallback";
	src: local("Helvetica Neue"), local("Arial");
	size-adjust: 94%;
	ascent-override: 108%;
	descent-override: 42%;
	line-gap-override: 0%;
}

/* ---- 1. Grounds: every colour role follows the background it sits on -------- */

:root,
.has-paper-background-color,
.has-paper-tint-background-color {
	--sw-fg: var(--wp--preset--color--ink);
	--sw-fg-soft: var(--wp--preset--color--ink-soft);
	--sw-heading: var(--wp--preset--color--cover);
	--sw-label: var(--wp--preset--color--cover);
	--sw-accent: var(--wp--preset--color--foil-ink);
	--sw-link: var(--wp--preset--color--foil-ink);
	--sw-link-hover: var(--wp--preset--color--cover);
	--sw-link-sweep: var(--wp--preset--color--foil-ink);
	--sw-link-rest: color-mix(in srgb, var(--sw-accent) 70%, transparent);
	--sw-line: var(--wp--custom--line--ink);
	--sw-line-strong: var(--wp--custom--line--ink-strong);
	--sw-focus: var(--wp--preset--color--foil-ink);
	--sw-selection-bg: var(--wp--preset--color--cover);
	--sw-selection-fg: var(--wp--preset--color--paper);
}

.has-cover-background-color,
.has-cover-deep-background-color,
.has-cover-soft-background-color,
.wp-block-navigation__responsive-container.is-menu-open {
	--sw-fg: var(--wp--preset--color--paper);
	--sw-fg-soft: color-mix(in srgb, var(--wp--preset--color--paper) 78%, transparent);
	--sw-heading: var(--wp--preset--color--paper);
	--sw-label: var(--wp--preset--color--foil);
	--sw-accent: var(--wp--preset--color--foil);
	--sw-link: var(--wp--preset--color--foil-light);
	--sw-link-hover: var(--wp--preset--color--paper);
	--sw-link-sweep: var(--wp--preset--color--foil-light);
	--sw-link-rest: color-mix(in srgb, var(--sw-accent) 70%, transparent);
	--sw-line: var(--wp--custom--line--hair);
	--sw-line-strong: var(--wp--custom--line--rule);
	--sw-focus: var(--wp--preset--color--foil);
	--sw-selection-bg: var(--wp--preset--color--foil);
	--sw-selection-fg: var(--wp--preset--color--cover-deep);
}

/* ---- 2. Base and browser surfaces ------------------------------------------ */

html {
	color-scheme: light;
	background: var(--wp--preset--color--cover);
	scroll-behavior: smooth;
	hanging-punctuation: first last;
}
body {
	min-width: 20rem;
	background: var(--wp--preset--color--paper);
	accent-color: var(--wp--preset--color--cover);
	caret-color: var(--wp--preset--color--foil-ink);
	text-rendering: optimizeLegibility;
	font-kerning: normal;
	font-variant-numeric: lining-nums tabular-nums;
}
.has-cover-background-color,
.has-cover-deep-background-color { -webkit-font-smoothing: antialiased; }

::selection { background: var(--sw-selection-bg); color: var(--sw-selection-fg); }

.wp-site-blocks { overflow: clip; }
.wp-site-blocks > *,
main > *,
.sw-front__content > * { margin-block-start: 0; }

:is(h1, h2, h3, h4) { text-wrap: balance; color: var(--sw-heading); }
p, li, dd { text-wrap: pretty; }
.has-cover-background-color :is(h1, h2, h3, h4),
.has-cover-deep-background-color :is(h1, h2, h3, h4) { color: var(--sw-heading); }

/* Prose may use native Finnish hyphenation; names and contact details stay verbatim. */
main :where(p, li, blockquote):not(
	.sw-person__name,
	.sw-person__title,
	.sw-person__contact,
	.sw-person__contact *,
	.sw-contact *,
	.sw-location__address,
	.sw-location__link
) {
	hyphens: auto;
	hyphenate-limit-chars: 12 3 3;
	overflow-wrap: normal;
	word-break: normal;
}

/* Headings use only editorial or locally generated breaks, never browser guesses.
 * In particular, short words such as "lakiapua" must remain intact. */
main :is(h1, h2, h3, h4) {
	hyphens: manual;
	overflow-wrap: normal;
	word-break: normal;
}

:root a:where(:not(.wp-element-button)) {
	color: var(--sw-link);
	text-decoration-thickness: var(--wp--custom--link--underline-thickness);
	text-underline-offset: var(--wp--custom--link--underline-offset);
	text-decoration-color: color-mix(in srgb, currentColor 70%, transparent);
	transition:
		color var(--wp--custom--motion--duration) var(--wp--custom--motion--ease),
		text-decoration-color var(--wp--custom--motion--duration) var(--wp--custom--motion--ease),
		background-size var(--wp--custom--link--duration) var(--wp--custom--motion--ease),
		background-color var(--wp--custom--motion--duration) var(--wp--custom--motion--ease);
}
:root a:where(:not(.wp-element-button)):hover { color: var(--sw-link-hover); text-decoration-color: currentColor; }
/* Two stationary underline layers: the brighter one sweeps from left to right.
 * Content-box positioning keeps the line beside the text despite touch padding.
 * Backgrounds preserve wrapping and leave service-row hit-area pseudo-elements free. */
:root .wp-site-blocks a:where(:not(.wp-element-button):not(.sw-wordmark):not(.skip-link)) {
	text-decoration-line: none;
	background-image:
		linear-gradient(var(--sw-link-sweep), var(--sw-link-sweep)),
		linear-gradient(var(--sw-link-rest), var(--sw-link-rest));
	background-repeat: no-repeat;
	background-origin: content-box;
	background-position: left bottom;
	background-size: 0% var(--wp--custom--link--underline-thickness), var(--sw-underline-rest, 100%) var(--wp--custom--link--underline-thickness);
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone;
}
:root .wp-site-blocks a:where(:not(.wp-element-button):not(.sw-wordmark):not(.skip-link)):is(:hover, :focus-visible) {
	background-size: 100% var(--wp--custom--link--underline-thickness), var(--sw-underline-rest, 100%) var(--wp--custom--link--underline-thickness);
}
:is(.sw-nav, .sw-footer__nav) .wp-block-navigation-item__content,
.sw-runhead a,
.sw-prose .wp-block-post-title a { --sw-underline-rest: 0%; }
:is(.sw-nav, .sw-footer__nav) :is(.current-menu-item, .current-menu-ancestor) > .wp-block-navigation-item__content { --sw-underline-rest: 100%; }

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

.skip-link.screen-reader-text:focus {
	top: 0.75rem;
	left: var(--wp--style--root--padding-left, 1.5rem);
	z-index: 100000;
	padding: 0.85rem 1.4rem;
	background: var(--wp--preset--color--foil);
	color: var(--wp--preset--color--cover-deep);
	font: 600 1rem/1.2 var(--wp--preset--font-family--sans);
	text-decoration: none;
	outline-color: var(--wp--preset--color--cover);
	border-radius: 0;
	box-shadow: none;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: 0.01ms !important; animation: none !important; }
}

/* ---- 3. Wordmark and imprint ------------------------------------------------ */

.sw-wordmark {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	min-height: 2.75rem;
	color: var(--wp--preset--color--foil);
	font-family: var(--wp--preset--font-family--serif);
	line-height: 1;
	text-decoration: none;
}
.sw-wordmark__sw { font-size: 2.35rem; font-weight: 600; letter-spacing: -0.03em; }
.sw-wordmark__bar { width: 1px; height: 2.15rem; background: currentColor; opacity: 0.78; }
.sw-wordmark__laki { font-size: 1.35rem; font-weight: 600; letter-spacing: 0.25em; padding-left: 0.1em; }
:root a.sw-wordmark:hover, .sw-wordmark:focus-visible { color: var(--wp--preset--color--foil-light); }

.sw-brand { display: flex; align-items: center; gap: 1.5rem; }
.sw-imprint {
	margin: 0;
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sw-fg-soft);
}
.sw-brand .sw-imprint { padding-left: 1.5rem; border-left: var(--sw-line); }
.sw-footer .sw-imprint { margin-top: 0.85rem; }

/* ---- 4. Header and navigation ---------------------------------------------- */

.sw-header { border-bottom: var(--sw-line); }
.sw-header__bar { min-height: 5.75rem; padding-block: 1rem; }
.sw-nav .wp-block-navigation__container { gap: clamp(1.25rem, 2.5vw, 2.25rem); }
.sw-nav .wp-block-navigation-item__content {
	display: inline-block;
	padding-block: 0.7rem;
	color: var(--wp--preset--color--paper);
	letter-spacing: 0.015em;
	text-decoration-line: underline;
	text-decoration-color: transparent;
}
.sw-nav .wp-block-navigation-item__content:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--paper);
	text-decoration-color: var(--sw-accent);
}
.sw-nav :is(.current-menu-item, .current-menu-ancestor) > .wp-block-navigation-item__content {
	text-decoration-color: var(--sw-accent);
}
.sw-nav :is(.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close) {
	width: var(--wp--custom--usability--target);
	height: var(--wp--custom--usability--target);
	padding: var(--wp--custom--navigation--toggle-padding);
	color: var(--wp--preset--color--foil);
}
.sw-nav .wp-block-navigation__responsive-container-open { margin-right: calc(-1 * var(--wp--custom--navigation--toggle-padding)); }

/* ---- 5. The section mark: one gilt rule with § per page --------------------- */

.sw-rule {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin: 0;
	color: var(--wp--preset--color--foil);
}
.sw-rule::before, .sw-rule::after {
	content: "";
	flex: 1;
	height: 1px;
	background: currentColor;
	opacity: 0.7;
}
.sw-rule span {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 1.9rem;
	font-weight: 500;
	line-height: 1;
	padding-bottom: 0.08em;
}

/* ---- 6. Sections and section heads ----------------------------------------- */

.sw-section { padding-block: var(--wp--custom--section--pad); }
.sw-section__head { margin-bottom: var(--wp--custom--section--gap); }
.sw-section__head h2 { max-width: 20ch; margin: 0; }
.sw-section__head p,
.sw-hero__lead,
.sw-contact-section__lead,
.sw-titleband .sw-lead,
.sw-titleband .wp-block-post-excerpt__excerpt {
	max-width: var(--wp--custom--measure--lead);
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.5;
	color: var(--sw-fg-soft);
}
.sw-section__head p { margin: var(--wp--preset--spacing--20) 0 0; }
.sw-section__more { margin-top: var(--wp--preset--spacing--50); font-weight: 600; }
.sw-section__more a { display: inline-block; padding-block: 0.4rem; }

/* ---- 7. Hero: the cover ------------------------------------------------------ */

.sw-hero {
	padding-top: clamp(4.5rem, 3rem + 5vw, 7.5rem);
	padding-bottom: clamp(2.75rem, 2rem + 2.5vw, 4.25rem);
}
.sw-hero__intro { margin: 0; }
.sw-hero__grid { gap: clamp(3rem, 2rem + 5vw, 7rem); margin: 0; }
.sw-hero__title {
	max-width: var(--wp--custom--measure--display);
	margin: 0;
	text-wrap: balance;
	hyphens: none;
}
.sw-hero__title em,
.sw-titleband h1 em {
	font-style: italic;
	font-weight: 600;
	color: var(--wp--preset--color--foil-light);
}
.sw-hero__copy { padding-top: 0.6rem; }
.sw-hero__lead {
	margin: 0 0 var(--wp--preset--spacing--50);
	line-height: 1.55;
}
.sw-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.75rem;
	margin: 0;
}
.sw-hero__actions .wp-block-buttons { margin: 0; }
.sw-hero__more { margin: 0; font-weight: 600; }
.sw-hero__more a { display: inline-block; padding-block: 0.8rem; }

/* ---- 8. Buttons: square gilt stamping ---------------------------------------- */

.wp-block-button__link,
.wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--wp--custom--control--height);
	border-radius: var(--wp--custom--radius);
	text-decoration: none;
	transition:
		background-color var(--wp--custom--motion--duration) var(--wp--custom--motion--ease),
		color var(--wp--custom--motion--duration) var(--wp--custom--motion--ease),
		box-shadow var(--wp--custom--motion--duration) var(--wp--custom--motion--ease);
}
.wp-block-button:not(.is-style-foil):not(.is-style-ghost) .wp-block-button__link:hover { box-shadow: inset 0 0 0 1px var(--wp--preset--color--foil); }
.wp-block-button__link:active { background: var(--wp--preset--color--cover-deep); }

.is-style-foil .wp-block-button__link {
	background: var(--wp--preset--color--foil);
	color: var(--wp--preset--color--cover-deep);
}
.is-style-foil .wp-block-button__link:hover { background: var(--wp--preset--color--foil-light); color: var(--wp--preset--color--cover-deep); }
.is-style-foil .wp-block-button__link:active { background: var(--wp--custom--button--foil-active-background); color: var(--wp--preset--color--cover-deep); }
.is-style-foil .wp-block-button__link:focus-visible { outline-color: var(--wp--preset--color--paper); }

.is-style-ghost .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--paper);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--wp--preset--color--foil) 70%, transparent);
}
.is-style-ghost .wp-block-button__link:hover {
	background: color-mix(in srgb, var(--wp--preset--color--paper) 14%, transparent);
	color: var(--wp--preset--color--paper);
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--foil);
}
.is-style-ghost .wp-block-button__link:active { background: color-mix(in srgb, var(--wp--preset--color--paper) 22%, transparent); }

/* ---- 9. Contact block variants (labels in the book's italic) ---------------- */

.sw-contact { margin: 0; }
.sw-contact a { display: inline-block; padding-block: 0.5rem; margin-block: -0.5rem; overflow-wrap: anywhere; }
.sw-contact dt,
.sw-person__contact dt,
.sw-footer__label {
	font-family: var(--wp--preset--font-family--serif);
	font-style: italic;
	font-weight: 600;
	font-size: 1.3rem;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	color: var(--sw-label);
}

.sw-contact--rail {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	margin-top: clamp(3.5rem, 2rem + 4vw, 6rem);
	margin-bottom: clamp(3rem, 2rem + 3vw, 5rem);
	border-top: var(--sw-line);
	border-bottom: var(--sw-line);
}
.sw-contact--rail dl {
	min-width: 0;
	margin: 0;
	padding: 1.4rem clamp(1rem, 2.5vw, 2rem);
	border-left: var(--sw-line);
}
.sw-contact--rail dl:first-child { padding-left: 0; border-left: 0; }
.sw-contact--rail dl > div { min-width: 0; }
.sw-contact--rail dl > div + div { margin-top: var(--wp--preset--spacing--40); }
.sw-contact--rail dd { margin: 0.5rem 0 0; line-height: 1.5; color: var(--sw-fg); }
.sw-contact a {
	color: var(--sw-fg);
	font-weight: inherit;
	text-decoration-line: underline;
	text-decoration-color: var(--sw-accent);
}
.sw-contact a:hover {
	color: var(--sw-fg);
	text-decoration-color: var(--sw-accent);
}

/* Use the available contact column width, including the narrow footer column. */
.sw-contact__phones {
	display: grid;
	gap: var(--wp--preset--spacing--20);
	container: phone-list / inline-size;
}
.sw-contact__phone { display: flex; flex-direction: column; align-items: flex-start; }
.sw-contact__phone a { white-space: nowrap; }
.sw-contact__name {
	font: inherit;
}
.sw-contact__separator { display: none; color: var(--sw-accent); }
@container phone-list (min-width: 18rem) {
	.sw-contact__phone { flex-direction: row; align-items: baseline; gap: var(--wp--preset--spacing--20); }
	.sw-contact__separator { display: inline; }
}

.sw-contact--list dl {
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	gap: 0.6rem 1.75rem;
	align-items: baseline;
	margin: 0;
	padding-top: 1.5rem;
	border-top: var(--sw-line-strong);
}
.sw-contact--list dt { font-size: 1.25rem; }
.sw-contact--list dd { margin: 0; }

/* Directory headings provide the spacing above their rules. */
.sw-prose .sw-contact--directory > .sw-contact--list { margin-block: 0; }
.sw-contact__lawyers {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--50);
	padding-top: var(--wp--preset--spacing--40);
	border-top: var(--sw-line-strong);
}
.sw-contact__lawyer { min-width: 0; }
.sw-contact--directory .sw-contact__lawyer h3 {
	margin: 0 0 var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--large);
}
.sw-contact__lawyer dl { display: grid; gap: var(--wp--preset--spacing--20); margin: 0; }
.sw-contact__lawyer dd { margin: 0; }
.sw-contact__lawyer a {
	box-sizing: border-box;
	max-width: 100%;
	min-height: var(--wp--custom--usability--target);
	margin: 0;
	padding-block: var(--wp--preset--spacing--10);
	align-content: center;
}
@media (max-width: 781px) {
	.sw-contact__lawyers { grid-template-columns: 1fr; }
}

.sw-contact--compact p { margin: 0 0 0.3rem; }
.sw-contact--compact dl { margin: var(--wp--preset--spacing--40) 0 0; }
.sw-contact--compact dt { margin: var(--wp--preset--spacing--40) 0 0.75rem; }
.sw-contact--compact dt:first-child { margin-top: 0; }
.sw-contact--compact dd { margin: 0; }
.sw-contact--legal { margin: 0; }

.sw-contact-section .wp-block-columns { gap: clamp(3rem, 2rem + 6vw, 8rem); }
.sw-contact-section h2 { margin: 0; }

@media (min-width: 782px) {
	.sw-contact--rail dl:first-child {
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: minmax(0, 1fr);
		gap: var(--wp--preset--spacing--40);
	}
	.sw-contact--rail dl > div + div {
		margin-top: 0;
		padding-left: var(--wp--preset--spacing--40);
		border-left: var(--sw-line);
	}
	/* Align contact details with the copy below the neighbouring heading. */
	.sw-contact-section .sw-contact--list { margin-top: var(--wp--preset--spacing--60); }
}

.sw-contact-section__lead {
	margin: var(--wp--preset--spacing--30) 0 0;
	line-height: 1.55;
}
.sw-contact-section__actions { margin-top: var(--wp--preset--spacing--50); }

/* ---- 10. Service areas: a table of contents, not a card kit ------------------ */

.sw-areas {
	display: block;
	border-bottom: var(--sw-line-strong);
}
.sw-areas,
.sw-services__list,
.sw-people {
	margin: 0;
	padding: 0;
	list-style: none;
}
.sw-area {
	position: relative;
	display: grid;
	grid-template-columns: minmax(15rem, 1.05fr) minmax(20rem, 1.35fr) minmax(7rem, 0.45fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
	border-top: var(--sw-line-strong);
	padding: clamp(1.75rem, 1.25rem + 1.5vw, 2.5rem) 0;
	transition: background-color var(--wp--custom--motion--duration) var(--wp--custom--motion--ease);
}
.sw-area h3 { grid-column: 1; margin: 0; font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.25rem); line-height: 1.08; }
.sw-area p { grid-column: 2; margin: 0; color: var(--sw-fg-soft); }
:is(.sw-area, .sw-services__item) h3 a {
	color: var(--sw-heading);
	text-decoration-line: underline;
	text-decoration-color: var(--sw-link);
}
:is(.sw-area, .sw-services__item) h3 a::after { content: ""; position: absolute; inset: 0; }
:is(.sw-area, .sw-services__item):is(:hover, :focus-within) h3 a { color: var(--wp--preset--color--foil-ink); text-decoration-color: currentColor; }
.sw-area__count {
	grid-column: 3;
	justify-self: end;
	margin: 0;
	padding-top: 0.35em;
	font-family: var(--wp--preset--font-family--serif);
	font-style: italic;
	font-weight: 600;
	font-size: 1.25rem;
	line-height: 1.2;
	color: var(--sw-label);
	white-space: nowrap;
}

/* ---- 11. Services list grouped by area ---------------------------------------- */

.sw-services__group {
	margin: 0 0 var(--wp--preset--spacing--70);
	border-top: var(--sw-line-strong);
	padding-top: var(--wp--preset--spacing--40);
}
.sw-services__group:last-child { margin-bottom: 0; }
.sw-services__group > h2 {
	margin: 0 0 var(--wp--preset--spacing--20);
}
.sw-services__group > p {
	margin: 0 0 var(--wp--preset--spacing--50);
	max-width: var(--wp--custom--measure--lead);
	color: var(--sw-fg-soft);
}
.sw-services__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0 clamp(2rem, 4vw, 3.5rem);
}
.sw-services__item {
	position: relative;
	padding: var(--wp--preset--spacing--40) 0;
	border-bottom: var(--sw-line);
}
.sw-services__item:last-child { border-bottom: 0; }
.sw-services__item h3 { margin: 0 0 0.45rem; }
.sw-services__item p,
.sw-promises .wp-block-column p { margin: 0; color: var(--sw-fg-soft); }

/* ---- 12. Promises: prose in columns, one rule above the row ------------------- */

.sw-promises .wp-block-columns {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--50) clamp(2rem, 5vw, 4.5rem);
	padding-top: var(--wp--preset--spacing--40);
	border-top: var(--sw-line-strong);
}
.sw-promises .wp-block-column { flex: none; width: auto; }
.sw-promises .wp-block-column h3 { margin: 0 0 0.6rem; }

/* ---- 13. People: portrait plates, the trust element --------------------------- */

.sw-people {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(3rem, 2rem + 4vw, 5rem);
}
.sw-person {
	display: grid;
	grid-template-columns: minmax(10rem, 0.72fr) minmax(0, 1fr);
	gap: 0 clamp(1.5rem, 1rem + 1.5vw, 2.25rem);
	align-items: start;
}
.sw-person__figure {
	position: relative;
	aspect-ratio: 4 / 5;
	margin: 0;
	background: var(--wp--preset--color--cover-deep);
	display: grid;
	place-items: center;
	overflow: hidden;
}
.sw-person__figure::after {
	content: "";
	position: absolute;
	inset: 0.6rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--foil) 45%, transparent);
	pointer-events: none;
}
.sw-person__figure img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sw-person__initials {
	font-family: var(--wp--preset--font-family--serif);
	font-size: 3.75rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--foil);
}
.sw-person__body { min-width: 0; }
.sw-person .sw-person__name { margin: 0; font-size: clamp(1.75rem, 1.5rem + 0.8vw, 2.1rem); line-height: 1.1; }
.sw-person .sw-person__title { margin: 0.2rem 0 0.9rem; color: var(--sw-fg-soft); }
.sw-person__areas { margin: 0 0 1rem; font-style: normal; line-height: 1.5; color: var(--sw-fg); }
.sw-person__bio { margin: 0 0 1.1rem; color: var(--sw-fg-soft); }
.sw-person__bio > :first-child { margin-top: 0; }
.sw-person__bio > :last-child { margin-bottom: 0; }
.sw-people-section .sw-person__title { color: var(--wp--preset--color--foil); }
.sw-people-section .sw-person__figure { background: var(--wp--preset--color--cover-deep); }
.sw-prose .sw-person__figure { background: var(--wp--preset--color--cover); }


/* Full biographies need a complete row; summaries retain the two-person grid. */
.sw-people.sw-people--full {
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--70);
	max-width: none;
}
.sw-people--full .sw-person {
	grid-template-columns: var(--wp--custom--people--portrait-width) minmax(0, var(--wp--custom--measure--prose));
	gap: var(--wp--custom--section--gap);
}
.sw-people--full .sw-person__figure { max-width: var(--wp--custom--people--portrait-width); }
@media (max-width: 781px) {
	.sw-people--full .sw-person { display: block; }
	.sw-people--full .sw-person__figure { margin-bottom: var(--wp--preset--spacing--40); }
}

/* ---- 14. Title band and running head (subpages) ------------------------------- */

.sw-titleband {
	padding-top: var(--wp--custom--usability--title-pad);
	padding-bottom: var(--wp--preset--spacing--40);
}
.sw-runhead {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.6rem;
	margin: 0 0 var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--serif);
	font-style: italic;
	font-weight: 600;
	font-size: 1.3rem;
	line-height: 1.3;
	color: var(--wp--preset--color--foil);
}
.sw-runhead a { display: inline-block; padding-block: 0.35rem; margin-block: -0.35rem; color: inherit; text-decoration-color: transparent; }
.sw-runhead a:hover { color: var(--wp--preset--color--foil-light); text-decoration-color: currentColor; }
.sw-runhead span { opacity: 0.7; }
.sw-titleband h1,
.sw-titleband .wp-block-post-title {
	margin: 0;
	max-width: 18ch;
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1.02;
	letter-spacing: -0.015em;
}
.sw-titleband .sw-lead,
.sw-titleband .wp-block-post-excerpt__excerpt {
	margin: var(--wp--preset--spacing--40) 0 0;
}
.sw-titleband .wp-block-post-excerpt { margin: 0; }
.sw-titleband__body { margin-bottom: var(--wp--preset--spacing--40); }
.sw-titleband + .sw-section { padding-top: var(--wp--custom--usability--content-pad); }

/* ---- 15. Prose: one left-anchored reading line ---------------------------------- */

.sw-prose > .wp-block-post-content { max-width: none; }
.sw-prose > .wp-block-post-content > :where(:not(.alignwide):not(.alignfull)) {
	max-width: var(--wp--custom--measure--prose);
	margin-left: 0;
	margin-right: auto;
}
.sw-prose > .wp-block-post-content > .alignwide { margin-top: var(--wp--preset--spacing--50); }
.sw-prose > .wp-block-post-content > p:first-child,
.sw-prose .sw-lead {
	font-size: var(--wp--preset--font-size--lead);
	line-height: 1.55;
	color: var(--sw-fg-soft);
}
.sw-prose h2 { margin: var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--30); }
.sw-prose h3 { margin: var(--wp--preset--spacing--50) 0 var(--wp--preset--spacing--20); }
.sw-prose p { margin-block: 0 var(--wp--preset--spacing--30); }
.sw-prose :is(ul, ol):where(:not(.sw-areas):not(.sw-people):not(.sw-services__list)) {
	margin-block: 0 var(--wp--preset--spacing--40);
	padding-left: 1.25rem;
}
.sw-prose :is(ul, ol) li { margin-bottom: 0.4rem; }
.sw-prose ul:where(:not(.sw-areas):not(.sw-people):not(.sw-services__list)) { list-style: none; padding-left: 1.5rem; }
.sw-prose ul:where(:not(.sw-areas):not(.sw-people):not(.sw-services__list)) > li { position: relative; }
.sw-prose ul:where(:not(.sw-areas):not(.sw-people):not(.sw-services__list)) > li::before {
	content: "–";
	position: absolute;
	left: -1.5rem;
	color: var(--wp--preset--color--foil-ink);
}
.sw-prose ol { list-style: decimal; }
.sw-prose ol li::marker { color: var(--wp--preset--color--foil-ink); font-variant-numeric: tabular-nums; }
.sw-prose .sw-services__group > h2,
.sw-prose .sw-services__item h3 { margin-top: 0; }
.sw-prose .sw-contact--list { margin-block: var(--wp--preset--spacing--50); }
.sw-prose .sw-contact--compact { margin-block: 0 var(--wp--preset--spacing--40); }
.sw-prose .sw-people { margin-top: var(--wp--preset--spacing--40); }
.sw-prose .wp-block-post-title a { color: var(--sw-heading); text-decoration-color: transparent; }
.sw-prose .wp-block-post-title a:hover { color: var(--wp--preset--color--foil-ink); text-decoration-color: currentColor; }

/* ---- 16. Location: the map plate --------------------------------------------- */

.sw-location {
	display: grid;
	grid-template-columns: minmax(0, 1.65fr) minmax(18rem, 0.75fr);
	margin-block: var(--wp--preset--spacing--50) 0;
	border-top: var(--sw-line-strong);
	border-bottom: var(--sw-line-strong);
}
.sw-map-consent { position: relative; min-width: 0; height: var(--wp--custom--map--height); }
.sw-map-consent [hidden] { display: none !important; }
.sw-map-consent__preview { position: absolute; inset: 0; width: 100%; height: 100%; }
.sw-map-consent__land { fill: var(--wp--preset--color--paper); }
.sw-map-consent__park { fill: var(--wp--preset--color--paper-tint); }
.sw-map-consent__streets { fill: none; stroke: var(--wp--preset--color--paper-tint); stroke-width: 12; }
.sw-map-consent__road-edge { fill: none; stroke: var(--wp--preset--color--paper-tint); stroke-width: 24; }
.sw-map-consent__road { fill: none; stroke: var(--wp--preset--color--paper); stroke-width: 12; }
.sw-map-consent__notice {
	position: absolute;
	inset: 0;
	z-index: 1;
	box-sizing: border-box;
	overflow: auto;
	padding: var(--wp--preset--spacing--40);
	display: flex;
	align-items: safe center;
	justify-content: center;
}
.sw-map-consent__prompt {
	max-width: var(--wp--custom--map--prompt-width);
	padding: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--paper);
}
.sw-map-consent__notice p { margin: 0 0 var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--small); }
.sw-map-consent__actions { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30); }
.sw-map-consent__button {
	font: inherit;
	cursor: pointer;
	border: 0;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--cover);
	color: var(--wp--preset--color--paper);
}
.sw-map-consent__button:hover { background: var(--wp--preset--color--cover-soft); }
.sw-map-consent__status { font-size: var(--wp--preset--font-size--small); color: var(--sw-fg-soft); }
.sw-map-consent__status:empty { display: none; }
.sw-map-consent__viewport { position: absolute; inset: 0; }
.sw-map-consent__frame { display: block; width: 100%; height: 100%; border: 0; }
.sw-map-document, .sw-map-document body { height: 100%; margin: 0; overflow: hidden; }
.sw-map-canvas { width: 100%; height: 100%; }
.sw-location__caption {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(1.75rem, 1rem + 2vw, 3rem);
	border-left: var(--sw-line-strong);
}
.sw-location__caption h3 { margin: 0; font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.25rem); line-height: 1.1; }
.sw-location__address { margin: 0.75rem 0 1.25rem; color: var(--sw-fg); }
.sw-location__link { align-self: flex-start; font-weight: 600; }
.sw-location__note { margin: 1.5rem 0 0; font-size: var(--wp--preset--font-size--small); color: var(--sw-fg-soft); }

/* ---- 17. Footer: the colophon ------------------------------------------------ */

.sw-footer { padding-block: clamp(3.75rem, 2.5rem + 4vw, 6rem) var(--wp--preset--spacing--50); }
.sw-footer__grid {
	display: grid;
	grid-template-columns: var(--wp--custom--footer--columns);
	gap: clamp(3rem, 2rem + 4vw, 7rem);
	align-items: start;
}
.sw-footer__brand,
.sw-footer__column { margin: 0; }
.sw-footer__label { margin: 0 0 0.75rem; }
.sw-footer__column > * { margin-block-start: 0; }
.sw-footer__nav { margin: 0; }
.sw-footer__nav .wp-block-navigation__container { gap: 0; align-items: flex-start; }
.sw-footer__nav .wp-block-navigation-item__content {
	color: var(--wp--preset--color--paper);
	text-decoration-line: underline;
	text-decoration-color: transparent;
}
.sw-footer__nav .wp-block-navigation-item__content:is(:hover, :focus-visible),
.sw-footer__nav .current-menu-item > .wp-block-navigation-item__content { text-decoration-color: var(--sw-accent); }
.sw-footer__legal {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.75rem 2rem;
	margin-top: clamp(3rem, 2rem + 2.5vw, 4.5rem);
	padding-top: var(--wp--preset--spacing--40);
	border-top: var(--sw-line);
	font-size: var(--wp--preset--font-size--small);
	color: var(--sw-fg-soft);
}
.sw-footer__legal p { margin: 0; }
.sw-footer__legal a {
	margin-block: -0.5rem;
	color: inherit;
	--sw-underline-rest: 0%;
}
.sw-footer__legal a:is(:hover, :focus-visible) { color: var(--wp--preset--color--paper); }

/* ---- 18. Responsive (core stacks columns at 781px; theme's wide step is 64rem) -- */

@media (min-width: 64.0625rem) {
	.sw-services__group {
		display: grid;
		grid-template-columns: minmax(15rem, 0.72fr) minmax(0, 1.8fr);
		grid-template-rows: auto 1fr;
		column-gap: var(--wp--custom--services--column-gap);
	}
	.sw-services__group > h2 { grid-column: 1; grid-row: 1; font-size: var(--wp--custom--services--heading-size); line-height: 1.1; }
	.sw-services__group > p { grid-column: 1; grid-row: 2; margin-bottom: 0; }
	.sw-services__group > .sw-services__list {
		grid-column: 2;
		grid-row: 1 / span 2;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.sw-services__item:nth-child(-n + 2) { padding-top: 0; }
	.sw-services__item:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
}

@media (max-width: 64rem) {
	.sw-brand .sw-imprint { display: none; }
	.sw-area { grid-template-columns: minmax(12rem, 0.9fr) minmax(0, 1.25fr) max-content; gap: 2rem; }
	.sw-people { grid-template-columns: 1fr; max-width: 46rem; }
	.sw-person { grid-template-columns: minmax(11rem, 0.38fr) minmax(0, 1fr); }
	.sw-promises .wp-block-columns { grid-template-columns: 1fr; }
	.sw-promises .wp-block-column h3 { margin-top: 0; }
}

@media (max-width: 781px) {
	.sw-footer__grid { grid-template-columns: minmax(0, 1.15fr) minmax(7rem, 0.85fr); gap: 2.5rem 1.5rem; }
	.sw-footer__brand { grid-column: 1 / -1; padding-bottom: var(--wp--preset--spacing--50); border-bottom: var(--sw-line); }
	.sw-contact--list dl { grid-template-columns: 1fr; gap: 0.15rem; }
	.sw-contact--list dt { margin-top: var(--wp--preset--spacing--30); }
	.sw-contact--list dt:first-child { margin-top: 0; }
	.sw-header__bar { min-height: var(--wp--custom--navigation--mobile-header-height); padding-block: 0.65rem; }
	.sw-wordmark__sw { font-size: 2rem; }
	.sw-wordmark__bar { height: 1.85rem; }
	.sw-wordmark__laki { font-size: 1.15rem; }
	.sw-hero { padding-top: clamp(3.5rem, 2rem + 6vw, 5rem); padding-bottom: var(--wp--preset--spacing--50); }
	.sw-hero__grid,
	.sw-contact-section .wp-block-columns { gap: var(--wp--preset--spacing--50); }
	.sw-hero__copy { padding-top: 0; }
	.sw-contact--rail { margin-top: var(--wp--preset--spacing--60); margin-bottom: var(--wp--preset--spacing--60); }
	.sw-area { grid-template-columns: 1fr; gap: 0.75rem; padding: var(--wp--preset--spacing--40) 0; }
	.sw-area h3, .sw-area p, .sw-area__count { grid-column: auto; }
	.sw-area__count { justify-self: start; padding-top: 0; }
	.sw-location { grid-template-columns: 1fr; }
	.sw-map-consent__notice, .sw-map-consent__prompt { padding: var(--wp--preset--spacing--30); }
	.sw-location__caption { border-top: var(--sw-line-strong); border-left: 0; }
	.sw-footer { padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50); }
	.sw-footer__legal { display: grid; gap: 0.75rem; }
}

@media (max-width: 599px) {
	.sw-contact--rail { grid-template-columns: 1fr; }
	.sw-contact--rail dl { padding: 1.1rem 0; border-top: var(--sw-line); border-left: 0; }
	.sw-contact--rail dl:first-child { border-top: 0; }
	.sw-person { display: block; }
	.sw-person__figure { width: min(100%, 12rem); margin-bottom: var(--wp--preset--spacing--40); }
	.sw-person__initials { font-size: 3rem; }
	.sw-contact dt, .sw-footer__label { font-size: 1.2rem; }

	/* Mobile menu overlay: left-aligned, the wordmark's serif, hairline rows. */
	.sw-nav .wp-block-navigation__responsive-container.is-menu-open {
		/* Match the header's centered toggle; core adds the logged-in toolbar offset. */
		padding-top: calc((var(--wp--custom--navigation--mobile-header-height) - var(--wp--custom--usability--target)) / 2);
		padding-inline: var(--wp--style--root--padding-right);
		padding-bottom: var(--wp--preset--spacing--40);
		animation: none;
	}
	.sw-nav .wp-block-navigation__responsive-container-close { right: calc(-1 * var(--wp--custom--navigation--toggle-padding)); }
	.sw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; }
	.sw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		gap: 0;
		align-items: stretch;
		width: 100%;
		margin-top: var(--wp--preset--spacing--50);
	}
	.sw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { border-top: var(--wp--custom--line--hair); }
	.sw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:last-child { border-bottom: var(--wp--custom--line--hair); }
	.sw-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		display: block;
		padding-block: 0.9rem;
		font-family: var(--wp--preset--font-family--serif);
		font-size: 2rem;
		font-weight: 600;
		line-height: 1.15;
		letter-spacing: 0;
	}
}

/* ---- 19. Print: the page as paper ------------------------------------------- */

@media print {
	html, body { background: #fff; }
	.sw-header, .sw-hero, .sw-titleband, .sw-people-section, .sw-footer,
	.sw-promises, .sw-contact-section, .sw-location__caption {
		background: none !important;
		color: #000 !important;
	}
	.sw-header, .sw-hero, .sw-titleband, .sw-people-section, .sw-footer, .sw-promises, .sw-contact-section {
		--sw-fg: #000; --sw-fg-soft: #333; --sw-heading: #000; --sw-label: #000; --sw-link: #000;
	}
	.sw-titleband h1, .sw-titleband .wp-block-post-title, .sw-hero__title, .sw-hero__title em, h1, h2, h3 { color: #000 !important; }
	.sw-nav, .sw-rule, .wp-block-buttons, .sw-hero__more, .sw-section__more, .sw-map-consent, .sw-location__note, .skip-link { display: none !important; }
	.sw-wordmark { color: #000 !important; }
	.sw-person__figure { background: none; box-shadow: none; }
	.sw-person__figure::after { display: none; }
	.sw-prose a[href^="http"]:not(.sw-location__link)::after { content: " (" attr(href) ")"; font-size: 0.85em; word-break: break-all; }
	.sw-section { padding-block: 1.5rem; }
}

/* ---- 20. Editor only ------------------------------------------------------------ */

.editor-styles-wrapper .sw-hero,
.editor-styles-wrapper .sw-titleband { padding-top: 3rem; }

/* ---- Editable price list: open categories, readable service/price pairs ----- */
.sw-pricing,
.sw-prose > .wp-block-post-content > .sw-pricing { margin-block: var(--wp--preset--spacing--70); }
.sw-price-category__rows, .sw-price-row__service { min-width: 0; }
.sw-pricing__target + .sw-pricing__target { margin-top: var(--wp--preset--spacing--70); }
.sw-price-category { border-top: var(--sw-line-strong); padding-top: var(--wp--preset--spacing--40); }
.sw-price-category .sw-price-category__title {
	font-size: var(--wp--preset--font-size--x-large);
	margin: 0 0 var(--wp--preset--spacing--20);
	text-wrap: balance;
}
.sw-price-category .sw-price-category__description {
	margin: 0 0 var(--wp--preset--spacing--50);
	max-width: var(--wp--custom--measure--prose);
	color: var(--sw-fg-soft);
}
.sw-price-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--wp--custom--pricing--price-width);
	gap: var(--wp--preset--spacing--50);
	padding-block: var(--wp--preset--spacing--40);
	border-top: var(--sw-line);
}
.sw-price-row .sw-price-row__title,
.sw-price-row .sw-price-row__price {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	line-height: 1.4;
	margin: 0;
}
.sw-price-row .sw-price-row__title { font-family: var(--wp--preset--font-family--sans); }
.sw-price-row .sw-price-row__description {
	font-size: var(--wp--preset--font-size--small);
	color: var(--sw-fg-soft);
	line-height: 1.55;
	margin: var(--wp--preset--spacing--10) 0 0;
}
.sw-price-row .sw-price-row__price {
	text-align: right;
	hyphens: none;
	font-variant-numeric: tabular-nums;
}
@media (min-width: 64.0625rem) {
	.sw-pricing:not(.sw-pricing--editor) .sw-price-category {
		display: grid;
		grid-template-columns: minmax(15rem, 0.72fr) minmax(0, 1.8fr);
		grid-template-rows: auto 1fr;
		column-gap: var(--wp--custom--services--column-gap);
	}
	.sw-pricing:not(.sw-pricing--editor) .sw-price-category__title {
		grid-column: 1;
		grid-row: 1;
		font-size: var(--wp--custom--services--heading-size);
		line-height: 1.1;
		text-wrap: pretty;
	}
	.sw-pricing:not(.sw-pricing--editor) .sw-price-category__description { grid-column: 1; grid-row: 2; margin-bottom: 0; }
	.sw-pricing:not(.sw-pricing--editor) .sw-price-category__rows { grid-column: 2; grid-row: 1 / span 2; }
	.sw-pricing:not(.sw-pricing--editor) .sw-price-row:first-child { border-top: 0; padding-top: 0; }
}
.sw-pricing--editor { display: block; }
.sw-pricing--editor > .sw-price-category + .sw-price-category { margin-top: var(--wp--preset--spacing--60); }
@media (max-width: 781px) {
	.sw-price-row { grid-template-columns: minmax(0, 1fr); gap: var(--wp--preset--spacing--20); }
	.sw-price-row .sw-price-row__price { text-align: left; }
}
@media print {
	.sw-price-row { break-inside: avoid; }
}

/* An editable paragraph style distinguishes credentials from biography prose. */
p.is-style-swlaki-credentials {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--lead);
	font-weight: 600;
	font-style: italic;
	line-height: 1.5;
	color: var(--sw-heading);
	border-left: var(--sw-line-strong);
	padding-left: var(--wp--preset--spacing--30);
	margin: 0 0 var(--wp--preset--spacing--50);
}

/* ---- 21. Task navigation and readable contact actions --------------------- */
.sw-jumpnav { margin-block: var(--wp--preset--spacing--40); }
.sw-jumpnav p { font-family: var(--wp--preset--font-family--serif); font-style: italic; color: var(--sw-label); }
.sw-jumpnav__links { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--40); }
.sw-jumpnav__links a, .sw-service-actions a,
.sw-footer__nav .wp-block-navigation-item__content, .sw-footer__legal a,
.sw-location__link, .sw-person__contact a {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    min-height: var(--wp--custom--usability--target);
    min-width: var(--wp--custom--usability--target);
    padding-block: var(--wp--preset--spacing--10);
    overflow-wrap: anywhere;
}
/* All content anchors share the same breathing room at every viewport size. */
.sw-prose :is(h2, h3, h4, h5, h6)[id],
.sw-jumpnav[id], .sw-person[id], .sw-pricing__target,
.sw-services__group[id] { scroll-margin-top: var(--wp--custom--usability--anchor-offset); }
.sw-jumpnav__links a { max-width: 100%; }
@media (max-width: 781px) {
    .sw-services__group:not(:last-child) { margin-bottom: var(--wp--preset--spacing--50); }
    .sw-services__list > .sw-services__item:last-child {
        padding-bottom: var(--wp--preset--spacing--10);
        margin-bottom: 0;
    }
    .sw-services__list > .sw-services__item:last-child > p { margin-bottom: 0; }
}
/* Below WordPress's toolbar breakpoint it scrolls away, so reserve no space for it. */
@media screen and (max-width: 600px) {
    html:has(.admin-bar) { scroll-padding-top: 0; }
}
.sw-jumpnav--contents .sw-jumpnav__links { display: grid; gap: 0; }
/* Navigation stays light, with color and focus indicating interactive links. */
:root .wp-site-blocks .sw-jumpnav--contents a {
    background-image: none;
    text-decoration-line: none;
}
.sw-service-actions { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30); margin-top: var(--wp--preset--spacing--30); }
.sw-hero__note { margin-top: var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--medium); color: var(--sw-fg-soft); }
.sw-hero__note + .sw-hero__actions { margin-top: var(--wp--preset--spacing--40); }
.sw-person__contact {
    display: flex;
    flex-wrap: wrap;
    gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--50);
    margin: var(--wp--preset--spacing--40) 0;
}
.sw-person__contact > div { min-width: 0; }
.sw-person__contact dd { margin: 0; }
.sw-person__contact a { margin: 0; max-width: 100%; font-weight: 400; }
@media (max-width: 781px) {
    .sw-person__contact { flex-direction: column; }
}
.sw-price-row__title a { display: inline-block; min-height: var(--wp--custom--usability--target); align-content: center; }
@media print {
    .sw-jumpnav, .sw-service-actions { display: none; }
}
