/**
 * EL CLO IBIZA — layout & component styles.
 * Design tokens live in theme.json; this file covers layout the block editor cannot express.
 *
 * Layout breakpoint: 782px — must match home-gallery.js desktopBreakpoint.
 */

body {
	-webkit-tap-highlight-color: transparent;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	--el-clo-photo-overlay-opacity: 0.25;
}

/* Darken photo backgrounds sitewide */
.wp-block-cover .wp-block-cover__background.has-background-dim {
	background-color: #000 !important;
	opacity: var(--el-clo-photo-overlay-opacity) !important;
}

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

/* --- Header --- */

/* Header: transparent background everywhere (page background is black) */
.site-header--overlay {
	background: transparent !important;
}

/* Fixed overlay on home: clicks pass through except the header bar.
   On internal pages (GDPR) the header stays in normal document flow. */
:is(body.home, body:has(.home-landing)) .site-header--overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	pointer-events: none;
}

:is(body.home, body:has(.home-landing)) .site-header--overlay .site-header__inner {
	pointer-events: auto;
}

/* Header bar — logo centered on viewport, CTA top-right */
.site-header__inner {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: flex-end;
	width: 100%;
	max-width: none;
	min-height: 5rem;
	padding: 1.5rem 3.375rem 0;
	box-sizing: border-box;
}

.site-header__brand {
	position: absolute;
	left: 50%;
	top: 1.5rem;
	transform: translateX(-50%);
	text-align: center;
	z-index: 1;
	margin: 0;
}

.site-header__brand.wp-block-group,
.site-header__actions.wp-block-group,
.site-header__inner > .site-header__brand,
.site-header__inner > .site-header__actions {
	margin: 0 !important;
}

/* Logo — Figma Capa_1 (171×239) + scroll monogram (73×101) */
.brand-logo-link {
	display: inline-block;
	line-height: 0;
	transition: opacity 0.2s ease;
}

.brand-logo-link:hover {
	opacity: 0.8;
}

.brand-logo-link:focus-visible {
	outline: 2px solid var(--wp--preset--color--white);
	outline-offset: 4px;
}

.brand-logo-stack {
	position: relative;
	display: inline-block;
	transition: height 0.35s ease, width 0.35s ease;
}

.site-header__brand .brand-logo {
	display: block;
	width: auto;
}

.site-header__brand .brand-logo--full,
.site-header__brand .brand-logo--scroll {
	position: absolute;
	left: 50%;
	top: 0;
	transform: translateX(-50%);
	transition: opacity 0.35s ease, visibility 0.35s ease;
}

.site-header__brand .brand-logo--full {
	position: relative;
	left: auto;
	transform: none;
	height: clamp(3.25rem, 8vw, 5.5rem);
	aspect-ratio: 171 / 239;
}

