/* Approved Home v2. Scoped to the English homepage; shared pages keep their styles. */
.home-approved {
	--header-height: 128px;
	--ease-out: cubic-bezier(0.23, 1, 0.32, 1);
	--motion-reveal: 600ms;
	--motion-feedback: 160ms;
}

.home-approved .site-header { height: var(--header-height); transition: background-color 200ms ease, box-shadow 200ms ease; }
.home-approved .site-header__inner { max-width: 1200px; }
.home-approved .brand__logo { width: 280px; height: 46px; max-width: none; }
.home-approved .brand picture { display: block; line-height: 0; }
.home-approved .brand--footer .brand__logo { width: 250px; height: auto; }
.home-approved .language-switcher__list a { text-transform: lowercase; }
.home-approved .hero {
	height: clamp(720px, 53.164vw, 983px);
	min-height: 720px;
	background: #d1d6db;
}
.home-approved .hero__photography {
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: .45;
	overflow: hidden;
}
.home-approved .hero__overlay {
	z-index: -2;
	background: linear-gradient(180deg, rgb(11 44 37 / 48%) 0%, rgb(11 44 37 / 59%) 54%, rgb(11 44 37 / 76%) 100%);
}
.home-approved .hero::after {
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	content: "";
	background: linear-gradient(180deg, rgb(11 44 37 / 28%) 0, rgb(11 44 37 / 16%) 128px, rgb(11 44 37 / 8%) 280px, rgb(11 44 37 / 8%) 550px, transparent 760px);
}
.home-approved .hero__image { display: block; transform: none; object-position: center; }
.home-approved .hero__content { padding-top: 102px; animation: none; }
.home-approved .hero__location { text-transform: none; letter-spacing: 0; color: #071d18; }
.home-approved .hero h1 { max-width: 680px; white-space: pre-line; letter-spacing: 0; }
.home-approved .hero__description { max-width: 680px; }
.home-approved .hero__note { margin-top: 24px; }
.home-approved .section-heading h2 { white-space: pre-line; letter-spacing: 0; }
.home-approved .credibility-band p { letter-spacing: 0; }
.home-approved .services .section-heading h2 { max-width: 560px; margin-inline: auto; }
.home-approved .process .section-heading h2 { max-width: 500px; margin-inline: auto; }
.home-approved .current-projects .section-heading h2 { max-width: 460px; margin-inline: auto; }
.home-approved .current-project__status,
.home-approved .current-project__eyebrow,
.home-approved .business-details p span { text-transform: none; }
.home-approved .current-project__image { display: block; }
.home-approved .contact { clip-path: none; margin-top: 0; }
.home-approved .business-details h3 { max-width: 210px; }
.home-approved .current-project__note { font-size: .875rem; }
.home-approved .button { transition: background-color 200ms ease, border-color 200ms ease, color 200ms ease, transform var(--motion-feedback) var(--ease-out); }
.home-approved .button:hover { transform: none; }
.home-approved .button:active { transform: scale(.98); }
.home-approved .service-card:hover .service-card__image,
.home-approved .current-project:hover .current-project__image { transform: none; }
.home-approved .service-card__image,
.home-approved .current-project__image { transition: transform var(--motion-reveal) var(--ease-out); }

/* Motion is progressive enhancement: content stays visible without JavaScript. */
.home-approved [data-reveal] { opacity: 1; transform: none; }
.home-approved [data-reveal].reveal-pending {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity var(--motion-reveal) var(--ease-out), transform var(--motion-reveal) var(--ease-out);
}
.home-approved [data-reveal].reveal-pending.is-visible { opacity: 1; transform: none; }
.home-approved .services__grid > :nth-child(2),
.home-approved .process__grid > :nth-child(2),
.home-approved .values__grid > :nth-child(2) { transition-delay: 60ms; }
.home-approved .services__grid > :nth-child(3),
.home-approved .process__grid > :nth-child(3) { transition-delay: 120ms; }
.home-approved .values__grid > :nth-child(4) { transition-delay: 60ms; }
.home-approved [data-reveal]:focus-within { opacity: 1; transform: none; transition: none; }

@media (min-width: 901px) {
	.home-approved .services { padding-top: 134px; padding-bottom: 106px; }
	.home-approved .process { padding-top: 134px; padding-bottom: 106px; }
	.home-approved .values { padding-top: 134px; padding-bottom: 106px; }
	.home-approved .contact { padding-top: 194px; padding-bottom: 106px; }
	.home-approved .services .section-heading,
	.home-approved .process .section-heading,
	.home-approved .values .section-heading { margin-bottom: 68px; }
	.home-approved .contact__heading { margin-bottom: 64px; }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
	.home-approved .button:hover { transform: translateY(-2px); }
	.home-approved .button:active { transform: translateY(0) scale(.98); }
	.home-approved .service-card:hover .service-card__image { transform: scale(1.025); }
	.home-approved .current-project:hover .current-project__image { transform: scale(1.02); }
}

@media (prefers-reduced-motion: no-preference) {
	.home-approved .hero__image { animation: home-image-settle var(--motion-image-settle) var(--ease-out) both; }
	.home-approved .hero__content > * { animation: home-content-enter var(--motion-page-enter) var(--ease-out) both; }
	.home-approved .hero h1 { animation-delay: 60ms; }
	.home-approved .hero__description { animation-delay: 120ms; }
	.home-approved .hero__actions { animation-delay: 180ms; }
	.home-approved .hero__note { animation-delay: 240ms; }
}

@keyframes home-image-settle { from { transform: scale(1.035); } to { transform: scale(1); } }
@keyframes home-content-enter { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

@media (max-width: 1100px) {
	.home-approved .brand__logo { width: 220px; height: auto; }
	.home-approved .primary-navigation__list { gap: 18px; }
}
@media (max-width: 900px) {
	.home-approved { --header-height: 96px; }
	.home-approved .hero { height: auto; min-height: 740px; }
	.home-approved .hero__content { padding-block: 160px 96px; }
}
@media (max-width: 760px) {
	/* Approved mobile header: 18px gutters, 194px logo and a 46px menu target. */
	.home-approved { --header-height: 70px; }
	.home-approved .brand__logo,
	.home-approved .site-header.is-scrolled .brand__logo { width: 194px; height: auto; }
	.home-approved .site-header__cta { display: none; }
	.home-approved .menu-toggle { flex: 0 0 46px; margin-left: auto; }
	.home-approved .hero { min-height: 680px; }
	.home-approved .hero__content { padding-block: 140px 80px; }
	.home-approved .brand--footer .brand__logo { width: 194px; height: auto; }
	.home-approved .hero h1 { white-space: normal; }
	.home-approved .section-heading h2 { white-space: normal; letter-spacing: -.015em; }
	.home-approved .site-footer__tagline { max-width: 274px; margin-top: 33px; }
}

@media (max-width: 560px) {
	/* The 320px reference has an 887px hero, with content beginning at 181px.
	 * Use normal flow and a minimum height so edited copy can grow safely. */
	.home-approved .hero { min-height: 887px; }
	.home-approved .hero__content { padding-block: 181px 97px; }
	.home-approved .hero__image { object-position: 60% center; }
	.home-approved .hero__actions { flex-direction: column; gap: 12px; }
	.home-approved .hero__actions .button { width: 100%; }
	.home-approved .services,
	.home-approved .process,
	.home-approved .values { padding-block: 72px; }
	.home-approved .section-heading { margin-bottom: 42px; }
	.home-approved .current-projects { padding-bottom: 72px; }
	.home-approved .contact { padding-block: 90px 72px; }
	.home-approved .contact__layout { gap: 40px; }
	.home-approved .consultation { padding: 24px 20px; }
	.home-approved .consultation-form { grid-template-columns: minmax(0, 1fr); }
	.home-approved .site-footer__copyright { min-height: 68.6px; }
}

@media (prefers-reduced-motion: reduce) {
	.home-approved [data-reveal].reveal-pending { opacity: 1; transform: none; transition: none; }
	.home-approved .hero__content > *,
	.home-approved .hero__image { animation: none; transform: none; }
	.home-approved .button,
	.home-approved .button:hover,
	.home-approved .button:active { transform: none; }
}
