@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/montserrat-latin-variable.woff2") format("woff2");
}

:root {
	--ps-navy: #292f86;
	--ps-navy-deep: #121a50;
	--ps-ink: #0c2d3f;
	--ps-ink-soft: #45616e;
	--ps-cyan: #09aee4;
	--ps-blue: #4998d2;
	--ps-aqua: #dff5f9;
	--ps-aqua-soft: #f0fafc;
	--ps-foam: #f7fbfc;
	--ps-sand: #ece4d8;
	--ps-line: rgba(12, 45, 63, 0.14);
	--ps-white: #ffffff;
	--ps-whatsapp: #1fbf64;
	--ps-shadow: 0 28px 70px rgba(9, 43, 61, 0.14);
	--ps-shadow-soft: 0 18px 50px rgba(9, 43, 61, 0.08);
	--ps-radius-sm: 12px;
	--ps-radius: 24px;
	--ps-radius-lg: 42px;
	--ps-container: 1220px;
	--ps-header-height: 88px;
}

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

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--ps-header-height) + 24px);
}

body {
	margin: 0;
	background: var(--ps-white);
	color: var(--ps-ink);
	font-family: "Montserrat", "Segoe UI", sans-serif;
	font-size: 16px;
	font-weight: 430;
	line-height: 1.65;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

body.menu-open {
	overflow: hidden;
}

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

img {
	height: auto;
}

button,
input,
textarea,
select {
	font: inherit;
}

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

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

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

p:last-child {
	margin-bottom: 0;
}

h1,
h2,
h3 {
	color: var(--ps-ink);
	font-weight: 590;
	letter-spacing: -0.045em;
	line-height: 1.04;
}

h1 {
	font-size: clamp(3rem, 6.15vw, 5.85rem);
}

h2 {
	font-size: clamp(2.35rem, 4.25vw, 4.3rem);
}

h3 {
	font-size: clamp(1.3rem, 2vw, 1.8rem);
}

::selection {
	background: var(--ps-cyan);
	color: var(--ps-navy-deep);
}

:focus-visible {
	border-radius: 4px;
	outline: 3px solid var(--ps-cyan);
	outline-offset: 4px;
}

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

.section {
	padding-block: clamp(92px, 10vw, 156px);
}

.section-kicker,
.eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 22px;
	color: var(--ps-navy);
	font-size: 0.73rem;
	font-weight: 760;
	letter-spacing: 0.13em;
	line-height: 1.3;
	text-transform: uppercase;
}

.eyebrow span {
	display: block;
	width: 38px;
	height: 1px;
	background: currentColor;
}

.section-kicker--light {
	color: #7dddf3;
}

.section-heading {
	max-width: 810px;
	margin-bottom: clamp(52px, 7vw, 84px);
}

.section-heading h2 {
	margin-bottom: 24px;
}

.section-heading > p:last-child {
	max-width: 680px;
	color: var(--ps-ink-soft);
	font-size: 1.04rem;
}

.section-heading--row {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
	gap: 72px;
	align-items: end;
	max-width: none;
}

.section-heading--row h2 {
	max-width: 790px;
	margin-bottom: 0;
}

.section-heading--row > p {
	margin-bottom: 6px;
}

.section-lead {
	color: var(--ps-ink-soft);
	font-size: clamp(1.03rem, 1.4vw, 1.2rem);
}

.skip-link {
	position: fixed;
	z-index: 10000;
	top: 16px;
	left: 16px;
	padding: 12px 18px;
	border-radius: 8px;
	background: var(--ps-navy-deep);
	color: var(--ps-white);
	font-size: 0.875rem;
	font-weight: 700;
	transform: translateY(-150%);
	transition: transform 180ms ease;
}

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

.button {
	display: inline-flex;
	min-height: 54px;
	align-items: center;
	justify-content: center;
	gap: 11px;
	padding: 15px 22px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: 0.88rem;
	font-weight: 690;
	letter-spacing: -0.01em;
	line-height: 1.2;
	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		color 180ms ease,
		transform 180ms ease,
		box-shadow 180ms ease;
}

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

.button--primary {
	background: var(--ps-navy);
	box-shadow: 0 14px 34px rgba(41, 47, 134, 0.22);
	color: var(--ps-white);
}

.button--primary:hover {
	background: var(--ps-navy-deep);
	box-shadow: 0 18px 40px rgba(18, 26, 80, 0.26);
}

.button--secondary {
	border-color: rgba(41, 47, 134, 0.35);
	background: transparent;
	color: var(--ps-navy);
}

.button--secondary:hover {
	border-color: var(--ps-navy);
	background: var(--ps-navy);
	color: var(--ps-white);
}

.button--dark {
	background: var(--ps-ink);
	color: var(--ps-white);
}

.button--dark:hover {
	background: var(--ps-navy-deep);
}

.button--text {
	padding-inline: 6px;
	color: var(--ps-ink);
}

.button--text:hover {
	color: var(--ps-navy);
}

.button__icon {
	width: 20px;
	height: 20px;
	filter: brightness(0) invert(1);
}

.button__arrow {
	font-size: 1.05rem;
}

.button:hover .button__arrow,
.inline-link:hover span:last-child {
	transform: none;
}

.button-row {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: center;
}

.inline-link {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding-bottom: 8px;
	border-bottom: 1px solid rgba(41, 47, 134, 0.42);
	color: var(--ps-navy);
	font-size: 0.91rem;
	font-weight: 720;
}

/* Header */
.site-header {
	position: fixed;
	z-index: 1000;
	top: 0;
	right: 0;
	left: 0;
	height: var(--ps-header-height);
	border-bottom: 1px solid transparent;
	background: rgba(255, 255, 255, 0.96);
	transition:
		height 220ms ease,
		border-color 220ms ease,
		box-shadow 220ms ease;
}

.site-header.is-scrolled {
	height: 76px;
	border-color: var(--ps-line);
	box-shadow: 0 10px 36px rgba(12, 45, 63, 0.07);
}

.site-header__inner {
	display: flex;
	height: 100%;
	align-items: center;
	justify-content: space-between;
}

.brand {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
}

.brand img {
	width: 194px;
	height: auto;
}

.site-nav {
	display: flex;
	align-items: center;
	gap: 31px;
}

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

.site-nav__list a {
	position: relative;
	padding-block: 13px;
	color: #294554;
	font-size: 0.78rem;
	font-weight: 650;
	letter-spacing: 0.01em;
}

.site-nav__list a::after {
	position: absolute;
	right: 0;
	bottom: 7px;
	left: 0;
	height: 1px;
	background: var(--ps-cyan);
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 180ms ease;
}

.site-nav__list a:hover::after,
.site-nav__list a.is-active::after {
	transform: scaleX(1);
	transform-origin: left;
}

.button--header {
	min-height: 46px;
	padding: 13px 19px;
	background: var(--ps-navy);
	color: var(--ps-white);
	font-size: 0.77rem;
}

.button--header:hover {
	background: var(--ps-navy-deep);
}

.menu-toggle {
	display: none;
	width: 46px;
	height: 46px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	padding: 0;
	border: 1px solid var(--ps-line);
	border-radius: 50%;
	background: transparent;
	color: var(--ps-ink);
}

.menu-toggle span {
	display: block;
	width: 18px;
	height: 1.5px;
	background: currentColor;
	transition:
		transform 180ms ease,
		opacity 180ms ease;
}

.menu-toggle[aria-expanded="true"] span:nth-child(1) {
	transform: translateY(6.5px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:nth-child(2) {
	opacity: 0;
}

.menu-toggle[aria-expanded="true"] span:nth-child(3) {
	transform: translateY(-6.5px) rotate(-45deg);
}

/* Hero */
.hero {
	position: relative;
	min-height: 100svh;
	overflow: hidden;
	padding: calc(var(--ps-header-height) + 72px) 0 84px;
	background:
		radial-gradient(circle at 78% 16%, rgba(9, 174, 228, 0.11), transparent 32%),
		linear-gradient(135deg, #fff 0%, #fff 63%, #f0fafc 100%);
}

.hero__grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(390px, 0.92fr);
	gap: clamp(56px, 7vw, 104px);
	align-items: center;
}

.hero__copy {
	padding-top: 24px;
}

.hero h1 {
	max-width: 800px;
	margin-bottom: 28px;
}

.hero h1 em {
	position: relative;
	color: var(--ps-navy);
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 500;
	letter-spacing: -0.055em;
}

.hero h1 em::after {
	position: absolute;
	right: 2%;
	bottom: -3px;
	left: 2%;
	height: 5px;
	border-radius: 50%;
	background: var(--ps-cyan);
	content: "";
	opacity: 0.65;
	transform: rotate(-1deg);
}

.hero__lead {
	max-width: 680px;
	margin-bottom: 34px;
	color: var(--ps-ink-soft);
	font-size: clamp(1.03rem, 1.45vw, 1.22rem);
	line-height: 1.7;
}

.hero__actions {
	margin-bottom: 49px;
}

.hero__proof {
	display: grid;
	max-width: 760px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid var(--ps-line);
}

.hero__proof div {
	padding: 21px 20px 0 0;
}

.hero__proof div + div {
	padding-left: 20px;
	border-left: 1px solid var(--ps-line);
}

.hero__proof strong,
.hero__proof span {
	display: block;
}

.hero__proof strong {
	margin-bottom: 4px;
	color: var(--ps-ink);
	font-size: 0.78rem;
	font-weight: 760;
	letter-spacing: 0.01em;
}

.hero__proof span {
	color: #68808a;
	font-size: 0.69rem;
	line-height: 1.5;
}

.hero__visual {
	position: relative;
	width: min(100%, 510px);
	justify-self: end;
	padding: 0 28px 32px 0;
}

.hero__photo {
	position: relative;
	z-index: 2;
	margin: 0;
	overflow: hidden;
	border: 10px solid var(--ps-white);
	border-radius: 210px 210px 28px 28px;
	box-shadow: var(--ps-shadow);
}

.hero__photo::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(8, 31, 45, 0.42), transparent 32%);
	content: "";
	pointer-events: none;
}

.hero__image {
	width: 100%;
	height: min(67vh, 720px);
	min-height: 590px;
	object-fit: cover;
	object-position: center 56%;
}

.hero__photo figcaption {
	position: absolute;
	z-index: 2;
	right: 26px;
	bottom: 24px;
	left: 26px;
	color: var(--ps-white);
}

.hero__photo figcaption span,
.hero__photo figcaption strong {
	display: block;
}

.hero__photo figcaption span {
	margin-bottom: 3px;
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.hero__photo figcaption strong {
	font-size: 0.85rem;
	font-weight: 600;
}

.hero__seal {
	position: absolute;
	z-index: 4;
	top: 14%;
	right: -18px;
	display: grid;
	width: 116px;
	height: 116px;
	place-content: center;
	border: 1px solid rgba(255, 255, 255, 0.75);
	border-radius: 50%;
	background: rgba(41, 47, 134, 0.94);
	box-shadow: 0 18px 45px rgba(18, 26, 80, 0.26);
	color: var(--ps-white);
	text-align: center;
	transform: rotate(7deg);
}

.hero__seal span,
.hero__seal strong {
	display: block;
}

.hero__seal span {
	font-size: 0.56rem;
	font-weight: 730;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.hero__seal strong {
	margin-top: 2px;
	font-family: Georgia, serif;
	font-size: 2rem;
	font-weight: 500;
	letter-spacing: -0.04em;
}

.hero__detail {
	position: absolute;
	z-index: 3;
	right: -8px;
	bottom: 0;
	display: flex;
	width: 230px;
	align-items: center;
	gap: 13px;
	padding: 10px;
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.95);
	box-shadow: var(--ps-shadow-soft);
	color: var(--ps-ink);
	font-size: 0.64rem;
	font-weight: 700;
	line-height: 1.45;
}

.hero__detail picture {
	flex: 0 0 74px;
}

.hero__detail-image {
	width: 74px;
	height: 58px;
	border-radius: 9px;
	object-fit: cover;
}

.hero__ripple {
	position: absolute;
	z-index: 1;
	border: 1px solid rgba(9, 174, 228, 0.18);
	border-radius: 50%;
	pointer-events: none;
}

.hero__ripple--one {
	right: -170px;
	bottom: -170px;
	width: 610px;
	height: 310px;
	transform: rotate(-17deg);
}

.hero__ripple--two {
	right: -105px;
	bottom: -105px;
	width: 470px;
	height: 215px;
	transform: rotate(-17deg);
}

/* Intro */
.intro {
	padding-block: clamp(88px, 10vw, 148px);
	border-bottom: 1px solid var(--ps-line);
	background: var(--ps-white);
}

.intro__grid {
	display: grid;
	grid-template-columns: 0.37fr 1.63fr;
	gap: clamp(54px, 8vw, 118px);
}

.intro .section-kicker {
	padding-top: 10px;
}

.intro h2 {
	max-width: 930px;
	margin-bottom: 28px;
}

.intro__grid > div > p {
	max-width: 720px;
	color: var(--ps-ink-soft);
	font-size: 1.08rem;
}

/* Cleaning */
.cleaning {
	background: var(--ps-aqua-soft);
}

.cleaning__grid {
	display: grid;
	grid-template-columns: minmax(340px, 0.85fr) minmax(0, 1.15fr);
	gap: clamp(56px, 8vw, 112px);
	align-items: center;
}

.cleaning__visual {
	position: relative;
	margin: 0;
	padding: 0 0 32px 32px;
}

.cleaning__visual::before {
	position: absolute;
	z-index: 0;
	bottom: 0;
	left: 0;
	width: 72%;
	height: 70%;
	border-radius: var(--ps-radius);
	background: var(--ps-aqua);
	content: "";
}

.cleaning__visual picture {
	position: relative;
	z-index: 1;
}

.cleaning__image {
	width: 100%;
	aspect-ratio: 0.78;
	border-radius: 180px 180px var(--ps-radius) var(--ps-radius);
	box-shadow: var(--ps-shadow-soft);
	object-fit: cover;
	object-position: center 65%;
}

.cleaning__visual figcaption {
	position: absolute;
	z-index: 2;
	right: -22px;
	bottom: 58px;
	padding: 14px 18px;
	border-radius: 10px;
	background: var(--ps-white);
	box-shadow: var(--ps-shadow-soft);
	color: var(--ps-ink);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.03em;
}

.cleaning__content > h2 {
	margin-bottom: 28px;
}

.cleaning__content > .section-lead {
	max-width: 680px;
	margin-bottom: 40px;
}

.care-list {
	margin-bottom: 38px;
	border-top: 1px solid var(--ps-line);
}

.care-list article {
	display: grid;
	grid-template-columns: 0.45fr 1fr;
	gap: 24px 35px;
	padding-block: 25px;
	border-bottom: 1px solid var(--ps-line);
}

.care-list__label {
	grid-row: span 2;
	margin: 3px 0 0;
	color: var(--ps-navy);
	font-size: 0.67rem;
	font-weight: 760;
	letter-spacing: 0.09em;
	line-height: 1.4;
	text-transform: uppercase;
}

.care-list h3 {
	margin-bottom: 0;
	font-size: 1.17rem;
	letter-spacing: -0.025em;
	line-height: 1.3;
}

.care-list article > p:last-child {
	grid-column: 2;
	margin: -12px 0 0;
	color: var(--ps-ink-soft);
	font-size: 0.88rem;
}

/* Audiences */
.audiences {
	padding-block: clamp(92px, 10vw, 148px);
	background: var(--ps-white);
}

.audiences__grid {
	display: grid;
	grid-template-columns: 1.03fr 0.97fr;
	gap: 24px;
}

.audience-card {
	position: relative;
	min-height: 430px;
	overflow: hidden;
	border-radius: var(--ps-radius);
}

.audience-card--image {
	grid-row: span 2;
	min-height: 884px;
}

.audience-card--image::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(8, 35, 49, 0.83), transparent 58%);
	content: "";
}

.audience-card__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.audience-card__overlay {
	position: absolute;
	z-index: 2;
	right: 42px;
	bottom: 42px;
	left: 42px;
	color: var(--ps-white);
}

.audience-card__overlay p,
.audience-card__eyebrow {
	margin-bottom: 13px;
	font-size: 0.69rem;
	font-weight: 760;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.audience-card__overlay h3 {
	max-width: 470px;
	margin-bottom: 0;
	color: var(--ps-white);
	font-size: clamp(2rem, 3.3vw, 3.25rem);
}

.audience-card--copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(35px, 5vw, 70px);
	background: var(--ps-sand);
}