.site-header__brand .brand-logo--scroll {
	aspect-ratio: 73 / 101;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

/* Home landing — header sizing & scroll logo swap */
:is(body.home, body:has(.home-landing)) {
	--header-scroll-logo-height: clamp(2.125rem, 5.85vw, 6.3125rem);
	--header-scrolled-offset: 1.5rem;
}

:is(body.home, body:has(.home-landing)) .site-header__brand .brand-logo--scroll {
	height: var(--header-scroll-logo-height);
}

:is(body.home, body:has(.home-landing)) .site-header__inner {
	min-height: clamp(5.5rem, 16vw, 17.875rem);
	padding: 2.9375rem 3.375rem 0;
	transition: min-height 0.35s ease, padding 0.35s ease;
}

:is(body.home, body:has(.home-landing)) .site-header__brand {
	top: 2.9375rem;
	transition: top 0.35s ease;
}

:is(body.home, body:has(.home-landing)) .site-header__brand .brand-logo--full {
	height: clamp(5rem, 13.84vw, 14.9375rem);
}

:is(body.home, body:has(.home-landing)) .site-header.is-scrolled .brand-logo--full {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	opacity: 0;
	visibility: hidden;
}

:is(body.home, body:has(.home-landing)) .site-header.is-scrolled .brand-logo-stack {
	height: var(--header-scroll-logo-height);
	aspect-ratio: 73 / 101;
}

:is(body.home, body:has(.home-landing)) .site-header.is-scrolled .brand-logo--scroll {
	height: var(--header-scroll-logo-height);
	opacity: 1;
	visibility: visible;
	top: 50%;
	transform: translate(-50%, -50%);
}

:is(body.home, body:has(.home-landing)) .site-header.is-scrolled .site-header__inner {
	min-height: calc(var(--header-scroll-logo-height) + var(--header-scrolled-offset));
	padding-top: var(--header-scrolled-offset);
}

:is(body.home, body:has(.home-landing)) .site-header.is-scrolled .site-header__brand {
	top: var(--header-scrolled-offset);
}

.site-footer .brand-logo {
	width: auto;
	height: clamp(6rem, 35vw, 12rem);
	aspect-ratio: 215 / 300;
	display: block;
}

@media (min-width: 782px) {
	.site-footer .brand-logo {
		width: 215px;
		height: 300px;
	}

	.site-footer {
		padding-top: var(--wp--preset--spacing--60) !important;
		padding-bottom: var(--wp--preset--spacing--60) !important;
		padding-left: var(--wp--preset--spacing--60) !important;
		padding-right: var(--wp--preset--spacing--60) !important;
	}
}

/* Button hover — is-style-outline overrides elements.button in global styles */
.wp-block-button__link {
	transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.wp-block-button__link:hover {
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--black);
	border-color: var(--wp--preset--color--white);
}

.wp-block-button__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--white);
	outline-offset: 2px;
}

.wp-block-button__link:hover:focus-visible {
	outline-color: var(--wp--preset--color--black);
}

.site-header__cta {
	flex-shrink: 0;
}

.site-header__actions {
	position: absolute;
	top: 1.5rem;
	right: 3.375rem;
	z-index: 2;
	display: flex;
	align-items: center;
	flex-shrink: 0;
	margin: 0;
}

:is(body.home, body:has(.home-landing)) .site-header__actions {
	top: 2.9375rem;
}

/* Header menu trigger — Figma: two-line icon only, top-left */
.site-header__menu-toggle {
	position: absolute;
	top: 1.5rem;
	left: 3.375rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.375rem;
	height: 2.375rem;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--white);
	cursor: pointer;
	transition: opacity 0.2s ease;
	flex-shrink: 0;
}

:is(body.home, body:has(.home-landing)) .site-header__menu-toggle {
	top: 2.9375rem;
}

.site-header__menu-toggle-icon {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.4375rem;
	width: 1.75rem;
	height: 0.6875rem;
}

.site-header__menu-toggle-icon span {
	display: block;
	width: 100%;
	height: 1px;
	background: currentColor;
}

.site-header__menu-toggle-close {
	display: none;
	line-height: 0;
}

.site-header__menu-toggle[aria-expanded="true"] .site-header__menu-toggle-icon {
	display: none;
}

.site-header__menu-toggle[aria-expanded="true"] .site-header__menu-toggle-close {
	display: inline-flex;
}

.site-header__menu-toggle:hover {
	opacity: 0.7;
}

.site-header__menu-toggle:focus-visible {
	outline: 2px solid var(--wp--preset--color--white);
	outline-offset: 4px;
}

/* --- Nav overlay --- */

/* Full-screen nav overlay — Figma node 28:731 */
body.is-nav-open {
	overflow: hidden;
}

.site-nav-overlay {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: flex;
	align-items: stretch;
	justify-content: center;
	background: transparent;
	visibility: hidden;
	opacity: 0;
	transition: opacity 0.5s ease, visibility 0s linear 0.5s;
	pointer-events: none;
}

.site-nav-overlay.is-open {
	visibility: visible;
	opacity: 1;
	transition: opacity 0.5s ease, visibility 0s linear 0s;
	pointer-events: auto;
}

