/*
Theme Name: pokleika-remont-pro
Theme URI: https://pokleika-remont-pro78.ru/
Author: OpenAI Codex
Description: Кастомная WordPress-тема для поклейки обоев и косметического ремонта. Контент управляется через Secure Custom Fields.
Version: 1.4.0
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: pokleika-remont-pro
*/

@font-face {
	font-family: "Unbounded";
	src: url("assets/fonts/unbounded-cyrillic.woff2") format("woff2");
	font-style: normal;
	font-weight: 200 900;
	font-display: swap;
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-family: "Unbounded";
	src: url("assets/fonts/unbounded-latin.woff2") format("woff2");
	font-style: normal;
	font-weight: 200 900;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Manrope";
	src: url("assets/fonts/manrope-cyrillic.woff2") format("woff2");
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-family: "Manrope";
	src: url("assets/fonts/manrope-latin.woff2") format("woff2");
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	color-scheme: light;
	--surface: #f8fbf9;
	--surface-solid: #ffffff;
	--ink: #25373e;
	--muted: #5b7078;
	--mint: #dff3e8;
	--mint-strong: #8ebda3;
	--sky: #eaf6fa;
	--accent: #f3dd78;
	--accent-hover: #ecd25f;
	--line: rgba(44, 75, 84, 0.16);
	--radius: 15px;
	--control-radius: 12px;
	--shell: 1480px;
	--z-header: 30;
	--z-menu: 40;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--surface);
	color: var(--ink);
	font-family: "Manrope", "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

body.menu-open {
	overflow: hidden;
}

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

a {
	color: inherit;
	text-decoration: none;
}

button,
a {
	-webkit-tap-highlight-color: transparent;
}

button:focus-visible,
a:focus-visible {
	outline: 3px solid #d4ae16;
	outline-offset: 3px;
}

[hidden] {
	display: none !important;
}

.shell {
	width: min(100% - 48px, var(--shell));
	margin-inline: auto;
}

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

.skip-link {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 100;
	padding: 10px 16px;
	background: var(--ink);
	color: var(--surface-solid);
	border-radius: var(--control-radius);
	transform: translateY(-160%);
}

.skip-link:focus {
	transform: translateY(0);
}

.site-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: var(--z-header);
}

.site-header__panel {
	overflow: hidden;
	width: 100%;
	max-width: none;
	background: rgba(255, 255, 255, 0.97);
	border-radius: 0;
	box-shadow: 0 2px 8px rgba(39, 66, 73, 0.07);
}

.site-header__panel.shell {
	width: 100%;
}

.site-header__main {
	display: grid;
	grid-template-columns: auto minmax(370px, 1fr) auto;
	align-items: center;
	gap: 28px;
	min-height: 70px;
	padding: 7px max(24px, calc((100vw - var(--shell)) / 2));
}

.brand {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	min-width: 246px;
}

.brand__mark {
	flex: 0 0 auto;
	width: 58px;
	height: 48px;
	object-fit: contain;
}

.brand__copy {
	display: grid;
	gap: 5px;
	line-height: 1;
}

.brand__copy strong {
	font-family: "Unbounded", sans-serif;
	font-size: 14px;
	font-weight: 660;
	letter-spacing: -0.025em;
}

.brand__copy > span {
	color: #4f666e;
	font-size: 12px;
	font-weight: 650;
	line-height: 1.15;
}

.primary-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(14px, 1.45vw, 26px);
	white-space: nowrap;
}

.primary-nav a,
.service-rail a {
	position: relative;
	font-size: 13px;
	font-weight: 740;
}

.primary-nav a::after,
.service-rail a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -6px;
	height: 2px;
	background: #75a98b;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1);
}

.primary-nav a:hover::after,
.service-rail a:hover::after {
	transform: scaleX(1);
	transform-origin: left;
}

.header-contact {
	display: flex;
	align-items: center;
	gap: 10px;
	white-space: nowrap;
}

.header-contact__copy {
	display: grid;
	gap: 2px;
	text-align: right;
}

.header-phone {
	font-family: "Unbounded", sans-serif;
	font-size: 11px;
	font-weight: 650;
}

.header-contact__copy span {
	color: var(--muted);
	font-size: 11px;
	font-weight: 600;
}

.messenger-links {
	display: flex;
	gap: 6px;
}

.messenger-links a {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	padding: 7px;
	background: var(--sky);
	border-radius: 10px;
	transition: background-color 180ms ease, transform 180ms ease;
}

.messenger-links img {
	width: 20px;
	height: 20px;
	object-fit: contain;
}

.messenger-links a:hover {
	background: var(--mint);
	transform: translateY(-2px);
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	border: 0;
	border-radius: var(--control-radius);
	font-family: "Manrope", sans-serif;
	font-weight: 800;
	white-space: nowrap;
	transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1), background-color 200ms ease;
}

.button:hover {
	transform: translateY(-2px);
}

.button:active {
	transform: translateY(1px) scale(0.99);
}

.button--compact {
	min-height: 42px;
	padding: 0 16px;
	background: var(--accent);
	color: var(--ink);
	font-size: 12px;
}

.button--compact:hover,
.button--primary:hover {
	background: var(--accent-hover);
}

.button--primary {
	min-height: 58px;
	padding: 0 16px 0 23px;
	background: var(--accent);
	color: var(--ink);
	font-size: 15px;
}

.button__arrow {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	background: rgba(37, 55, 62, 0.1);
	border-radius: 9px;
	font-size: 18px;
}

.service-rail {
	border-top: 1px solid var(--line);
	background: rgba(223, 243, 232, 0.72);
}

.service-rail__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 44px;
	padding: 0 max(24px, calc((100vw - var(--shell)) / 2));
	gap: 22px;
	white-space: nowrap;
}

.service-rail a {
	font-size: 13px;
	letter-spacing: -0.01em;
}

.menu-toggle {
	display: none;
	width: 44px;
	height: 44px;
	padding: 0 11px;
	border: 0;
	border-radius: 10px;
	background: var(--mint);
	color: var(--ink);
}

.menu-toggle > span:not(.screen-reader-text) {
	display: block;
	width: 100%;
	height: 2px;
	margin: 5px 0;
	background: currentColor;
	transition: transform 200ms ease, opacity 180ms ease;
}

.menu-toggle.is-open > span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.menu-toggle.is-open > span:nth-child(2) {
	opacity: 0;
}

.menu-toggle.is-open > span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

.mobile-menu {
	position: fixed;
	top: 100px;
	left: 24px;
	right: 24px;
	z-index: var(--z-menu);
	padding: 26px;
	background: var(--surface-solid);
	border-radius: var(--radius);
	box-shadow: 0 6px 8px rgba(39, 66, 73, 0.12);
}

.mobile-menu nav,
.mobile-menu__services {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px 22px;
}

.mobile-menu nav a {
	font-family: "Unbounded", sans-serif;
	font-size: 15px;
	font-weight: 600;
}

.mobile-menu__services {
	margin-top: 22px;
	padding-top: 20px;
	border-top: 1px solid var(--line);
}

.mobile-menu__services a {
	color: var(--muted);
	font-size: 13px;
	font-weight: 700;
}

.mobile-menu__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 22px;
	padding: 15px 17px;
	background: var(--mint);
	border-radius: var(--control-radius);
	font-weight: 750;
}

.mobile-menu__footer > div:first-child {
	display: grid;
	gap: 3px;
}

.mobile-menu__footer > div:first-child span {
	font-size: 11px;
	font-weight: 620;
}

.mobile-menu__messengers {
	display: flex;
}

.hero {
	--hero-header-height: 115px;
	--hero-composition-height: 590px;
	--hero-benefits-height: 106px;
	--hero-vertical-gap: max(18px, calc((100dvh - var(--hero-header-height) - var(--hero-composition-height) - var(--hero-benefits-height)) / 3));
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: 100dvh;
	background: linear-gradient(90deg, var(--surface) 0 55%, var(--sky) 55% 100%);
}

.hero::after {
	content: "";
	position: absolute;
	top: 72px;
	right: -92px;
	z-index: -1;
	width: 270px;
	aspect-ratio: 1;
	border: 48px solid rgba(243, 221, 120, 0.34);
	border-radius: 50%;
	pointer-events: none;
}