.audience-card--copy h3 {
	max-width: 510px;
	margin-bottom: 22px;
	font-size: clamp(1.8rem, 3vw, 2.75rem);
}

.audience-card--copy > p:not(.audience-card__eyebrow) {
	color: #52636a;
}

.plain-list {
	display: grid;
	gap: 10px;
	margin: 20px 0 0;
	padding: 20px 0 0;
	border-top: 1px solid rgba(12, 45, 63, 0.16);
	list-style: none;
}

.plain-list li {
	position: relative;
	padding-left: 18px;
	font-size: 0.85rem;
	font-weight: 600;
}

.plain-list li::before {
	position: absolute;
	top: 0.67em;
	left: 0;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--ps-cyan);
	content: "";
}

.audience-card--water {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: clamp(35px, 5vw, 64px);
	background:
		radial-gradient(circle at 18% 12%, rgba(142, 223, 242, 0.35), transparent 38%),
		linear-gradient(150deg, #09aee4, #292f86);
	color: var(--ps-white);
}

.audience-card--water .audience-card__eyebrow {
	color: #84e7f8;
}

.audience-card--water blockquote {
	max-width: 520px;
	margin-bottom: 24px;
	font-family: Georgia, serif;
	font-size: clamp(1.65rem, 3vw, 2.55rem);
	font-style: italic;
	font-weight: 500;
	letter-spacing: -0.025em;
	line-height: 1.18;
}

.audience-card--water > span {
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	opacity: 0.75;
	text-transform: uppercase;
}

/* Services */
.services {
	background: #f5f9fa;
}

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

.service-card {
	overflow: hidden;
	border: 1px solid rgba(12, 45, 63, 0.09);
	border-radius: var(--ps-radius);
	background: var(--ps-white);
	box-shadow: 0 18px 50px rgba(12, 45, 63, 0.05);
	transition:
		transform 240ms ease,
		box-shadow 240ms ease;
}

.service-card:hover {
	box-shadow: var(--ps-shadow-soft);
	transform: translateY(-5px);
}

.service-card__image {
	height: 360px;
	overflow: hidden;
}

.service-card__photo {
	width: 100%;
	height: 100%;
	transition: transform 700ms cubic-bezier(0.2, 0.65, 0.25, 1);
	object-fit: cover;
}

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

.service-card__content {
	padding: 30px 28px 34px;
}

.service-card__label {
	margin-bottom: 13px;
	color: var(--ps-navy);
	font-size: 0.65rem;
	font-weight: 780;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.service-card h3 {
	margin-bottom: 17px;
	font-size: 1.45rem;
	line-height: 1.2;
}

.service-card__content > p:last-child {
	color: var(--ps-ink-soft);
	font-size: 0.88rem;
}

.service-card--wide {
	display: grid;
	grid-column: 1 / -1;
	grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr) auto;
	gap: 48px;
	align-items: center;
	padding: clamp(35px, 5vw, 62px);
	background:
		linear-gradient(115deg, rgba(223, 245, 249, 0.68), transparent 60%),
		var(--ps-white);
}

.service-card--wide:hover {
	transform: translateY(-3px);
}

.service-card--wide h3 {
	max-width: 600px;
	margin-bottom: 0;
	font-size: clamp(1.9rem, 3vw, 3rem);
}

.service-card--wide > p {
	margin: 0;
	color: var(--ps-ink-soft);
}

.service-card--wide .inline-link {
	white-space: nowrap;
}

/* Portfolio */
.portfolio {
	background: var(--ps-white);
}

.portfolio__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 34px 22px;
}

.portfolio__item {
	grid-column: span 4;
	margin: 0;
}

.portfolio__item--tall {
	grid-row: span 2;
	grid-column: span 5;
}

.portfolio__item--wide {
	grid-column: span 7;
}

.portfolio__item:nth-child(3) {
	grid-column: span 3;
}

.portfolio__item:nth-child(4) {
	grid-column: span 4;
}

.portfolio__item:nth-child(5) {
	grid-column: span 7;
}

.portfolio__button {
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
	padding: 0;
	border: 0;
	border-radius: var(--ps-radius-sm);
	background: var(--ps-aqua-soft);
	color: inherit;
	cursor: zoom-in;
	text-align: left;
}

.portfolio__button picture {
	width: 100%;
}

.portfolio__image {
	width: 100%;
	height: 330px;
	transition:
		transform 650ms cubic-bezier(0.2, 0.65, 0.25, 1),
		filter 350ms ease;
	object-fit: cover;
}

.portfolio__item--tall .portfolio__image {
	height: 750px;
}

.portfolio__item--wide .portfolio__image {
	height: 345px;
}

.portfolio__button:hover .portfolio__image {
	filter: saturate(1.06);
	transform: scale(1.025);
}

.portfolio__expand {
	position: absolute;
	right: 18px;
	bottom: 18px;
	padding: 9px 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 8px 25px rgba(12, 45, 63, 0.13);
	color: var(--ps-ink);
	font-size: 0.63rem;
	font-weight: 730;
	opacity: 0;
	transform: translateY(6px);
	transition:
		opacity 180ms ease,
		transform 180ms ease;
}

.portfolio__button:hover .portfolio__expand,
.portfolio__button:focus-visible .portfolio__expand {
	opacity: 1;
	transform: translateY(0);
}

.portfolio__item figcaption {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	padding: 15px 3px 0;
}

.portfolio__item figcaption strong {
	font-size: 0.82rem;
	font-weight: 730;
}

.portfolio__item figcaption span {
	color: #70858d;
	font-size: 0.67rem;
}

.gallery-dialog {
	width: min(94vw, 1140px);
	max-width: none;
	max-height: 94vh;
	overflow: visible;
	padding: 0;
	border: 0;
	border-radius: 18px;
	background: var(--ps-white);
	box-shadow: 0 30px 90px rgba(3, 19, 28, 0.38);
}

.gallery-dialog::backdrop {
	background: rgba(5, 20, 28, 0.82);
	backdrop-filter: blur(8px);
}

.gallery-dialog__media {
	display: grid;
	max-height: calc(94vh - 62px);
	place-items: center;
	overflow: hidden;
	border-radius: 18px 18px 0 0;
	background: #071c27;
}

.gallery-dialog__media img {
	width: 100%;
	max-height: calc(94vh - 62px);
	object-fit: contain;
}

.gallery-dialog > p {
	height: 62px;
	margin: 0;
	padding: 20px 24px;
	color: var(--ps-ink);
	font-size: 0.8rem;
	font-weight: 680;
}

.gallery-dialog__close {
	position: absolute;
	z-index: 2;
	top: 14px;
	right: 14px;
	display: grid;
	width: 44px;
	height: 44px;
	place-items: center;
	padding: 0 0 3px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	box-shadow: 0 8px 25px rgba(3, 19, 28, 0.22);
	color: var(--ps-ink);
	cursor: pointer;
	font-size: 1.75rem;
	line-height: 1;
}

/* Transformation */
.transformation {
	background: var(--ps-sand);
}

.transformation__grid {
	display: grid;
	grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.28fr);
	gap: clamp(52px, 8vw, 108px);
	align-items: center;
}

.transformation__copy h2 {
	margin-bottom: 25px;
}

.transformation__copy > p:not(.section-kicker) {
	margin-bottom: 31px;
	color: #59666a;
	font-size: 1.02rem;
}

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

.transformation__comparison figure {
	position: relative;
	margin: 0;
	overflow: hidden;
	border: 8px solid rgba(255, 255, 255, 0.68);
	border-radius: var(--ps-radius);
	box-shadow: var(--ps-shadow-soft);
}

.transformation__image {
	width: 100%;
	height: 540px;
	object-fit: cover;
}

.transformation__comparison figure:first-child .transformation__image {
	object-position: center 68%;
}

.transformation__comparison figure:last-child .transformation__image {
	object-position: center;
}

.transformation__comparison figcaption {
	position: absolute;
	right: 14px;
	bottom: 14px;
	padding: 10px 13px;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.92);
	box-shadow: 0 7px 22px rgba(12, 45, 63, 0.13);
	color: var(--ps-ink);
	font-size: 0.64rem;
	font-weight: 760;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* Legacy */
.legacy {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 15% 20%, rgba(9, 174, 228, 0.13), transparent 35%),
		var(--ps-navy-deep);
	color: rgba(255, 255, 255, 0.76);
}

.legacy::after {
	position: absolute;
	right: -180px;
	bottom: -210px;
	width: 610px;
	height: 290px;
	border: 1px solid rgba(125, 221, 243, 0.17);
	border-radius: 50%;
	content: "";
	transform: rotate(-17deg);
}

.legacy__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(340px, 0.86fr) minmax(0, 1.14fr);
	gap: clamp(60px, 8vw, 116px);
	align-items: center;
}

.legacy__visual {
	position: relative;
	padding: 24px 0 0 24px;
}

.legacy__visual::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 64%;
	height: 72%;
	border: 1px solid rgba(125, 221, 243, 0.33);
	border-radius: var(--ps-radius);
	content: "";
}

.legacy__image {
	position: relative;
	width: 100%;
	aspect-ratio: 0.78;
	border-radius: 170px 170px var(--ps-radius) var(--ps-radius);
	box-shadow: 0 30px 80px rgba(3, 11, 42, 0.34);
	object-fit: cover;
}

.legacy__year {
	position: absolute;
	right: -30px;
	bottom: 48px;
	padding: 19px 24px 22px;
	border-radius: 12px;
	background: var(--ps-cyan);
	box-shadow: 0 18px 48px rgba(3, 11, 42, 0.26);
	color: var(--ps-navy-deep);
	text-align: center;
	transform: rotate(-3deg);
}

.legacy__year span,
.legacy__year strong {
	display: block;
}

.legacy__year span {
	font-size: 0.58rem;
	font-weight: 780;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.legacy__year strong {
	font-family: Georgia, serif;
	font-size: 2.55rem;
	font-weight: 500;
	letter-spacing: -0.05em;
	line-height: 1;
}

.legacy__content h2 {
	margin-bottom: 29px;
	color: var(--ps-white);
}

.legacy__lead {
	margin-bottom: 21px;
	color: var(--ps-white);
	font-size: clamp(1.08rem, 1.5vw, 1.25rem);
	line-height: 1.65;
}

.legacy__content > p:not(.section-kicker, .legacy__lead) {
	max-width: 700px;
}

.legacy__values {
	display: grid;
	margin-top: 44px;
	border-top: 1px solid rgba(255, 255, 255, 0.17);
}

.legacy__values article {
	display: grid;
	grid-template-columns: 0.28fr 0.72fr;
	gap: 30px;
	padding-block: 22px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.17);
}

.legacy__values h3 {
	margin: 2px 0 0;
	color: #7dddf3;
	font-size: 0.77rem;
	font-weight: 780;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.legacy__values p {
	margin: 0;
	font-size: 0.86rem;
}

/* Coverage */
.coverage {
	background: var(--ps-aqua-soft);
}

.coverage__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(420px, 1.08fr);
	gap: clamp(58px, 8vw, 112px);
	align-items: center;
}

.coverage__content h2 {
	margin-bottom: 25px;
}

.coverage__content > p:not(.section-kicker, .coverage__note) {
	max-width: 670px;
	color: var(--ps-ink-soft);
	font-size: 1.02rem;
}

.coverage__groups {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
	margin-block: 36px 26px;
}

.coverage__groups > div {
	padding: 24px;
	border: 1px solid var(--ps-line);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.72);
}

.coverage__groups p {
	margin-bottom: 14px;
	color: var(--ps-navy);
	font-size: 0.66rem;
	font-weight: 780;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.coverage__groups ul {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.coverage__groups li {
	padding: 6px 9px;
	border-radius: 999px;
	background: var(--ps-aqua);
	color: #35525f;
	font-size: 0.68rem;
	font-weight: 620;
}

.coverage__note {
	max-width: 650px;
	margin-bottom: 28px;
	color: #596f78;
	font-size: 0.77rem;
}

.coverage__map {
	overflow: hidden;
	border: 10px solid var(--ps-white);
	border-radius: var(--ps-radius);
	background: var(--ps-white);
	box-shadow: var(--ps-shadow);
}

.coverage__map-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 20px 17px;
}

.coverage__map-head span,
.coverage__map-head strong {
	display: block;
}

.coverage__map-head > div > span {
	margin-bottom: 2px;
	color: #526a74;
	font-size: 0.57rem;
	font-weight: 760;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.coverage__map-head strong {
	font-size: 0.82rem;
	font-weight: 690;
}

.coverage__map-pulse {
	position: relative;
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--ps-cyan);
}

.coverage__map-pulse::after {
	position: absolute;
	inset: -6px;
	border: 1px solid var(--ps-cyan);
	border-radius: 50%;
	content: "";
	opacity: 0.42;
}

.coverage__map iframe {
	display: block;
	width: 100%;
	height: 520px;
	border: 0;
	filter: saturate(0.75) contrast(0.96);
}

.coverage__map > a {
	display: block;
	padding: 15px 20px 9px;
	color: var(--ps-navy);
	font-size: 0.66rem;
	font-weight: 720;
	text-align: right;
}

/* FAQ */
.faq {
	background: var(--ps-white);
}

.faq__grid {
	display: grid;
	grid-template-columns: minmax(280px, 0.67fr) minmax(0, 1.33fr);
	gap: clamp(60px, 9vw, 128px);
	align-items: start;
}

.faq__intro {
	position: sticky;
	top: calc(var(--ps-header-height) + 40px);
}

.faq__intro h2 {
	margin-bottom: 25px;
}

.faq__intro > p:not(.section-kicker) {
	margin-bottom: 31px;
	color: var(--ps-ink-soft);
}

.faq__list {
	border-top: 1px solid var(--ps-line);
}

.faq__item {
	border-bottom: 1px solid var(--ps-line);
}

.faq__item summary {
	display: flex;
	min-height: 86px;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	padding: 24px 2px;
	color: var(--ps-ink);
	cursor: pointer;
	font-size: clamp(0.98rem, 1.45vw, 1.18rem);
	font-weight: 610;
	letter-spacing: -0.02em;
	list-style: none;
}

.faq__item summary::-webkit-details-marker {
	display: none;
}

.faq__symbol {
	position: relative;
	width: 32px;
	height: 32px;
	flex: 0 0 32px;
	border: 1px solid rgba(41, 47, 134, 0.23);
	border-radius: 50%;
	transition:
		background-color 180ms ease,
		border-color 180ms ease;
}

.faq__symbol::before,
.faq__symbol::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 1px;
	background: var(--ps-navy);
	content: "";
	transform: translate(-50%, -50%);
	transition: transform 180ms ease;
}

.faq__symbol::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.faq__item[open] .faq__symbol {
	border-color: var(--ps-navy);
	background: var(--ps-navy);
}

.faq__item[open] .faq__symbol::before,
.faq__item[open] .faq__symbol::after {
	background: var(--ps-white);
}

.faq__item[open] .faq__symbol::after {
	transform: translate(-50%, -50%) rotate(0deg);
}

.faq__answer {
	max-width: 760px;
	padding: 0 58px 26px 2px;
	color: var(--ps-ink-soft);
	font-size: 0.9rem;
}

/* Contact */
.contact {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 8% 85%, rgba(9, 174, 228, 0.15), transparent 34%),
		linear-gradient(135deg, #11194d, #202875);
	color: rgba(255, 255, 255, 0.78);
}

.contact::before,
.contact::after {
	position: absolute;
	border: 1px solid rgba(125, 221, 243, 0.18);
	border-radius: 50%;
	content: "";
	pointer-events: none;
}

.contact::before {
	right: -220px;
	bottom: -190px;
	width: 680px;
	height: 310px;
	transform: rotate(-16deg);
}

.contact::after {
	right: -130px;
	bottom: -105px;
	width: 500px;
	height: 210px;
	transform: rotate(-16deg);
}

.contact__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(300px, 0.8fr) minmax(450px, 1.2fr);
	gap: clamp(58px, 9vw, 124px);
	align-items: center;
}

.contact__content h2 {
	max-width: 600px;
	margin-bottom: 25px;
	color: var(--ps-white);
}

.contact__content > p:not(.section-kicker) {
	max-width: 610px;
}