.site-nav-overlay__inner {
	display: grid;
	grid-template-columns: 40% 60%;
	width: 100%;
	min-height: 100%;
	transform: scale(0.94);
	transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.site-nav-overlay.is-open .site-nav-overlay__inner {
	transform: scale(1);
}

.site-nav-overlay__nav {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	padding: 2.9375rem 3.375rem 3.375rem;
	box-sizing: border-box;
	background: var(--wp--preset--color--black);
}

.site-nav-overlay__close {
	position: absolute;
	top: 2.9375rem;
	left: 3.375rem;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--white);
	line-height: 0;
	cursor: pointer;
	transition: opacity 0.2s ease;
}

.site-nav-overlay__close:hover {
	opacity: 0.7;
}

.site-nav-overlay__close:focus-visible {
	outline: 2px solid var(--wp--preset--color--white);
	outline-offset: 4px;
}

.site-nav-overlay__links {
	flex: 1;
	display: flex;
	align-items: flex-start;
	padding-top: max(2.5rem, calc(20dvh - 2.9375rem));
}

.site-nav-overlay__links ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: clamp(0.75rem, 2.5vh, 1.5rem);
}

.site-nav-overlay__links a {
	display: inline-block;
	font-family: var(--wp--preset--font-family--big-shoulders);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 100;
	line-height: 1.17;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--wp--preset--color--white);
	transition: opacity 0.2s ease;
}

.site-nav-overlay__links a:hover {
	opacity: 0.7;
}

.site-nav-overlay__links a:focus-visible {
	outline: 2px solid var(--wp--preset--color--white);
	outline-offset: 4px;
}

.site-nav-overlay__meta {
	display: grid;
	grid-template-columns: auto auto;
	grid-template-rows: auto auto;
	column-gap: 3.5rem;
	row-gap: 0;
	align-items: start;
	margin-top: auto;
}

.site-nav-overlay__meta-group:nth-child(1) {
	grid-column: 1;
	grid-row: 1;
}

.site-nav-overlay__meta-group:nth-child(2) {
	grid-column: 2;
	grid-row: 1;
}

.site-nav-overlay__meta-group p:not(.site-nav-overlay__label) {
	margin: 0;
}

.site-nav-overlay__meta .site-nav-overlay__label {
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin-top: 0;
	margin-bottom: 1.5rem;
}

.site-nav-overlay__meta > .site-nav-overlay__address {
	grid-column: 1 / 3;
	grid-row: 2;
	margin: var(--wp--preset--spacing--120) 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--white-muted);
	letter-spacing: 0.05em;
}

.site-nav-overlay__meta a {
	color: inherit;
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.site-nav-overlay__meta a:hover {
	opacity: 0.7;
}

.site-nav-overlay__meta a:focus-visible {
	opacity: 0.7;
	outline: 2px solid var(--wp--preset--color--white);
	outline-offset: 2px;
}

.site-nav-overlay__backdrop {
	min-height: 100vh;
	min-height: 100dvh;
	background: rgba(0, 0, 0, 0.55);
}

@media (prefers-reduced-motion: reduce) {
	.site-nav-overlay,
	.site-nav-overlay__inner {
		transition: none;
	}

	.site-nav-overlay__inner {
		transform: none;
	}
}

.site-header__cta .wp-block-buttons,
.site-header__cta .wp-block-button,
.home-landing .wp-block-buttons,
.home-landing .wp-block-button,
.site-footer .wp-block-buttons,
.site-footer .wp-block-button {
	margin: 0;
}

/* Figma Group 31: 121×38px, Big Shoulders ExtraLight 25px, 1px white border */
.site-header__cta .wp-block-button__link,
.home-landing .wp-block-button__link,
.site-footer .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 7.5625rem;
	height: 2.375rem;
	padding: 0 1rem;
	font-family: var(--wp--preset--font-family--big-shoulders);
	font-size: var(--wp--preset--font-size--button);
	font-weight: 200;
	line-height: 1;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	white-space: nowrap;
	border-radius: 0;
}

.home-landing {
	--home-section-height: 100vh;
	margin-top: 0 !important;
}