.hero__background {
	display: none;
}

.hero__background img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 46% center;
}

.hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 0.93fr) minmax(560px, 1.07fr);
	grid-template-rows: var(--hero-composition-height) var(--hero-benefits-height);
	align-items: start;
	column-gap: clamp(34px, 4vw, 72px);
	row-gap: var(--hero-vertical-gap);
	min-height: 100dvh;
	padding-top: calc(var(--hero-header-height) + var(--hero-vertical-gap));
	padding-bottom: var(--hero-vertical-gap);
}

.hero__content {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	justify-content: space-between;
	height: 100%;
	min-width: 0;
	max-width: 760px;
	padding: 0 0 14px;
}

.hero__title {
	max-width: 100%;
	margin: 0;
	font-family: "Unbounded", sans-serif;
	font-size: clamp(2.8rem, 3vw, 3.65rem);
	font-weight: 650;
	line-height: 1.08;
	letter-spacing: -0.035em;
	text-wrap: balance;
}

.hero__title-main,
.hero__title-location {
	display: block;
}

.hero__title-location {
	width: fit-content;
	margin-top: 0.18em;
	color: #617f75;
	font-size: 0.56em;
	font-weight: 590;
	line-height: 1.08;
	letter-spacing: -0.03em;
}

.hero__promise {
	position: relative;
	max-width: 655px;
	margin-top: 0;
	padding: 16px 20px 17px 26px;
	background: #dceff4;
	border-radius: 12px;
}

.hero__promise::before {
	content: "";
	position: absolute;
	top: 12px;
	bottom: 12px;
	left: 7px;
	width: 4px;
	background: var(--accent);
	border-radius: 4px;
}

.hero__promise p {
	margin: 0;
	color: #29454d;
	font-size: clamp(16px, 1vw, 19px);
	font-weight: 650;
	line-height: 1.45;
	text-wrap: pretty;
}

.hero__cta {
	margin-top: 0;
}

.benefit-grid {
	display: grid;
	grid-column: 1 / -1;
	grid-template-columns: 1.05fr 0.94fr 1.08fr 0.96fr 1.12fr 1.08fr;
	gap: 0;
	width: 100%;
	margin-top: 0;
	overflow: hidden;
	background: var(--surface-solid);
	border-radius: var(--radius);
	box-shadow: 0 6px 8px rgba(39, 66, 73, 0.1);
}

.benefit-item {
	display: grid;
	grid-template-rows: 24px auto;
	align-content: center;
	gap: 9px;
	min-height: var(--hero-benefits-height);
	padding: 17px 17px 15px;
	border-left: 1px solid var(--line);
}

.benefit-item:first-child {
	border-left: 0;
}

.benefit-item:nth-child(2),
.benefit-item:nth-child(5) {
	background: var(--mint);
}

.benefit-item:nth-child(3),
.benefit-item:nth-child(6) {
	background: var(--sky);
}

.benefit-item__icon {
	display: grid;
	place-items: center;
	width: 24px;
	height: 24px;
	background: var(--accent);
	border-radius: 50%;
	color: var(--ink);
	font-size: 12px;
	font-weight: 900;
}

.benefit-item__text {
	font-size: 13px;
	font-weight: 760;
	line-height: 1.22;
}

.hero__visual {
	position: relative;
	min-width: 0;
	height: var(--hero-composition-height);
	min-height: var(--hero-composition-height);
}

.hero__visual::before {
	content: "";
	position: absolute;
	top: 4px;
	right: 2px;
	width: 82px;
	height: 82px;
	background: var(--accent);
	border-radius: 14px;
	transform: translate(18px, -14px);
}

.hero-collage {
	position: absolute;
	inset: 0 0 14px;
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(190px, 0.78fr);
	gap: 12px;
}

.hero-collage__side {
	display: grid;
	grid-template-rows: 0.88fr 1.12fr;
	gap: 12px;
	min-width: 0;
}

.hero-photo {
	position: relative;
	min-width: 0;
	min-height: 0;
	margin: 0;
	overflow: hidden;
	background: var(--surface-solid);
	border-radius: 13px;
	box-shadow: 0 10px 24px rgba(39, 66, 73, 0.12);
	transform: none;
	transition: transform 320ms cubic-bezier(0.16, 1, 0.3, 1);
}

.hero-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: inherit;
}

.hero-photo--main::after {
	display: none;
}

.hero-photo:hover {
	transform: translateY(-3px) scale(1.006);
}

.hero-photo--main img {
	object-position: center 44%;
}

.hero-photo--project img {
	object-position: center 50%;
}

.hero-photo--detail img {
	object-position: 45% center;
}

.trust-card {
	position: absolute;
	left: 22px;
	bottom: 30px;
	z-index: 5;
	display: grid;
	gap: 8px;
	width: 245px;
	padding: 20px 22px;
	background: #173f3a;
	color: #ffffff;
	border-radius: 14px;
	box-shadow: 0 8px 18px rgba(39, 66, 73, 0.16);
}

.trust-card::before {
	display: none;
}

.trust-card__rating {
	color: var(--accent);
	font-size: 11px;
	letter-spacing: 0.1em;
}

.trust-card strong {
	font-size: 13px;
	font-weight: 700;
	line-height: 1.28;
}

@media (min-width: 1660px) and (min-height: 850px) {
	:root {
		--shell: 1760px;
	}

	.hero {
		--hero-composition-height: 620px;
		--hero-benefits-height: 112px;
	}

	.shell {
		width: min(100% - 72px, var(--shell));
	}

	.hero__inner {
		grid-template-columns: minmax(0, 0.92fr) minmax(650px, 1.08fr);
	}

	.hero__content {
		max-width: 800px;
		padding: 30px 0 14px;
	}

	.hero__title {
		font-size: clamp(3.05rem, 2.65vw, 3.25rem);
	}

	.benefit-item__text {
		font-size: 14px;
	}

	.trust-card {
		width: 245px;
		padding: 20px 22px;
	}
}

@media (max-width: 1380px) {
	.hero {
		--hero-composition-height: 520px;
		--hero-benefits-height: 100px;
	}

	.shell {
		width: min(100% - 36px, var(--shell));
	}

	.site-header__main {
		grid-template-columns: auto 1fr auto;
		gap: 18px;
	}

	.brand {
		min-width: 218px;
		gap: 9px;
	}

	.brand__mark {
		width: 52px;
		height: 43px;
	}

	.brand__copy strong {
		font-size: 13px;
	}

	.primary-nav {
		gap: 13px;
	}

	.primary-nav a,
	.service-rail a {
		font-size: 12px;
	}

	.header-contact__copy span {
		display: none;
	}

	.hero__inner {
		grid-template-columns: minmax(0, 0.96fr) minmax(470px, 1.04fr);
		column-gap: 34px;
	}

	.hero__content {
		max-width: 680px;
		padding: 24px 0 14px;
	}

	.hero__title {
		font-size: clamp(2.55rem, 3.25vw, 3.15rem);
	}

	.benefit-item {
		padding: 15px;
	}

	.trust-card {
		width: 210px;
		padding: 17px 19px;
	}
}

@media (max-width: 1120px) {
	.hero {
		--hero-header-height: 68px;
		--hero-composition-height: 490px;
	}

	.primary-nav,
	.service-rail,
	.button--compact {
		display: none;
	}

	.site-header__main {
		min-height: 68px;
	}

	.header-contact {
		margin-left: auto;
	}

	.menu-toggle {
		display: block;
	}

	.hero__inner {
		grid-template-columns: minmax(0, 1fr) minmax(400px, 0.9fr);
	}

	.hero__title {
		font-size: clamp(2.15rem, 3.55vw, 2.6rem);
	}

	.benefit-item {
		padding: 12px;
		font-size: 12px;
	}
}

