﻿/* Castella Tresserra — modern professional shell (2026) */

:root {
	--color-teal: #04333a;
	--color-teal-soft: #0a4650;
	--color-gray: #848381;
	--color-charcoal: #2b2e2d;
	--color-cream: #faf8f5;
	--color-cream-2: #f3f0eb;
	--color-white: #ffffff;
	--color-brass: #c4a574;
	--color-line: rgba(4, 51, 58, 0.12);

	--font-serif: "EB Garamond", Garamond, "Times New Roman", serif;
	--font-sans: "Montserrat", system-ui, -apple-system, sans-serif;

	--max: 74rem;
	--header-h: 9rem;
	--header-menu-text-top: 2rem;
	--header-pad-top: 2.25rem;
	--header-pad-top-scrolled: 1.15rem;
	--ease: cubic-bezier(0.22, 1, 0.36, 1);
	/* Symmetric curve for crossfades, where --ease lands too abruptly */
	--ease-soft: cubic-bezier(0.37, 0, 0.63, 1);
	--duration: 0.55s;
}

/* Compact header offset on interior pages (small logo always) */
body:not(.home) {
	--header-h: 5.75rem;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}

	/* Keep explicit override readable; hero disables separately */
}

body {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 1.65;
	color: var(--color-charcoal);
	background: var(--color-cream);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.has-mobile-nav {
	overflow: hidden;
	touch-action: none;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--color-teal);
	text-decoration: none;
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--color-white);
	padding: 0.5rem 1rem;
	z-index: 200;
}

.skip-link:focus {
	left: 0.5rem;
	top: 0.5rem;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
}

/* —— Reveal motion —— */
[data-reveal] {
	opacity: 0;
	transform: translateY(1.1rem);
	transition:
		opacity var(--duration) var(--ease),
		transform var(--duration) var(--ease);
	transition-delay: calc(var(--reveal-delay, 0) * 1ms);
}

[data-reveal].is-visible {
	opacity: 1;
	transform: none;
}

/* —— Header —— */
.site-header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 60;
	width: 100%;
	padding: var(--header-pad-top) 0 1.25rem;
	background: transparent;
	border-bottom: 0;
	box-shadow: none;
	transition:
		background 0.4s var(--ease),
		backdrop-filter 0.4s var(--ease),
		-webkit-backdrop-filter 0.4s var(--ease),
		padding 0.4s var(--ease);
}

.site-header.is-scrolled {
	padding: var(--header-pad-top-scrolled) 0 3.25rem;
	background: transparent;
}

.site-header.is-scrolled::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background: linear-gradient(
		180deg,
		rgba(250, 248, 245, 0.82) 0%,
		rgba(250, 248, 245, 0.58) 48%,
		rgba(250, 248, 245, 0.22) 72%,
		rgba(250, 248, 245, 0) 100%
	);
	backdrop-filter: blur(18px) saturate(1.15);
	-webkit-backdrop-filter: blur(18px) saturate(1.15);
	-webkit-mask-image: linear-gradient(180deg, #000 0%, #000 58%, transparent 100%);
	mask-image: linear-gradient(180deg, #000 0%, #000 58%, transparent 100%);
}

.site-header.is-scrolled::after {
	display: none;
}

.site-header__inner {
	width: min(100% - 2.5rem, var(--max));
	margin-inline: auto;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1.5rem;
}

.site-logo {
	position: relative;
	display: block;
	flex: 0 0 auto;
	width: 17.1875rem;
	height: 8.9rem;
	transition:
		width 0.6s var(--ease),
		height 0.6s var(--ease);
}

.site-logo img {
	position: absolute;
	left: 0;
	top: 50%;
	display: block;
	max-width: none;
	margin: 0;
	transform: translateY(-50%);
	transform-origin: left center;
	will-change: opacity, transform;
}

.site-logo__full {
	width: 17.1875rem;
	height: auto;
	opacity: 1;
	visibility: visible;
	transform: translateY(-50%) scale(1);
	/* Restoring: wait for small to leave, then fade in */
	transition:
		opacity 0.28s var(--ease) 0.18s,
		visibility 0s linear 0.18s,
		transform 0.6s var(--ease);
}

.site-logo__small {
	width: auto;
	height: 2.4rem;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-50%) scale(0.92);
	pointer-events: none;
	/* Restoring: fade out immediately */
	transition:
		opacity 0.22s var(--ease),
		visibility 0s linear 0.22s,
		transform 0.6s var(--ease);
}

.site-header.is-scrolled .site-logo {
	width: 11.5rem;
	height: 2.45rem;
}

.site-header.is-scrolled .site-logo__full {
	opacity: 0;
	visibility: hidden;
	transform: translateY(-50%) scale(0.72);
	pointer-events: none;
	/* Scrolling down: fade out immediately */
	transition:
		opacity 0.22s var(--ease),
		visibility 0s linear 0.22s,
		transform 0.6s var(--ease);
}

.site-header.is-scrolled .site-logo__small {
	opacity: 1;
	visibility: visible;
	transform: translateY(-50%) scale(1);
	pointer-events: auto;
	/* Scrolling down: wait for full to leave, then fade in */
	transition:
		opacity 0.28s var(--ease) 0.18s,
		visibility 0s linear 0.18s,
		transform 0.6s var(--ease);
}

/* Interior pages: compact logo from the start, no swap animation */
body:not(.home) .site-logo,
body:not(.home) .site-logo__full,
body:not(.home) .site-logo__small {
	transition: none;
}

.site-header__nav {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	padding-top: 0;
	margin-top: calc(var(--header-menu-text-top) - 0.5rem - var(--header-pad-top));
	transition: margin-top 0.4s var(--ease);
}

.site-header.is-scrolled .site-header__nav {
	margin-top: calc(var(--header-menu-text-top) - 0.5rem - var(--header-pad-top-scrolled));
}

.site-header__nav-footer {
	display: contents;
}

.nav-scrim {
	display: none;
}

.site-nav__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.15rem 0.15rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-nav__list a {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: 0.5rem 0.7rem;
	font-family: var(--font-sans);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-teal);
	white-space: nowrap;
	opacity: 0.78;
	transition:
		opacity 0.35s var(--ease),
		letter-spacing 0.35s var(--ease),
		color 0.35s var(--ease),
		transform 0.35s var(--ease);
}

.site-nav__list a::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0.18rem;
	width: calc(100% - 1.4rem);
	height: 1px;
	background: currentColor;
	transform: translateX(-50%) scaleX(0);
	transform-origin: center;
	transition: transform 0.4s var(--ease);
}

.site-nav__list a:hover,
.site-nav__list a:focus-visible,
.site-nav__list .current-menu-item > a,
.site-nav__list .current_page_item > a {
	opacity: 1;
	letter-spacing: 0.14em;
}

.site-nav__list a:hover::before,
.site-nav__list a:focus-visible::before,
.site-nav__list .current-menu-item > a::before,
.site-nav__list .current_page_item > a::before {
	transform: translateX(-50%) scaleX(1);
}

.site-nav__list a:hover,
.site-nav__list a:focus-visible {
	transform: translateY(-1px);
}

.lang-switcher {
	display: flex;
	align-items: center;
	gap: 0.15rem;
	padding: 0.2rem;
	margin-left: 0.15rem;
	border: 1px solid transparent;
	border-radius: 999px;
	background: rgba(4, 51, 58, 0.04);
	font-family: var(--font-sans);
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-teal);
}

.lang-switcher__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2rem;
	padding: 0.35rem 0.55rem;
	border-radius: 999px;
	color: inherit;
	opacity: 0.5;
	transition:
		opacity 0.3s var(--ease),
		background 0.3s var(--ease),
		color 0.3s var(--ease),
		transform 0.3s var(--ease);
}

.lang-switcher__link.is-active,
.lang-switcher a.is-active {
	opacity: 1;
	background: var(--color-teal);
	color: var(--color-cream);
}

.lang-switcher__link:hover:not(.is-active) {
	opacity: 0.9;
	background: rgba(4, 51, 58, 0.08);
	transform: translateY(-1px);
}

.lang-switcher__sep {
	display: none;
}

.nav-toggle {
	display: none;
	position: relative;
	width: 2.6rem;
	height: 2.6rem;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	z-index: 2;
}

.nav-toggle__bar {
	position: absolute;
	left: 0.55rem;
	right: 0.55rem;
	height: 1.5px;
	background: var(--color-teal);
	transition:
		transform 0.4s var(--ease),
		opacity 0.3s var(--ease),
		top 0.4s var(--ease);
}

.nav-toggle__bar:nth-child(2) {
	top: 0.9rem;
}

.nav-toggle__bar:nth-child(3) {
	top: 1.25rem;
}

.nav-toggle__bar:nth-child(4) {
	top: 1.6rem;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(2) {
	top: 1.25rem;
	transform: rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(3) {
	opacity: 0;
	transform: scaleX(0);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(4) {
	top: 1.25rem;
	transform: rotate(-45deg);
}

/* —— Home —— */
.site-main--home {
	padding: 0;
}

.site-main:not(.site-main--home):not(.site-main--contact):not(.site-main--blog):not(.site-main--article):not(.site-main--legal) {
	width: min(100% - 2.5rem, var(--max));
	margin-inline: auto;
	padding-block: 2.75rem 3.75rem;
	min-height: 40vh;
}

/* —— Hero —— */
.hero {
	position: relative;
	isolation: isolate;
	min-height: min(100svh, 54rem);
	display: flex;
	align-items: center;
	overflow: hidden;
	background: var(--color-cream);
}

.hero__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center;
	z-index: 0;
}

.hero__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	/* Same tone as pillars bar (--color-cream #faf8f5) */
	background: linear-gradient(
		90deg,
		var(--color-cream) 0%,
		var(--color-cream) 22%,
		rgba(250, 248, 245, 0.92) 34%,
		rgba(250, 248, 245, 0.55) 48%,
		rgba(250, 248, 245, 0.18) 62%,
		rgba(250, 248, 245, 0) 78%
	);
	pointer-events: none;
}

.hero__content {
	position: relative;
	z-index: 2;
	width: min(100% - 2.5rem, 32rem);
	/* Same left edge as .site-header__inner / logo */
	margin-left: max(1.25rem, calc((100% - var(--max)) / 2));
	margin-right: auto;
	padding-top: calc(var(--header-h) + 3.5rem);
	padding-bottom: 5rem;
}

.hero__eyebrow {
	margin: 0 0 0.85rem;
	font-family: var(--font-sans);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-gray);
}

.hero__title {
	margin: 0 0 1.35rem;
	font-family: var(--font-serif);
	font-weight: 600;
	font-size: clamp(1.65rem, 3.6vw, 2.75rem);
	line-height: 1.12;
	letter-spacing: 0.015em;
	text-transform: uppercase;
	color: var(--color-teal);
	text-wrap: balance;
}

.hero__subtitle {
	margin: 0 0 2rem;
	max-width: 24rem;
	font-family: var(--font-sans);
	font-size: 0.92rem;
	font-weight: 400;
	line-height: 1.65;
	color: var(--color-charcoal);
	opacity: 0.9;
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.85rem 1.1rem;
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.7rem;
	padding: 0.95rem 1.4rem;
	font-family: var(--font-sans);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	border: 1px solid transparent;
	cursor: pointer;
	transition:
		background 0.3s var(--ease),
		color 0.3s var(--ease),
		border-color 0.3s var(--ease),
		transform 0.3s var(--ease);
}