/* --- Home landing --- */

/* Block-by-block scroll snap (home desktop only — free scroll on mobile).
   The pin section's two children (garden image + gallery) are ordinary snap
   stops, exactly like the blocks they replaced, so the snap rhythm is
   unchanged; the tagline simply stays pinned during the snap from the first
   stop (block 1 centred) to the second (block 2 centred). */
@media (min-width: 782px) {
	html:has(.home-landing) {
		scroll-snap-type: y mandatory;
	}

	.home-landing > .wp-block-cover,
	.home-landing > .wp-block-columns.home-split,
	.home-landing > .home-gallery,
	.home-pin__media,
	.home-pin > .home-gallery {
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}

	:is(body.home, body:has(.home-landing)) footer .site-footer {
		scroll-snap-align: start;
		scroll-snap-stop: normal;
	}
}

@media (prefers-reduced-motion: reduce) {
	html:has(.home-landing) {
		scroll-snap-type: none;
	}
}

.home-landing > .wp-block-group,
.home-landing > .wp-block-columns,
.home-landing > .wp-block-cover,
.home-landing > .home-gallery {
	margin-top: 0;
}

/* Equal-height scroll sections: hero → last gallery */
.home-landing > .wp-block-cover,
.home-landing > .wp-block-columns.home-split,
.home-landing > .home-gallery {
	min-height: var(--home-section-height);
}

:is(body.home, body:has(.home-landing)) main.home-landing {
	margin-bottom: 0;
}

:is(body.home, body:has(.home-landing)) footer.wp-block-template-part {
	margin-top: 0;
}

/* Full-bleed split sections */
.home-split {
	gap: 0 !important;
	align-items: stretch !important;
}

.home-split > .wp-block-column {
	min-height: 0;
	flex: 1 1 0;
}

.home-split .home-split__text.wp-block-column {
	display: grid;
	grid-template-columns: 1fr min(28rem, 100%) 1fr;
	align-content: center;
	align-items: start;
	box-sizing: border-box;
	overflow-y: hidden;
	padding-top: var(--wp--preset--spacing--80);
	padding-bottom: var(--wp--preset--spacing--80);
	padding-left: clamp(2rem, 7vw, 5rem);
	padding-right: clamp(2rem, 7vw, 5rem);
}