.contact__guide {
	max-width: 590px;
	margin-block: 35px 28px;
	padding: 24px 26px;
	border: 1px solid rgba(255, 255, 255, 0.17);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.05);
}

.contact__guide p {
	margin-bottom: 10px;
	color: var(--ps-white);
	font-size: 0.76rem;
	font-weight: 700;
}

.contact__guide ul {
	display: grid;
	gap: 7px;
	margin: 0;
	padding-left: 19px;
	font-size: 0.8rem;
}

.contact__whatsapp {
	display: inline-flex;
	align-items: center;
	gap: 15px;
	padding: 11px 19px 11px 11px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.07);
	color: var(--ps-white);
	transition:
		background-color 180ms ease,
		transform 180ms ease;
}

.contact__whatsapp:hover {
	background: rgba(255, 255, 255, 0.12);
	transform: translateY(-2px);
}

.contact__whatsapp-icon {
	display: grid;
	width: 43px;
	height: 43px;
	place-items: center;
	border-radius: 50%;
	background: var(--ps-whatsapp);
}

.contact__whatsapp-icon img {
	width: 21px;
	filter: brightness(0) invert(1);
}

.contact__whatsapp small,
.contact__whatsapp strong {
	display: block;
}

.contact__whatsapp small {
	margin-bottom: 1px;
	font-size: 0.58rem;
	opacity: 0.68;
}

.contact__whatsapp strong {
	font-size: 0.78rem;
	font-weight: 700;
}

.contact__whatsapp > span:last-child {
	margin-left: 9px;
}

.contact__form-card {
	padding: clamp(28px, 5vw, 56px);
	border-radius: var(--ps-radius);
	background: var(--ps-white);
	box-shadow: 0 34px 90px rgba(4, 9, 35, 0.32);
	color: var(--ps-ink);
}

.contact__form-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 29px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--ps-line);
}

.contact__form-head p {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 680;
	letter-spacing: -0.025em;
}

.contact__form-head span {
	color: #596f78;
	font-size: 0.64rem;
}

.contact__form-card .wpcf7-form {
	margin: 0;
}

.form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 19px 16px;
}

.field {
	display: grid;
	gap: 8px;
	margin: 0;
	color: var(--ps-ink);
	font-size: 0.68rem;
	font-weight: 690;
	letter-spacing: 0.02em;
}

.field--wide,
.form-consent,
.form-submit,
.form-note {
	grid-column: 1 / -1;
}

.field input,
.field textarea,
.field select {
	width: 100%;
	border: 1px solid rgba(12, 45, 63, 0.17);
	border-radius: 9px;
	background: #f8fbfc;
	color: var(--ps-ink);
	font-size: 0.82rem;
	font-weight: 470;
	outline: none;
	transition:
		border-color 180ms ease,
		box-shadow 180ms ease,
		background-color 180ms ease;
}

.field input,
.field select {
	height: 51px;
	padding: 0 14px;
}

.field textarea {
	min-height: 112px;
	padding: 13px 14px;
	resize: vertical;
}

.field input:focus,
.field textarea:focus,
.field select:focus {
	border-color: var(--ps-cyan);
	background: var(--ps-white);
	box-shadow: 0 0 0 3px rgba(9, 174, 228, 0.13);
}

.field input::placeholder,
.field textarea::placeholder {
	color: #5f737c;
}

.form-consent {
	color: #5f737c;
	font-size: 0.65rem;
	font-weight: 480;
	line-height: 1.5;
}

.form-consent .wpcf7-list-item {
	margin: 0;
}

.form-consent label {
	display: flex;
	align-items: flex-start;
	gap: 9px;
}

.form-consent input {
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
	margin: 3px 0 0;
	accent-color: var(--ps-navy);
}

.form-submit {
	position: relative;
}

.form-submit input[type="submit"] {
	width: 100%;
	min-height: 54px;
	padding: 15px 24px;
	border: 0;
	border-radius: 999px;
	background: var(--ps-navy);
	box-shadow: 0 14px 34px rgba(41, 47, 134, 0.2);
	color: var(--ps-white);
	cursor: pointer;
	font-size: 0.82rem;
	font-weight: 720;
	transition:
		background-color 180ms ease,
		transform 180ms ease;
}

.form-submit input[type="submit"]:hover {
	background: var(--ps-navy-deep);
	transform: translateY(-2px);
}

.form-note {
	margin: -7px 0 0;
	color: #596f78;
	font-size: 0.58rem;
	text-align: center;
}

.wpcf7 form .wpcf7-response-output {
	margin: 18px 0 0;
	padding: 11px 13px;
	border-width: 1px;
	border-radius: 8px;
	font-size: 0.71rem;
}

.wpcf7-not-valid-tip {
	margin-top: 5px;
	color: #bf2e3e;
	font-size: 0.61rem;
	font-weight: 570;
}

.wpcf7-spinner {
	position: absolute;
	top: 50%;
	right: 14px;
	margin: -12px 0 0;
}

.form-fallback {
	padding: 24px;
	border: 1px solid var(--ps-line);
	border-radius: 12px;
	background: var(--ps-aqua-soft);
	text-align: center;
}

.form-fallback p {
	margin-bottom: 18px;
	font-size: 0.84rem;
}

/* Footer */
.site-footer {
	padding: 74px 0 24px;
	border-top: 1px solid var(--ps-line);
	background: var(--ps-white);
}

.site-footer__grid {
	display: grid;
	grid-template-columns: 1.25fr 0.55fr 0.7fr;
	gap: 70px;
	padding-bottom: 55px;
}

.brand--footer img {
	width: 188px;
}

.site-footer__brand > p {
	max-width: 430px;
	margin-top: 21px;
	color: var(--ps-ink-soft);
	font-size: 0.8rem;
}

.site-footer__title {
	margin-bottom: 19px;
	color: var(--ps-ink);
	font-size: 0.67rem;
	font-weight: 780;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.site-footer__links {
	display: grid;
	gap: 9px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__links a,
.site-footer__contact > p:not(.site-footer__title),
.site-footer__contact > a {
	color: var(--ps-ink-soft);
	font-size: 0.74rem;
}

.site-footer__links a:hover,
.site-footer__contact > a:hover {
	color: var(--ps-navy);
}

.site-footer__contact > p:not(.site-footer__title),
.site-footer__contact > a {
	display: block;
	margin-bottom: 8px;
}

.site-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding-top: 21px;
	border-top: 1px solid var(--ps-line);
	color: #7a8c93;
	font-size: 0.63rem;
}

.site-footer__bottom p {
	margin: 0;
}

.site-footer__bottom a:hover {
	color: var(--ps-navy);
}

/* Floating conversion */
.whatsapp-float {
	position: fixed;
	z-index: 900;
	right: 24px;
	bottom: 24px;
	display: inline-flex;
	min-height: 56px;
	align-items: center;
	gap: 10px;
	padding: 7px 18px 7px 7px;
	border: 1px solid rgba(255, 255, 255, 0.34);
	border-radius: 999px;
	background: var(--ps-whatsapp);
	box-shadow: 0 15px 38px rgba(14, 105, 56, 0.26);
	color: var(--ps-white);
	transition:
		opacity 180ms ease,
		visibility 180ms ease,
		transform 180ms ease,
		box-shadow 180ms ease;
}

.whatsapp-float.is-hidden {
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transform: translateY(12px);
}

.whatsapp-float:hover {
	box-shadow: 0 19px 45px rgba(14, 105, 56, 0.32);
	transform: translateY(-3px);
}

.whatsapp-float--fallback {
	background: var(--ps-navy);
}

.whatsapp-float__icon {
	display: grid;
	width: 42px;
	height: 42px;
	place-items: center;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.15);
}

.whatsapp-float__icon img {
	width: 22px;
	filter: brightness(0) invert(1);
}

.whatsapp-float__label {
	font-size: 0.72rem;
	font-weight: 720;
}

/* Generic pages */
.default-page,
.not-found {
	min-height: 72vh;
	padding: calc(var(--ps-header-height) + 90px) 0 110px;
	background: var(--ps-foam);
}

.default-page__content,
.not-found__content {
	max-width: 880px;
}

.default-page h1,
.not-found h1 {
	margin-bottom: 30px;
	font-size: clamp(2.6rem, 5vw, 4.8rem);
}

.entry-content {
	color: var(--ps-ink-soft);
}

.entry-content > * + * {
	margin-top: 1.4em;
}

.entry-content h2,
.entry-content h3 {
	margin-top: 1.6em;
	color: var(--ps-ink);
}

.entry-content h2 {
	font-size: clamp(1.8rem, 3vw, 2.65rem);
}

.entry-content h3 {
	font-size: 1.35rem;
}