@media (min-width: 821px) and (max-height: 820px) {
	.hero {
		--hero-header-height: 101px;
		--hero-composition-height: 430px;
		--hero-benefits-height: 88px;
	}

	.site-header {
		top: 0;
	}

	.site-header__main {
		min-height: 62px;
	}

	.service-rail__inner {
		min-height: 38px;
	}

	.hero__inner {
		grid-template-columns: minmax(0, 0.98fr) minmax(460px, 1.02fr);
	}

	.hero__content {
		padding: 14px 0;
	}

	.hero__title {
		font-size: clamp(2.1rem, 2.85vw, 2.65rem);
	}

	.hero__promise {
		margin-top: 0;
	}

	.hero__promise p {
		font-size: 15px;
	}

	.hero__cta {
		margin-top: 0;
	}

	.button--primary {
		min-height: 52px;
	}

	.benefit-grid {
		margin-top: 0;
	}

	.benefit-item {
		grid-template-columns: none;
		grid-template-rows: 21px auto;
		gap: 7px;
		padding: 11px 12px;
	}

	.trust-card {
		width: 190px;
		padding: 15px 17px;
	}

	.trust-card strong {
		font-size: 11px;
	}
}

@media (min-width: 821px) and (max-width: 1120px) and (max-height: 820px) {
	.hero {
		--hero-header-height: 62px;
	}
}

@media (max-width: 820px) {
	.shell {
		width: min(100% - 28px, var(--shell));
	}

	.site-header {
		top: 0;
	}

	.header-contact__copy {
		display: none;
	}

	.header-contact .messenger-links {
		display: flex;
	}

	.mobile-menu {
		top: 92px;
		left: 14px;
		right: 14px;
	}

	.mobile-menu nav,
	.mobile-menu__services {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.hero {
		min-height: 0;
		background: linear-gradient(180deg, var(--sky) 0 40%, var(--surface) 40% 100%);
	}

	.hero::after,
	.hero__background {
		display: none;
	}

	.hero__inner {
		display: flex;
		flex-direction: column;
		gap: 0;
		min-height: 0;
		padding-top: 78px;
		padding-bottom: 36px;
	}

	.hero__content {
		display: contents;
	}

	.hero__title {
		order: 1;
		width: 100%;
		padding: 26px 6px 0;
		font-size: clamp(2rem, 7.9vw, 3.1rem);
		letter-spacing: -0.035em;
	}

	.hero__promise {
		order: 3;
		width: 100%;
		margin-top: 0;
	}

	.hero__cta {
		order: 4;
		margin-top: 18px;
	}

	.hero__promise p {
		font-size: 15px;
	}

	.hero__visual {
		position: relative;
		order: 2;
		width: 100%;
		height: 370px;
		margin-block: clamp(20px, 4vw, 28px);
		min-width: 0;
		align-self: stretch;
		flex: 0 0 auto;
		min-height: 370px;
	}

	.hero-collage {
		width: 100%;
	}

	.hero__visual::before {
		left: auto;
		right: 0;
		width: 60px;
		height: 60px;
	}

	.trust-card {
		left: -6px;
		bottom: 8px;
		width: 178px;
		padding: 12px 14px 13px;
	}

	.trust-card__rating {
		font-size: 9px;
	}

	.trust-card strong {
		font-size: 10px;
	}

	.benefit-grid {
		order: 5;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0;
		margin-top: 10px;
	}

	.benefit-item {
		grid-template-rows: 24px auto;
		min-height: 94px;
		padding: 12px;
		border-left: 1px solid var(--line);
		border-top: 1px solid var(--line);
	}

	.benefit-item:nth-child(odd) {
		border-left: 0;
	}

	.benefit-item:nth-child(-n + 2) {
		border-top: 0;
	}

	.request-section__background::after {
		background: rgba(232,246,249,.88);
	}
}

@media (max-width: 540px) {
	.brand {
		min-width: 0;
	}

	.brand__mark {
		width: 46px;
		height: 40px;
	}

	.brand__copy strong {
		font-size: 11px;
	}

	.brand__copy > span {
		font-size: 10px;
	}

	.header-contact {
		gap: 4px;
	}

	.header-contact .messenger-links {
		gap: 3px;
	}

	.header-contact .messenger-links a {
		width: 31px;
		height: 31px;
		padding: 6px;
	}

	.site-header__main {
		padding-inline: 9px;
	}

	.mobile-menu {
		padding: 22px 18px;
	}

	.mobile-menu nav a {
		font-size: 13px;
	}

	.mobile-menu__services a {
		font-size: 11px;
	}

	.mobile-menu__footer {
		align-items: center;
		flex-direction: row;
		gap: 12px;
	}

	.hero__inner {
		padding-top: 86px;
	}

	.hero__content {
		display: contents;
	}

	.hero__title {
		padding: 21px 2px 0;
		font-size: clamp(1.62rem, 6.9vw, 1.92rem);
		letter-spacing: -0.035em;
	}

	.hero__cta {
		width: 100%;
	}

	.benefit-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.benefit-item {
		min-height: 96px;
		padding: 12px;
	}

	.hero__visual {
		height: 330px;
		min-height: 330px;
	}

	.trust-card {
		width: 168px;
		padding: 11px 13px 12px;
	}
}

@media (max-width: 400px) {
	.site-header .brand__copy {
		display: none;
	}
}

@keyframes swatch-main-enter {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: none; }
}

@keyframes swatch-project-enter {
	from { opacity: 0; transform: translateY(12px); }
	to { opacity: 1; transform: none; }
}

@keyframes swatch-detail-enter {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: no-preference) {
	.hero-photo--main {
		animation: swatch-main-enter 850ms cubic-bezier(0.16, 1, 0.3, 1) both;
	}

	.hero-photo--project {
		animation: swatch-project-enter 920ms 70ms cubic-bezier(0.16, 1, 0.3, 1) both;
	}

	.hero-photo--detail {
		animation: swatch-detail-enter 980ms 130ms cubic-bezier(0.16, 1, 0.3, 1) both;
	}
}

@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;
	}
}

/* --------------------------------------------------------------------------
   Sections 02–10 and inner pages. The approved hero rules above are unchanged.
   -------------------------------------------------------------------------- */

h1,
h2,
h3,
p {
	margin-top: 0;
}

h2,
h3 {
	font-family: "Unbounded", sans-serif;
	letter-spacing: -0.035em;
	word-break: normal;
	overflow-wrap: normal;
	hyphens: none;
}

h2 {
	margin-bottom: 0;
	font-size: clamp(2rem, 3.25vw, 4rem);
	font-weight: 610;
	line-height: 1.08;
	text-wrap: balance;
}

h3 {
	font-size: 1.05rem;
	font-weight: 620;
	line-height: 1.25;
}

.site-section {
	position: relative;
	padding: clamp(72px, 7vw, 112px) 0;
}

.site-section + .site-section {
	border-top: 1px solid var(--line);
}

.eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 20px;
	color: #55746a;
	font-size: 12px;
	font-weight: 850;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.eyebrow::before {
	content: "";
	width: 26px;
	height: 3px;
	background: var(--accent);
	border-radius: 3px;
}

.section-heading {
	max-width: 980px;
	margin-bottom: clamp(42px, 5vw, 76px);
}

.section-heading--split {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
	align-items: end;
	gap: clamp(32px, 6vw, 100px);
	max-width: none;
}

.section-heading > p,
.section-heading--split > p {
	margin-bottom: 4px;
	color: var(--muted);
	font-size: clamp(16px, 1.15vw, 19px);
	font-weight: 560;
	line-height: 1.65;
}

.media-frame {
	margin: 0;
	overflow: hidden;
	background: var(--surface-solid);
	border-radius: var(--radius);
}

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

.section-cta {
	margin-top: 42px;
}

.materials-section {
	background: #fffef8;
}

.materials-layout {
	display: grid;
	grid-template-columns: minmax(360px, 0.82fr) minmax(0, 1.18fr);
	gap: 18px;
}

.materials-feature {
	position: sticky;
	top: 24px;
	height: 610px;
	box-shadow: 0 16px 38px rgba(37, 55, 62, 0.1);
}

.materials-feature::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 56%, rgba(20, 47, 44, 0.74));
}

.materials-feature figcaption {
	position: absolute;
	left: 28px;
	right: 28px;
	bottom: 26px;
	z-index: 2;
	display: flex;
	align-items: center;
	color: #fff;
}

.materials-feature figcaption strong {
	font-family: "Unbounded", sans-serif;
	font-size: 17px;
}