.btn--primary {
	background: var(--color-teal);
	color: var(--color-white);
	border-color: var(--color-teal);
}

.btn--primary:hover,
.btn--primary:focus-visible {
	background: var(--color-teal-soft);
	border-color: var(--color-teal-soft);
	color: var(--color-white);
	transform: translateY(-1px);
}

.btn--ghost {
	background: transparent;
	color: var(--color-teal);
	border-color: rgba(4, 51, 58, 0.28);
	padding-inline: 1.15rem;
}

.btn--ghost:hover,
.btn--ghost:focus-visible {
	border-color: var(--color-teal);
	background: rgba(250, 248, 245, 0.45);
	transform: translateY(-1px);
}

.btn__arrow {
	display: inline-flex;
	transition: transform 0.3s var(--ease);
}

.btn--primary:hover .btn__arrow,
.btn--primary:focus-visible .btn__arrow {
	transform: translateX(3px);
}

/* —— Pillars (icon left + copy right) —— */
.pillars {
	position: relative;
	background: var(--color-cream);
	border-block: 1px solid var(--color-line);
}

.pillars__inner {
	width: min(100% - 1.5rem, var(--max));
	margin-inline: auto;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.pillar {
	position: relative;
	display: flex;
	align-items: center;
	gap: 1.1rem;
	padding: 2rem 1.35rem;
	text-align: left;
	transition:
		background 0.35s var(--ease),
		transform 0.35s var(--ease);
}

.pillar:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 22%;
	right: 0;
	width: 1px;
	height: 56%;
	background: rgba(132, 131, 129, 0.35);
}

.pillar:hover {
	background: rgba(243, 240, 235, 0.55);
	transform: translateY(-2px);
}

.pillar__icon {
	flex: 0 0 auto;
	width: 5.625rem;
	height: 5.625rem;
	object-fit: contain;
	transition: transform 0.4s var(--ease);
}

.pillar:hover .pillar__icon {
	transform: scale(1.06);
}

.pillar__body {
	min-width: 0;
	flex: 1 1 auto;
}

.pillar__title {
	margin: 0 0 0.35rem;
	font-family: var(--font-sans);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--color-charcoal);
	line-height: 1.25;
}

.pillar__text {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 0.78rem;
	font-weight: 400;
	line-height: 1.45;
	color: var(--color-gray);
}

/* —— Services index —— */
.services-index {
	position: relative;
	background: var(--color-teal);
	color: var(--color-cream);
	padding: clamp(3.25rem, 5.5vw, 4.5rem) 0;
}

.services-index__inner {
	position: relative;
	z-index: 1;
	width: min(100% - 2.5rem, var(--max));
	margin-inline: auto;
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.25fr);
	gap: 2.5rem 4rem;
	align-items: start;
}

.services-index__header {
	display: block;
	margin: 0;
	padding: 0.35rem 0 0;
	border-bottom: 0;
}

.services-index__label {
	margin: 0 0 0.85rem;
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(250, 248, 245, 0.5);
}

.services-index__title {
	margin: 0 0 0.9rem;
	font-family: var(--font-serif);
	font-size: clamp(1.45rem, 2.3vw, 1.95rem);
	font-weight: 550;
	line-height: 1.22;
	letter-spacing: 0.01em;
	color: var(--color-cream);
	text-wrap: balance;
}

.services-index__lead {
	margin: 0;
	max-width: 24rem;
	font-family: var(--font-sans);
	font-size: 0.92rem;
	line-height: 1.65;
	color: rgba(250, 248, 245, 0.58);
}

.services-index__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.services-index__item {
	border-bottom: 1px solid rgba(250, 248, 245, 0.12);
}

.services-index__item:first-child {
	border-top: 1px solid rgba(250, 248, 245, 0.12);
}

.services-index__link {
	position: relative;
	display: grid;
	grid-template-columns: 2.5rem minmax(0, 1fr) auto;
	gap: 0.65rem 1rem;
	align-items: center;
	padding: 1.05rem 0.15rem;
	color: var(--color-cream);
	overflow: hidden;
	transition: background 0.35s var(--ease);
}

.services-index__link::before {
	display: none;
}

.services-index__link:hover,
.services-index__link:focus-visible {
	opacity: 1;
	background: rgba(250, 248, 245, 0.04);
	padding-left: 0.15rem;
}

.services-index__num {
	font-family: var(--font-serif);
	font-size: 0.85rem;
	font-weight: 550;
	letter-spacing: 0.06em;
	color: rgba(250, 248, 245, 0.38);
	transition: color 0.3s var(--ease);
}

.services-index__link:hover .services-index__num,
.services-index__link:focus-visible .services-index__num {
	color: rgba(250, 248, 245, 0.7);
	transform: none;
}

.services-index__main {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	min-width: 0;
}

.services-index__name {
	margin: 0;
	font-family: var(--font-serif);
	font-size: clamp(1.35rem, 2vw, 1.7rem);
	font-weight: 550;
	line-height: 1.15;
	letter-spacing: 0.02em;
	text-transform: none;
	transition: transform 0.3s var(--ease);
}

.services-index__link:hover .services-index__name,
.services-index__link:focus-visible .services-index__name {
	transform: translateX(3px);
	letter-spacing: 0.02em;
}

.services-index__blurb {
	max-width: 26rem;
	font-family: var(--font-sans);
	font-size: 0.82rem;
	line-height: 1.5;
	color: rgba(250, 248, 245, 0.48);
	opacity: 1;
	transform: none;
	transition: color 0.3s var(--ease);
}

.services-index__link:hover .services-index__blurb,
.services-index__link:focus-visible .services-index__blurb {
	color: rgba(250, 248, 245, 0.7);
	opacity: 1;
	transform: none;
}

.services-index__meta {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	justify-self: end;
	width: auto;
}

.services-index__icon {
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	color: rgba(250, 248, 245, 0.5);
	border: 1px solid rgba(250, 248, 245, 0.14);
	opacity: 0.75;
	transition:
		opacity 0.3s var(--ease),
		color 0.3s var(--ease),
		border-color 0.3s var(--ease);
}

.services-index__icon .icon-svg {
	width: 1rem;
	height: 1rem;
}

.services-index__link:hover .services-index__icon,
.services-index__link:focus-visible .services-index__icon {
	opacity: 1;
	color: var(--color-cream);
	border-color: rgba(250, 248, 245, 0.32);
	transform: none;
}

.services-index__rule {
	display: none;
}

.services-index__go {
	font-size: 1rem;
	line-height: 1;
	opacity: 0.35;
	transition: opacity 0.3s var(--ease), transform 0.3s var(--ease);
}

.services-index__link:hover .services-index__go,
.services-index__link:focus-visible .services-index__go {
	opacity: 0.85;
	transform: translateX(3px);
}

/* —— Homepage content blocks —— */
.home-section {
	position: relative;
	padding: clamp(4.5rem, 8vw, 7rem) 0;
	background: var(--color-cream);
	overflow: clip;
}

.home-section__inner {
	width: min(100% - 2.5rem, var(--max));
	margin-inline: auto;
}

.section-label {
	margin: 0 0 1rem;
	font-family: var(--font-sans);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-gray);
}

.section-label span {
	display: inline-block;
	position: relative;
	padding-left: 2.25rem;
}

.section-label span::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 1.5rem;
	height: 1px;
	background: var(--color-teal);
	transform: scaleX(0.55);
	transform-origin: left center;
	transition: transform 0.55s var(--ease);
}

[data-reveal].is-visible .section-label span::before,
.home-cta .section-label span::before {
	transform: scaleX(1);
}

.section-label--on-dark {
	color: rgba(250, 248, 245, 0.55);
}

.section-label--on-dark span::before {
	background: rgba(250, 248, 245, 0.55);
}

.section-title {
	margin: 0;
	font-family: var(--font-serif);
	font-size: clamp(1.95rem, 3.4vw, 2.85rem);
	font-weight: 600;
	line-height: 1.12;
	letter-spacing: 0.01em;
	color: var(--color-teal);
	text-wrap: balance;
}

.section-lead {
	margin: 1.35rem 0 0;
	max-width: 34rem;
	font-family: var(--font-sans);
	font-size: 0.98rem;
	line-height: 1.75;
	color: var(--color-gray);
}

.text-link {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin-top: 1.85rem;
	font-family: var(--font-sans);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-teal);
	transition: gap 0.35s var(--ease), transform 0.35s var(--ease);
}

.text-link:hover,
.text-link:focus-visible {
	gap: 0.9rem;
	transform: translateX(2px);
}

.home-about {
	border-top: 1px solid var(--color-line);
	background:
		linear-gradient(105deg, transparent 42%, rgba(4, 51, 58, 0.035) 42%, rgba(4, 51, 58, 0.035) 100%);
}

.home-about__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	grid-template-rows: auto minmax(0, 1fr);
	column-gap: 4.5rem;
	row-gap: 0;
	align-items: stretch;
}

.home-about__label {
	grid-column: 1;
	grid-row: 1;
	margin-bottom: 1.1rem;
}

.home-about__copy {
	grid-column: 1;
	grid-row: 2;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

.home-about__rule {
	width: 4.5rem;
	height: 2px;
	margin: 1.35rem 0 1.6rem;
	background: var(--color-teal);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.7s var(--ease) 0.15s;
}

[data-reveal].is-visible .home-about__rule {
	transform: scaleX(1);
}

.home-about__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

.home-about__body p {
	margin: 0 0 1.15rem;
	font-family: var(--font-sans);
	font-size: 1.02rem;
	line-height: 1.8;
	color: var(--color-charcoal);
}

.home-about__body .text-link {
	margin-top: 0.5rem;
	align-self: flex-start;
}

.home-about__visual {
	position: relative;
	grid-column: 2;
	grid-row: 2;
	align-self: start;
	margin: 0;
	padding: 0;
	width: 100%;
}

.home-about__accent {
	position: absolute;
	z-index: 0;
	top: 0.7rem;
	right: -0.7rem;
	bottom: -0.7rem;
	left: 0.7rem;
	background: var(--color-teal);
}

.home-about__media {
	position: relative;
	z-index: 1;
	overflow: hidden;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: var(--color-teal-soft);
}

.home-about__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 42%;
	display: block;
}

.home-approach {
	padding: 0;
	background: transparent;
	border: none;
	overflow: visible;
}

.approach-services {
	padding: clamp(4rem, 7vw, 6.5rem) 0 clamp(3.5rem, 6vw, 5rem);
	background: #fff;
	border-top: 1px solid rgba(4, 51, 58, 0.1);
	overflow: visible;
}

.approach-services__header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1rem;
	width: 100%;
	max-width: none;
	margin-bottom: clamp(2rem, 4vw, 2.75rem);
}

.approach-services__title {
	margin: 0;
	max-width: 36rem;
	font-family: var(--font-serif);
	font-size: clamp(2rem, 3.2vw, 2.85rem);
	font-weight: 500;
	line-height: 1.12;
	color: var(--color-teal);
	letter-spacing: 0.01em;
}