.home-split__text > .wp-block-heading,
.home-split__text > p,
.home-split__text > .wp-block-buttons {
	grid-column: 2;
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

.home-split__text .wp-block-heading {
	margin-bottom: var(--wp--preset--spacing--60);
}

.home-split__text p {
	margin-top: 0;
	margin-bottom: 1.25rem;
}

.home-split__text > .wp-block-buttons {
	margin-top: var(--wp--preset--spacing--60);
}

.home-split > .wp-block-column:not(.home-split__text) {
	display: flex;
	flex-direction: column;
	min-height: 0;
}

.home-split > .wp-block-column:not(.home-split__text) > .wp-block-cover {
	flex: 1 1 auto;
	width: 100%;
	min-height: 100% !important;
	height: 100%;
	padding: 0;
}

.home-split > .wp-block-column:not(.home-split__text) .wp-block-cover__image-background {
	height: 100%;
	min-height: 100%;
	object-fit: cover;
}

.home-cover-hero .wp-block-cover__inner-container {
	display: none;
}

/* Home motion: hero fade-in + scroll reveal (see home-reveal.js) */
@media (prefers-reduced-motion: no-preference) {
	.home-cover-hero .wp-block-cover__image-background {
		opacity: 0;
		transition: opacity 1s ease;
	}

	.home-cover-hero.is-hero-visible .wp-block-cover__image-background {
		opacity: 1;
	}

	:is(body.home, body:has(.home-landing)) .site-header--overlay .site-header__brand,
	:is(body.home, body:has(.home-landing)) .site-header--overlay .site-header__actions,
	:is(body.home, body:has(.home-landing)) .site-header--overlay .site-header__menu-toggle {
		opacity: 0;
		transition: opacity 1s ease;
		transition-delay: 0.15s;
	}

	:is(body.home, body:has(.home-landing)) .site-header--overlay.is-header-visible .site-header__brand,
	:is(body.home, body:has(.home-landing)) .site-header--overlay.is-header-visible .site-header__actions,
	:is(body.home, body:has(.home-landing)) .site-header--overlay.is-header-visible .site-header__menu-toggle {
		opacity: 1;
	}

	.home-reveal {
		opacity: 0;
		transform: translate3d( 0, 1.25rem, 0 );
		transition:
			opacity 0.75s ease,
			transform 0.75s ease;
		transition-delay: var( --home-reveal-delay, 0ms );
	}

	.is-in-view .home-reveal {
		opacity: 1;
		transform: translate3d( 0, 0, 0 );
	}

	.home-split__media {
		overflow: hidden;
	}

	.home-reveal-media {
		opacity: 0;
		transform: scale( 1.04 );
		transition:
			opacity 1s ease,
			transform 1.2s ease;
	}

	.home-split__media.is-in-view .home-reveal-media {
		opacity: 1;
		transform: scale( 1 );
	}

	.home-pin__media-image {
		opacity: 0;
		transition: opacity 1s ease;
	}

	.home-pin.is-in-view .home-pin__media-image {
		opacity: 1;
	}

	/* Opacity-only fade for the pinned heading: never use transform here, it
	   would fight the pin's translateY centring set in JS/CSS below. */
	.home-pin__text {
		opacity: 0;
		transition: opacity 0.9s ease;
	}

	.home-pin.is-in-view .home-pin__text {
		opacity: 1;
	}
}

/* Pinned tagline section: garden image (block 1) + gallery (block 2) scroll
   behind a heading that stays fixed in the viewport centre. The pin range runs
   from the centre of block 1 to the centre of block 2 (see home-tagline-pin.js). */
.home-pin {
	position: relative;
	background-color: var(--wp--preset--color--black);
}

.home-pin__media {
	position: relative;
	width: 100%;
	height: var(--home-section-height);
	overflow: hidden;
	background-color: var(--wp--preset--color--black);
}

.home-pin__media-image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* Dim layer over the garden image only (matches the old cover dimRatio 40). */
.home-pin__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background-color: rgba( 0, 0, 0, 0.4 );
	pointer-events: none;
}

.home-pin__text {
	position: absolute;
	top: 50vh;
	top: 50dvh;
	left: 0;
	width: 100%;
	max-width: none;
	margin: 0;
	padding-inline: clamp( 1.5rem, 6vw, 5rem );
	box-sizing: border-box;
	transform: translateY( -50% );
	text-align: center;
	z-index: 5;
	pointer-events: none;
	color: var(--wp--preset--color--white);
}

/* Pinned phase: JS adds this class while the heading is centred in the viewport. */
.home-pin__text.is-pinned {
	position: fixed;
	top: 50%;
}

/* Home image galleries (Swiper) */
.home-gallery {
	position: relative;
	width: 100%;
	height: var(--home-section-height);
	background: #000;
	overflow: hidden;
}

.home-gallery .swiper-wrapper {
	align-items: stretch;
	height: 100%;
}

@media (prefers-reduced-motion: no-preference) {
	.home-gallery .swiper-wrapper {
		transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
	}
}

.home-gallery .swiper-slide {
	height: 100%;
	box-sizing: border-box;
}

.home-gallery__figure {
	margin: 0;
	height: 100%;
	position: relative;
}

.home-gallery__figure::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, var(--el-clo-photo-overlay-opacity));
	pointer-events: none;
}

.home-gallery__figure img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.home-gallery__nav {
	position: absolute;
	top: 50%;
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--white);
	cursor: pointer;
	transform: translateY(-50%);
	transition: opacity 0.2s ease;
}

.home-gallery__nav:hover {
	opacity: 0.65;
}

.home-gallery__nav:disabled,
.home-gallery__nav.swiper-button-disabled {
	opacity: 0.25;
	cursor: default;
}

.home-gallery__nav--prev {
	left: clamp(1rem, 3vw, 2.875rem);
}