.material-cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.material-card {
	position: relative;
	min-height: 296px;
	padding: 156px 24px 22px;
	overflow: hidden;
	background: var(--surface-solid);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	transition: transform 240ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 240ms ease;
}

.material-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 18px 34px rgba(37, 55, 62, 0.1);
}

.material-card__thumb {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 136px;
	overflow: hidden;
}

.material-card__thumb::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, transparent, rgba(255,255,255,.24));
}

.material-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.material-card h3 {
	margin-bottom: 10px;
}

.material-card p {
	margin-bottom: 0;
	color: var(--muted);
	font-size: 14px;
	line-height: 1.5;
}

.risk-section {
	overflow: hidden;
	background: linear-gradient(135deg, #edf8f2, #edf7fb 72%);
}

.risk-section::before {
	content: "";
	position: absolute;
	top: 12%;
	right: -160px;
	width: 420px;
	aspect-ratio: 1;
	border: 70px solid rgba(243, 221, 120, 0.23);
	border-radius: 50%;
}

.risk-board {
	display: grid;
	grid-template-columns: minmax(360px, 0.84fr) minmax(0, 1.16fr);
	gap: 18px;
}

.risk-board__photo {
	height: 560px;
}

.risk-board__photo img {
	filter: saturate(.76) contrast(.96);
}

.risk-board__cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.risk-card {
	display: flex;
	gap: 18px;
	min-height: 170px;
	padding: 24px;
	background: rgba(255,255,255,.9);
	border: 1px solid rgba(44,75,84,.12);
	border-radius: var(--radius);
}

.risk-card:first-child {
	grid-column: 1 / -1;
}

.risk-card__signal {
	flex: 0 0 auto;
	width: 4px;
	height: 42px;
	background: var(--accent);
	border-radius: 99px;
}

.risk-card h3 {
	margin-bottom: 10px;
}

.risk-card p {
	margin-bottom: 0;
	color: var(--muted);
	font-size: 14px;
	line-height: 1.5;
}

.quality-panel {
	position: relative;
	margin-top: 22px;
	padding: clamp(28px, 4vw, 58px);
	background: #fff;
	border-radius: var(--radius);
	box-shadow: 0 18px 50px rgba(37,55,62,.08);
}

.quality-panel__heading {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	gap: 28px;
}

.quality-panel__seal {
	display: grid;
	place-items: center;
	width: 86px;
	height: 86px;
	background: linear-gradient(145deg, var(--mint), var(--accent));
	border-radius: 20px 42px 20px 42px;
	font-family: "Unbounded", sans-serif;
	font-size: 20px;
	font-weight: 780;
	transform: rotate(-4deg);
}

.quality-panel__heading h2 {
	max-width: 980px;
	font-size: clamp(1.8rem, 2.5vw, 3rem);
}

.quality-panel__heading p {
	max-width: 820px;
	margin: 18px 0 0;
	color: var(--muted);
	font-size: 16px;
}

.quality-panel__list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	margin-top: 42px;
	border-top: 1px solid var(--line);
	border-left: 1px solid var(--line);
}

.quality-panel__list > div {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 76px;
	padding: 14px 16px;
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	font-size: 13px;
	font-weight: 720;
}

.quality-panel__list span {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
	background: var(--mint);
	border-radius: 50%;
}

.quality-panel__price {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	margin-top: 32px;
	padding: 24px;
	background: #fff8cf;
	border-radius: var(--control-radius);
}

.quality-panel__price > div {
	display: grid;
	gap: 5px;
}

.quality-panel__price strong {
	font-family: "Unbounded", sans-serif;
	font-size: 14px;
}

.quality-panel__price span {
	font-size: 13px;
}

.services-section {
	background: #fff;
}

.service-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	grid-auto-rows: 540px;
	gap: 14px;
}

.service-card {
	position: relative;
	min-width: 0;
	overflow: hidden;
	background: #365048;
	border-radius: var(--radius);
	color: #fff;
}

.service-card--1 {
	grid-column: span 2;
}

.service-card--7 {
	grid-column: span 2;
}

.service-card > img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 600ms cubic-bezier(0.16,1,.3,1);
}

.service-card:hover > img {
	transform: scale(1.035);
}

.service-card__wash {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(19,36,34,.02) 24%, rgba(19,36,34,.88) 94%);
}

.service-card__content {
	position: absolute;
	left: 24px;
	right: 24px;
	bottom: 22px;
	z-index: 2;
}

.service-card__content h3 {
	margin-bottom: 8px;
	font-size: clamp(1.05rem, 1.35vw, 1.45rem);
}

.service-card--1 .service-card__content h3 {
	font-size: clamp(1.6rem, 2.4vw, 2.6rem);
}

.service-card__content p {
	max-width: 620px;
	margin-bottom: 14px;
	color: rgba(255,255,255,.82);
	font-size: 13px;
	line-height: 1.45;
}

.service-card__content ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
}

.service-card--1 .service-card__content ul {
	display: flex;
}

.service-card__content li {
	padding: 7px 10px;
	background: rgba(255,255,255,.13);
	border: 1px solid rgba(255,255,255,.2);
	border-radius: 99px;
	font-size: 11px;
}

.service-card__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 12px;
	font-weight: 820;
}

.service-card__link b {
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	background: var(--accent);
	color: var(--ink);
	border-radius: 8px;
}

.offers-section {
	background: #f8fbf9;
}

.offer-banner {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(460px, 1.1fr);
	min-height: 570px;
	overflow: hidden;
	background: #eaf6fa;
	border-radius: var(--radius);
}

.offer-banner__image {
	position: absolute;
	inset: 0 auto 0 0;
	width: 48%;
	height: 100%;
	object-fit: cover;
}

.offer-banner::after {
	content: "";
	position: absolute;
	left: 38%;
	top: 0;
	bottom: 0;
	width: 18%;
	background: linear-gradient(90deg, transparent, #eaf6fa 78%);
}

.offer-banner__copy,
.offer-banner__items {
	position: relative;
	z-index: 2;
}

.offer-banner__copy {
	grid-column: 2;
	padding: 62px 62px 24px;
}

.offer-banner__copy h2 {
	font-size: clamp(2rem, 2.8vw, 3.25rem);
}

.offer-banner__copy p {
	max-width: 660px;
	margin: 24px 0 0;
	color: var(--muted);
	font-size: 17px;
	line-height: 1.6;
}

.offer-banner__items {
	grid-column: 2;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	padding: 0 62px 62px;
}

.offer-banner__items > div {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: start;
	gap: 14px;
	padding: 18px;
	background: rgba(255,255,255,.78);
	border-radius: 12px;
}

.offer-banner__items span {
	width: 10px;
	height: 10px;
	margin-top: 4px;
	background: var(--accent);
	border-radius: 50%;
}

.offer-banner__items strong {
	font-size: 13px;
	line-height: 1.45;
}

.portfolio-section {
	background: #fffef9;
}

.portfolio-mosaic {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	grid-auto-rows: 150px;
	gap: 12px;
}

.portfolio-tile {
	position: relative;
	grid-column: span 3;
	grid-row: span 2;
	margin: 0;
	overflow: hidden;
	background: var(--sky);
	border-radius: var(--radius);
}

.portfolio-tile--1,
.portfolio-tile--6 {
	grid-column: span 6;
	grid-row: span 3;
}

.portfolio-tile--4,
.portfolio-tile--9 {
	grid-column: span 3;
	grid-row: span 3;
}

.portfolio-tile img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 500ms cubic-bezier(.16,1,.3,1);
}

.portfolio-tile:hover img {
	transform: scale(1.035);
}

.portfolio-tile figcaption {
	position: absolute;
	left: 16px;
	right: auto;
	bottom: 16px;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	padding: 0;
	background: transparent;
	color: #fff;
	font-size: 11px;
	font-weight: 780;
	line-height: 1.2;
	text-shadow: 0 1px 4px rgba(18, 35, 39, .78);
}

.portfolio-tile figcaption::before,
.portfolio-gallery figcaption::before {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	background: var(--accent);
	border-radius: 50%;
	color: #263b40;
	content: "✓";
	font: 850 11px/1 "Manrope", sans-serif;
	text-shadow: none;
}