.approach-services__lead {
	margin: 0;
	width: 60%;
	max-width: none;
	font-size: 1rem;
	line-height: 1.65;
	color: rgba(43, 46, 45, 0.78);
}


.approach-services .section-label--brass {
	color: var(--color-brass);
}

.approach-services .section-label--brass span::before {
	background: var(--color-brass);
}

.approach-grid-wrap {
	margin-inline: calc(-1 * max(0px, (100vw - var(--max)) / 2));
	padding-inline: max(0.5rem, calc((100vw - var(--max)) / 2 + 0.5rem));
}

.approach-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 0.5rem;
}

.approach-panel,
.approach-step {
	aspect-ratio: 4 / 5;
	min-width: 0;
}

.approach-panel {
	position: relative;
	overflow: hidden;
	cursor: default;
}

.approach-panel__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 42%;
	z-index: 0;
	transition:
		transform 0.55s var(--ease),
		filter 0.45s var(--ease);
}

.approach-panel--tone-teal {
	--panel-shade-rest: linear-gradient(180deg, rgba(4, 51, 58, 0.04) 0%, rgba(4, 51, 58, 0.2) 52%, rgba(4, 51, 58, 0.58) 100%);
	--panel-shade-hover: rgba(4, 51, 58, 0.88);
}

.approach-panel--tone-teal-soft {
	--panel-shade-rest: linear-gradient(180deg, rgba(10, 70, 80, 0.04) 0%, rgba(10, 70, 80, 0.2) 52%, rgba(10, 70, 80, 0.58) 100%);
	--panel-shade-hover: rgba(10, 70, 80, 0.88);
}

.approach-panel--tone-brass {
	--panel-shade-rest: linear-gradient(180deg, rgba(118, 94, 62, 0.06) 0%, rgba(118, 94, 62, 0.24) 52%, rgba(92, 72, 48, 0.6) 100%);
	--panel-shade-hover: rgba(118, 94, 62, 0.88);
}

.approach-panel--tone-charcoal {
	--panel-shade-rest: linear-gradient(180deg, rgba(43, 46, 45, 0.04) 0%, rgba(43, 46, 45, 0.2) 52%, rgba(43, 46, 45, 0.58) 100%);
	--panel-shade-hover: rgba(43, 46, 45, 0.88);
}

.approach-panel--tone-stone {
	--panel-shade-rest: linear-gradient(180deg, rgba(96, 92, 86, 0.06) 0%, rgba(96, 92, 86, 0.22) 52%, rgba(78, 74, 70, 0.58) 100%);
	--panel-shade-hover: rgba(96, 92, 86, 0.88);
}

.approach-panel--tone-pine {
	--panel-shade-rest: linear-gradient(180deg, rgba(8, 58, 54, 0.04) 0%, rgba(8, 58, 54, 0.2) 52%, rgba(8, 58, 54, 0.58) 100%);
	--panel-shade-hover: rgba(8, 58, 54, 0.88);
}

.approach-panel--tone-bronze {
	--panel-shade-rest: linear-gradient(180deg, rgba(82, 66, 50, 0.06) 0%, rgba(82, 66, 50, 0.24) 52%, rgba(68, 54, 40, 0.6) 100%);
	--panel-shade-hover: rgba(82, 66, 50, 0.88);
}

.approach-panel--tone-teal .approach-panel__img {
	filter: saturate(0.92) contrast(1.02);
}

.approach-panel--tone-teal-soft .approach-panel__img {
	filter: saturate(0.9) contrast(1.02);
}

.approach-panel--tone-brass .approach-panel__img {
	filter: saturate(0.88) sepia(0.14) contrast(1.03);
}

.approach-panel--tone-charcoal .approach-panel__img {
	filter: saturate(0.86) contrast(1.04);
}

.approach-panel--tone-stone .approach-panel__img {
	filter: saturate(0.84) contrast(1.02) brightness(1.02);
}

.approach-panel--tone-pine .approach-panel__img {
	filter: saturate(0.9) hue-rotate(-6deg) contrast(1.02);
}

.approach-panel--tone-bronze .approach-panel__img {
	filter: saturate(0.87) sepia(0.1) contrast(1.03);
}

.approach-panel__shade {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: var(--panel-shade-rest, linear-gradient(180deg, rgba(4, 51, 58, 0.06) 0%, rgba(4, 51, 58, 0.42) 100%));
	transition: background 0.35s var(--ease);
}

.approach-panel__content {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 0.45rem;
	padding: 1rem 1.05rem 1.05rem;
}

.approach-panel__title {
	margin: 0;
	flex-shrink: 0;
	order: 2;
	margin-top: auto;
	font-family: var(--font-serif);
	font-size: clamp(0.92rem, 1.15vw, 1.18rem);
	font-weight: 500;
	line-height: 1.25;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	text-shadow: 0 1px 2px rgba(4, 51, 58, 0.42), 0 2px 10px rgba(4, 51, 58, 0.28);
}

.approach-panel__title::after {
	content: "";
	display: block;
	width: 0;
	height: 2px;
	margin-top: 0.4rem;
	background: var(--color-brass);
	transition: width 0.4s var(--ease);
}

.approach-panel__text {
	margin: 0;
	flex: 0 1 auto;
	order: 1;
	align-self: stretch;
	min-height: 0;
	max-height: 0;
	overflow: hidden;
	font-size: clamp(0.68rem, 0.82vw, 0.78rem);
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.94);
	opacity: 0;
	transition:
		opacity 0.35s var(--ease),
		max-height 0.45s var(--ease);
}

.approach-panel:hover .approach-panel__img,
.approach-panel:focus-within .approach-panel__img {
	transform: scale(1.04);
}

.approach-panel:hover .approach-panel__shade,
.approach-panel:focus-within .approach-panel__shade {
	background: var(--panel-shade-hover, rgba(4, 51, 58, 0.88));
}

.approach-panel:hover .approach-panel__title,
.approach-panel:focus-within .approach-panel__title {
	text-shadow: none;
}

.approach-panel:hover .approach-panel__title::after,
.approach-panel:focus-within .approach-panel__title::after {
	width: 2.25rem;
}

.approach-panel:hover .approach-panel__text,
.approach-panel:focus-within .approach-panel__text {
	max-height: calc(100% - 4.25rem);
	opacity: 1;
}

.approach-step {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 1.2rem 1.15rem;
	background: var(--color-cream-2);
	border: 1px solid rgba(4, 51, 58, 0.08);
	border-bottom: 3px solid var(--color-brass);
}

.approach-step__icon {
	flex: 0 0 auto;
	width: clamp(3.35rem, 4.5vw, 4.65rem);
	height: clamp(3.35rem, 4.5vw, 4.65rem);
	object-fit: contain;
}

.approach-step__content {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	margin-top: auto;
}

.approach-step__title {
	margin: 0;
	font-family: var(--font-serif);
	font-size: clamp(1.05rem, 1.35vw, 1.4rem);
	font-weight: 500;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--color-teal);
}

.approach-step__text {
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.55;
	color: rgba(4, 51, 58, 0.76);
}

@media (max-width: 1024px) {
	.approach-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.approach-grid-wrap {
		margin-inline: 0;
		padding-inline: 0;
	}

	.approach-grid {
		grid-template-columns: 1fr;
		gap: 0.85rem;
		overflow: visible;
	}

	.approach-panel,
	.approach-step {
		width: auto;
		min-width: 0;
		aspect-ratio: auto;
	}

	/* Stacked editorial cards — full text, solid contrast (not photo overlay) */
	.approach-panel {
		display: flex;
		flex-direction: column;
		overflow: hidden;
		border: 1px solid rgba(4, 51, 58, 0.1);
		background: var(--color-teal);
	}

	.approach-panel__img {
		position: relative;
		inset: auto;
		flex: 0 0 auto;
		width: 100%;
		height: clamp(10.5rem, 38vw, 13.5rem);
		object-position: center 40%;
	}

	.approach-panel__shade {
		display: none;
	}

	.approach-panel:hover .approach-panel__img,
	.approach-panel:focus-within .approach-panel__img {
		transform: none;
	}

	.approach-panel:hover .approach-panel__text,
	.approach-panel:focus-within .approach-panel__text {
		max-height: none;
		opacity: 1;
	}

	.approach-panel__content {
		position: relative;
		inset: auto;
		flex: 1 1 auto;
		justify-content: flex-start;
		gap: 0.65rem;
		padding: 1.15rem 1.2rem 1.25rem;
		background: var(--color-teal);
	}

	.approach-panel--tone-teal .approach-panel__content {
		background: var(--color-teal);
	}

	.approach-panel--tone-teal-soft .approach-panel__content {
		background: var(--color-teal-soft);
	}

	.approach-panel--tone-brass .approach-panel__content {
		background: #5c4830;
	}

	.approach-panel--tone-bronze .approach-panel__content {
		background: #4a3a2a;
	}

	.approach-panel--tone-charcoal .approach-panel__content {
		background: var(--color-charcoal);
	}

	.approach-panel--tone-stone .approach-panel__content {
		background: #5a5650;
	}

	.approach-panel--tone-pine .approach-panel__content {
		background: #0a3a36;
	}

	.approach-panel__title {
		order: 1;
		margin-top: 0;
		font-size: 1.08rem;
		line-height: 1.28;
		text-shadow: none;
		color: var(--color-cream);
	}

	.approach-panel__title::after {
		width: 2rem;
		margin-top: 0.55rem;
	}

	.approach-panel__text {
		order: 2;
		max-height: none;
		overflow: visible;
		opacity: 1;
		font-size: 0.9rem;
		line-height: 1.62;
		color: rgba(250, 248, 245, 0.9);
	}

	.approach-step {
		padding: 1.25rem 1.15rem 1.35rem;
		border: 1px solid rgba(4, 51, 58, 0.1);
	}

	.approach-step__title {
		font-size: 1.1rem;
	}

	.approach-step__text {
		font-size: 0.9rem;
		line-height: 1.6;
		color: rgba(4, 51, 58, 0.82);
	}

	.approach-services__lead {
		width: 100%;
	}
}

@media (hover: none) and (min-width: 641px) {
	.approach-panel__shade {
		background: linear-gradient(180deg, transparent 18%, rgba(4, 51, 58, 0.9) 100%);
	}

	.approach-panel__title::after {
		width: 1.75rem;
	}

	.approach-panel__text {
		max-height: calc(100% - 4.25rem);
		overflow: hidden;
		opacity: 1;
		font-size: 0.72rem;
		line-height: 1.42;
	}
}

@media (prefers-reduced-motion: reduce) {
	.approach-panel__img,
	.approach-panel__shade,
	.approach-panel__text,
	.approach-panel__title::after {
		transition: none;
	}

	.approach-panel:hover .approach-panel__img {
		transform: none;
	}
}

.home-insights {
	background: var(--color-cream);
}

.home-insights__header {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: 2.5rem;
}

.home-insights__header .text-link {
	margin-top: 0;
}

.insights-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.15rem;
}

.insight {
	min-height: 100%;
}

.insight__hit {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid rgba(4, 51, 58, 0.08);
	overflow: hidden;
	transition:
		transform 0.4s var(--ease),
		border-color 0.4s var(--ease),
		background 0.4s var(--ease),
		box-shadow 0.4s var(--ease);
}