.entry-content a {
	color: var(--ps-navy);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.not-found__content > p {
	max-width: 620px;
	margin-bottom: 32px;
	color: var(--ps-ink-soft);
}

/* Progressive reveal */
[data-reveal].is-reveal-ready {
	opacity: 0;
	transform: translateY(20px);
	transition:
		opacity 650ms ease,
		transform 650ms cubic-bezier(0.2, 0.65, 0.25, 1);
}

[data-reveal].is-reveal-ready.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (max-width: 1120px) {
	:root {
		--ps-header-height: 80px;
	}

	.menu-toggle {
		display: flex;
	}

	.site-nav {
		position: fixed;
		z-index: 999;
		top: var(--ps-header-height);
		right: 18px;
		left: 18px;
		display: grid;
		gap: 22px;
		max-height: calc(100vh - var(--ps-header-height) - 28px);
		padding: 30px;
		border: 1px solid var(--ps-line);
		border-radius: 18px;
		background: rgba(255, 255, 255, 0.99);
		box-shadow: var(--ps-shadow);
		opacity: 0;
		overflow-y: auto;
		pointer-events: none;
		transform: translateY(-10px);
		visibility: hidden;
		transition:
			opacity 180ms ease,
			transform 180ms ease,
			visibility 0s linear 180ms;
	}

	.site-nav.is-open {
		opacity: 1;
		pointer-events: auto;
		transform: translateY(0);
		visibility: visible;
		transition-delay: 0s;
	}

	.site-nav__list {
		display: grid;
		gap: 0;
	}

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

	.site-nav__list a {
		display: block;
		padding: 14px 2px;
		font-size: 0.9rem;
	}

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

	.button--header {
		width: 100%;
	}

	.hero__grid {
		grid-template-columns: minmax(0, 1.12fr) minmax(340px, 0.88fr);
		gap: 50px;
	}

	.hero__visual {
		padding-right: 15px;
	}

	.hero__seal {
		right: -10px;
	}

	.service-card--wide {
		grid-template-columns: 1.1fr 0.9fr;
	}

	.service-card--wide .inline-link {
		grid-column: 1 / -1;
		justify-self: start;
	}

	.coverage__grid {
		grid-template-columns: minmax(0, 0.95fr) minmax(360px, 1.05fr);
		gap: 58px;
	}
}

@media (max-width: 900px) {
	.section-heading--row,
	.intro__grid,
	.cleaning__grid,
	.transformation__grid,
	.legacy__grid,
	.coverage__grid,
	.faq__grid,
	.contact__grid {
		grid-template-columns: 1fr;
	}

	.section-heading--row {
		gap: 25px;
	}

	.section-heading--row > p {
		max-width: 680px;
	}

	.hero {
		min-height: auto;
		padding-top: calc(var(--ps-header-height) + 60px);
	}

	.hero__grid {
		grid-template-columns: 1fr;
	}

	.hero__copy {
		padding-top: 0;
	}

	.hero__visual {
		width: min(100%, 590px);
		justify-self: center;
	}

	.hero__image {
		height: min(82vh, 760px);
	}

	.intro__grid {
		gap: 16px;
	}

	.intro .section-kicker {
		padding-top: 0;
	}

	.cleaning__grid {
		gap: 64px;
	}

	.cleaning__visual {
		width: min(100%, 620px);
	}

	.audiences__grid {
		grid-template-columns: 1fr;
	}

	.audience-card--image {
		grid-row: auto;
		min-height: 680px;
	}

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

	.service-card--wide {
		grid-column: 1 / -1;
	}

	.portfolio__item,
	.portfolio__item--wide,
	.portfolio__item:nth-child(3),
	.portfolio__item:nth-child(4),
	.portfolio__item:nth-child(5) {
		grid-column: span 6;
	}

	.portfolio__item--tall {
		grid-row: auto;
	}

	.portfolio__item--tall .portfolio__image,
	.portfolio__item--wide .portfolio__image,
	.portfolio__image {
		height: 440px;
	}

	.transformation__grid {
		gap: 50px;
	}

	.legacy__grid {
		gap: 64px;
	}

	.legacy__visual {
		width: min(100%, 610px);
	}

	.coverage__map {
		width: min(100%, 720px);
	}

	.faq__grid {
		gap: 48px;
	}

	.faq__intro {
		position: static;
	}

	.faq__intro > p:not(.section-kicker) {
		max-width: 640px;
	}

	.contact__grid {
		gap: 56px;
	}

	.contact__content {
		max-width: 670px;
	}

	.site-footer__grid {
		grid-template-columns: 1fr 1fr;
	}

	.site-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (max-width: 680px) {
	:root {
		--ps-header-height: 74px;
		--ps-radius: 19px;
		--ps-radius-lg: 28px;
	}

	html {
		scroll-padding-top: calc(var(--ps-header-height) + 16px);
	}

	body {
		font-size: 15px;
	}

	.container {
		width: min(calc(100% - 30px), var(--ps-container));
	}

	.section {
		padding-block: 84px;
	}

	h1 {
		font-size: clamp(2.75rem, 13vw, 4.1rem);
	}

	h2 {
		font-size: clamp(2.2rem, 10vw, 3.3rem);
	}

	.section-kicker,
	.eyebrow {
		font-size: 0.65rem;
	}

	.site-header.is-scrolled {
		height: 68px;
	}

	.brand img {
		width: 164px;
	}

	.menu-toggle {
		width: 43px;
		height: 43px;
	}

	.site-nav {
		top: 74px;
		right: 12px;
		left: 12px;
		max-height: calc(100vh - 90px);
	}

	.hero {
		padding: calc(var(--ps-header-height) + 48px) 0 70px;
	}

	.hero__grid {
		gap: 56px;
	}

	.hero h1 {
		margin-bottom: 23px;
	}

	.hero__lead {
		font-size: 1rem;
	}

	.hero__actions {
		margin-bottom: 39px;
	}

	.hero__proof {
		grid-template-columns: 1fr;
	}

	.hero__proof div {
		display: grid;
		grid-template-columns: 0.58fr 1.42fr;
		gap: 12px;
		padding: 15px 0;
	}

	.hero__proof div + div {
		padding-left: 0;
		border-top: 1px solid var(--ps-line);
		border-left: 0;
	}

	.hero__proof strong,
	.hero__proof span {
		margin: 0;
	}

	.hero__visual {
		padding: 0 8px 24px 0;
	}

	.hero__photo {
		border-width: 7px;
		border-radius: 150px 150px 20px 20px;
	}

	.hero__image {
		height: 650px;
		min-height: 0;
	}

	.hero__seal {
		top: 11%;
		right: -3px;
		width: 95px;
		height: 95px;
	}

	.hero__seal strong {
		font-size: 1.65rem;
	}

	.hero__detail {
		right: 0;
		width: 204px;
	}

	.intro {
		padding-block: 82px;
	}

	.intro h2 {
		font-size: clamp(2.35rem, 11vw, 3.5rem);
	}

	.cleaning__visual {
		padding: 0 0 24px 20px;
	}

	.cleaning__image {
		border-radius: 130px 130px 18px 18px;
	}

	.cleaning__visual figcaption {
		right: 0;
		bottom: 38px;
	}

	.care-list article {
		display: block;
		padding-block: 23px;
	}

	.care-list__label {
		margin-bottom: 10px;
	}

	.care-list h3 {
		margin-bottom: 10px;
	}

	.care-list article > p:last-child {
		margin: 0;
	}

	.audience-card {
		min-height: 390px;
	}

	.audience-card--image {
		min-height: 570px;
	}

	.audience-card__overlay {
		right: 26px;
		bottom: 28px;
		left: 26px;
	}

	.audience-card--copy,
	.audience-card--water {
		padding: 34px 27px;
	}

	.services__grid {
		grid-template-columns: 1fr;
	}

	.service-card__image {
		height: 340px;
	}

	.service-card--wide {
		display: block;
	}

	.service-card--wide > p {
		margin-block: 22px 26px;
	}

	.portfolio__grid {
		gap: 32px 13px;
	}

	.portfolio__item,
	.portfolio__item--wide,
	.portfolio__item:nth-child(3),
	.portfolio__item:nth-child(4),
	.portfolio__item:nth-child(5) {
		grid-column: span 6;
	}

	.portfolio__item--tall .portfolio__image,
	.portfolio__item--wide .portfolio__image,
	.portfolio__image {
		height: 330px;
	}

	.portfolio__item figcaption {
		display: block;
	}

	.portfolio__item figcaption span {
		display: block;
		margin-top: 2px;
	}

	.portfolio__expand {
		display: none;
	}

	.transformation__comparison {
		gap: 10px;
	}

	.transformation__comparison figure {
		border-width: 5px;
	}

	.transformation__image {
		height: 390px;
	}

	.transformation__comparison figcaption {
		right: 8px;
		bottom: 8px;
		padding: 8px 9px;
		font-size: 0.55rem;
	}

	.legacy__visual {
		padding: 16px 0 0 16px;
	}

	.legacy__image {
		border-radius: 130px 130px 18px 18px;
	}

	.legacy__year {
		right: -4px;
		bottom: 32px;
	}

	.legacy__values article {
		display: block;
	}

	.legacy__values h3 {
		margin-bottom: 9px;
	}

	.coverage__groups {
		grid-template-columns: 1fr;
		gap: 13px;
	}

	.coverage__map {
		border-width: 6px;
	}

	.coverage__map iframe {
		height: 400px;
	}

	.faq__item summary {
		min-height: 78px;
		gap: 18px;
	}

	.faq__answer {
		padding-right: 36px;
	}

	.contact__form-card {
		padding: 30px 22px;
	}

	.contact__form-head {
		display: block;
	}

	.contact__form-head span {
		display: block;
		margin-top: 4px;
	}

	.form-grid {
		grid-template-columns: 1fr;
	}

	.field--wide,
	.form-consent,
	.form-submit,
	.form-note {
		grid-column: auto;
	}

	.site-footer {
		padding-top: 58px;
	}

	.site-footer__grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.site-footer__brand {
		grid-column: auto;
	}

	.site-footer__bottom {
		display: grid;
	}

	.whatsapp-float {
		right: 14px;
		bottom: 14px;
		min-height: 52px;
		padding-right: 15px;
	}

	.whatsapp-float__icon {
		width: 38px;
		height: 38px;
	}
}

@media (max-width: 440px) {
	.button-row .button--primary {
		width: 100%;
	}

	.hero__image {
		height: 570px;
	}

	.hero__detail {
		width: 190px;
	}

	.portfolio__item,
	.portfolio__item--wide,
	.portfolio__item:nth-child(3),
	.portfolio__item:nth-child(4),
	.portfolio__item:nth-child(5) {
		grid-column: 1 / -1;
	}

	.portfolio__item--tall .portfolio__image,
	.portfolio__item--wide .portfolio__image,
	.portfolio__image {
		height: 390px;
	}

	.transformation__image {
		height: 330px;
	}

	.coverage__map iframe {
		height: 350px;
	}

	.contact__whatsapp {
		width: 100%;
	}

	.whatsapp-float__label {
		display: none;
	}

	.whatsapp-float {
		padding: 7px;
	}
}

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

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

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

/* Premium visual revision, v1.1 */
:root {
	--ps-pool-blue: #36b8e5;
	--ps-pool-blue-soft: #8edff2;
	--ps-cyan-text: #00779e;
	--ps-pool-gradient: linear-gradient(135deg, #09aee4 0%, #4998d2 100%);
}

h1 {
	font-size: clamp(2.55rem, 4.2vw, 4.15rem);
}

h2 {
	font-size: clamp(2rem, 3.15vw, 3.2rem);
}

h3 {
	font-size: clamp(1.2rem, 1.65vw, 1.55rem);
}

.section {
	padding-block: clamp(72px, 7vw, 104px);
}

.section-kicker,
.eyebrow {
	margin-bottom: 16px;
	color: var(--ps-cyan-text);
	font-size: 0.66rem;
	letter-spacing: 0.15em;
}

.section-kicker--light {
	color: var(--ps-pool-blue-soft);
}

.section-heading {
	margin-bottom: clamp(36px, 4.5vw, 58px);
}

.section-heading h2 {
	margin-bottom: 17px;
}

.section-heading--row {
	gap: clamp(36px, 6vw, 72px);
}

.section-heading > p:last-child {
	font-size: 0.96rem;
}

.button {
	min-height: 50px;
	padding: 13px 21px;
	font-size: 0.82rem;
}

.button--primary,
.button--header {
	background: var(--ps-pool-gradient);
	box-shadow: 0 14px 34px rgba(9, 174, 228, 0.25);
	color: var(--ps-navy-deep);
}

.button--primary:hover,
.button--header:hover {
	background: linear-gradient(135deg, #58cef0 0%, #2d9ed7 100%);
	box-shadow: 0 18px 40px rgba(9, 174, 228, 0.3);
	color: var(--ps-navy-deep);
}

.button--ghost {
	border-color: rgba(255, 255, 255, 0.48);
	background: rgba(255, 255, 255, 0.08);
	color: var(--ps-white);
	backdrop-filter: blur(12px);
}

.button--ghost:hover {
	border-color: rgba(255, 255, 255, 0.82);
	background: rgba(255, 255, 255, 0.16);
}

/* Floating glass header on the one page */
.home .site-header {
	top: 16px;
	height: 70px;
	border: 0;
	background: transparent;
}

.home .site-header.is-scrolled {
	top: 8px;
	height: 66px;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.home .site-header__inner {
	width: min(calc(100% - 36px), var(--ps-container));
	height: 100%;
	padding-inline: 20px 14px;
	border: 1px solid rgba(255, 255, 255, 0.74);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	box-shadow: 0 14px 42px rgba(4, 31, 45, 0.12);
	backdrop-filter: blur(18px);
}

.home .brand img {
	width: 168px;
}

.home .site-nav {
	gap: 25px;
}

.home .site-nav__list {
	gap: 23px;
}

.home .site-nav__list a {
	font-size: 0.72rem;
}

.home .button--header {
	min-height: 42px;
	padding: 11px 18px;
}

/* Cinematic hero */
.hero {
	display: flex;
	min-height: clamp(700px, 82svh, 860px);
	align-items: flex-end;
	overflow: hidden;
	padding: 0;
	background: #092a3d;
	color: var(--ps-white);
}

.hero__background,
.hero__background picture,
.hero__wash {
	position: absolute;
	inset: 0;
}

.hero__background picture {
	display: block;
	width: 100%;
	height: 100%;
}

.hero__background-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 58% center;
	transform: scale(1.003);
}

.hero__wash {
	z-index: 1;
	background:
		linear-gradient(90deg, rgba(6, 31, 46, 0.92) 0%, rgba(7, 39, 58, 0.78) 31%, rgba(7, 39, 58, 0.28) 64%, rgba(7, 39, 58, 0.08) 100%),
		linear-gradient(0deg, rgba(5, 27, 41, 0.62) 0%, transparent 45%);
}

.hero__content {
	position: relative;
	z-index: 2;
	padding-top: 155px;
	padding-bottom: 112px;
}

.hero__copy {
	max-width: 720px;
	padding: 0;
}

.hero .eyebrow {
	color: var(--ps-pool-blue-soft);
}

.hero h1 {
	max-width: 720px;
	margin-bottom: 21px;
	color: var(--ps-white);
	font-weight: 570;
	letter-spacing: -0.052em;
	text-wrap: balance;
}

.hero h1 span {
	color: var(--ps-pool-blue-soft);
}

.hero__lead {
	max-width: 580px;
	margin-bottom: 29px;
	color: rgba(255, 255, 255, 0.82);
	font-size: clamp(1rem, 1.25vw, 1.13rem);
	line-height: 1.65;
}

.hero__actions {
	margin-bottom: 37px;
}

.hero .button__icon {
	filter: brightness(0) invert(1);
}

.hero__proof {
	max-width: 700px;
	border-color: rgba(255, 255, 255, 0.28);
}

.hero__proof div {
	padding-top: 17px;
}

.hero__proof div + div {
	border-color: rgba(255, 255, 255, 0.2);
}

.hero__proof strong {
	color: var(--ps-white);
	font-size: 0.72rem;
}

.hero__proof span {
	color: rgba(255, 255, 255, 0.62);
	font-size: 0.64rem;
}

.hero__scroll {
	position: absolute;
	z-index: 4;
	right: max(24px, calc((100vw - var(--ps-container)) / 2));
	bottom: 38px;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.hero__scroll span:last-child {
	display: grid;
	width: 36px;
	height: 36px;
	place-items: center;
	border: 1px solid rgba(255, 255, 255, 0.48);
	border-radius: 50%;
}

.hero__wave {
	position: absolute;
	z-index: 3;
	right: -1px;
	bottom: -1px;
	left: -1px;
	height: 25px;
	background: var(--ps-white);
	clip-path: polygon(0 60%, 11% 76%, 25% 52%, 41% 78%, 59% 55%, 76% 73%, 89% 50%, 100% 66%, 100% 100%, 0 100%);
}

/* Compact editorial introduction */
.intro {
	position: relative;
	padding-block: clamp(68px, 7vw, 96px);
	border: 0;
	background:
		linear-gradient(90deg, rgba(9, 174, 228, 0.08), transparent 28%),
		var(--ps-white);
}

.intro__grid {
	grid-template-columns: minmax(210px, 0.55fr) minmax(0, 1.45fr);
	gap: clamp(42px, 7vw, 96px);
}

.intro h2 {
	max-width: 800px;
	margin-bottom: 19px;
	font-size: clamp(2rem, 3.2vw, 3.3rem);
}

.intro__grid > div > p {
	max-width: 720px;
	font-size: 0.98rem;
}

/* Main service with a real image bleeding into the viewport */
.cleaning {
	overflow: hidden;
	background: var(--ps-aqua-soft);
}

.cleaning__grid {
	grid-template-columns: minmax(390px, 1.02fr) minmax(0, 0.98fr);
	gap: clamp(52px, 7vw, 92px);
}

.cleaning__visual {
	width: auto;
	margin-left: calc((100vw - min(calc(100vw - 48px), var(--ps-container))) / -2);
	padding: 0;
}

.cleaning__visual::before {
	display: none;
}

.cleaning__visual picture {
	height: 100%;
}

.cleaning__image {
	height: 610px;
	border-radius: 0 36px 36px 0;
	object-position: center 58%;
}

.cleaning__visual figcaption {
	right: 22px;
	bottom: 22px;
	left: auto;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(9px);
}

.cleaning__content > h2 {
	margin-bottom: 20px;
}

.cleaning__content > .section-lead {
	margin-bottom: 29px;
	font-size: 0.98rem;
}

.care-list article {
	padding-block: 20px;
}

.care-list h3 {
	margin-bottom: 8px;
	font-size: 1.17rem;
}

.care-list article > p:last-child {
	font-size: 0.83rem;
}

/* Audiences in a controlled aqua band */
.audiences {
	position: relative;
	overflow: hidden;
	padding-block: clamp(72px, 7vw, 100px);
	background:
		radial-gradient(circle at 96% 0%, rgba(9, 174, 228, 0.19), transparent 28%),
		linear-gradient(180deg, #f7fdff 0%, #ddf5fa 100%);
}

.audiences__grid {
	grid-template-columns: 1.35fr 0.86fr 0.79fr;
	gap: 14px;
}

.audience-card {
	min-height: 390px;
	border: 0;
	border-radius: 20px;
	box-shadow: none;
}

.audience-card--image {
	min-height: 390px;
}

.audience-card__image {
	height: 100%;
}

.audience-card--copy,
.audience-card--water {
	padding: 30px;
}

.audience-card--copy {
	background: rgba(255, 255, 255, 0.82);
	backdrop-filter: blur(10px);
}

.audience-card--water {
	background:
		radial-gradient(circle at 18% 12%, rgba(142, 223, 242, 0.35), transparent 38%),
		linear-gradient(150deg, #09aee4, #292f86);
}

.audience-card--water blockquote {
	font-family: "Montserrat", "Segoe UI", sans-serif;
	font-size: clamp(1.35rem, 2vw, 1.8rem);
	font-style: normal;
	font-weight: 540;
}

/* Visual service mosaic */
.services {
	background: var(--ps-white);
}

.services__grid {
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 10px;
}

.service-card:not(.service-card--wide) {
	position: relative;
	display: flex;
	min-height: 360px;
	flex-direction: column;
	justify-content: flex-end;
	border: 0;
	border-radius: 16px;
	background: #0a3448;
	box-shadow: none;
	color: var(--ps-white);
}

.service-card:not(.service-card--wide)::after {
	position: absolute;
	z-index: 1;
	inset: 0;
	background: linear-gradient(0deg, rgba(5, 26, 38, 0.9) 0%, rgba(5, 26, 38, 0.15) 70%);
	content: "";
	pointer-events: none;
}

.service-card:nth-child(1) {
	grid-column: span 5;
}

.service-card:nth-child(2) {
	grid-column: span 3;
}

.service-card:nth-child(3) {
	grid-column: span 4;
}

.service-card__image {
	position: absolute;
	inset: 0;
	height: auto;
}

.service-card__image picture,
.service-card__photo {
	width: 100%;
	height: 100%;
}

.service-card__content {
	position: relative;
	z-index: 2;
	padding: 27px;
}

.service-card__label {
	margin-bottom: 9px;
	color: var(--ps-pool-blue-soft);
}

.service-card h3 {
	margin-bottom: 10px;
	color: var(--ps-white);
	font-size: 1.25rem;
}

.service-card__content > p:last-child {
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.77rem;
}

.service-card--wide {
	grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr) auto;
	gap: 40px;
	margin-top: 4px;
	padding: 32px 36px;
	border: 0;
	border-radius: 16px;
	background:
		linear-gradient(112deg, rgba(255, 255, 255, 0.22), transparent 62%),
		var(--ps-pool-gradient);
	box-shadow: none;
}

.service-card--wide h3 {
	font-size: clamp(1.6rem, 2.35vw, 2.3rem);
}

.service-card--wide .service-card__label,
.service-card--wide h3,
.service-card--wide > p,
.service-card--wide .inline-link {
	color: var(--ps-navy-deep);
}

.service-card--wide .inline-link {
	border-color: rgba(18, 26, 80, 0.4);
}

/* Tight, immersive real-work mosaic */
.portfolio {
	background: #f8fcfd;
}

.portfolio__grid {
	gap: 7px;
}

.portfolio__item {
	position: relative;
	overflow: hidden;
	margin: 0;
	border-radius: 8px;
}

.portfolio__button {
	border-radius: 0;
}

.portfolio__button:focus-visible {
	outline-offset: -4px;
}

.portfolio__button::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(4, 25, 37, 0.62), transparent 48%);
	content: "";
	pointer-events: none;
}

.portfolio__image,
.portfolio__item--wide .portfolio__image {
	height: 288px;
}

.portfolio__item--tall .portfolio__image {
	height: 583px;
}

.portfolio__item figcaption {
	position: absolute;
	z-index: 2;
	right: 14px;
	bottom: 13px;
	left: 14px;
	display: flex;
	padding: 0;
	color: var(--ps-white);
	pointer-events: none;
}

.portfolio__item figcaption strong {
	font-size: 0.76rem;
}

.portfolio__item figcaption span {
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.61rem;
}

.portfolio__expand {
	z-index: 3;
	top: 14px;
	right: 14px;
	bottom: auto;
}

/* Accessible before/after comparison */
.transformation {
	overflow: hidden;
	background:
		radial-gradient(circle at 80% 10%, rgba(9, 174, 228, 0.17), transparent 35%),
		linear-gradient(135deg, #dff5f9 0%, #f8fcfd 62%, #fff 100%);
}

.transformation__grid {
	grid-template-columns: minmax(290px, 0.66fr) minmax(0, 1.34fr);
	gap: clamp(48px, 7vw, 88px);
}

.transformation__copy h2 {
	margin-bottom: 18px;
}

.transformation__copy > p:not(.section-kicker) {
	margin-bottom: 26px;
	font-size: 0.94rem;
}

.before-after {
	--before-after-position: 54%;
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 7px solid rgba(255, 255, 255, 0.92);
	border-radius: 24px;
	background: #c7e8ef;
	box-shadow: 0 30px 70px rgba(12, 72, 96, 0.16);
	isolation: isolate;
}

.before-after__media,
.before-after__media picture,
.before-after__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.before-after__image {
	object-fit: cover;
	object-position: center 56%;
}

.before-after__media--after {
	z-index: 2;
	clip-path: inset(0 calc(100% - var(--before-after-position)) 0 0);
}

.before-after__label {
	position: absolute;
	z-index: 4;
	top: 16px;
	padding: 8px 11px;
	border-radius: 999px;
	background: rgba(5, 34, 49, 0.72);
	color: var(--ps-white);
	font-size: 0.59rem;
	font-weight: 760;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	backdrop-filter: blur(8px);
}

.before-after__label--before {
	right: 16px;
}

.before-after__label--after {
	left: 16px;
	background: rgba(9, 174, 228, 0.88);
}

.before-after__range {
	position: absolute;
	z-index: 6;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: ew-resize;
}

.before-after__handle {
	position: absolute;
	z-index: 5;
	top: 0;
	bottom: 0;
	left: var(--before-after-position);
	width: 2px;
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 0 20px rgba(5, 34, 49, 0.26);
	pointer-events: none;
	transform: translateX(-1px);
}

.before-after__handle span {
	position: absolute;
	top: 50%;
	left: 50%;
	display: grid;
	width: 48px;
	height: 48px;
	place-items: center;
	border: 3px solid rgba(255, 255, 255, 0.96);
	border-radius: 50%;
	background: var(--ps-cyan);
	box-shadow: 0 10px 28px rgba(5, 34, 49, 0.25);
	color: var(--ps-white);
	font-size: 1rem;
	transform: translate(-50%, -50%);
}

.before-after__range:focus-visible {
	border-radius: 18px;
	outline: 3px solid var(--ps-navy);
	outline-offset: -7px;
}

.transformation__caption {
	margin: 11px 4px 0;
	color: #5c7883;
	font-size: 0.65rem;
	font-weight: 650;
	letter-spacing: 0.04em;
	text-align: right;
}

/* Full-bleed history split */
.legacy {
	padding-block: 0;
}

.legacy__grid {
	width: 100%;
	max-width: none;
	min-height: 620px;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 0;
}

.legacy__visual {
	min-height: 620px;
	padding: 0;
}

.legacy__visual::before {
	display: none;
}

.legacy__visual picture {
	width: 100%;
	height: 100%;
}

.legacy__image {
	width: 100%;
	height: 100%;
	border-radius: 0;
	object-fit: cover;
	object-position: center;
}

.legacy__year {
	right: 28px;
	bottom: 28px;
	background: var(--ps-pool-gradient);
}

.legacy__content {
	align-self: center;
	padding: clamp(64px, 7vw, 96px) clamp(42px, 8vw, 116px);
}

.legacy__content h2 {
	margin-bottom: 20px;
}

.legacy__lead {
	margin-bottom: 16px;
	font-size: 1rem;
}

.legacy__content > p:not(.section-kicker, .legacy__lead) {
	font-size: 0.84rem;
}

.legacy__values {
	margin-top: 31px;
}

.legacy__values article {
	grid-template-columns: minmax(72px, 0.25fr) 1fr;
	padding-block: 15px;
}

.legacy__values p {
	font-size: 0.75rem;
}

/* Compact regional proof */
.coverage {
	background:
		linear-gradient(180deg, rgba(255, 255, 255, 0.35), transparent),
		var(--ps-aqua);
}

.coverage__grid {
	gap: clamp(46px, 7vw, 82px);
}

.coverage__content h2 {
	margin-bottom: 19px;
}

.coverage__groups {
	gap: 10px;
	margin-block: 26px 18px;
}

.coverage__groups > div {
	padding: 19px;
	border-color: rgba(9, 174, 228, 0.16);
	background: rgba(255, 255, 255, 0.62);
}

.coverage__groups li {
	background: rgba(9, 174, 228, 0.11);
}

.coverage__map {
	border: 7px solid rgba(255, 255, 255, 0.86);
	border-radius: 22px;
}

.coverage__map-head {
	background: linear-gradient(90deg, rgba(9, 174, 228, 0.08), transparent);
}

.coverage__map iframe {
	height: 390px;
}

/* Leaner FAQ */
.faq {
	background: var(--ps-white);
}

.faq__grid {
	gap: clamp(48px, 7vw, 84px);
}

.faq__intro h2 {
	margin-bottom: 19px;
}

.faq__item summary {
	min-height: 68px;
	font-size: 0.92rem;
}

.faq__answer {
	padding-bottom: 21px;
	font-size: 0.8rem;
}

/* Final conversion on a real-work background */
.contact {
	position: relative;
	overflow: hidden;
	padding-block: clamp(78px, 8vw, 112px);
	background: #0b2c4e;
}

.contact::before,
.contact::after {
	display: none;
}

.contact__background,
.contact__background picture,
.contact__background-image,
.contact__wash {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.contact__background picture {
	display: block;
}

.contact__background-image {
	object-fit: cover;
	object-position: center 54%;
}

.contact__wash {
	z-index: 1;
	background: linear-gradient(100deg, rgba(8, 33, 70, 0.96) 0%, rgba(15, 55, 98, 0.87) 48%, rgba(9, 174, 228, 0.58) 100%);
}

.contact__grid {
	z-index: 2;
	gap: clamp(52px, 7vw, 88px);
}

.contact__content h2 {
	margin-bottom: 18px;
}

.contact__content > p:not(.section-kicker) {
	font-size: 0.91rem;
}

.contact__guide {
	margin-block: 26px 22px;
	padding: 20px;
	background: rgba(255, 255, 255, 0.08);
	backdrop-filter: blur(10px);
}

.contact__form-card {
	padding: clamp(30px, 4vw, 42px);
	border-radius: 22px;
	box-shadow: 0 28px 70px rgba(5, 25, 38, 0.24);
}

/* Branded footer and WhatsApp control */
.site-footer {
	position: relative;
	background: linear-gradient(180deg, #eaf9fc 0%, #f7fcfd 100%);
}

.site-footer::before {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 5px;
	background: var(--ps-pool-gradient);
	content: "";
}

.site-footer__bottom {
	color: #596f78;
}

.whatsapp-float,
.whatsapp-float--fallback {
	right: 20px;
	bottom: calc(20px + env(safe-area-inset-bottom, 0px));
	width: 58px;
	height: 58px;
	min-height: 58px;
	padding: 0;
	border: 2px solid rgba(255, 255, 255, 0.92);
	border-radius: 50%;
	background: #25d366;
	box-shadow: 0 14px 34px rgba(11, 112, 53, 0.32);
}

.whatsapp-float:hover {
	background: #1fbd5b;
	box-shadow: 0 17px 40px rgba(11, 112, 53, 0.38);
	transform: scale(1.07);
}

.whatsapp-float__icon {
	width: 100%;
	height: 100%;
	background: transparent;
}

.whatsapp-float__icon img {
	width: 25px;
}

.whatsapp-float__label {
	display: none;
}

@media (max-width: 1120px) {
	.home .site-header {
		top: 10px;
		height: 66px;
	}

	.home .site-header.is-scrolled {
		top: 6px;
		height: 64px;
	}

	.home .site-header__inner {
		width: calc(100% - 24px);
		padding-inline: 17px 10px;
	}

	.home .site-nav {
		top: 82px;
	}

	.hero__content {
		padding-top: 145px;
	}

	.services__grid {
		gap: 9px;
	}

	.service-card:not(.service-card--wide) {
		min-height: 330px;
	}

	.service-card--wide {
		gap: 28px;
	}
}

@media (max-width: 900px) {
	h1 {
		font-size: clamp(2.55rem, 7vw, 3.7rem);
	}

	h2 {
		font-size: clamp(1.9rem, 5.3vw, 2.7rem);
	}

	.section {
		padding-block: 72px;
	}

	.section-heading--row,
	.intro__grid,
	.cleaning__grid,
	.transformation__grid,
	.legacy__grid,
	.coverage__grid,
	.faq__grid,
	.contact__grid {
		grid-template-columns: 1fr;
	}

	.hero {
		min-height: 760px;
	}

	.hero__background-image {
		object-position: 66% center;
	}

	.hero__wash {
		background:
			linear-gradient(90deg, rgba(5, 29, 44, 0.92) 0%, rgba(6, 34, 51, 0.73) 58%, rgba(6, 34, 51, 0.25) 100%),
			linear-gradient(0deg, rgba(5, 27, 41, 0.72) 0%, transparent 56%);
	}

	.hero__content {
		padding-top: 142px;
		padding-bottom: 98px;
	}

	.hero__copy {
		max-width: 650px;
	}

	.hero__scroll {
		display: none;
	}

	.intro__grid {
		gap: 21px;
	}

	.cleaning__content {
		order: -1;
	}

	.cleaning__visual {
		margin-left: 0;
	}

	.cleaning__image {
		height: 500px;
		border-radius: 26px;
	}

	.audiences__grid {
		grid-template-columns: 1.2fr 0.8fr;
	}

	.audience-card--water {
		grid-column: 1 / -1;
		min-height: 250px;
	}

	.service-card:nth-child(1),
	.service-card:nth-child(2),
	.service-card:nth-child(3) {
		grid-column: span 6;
	}

	.service-card:nth-child(3) {
		grid-column: 1 / -1;
	}

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

	.portfolio__item,
	.portfolio__item--wide,
	.portfolio__item:nth-child(3),
	.portfolio__item:nth-child(4),
	.portfolio__item:nth-child(5) {
		grid-column: span 6;
	}

	.portfolio__item--tall {
		grid-row: span 2;
		grid-column: span 6;
	}

	.transformation__grid {
		gap: 40px;
	}

	.before-after {
		aspect-ratio: 16 / 10;
	}

	.legacy__visual {
		width: 100%;
		min-height: 440px;
	}

	.legacy__content {
		padding: 66px 40px;
	}

	.coverage__map iframe {
		height: 360px;
	}

	.contact__content {
		max-width: 650px;
	}
}

@media (max-width: 760px) {
	.container {
		width: min(calc(100% - 30px), var(--ps-container));
	}

	.section {
		padding-block: 64px;
	}

	.home .site-header,
	.home .site-header.is-scrolled {
		top: 0;
		height: 74px;
	}

	.home .site-header__inner {
		width: 100%;
		padding-inline: 15px;
		border: 0;
		border-radius: 0;
		background: rgba(255, 255, 255, 0.97);
		box-shadow: 0 7px 22px rgba(4, 31, 45, 0.08);
	}

	.home .brand img {
		width: 158px;
	}

	.home .site-nav {
		top: 74px;
	}

	.hero {
		min-height: 720px;
	}

	.hero__background-image {
		object-position: 69% center;
	}

	.hero__wash {
		background:
			linear-gradient(90deg, rgba(5, 29, 44, 0.9) 0%, rgba(5, 29, 44, 0.63) 72%, rgba(5, 29, 44, 0.3) 100%),
			linear-gradient(0deg, rgba(5, 27, 41, 0.82) 0%, transparent 64%);
	}

	.hero__content {
		padding-top: 128px;
		padding-bottom: 72px;
	}

	.hero h1 {
		max-width: 520px;
		margin-bottom: 18px;
		font-size: clamp(2.25rem, 9.5vw, 2.75rem);
		line-height: 1;
	}

	.hero__lead {
		max-width: 500px;
		margin-bottom: 24px;
		font-size: 0.94rem;
	}

	.hero__actions {
		margin-bottom: 28px;
	}

	.hero .button--ghost {
		flex: 1 1 auto;
	}

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

	.hero__proof div {
		display: block;
		grid-template-columns: none;
		gap: 0;
		padding: 14px 8px 0 0;
		border-top: 0;
	}

	.hero__proof div + div {
		padding-left: 10px;
		border-top: 0;
		border-left: 1px solid rgba(255, 255, 255, 0.2);
	}

	.hero__proof strong {
		font-size: 0.62rem;
	}

	.hero__proof span {
		display: none;
	}

	.hero__wave {
		height: 18px;
	}

	.intro {
		padding-block: 58px 64px;
	}

	.intro h2 {
		font-size: 2.08rem;
	}

	.cleaning__image {
		height: 420px;
	}

	.audiences {
		padding-block: 64px;
	}

	.audiences__grid {
		grid-template-columns: 1fr;
	}

	.audience-card,
	.audience-card--image {
		min-height: 330px;
	}

	.audience-card--copy,
	.audience-card--water {
		min-height: auto;
		padding: 27px;
	}

	.audience-card--water {
		grid-column: 1 / -1;
	}

	.service-card:nth-child(1),
	.service-card:nth-child(2),
	.service-card:nth-child(3) {
		grid-column: 1 / -1;
		min-height: 300px;
	}

	.service-card--wide {
		padding: 28px;
	}

	.portfolio__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 6px;
	}

	.portfolio__item,
	.portfolio__item--wide,
	.portfolio__item:nth-child(3),
	.portfolio__item:nth-child(4),
	.portfolio__item:nth-child(5) {
		grid-column: span 1;
	}

	.portfolio__item--tall {
		grid-row: auto;
		grid-column: 1 / -1;
	}

	.portfolio__image,
	.portfolio__item--wide .portfolio__image {
		height: 245px;
	}

	.portfolio__item--tall .portfolio__image {
		height: 420px;
	}

	.portfolio__item figcaption {
		right: 10px;
		bottom: 10px;
		left: 10px;
		display: block;
	}

	.portfolio__item figcaption span {
		display: none;
	}

	.before-after {
		aspect-ratio: 4 / 5;
		border-width: 5px;
		border-radius: 19px;
	}

	.before-after__handle span {
		width: 44px;
		height: 44px;
	}

	.legacy__visual {
		min-height: 360px;
	}

	.legacy__content {
		padding: 58px 24px;
	}

	.legacy__values article {
		grid-template-columns: 1fr;
	}

	.coverage__map iframe {
		height: 320px;
	}

	.faq__item summary {
		min-height: 64px;
		font-size: 0.86rem;
	}

	.contact {
		padding-block: 68px;
	}

	.contact__form-card {
		padding: 27px 21px;
	}

	.whatsapp-float,
	.whatsapp-float--fallback {
		right: 14px;
		bottom: calc(14px + env(safe-area-inset-bottom, 0px));
		width: 56px;
		height: 56px;
		min-height: 56px;
		padding: 0;
	}
}

@media (max-width: 440px) {
	.hero .button-row {
		align-items: stretch;
	}

	.hero .button--primary,
	.hero .button--ghost {
		width: 100%;
	}

	.hero .button--ghost {
		min-height: 46px;
	}

	.portfolio__item,
	.portfolio__item--wide,
	.portfolio__item:nth-child(3),
	.portfolio__item:nth-child(4),
	.portfolio__item:nth-child(5) {
		grid-column: span 1;
	}

	.portfolio__item--tall {
		grid-column: 1 / -1;
	}
}

/* Refined hierarchy and conversion, v1.2 */
h1 {
	font-size: clamp(2.3rem, 3.65vw, 3.5rem);
	line-height: 1.03;
}

h2 {
	font-size: clamp(1.75rem, 2.45vw, 2.45rem);
	line-height: 1.1;
}

h3 {
	font-size: clamp(1.08rem, 1.35vw, 1.32rem);
}

.section {
	padding-block: clamp(66px, 6vw, 88px);
}

.section-heading {
	margin-bottom: clamp(30px, 3.6vw, 46px);
}

.hero {
	min-height: clamp(660px, 78svh, 810px);
}

.hero__content {
	padding-bottom: 86px;
}

.hero__copy {
	max-width: 650px;
}

.hero h1 {
	max-width: 650px;
	letter-spacing: -0.045em;
}

.hero .eyebrow::before,
.hero .eyebrow > span {
	display: none;
}

.hero .button--primary,
.hero .button--primary:hover {
	color: var(--ps-white);
}

.hero__wave {
	right: 0;
	bottom: 0;
	left: 0;
	height: 4px;
	background: var(--ps-pool-gradient);
	clip-path: none;
}

.intro h2 {
	font-size: clamp(1.75rem, 2.55vw, 2.55rem);
}

.cleaning__grid {
	align-items: stretch;
}

.cleaning__visual,
.cleaning__visual picture {
	height: 100%;
}

.cleaning__image {
	height: 100%;
	min-height: 660px;
}

.cleaning__content {
	align-self: center;
}

.care-list article {
	padding-block: 16px;
}

.care-list h3 {
	font-size: 1.08rem;
}

.audiences__grid {
	align-items: stretch;
}

.audience-card,
.audience-card--image,
.audience-card--copy,
.audience-card--water {
	height: 100%;
	min-height: 390px;
}

.audience-card--copy,
.audience-card--water {
	display: flex;
	flex-direction: column;
}

.audience-card--water {
	justify-content: space-between;
}

.service-card--wide h3 {
	font-size: clamp(1.4rem, 1.8vw, 1.85rem);
}

.portfolio {
	overflow: hidden;
}

.portfolio__carousel {
	position: relative;
}

.portfolio__viewport {
	overflow-x: auto;
	padding: 4px 0 18px;
	scrollbar-width: none;
	scroll-snap-type: x mandatory;
	overscroll-behavior-inline: contain;
}

.portfolio__viewport::-webkit-scrollbar {
	display: none;
}

.portfolio__viewport:focus-visible {
	border-radius: 20px;
	outline: 3px solid rgba(9, 174, 228, 0.32);
	outline-offset: 4px;
}

.portfolio__grid {
	display: grid;
	width: max-content;
	grid-auto-columns: clamp(350px, 43vw, 560px);
	grid-auto-flow: column;
	grid-template-columns: none;
	gap: 14px;
}

.portfolio__item,
.portfolio__item--wide,
.portfolio__item--tall,
.portfolio__item:nth-child(3),
.portfolio__item:nth-child(4),
.portfolio__item:nth-child(5) {
	width: 100%;
	height: 410px;
	grid-column: auto;
	grid-row: auto;
	border-radius: 20px;
	scroll-snap-align: start;
}

.portfolio__button,
.portfolio__button picture,
.portfolio__image,
.portfolio__item--wide .portfolio__image,
.portfolio__item--tall .portfolio__image {
	width: 100%;
	height: 100%;
}

.portfolio__image {
	object-fit: cover;
	transition: transform 500ms ease;
}

.portfolio__item:hover .portfolio__image {
	transform: scale(1.035);
}

.portfolio__item figcaption {
	right: 22px;
	bottom: 20px;
	left: 22px;
}

.portfolio__item figcaption strong {
	font-size: 0.83rem;
}

.portfolio__item figcaption span {
	font-size: 0.66rem;
}

.portfolio__controls {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
	margin-top: 4px;
}

.portfolio__controls button {
	display: grid;
	width: 44px;
	height: 44px;
	place-items: center;
	border: 1px solid rgba(9, 174, 228, 0.28);
	border-radius: 50%;
	background: var(--ps-white);
	box-shadow: 0 10px 26px rgba(10, 66, 90, 0.08);
	color: var(--ps-navy);
	cursor: pointer;
	font-size: 1rem;
	transition:
		background-color 180ms ease,
		color 180ms ease,
		transform 180ms ease;
}

.portfolio__controls button:hover {
	background: var(--ps-navy);
	color: var(--ps-white);
	transform: translateY(-2px);
}

.portfolio__controls span {
	min-width: 50px;
	color: var(--ps-ink-soft);
	font-size: 0.68rem;
	font-weight: 700;
	text-align: center;
}

.coverage__summary {
	display: grid;
	gap: 14px;
	margin-block: 22px 20px;
}

.coverage__summary p {
	color: var(--ps-ink-soft);
	font-size: 0.9rem;
	line-height: 1.75;
}

.contact__grid {
	grid-template-columns: minmax(0, 0.78fr) minmax(480px, 1.22fr);
	align-items: center;
}

.contact__form-card {
	padding: clamp(27px, 3vw, 36px);
}

.contact__form-head {
	margin-bottom: 22px;
}

.field--full {
	grid-column: 1 / -1;
}

.whatsapp-form__submit {
	width: 100%;
	margin-top: 19px;
	color: var(--ps-white);
}

.whatsapp-form__submit:hover {
	color: var(--ps-white);
}

.whatsapp-form__note {
	margin: 12px auto 0;
	color: #647982;
	font-size: 0.61rem;
	line-height: 1.55;
	text-align: center;
}

.whatsapp-form__status {
	min-height: 18px;
	margin: 8px 0 0;
	color: var(--ps-cyan-text);
	font-size: 0.68rem;
	font-weight: 650;
	text-align: center;
}

.whatsapp-form__status.is-error {
	color: #a4313f;
}

.whatsapp-form__status.is-success {
	color: #13704c;
}

.whatsapp-form__submit:disabled {
	cursor: wait;
	opacity: 0.76;
}

.analytics-consent {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 1200;
	display: grid;
	width: min(520px, calc(100vw - 32px));
	gap: 18px;
	padding: 22px;
	border: 1px solid rgba(12, 45, 63, 0.12);
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.98);
	box-shadow: 0 22px 60px rgba(9, 43, 61, 0.2);
	color: var(--ps-ink);
}

.analytics-consent[hidden] {
	display: none;
}

.analytics-consent strong {
	display: block;
	margin-bottom: 5px;
	color: var(--ps-navy-deep);
	font-size: 0.96rem;
}

.analytics-consent p {
	margin: 0;
	color: #526d79;
	font-size: 0.78rem;
	line-height: 1.6;
}

.analytics-consent__actions {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
}

.analytics-consent button {
	min-height: 40px;
	padding: 9px 15px;
	border-radius: 999px;
	cursor: pointer;
	font: inherit;
	font-size: 0.75rem;
	font-weight: 730;
	transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}

.analytics-consent__secondary {
	border: 1px solid rgba(12, 45, 63, 0.2);
	background: transparent;
	color: var(--ps-ink);
}

.analytics-consent__primary {
	border: 1px solid var(--ps-cyan);
	background: var(--ps-cyan);
	color: var(--ps-white);
}

.analytics-consent__primary:hover {
	border-color: var(--ps-cyan-dark);
	background: var(--ps-cyan-dark);
}

@media (max-width: 560px) {
	.analytics-consent {
		right: 16px;
		bottom: 16px;
		padding: 18px;
	}

	.analytics-consent__actions {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}
}

.site-footer__grid {
	grid-template-columns: 1.2fr 0.62fr 0.95fr 0.95fr;
	gap: clamp(30px, 4.5vw, 64px);
}

.site-footer__brand > strong {
	display: block;
	margin-top: 15px;
	color: var(--ps-navy);
	font-size: 0.72rem;
}

.site-footer__region > p:not(.site-footer__title),
.site-footer__region > a,
.site-footer__contact > p:not(.site-footer__title),
.site-footer__contact > a {
	display: block;
	margin-bottom: 9px;
	color: var(--ps-ink-soft);
	font-size: 0.74rem;
	line-height: 1.65;
}

.site-footer__region > a:hover,
.site-footer__contact > a:hover {
	color: var(--ps-navy);
}

.site-footer__availability {
	padding-top: 7px;
	border-top: 1px solid rgba(9, 174, 228, 0.14);
}

.site-footer__whatsapp {
	display: flex !important;
	align-items: center;
	gap: 10px;
}

.site-footer__whatsapp > span {
	display: grid;
	width: 36px;
	height: 36px;
	flex: 0 0 36px;
	place-items: center;
	border-radius: 50%;
	background: #25d366;
}

.site-footer__whatsapp img {
	width: 19px;
	filter: brightness(0) invert(1);
}

.site-footer__whatsapp strong {
	color: var(--ps-ink);
	font-size: 0.72rem;
}

.site-footer__social {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
}

.site-footer__social span {
	display: grid;
	width: 25px;
	height: 25px;
	place-items: center;
	border: 1px solid rgba(41, 47, 134, 0.18);
	border-radius: 50%;
	color: var(--ps-navy);
	font-size: 0.55rem;
	font-weight: 800;
	text-transform: uppercase;
}

@media (max-width: 1120px) {
	.site-footer__grid {
		grid-template-columns: 1.15fr repeat(3, minmax(0, 0.8fr));
		gap: 30px;
	}
}

@media (max-width: 900px) {
	h1 {
		font-size: clamp(2.2rem, 6vw, 3.15rem);
	}

	h2 {
		font-size: clamp(1.7rem, 4.4vw, 2.25rem);
	}

	.cleaning__image {
		height: 500px;
		min-height: 0;
	}

	.audience-card,
	.audience-card--image,
	.audience-card--copy,
	.audience-card--water {
		min-height: 360px;
	}

	.audience-card--water {
		grid-column: 1 / -1;
	}

	.portfolio__grid {
		grid-auto-columns: 70vw;
	}

	.portfolio__item,
	.portfolio__item--wide,
	.portfolio__item--tall,
	.portfolio__item:nth-child(3),
	.portfolio__item:nth-child(4),
	.portfolio__item:nth-child(5) {
		width: 70vw;
	}

	.contact__grid {
		grid-template-columns: 1fr;
	}

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

@media (max-width: 760px) {
	.section {
		padding-block: 58px;
	}

	.hero {
		min-height: 680px;
	}

	.hero__content {
		padding-top: 120px;
		padding-bottom: 58px;
	}

	.hero h1 {
		font-size: clamp(2rem, 8.3vw, 2.35rem);
		line-height: 1.04;
	}

	.intro h2 {
		font-size: 1.8rem;
	}

	.cleaning__image {
		height: 400px;
	}

	.audience-card,
	.audience-card--image,
	.audience-card--copy,
	.audience-card--water {
		min-height: 330px;
	}

	.audience-card--water {
		grid-column: auto;
	}

	.portfolio__grid {
		grid-auto-columns: 86vw;
		gap: 11px;
	}

	.portfolio__item,
	.portfolio__item--wide,
	.portfolio__item--tall,
	.portfolio__item:nth-child(3),
	.portfolio__item:nth-child(4),
	.portfolio__item:nth-child(5) {
		width: 86vw;
		height: 360px;
	}

	.portfolio__controls {
		justify-content: center;
	}

	.form-grid {
		grid-template-columns: 1fr;
	}

	.field,
	.field--full {
		grid-column: 1;
	}

	.site-footer__grid {
		grid-template-columns: 1fr;
		gap: 34px;
		padding-bottom: 40px;
	}
}

/* Final content and interaction refinements, v1.3 */
.hero h1 strong {
	color: var(--ps-white);
	font-weight: 720;
}

.hero__proof div {
	display: flex;
	align-items: center;
	gap: 12px;
}

.hero__proof p {
	margin: 0;
}

.hero__proof p strong,
.hero__proof p span {
	display: block;
}

.proof-icon {
	position: relative;
	display: block !important;
	width: 34px;
	height: 34px;
	flex: 0 0 34px;
	border: 1px solid rgba(142, 223, 242, 0.5);
	border-radius: 50%;
	background: rgba(142, 223, 242, 0.09);
	color: var(--ps-pool-blue-soft) !important;
}

.proof-icon::before,
.proof-icon::after {
	position: absolute;
	content: "";
}

.proof-icon--history::before {
	inset: 8px;
	border: 1.5px solid currentColor;
	border-radius: 50%;
}

.proof-icon--history::after {
	top: 11px;
	left: 16px;
	width: 5px;
	height: 7px;
	border-bottom: 1.5px solid currentColor;
	border-left: 1.5px solid currentColor;
}

.proof-icon--technical::before {
	top: 8px;
	left: 10px;
	width: 13px;
	height: 16px;
	border: 1.5px solid currentColor;
	border-radius: 55% 45% 58% 42%;
	transform: rotate(45deg);
}

.proof-icon--technical::after {
	top: 13px;
	left: 15px;
	width: 4px;
	height: 7px;
	border-left: 1px solid rgba(255, 255, 255, 0.82);
	border-radius: 50%;
	transform: rotate(35deg);
}

.proof-icon--local::before {
	top: 8px;
	left: 10px;
	width: 13px;
	height: 13px;
	border: 1.5px solid currentColor;
	border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg);
}

.proof-icon--local::after {
	top: 12px;
	left: 14px;
	width: 5px;
	height: 5px;
	border: 1px solid currentColor;
	border-radius: 50%;
}

.cleaning__visual {
	min-height: 0;
	align-self: stretch;
}

.cleaning__visual picture {
	display: block;
	height: 100%;
}

.cleaning__image {
	height: 100%;
	min-height: 0;
}

.cleaning__content {
	align-self: stretch;
}

.care-list article {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	gap: 17px;
	align-items: start;
}

.care-list article > div > p:last-child {
	margin: 0;
	color: var(--ps-ink-soft);
	font-size: 0.83rem;
	line-height: 1.65;
}

.care-list__label {
	margin-bottom: 5px;
}

.care-list h3 {
	margin-bottom: 7px;
}

.care-icon {
	position: relative;
	display: block;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(9, 174, 228, 0.22);
	border-radius: 14px;
	background: rgba(9, 174, 228, 0.1);
	color: var(--ps-cyan-text);
}

.care-icon::before,
.care-icon::after {
	position: absolute;
	content: "";
}

.care-icon--cleaning::before {
	right: 9px;
	bottom: 10px;
	width: 19px;
	height: 9px;
	border: 1.5px solid currentColor;
	border-radius: 50%;
	transform: rotate(-8deg);
}

.care-icon--cleaning::after {
	top: 8px;
	left: 13px;
	width: 1.5px;
	height: 22px;
	background: currentColor;
	transform: rotate(36deg);
	transform-origin: bottom;
}

.care-icon--chemistry::before {
	top: 9px;
	left: 16px;
	width: 11px;
	height: 20px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	border-left: 1.5px solid currentColor;
	border-radius: 0 0 7px 7px;
	clip-path: polygon(25% 0, 75% 0, 75% 38%, 100% 100%, 0 100%, 25% 38%);
}

.care-icon--chemistry::after {
	top: 24px;
	left: 15px;
	width: 14px;
	height: 1.5px;
	background: currentColor;
	transform: rotate(-8deg);
}

.care-icon--filter::before {
	top: 9px;
	left: 13px;
	width: 17px;
	height: 24px;
	border: 1.5px solid currentColor;
	border-radius: 50% / 18%;
}

.care-icon--filter::after {
	top: 18px;
	left: 16px;
	width: 11px;
	height: 5px;
	border-top: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
}

.legacy__visual {
	position: relative;
	overflow: hidden;
}

.legacy__visual picture,
.legacy__image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}

.gallery-dialog {
	inset: 0;
	width: 100vw;
	height: 100dvh;
	max-width: none;
	max-height: none;
	margin: 0;
	overflow: hidden;
	border-radius: 0;
	background: #04131c;
	box-shadow: none;
}

.gallery-dialog[open] {
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
}

.gallery-dialog::backdrop {
	background: #04131c;
}

.gallery-dialog__media {
	width: 100%;
	height: 100%;
	max-height: none;
	padding: clamp(18px, 3vw, 44px) clamp(64px, 7vw, 112px) 10px;
	overflow: hidden;
	border-radius: 0;
	background: #04131c;
}

.gallery-dialog__media img {
	width: 100%;
	height: 100%;
	max-height: none;
	object-fit: contain;
}

.gallery-dialog__close,
.gallery-dialog__nav {
	position: absolute;
	z-index: 3;
	display: grid;
	width: 48px;
	height: 48px;
	place-items: center;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.1);
	box-shadow: none;
	color: var(--ps-white);
	cursor: pointer;
	backdrop-filter: blur(12px);
	transition:
		background-color 180ms ease,
		transform 180ms ease;
}

.gallery-dialog__close:hover,
.gallery-dialog__nav:hover {
	background: rgba(255, 255, 255, 0.2);
}

.gallery-dialog__close {
	top: 20px;
	right: 20px;
	font-size: 1.7rem;
}

.gallery-dialog__nav {
	top: 50%;
	font-size: 1.1rem;
	transform: translateY(-50%);
}

.gallery-dialog__nav:hover {
	transform: translateY(-50%) scale(1.05);
}

.gallery-dialog__nav--previous {
	left: 22px;
}

.gallery-dialog__nav--next {
	right: 22px;
}

.gallery-dialog__footer {
	display: flex;
	min-height: 70px;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 17px clamp(24px, 7vw, 112px);
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	background: rgba(2, 13, 20, 0.94);
	color: var(--ps-white);
}

.gallery-dialog__footer p,
.gallery-dialog__footer span {
	margin: 0;
}

.gallery-dialog__footer p {
	font-size: 0.8rem;
	font-weight: 680;
}

.gallery-dialog__footer span {
	color: rgba(255, 255, 255, 0.58);
	font-size: 0.68rem;
	font-weight: 700;
}

.contact__points {
	display: grid;
	gap: 12px;
	margin: 26px 0 0;
	padding: 0;
	list-style: none;
}

.contact__points li {
	position: relative;
	padding-left: 22px;
	color: rgba(255, 255, 255, 0.76);
	font-size: 0.82rem;
}

.contact__points li::before {
	position: absolute;
	top: 0.56em;
	left: 0;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--ps-pool-blue-soft);
	content: "";
}

.whatsapp-form__submit {
	cursor: pointer;
}

.site-footer__contact-link {
	display: flex !important;
	align-items: center;
	gap: 12px;
	margin-bottom: 14px !important;
}

.site-footer__contact-icon {
	display: grid;
	width: 38px;
	height: 38px;
	flex: 0 0 38px;
	place-items: center;
	border-radius: 50%;
}

.site-footer__contact-icon--whatsapp {
	background: #25d366;
}

.site-footer__contact-icon--instagram {
	background: linear-gradient(145deg, #6542c4, #dc2f77 56%, #f6a43a);
}

.site-footer__contact-icon img {
	width: 19px;
	filter: brightness(0) invert(1);
}

.site-footer__contact-link small,
.site-footer__contact-link strong {
	display: block;
}

.site-footer__contact-link small {
	margin-bottom: 1px;
	color: #6f838b;
	font-size: 0.6rem;
	font-weight: 600;
}

.site-footer__contact-link strong {
	color: var(--ps-ink);
	font-size: 0.74rem;
	font-weight: 700;
}

@media (max-width: 900px) {
	.cleaning__visual {
		min-height: 500px;
	}

	.legacy__visual picture,
	.legacy__image {
		position: absolute;
	}
}

@media (max-width: 760px) {
	.hero__proof div {
		padding-right: 4px;
	}

	.hero__proof div + div {
		padding-left: 8px;
	}

	.proof-icon {
		width: 30px;
		height: 30px;
		flex-basis: 30px;
	}

	.proof-icon--history::before {
		inset: 7px;
	}

	.proof-icon--history::after {
		top: 10px;
		left: 14px;
	}

	.proof-icon--technical::before,
	.proof-icon--local::before {
		top: 7px;
		left: 9px;
	}

	.proof-icon--technical::after,
	.proof-icon--local::after {
		top: 11px;
		left: 13px;
	}

	.hero__proof p span {
		display: none;
	}

	.cleaning__visual {
		min-height: 400px;
	}

	.gallery-dialog__media {
		padding: 58px 12px 8px;
	}

	.gallery-dialog__close,
	.gallery-dialog__nav {
		width: 42px;
		height: 42px;
	}

	.gallery-dialog__close {
		top: 10px;
		right: 10px;
	}

	.gallery-dialog__nav {
		top: auto;
		bottom: 82px;
	}

	.gallery-dialog__nav--previous {
		left: 12px;
	}

	.gallery-dialog__nav--next {
		right: 12px;
	}

	.gallery-dialog__footer {
		min-height: 70px;
		padding: 15px 66px 15px 16px;
	}

	.gallery-dialog__footer p {
		font-size: 0.72rem;
	}

	.gallery-dialog__footer span {
		white-space: nowrap;
	}
}

/* Proportion and icon refinements, v1.4 */
.hero {
	min-height: clamp(700px, calc(78svh + 40px), 850px);
}

.hero h1 strong {
	color: var(--ps-pool-blue-soft);
}

.hero__actions {
	margin-bottom: 0;
}

.care-icon {
	display: flex;
	width: 50px;
	height: 50px;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: inherit;
}

.care-icon::before,
.care-icon::after {
	display: none;
}

.care-icon img {
	display: block;
	width: 46px;
	height: 46px;
	object-fit: contain;
}

.legacy__grid {
	align-items: stretch;
}

.legacy.section {
	padding-block: 0;
}

.legacy__grid.container {
	width: 100%;
}

.legacy__visual {
	height: auto;
	min-height: 100%;
	align-self: stretch;
}

.legacy__visual picture,
.legacy__image {
	top: 0;
	bottom: 0;
	height: 100%;
	min-height: 100%;
}

.gallery-dialog__media {
	display: flex;
	min-height: 0;
	align-items: center;
	justify-content: center;
}

.gallery-dialog__media img {
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	object-position: center;
}

.site-footer__title--icon {
	display: flex;
	align-items: center;
	gap: 8px;
}

.site-footer__title--icon img {
	width: 18px;
	height: 18px;
}

.site-footer__bottom {
	justify-content: center;
	text-align: center;
}

@media (max-width: 760px) {
	.hero {
		min-height: 720px;
	}

	.care-list article {
		grid-template-columns: 44px minmax(0, 1fr);
	}

	.care-icon {
		width: 42px;
		height: 42px;
	}

	.care-icon img {
		width: 40px;
		height: 40px;
	}

	.legacy__visual {
		min-height: 400px;
	}
}
/* v1.5 — alinhamento das seções e consistência dos ícones */
.hero {
	align-items: center;
}

.hero__content {
	padding-top: 0;
	padding-bottom: 0;
}

.cleaning__visual {
	position: relative;
	align-self: stretch;
	min-height: 0;
	height: auto;
	opacity: 1;
	transform: none;
}

.cleaning__visual picture,
.cleaning__visual .cleaning__image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}

.cleaning__visual .cleaning__image {
	min-height: 0;
	aspect-ratio: auto;
	object-fit: cover;
	object-position: center 58%;
}

.legacy__grid {
	align-items: stretch;
}

.legacy__visual {
	align-self: stretch;
	min-height: 100%;
	height: auto;
	opacity: 1;
	transform: none;
}

.legacy__visual picture,
.legacy__visual .legacy__image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}

.legacy__visual .legacy__image {
	object-fit: cover;
}

.care-icon {
	width: 46px;
	height: 46px;
}

.care-icon img {
	width: 42px;
	height: 42px;
	object-fit: contain;
}

@media (max-width: 900px) {
	.cleaning__visual {
		min-height: 500px;
	}

	.legacy__visual {
		min-height: 520px;
	}
}

@media (max-width: 760px) {
	.hero__content {
		padding-top: 0;
		padding-bottom: 0;
	}

	.cleaning__visual {
		min-height: 400px;
	}

	.legacy__visual {
		min-height: 420px;
	}

	.care-icon {
		width: 42px;
		height: 42px;
	}

	.care-icon img {
		width: 38px;
		height: 38px;
	}
}

/* v1.6 — conteúdo institucional e refinamentos visuais */
@media (min-width: 901px) {
	.audiences__grid {
		min-height: 780px;
		grid-template-rows: repeat(2, minmax(0, 1fr));
	}

	.audience-card,
	.audience-card--image,
	.audience-card--copy,
	.audience-card--water {
		height: auto;
		min-height: 0;
	}

	.audience-card--image {
		grid-column: 1;
		grid-row: 1 / 3;
	}

	.audience-card--copy {
		grid-column: 2;
		grid-row: 1;
	}

	.audience-card--water {
		grid-column: 2;
		grid-row: 2;
	}
}

.audience-card--water {
	justify-content: center;
}

.audience-card--water h3 {
	max-width: 520px;
	margin: 0 0 20px;
	color: var(--ps-white);
	font-size: clamp(1.45rem, 2.2vw, 2rem);
	line-height: 1.15;
}

.audience-card--water > p:last-child {
	max-width: 560px;
	margin: 0;
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.86rem;
	line-height: 1.7;
}

.service-card--wide {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.service-card--wide > * {
	position: relative;
	z-index: 2;
}

.service-card--wide::before {
	position: absolute;
	z-index: 1;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(38%, 470px);
	background:
		repeating-linear-gradient(0deg, transparent 0 23px, rgba(255, 255, 255, 0.72) 23px 25px),
		repeating-linear-gradient(90deg, transparent 0 23px, rgba(255, 255, 255, 0.72) 23px 25px),
		linear-gradient(145deg, #56d2ed 0%, #25aad8 48%, #2578b8 100%);
	content: "";
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.2) 20%, #000 58%);
	mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.2) 20%, #000 58%);
	opacity: 0.82;
	pointer-events: none;
}

.service-card--wide::after {
	position: absolute;
	z-index: 1;
	right: -6%;
	bottom: -70px;
	width: 46%;
	height: 150px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.13);
	box-shadow: 0 -18px 45px rgba(255, 255, 255, 0.12);
	content: "";
	pointer-events: none;
}