.portfolio-actions {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 30px;
	margin-top: 30px;
	padding: 24px;
	background: var(--mint);
	border-radius: var(--radius);
}

.portfolio-actions > div {
	display: grid;
	gap: 4px;
}

.portfolio-actions strong {
	font-family: "Unbounded", sans-serif;
	font-size: 14px;
}

.portfolio-actions span {
	font-size: 13px;
}

.text-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	font-weight: 820;
}

.text-link span {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	background: var(--accent);
	border-radius: 8px;
}

.process-section {
	background: #edf7fb;
}

.process-track {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.process-track li {
	position: relative;
	min-width: 0;
	padding-right: 26px;
}

.process-track__visual {
	position: relative;
	display: block;
	height: 42px;
	margin-bottom: 20px;
}

.process-track__visual i {
	position: absolute;
	top: 18px;
	left: 0;
	right: 0;
	height: 2px;
	background: #bdd8cf;
}

.process-track__visual b {
	position: absolute;
	top: 8px;
	left: 0;
	width: 22px;
	height: 22px;
	background: var(--accent);
	border: 6px solid #fff;
	border-radius: 50%;
	box-shadow: 0 0 0 1px #bdd8cf;
}

.process-track li:last-child .process-track__visual i {
	right: 70%;
}

.process-track h3 {
	min-height: 50px;
	margin-bottom: 12px;
	font-size: 15px;
}

.process-track p {
	margin-bottom: 0;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.5;
}

.about-section {
	background: #fff;
}

.about-layout {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(500px, 1.1fr);
	align-items: center;
	gap: clamp(46px, 7vw, 110px);
}

.about-copy h2 {
	margin-bottom: 28px;
}

.about-copy p {
	color: var(--muted);
	font-size: 15px;
	line-height: 1.75;
}

.about-copy .lead {
	color: var(--ink);
	font-size: 18px;
	font-weight: 650;
}

.about-copy .text-link {
	margin-top: 18px;
}

.about-visual {
	position: relative;
	padding-right: 118px;
}

.about-visual figure {
	height: 640px;
	box-shadow: 0 20px 50px rgba(37,55,62,.12);
}

.stat-stack {
	position: absolute;
	top: 50%;
	right: 0;
	display: grid;
	gap: 10px;
	width: 230px;
	transform: translateY(-50%);
}

.stat-stack > div {
	display: grid;
	gap: 4px;
	padding: 20px;
	background: rgba(255,255,255,.92);
	border: 1px solid var(--line);
	border-radius: 12px;
	box-shadow: 0 12px 28px rgba(37,55,62,.1);
}

.stat-stack > div:nth-child(2) {
	background: var(--mint);
}

.stat-stack > div:nth-child(3) {
	background: #fff7c9;
}

.stat-stack strong {
	font-family: "Unbounded", sans-serif;
	font-size: 28px;
}

.stat-stack span {
	font-size: 12px;
	font-weight: 680;
	line-height: 1.35;
}

.reviews-section {
	background: #f3faf6;
}

.review-carousel {
	overflow: hidden;
}

.review-carousel__track {
	display: grid;
	grid-auto-columns: calc((100% - 28px) / 3);
	grid-auto-flow: column;
	gap: 14px;
	transition: transform 420ms cubic-bezier(.16,1,.3,1);
}

.review-card {
	min-height: 300px;
	padding: 28px;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
}

.review-card__head {
	display: grid;
	grid-template-columns: 54px 1fr auto;
	align-items: center;
	gap: 14px;
	margin-bottom: 28px;
}

.review-card__head img {
	width: 54px;
	height: 54px;
	object-fit: cover;
	border-radius: 50%;
}

.review-card__head > div {
	display: grid;
	gap: 3px;
}

.review-card__head strong {
	font-family: "Unbounded", sans-serif;
	font-size: 13px;
}

.review-card__head span {
	color: var(--muted);
	font-size: 11px;
}

.review-card__head b {
	color: #c49a00;
	font-size: 10px;
	letter-spacing: .08em;
}

.review-card > p {
	margin-bottom: 0;
	color: #435a62;
	font-size: 15px;
	line-height: 1.7;
}

.review-carousel__controls {
	display: flex;
	justify-content: flex-end;
	gap: 8px;
	margin-top: 22px;
}

.review-carousel__controls button,
.portfolio-filters button {
	border: 0;
	cursor: pointer;
}

.review-carousel__controls button {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 50%;
	font-size: 18px;
}

.request-section {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: clamp(70px, 8vw, 120px) 0;
	background: #dceff4;
}

.request-section__background {
	position: absolute;
	inset: 0;
	z-index: -2;
}

.request-section__background::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(232,246,249,.94) 0 42%, rgba(237,248,245,.86) 100%);
}

.request-section__background img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 48%;
}

.request-panel {
	display: grid;
	grid-template-columns: minmax(0, .9fr) minmax(520px, 1.1fr);
	gap: clamp(44px, 7vw, 110px);
	padding: clamp(34px, 5vw, 70px);
	background: rgba(255,255,255,.9);
	color: var(--ink);
	border-radius: var(--radius);
	box-shadow: 0 8px 24px rgba(37,55,62,.12);
}

.request-panel__copy h2 {
	font-size: clamp(2rem, 3vw, 3.5rem);
}

.request-panel__copy > p {
	margin: 24px 0 34px;
	color: var(--muted);
	font-size: 16px;
	line-height: 1.7;
}

.request-panel__fact {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 18px;
	background: var(--mint);
	border-radius: 11px;
}

.request-panel__fact strong {
	font-family: "Unbounded", sans-serif;
	font-size: 14px;
}

.request-panel__fact span {
	font-size: 13px;
}

.request-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-content: center;
	gap: 18px;
}

.request-form label {
	display: grid;
	gap: 8px;
}

.request-form label > span {
	font-size: 12px;
	font-weight: 760;
}

.request-form input:not([type="checkbox"]),
.request-form textarea {
	width: 100%;
	padding: 14px 15px;
	background: #f8fbf9;
	border: 1px solid var(--line);
	border-radius: 10px;
	color: var(--ink);
	font: inherit;
}

.request-form input:not([type="checkbox"]) {
	height: 54px;
}

.request-form textarea {
	resize: vertical;
}

.request-form input:not([type="checkbox"]):focus,
.request-form textarea:focus {
	outline: 3px solid rgba(243,221,120,.48);
	border-color: #c9aa2a;
}

.request-form__wide {
	grid-column: 1 / -1;
}

.request-form .request-form__consent {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0;
	color: var(--muted);
	font-size: 12px;
	line-height: 1.4;
	cursor: pointer;
}

.request-form__consent input {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: #9b8420;
}

.request-form__consent > span {
	display: block;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
}

.request-form__consent a {
	color: #315f55;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

.request-form__consent a:hover,
.request-form__consent a:focus-visible {
	color: var(--ink);
}

.callback-dialog {
	width: min(100% - 28px, 500px);
	padding: 0;
	background: transparent;
	border: 0;
	color: var(--ink);
}

.callback-dialog::backdrop {
	background: rgba(27,46,51,.62);
	backdrop-filter: blur(4px);
}

.callback-dialog__inner {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: clamp(28px, 5vw, 46px);
	background: var(--sky);
	border-radius: 16px;
	box-shadow: 0 8px 24px rgba(18,35,39,.2);
}

.callback-dialog__background {
	position: absolute;
	inset: 0;
	z-index: -1;
}

.callback-dialog__background::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(115deg, rgba(255,255,255,.97) 0 48%, rgba(232,246,249,.82) 100%);
}

.callback-dialog__background img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 72% center;
	filter: saturate(.82) contrast(.92);
}

.callback-dialog__inner h2 {
	font-size: clamp(1.7rem, 4vw, 2.45rem);
}

.callback-dialog__inner > p {
	margin: 16px 0 26px;
	color: var(--muted);
}

.callback-dialog__close {
	position: absolute;
	top: 14px;
	right: 14px;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	background: var(--sky);
	border: 0;
	border-radius: 50%;
	color: var(--ink);
	font-size: 26px;
	cursor: pointer;
}

.callback-form {
	grid-template-columns: 1fr;
	margin-top: 26px;
}