.insight__hit:hover,
.insight__hit:focus-visible {
	transform: translateY(-6px);
	border-color: rgba(4, 51, 58, 0.2);
	background: #fff;
	box-shadow: 0 18px 40px rgba(4, 51, 58, 0.07);
	opacity: 1;
}

.insight__visual {
	position: relative;
	height: 7.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background:
		radial-gradient(circle at 30% 40%, rgba(250, 248, 245, 0.18), transparent 55%),
		linear-gradient(135deg, #0a4650, #04333a 55%, #03262c);
	overflow: hidden;
}

.insight__visual--fiscal {
	background:
		radial-gradient(circle at 70% 30%, rgba(250, 248, 245, 0.12), transparent 50%),
		linear-gradient(135deg, #0c5360, #04333a);
}

.insight__visual--labor {
	background:
		radial-gradient(circle at 20% 70%, rgba(250, 248, 245, 0.12), transparent 50%),
		linear-gradient(150deg, #0a4650, #032a30 70%);
}

.insight__visual--legal {
	background:
		radial-gradient(circle at 80% 60%, rgba(250, 248, 245, 0.1), transparent 45%),
		linear-gradient(160deg, #074049, #04333a 60%, #021c20);
}

.insight__visual--finance {
	background:
		radial-gradient(circle at 25% 30%, rgba(250, 248, 245, 0.14), transparent 52%),
		linear-gradient(125deg, #0d5b64, #04333a 65%);
}

.insight__visual--wealth {
	background:
		radial-gradient(circle at 78% 32%, rgba(176, 141, 87, 0.34), transparent 55%),
		linear-gradient(140deg, #0a4650, #04333a 70%);
}

.insight__visual--growth {
	background:
		radial-gradient(circle at 30% 75%, rgba(176, 141, 87, 0.22), transparent 50%),
		linear-gradient(120deg, #0b5058, #04333a 60%, #032a30);
}

.insight__visual-icon {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 3.25rem;
	height: 3.25rem;
	border: 1px solid rgba(250, 248, 245, 0.28);
	color: var(--color-cream);
	background: rgba(250, 248, 245, 0.06);
	transition: transform 0.4s var(--ease), background 0.4s var(--ease);
}

.insight__hit:hover .insight__visual-icon {
	transform: scale(1.08);
	background: rgba(250, 248, 245, 0.12);
}

.insight__visual-mark {
	position: absolute;
	width: 14rem;
	height: 14rem;
	border: 1px solid rgba(250, 248, 245, 0.08);
	border-radius: 50%;
	right: -4rem;
	top: -6rem;
	pointer-events: none;
}

.insight__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 1.35rem 1.35rem 1.4rem;
}

.insight__meta {
	margin: 0 0 0.85rem;
	font-family: var(--font-sans);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-gray);
}

.insight__title {
	margin: 0 0 0.75rem;
	font-family: var(--font-serif);
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.25;
	color: var(--color-teal);
}

.insight__excerpt {
	margin: 0 0 1.2rem;
	flex: 1;
	font-family: var(--font-sans);
	font-size: 0.9rem;
	line-height: 1.65;
	color: var(--color-gray);
}

.insight__more {
	margin-top: auto;
	font-family: var(--font-sans);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-teal);
	opacity: 0.55;
	transition: opacity 0.35s var(--ease), transform 0.35s var(--ease);
}

.insight__hit:hover .insight__more,
.insight__hit:focus-visible .insight__more {
	opacity: 1;
	transform: translateX(4px);
}

.home-cta {
	position: relative;
	background: var(--color-teal);
	padding: clamp(4.5rem, 8vw, 6.5rem) 0;
}

.home-cta__inner {
	position: relative;
	z-index: 1;
	width: min(100% - 2.5rem, 40rem);
	margin-inline: auto;
	text-align: center;
}

.home-cta__title {
	margin: 0 0 1.15rem;
	font-family: var(--font-serif);
	font-size: clamp(2rem, 3.5vw, 3rem);
	font-weight: 600;
	line-height: 1.12;
	color: var(--color-cream);
	text-wrap: balance;
}

.home-cta__text {
	margin: 0 auto 2rem;
	max-width: 32rem;
	font-family: var(--font-sans);
	font-size: 0.98rem;
	line-height: 1.75;
	color: rgba(250, 248, 245, 0.7);
}

.btn--on-dark {
	background: var(--color-cream);
	color: var(--color-teal);
	border-color: var(--color-cream);
}

.btn--on-dark:hover,
.btn--on-dark:focus-visible {
	background: #fff;
	border-color: #fff;
	color: var(--color-teal);
	transform: translateY(-2px);
}

/* —— Inner pages —— */
.entry__title {
	margin-top: 0;
	font-family: var(--font-serif);
	font-weight: 600;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	line-height: 1.2;
	color: var(--color-teal);
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.entry__content {
	font-family: var(--font-sans);
	color: var(--color-charcoal);
}

/* —— Legal / privacy page —— */
.site-main--legal {
	padding: 0;
	width: 100%;
	max-width: none;
	margin: 0;
}

.legal-page {
	padding: 0 0 clamp(3.5rem, 7vw, 5rem);
	background: var(--color-cream);
}

.legal-page__inner {
	width: min(100% - 2.5rem, var(--max));
	margin-inline: auto;
}

.legal-doc__section + .legal-doc__section {
	margin-top: clamp(2.75rem, 5vw, 3.75rem);
	padding-top: clamp(2.25rem, 4vw, 3rem);
	border-top: 1px solid rgba(4, 51, 58, 0.12);
}

.legal-doc h2 {
	margin: 0 0 1.15rem;
	font-family: var(--font-serif);
	font-size: clamp(1.35rem, 2.4vw, 1.75rem);
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--color-teal);
}

.legal-doc h3 {
	margin: 1.85rem 0 0.65rem;
	font-family: var(--font-sans);
	font-size: 1.05rem;
	font-weight: 650;
	line-height: 1.35;
	color: var(--color-teal);
}

.legal-doc p,
.legal-doc li {
	margin: 0 0 0.9rem;
	font-size: 0.98rem;
	line-height: 1.8;
	color: rgba(28, 28, 28, 0.88);
}

.legal-doc ul {
	margin: 0 0 1rem;
	padding-left: 1.15rem;
}

.legal-doc li + li {
	margin-top: 0.45rem;
}

.legal-doc__facts {
	list-style: none;
	padding-left: 0;
	margin: 0.35rem 0 1.1rem;
}

.legal-doc__facts li {
	margin-bottom: 0.4rem;
}

.legal-doc a {
	color: var(--color-teal);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.legal-doc a:hover,
.legal-doc a:focus-visible {
	color: var(--color-teal-soft);
}

.contact-form__consent a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

/* —— Elementor page shell —— */
.site-main--elementor {
	padding: 0;
	width: 100%;
	max-width: none;
	margin: 0;
}

.entry--elementor {
	margin: 0;
}

.entry__content--elementor {
	max-width: none;
	padding: 0;
}

/* Elementor editor: show reveal animations immediately */
.elementor-editor-active [data-reveal],
.elementor-editor-preview [data-reveal] {
	opacity: 1 !important;
	transform: none !important;
}

/* —— Hero interior (Elementor landings) —— */
.hero-inner {
	padding: calc(var(--header-h) + 4rem) 0 clamp(2rem, 4vw, 3rem);
	background: transparent;
}

.hero-inner__inner {
	width: min(100% - 2.5rem, var(--max));
	margin-inline: auto;
}

.hero-inner__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(1.75rem, 3vw, 3rem);
	align-items: start;
}

.hero-inner--with-image .hero-inner__grid {
	grid-template-columns: minmax(0, 11fr) minmax(0, 9fr);
}

.hero-inner__title {
	margin: 0;
	max-width: 46rem;
	font-family: var(--font-serif);
	font-weight: 600;
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.12;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--color-teal);
}

.hero-inner__rule {
	width: 3.5rem;
	height: 2px;
	margin: 1rem 0 0.85rem;
	background: var(--color-teal);
}

[data-reveal].is-visible .hero-inner__rule {
	transform: scaleX(1);
}

.hero-inner__lead {
	margin: 0;
	max-width: 34rem;
	font-family: var(--font-serif);
	font-size: clamp(1.08rem, 1.8vw, 1.28rem);
	font-weight: 500;
	line-height: 1.55;
	color: rgba(4, 51, 58, 0.82);
	text-wrap: pretty;
}

.hero-inner__actions {
	margin-top: 1.5rem;
}

.hero-inner__visual {
	position: relative;
	margin: 0;
	padding: 0;
	width: 100%;
	min-width: 0;
	align-self: stretch;
}

.hero-inner__accent {
	position: absolute;
	z-index: 0;
	top: -0.7rem;
	right: -0.7rem;
	bottom: 0.7rem;
	left: 0.7rem;
	background: var(--color-teal);
}

.hero-inner__media {
	position: relative;
	z-index: 1;
	overflow: hidden;
	width: 100%;
	min-height: clamp(13rem, 24vw, 19rem);
	aspect-ratio: 4 / 3;
	background: var(--color-teal-soft);
}

.hero-inner__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

@media (max-width: 900px) {
	.hero-inner--with-image .hero-inner__grid {
		grid-template-columns: 1fr;
	}

	.hero-inner__visual {
		order: -1;
	}
}

/* —— Diagonal surface (blog / article) —— */
.ct-surface-diagonal {
	position: relative;
	isolation: isolate;
	background-color: var(--color-cream);
}

.ct-surface-diagonal::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background: linear-gradient(
		105deg,
		transparent 42%,
		rgba(4, 51, 58, 0.035) 42%,
		rgba(4, 51, 58, 0.035) 100%
	);
	-webkit-mask-image: linear-gradient(
		180deg,
		#000 0%,
		#000 30%,
		rgba(0, 0, 0, 0.65) 50%,
		rgba(0, 0, 0, 0.2) 68%,
		transparent 86%
	);
	mask-image: linear-gradient(
		180deg,
		#000 0%,
		#000 30%,
		rgba(0, 0, 0, 0.65) 50%,
		rgba(0, 0, 0, 0.2) 68%,
		transparent 86%
	);
}

.ct-surface-diagonal > * {
	position: relative;
	z-index: 1;
}

/* —— Blog article —— */
.site-main--article,
.site-main--blog {
	padding: 0;
	width: 100%;
	max-width: none;
	margin: 0;
	background: var(--color-cream);
}

.blog-page {
	min-height: 100%;
}

.article__header,
.blog-archive__header {
	padding: calc(var(--header-h) + 5.5rem) 0 clamp(1.5rem, 3vw, 2rem);
	background: transparent;
}

.article__intro {
	padding: calc(var(--header-h) + 4rem) 0 clamp(2rem, 3.5vw, 3rem);
	background: transparent;
}

.article__intro-inner {
	width: min(100% - 2.5rem, var(--max));
	margin-inline: auto;
}

.article__hero {
	display: grid;
	grid-template-columns: minmax(0, 11fr) minmax(0, 9fr);
	gap: clamp(1.75rem, 3vw, 3rem);
	align-items: start;
}

.article__hero-copy {
	min-width: 0;
	padding-bottom: 0.5rem;
}

.article__lead {
	margin: 1.25rem 0 0;
	max-width: 34rem;
	font-family: var(--font-serif);
	font-size: clamp(1.08rem, 1.8vw, 1.28rem);
	font-weight: 500;
	line-height: 1.55;
	color: rgba(4, 51, 58, 0.82);
	text-wrap: pretty;
}

.article__visual {
	position: relative;
	margin: 0;
	padding: 0;
	width: 100%;
	min-width: 0;
	align-self: stretch;
}

.article__accent {
	position: absolute;
	z-index: 0;
	top: -0.7rem;
	right: -0.7rem;
	bottom: 0.7rem;
	left: 0.7rem;
	background: var(--color-teal);
}

.article__media {
	position: relative;
	z-index: 1;
	overflow: hidden;
	width: 100%;
	height: 100%;
	min-height: clamp(13rem, 24vw, 19rem);
	aspect-ratio: 4 / 3;
	background: var(--color-teal-soft);
}

.article__media img,
.article__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

.article__header-inner,
.blog-archive__inner {
	width: min(100% - 2.5rem, var(--max));
	margin-inline: auto;
}

.article__crumb,
.blog-archive__crumb {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0 0 1.5rem;
	font-family: var(--font-sans);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-gray);
}

.article__crumb a,
.blog-archive__crumb a {
	color: inherit;
	text-decoration: none;
}

.article__crumb a:hover,
.article__crumb a:focus-visible,
.blog-archive__crumb a:hover,
.blog-archive__crumb a:focus-visible {
	color: var(--color-teal);
}

.article__label {
	margin-bottom: 0.85rem;
}

.article__title,
.blog-archive__title {
	margin: 0;
	max-width: 46rem;
	font-family: var(--font-serif);
	font-weight: 600;
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.12;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--color-teal);
}