@media (max-width: 900px) {
	.service-card--wide::before {
		width: 56%;
		opacity: 0.68;
	}
}

@media (max-width: 760px) {
	.audience-card--water h3 {
		font-size: 1.45rem;
	}

	.service-card--wide::before {
		top: auto;
		width: 100%;
		height: 42%;
		-webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 62%);
		mask-image: linear-gradient(180deg, transparent 0%, #000 62%);
		opacity: 0.52;
	}
}

/* v1.7 — cards horizontais, contraste de reformas e CTA do cabeçalho */
@media (min-width: 901px) {
	.audiences__grid {
		min-height: 0;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		grid-template-rows: 1fr;
		gap: 14px;
	}

	.audience-card,
	.audience-card--image,
	.audience-card--copy,
	.audience-card--water {
		height: 520px;
		min-height: 520px;
		grid-column: auto;
		grid-row: auto;
	}

	.audience-card--copy,
	.audience-card--water {
		padding: clamp(32px, 3vw, 46px);
	}

	.audience-card--copy h3 {
		font-size: clamp(1.65rem, 2.25vw, 2.15rem);
	}

	.audience-card__overlay {
		right: 32px;
		bottom: 32px;
		left: 32px;
	}

	.audience-card__overlay h3 {
		font-size: clamp(1.7rem, 2.3vw, 2.25rem);
	}
}