html:has(.callback-dialog[open]) {
	overflow: hidden;
}

.privacy-content .prose {
	max-width: 860px;
	margin-inline: auto;
}

.privacy-content .prose h2 {
	margin: 42px 0 14px;
	font-size: clamp(1.4rem, 2.2vw, 2rem);
}

.privacy-content .prose h2:first-child {
	margin-top: 0;
}

.privacy-content .prose p {
	font-size: 17px;
	line-height: 1.75;
}

.privacy-content .prose ul {
	display: grid;
	gap: 10px;
	margin: 18px 0;
	padding-left: 22px;
	list-style: disc;
}

.privacy-content .prose li {
	font-size: 17px;
	line-height: 1.7;
}

.request-form__trap {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.request-form__status {
	padding: 13px 15px;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.45;
}

.request-form__status--success {
	background: #e2f6e8;
	color: #175c2d;
}

.request-form__status--notice {
	background: #fff4c6;
	color: #67520a;
}

.request-form__status--error {
	background: #fde8e5;
	color: #7d2620;
}

.site-footer {
	background: #24383d;
	color: #fff;
}

.footer-main {
	display: grid;
	grid-template-columns: 1.3fr .75fr 1fr 1fr;
	gap: 50px;
	padding-top: 70px;
	padding-bottom: 64px;
}

.footer-brand .brand {
	display: inline-flex;
}

.footer-brand .brand__copy > span,
.footer-brand > p,
.footer-contact > span {
	color: rgba(255,255,255,.62);
}

.footer-brand > p {
	max-width: 330px;
	margin: 26px 0 0;
	font-size: 13px;
	line-height: 1.65;
}

.footer-column {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 11px;
}

.footer-column h2 {
	margin-bottom: 10px;
	font-size: 13px;
	letter-spacing: 0;
}

.footer-column > a,
.footer-column > span {
	color: rgba(255,255,255,.68);
	font-size: 12px;
}

.footer-column > a:hover {
	color: #fff;
}

.footer-contact .footer-phone {
	color: #fff;
	font-family: "Unbounded", sans-serif;
	font-size: 14px;
}

.footer-contact .messenger-links {
	margin-top: 8px;
}

.footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 28px;
	padding-top: 22px;
	padding-bottom: 22px;
	border-top: 1px solid rgba(255,255,255,.12);
	color: rgba(255,255,255,.64);
	font-size: 11px;
}

.footer-cookie-settings {
	padding: 0;
	background: none;
	border: 0;
	color: inherit;
	font: inherit;
	cursor: pointer;
}

.footer-cookie-settings:hover,
.footer-cookie-settings:focus-visible {
	color: #fff;
}

.cookie-banner {
	position: fixed;
	left: 50%;
	bottom: max(18px, env(safe-area-inset-bottom));
	z-index: 70;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	width: min(calc(100% - 28px), 1040px);
	padding: 22px 24px;
	background: #fff;
	color: var(--ink);
	border-radius: 14px;
	box-shadow: 0 8px 24px rgba(18,35,39,.22);
	transform: translateX(-50%);
}

.cookie-banner[hidden] {
	display: none;
}

.cookie-banner__copy {
	max-width: 680px;
}

.cookie-banner__copy strong {
	display: block;
	margin-bottom: 6px;
	font-family: "Unbounded", sans-serif;
	font-size: 14px;
}

.cookie-banner__copy p {
	margin: 0;
	color: #4f666e;
	font-size: 13px;
	line-height: 1.55;
}

.cookie-banner__copy a {
	color: #315f55;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.cookie-banner__actions {
	display: flex;
	flex: 0 0 auto;
	gap: 10px;
}

.cookie-banner__actions .button {
	min-height: 46px;
	padding: 0 18px;
	font-size: 12px;
}

.cookie-banner__necessary {
	background: var(--sky);
	color: var(--ink);
}

@supports (content-visibility: auto) {
	.home-main > .site-section,
	.service-page > .site-section,
	.about-page > .site-section,
	.portfolio-page > .site-section,
	.contacts-page > .site-section,
	.blog-page > .site-section {
		content-visibility: auto;
		contain-intrinsic-size: auto 900px;
	}
}

/* Inner pages */
.inner-main {
	background: var(--surface);
}

.inner-hero,
.compact-hero {
	padding-top: 175px;
	background: linear-gradient(90deg, #f8fbf9 0 55%, #eaf6fa 55% 100%);
}

.inner-hero {
	padding-bottom: clamp(72px, 8vw, 120px);
}

.inner-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(430px, .82fr);
	align-items: center;
	gap: clamp(40px, 7vw, 110px);
}

.inner-hero__copy,
.inner-hero__media,
.detail-grid > *,
.includes-panel > *,
.when-layout > *,
.professional-panel > *,
.about-closing > *,
.contacts-layout > * {
	min-width: 0;
}

.inner-hero__copy h1,
.compact-hero h1 {
	margin: 0;
	font-family: "Unbounded", sans-serif;
	font-size: clamp(2.4rem, 3.7vw, 4.15rem);
	font-weight: 620;
	line-height: 1.06;
	letter-spacing: -.045em;
	text-wrap: balance;
	overflow-wrap: anywhere;
}

.inner-hero__copy > p,
.compact-hero p {
	max-width: 760px;
	margin: 28px 0 0;
	color: var(--muted);
	font-size: clamp(16px, 1.25vw, 20px);
	line-height: 1.65;
}

.inner-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 34px;
}

.button--ghost {
	min-height: 58px;
	padding: 0 22px;
	background: rgba(255,255,255,.75);
	border: 1px solid var(--line);
	font-size: 14px;
}

.inner-hero__media {
	position: relative;
	height: 590px;
	box-shadow: 0 20px 48px rgba(37,55,62,.14);
}

.inner-hero__media figcaption {
	position: absolute;
	left: 20px;
	bottom: 20px;
	display: grid;
	gap: 4px;
	width: 190px;
	padding: 20px;
	background: #fff5b9;
	border-radius: 12px;
	box-shadow: 0 12px 30px rgba(37,55,62,.12);
}

.inner-hero__media figcaption span {
	font-family: "Unbounded", sans-serif;
	font-size: 28px;
	font-weight: 720;
}

.inner-hero__media figcaption strong {
	font-size: 12px;
}

.compact-hero {
	padding-bottom: 80px;
}

.compact-hero .shell {
	position: relative;
}

.compact-hero .shell::after {
	content: "";
	position: absolute;
	right: 8%;
	top: -34px;
	width: 160px;
	aspect-ratio: 1;
	border: 30px solid rgba(243,221,120,.45);
	border-radius: 50%;
}

.compact-hero h1,
.compact-hero p,
.compact-hero .eyebrow {
	position: relative;
	z-index: 2;
}

.detail-grid {
	display: grid;
	grid-template-columns: minmax(300px, .75fr) minmax(0, 1.25fr);
	gap: clamp(46px, 8vw, 130px);
}

.detail-grid h2 {
	font-size: clamp(2rem, 3vw, 3.4rem);
}

.prose p {
	margin-bottom: 20px;
	color: #435a62;
	font-size: 16px;
	line-height: 1.8;
}

.service-types {
	background: #fff;
}

.service-type-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.service-type-grid article {
	position: relative;
	min-height: 340px;
	padding: 190px 24px 24px;
	overflow: hidden;
	background: #f8fbf9;
	border: 1px solid var(--line);
	border-radius: var(--radius);
}

.service-type-grid img {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 170px;
	object-fit: cover;
	filter: saturate(.82);
}

.service-type-grid h3 {
	margin-bottom: 12px;
}

.service-type-grid p {
	margin-bottom: 0;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.55;
}

.service-includes {
	background: #eff8f4;
}

.includes-panel {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
	gap: clamp(48px, 8vw, 120px);
	padding: clamp(34px, 5vw, 72px);
	background: #fff;
	border-radius: var(--radius);
}

.includes-panel > div p {
	margin: 24px 0 0;
	color: var(--muted);
	line-height: 1.7;
}

.includes-panel ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--line);
}

.includes-panel li {
	display: grid;
	grid-template-columns: 34px 1fr;
	align-items: center;
	gap: 10px;
	min-height: 66px;
	padding: 10px;
	border-bottom: 1px solid var(--line);
	font-size: 13px;
	font-weight: 680;
}