.article__rule {
	width: 3.5rem;
	height: 2px;
	margin: 1rem 0 0.85rem;
	background: var(--color-teal);
}

.article__meta {
	margin: 0 0 0.15rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem;
	font-family: var(--font-sans);
	font-size: 0.82rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-gray);
}

.article__body {
	padding: 0;
	background: transparent;
}

.article__body > .article__content {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: clamp(2rem, 3vw, 2.75rem) max(1.25rem, calc(50vw - var(--max) / 2));
	background: #fff;
	border-block: 1px solid var(--color-line);
	box-sizing: border-box;
}

.article__content {
	font-family: var(--font-sans);
	font-size: 1.02rem;
	line-height: 1.75;
	color: var(--color-charcoal);
}

.article__content > :first-child {
	margin-top: 0;
}

.article__content h2,
.article__content h3,
.article__content h4 {
	margin: 2rem 0 0.85rem;
	font-family: var(--font-serif);
	font-weight: 600;
	line-height: 1.25;
	color: var(--color-teal);
}

.article__content h2 {
	font-size: clamp(1.45rem, 2.5vw, 1.85rem);
}

.article__content h3 {
	font-size: clamp(1.2rem, 2vw, 1.45rem);
}

.article__content p,
.article__content ul,
.article__content ol,
.article__content blockquote {
	margin: 0 0 1.15rem;
}

.article__content ul,
.article__content ol {
	padding-left: 1.25rem;
}

.article__content blockquote {
	padding: 1.15rem 1.25rem;
	border-left: 3px solid rgba(4, 51, 58, 0.35);
	background: rgba(4, 51, 58, 0.04);
	border-radius: 0 4px 4px 0;
	color: rgba(4, 51, 58, 0.88);
	font-family: var(--font-serif);
	font-size: 1.08rem;
	line-height: 1.6;
}

.article__content figure,
.article__content .wp-block-image {
	margin: 2rem 0;
}

.article__content figure img,
.article__content .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 2px;
}

.article__content figcaption,
.article__content .wp-element-caption {
	margin-top: 0.65rem;
	font-size: 0.82rem;
	line-height: 1.5;
	color: var(--color-gray);
	text-align: left;
}

.article__content .article-highlight {
	margin: 2rem 0;
	padding: 1.35rem 1.5rem;
	border: 1px solid rgba(4, 51, 58, 0.12);
	background: rgba(4, 51, 58, 0.03);
}

.article__content .article-highlight__title {
	margin: 0 0 0.65rem;
	font-family: var(--font-sans);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-teal);
}

.article__content .article-highlight ul {
	margin: 0;
	padding-left: 1.1rem;
}

.article__content .article-highlight li {
	margin-bottom: 0.45rem;
}

.article__content li::marker {
	color: var(--color-teal);
}

.article__related {
	padding: clamp(2rem, 3.5vw, 3rem) 0 clamp(2.5rem, 5vw, 3.5rem);
}

.article__body > .home-cta {
	padding-block: clamp(3.25rem, 6vw, 5rem);
}

.article__body > .home-cta + .article__related {
	padding-top: clamp(2rem, 3.5vw, 2.75rem);
}

.article__related-inner {
	width: min(100% - 2.5rem, var(--max));
	margin-inline: auto;
}

.article__related-header {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: 1.75rem;
}

.article__related-heading {
	min-width: 0;
}

.article__related-back {
	margin-top: 0;
	flex-shrink: 0;
}

.article__related-title {
	margin: 0;
	font-family: var(--font-serif);
	font-size: clamp(1.55rem, 2.8vw, 2rem);
	font-weight: 600;
	line-height: 1.15;
	color: var(--color-teal);
}

.insights-grid--related {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.article__content a {
	color: var(--color-teal);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

.article__content a:hover,
.article__content a:focus-visible {
	color: var(--color-teal-soft);
}

.blog-archive__body {
	padding: clamp(0.5rem, 1.5vw, 1rem) 0 clamp(4rem, 8vw, 6rem);
	background: transparent;
}

.blog-archive__pagination {
	margin-top: 2.5rem;
}

.blog-archive__pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: center;
	font-family: var(--font-sans);
	font-size: 0.85rem;
}

.blog-archive__pagination a,
.blog-archive__pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.25rem;
	min-height: 2.25rem;
	padding: 0.35rem 0.65rem;
	border: 1px solid rgba(4, 51, 58, 0.14);
	color: var(--color-charcoal);
	text-decoration: none;
}

.blog-archive__pagination a:hover,
.blog-archive__pagination a:focus-visible {
	border-color: var(--color-teal);
	color: var(--color-teal);
}

.blog-archive__pagination .current {
	border-color: var(--color-teal);
	background: var(--color-teal);
	color: var(--color-cream);
}

/* —— Contact page —— */
.site-main--contact {
	padding: 0;
	width: 100%;
	max-width: none;
	margin: 0;
	min-height: 0;
	background: var(--color-cream);
}

/* Intro — home-about style (copy + double-frame visual) */
.contact-intro {
	padding: calc(var(--header-h) + 5.5rem) 0 clamp(2.75rem, 5vw, 3.75rem);
	background:
		linear-gradient(105deg, transparent 42%, rgba(4, 51, 58, 0.035) 42%, rgba(4, 51, 58, 0.035) 100%),
		var(--color-cream);
}

.contact-intro__inner {
	width: min(100% - 2.5rem, var(--max));
	margin-inline: auto;
}

.contact-intro__crumb {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0 0 1.75rem;
	font-family: var(--font-sans);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-gray);
}

.contact-intro__crumb a {
	color: inherit;
	text-decoration: none;
}

.contact-intro__crumb a:hover,
.contact-intro__crumb a:focus-visible {
	color: var(--color-teal);
}

.contact-intro__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-rows: auto minmax(0, 1fr);
	column-gap: clamp(2rem, 4vw, 4.5rem);
	row-gap: 0;
	align-items: stretch;
}

.contact-intro__label {
	grid-column: 1;
	grid-row: 1;
	margin-bottom: 1.1rem;
}

.contact-intro__copy {
	grid-column: 1;
	grid-row: 2;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

.contact-intro__title {
	margin: 0;
	font-family: var(--font-serif);
	font-weight: 600;
	font-size: clamp(2.1rem, 4vw, 2.85rem);
	line-height: 1.1;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--color-teal);
}

.contact-intro__rule {
	width: 4.5rem;
	height: 2px;
	margin: 1.35rem 0 1.5rem;
	background: var(--color-teal);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.7s var(--ease) 0.15s;
}

[data-reveal].is-visible .contact-intro__rule {
	transform: scaleX(1);
}

.contact-intro__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	gap: 1.35rem;
}

.contact-intro__lead {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 1.02rem;
	line-height: 1.8;
	color: var(--color-charcoal);
}

.contact-intro__channels {
	display: grid;
	gap: 0;
}

.contact-intro__box {
	display: grid;
	gap: 1.05rem;
	padding: 1.2rem 1.25rem 1.25rem;
	background: #fff;
	border: 1px solid rgba(4, 51, 58, 0.08);
	box-shadow: 0 14px 34px rgba(4, 51, 58, 0.06);
}

.contact-intro__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.35rem;
	padding-top: 0.95rem;
	border-top: 1px solid var(--color-line);
}

.contact-intro__actions .text-link {
	margin-top: 0;
}

.contact-channel {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.9rem;
	align-items: center;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--color-line);
	color: inherit;
	text-decoration: none;
	transition: color 0.2s var(--ease);
}

.contact-channel:first-child {
	padding-top: 0.15rem;
}

.contact-channel:last-of-type {
	border-bottom: 0;
	padding-bottom: 0.15rem;
}

.contact-channel:hover,
.contact-channel:focus-visible {
	color: var(--color-teal);
}

.contact-channel__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: var(--color-teal);
}

.contact-channel__icon svg {
	width: 1.45rem;
	height: 1.45rem;
}

.contact-channel__text {
	display: grid;
	gap: 0.18rem;
	min-width: 0;
}

.contact-channel__label {
	font-family: var(--font-sans);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-gray);
}

.contact-channel__value {
	font-family: var(--font-serif);
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: 0.01em;
	color: var(--color-teal);
	word-break: break-word;
}

.contact-channel__value--mail {
	font-family: var(--font-sans);
	font-size: 0.95rem;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--color-charcoal);
}

.contact-channel:hover .contact-channel__value--mail,
.contact-channel:focus-visible .contact-channel__value--mail {
	color: var(--color-teal);
}

.contact-intro__visual {
	position: relative;
	grid-column: 2;
	grid-row: 2;
	align-self: end;
	justify-self: end;
	margin: 0;
	padding: 0;
	width: min(100%, 21.5rem);
}

.contact-intro__accent {
	position: absolute;
	z-index: 0;
	top: 0.7rem;
	right: -0.7rem;
	bottom: -0.7rem;
	left: 0.7rem;
	background: var(--color-teal);
}

.contact-intro__media {
	position: relative;
	z-index: 1;
	overflow: hidden;
	width: 100%;
	aspect-ratio: 4 / 5;
	max-height: min(34rem, 72vh);
	background: var(--color-teal-soft);
}

.contact-intro__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 50%;
	display: block;
}