.service-card--wide {
	background:
		linear-gradient(112deg, rgba(73, 152, 210, 0.14), transparent 58%),
		var(--ps-navy-deep);
}

.service-card--wide .service-card__label,
.service-card--wide h3,
.service-card--wide > p,
.service-card--wide .inline-link,
.service-card--wide .inline-link:hover {
	color: var(--ps-white);
}

.service-card--wide > p {
	color: rgba(255, 255, 255, 0.78);
}

.service-card--wide .inline-link {
	border-color: rgba(255, 255, 255, 0.68);
}

.service-card--wide::before {
	background:
		repeating-linear-gradient(0deg, transparent 0 23px, rgba(255, 255, 255, 0.62) 23px 25px),
		repeating-linear-gradient(90deg, transparent 0 23px, rgba(255, 255, 255, 0.62) 23px 25px),
		linear-gradient(145deg, #38c5e8 0%, #168ec5 52%, #2358a0 100%);
	opacity: 0.78;
}

.button--header .button__icon--header {
	width: 18px;
	height: 18px;
	filter: brightness(0) saturate(100%) invert(13%) sepia(49%) saturate(2135%) hue-rotate(218deg) brightness(84%) contrast(100%);
}

/* v1.8 — CTA de transformação e menu mobile lateral */
.service-card--wide .inline-link {
	min-height: 44px;
	justify-content: center;
	gap: 12px;
	padding: 11px 18px;
	border: 1px solid rgba(255, 255, 255, 0.92);
	border-radius: 999px;
	background: var(--ps-white);
	box-shadow: 0 12px 28px rgba(3, 11, 42, 0.18);
	color: var(--ps-navy-deep);
	line-height: 1.15;
	white-space: nowrap;
}

.service-card--wide .inline-link:hover {
	border-color: var(--ps-pool-blue-soft);
	background: var(--ps-pool-blue-soft);
	box-shadow: 0 15px 32px rgba(3, 11, 42, 0.24);
	color: var(--ps-navy-deep);
	transform: translateY(-2px);
}

@media (max-width: 1120px) {
	body::before {
		position: fixed;
		z-index: 998;
		inset: 0;
		background: rgba(4, 22, 34, 0.56);
		content: "";
		opacity: 0;
		pointer-events: none;
		transition: opacity 260ms ease;
	}

	body.menu-open::before {
		opacity: 1;
		pointer-events: auto;
	}

	.site-nav,
	.home .site-nav {
		position: fixed;
		z-index: 999;
		top: 0;
		right: auto;
		bottom: 0;
		left: 0;
		width: 90vw;
		height: 100dvh;
		max-height: none;
		align-content: start;
		gap: 28px;
		padding: 102px 26px 34px;
		border: 0;
		border-radius: 0 28px 28px 0;
		background:
			linear-gradient(180deg, rgba(223, 245, 249, 0.72), transparent 30%),
			rgba(255, 255, 255, 0.99);
		box-shadow: 30px 0 70px rgba(3, 18, 29, 0.22);
		opacity: 1;
		overscroll-behavior: contain;
		transform: translateX(-105%);
		visibility: hidden;
		transition:
			transform 300ms cubic-bezier(0.2, 0.75, 0.25, 1),
			visibility 0s linear 300ms;
	}

	.site-nav.is-open,
	.home .site-nav.is-open {
		opacity: 1;
		transform: translateX(0);
		visibility: visible;
		transition-delay: 0s;
	}

	.site-nav__list a {
		padding: 17px 4px;
		font-size: 0.94rem;
	}

	.menu-toggle {
		position: relative;
		z-index: 1001;
	}
}

@media (max-width: 760px) {
	.site-nav,
	.home .site-nav {
		top: 0;
		padding-top: 94px;
	}

	.service-card--wide .inline-link {
		width: fit-content;
		max-width: 100%;
		white-space: normal;
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-nav,
	.home .site-nav,
	body::before {
		transition-duration: 0.01ms;
	}
}

/* v1.9 — rodapé centralizado no mobile */
@media (max-width: 760px) {
	.site-footer {
		padding-bottom: 90px;
		text-align: center;
	}

	.site-footer__grid {
		justify-items: center;
	}

	.site-footer__brand,
	.site-footer__nav,
	.site-footer__region,
	.site-footer__contact {
		width: 100%;
		text-align: center;
	}

	.brand--footer {
		justify-content: center;
	}

	.site-footer__brand > p {
		margin-right: auto;
		margin-left: auto;
	}

	.site-footer__links {
		justify-items: center;
	}

	.site-footer__title,
	.site-footer__title--icon {
		justify-content: center;
	}

	.site-footer__region > p:not(.site-footer__title),
	.site-footer__region > a {
		margin-right: auto;
		margin-left: auto;
	}

	.site-footer__availability {
		max-width: 310px;
	}

	.site-footer__contact-link {
		justify-content: center;
	}

	.site-footer__bottom {
		flex-direction: column;
		align-items: center;
		justify-content: center;
		text-align: center;
	}
}

/* v1.10 — identidade e navegação no menu mobile */
.site-nav__mobile-brand,
.site-nav__home-link {
	display: none;
}

.menu-toggle {
	overflow: hidden;
	border-color: rgba(12, 45, 63, 0.16);
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 8px 24px rgba(4, 31, 45, 0.1);
	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease,
		transform 260ms ease;
}

.menu-toggle:hover {
	border-color: rgba(40, 184, 221, 0.58);
	background: var(--ps-aqua-soft);
	box-shadow: 0 10px 26px rgba(4, 31, 45, 0.14);
}

.menu-toggle__icon {
	display: block;
	width: 25px;
	height: 25px;
}

.menu-toggle__icon--close,
.menu-toggle[aria-expanded="true"] .menu-toggle__icon--open {
	display: none;
}

.menu-toggle[aria-expanded="true"] .menu-toggle__icon--close {
	display: block;
}

@media (max-width: 1120px) {
	.site-nav,
	.home .site-nav {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.site-nav__mobile-brand {
		position: absolute;
		top: 25px;
		left: 26px;
		display: inline-flex;
		width: fit-content;
		align-items: center;
	}

	.site-nav__mobile-brand img {
		width: 168px;
		height: auto;
	}

	.site-nav__home-link {
		display: block;
		padding: 17px 4px;
		border-bottom: 1px solid var(--ps-line);
		color: #294554;
		font-size: 0.94rem;
		font-weight: 650;
		letter-spacing: 0.01em;
	}

	.site-nav__home-link,
	.site-nav__list a,
	.home .site-nav__home-link,
	.home .site-nav__list a {
		font-size: 0.9rem;
		font-weight: 650;
		line-height: 1.5;
		letter-spacing: 0.01em;
	}

	.site-nav__home-link:hover {
		color: var(--ps-cyan-dark);
	}

	.site-nav .button--header {
		margin-top: 28px;
	}

	.menu-toggle[aria-expanded="true"] {
		transform: translateX(calc(-10vw + 10px));
	}
}

@media (max-width: 760px) {
	.site-nav__mobile-brand {
		top: 23px;
	}

	.site-nav__mobile-brand img {
		width: 156px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.menu-toggle {
		transition-duration: 0.01ms;
	}
}

/* v1.11 — acabamento dos divisores, controles e transições */
.service-card--wide .inline-link {
	transition:
		background-color 220ms ease,
		border-color 220ms ease,
		box-shadow 220ms ease,
		color 220ms ease,
		transform 220ms ease;
}

.direction-chevron,
.portfolio__controls .direction-chevron {
	display: block;
	width: 10px;
	min-width: 0;
	height: 10px;
	box-sizing: border-box;
	color: inherit;
	border-right: 2.4px solid currentColor;
	border-bottom: 2.4px solid currentColor;
	transform-origin: center;
}

.direction-chevron--previous {
	transform: translate(2px, -1px) rotate(135deg);
}

.direction-chevron--next {
	transform: translate(-2px, -1px) rotate(-45deg);
}

.portfolio__controls {
	position: static;
	justify-content: center;
	min-height: 32px;
	gap: 0;
	margin-top: 8px;
}

.portfolio__controls .portfolio__nav {
	position: absolute;
	z-index: 3;
	top: calc(50% - 20px);
	width: 46px;
	height: 46px;
	border-color: rgba(255, 255, 255, 0.7);
	background: rgba(255, 255, 255, 0.88);
	box-shadow: 0 12px 30px rgba(4, 31, 45, 0.16);
	color: var(--ps-navy-deep);
	backdrop-filter: blur(12px);
	transform: translateY(-50%);
}

.portfolio__controls .portfolio__nav--previous {
	left: 16px;
}

.portfolio__controls .portfolio__nav--next {
	right: 16px;
}

.portfolio__controls .portfolio__nav:hover {
	border-color: var(--ps-pool-blue-soft);
	background: var(--ps-navy);
	color: var(--ps-white);
	transform: translateY(-50%);
}

.portfolio__dots {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
}

.portfolio__controls .portfolio__dot {
	position: relative;
	display: block;
	width: 14px;
	height: 24px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	box-shadow: none;
	transition: width 180ms ease;
}

.portfolio__controls .portfolio__dot::before {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 6px;
	height: 6px;
	border-radius: 999px;
	background: rgba(12, 45, 63, 0.22);
	content: "";
	transform: translate(-50%, -50%);
	transition:
		width 180ms ease,
		background-color 180ms ease;
}

.portfolio__controls .portfolio__dot:hover {
	background: transparent;
	color: inherit;
	transform: none;
}

.portfolio__controls .portfolio__dot:hover::before {
	background: rgba(9, 174, 228, 0.64);
}

.portfolio__controls .portfolio__dot.is-active {
	width: 26px;
	background: transparent;
}

.portfolio__controls .portfolio__dot.is-active::before {
	width: 18px;
	background: var(--ps-cyan);
}

.portfolio__status {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	margin: -1px;
	padding: 0;
	border: 0;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.gallery-dialog__nav:hover {
	transform: translateY(-50%);
}

@media (max-width: 760px) {
	.portfolio__controls .portfolio__nav {
		top: calc(50% - 18px);
		width: 42px;
		height: 42px;
	}

	.portfolio__controls .portfolio__nav--previous {
		left: 8px;
	}

	.portfolio__controls .portfolio__nav--next {
		right: 8px;
	}

	.portfolio__dots {
		gap: 6px;
	}

	.portfolio__controls .portfolio__dot {
		width: 13px;
		height: 24px;
	}

	.portfolio__controls .portfolio__dot.is-active {
		width: 23px;
	}

	.portfolio__controls .portfolio__dot::before {
		width: 5px;
		height: 5px;
	}

	.portfolio__controls .portfolio__dot.is-active::before {
		width: 15px;
	}
}

/* v1.12 — chevrons ópticos e sequência visual do serviço principal */
.cleaning__slides,
.cleaning__slide {
	position: absolute;
	inset: 0;
}

.cleaning__slides {
	z-index: 1;
	overflow: hidden;
	border-radius: 0 36px 36px 0;
	box-shadow: var(--ps-shadow-soft);
}

.cleaning__slide {
	opacity: 0;
	pointer-events: none;
	transition: opacity 1100ms ease;
}

.cleaning__slide.is-active {
	z-index: 1;
	opacity: 1;
}

.cleaning__slide picture,
.cleaning__slide .cleaning__image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}

.cleaning__slide .cleaning__image {
	border-radius: 0;
	box-shadow: none;
	object-fit: cover;
	object-position: center 58%;
}

@media (prefers-reduced-motion: reduce) {
	.cleaning__slide {
		transition: none;
	}
}

@media (max-width: 760px) {
	.cleaning__visual {
		width: calc(100% + 15px);
		margin-left: -15px;
	}
}

/* v1.13 — candidatura secundária e imagem institucional */
body.careers-open {
	overflow: hidden;
}

.site-footer__careers {
	width: fit-content;
	margin-top: 16px;
	padding: 0;
	border: 0;
	border-bottom: 1px solid rgba(9, 174, 228, 0.46);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--ps-navy-deep);
	font: inherit;
	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.5;
	cursor: pointer;
	transition:
		border-color 180ms ease,
		color 180ms ease;
}

.site-footer__careers:hover {
	border-color: var(--ps-cyan-dark);
	background: transparent;
	color: var(--ps-cyan-dark);
	transform: none;
}

.careers-dialog {
	width: min(900px, calc(100% - 32px));
	max-width: none;
	max-height: min(760px, calc(100dvh - 32px));
	padding: 0;
	overflow: auto;
	border: 1px solid rgba(255, 255, 255, 0.58);
	border-radius: 28px;
	background: var(--ps-white);
	box-shadow: 0 30px 100px rgba(2, 26, 41, 0.32);
	color: var(--ps-navy-deep);
}

.careers-dialog[open] {
	display: block;
}

.careers-dialog::backdrop {
	background: rgba(2, 22, 35, 0.78);
	backdrop-filter: blur(8px);
}

.careers-dialog__shell {
	position: relative;
	display: grid;
	grid-template-columns: minmax(250px, 0.72fr) minmax(0, 1.28fr);
	min-height: 590px;
}

.careers-dialog__close {
	position: absolute;
	z-index: 2;
	top: 18px;
	right: 18px;
	display: grid;
	width: 42px;
	height: 42px;
	padding: 0;
	place-items: center;
	border: 1px solid rgba(12, 45, 63, 0.12);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 10px 24px rgba(4, 31, 45, 0.1);
	color: var(--ps-navy-deep);
	font-size: 1.65rem;
	line-height: 1;
	cursor: pointer;
	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		color 180ms ease;
}

.careers-dialog__close:hover {
	border-color: var(--ps-cyan);
	background: var(--ps-cyan);
	color: var(--ps-white);
	transform: none;
}

.careers-dialog__intro {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 72px 42px 48px;
	background:
		linear-gradient(160deg, rgba(9, 174, 228, 0.1), transparent 52%),
		var(--ps-navy);
	color: rgba(255, 255, 255, 0.78);
}

.careers-dialog__intro .section-kicker {
	color: var(--ps-aqua);
}

.careers-dialog__intro h2 {
	margin: 12px 0 22px;
	color: var(--ps-white);
	font-size: clamp(2rem, 4vw, 3.15rem);
	line-height: 1;
}

.careers-dialog__intro p {
	margin: 0;
	line-height: 1.75;
}

.careers-dialog__note {
	margin-top: 28px !important;
	padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	font-size: 0.86rem;
}

.careers-dialog__note strong {
	color: var(--ps-white);
}

.careers-form {
	display: grid;
	align-content: center;
	gap: 18px;
	padding: 70px 48px 44px;
}

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

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

.careers-form label > span {
	color: var(--ps-navy-deep);
	font-size: 0.8rem;
	font-weight: 750;
}

.careers-form input,
.careers-form select,
.careers-form textarea {
	width: 100%;
	border: 1px solid rgba(12, 45, 63, 0.16);
	border-radius: 12px;
	background: #f7fbfd;
	color: var(--ps-navy-deep);
	font: inherit;
	font-size: 0.88rem;
	transition:
		border-color 180ms ease,
		background-color 180ms ease,
		box-shadow 180ms ease;
}

.careers-form input,
.careers-form select {
	height: 50px;
	padding: 0 14px;
}

.careers-form textarea {
	min-height: 108px;
	padding: 13px 14px;
	resize: vertical;
}

.careers-form input:focus,
.careers-form select:focus,
.careers-form textarea:focus {
	outline: none;
	border-color: var(--ps-cyan);
	background: var(--ps-white);
	box-shadow: 0 0 0 3px rgba(9, 174, 228, 0.12);
}

.careers-form__submit {
	width: 100%;
	margin-top: 4px;
	cursor: pointer;
}

.careers-form__whatsapp {
	display: inline-flex;
	width: 21px;
	height: 21px;
}

.careers-form__whatsapp img {
	width: 21px;
	height: 21px;
	filter: brightness(0) invert(1);
}

.careers-form__status {
	min-height: 20px;
	margin: -6px 0 0;
	color: var(--ps-cyan-dark);
	font-size: 0.78rem;
	text-align: center;
}

.careers-form__status.is-error {
	color: #a23535;
}

@media (max-width: 760px) {
	.site-footer__careers {
		margin-right: auto;
		margin-left: auto;
	}

	.careers-dialog {
		width: calc(100% - 20px);
		max-height: calc(100dvh - 20px);
		border-radius: 22px;
	}

	.careers-dialog__shell {
		display: block;
		min-height: 0;
	}

	.careers-dialog__intro {
		padding: 54px 26px 28px;
	}

	.careers-dialog__intro h2 {
		margin-bottom: 16px;
		font-size: 2rem;
	}

	.careers-dialog__note {
		margin-top: 20px !important;
		padding-top: 18px;
	}

	.careers-form {
		gap: 16px;
		padding: 28px 22px 24px;
	}

	.careers-form__grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

/* v1.14 — envio de currículo e acessos secundários */
.site-nav__careers {
	position: relative;
	flex: 0 0 auto;
	padding: 13px 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: #294554;
	font: inherit;
	font-size: 0.78rem;
	font-weight: 650;
	letter-spacing: 0.01em;
	cursor: pointer;
	white-space: nowrap;
}

.site-nav__careers::after {
	position: absolute;
	right: 0;
	bottom: 7px;
	left: 0;
	height: 1px;
	background: var(--ps-cyan);
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 180ms ease;
}

.site-nav__careers:hover {
	background: transparent;
	color: var(--ps-cyan-dark);
	transform: none;
}

.site-nav__careers:hover::after {
	transform: scaleX(1);
	transform-origin: left;
}

.contact__careers {
	max-width: 440px;
	margin-top: 28px;
	padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.contact__careers p {
	margin: 0 0 13px;
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.84rem;
}

.contact__careers-button {
	min-height: 43px;
	padding: 11px 19px;
	border: 0;
	border-radius: 999px;
	background: var(--ps-cyan);
	box-shadow: 0 12px 26px rgba(9, 174, 228, 0.26);
	color: var(--ps-white);
	font: inherit;
	font-size: 0.8rem;
	font-weight: 750;
	cursor: pointer;
	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease;
}

.contact__careers-button:hover {
	background: var(--ps-cyan-dark);
	box-shadow: 0 14px 30px rgba(9, 174, 228, 0.34);
	transform: none;
}

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

.careers-form__file {
	gap: 8px;
}

.careers-file {
	position: relative;
	display: block;
}

.careers-file input {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
}

.careers-file__copy {
	display: flex;
	min-height: 62px;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 11px 14px 11px 18px;
	border: 1px dashed rgba(12, 45, 63, 0.28);
	border-radius: 12px;
	background: #f7fbfd;
	cursor: pointer;
	transition:
		border-color 180ms ease,
		background-color 180ms ease,
		box-shadow 180ms ease;
}

.careers-file input:focus-visible + .careers-file__copy,
.careers-file:hover .careers-file__copy {
	border-color: var(--ps-cyan);
	background: var(--ps-white);
	box-shadow: 0 0 0 3px rgba(9, 174, 228, 0.1);
}

.careers-file__copy strong {
	flex: 0 0 auto;
	padding: 9px 13px;
	border-radius: 999px;
	background: var(--ps-aqua-soft);
	color: var(--ps-navy-deep);
	font-size: 0.76rem;
}

.careers-file__copy small {
	overflow: hidden;
	color: #647a84;
	font-size: 0.72rem;
	text-align: right;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.careers-form__submit {
	min-height: 50px;
	border: 0;
	background: var(--ps-cyan);
	box-shadow: 0 12px 26px rgba(9, 174, 228, 0.24);
	color: var(--ps-white);
	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease;
}

.careers-form__submit:hover {
	background: var(--ps-cyan-dark);
	box-shadow: 0 14px 30px rgba(9, 174, 228, 0.32);
	transform: none;
}

.careers-form__submit:disabled {
	cursor: wait;
	opacity: 0.72;
}

.careers-form__status.is-success {
	color: #13704c;
}

@media (max-width: 1120px) {
	.site-nav__careers {
		width: 100%;
		padding: 14px 2px;
		border-top: 1px solid var(--ps-line);
		color: #294554;
		font-size: 0.9rem;
		font-weight: 650;
		line-height: 1.5;
		text-align: left;
	}

	.site-nav__careers::after {
		display: none;
	}
}

@media (max-width: 760px) {
	.contact__careers {
		margin-top: 24px;
		padding-top: 20px;
	}

	.contact__careers-button {
		width: 100%;
	}

	.careers-file__copy {
		display: grid;
		justify-items: start;
	}

	.careers-file__copy small {
		max-width: 100%;
		text-align: left;
	}
}

/* v1.15 — modal sem overflow visual no desktop */
.careers-dialog {
	scrollbar-width: none;
}

.careers-dialog::-webkit-scrollbar {
	display: none;
	width: 0;
	height: 0;
}

@media (min-width: 761px) {
	.careers-dialog {
		overflow: hidden;
	}

	.careers-dialog__shell {
		min-height: 0;
	}

	.careers-dialog__intro {
		padding: 48px 38px 34px;
	}

	.careers-dialog__intro h2 {
		margin-block: 10px 18px;
	}

	.careers-dialog__note {
		margin-top: 20px !important;
		padding-top: 18px;
	}

	.careers-form {
		gap: 12px;
		padding: 42px 42px 28px;
	}

	.careers-form__grid {
		column-gap: 16px;
		row-gap: 12px;
	}

	.careers-form label {
		gap: 6px;
	}

	.careers-form input,
	.careers-form select {
		height: 44px;
	}

	.careers-form textarea {
		min-height: 78px;
		padding-block: 10px;
	}

	.careers-file__copy {
		min-height: 50px;
		padding-block: 8px;
	}

	.careers-form__submit {
		min-height: 46px;
	}

	.careers-form__status {
		min-height: 16px;
		margin-top: -3px;
		font-size: 0.74rem;
	}
}

/* v1.16 — ritmo uniforme do menu lateral */
@media (max-width: 1120px) {
	.site-nav__list,
	.home .site-nav__list {
		gap: 0;
	}

	.site-nav__list li + li {
		border-top: 0;
	}

	.site-nav__home-link,
	.site-nav__list a,
	.home .site-nav__home-link,
	.home .site-nav__list a,
	.site-nav__careers {
		display: flex;
		min-height: 56px;
		align-items: center;
		padding: 0 4px;
		border: 0;
		border-bottom: 1px solid var(--ps-line);
		box-sizing: border-box;
		font-size: 0.9rem;
		font-weight: 650;
		line-height: 1.5;
		letter-spacing: 0.01em;
		text-align: left;
	}
}