.includes-panel li span {
	width: 12px;
	height: 12px;
	background: var(--mint);
	border: 3px solid #fff;
	border-radius: 50%;
	box-shadow: 0 0 0 1px #9cc2b5;
}

.service-why {
	background: #fff;
}

.why-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.why-grid--four {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.why-grid article {
	min-height: 250px;
	padding: 26px;
	background: #f8fbf9;
	border: 1px solid var(--line);
	border-radius: var(--radius);
}

.why-grid article:nth-child(3n + 2) {
	background: var(--sky);
}

.why-grid article:nth-child(3n + 3) {
	background: #fff9d9;
}

.why-grid__mark {
	display: block;
	width: 44px;
	height: 5px;
	margin-bottom: 52px;
	background: var(--accent);
	border-radius: 99px;
}

.why-grid h3 {
	margin-bottom: 12px;
}

.why-grid p {
	margin-bottom: 0;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.55;
}

.service-when {
	background: #edf7fb;
}

.when-layout {
	display: grid;
	grid-template-columns: .85fr 1.15fr;
	align-items: center;
	gap: 70px;
}

.when-layout p {
	margin: 24px 0 0;
	color: var(--muted);
}

.location-cloud {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-content: center;
}

.location-cloud span {
	padding: 13px 17px;
	background: rgba(255,255,255,.88);
	border: 1px solid var(--line);
	border-radius: 99px;
	font-size: 13px;
	font-weight: 720;
}

.process-track--service {
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.professional-section {
	background: #fff;
}

.professional-panel {
	display: grid;
	grid-template-columns: minmax(250px, .68fr) minmax(0, 1.32fr);
	align-items: center;
	gap: clamp(42px, 7vw, 100px);
	padding: clamp(38px, 6vw, 82px);
	background: linear-gradient(135deg, #e9f6ef, #fff9d8);
	border-radius: var(--radius);
}

.professional-panel__media {
	height: 420px;
	margin: 0;
	overflow: hidden;
	border-radius: calc(var(--radius) - 4px);
	box-shadow: 0 18px 42px rgba(37,55,62,.13);
}

.professional-panel__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.professional-panel h2 {
	font-size: clamp(2rem, 3vw, 3.5rem);
}

.professional-panel p {
	margin: 26px 0 0;
	color: var(--muted);
	font-size: 16px;
	line-height: 1.75;
}

.portfolio-mosaic--compact {
	grid-auto-rows: 180px;
}

.portfolio-mosaic--compact .portfolio-tile {
	grid-column: span 4;
	grid-row: span 2;
}

.seo-section {
	background: #f8fbf9;
}

.seo-panel {
	padding: clamp(34px, 5vw, 70px);
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
}

.seo-panel h2 {
	max-width: 1060px;
	font-size: clamp(1.8rem, 2.7vw, 3rem);
}

.prose--columns {
	columns: 2;
	column-gap: 60px;
	margin-top: 34px;
}

.prose--columns p {
	break-inside: avoid;
}

.about-closing {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: clamp(44px, 8vw, 120px);
}

.about-closing figure {
	height: 500px;
}

.about-closing p {
	margin: 28px 0 0;
	color: var(--muted);
	font-size: 16px;
	line-height: 1.75;
}

.portfolio-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 34px;
}

.portfolio-filters button {
	padding: 12px 16px;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 99px;
	color: var(--ink);
	font: 750 12px "Manrope", sans-serif;
}

.portfolio-filters button.is-active {
	background: var(--accent);
	border-color: var(--accent);
}

.portfolio-gallery {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-flow: dense;
	gap: 12px;
}

.portfolio-gallery figure {
	position: relative;
	min-height: 320px;
	margin: 0;
	overflow: hidden;
	border-radius: var(--radius);
}

.portfolio-gallery__feature {
	grid-column: span 2;
	grid-row: span 2;
}

.portfolio-gallery figure[hidden] {
	display: none;
}

.portfolio-gallery img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.portfolio-gallery figcaption {
	position: absolute;
	left: 16px;
	right: auto;
	bottom: 16px;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	padding: 0;
	background: transparent;
	color: #fff;
	font-size: 11px;
	font-weight: 780;
	line-height: 1.2;
	text-shadow: 0 1px 4px rgba(18, 35, 39, .78);
}

.contacts-layout {
	display: grid;
	grid-template-columns: minmax(360px, .72fr) minmax(0, 1.28fr);
	gap: 18px;
}

.contact-card,
.map-card {
	min-height: 600px;
	background: #fff;
	border-radius: var(--radius);
	box-shadow: 0 14px 35px rgba(37,55,62,.08);
}

.contact-card {
	overflow: hidden;
	padding: 0;
}

.contact-card__visual {
	display: block;
	width: 100%;
	height: 180px;
	object-fit: cover;
}

.contact-card__content {
	padding: clamp(26px, 3vw, 42px);
}

.contact-card__brand {
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	margin-bottom: 24px;
	background: linear-gradient(145deg, var(--mint), var(--accent));
	border-radius: 18px 36px 18px 36px;
	font-family: "Unbounded", sans-serif;
	font-weight: 760;
}

.contact-card h2 {
	margin-bottom: 26px;
	font-size: 22px;
}

.contact-card__row {
	display: grid;
	grid-template-columns: 112px 1fr;
	gap: 14px;
	padding: 14px 0;
	border-top: 1px solid var(--line);
}

.contact-card__row span {
	color: var(--muted);
	font-size: 12px;
}

.contact-card__row a,
.contact-card__row strong {
	font-size: 13px;
	font-weight: 760;
}

.messenger-links--large {
	margin-top: 28px;
}

.messenger-links--large a {
	width: auto;
	height: 40px;
	padding: 0 14px;
	font-size: 11px;
	font-weight: 780;
}

.map-card {
	position: relative;
	overflow: hidden;
}

.map-card iframe {
	width: 100%;
	height: 100%;
	min-height: 600px;
	border: 0;
	filter: saturate(.55) contrast(.94);
}

.map-card__caption {
	position: absolute;
	left: 24px;
	right: 24px;
	bottom: 24px;
	display: grid;
	gap: 5px;
	padding: 20px;
	background: rgba(255,255,255,.94);
	border-radius: 12px;
}

.map-card__consent {
	position: absolute;
	inset: 0;
	display: grid;
	place-content: center;
	justify-items: center;
	gap: 12px;
	padding: 30px;
	background: var(--sky);
	text-align: center;
}

.map-card__consent[hidden] {
	display: none;
}

.map-card__consent strong {
	max-width: 360px;
	font-size: clamp(17px, 2vw, 23px);
}

.map-card__consent span {
	max-width: 440px;
	font-size: 13px;
	line-height: 1.55;
}

.map-card__consent .button {
	min-height: 50px;
	margin-top: 6px;
	padding: 0 22px;
}

.map-card strong {
	font-family: "Unbounded", sans-serif;
	font-size: 14px;
}

.map-card span {
	color: var(--muted);
	font-size: 12px;
}

.article-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.article-grid article {
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
}

.article-grid article > a {
	display: block;
	padding: 22px;
}

.article-grid img {
	width: calc(100% + 44px);
	height: 260px;
	margin: -22px -22px 22px;
	object-fit: cover;
}

.article-grid time {
	color: var(--muted);
	font-size: 11px;
}

.article-grid h2 {
	margin: 12px 0;
	font-size: 20px;
}

.article-grid p {
	margin-bottom: 18px;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.6;
}

.article-grid .article-card__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--ink);
	font-size: 12px;
	font-weight: 750;
}

.article-grid article > a:hover .article-card__link,
.article-grid article > a:focus-visible .article-card__link {
	color: #55836f;
}

.article-grid__empty {
	grid-column: 1 / -1;
	padding: 40px;
}

.article-body {
	max-width: 980px;
	padding-top: 70px;
	padding-bottom: 110px;
}

.article-body > img {
	width: 100%;
	max-height: 620px;
	margin-bottom: 54px;
	object-fit: cover;
	border-radius: var(--radius);
}

.article-body .prose {
	max-width: 780px;
	margin-inline: auto;
}