/* Offices — teal band for stronger contrast */
.contact-offices {
	padding: clamp(2.25rem, 4.5vw, 3.25rem) 0 clamp(2.5rem, 5vw, 3.5rem);
	background:
		linear-gradient(145deg, var(--color-teal) 0%, var(--color-teal-soft) 55%, #0c5560 100%);
	color: var(--color-cream);
}

.contact-offices__inner {
	width: min(100% - 2.5rem, var(--max));
	margin-inline: auto;
}

.contact-offices__header {
	margin-bottom: 1.25rem;
}

.contact-offices__title {
	margin: 0.45rem 0 0;
	font-family: var(--font-serif);
	font-weight: 600;
	font-size: clamp(1.7rem, 3vw, 2.35rem);
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: #fff;
}

.contact-offices__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	gap: 1.1rem;
}

.contact-card {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	height: 100%;
	padding: 1.1rem 1.15rem 1.05rem;
	background: #fff;
	color: var(--color-charcoal);
	border: 0;
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18);
	transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}

.contact-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 48px rgba(0, 0, 0, 0.22);
}

.contact-card__city {
	margin: 0;
	font-family: var(--font-serif);
	font-size: 1.45rem;
	font-weight: 600;
	line-height: 1.15;
	color: var(--color-teal);
}

.contact-card__info {
	display: flex;
	flex-direction: column;
	background: var(--color-cream);
	border: 1px solid rgba(4, 51, 58, 0.08);
}

.contact-card__place {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 0.65rem 0.75rem;
	align-items: center;
	padding: 0.75rem 0.85rem;
	background: transparent;
	border: 0;
}

.contact-card__place-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.35rem;
	height: 1.35rem;
	color: var(--color-teal);
	flex-shrink: 0;
}

.contact-card__place-icon svg {
	width: 1.35rem;
	height: 1.35rem;
}

.contact-card__place-body {
	min-width: 0;
}

.contact-card__street {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--color-charcoal);
}

.contact-card__postal {
	margin: 0.15rem 0 0;
	font-family: var(--font-sans);
	font-size: 0.78rem;
	line-height: 1.35;
	letter-spacing: 0.02em;
	color: var(--color-gray);
}

.contact-card__hours {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.65rem 0.75rem;
	align-items: start;
	padding: 0.7rem 0.85rem 0.8rem;
	background: transparent;
	border: 0;
	border-top: 1px solid rgba(4, 51, 58, 0.08);
}

.contact-card__hours-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.35rem;
	height: 1.35rem;
	color: var(--color-teal);
	flex-shrink: 0;
}

.contact-card__hours-icon svg {
	width: 1.35rem;
	height: 1.35rem;
}

.contact-card__hours-body {
	min-width: 0;
}

.contact-card__hours-label {
	margin: 0 0 0.5rem;
	font-family: var(--font-sans);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-teal);
}

.contact-card__hours-list {
	margin: 0;
	display: grid;
	gap: 0.45rem;
}

.contact-card__hours-row {
	display: grid;
	grid-template-columns: minmax(6.75rem, 8.5rem) minmax(0, 1fr);
	gap: 0.4rem 0.85rem;
	align-items: baseline;
}

.contact-card__hours-row dt {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1.35;
	color: var(--color-charcoal);
}

.contact-card__hours-row dd {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 0.8rem;
	font-weight: 500;
	line-height: 1.45;
	letter-spacing: 0.01em;
	color: var(--color-charcoal);
	font-variant-numeric: tabular-nums;
	opacity: 0.82;
	text-align: right;
}

.contact-map {
	width: 100%;
	aspect-ratio: 16 / 9;
	min-height: 9.5rem;
	margin-top: auto;
	background: var(--color-cream-2);
	z-index: 0;
	overflow: hidden;
}

.contact-map .leaflet-container {
	width: 100%;
	height: 100%;
	font: inherit;
	background: var(--color-cream-2);
}

.contact-map__pin {
	background: transparent !important;
	border: 0 !important;
}

.contact-map__pin-mark {
	display: block;
	width: 24px;
	height: 32px;
	filter: drop-shadow(0 4px 8px rgba(4, 51, 58, 0.35));
}

.contact-map__pin-mark svg {
	display: block;
}

.contact-card__link {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	justify-self: end;
	white-space: nowrap;
	font-family: var(--font-sans);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-teal);
	text-decoration: none;
	transition: gap 0.25s var(--ease), color 0.2s var(--ease);
}

.contact-card__link:hover,
.contact-card__link:focus-visible {
	gap: 0.5rem;
	color: var(--color-teal-soft);
}

/* Full-bleed photo between offices and services */
.contact-section-break {
	width: 100%;
	margin: 0;
	line-height: 0;
	overflow: hidden;
}

.contact-section-break img {
	display: block;
	width: 100%;
	height: clamp(11rem, 26vw, 20rem);
	object-fit: cover;
	object-position: center;
}

/* Form — light band, clear break before teal footer */
.contact-message {
	padding: clamp(3rem, 6vw, 4.5rem) 0 clamp(4.25rem, 8vw, 6rem);
	background: var(--color-cream);
	border-top: 0;
}

.contact-message__inner {
	width: min(100% - 2.5rem, var(--max));
	margin-inline: auto;
	display: grid;
	gap: 1.5rem;
}

.contact-message__header {
	max-width: 38rem;
}

.contact-message__title {
	margin: 0.45rem 0 0.65rem;
	font-family: var(--font-serif);
	font-weight: 600;
	font-size: clamp(1.85rem, 3.2vw, 2.5rem);
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--color-teal);
}

.contact-message__lead {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 1rem;
	line-height: 1.65;
	color: var(--color-charcoal);
}

.contact-form-panel {
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: #fff;
	border: 1px solid rgba(4, 51, 58, 0.1);
	box-shadow: 0 16px 40px rgba(4, 51, 58, 0.06);
}

.contact-form .wpcf7 {
	margin: 0;
}

.contact-form .wpcf7-form {
	display: grid;
	gap: 1.25rem;
}

.contact-form .wpcf7-form > p,
.contact-form p {
	margin: 0;
}

.contact-form br {
	display: none;
}

.contact-form__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: 1.25rem;
	align-items: stretch;
}

.contact-form__fields {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.85rem;
	align-content: start;
	min-width: 0;
}

.contact-form__message {
	display: grid;
	min-width: 0;
	height: 100%;
}

.contact-form .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
	min-width: 0;
}

.contact-form .wpcf7-form-control-wrap input,
.contact-form .wpcf7-form-control-wrap textarea,
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0.95rem 1rem;
	border: 1px solid rgba(4, 51, 58, 0.16);
	border-radius: 0;
	background: var(--color-cream);
	font-family: var(--font-sans);
	font-size: 0.95rem;
	line-height: 1.4;
	color: var(--color-charcoal);
	transition:
		border-color 0.2s var(--ease),
		box-shadow 0.2s var(--ease),
		background 0.2s var(--ease);
}

.contact-form textarea {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 14.5rem;
	resize: vertical;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
	color: var(--color-gray);
	opacity: 0.9;
}

.contact-form input:hover,
.contact-form textarea:hover {
	border-color: rgba(4, 51, 58, 0.3);
}

.contact-form input:focus,
.contact-form textarea:focus {
	outline: none;
	border-color: var(--color-teal);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(4, 51, 58, 0.08);
}

.contact-form__footer {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	column-gap: 1.5rem;
	width: 100%;
	padding-top: 0.25rem;
}

.contact-form__consent {
	margin: 0;
	min-width: 0;
	justify-self: start;
	font-size: 0.84rem;
	line-height: 1.55;
	color: var(--color-gray);
	text-align: left;
}

.contact-form .contact-form__footer input.wpcf7-submit,
.contact-form .contact-form__footer input[type="submit"] {
	justify-self: end;
	width: auto;
	max-width: none;
	margin: 0;
}

.contact-form__consent .wpcf7-list-item {
	margin: 0;
}

.contact-form__consent .wpcf7-list-item label {
	display: inline-flex;
	align-items: flex-start;
	gap: 0.55rem;
	cursor: pointer;
}

.contact-form__consent input[type="checkbox"] {
	width: 1.05rem;
	height: 1.05rem;
	max-width: none;
	margin: 0.15rem 0 0;
	accent-color: var(--color-teal);
	flex-shrink: 0;
}

.contact-form input[type="submit"],
.contact-form .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3rem;
	padding: 0.85rem 1.7rem;
	border: 1px solid var(--color-teal);
	background: var(--color-teal);
	color: var(--color-cream);
	font-family: var(--font-sans);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.25s var(--ease), transform 0.25s var(--ease);
}

.contact-form input[type="submit"]:hover,
.contact-form .wpcf7-submit:hover {
	background: var(--color-teal-soft);
	transform: translateY(-1px);
}

.contact-form .wpcf7-not-valid {
	border-color: #b42318 !important;
	background: #fff8f7 !important;
	box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.08);
}

.contact-form .wpcf7-not-valid-tip {
	display: block;
	margin-top: 0.4rem;
	font-family: var(--font-sans);
	font-size: 0.8rem;
	font-weight: 500;
	line-height: 1.35;
	color: #b42318;
}

.contact-form .wpcf7-response-output {
	margin: 0.15rem 0 0;
	padding: 0.95rem 1.1rem;
	border: 1px solid transparent;
	border-left-width: 3px;
	background: var(--color-cream);
	font-family: var(--font-sans);
	font-size: 0.9rem;
	font-weight: 500;
	line-height: 1.5;
	color: var(--color-charcoal);
}

.contact-form .wpcf7-response-output.wpcf7-validation-errors,
.contact-form .wpcf7-response-output.wpcf7-acceptance-missing,
.contact-form .wpcf7-response-output.wpcf7-spam-blocked,
.contact-form .wpcf7-response-output.wpcf7-aborted,
.contact-form .wpcf7-response-output.wpcf7-mail-sent-ng,
.contact-form .wpcf7 form.invalid .wpcf7-response-output,
.contact-form .wpcf7 form.unaccepted .wpcf7-response-output,
.contact-form .wpcf7 form.spam .wpcf7-response-output,
.contact-form .wpcf7 form.failed .wpcf7-response-output,
.contact-form .wpcf7 form.aborted .wpcf7-response-output {
	border-color: rgba(180, 35, 24, 0.22);
	border-left-color: #b42318;
	background: #fff5f4;
	color: #7a1f18;
}

.contact-form .wpcf7-response-output.wpcf7-mail-sent-ok,
.contact-form .wpcf7 form.sent .wpcf7-response-output {
	border-color: rgba(4, 51, 58, 0.16);
	border-left-color: var(--color-teal);
	background: rgba(4, 51, 58, 0.06);
	color: var(--color-teal);
}

@media (max-width: 980px) {
	.contact-intro__grid {
		grid-template-columns: 1fr;
		row-gap: 1.75rem;
	}

	.contact-intro__label,
	.contact-intro__copy {
		grid-column: 1;
		grid-row: auto;
	}

	.contact-intro__visual {
		display: none;
	}
}