.home-gallery__nav--next {
	right: clamp(1rem, 3vw, 2.875rem);
}

.home-gallery__nav--prev svg {
	transform: scaleX(-1);
}

.home-gallery .swiper-button-lock {
	display: none;
}

.is-grayscale img {
	filter: grayscale(100%);
}

.home-philosophy__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.home-philosophy__buttons .wp-block-button {
	width: auto;
}

.home-philosophy__buttons .wp-block-button__link {
	min-width: auto;
	padding-left: 1rem;
	padding-right: 1rem;
}

/* --- Content pages (legal, etc.) --- */

main:not(.home-landing) {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--80);
}

main:not(.home-landing) .wp-block-post-content :is(h2, h3, h4),
main:not(.home-landing) #cmplz-document :is(h2, h3, h4) {
	margin-top: var(--wp--preset--spacing--60);
	margin-bottom: var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--big-shoulders);
	letter-spacing: -0.01em;
	text-transform: uppercase;
}

main:not(.home-landing) .wp-block-post-content :is(h2, h3, h4):first-child,
main:not(.home-landing) #cmplz-document :is(h2, h3, h4):first-child {
	margin-top: 0;
}

main:not(.home-landing) .wp-block-post-content p + :is(h2, h3, h4),
main:not(.home-landing) #cmplz-document p + :is(h2, h3, h4) {
	margin-top: var(--wp--preset--spacing--60);
}

main:not(.home-landing) .wp-block-post-content h2,
main:not(.home-landing) #cmplz-document h2 {
	font-size: var(--wp--preset--font-size--content-heading);
	line-height: 1.2;
	font-weight: 100;
}

main:not(.home-landing) .wp-block-post-content h3,
main:not(.home-landing) #cmplz-document h3 {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.25;
	font-weight: 200;
}

main:not(.home-landing) .wp-block-post-content h4,
main:not(.home-landing) #cmplz-document h4 {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.3;
	font-weight: 200;
}

main:not(.home-landing) #cmplz-document {
	font-size: var(--wp--preset--font-size--medium);
	max-width: none;
}

/* --- Footer --- */

.site-footer {
	border-top: 0;
	max-width: none;
	width: 100%;
	padding-left: var(--wp--preset--spacing--50);
	padding-right: var(--wp--preset--spacing--50);
	box-sizing: border-box;
}

.site-footer__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--wp--preset--spacing--80);
	align-items: stretch;
	width: 100%;
	max-width: none;
	box-sizing: border-box;
}

.site-footer__grid > .wp-block-group {
	margin-top: 0;
}

.site-footer .brand-logo-link {
	display: inline-block;
	line-height: 0;
}

.site-footer a:not( .wp-block-button__link ) {
	transition: opacity 0.2s ease;
	text-decoration: none;
}

.site-footer a:not( .wp-block-button__link ):hover {
	opacity: 0.7;
}

.site-footer a:not( .wp-block-button__link ):focus-visible {
	opacity: 0.7;
	outline: 2px solid var(--wp--preset--color--white);
	outline-offset: 2px;
}

.site-footer__info {
	display: grid;
	grid-template-columns: auto auto 1fr;
	grid-template-rows: 1fr auto;
	column-gap: 3.5rem;
	row-gap: 0;
	align-items: start;
	min-height: 100%;
}

.site-footer__info > .wp-block-group:nth-child(1) {
	grid-column: 1;
	grid-row: 1;
}

.site-footer__info > .wp-block-group:nth-child(2) {
	grid-column: 2;
	grid-row: 1;
}

.site-footer__info > .wp-block-group {
	align-self: start;
	margin-top: 0;
}

.site-footer__info p:not(.site-footer__address):not(.site-footer__label),
.site-footer__info .wp-block-buttons {
	margin-top: 0;
	margin-bottom: 0;
}

.site-footer__info > .wp-block-group:nth-child(3) {
	grid-column: 3;
	grid-row: 1;
	display: flex;
	justify-content: flex-end;
	justify-self: stretch;
	width: 100%;
}