.article-body .prose h2,
.article-body .prose h3 {
	margin: 44px 0 16px;
	font-family: "Unbounded", sans-serif;
	font-weight: 620;
	line-height: 1.22;
	letter-spacing: -.025em;
}

.article-body .prose h2 {
	font-size: clamp(1.45rem, 2.4vw, 2.15rem);
}

.article-body .prose h3 {
	font-size: clamp(1.15rem, 1.8vw, 1.5rem);
}

.article-body .prose p {
	font-size: clamp(16px, 1.25vw, 18px);
	line-height: 1.8;
}

@media (max-width: 1180px) {
	.site-section {
		padding-block: 78px;
	}

	.materials-feature {
		height: 560px;
	}

	.quality-panel__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.service-card--2,
	.service-card--7 {
		grid-column: span 1;
		grid-row: span 1;
	}

	.service-card--1 {
		grid-column: span 2;
		grid-row: span 1;
	}

	.service-card--1 .service-card__content h3 {
		font-size: 1.45rem;
	}

	.service-card--1 .service-card__content ul {
		display: flex;
	}

	.about-layout,
	.request-panel,
	.inner-hero__grid {
		grid-template-columns: 1fr 1fr;
	}

	.footer-main {
		grid-template-columns: 1.2fr 1fr 1fr;
	}

	.footer-contact {
		grid-column: 2 / -1;
	}

	.process-track--service {
		grid-template-columns: repeat(3, 1fr);
		row-gap: 40px;
	}

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

@media (max-width: 900px) {
	.hero-photo--main,
	.hero-photo--project,
	.hero-photo--detail {
		animation: none !important;
	}

	.section-heading--split,
	.materials-layout,
	.risk-board,
	.about-layout,
	.detail-grid,
	.includes-panel,
	.when-layout,
	.about-closing,
	.contacts-layout,
	.request-panel,
	.inner-hero__grid,
	.professional-panel {
		grid-template-columns: 1fr;
	}

	.section-heading--split {
		align-items: start;
	}

	.materials-feature {
		position: relative;
		top: auto;
		height: 460px;
	}

	.risk-board__photo {
		height: 430px;
	}

	.service-grid,
	.service-type-grid,
	.why-grid,
	.why-grid--four,
	.article-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.offer-banner {
		grid-template-columns: 1fr;
		padding-top: 330px;
	}

	.offer-banner__image {
		width: 100%;
		height: 360px;
	}

	.offer-banner::after {
		left: 0;
		top: 250px;
		right: 0;
		bottom: auto;
		width: auto;
		height: 130px;
		background: linear-gradient(transparent, #eaf6fa 78%);
	}

	.offer-banner__copy,
	.offer-banner__items {
		grid-column: 1;
	}

	.portfolio-tile,
	.portfolio-tile--1,
	.portfolio-tile--4,
	.portfolio-tile--6,
	.portfolio-tile--9 {
		grid-column: span 6;
		grid-row: span 2;
	}

	.process-track {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		row-gap: 38px;
	}

	.about-visual {
		padding-right: 90px;
	}

	.review-carousel__track {
		grid-auto-columns: calc((100% - 14px) / 2);
	}

	.request-panel {
		gap: 46px;
	}

	.inner-hero__copy {
		padding-bottom: 20px;
	}

	.inner-hero__media {
		height: 520px;
	}

	.professional-panel__media {
		width: 100%;
		height: 390px;
	}

	.portfolio-gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.footer-main {
		grid-template-columns: repeat(2, 1fr);
	}

	.footer-contact {
		grid-column: auto;
	}
}

@media (max-width: 620px) {
	.cookie-banner {
		align-items: stretch;
		flex-direction: column;
		gap: 18px;
		padding: 20px;
	}

	.cookie-banner__actions {
		flex-direction: column-reverse;
	}

	.cookie-banner__actions .button {
		width: 100%;
	}

	.site-section {
		padding-block: 58px;
	}

	h2 {
		font-size: clamp(1.75rem, 8vw, 2.5rem);
	}

	.eyebrow {
		margin-bottom: 14px;
		font-size: 10px;
	}

	.section-heading {
		margin-bottom: 34px;
	}

	.section-heading--split {
		gap: 22px;
	}

	.material-cards,
	.risk-board__cards,
	.service-grid,
	.service-type-grid,
	.why-grid,
	.why-grid--four,
	.article-grid,
	.offer-banner__items,
	.request-form,
	.includes-panel ul,
	.footer-main {
		grid-template-columns: 1fr;
	}

	.materials-feature,
	.risk-board__photo,
	.about-visual figure,
	.inner-hero__media,
	.about-closing figure {
		height: 380px;
	}

	.material-card {
		min-height: 280px;
	}

	.risk-card:first-child {
		grid-column: auto;
	}

	.quality-panel__heading {
		grid-template-columns: 1fr;
	}

	.quality-panel__seal {
		width: 70px;
		height: 70px;
	}

	.quality-panel__list {
		grid-template-columns: 1fr;
	}

	.quality-panel__price,
	.portfolio-actions,
	.footer-bottom {
		align-items: stretch;
		flex-direction: column;
	}

	.quality-panel__price {
		display: flex;
	}

	.quality-panel__price .button {
		width: 100%;
	}

	.service-grid {
		grid-auto-rows: 540px;
	}

	.service-card--1 {
		grid-column: auto;
	}

	.offer-banner {
		padding-top: 260px;
	}

	.offer-banner__image {
		height: 290px;
	}

	.offer-banner::after {
		top: 200px;
	}

	.offer-banner__copy,
	.offer-banner__items {
		padding-left: 24px;
		padding-right: 24px;
	}

	.offer-banner__copy {
		padding-top: 38px;
	}

	.offer-banner__items {
		padding-bottom: 28px;
	}

	.portfolio-mosaic {
		grid-auto-rows: 132px;
	}

	.portfolio-tile,
	.portfolio-tile--1,
	.portfolio-tile--4,
	.portfolio-tile--6,
	.portfolio-tile--9 {
		grid-column: span 12;
		grid-row: span 2;
	}

	.portfolio-actions {
		display: flex;
		gap: 20px;
	}

	.process-track,
	.process-track--service {
		grid-template-columns: 1fr;
	}

	.process-track li {
		padding-right: 0;
	}

	.process-track__visual i {
		right: 72%;
	}

	.about-visual {
		padding-right: 0;
		padding-bottom: 180px;
	}

	.stat-stack {
		top: auto;
		left: 14px;
		right: 14px;
		bottom: 0;
		grid-template-columns: repeat(3, 1fr);
		width: auto;
		transform: none;
	}

	.stat-stack > div {
		padding: 14px;
	}

	.stat-stack strong {
		font-size: 19px;
	}

	.stat-stack span {
		font-size: 9px;
	}

	.review-carousel__track {
		grid-auto-columns: 100%;
	}

	.request-panel {
		padding: 26px 20px;
	}

	.request-form__wide {
		grid-column: auto;
	}

	.footer-main {
		gap: 34px;
	}

	.footer-bottom {
		display: flex;
	}

	.inner-hero,
	.compact-hero {
		padding-top: 112px;
	}

	.inner-hero__copy h1,
	.compact-hero h1 {
		font-size: clamp(1.72rem, 7.4vw, 2.25rem);
	}

	.inner-hero__copy h1 {
		font-size: 1.5rem;
		overflow-wrap: normal;
	}

	.service-page h2 {
		font-size: clamp(1.5rem, 6.3vw, 2rem);
	}

	.inner-hero__media figcaption {
		left: 14px;
		bottom: 14px;
	}

	.inner-hero__actions {
		flex-direction: column;
	}

	.inner-hero__actions .button {
		width: 100%;
	}

	.service-type-grid article {
		min-height: 320px;
	}

	.professional-panel {
		padding: 28px 22px;
	}

	.prose--columns {
		columns: 1;
	}

	.portfolio-gallery {
		grid-template-columns: 1fr;
	}

	.portfolio-gallery figure,
	.portfolio-gallery__feature {
		grid-column: auto;
		grid-row: auto;
		min-height: 360px;
	}

	.contact-card,
	.map-card,
	.map-card iframe {
		min-height: 520px;
	}
}