@media (max-width: 700px) {
	.contact-intro {
		padding-top: calc(var(--header-h) + 3rem);
	}

	.contact-offices__grid,
	.contact-form__grid {
		grid-template-columns: 1fr;
	}

	.contact-card__place {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.contact-card__hours {
		padding-top: 0.65rem;
	}

	.contact-card__hours-row {
		grid-template-columns: 1fr;
		gap: 0.12rem;
		padding-bottom: 0.15rem;
	}

	.contact-card__hours-row:not(:last-child) {
		border-bottom: 1px solid rgba(4, 51, 58, 0.06);
		padding-bottom: 0.45rem;
		margin-bottom: 0.15rem;
	}

	.contact-card__hours-row dd {
		font-size: 0.82rem;
		opacity: 1;
		text-align: left;
	}

	.contact-card__link {
		grid-column: 2;
		justify-self: start;
	}

	.contact-form textarea {
		min-height: 10rem;
		height: auto;
	}

	.contact-form__footer {
		grid-template-columns: 1fr;
		row-gap: 1rem;
	}

	.contact-form .contact-form__footer input.wpcf7-submit,
	.contact-form .contact-form__footer input[type="submit"],
	.contact-form .wpcf7-submit {
		justify-self: stretch;
		width: 100%;
	}
}

/* —— Footer —— */
.site-footer {
	position: relative;
	background: var(--color-teal);
	color: rgba(250, 248, 245, 0.72);
	padding: clamp(3.25rem, 6vw, 4.5rem) 0 0;
	border-top: 0;
}

.site-footer__inner {
	position: relative;
	z-index: 1;
	width: min(100% - 2.5rem, var(--max));
	margin-inline: auto;
}

.site-footer__top {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) repeat(3, minmax(0, 1fr));
	gap: 2.25rem 2rem;
	padding-bottom: 2.75rem;
}

.site-footer__logo {
	display: inline-block;
	margin-bottom: 0;
}

.site-footer__logo img {
	width: auto;
	height: 7.25rem;
	filter: brightness(0) invert(1);
	opacity: 0.95;
}

.site-footer__heading {
	margin: 0 0 1rem;
	font-family: var(--font-sans);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(250, 248, 245, 0.45);
}

.site-footer__links,
.site-footer__facts,
.site-footer__hours {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.65rem;
}

.site-footer__links a {
	color: rgba(250, 248, 245, 0.82);
	font-family: var(--font-sans);
	font-size: 0.92rem;
	line-height: 1.35;
	transition: color 0.3s var(--ease), transform 0.3s var(--ease);
}

.site-footer__links a:hover,
.site-footer__links a:focus-visible {
	color: var(--color-cream);
	transform: translateX(3px);
	opacity: 1;
}

.site-footer__consent-btn {
	appearance: none;
	display: inline;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-family: var(--font-sans);
	font-size: 0.92rem;
	line-height: 1.35;
	color: inherit;
	text-align: left;
	cursor: pointer;
	transition: color 0.3s var(--ease), transform 0.3s var(--ease);
}

.site-footer__consent-btn:hover,
.site-footer__consent-btn:focus-visible {
	color: var(--color-cream);
	transform: translateX(3px);
	opacity: 1;
}

.site-footer__facts li,
.site-footer__hours li {
	display: grid;
	gap: 0.2rem;
}

.site-footer__fact-label {
	font-size: 0.66rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(250, 248, 245, 0.4);
}

.site-footer__facts a,
.site-footer__hours span,
.site-footer__hours strong {
	font-family: var(--font-sans);
	font-size: 0.9rem;
	line-height: 1.5;
	color: rgba(250, 248, 245, 0.82);
}

.site-footer__facts a:hover,
.site-footer__facts a:focus-visible {
	color: var(--color-cream);
	opacity: 1;
}

.site-footer__hours strong {
	font-weight: 600;
	color: var(--color-cream);
}

.site-footer__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin-top: 1.35rem;
	padding-bottom: 0.15rem;
	font-family: var(--font-sans);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-cream);
	border-bottom: 1px solid rgba(250, 248, 245, 0.35);
	transition:
		gap 0.3s var(--ease),
		border-color 0.3s var(--ease),
		opacity 0.3s var(--ease);
}

.site-footer__cta:hover,
.site-footer__cta:focus-visible {
	gap: 0.7rem;
	border-color: var(--color-cream);
	opacity: 1;
}

.site-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.85rem 1.5rem;
	padding: 1.15rem 0 1.35rem;
	border-top: 1px solid rgba(250, 248, 245, 0.12);
}

.site-footer__copy {
	margin: 0;
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	color: rgba(250, 248, 245, 0.42);
}

.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1.15rem;
}

.site-footer__legal a {
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	color: rgba(250, 248, 245, 0.48);
	transition: color 0.3s var(--ease);
}

.site-footer__legal a:hover,
.site-footer__legal a:focus-visible {
	color: var(--color-cream);
	opacity: 1;
}

.home-insights__empty {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 0.95rem;
	color: var(--color-gray);
}

.insight__visual--photo {
	padding: 0;
	display: block;
	background: var(--color-teal);
}

.insight__visual--photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 980px) {
	.site-footer__top {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem 1.75rem;
	}
}

@media (max-width: 640px) {
	.site-footer__top {
		grid-template-columns: 1fr;
		gap: 1.85rem;
		padding-bottom: 2rem;
	}

	.site-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* CF7 */
.wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wpcf7 textarea {
	width: 100%;
	padding: 0.7rem 0.8rem;
	border: 1px solid #cfcfcf;
	border-radius: 0;
	font: inherit;
	background: var(--color-white);
}

.contact-form .wpcf7 input:not([type="submit"]):not([type="checkbox"]),
.contact-form .wpcf7 textarea {
	max-width: none;
}

.wpcf7 input[type="submit"] {
	width: auto;
	background: var(--color-teal);
	color: var(--color-white);
	border: 0;
	cursor: pointer;
	padding: 0.85rem 1.3rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.75rem;
	font-weight: 600;
}

/* —— Responsive —— */
@media (max-width: 1100px) {
	.pillars__inner {
		width: min(100% - 1rem, var(--max));
	}

	.pillar {
		padding: 1.6rem 1rem;
		gap: 0.75rem;
	}

	.pillar__title {
		font-size: 0.72rem;
	}

	.pillar__text {
		font-size: 0.74rem;
	}
}

@media (max-width: 980px) {
	.pillars__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pillar:nth-child(2)::after {
		display: none;
	}

	.pillar:nth-child(1),
	.pillar:nth-child(2) {
		border-bottom: 1px solid var(--color-line);
	}

	.services-index__inner {
		grid-template-columns: 1fr;
		gap: 1.75rem;
	}

	.services-index__header {
		padding-bottom: 0.25rem;
	}

	.home-about__grid {
		grid-template-columns: 1fr;
		grid-template-rows: none;
		gap: 1.75rem;
	}

	.home-about__grid {
		grid-template-columns: 1fr;
		grid-template-rows: none;
		gap: 1.75rem;
	}

	.home-about__label,
	.home-about__copy,
	.home-about__visual {
		grid-column: 1;
		grid-row: auto;
	}

	.home-about__label {
		order: 1;
		margin-bottom: 0;
	}

	.home-about__visual {
		order: 2;
		height: auto;
		max-width: 36rem;
	}

	.home-about__copy {
		order: 3;
	}

	.home-about__body .text-link {
		margin-top: 0.35rem;
	}

	.home-about__accent {
		top: 0.55rem;
		right: -0.55rem;
		bottom: -0.55rem;
		left: 0.55rem;
	}

	.home-about__media {
		flex: none;
		height: auto;
		aspect-ratio: 16 / 9;
	}

	.insights-grid {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.insights-grid--related {
		grid-template-columns: 1fr;
	}

	.article__hero {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}

	.article__visual {
		max-width: none;
		width: 100%;
		order: -1;
	}

	.article__media {
		min-height: clamp(12rem, 52vw, 18rem);
		aspect-ratio: 4 / 3;
	}

	.insight__hit:hover,
	.insight__hit:focus-visible {
		transform: translateY(-3px);
	}

	.approach-method__steps {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.home-section {
		padding: 4rem 0;
	}
}

@media (max-width: 950px) {
	.site-logo,
	.site-header.is-scrolled .site-logo {
		width: 10.5rem;
		height: 2.25rem;
		transition: none;
	}

	.site-logo img {
		transition: none;
		will-change: auto;
	}

	.site-logo__full,
	.site-header.is-scrolled .site-logo__full {
		display: none;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
	}

	.site-logo__small,
	.site-header.is-scrolled .site-logo__small {
		display: block;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		width: auto;
		height: 2.25rem;
		transform: translateY(-50%) scale(1);
		transition: none;
	}
}

@media (max-width: 800px) {
	:root {
		--header-h: 4.25rem;
		--mobile-nav-duration: 0.3s;
		--mobile-nav-ease: cubic-bezier(0.32, 0.72, 0, 1);
	}

	.nav-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		margin-left: auto;
		position: relative;
		z-index: 2;
		width: 2.6rem;
		height: 2.6rem;
		background: transparent;
		border: 0;
	}

	.site-header {
		overflow: visible;
		padding: 0.85rem 0;
		padding-top: calc(0.85rem + env(safe-area-inset-top, 0px));
		transition:
			background-color var(--mobile-nav-duration) var(--mobile-nav-ease),
			border-color var(--mobile-nav-duration) var(--mobile-nav-ease),
			box-shadow var(--mobile-nav-duration) var(--mobile-nav-ease);
	}

	.site-header.is-scrolled {
		padding: 0.85rem 0;
		padding-top: calc(0.85rem + env(safe-area-inset-top, 0px));
		background: var(--color-cream);
		border-bottom: 1px solid rgba(4, 51, 58, 0.08);
		box-shadow: 0 1px 0 rgba(4, 51, 58, 0.04);
	}

	/* No blur/gradient frost on mobile */
	.site-header.is-scrolled::before,
	.site-header::after {
		display: none;
	}

	body.has-mobile-nav .site-header {
		background: var(--color-cream);
		border-bottom-color: transparent;
		box-shadow: none;
	}

	body.has-mobile-nav .site-header__nav {
		border-top: 0;
		box-shadow: 0 12px 28px rgba(4, 51, 58, 0.1);
	}

	.site-header__inner {
		position: relative;
		align-items: center;
		flex-wrap: wrap;
	}

	.nav-toggle__bar {
		transition:
			transform var(--mobile-nav-duration) var(--mobile-nav-ease),
			opacity calc(var(--mobile-nav-duration) * 0.85) ease,
			top var(--mobile-nav-duration) var(--mobile-nav-ease);
	}

	.site-header__nav {
		display: flex;
		position: absolute;
		top: 100%;
		left: 50%;
		right: auto;
		z-index: 5;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		width: 100vw;
		margin-top: 0;
		margin-left: -50vw;
		padding: 0 0 1rem;
		background: var(--color-cream);
		border-top: 1px solid rgba(4, 51, 58, 0.1);
		box-shadow: 0 10px 24px rgba(4, 51, 58, 0.08);
		visibility: hidden;
		opacity: 0;
		transform: translate3d(0, -0.4rem, 0);
		-webkit-transform: translate3d(0, -0.4rem, 0);
		backface-visibility: hidden;
		-webkit-backface-visibility: hidden;
		pointer-events: none;
		transition:
			opacity var(--mobile-nav-duration) var(--mobile-nav-ease),
			transform var(--mobile-nav-duration) var(--mobile-nav-ease),
			visibility 0s linear var(--mobile-nav-duration);
	}

	.site-header__nav.is-open {
		visibility: visible;
		opacity: 1;
		transform: translate3d(0, 0, 0);
		-webkit-transform: translate3d(0, 0, 0);
		pointer-events: auto;
		transition:
			opacity var(--mobile-nav-duration) var(--mobile-nav-ease),
			transform var(--mobile-nav-duration) var(--mobile-nav-ease),
			visibility 0s;
	}

	.site-header.is-scrolled .site-header__nav {
		padding-top: 0;
		align-items: stretch;
		margin-top: 0;
	}

	.site-header__nav-footer {
		display: block;
		margin: 0.5rem 1.25rem 0;
		padding-top: 0.85rem;
		border-top: 1px solid rgba(4, 51, 58, 0.1);
	}

	.lang-switcher {
		display: inline-flex;
		align-items: center;
		gap: 0.65rem;
		margin: 0;
		padding: 0;
		border: 0;
		background: transparent;
		font-size: 0.72rem;
		font-weight: 600;
		letter-spacing: 0.08em;
		opacity: 1;
		transform: none;
	}

	.lang-switcher__sep {
		display: inline;
		opacity: 0.35;
	}

	.lang-switcher__link,
	.lang-switcher a {
		min-width: 0;
		padding: 0;
		border-radius: 0;
		background: transparent;
		opacity: 0.45;
		color: var(--color-teal);
	}

	.lang-switcher__link.is-active,
	.lang-switcher a.is-active {
		opacity: 1;
		background: transparent;
		color: var(--color-teal);
	}

	.site-nav {
		width: 100%;
	}

	.site-nav__list {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		width: 100%;
		padding: 0;
	}

	.site-nav__list .menu-item {
		width: 100%;
		opacity: 1;
		transform: none;
		transition: none;
	}

	.site-nav__list a {
		display: flex;
		align-items: center;
		width: 100%;
		min-height: 0;
		padding: 0.85rem 1.25rem;
		font-size: 0.78rem;
		font-weight: 600;
		letter-spacing: 0.12em;
		opacity: 1;
		color: var(--color-teal);
		border-radius: 0;
		transition: background 0.2s var(--ease);
	}

	.site-nav__list a::before {
		display: none;
	}

	.site-nav__list a:hover,
	.site-nav__list a:focus-visible,
	.site-nav__list .current-menu-item > a,
	.site-nav__list .current_page_item > a {
		letter-spacing: 0.12em;
		transform: none;
		background: rgba(4, 51, 58, 0.06);
		opacity: 1;
	}

	.site-nav__list a:hover::before,
	.site-nav__list a:focus-visible::before,
	.site-nav__list .current-menu-item > a::before,
	.site-nav__list .current_page_item > a::before {
		transform: none;
	}

	.site-nav__list a:active {
		background: rgba(4, 51, 58, 0.1);
	}

	.hero {
		min-height: 92svh;
	}

	.hero__content {
		width: min(100% - 2.5rem, 36rem);
		margin-left: 1.25rem;
		margin-right: auto;
		padding-top: calc(var(--header-h) + 1.75rem);
		padding-bottom: 3.5rem;
	}

	.hero__overlay {
		background: linear-gradient(
			180deg,
			var(--color-cream) 0%,
			rgba(250, 248, 245, 0.88) 22%,
			rgba(250, 248, 245, 0.45) 48%,
			rgba(250, 248, 245, 0.12) 72%,
			rgba(250, 248, 245, 0) 100%
		);
	}
}

@media (max-width: 560px) {
	.site-logo,
	.site-header.is-scrolled .site-logo {
		width: 9rem;
		height: 1.95rem;
	}

	.site-logo__full,
	.site-header.is-scrolled .site-logo__full {
		display: none;
	}

	.site-logo__small,
	.site-header.is-scrolled .site-logo__small {
		display: block;
		width: auto;
		height: 1.95rem;
	}

	.pillars__inner {
		grid-template-columns: 1fr;
		width: min(100% - 1.25rem, var(--max));
	}

	.pillar::after {
		display: none;
	}

	.pillar {
		border-bottom: 1px solid var(--color-line);
		padding: 1.35rem 0.85rem;
		align-items: center;
	}

	.pillar:last-child {
		border-bottom: 0;
	}

	.services-index__link {
		grid-template-columns: 2.25rem minmax(0, 1fr) auto;
		gap: 0.55rem 0.75rem;
		padding: 0.95rem 0;
	}

	.services-index__meta {
		grid-column: auto;
		margin-top: 0;
	}

	.services-index__name {
		font-size: 1.35rem;
	}

	.services-index__icon {
		display: none;
	}

	.hero__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.btn {
		width: 100%;
	}
}

/* —— Complianz (cookie banner) brand soft overrides —— */
.cmplz-cookiebanner {
	font-family: var(--font-sans) !important;
}

/* Compact buttons: plugin defaults are min-height 45px + min-width 250px */
.cmplz-cookiebanner .cmplz-buttons {
	align-items: center;
	justify-content: flex-end;
}

.cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
	min-height: 0 !important;
	min-width: 0 !important;
	width: auto !important;
	padding: 0.55rem 1.35rem !important;
	border-radius: 0 !important;
	font-size: 0.72rem !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept {
	background-color: var(--color-teal) !important;
	border-color: var(--color-teal) !important;
	color: var(--color-cream) !important;
}

.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-manage-options {
	background-color: transparent !important;
	border-color: rgba(4, 51, 58, 0.35) !important;
	color: var(--color-teal) !important;
}

@media (max-width: 600px) {
	.cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
		width: 100% !important;
		padding: 0.6rem 1rem !important;
	}
}

/* —— Service landing (page-templates/service.php) —— */
.site-main--service {
	padding-top: 0;
}

.service-page__crumb {
	width: min(100% - 2.5rem, var(--max));
	margin: 0.85rem auto 0;
	padding-top: calc(0.35rem + env(safe-area-inset-top, 0px));
}

.service-page__crumb-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(4, 51, 58, 0.45);
}