.site-footer__info > .wp-block-group:nth-child(3) .wp-block-buttons {
	display: flex;
	justify-content: flex-end;
	width: 100%;
	margin-left: auto;
}

.site-footer__info .site-footer__label {
	font-family: var(--wp--preset--font-family--dm-sans);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin-top: 0;
	margin-bottom: 1.5rem;
}

.home-split__text > p.has-small-font-size a {
	color: var(--wp--preset--color--white-muted);
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.home-split__text > p.has-small-font-size a:hover,
.home-split__text > p.has-small-font-size a:focus-visible {
	opacity: 0.7;
}

.home-split__text > p.has-small-font-size a:focus-visible {
	outline: 2px solid var(--wp--preset--color--white);
	outline-offset: 2px;
}

.site-footer__info > .site-footer__address {
	grid-column: 1 / 3;
	grid-row: 2;
	align-self: end;
	margin-top: 0;
	margin-bottom: 0;
	text-align: left;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--white-muted);
	letter-spacing: 0.05em;
}

.site-footer__address a {
	color: inherit;
	text-decoration: none;
}

.site-footer__info > .site-footer__legal {
	grid-column: 1 / -1;
	grid-row: 3;
	margin: var(--wp--preset--spacing--30) 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--white-muted);
	letter-spacing: 0.05em;
}

.site-footer__legal a {
	color: inherit;
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.site-footer__legal a:hover,
.site-footer__legal a:focus-visible {
	opacity: 0.7;
}

.site-footer__legal a:focus-visible {
	outline: 2px solid var(--wp--preset--color--white);
	outline-offset: 2px;
}

.site-footer__legal-sep {
	opacity: 0.6;
}

@media (max-width: 781px) {
	/* --- Mobile --- */

	.home-split {
		--home-split-media-height: 55dvh;
	}

	.site-header__inner {
		padding: 1.25rem 1.25rem 0;
		--header-mobile-bar-height: 2.125rem;
	}

	.site-header__brand {
		top: 1.25rem;
	}

	.site-header__actions,
	:is(body.home, body:has(.home-landing)) .site-header__actions {
		top: 1.25rem;
		right: 1.25rem;
		height: var(--header-mobile-bar-height);
	}

	.site-header__menu-toggle,
	:is(body.home, body:has(.home-landing)) .site-header__menu-toggle {
		top: 1.25rem;
		left: 1.25rem;
		height: var(--header-mobile-bar-height);
	}

	.site-header__menu-toggle {
		width: 2.125rem;
	}

	.site-header__menu-toggle-icon {
		width: 1.5rem;
	}

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

	.site-nav-overlay__backdrop {
		display: none;
	}

	.site-nav-overlay__nav {
		min-height: 100vh;
		min-height: 100dvh;
		padding: 1.25rem 1.25rem 2rem;
	}

	.site-nav-overlay__close {
		top: 1.25rem;
		left: 1.25rem;
	}

	.site-nav-overlay__links {
		flex: 0 1 auto;
		padding-top: 3.75rem;
		margin-bottom: var(--wp--preset--spacing--80);
	}

	.site-nav-overlay__meta {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--30);
	}

	.site-nav-overlay__meta .site-nav-overlay__label {
		margin-bottom: 0.5rem;
	}

	.site-nav-overlay__meta-group:nth-child(1),
	.site-nav-overlay__meta-group:nth-child(2),
	.site-nav-overlay__meta > .site-nav-overlay__address {
		grid-column: 1;
		grid-row: auto;
	}

	.site-nav-overlay__meta > .site-nav-overlay__address {
		margin-top: var(--wp--preset--spacing--30);
	}

	:is(body.home, body:has(.home-landing)) {
		--header-scroll-logo-height: clamp(2.5rem, 14vw, 3.75rem);
		--header-scrolled-offset: 1.25rem;
	}

	:is(body.home, body:has(.home-landing)) .site-header__inner {
		min-height: clamp(7rem, 30vw, 9.5rem);
		padding: 1.25rem 1.25rem 0;
	}

	:is(body.home, body:has(.home-landing)) .site-header__brand {
		top: 1.25rem;
	}

	:is(body.home, body:has(.home-landing)) .site-header.is-scrolled .site-header__inner {
		min-height: calc(var(--header-scroll-logo-height) + var(--header-scrolled-offset));
		padding: var(--header-scrolled-offset) 1.25rem 0;
	}

	:is(body.home, body:has(.home-landing)) .site-header.is-scrolled .site-header__brand {
		top: var(--header-scrolled-offset);
		height: var(--header-mobile-bar-height);
		display: flex;
		align-items: center;
		justify-content: center;
	}

	:is(body.home, body:has(.home-landing)) .site-header__brand .brand-logo--full {
		height: clamp(5rem, 24vw, 7rem);
	}

	.site-header__cta .wp-block-button__link,
	.home-landing .wp-block-button__link,
	.site-footer .wp-block-button__link {
		min-width: auto;
		height: 2.125rem;
		padding: 0 0.75rem;
	}

	.site-header__cta .wp-block-button__link {
		font-size: clamp(0.875rem, 2.8vw, 1rem);
	}

	.home-split .home-split__text.wp-block-column {
		padding-left: var(--wp--preset--spacing--50);
		padding-right: var(--wp--preset--spacing--50);
	}

	/* Split blocks: image on top, text below; section height follows content */
	.home-landing > .wp-block-columns.home-split {
		min-height: auto;
	}

	.home-split > .home-split__media {
		order: -1;
		flex: 0 0 100% !important;
		width: 100% !important;
		height: var(--home-split-media-height);
		min-height: var(--home-split-media-height);
		max-height: none;
	}

	.home-split > .home-split__media > .home-split__cover,
	.home-split > .wp-block-column:not(.home-split__text) > .home-split__cover {
		flex: 1 1 auto !important;
		width: 100% !important;
		min-height: var(--home-split-media-height) !important;
		height: 100% !important;
		padding: 0;
	}

	.home-split > .wp-block-column:not(.home-split__text) .wp-block-cover__image-background {
		min-height: var(--home-split-media-height);
		height: 100%;
	}

	.home-split > .home-split__text {
		flex: 0 1 auto;
		min-height: 0;
		padding-top: var(--wp--preset--spacing--50);
		padding-bottom: var(--wp--preset--spacing--50);
	}

	.site-footer {
		padding-top: var(--wp--preset--spacing--80) !important;
		padding-bottom: var(--wp--preset--spacing--80) !important;
	}

	.site-footer .brand-logo {
		height: clamp(7.5rem, 44vw, 10.5rem);
		width: auto;
		aspect-ratio: 171 / 239;
	}

	.site-footer__grid {
		flex: 1;
		display: flex;
		flex-direction: column;
		grid-template-columns: 1fr;
		gap: 0;
		width: 100%;
	}

	:is(body.home, body:has(.home-landing)) footer .site-footer {
		min-height: 100vh;
		min-height: 100dvh;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
	}

	:is(body.home, body:has(.home-landing)) footer .site-footer__info {
		margin-top: auto;
	}

	.site-footer__info {
		grid-template-columns: 1fr;
		gap: var(--wp--preset--spacing--50);
		grid-template-rows: none;
		min-height: 0;
	}

	.site-footer__info .site-footer__label {
		margin-bottom: 0.75rem;
	}

	.site-footer__info > .wp-block-group:nth-child(3) {
		display: none;
	}

	.site-footer__info > .wp-block-group:nth-child(1),
	.site-footer__info > .wp-block-group:nth-child(2),
	.site-footer__info > .wp-block-group:nth-child(3) {
		grid-column: 1;
		grid-row: auto;
	}

	.site-footer__info > .site-footer__address {
		grid-column: 1;
		grid-row: auto;
		margin-top: 0;
	}

	.site-footer__info > .site-footer__legal {
		grid-column: 1;
		grid-row: auto;
		margin-top: var(--wp--preset--spacing--30);
	}
}