.service-page__crumb-list a {
	color: var(--color-teal);
	text-decoration: none;
}

.service-page__crumb-list a:hover,
.service-page__crumb-list a:focus-visible {
	opacity: 0.75;
}

.service-page__intro {
	padding-top: clamp(3rem, 6vw, 4.5rem);
	padding-bottom: clamp(2.5rem, 5vw, 3.5rem);
}

.service-page__intro-inner {
	max-width: 46rem;
	margin-inline: auto;
	text-align: center;
}

.service-page__intro-title {
	margin: 0 0 1.25rem;
	font-family: var(--font-serif);
	font-size: clamp(1.65rem, 2.8vw, 2.35rem);
	font-weight: 500;
	line-height: 1.18;
	color: var(--color-teal);
}

.service-page__intro-body {
	display: grid;
	gap: 1rem;
	font-size: 1.02rem;
	line-height: 1.7;
	color: rgba(43, 46, 45, 0.78);
}

.service-page__intro-body p {
	margin: 0;
}

.service-page__scope {
	background: var(--color-cream-2);
}

.service-page__scope-header {
	max-width: 40rem;
	margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

.service-page__scope-lead {
	max-width: 36rem;
}

.service-page__scope-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.85rem 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.service-page__scope-item {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 0.85rem 1rem;
	background: rgba(250, 248, 245, 0.72);
	border: 1px solid rgba(4, 51, 58, 0.08);
}

.service-page__scope-check {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	margin-top: 0.05rem;
	color: var(--color-brass);
}

.service-page__scope-check .icon-svg {
	width: 1.1rem;
	height: 1.1rem;
}

.service-page__scope-text {
	font-size: 0.92rem;
	line-height: 1.55;
	color: rgba(43, 46, 45, 0.86);
}

.service-page__benefits-title {
	margin: 0.75rem 0 0;
	max-width: 34rem;
	font-family: var(--font-serif);
	font-size: clamp(1.55rem, 2.4vw, 2.1rem);
	font-weight: 500;
	line-height: 1.2;
	color: var(--color-teal);
}

.service-page__benefits-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin-top: clamp(1.75rem, 3vw, 2.5rem);
}

.service-page__benefit {
	padding: 1.35rem 1.25rem 1.5rem;
	background: var(--color-cream-2);
	border-top: 2px solid rgba(196, 165, 116, 0.55);
}

.service-page__benefit-title {
	margin: 0 0 0.65rem;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-teal);
}

.service-page__benefit-text {
	margin: 0;
	font-size: 0.94rem;
	line-height: 1.62;
	color: rgba(43, 46, 45, 0.78);
}

.service-page__split {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	align-items: center;
	gap: 0;
	background: var(--color-teal);
	color: var(--color-cream);
}

.service-page__split-media {
	position: relative;
	min-height: clamp(16rem, 34vw, 26rem);
	overflow: hidden;
}

.service-page__split-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.service-page__split-copy {
	padding: clamp(2.5rem, 5vw, 4rem) min(2.5rem, 5vw);
}

.service-page__split-title {
	margin: 0 0 1rem;
	font-family: var(--font-serif);
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 500;
	line-height: 1.2;
	color: var(--color-cream);
}

.service-page__split-text {
	margin: 0;
	max-width: 30rem;
	font-size: 0.98rem;
	line-height: 1.68;
	color: rgba(250, 248, 245, 0.82);
}

.service-page__process-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
	margin: clamp(1.75rem, 3vw, 2.5rem) 0 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.service-page__process-step {
	padding: 1.25rem 0 0;
	border-top: 1px solid rgba(4, 51, 58, 0.12);
}

.service-page__process-num {
	display: block;
	margin-bottom: 0.85rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--color-brass);
}

.service-page__process-title {
	margin: 0 0 0.5rem;
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--color-teal);
}

.service-page__process-text {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.6;
	color: rgba(43, 46, 45, 0.76);
}

.service-page__related {
	background: var(--color-cream-2);
}

.service-page__related-title {
	margin: 0 0 1.25rem;
	font-family: var(--font-serif);
	font-size: clamp(1.35rem, 2vw, 1.75rem);
	font-weight: 500;
	color: var(--color-teal);
}

.service-page__related-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.85rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.service-page__related-card {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	min-height: 4.5rem;
	padding: 0.85rem 1rem;
	background: var(--color-cream);
	border: 1px solid rgba(4, 51, 58, 0.1);
	color: var(--color-teal);
	text-decoration: none;
	transition:
		border-color 0.25s var(--ease),
		transform 0.25s var(--ease);
}

.service-page__related-card:hover,
.service-page__related-card:focus-visible {
	border-color: rgba(196, 165, 116, 0.65);
	transform: translateY(-2px);
}

.service-page__related-icon {
	flex: 0 0 auto;
	color: var(--color-brass);
}

.service-page__related-name {
	flex: 1;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.service-page__related-go {
	flex: 0 0 auto;
	opacity: 0.45;
}

.service-page__cta {
	margin-top: 0;
}

@media (max-width: 950px) {
	.service-page__benefits-grid,
	.service-page__process-grid,
	.service-page__related-grid {
		grid-template-columns: 1fr;
	}

	.service-page__split {
		grid-template-columns: 1fr;
	}

	.service-page__scope-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.service-page__crumb {
		width: min(100% - 1.25rem, var(--max));
	}
}
