@layer components {
	/* ────────────────────────────────────────────
     * Site Header
     * ──────────────────────────────────────────── */

	.site-header {
		position: sticky;
		top: 0;
		z-index: 100;
		height: var(--uw-header-height);
		background-color: var(--uw-fg);
		transition: transform var(--uw-transition-base);
	}

	/* Hidden when scrolling down; slides back in when scrolling up (header.js). */
	.site-header.is-hidden {
		transform: translateY(-100%);
	}

	@media (prefers-reduced-motion: reduce) {
		.site-header {
			transition: none;
		}
	}

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

	.site-header__left,
	.site-header__center,
	.site-header__right {
		flex: 1;
	}

	.site-header__left {
		display: flex;
		align-items: center;
		gap: var(--uw-space-4);
	}

	.site-header__center {
		display: flex;
		justify-content: center;
	}

	.site-header__right {
		display: flex;
		justify-content: flex-end;
	}

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

	@media (min-width: 769px) {
		.site-header__brand {
			display: none;
		}
	}

	.site-logo__text {
		font-family: var(--uw-font-heading);
		font-size: var(--uw-text-xl);
		font-weight: 500;
		color: var(--uw-fg);
		text-decoration: none;
	}

	.site-logo__svg {
		display: flex;
		align-items: center;
		text-decoration: none;
	}

	.site-logo__svg img {
		display: block;
		height: 2rem;
		width: auto;
		filter: brightness(0) invert(1);
	}

	/* ────────────────────────────────────────────
     * Primary Navigation
     * ──────────────────────────────────────────── */

	.nav {
		display: flex;
		align-items: center;
	}

	.nav__list {
		display: flex;
		gap: var(--uw-space-8);
		align-items: center;
	}

	.nav__list a {
		font-family: var(--uw-font-body);
		font-size: var(--uw-text-sm);
		font-weight: 500;
		letter-spacing: 0.06em;
		text-transform: uppercase;
		color: var(--uw-fg);
		opacity: 0.6;
		padding-block: var(--uw-space-2);
		border-block-end: 1px solid transparent;
		transition:
			opacity var(--uw-transition-fast),
			border-color var(--uw-transition-fast);
		text-decoration: none;
	}

	.nav__list a:hover,
	.nav__list li.current-menu-item > a,
	.nav__list li.current-page-ancestor > a {
		opacity: 1;
		border-block-end-color: var(--uw-primary);
	}

	.header-menu {
		position: fixed;
		inset: 0;
		z-index: 200;
		visibility: hidden;
		pointer-events: none;
		transition: visibility 0s var(--uw-transition-base);
	}

	.header-menu.is-open {
		visibility: visible;
		pointer-events: auto;
		transition: visibility 0s;
	}

	.header-menu__overlay {
		position: absolute;
		inset: 0;
		background-color: rgba(14, 20, 24, 0.5);
		opacity: 0;
		transition: opacity var(--uw-transition-base);
		cursor: pointer;
		width: 100%;
		border-radius: 0;
	}

	.header-menu.is-open .header-menu__overlay {
		opacity: 1;
	}

	.header-menu__sidebar {
		position: absolute;
		inset-block: 0;
		inset-inline-start: 0;
		width: 100%;
		max-width: 480px;
		background-color: var(--uw-fg);
		display: flex;
		flex-direction: column;
		overflow-x: hidden;
		transform: translateX(-100%);
		transition: transform var(--uw-transition-base);
	}

	.header-menu.is-open .header-menu__sidebar {
		transform: translateX(0);
	}

	.header-menu__header {
		display: flex;
		align-items: center;
		height: var(--uw-header-height);
		flex-shrink: 0;
	}

	.header-menu__header-left,
	.header-menu__header-right {
		flex: 1;
		display: flex;
		align-items: center;
	}

	.header-menu__header-right {
		justify-content: flex-end;
	}

	.header-menu__header-center {
		flex: 1;
		display: flex;
		justify-content: center;
	}

	.header-menu__back {
		display: inline-flex;
		align-items: center;
		gap: var(--uw-space-2);
		color: var(--uw-bg);
		font-family: var(--uw-font-body);
		font-size: var(--uw-text-sm);
		font-weight: 500;
		letter-spacing: 0.06em;
		text-transform: uppercase;
		opacity: 0;
		pointer-events: none;
		transition: opacity var(--uw-transition-fast);
	}

	.header-menu__back.is-visible {
		opacity: 1;
		pointer-events: auto;
	}

	.header-menu__back svg {
		flex-shrink: 0;
	}

	.header-menu__body {
		flex: 1;
		position: relative;
		overflow: hidden;
		padding-inline: 0;
	}

	.header-menu__panels {
		position: relative;
		height: 100%;
	}

	.header-menu__panel {
		position: absolute;
		inset: 0;
		overflow-y: auto;
		padding: var(--uw-space-6);
		transition: transform var(--uw-transition-base);
	}

	.header-menu__panel--l2 {
		transform: translateX(100%);
	}

	.header-menu__panels.at-l2 .header-menu__panel--l1 {
		transform: translateX(-100%);
	}

	.header-menu__panels.at-l2 .header-menu__panel--l2 {
		transform: translateX(0);
	}

	.header-menu__nav {
		list-style: none;
		display: flex;
		flex-direction: column;
	}

	.header-menu__nav li a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		font-family: var(--uw-font-heading);
		font-size: var(--uw-text-xl);
		font-weight: 300;
		color: var(--uw-bg);
		text-decoration: none;
		padding-block: var(--uw-space-4);
		border-block-end: 1px solid rgba(245, 242, 236, 0.08);
		letter-spacing: -0.05em;
		transition: opacity var(--uw-transition-fast);
		line-height: 1;
	}

	.header-menu__nav li a:hover {
		opacity: 0.45;
	}

	.header-menu__nav li.current-menu-item > a {
		opacity: 1;
		text-shadow: 0 0 14px color-mix(in srgb, var(--uw-bg) 55%, transparent);
	}

	.header-menu__nav .sub-menu {
		display: none;
	}

	.header-menu__chevron {
		flex-shrink: 0;
		opacity: 0.75;
		transition: opacity var(--uw-transition-fast);
	}

	.header-menu__nav li a:hover .header-menu__chevron {
		opacity: 0.8;
	}

	.header-menu__view-all {
		display: block;
		font-family: var(--uw-font-body);
		font-size: var(--uw-text-sm);
		font-weight: 500;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: var(--uw-accent-light);
		text-decoration: none;
		padding-block: var(--uw-space-4);
		border-block-end: 1px solid rgba(245, 242, 236, 0.08);
		margin-block-end: var(--uw-space-2);
		transition: opacity var(--uw-transition-fast);
	}

	.header-menu__view-all:hover {
		opacity: 0.7;
	}

	.header-menu__footer {
		flex-shrink: 0;
		padding-block: var(--uw-space-8);
		border-block-start: 1px solid rgba(245, 242, 236, 0.08);
		display: flex;
		flex-direction: column;
		gap: var(--uw-space-4);
	}

	.header-menu__tagline {
		font-size: var(--uw-text-sm);
		color: var(--uw-bg);
		letter-spacing: -0.04em;
		font-weight: 300;
		text-align: center;
		opacity: 0.75;
	}

	.header-menu__sidebar .nav-close__bar--1,
	.header-menu__sidebar .nav-close__bar--2 {
		background-color: var(--uw-bg);
	}

	body.menu-is-open {
		overflow: hidden;
	}

	/* ────────────────────────────────────────────
     * Mobile Nav Toggle
     * ──────────────────────────────────────────── */

	.nav-toggle {
		display: flex;
		flex-direction: row;
		align-items: center;
		gap: var(--uw-space-3);
		padding: var(--uw-space-2);
		padding-left: 0;
		border-radius: var(--uw-radius-sm);
	}

	.nav-toggle__bars {
		display: flex;
		flex-direction: column;
		gap: 6px;
	}

	.nav-toggle__bar--1,
	.nav-toggle__bar--2,
	.nav-toggle__bar--3 {
		display: block;
		height: 1.5px;
		background-color: var(--uw-bg);
		border-radius: var(--uw-radius-pill);
		transition:
			transform var(--uw-transition-fast),
			opacity var(--uw-transition-fast);
	}

	.nav-toggle__bar--1 {
		width: 32px;
	}
	.nav-toggle__bar--2 {
		width: 16px;
	}
	.nav-toggle__bar--3 {
		width: 28px;
	}

	.nav-toggle__label {
		display: none;
	}

	@media (min-width: 769px) {
		.nav-toggle__label {
			display: block;
			font-family: var(--uw-font-body);
			font-size: var(--uw-text-sm);
			font-weight: 400;
			letter-spacing: 0.08em;
			text-transform: uppercase;
			color: var(--uw-bg);
			transition: opacity var(--uw-transition-fast);
		}

		.nav-toggle:hover .nav-toggle__label {
			opacity: 1;
		}
	}

	.nav-toggle[aria-expanded="true"] .nav-toggle__bar--1 {
		transform: translateY(7.5px) rotate(45deg);
	}

	.nav-toggle[aria-expanded="true"] .nav-toggle__bar--2 {
		opacity: 0;
	}

	.nav-toggle[aria-expanded="true"] .nav-toggle__bar--3 {
		transform: translateY(-7.5px) rotate(-45deg);
	}

	.nav-close {
		display: grid;
		place-items: center;
		width: 32px;
		height: 32px;
		padding: 0;
	}

	.nav-close__bar--1,
	.nav-close__bar--2 {
		grid-column: 1;
		grid-row: 1;
		display: block;
		width: 28px;
		height: 1.5px;
		background-color: var(--uw-fg);
		border-radius: var(--uw-radius-pill);
		align-self: center;
	}

	.nav-close__bar--1 {
		transform: rotate(45deg);
	}
	.nav-close__bar--2 {
		transform: rotate(-45deg);
	}

	.site-header__experiences-dropdown__wrapper {
		position: relative;
		display: flex;
		align-items: center;
		align-self: stretch;
	}

	/* Trigger — matches the dark-header label vocabulary (.nav-toggle__label) */
	.site-header__experiences-dropdown {
		display: flex;
		align-items: center;
		gap: var(--uw-space-2);
		height: 44px;
		font-family: var(--uw-font-body);
		font-size: var(--uw-text-sm);
		font-weight: 400;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: var(--uw-bg);
		transition: opacity var(--uw-transition-fast);
	}

	.site-header__experiences-dropdown__wrapper:hover .site-header__experiences-dropdown {
		opacity: 0.7;
	}

	.site-header__experiences-dropdown svg {
		flex-shrink: 0;
		transition: transform var(--uw-transition-fast);
	}

	/* Chevron flips like the footer language switcher */
	.site-header__experiences-dropdown__wrapper:hover .site-header__experiences-dropdown svg,
	.site-header__experiences-dropdown__wrapper:focus-within .site-header__experiences-dropdown svg,
	.site-header__experiences-dropdown[aria-expanded="true"] svg {
		transform: rotate(180deg);
	}

	/* Panel — same material as .site-footer__lang-menu: a cream card lifting
	   off the dark header. */
	.site-header__experiences-dropdown__menu {
		position: absolute;
		top: 100%;
		inset-inline-start: 0;
		z-index: 110;
		min-width: 13rem;
		max-width: 20rem;
		max-height: min(70vh, 24rem);
		overflow-y: auto;
		padding: var(--uw-space-1);
		background: var(--uw-fg);
		border: 1px solid rgba(14, 20, 24, 0.1);
		border-radius: var(--uw-radius-xs);
		box-shadow: 0 8px 24px rgba(14, 20, 24, 0.12);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translateY(6px);
		transition:
			opacity var(--uw-transition-base),
			transform var(--uw-transition-base),
			visibility 0s var(--uw-transition-base);
	}

	.site-header__experiences-dropdown__wrapper:hover .site-header__experiences-dropdown__menu,
	.site-header__experiences-dropdown__wrapper:focus-within .site-header__experiences-dropdown__menu,
	.site-header__experiences-dropdown[aria-expanded="true"] + .site-header__experiences-dropdown__menu {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translateY(0);
		transition:
			opacity var(--uw-transition-base),
			transform var(--uw-transition-base),
			visibility 0s;
	}

	.experiences-dropdown__list {
		display: flex;
		flex-direction: column;
	}

	/* Experience names in their own editorial voice (EB Garamond), echoing
	   .experience-card__title; hover wash mirrors .site-footer__lang-link. */
	.experiences-dropdown__link {
		display: block;
		padding: var(--uw-space-2) var(--uw-space-3);
		border-radius: var(--uw-radius-xs);
		font-family: var(--uw-font-heading);
		font-size: var(--uw-text-base);
		color: var(--uw-bg);
		line-height: 1.2;
		transition: background-color var(--uw-transition-fast);
	}

	.experiences-dropdown__link:hover,
	.experiences-dropdown__link:focus-visible {
		background-color: rgba(14, 20, 24, 0.05);
	}

	@media (prefers-reduced-motion: reduce) {
		.site-header__experiences-dropdown__menu,
		.site-header__experiences-dropdown svg {
			transition: none;
		}
	}

	@media (max-width: 768px) {
		.site-header__experiences-dropdown__wrapper {
			display: none;
		}
	}

	/* ────────────────────────────────────────────
     * Buttons
     * ──────────────────────────────────────────── */

	.btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: var(--uw-space-2);
		padding: var(--uw-space-3) var(--uw-space-4);
		font-family: var(--uw-font-heading);
		font-weight: 500;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		text-shadow: 0 0 4px color-mix(in srgb, currentColor 18%, transparent);
		border-radius: var(--uw-radius-xs);
		border: 1px solid transparent;
		cursor: pointer;
		transition:
			background-color var(--uw-transition-fast),
			color var(--uw-transition-fast),
			border-color var(--uw-transition-fast);
		white-space: nowrap;
		text-decoration: none;
	}

	.btn:hover {
		opacity: 1;
	}

	.btn--primary {
		background-color: var(--uw-primary);
		color: var(--uw-bg);
		border-color: var(--uw-primary);
	}

	.btn--primary:hover {
		background-color: var(--uw-bg);
		color: var(--uw-primary);
	}

	.btn--outline {
		background-color: transparent;
		color: var(--uw-primary);
		border-color: var(--uw-primary);
	}

	.btn--outline:hover {
		background-color: var(--uw-primary);
		color: var(--uw-bg);
	}

	.btn--accent {
		background-color: var(--uw-accent);
		color: var(--uw-bg);
		border-color: var(--uw-accent);
	}

	.btn--accent:hover {
		background-color: var(--uw-bg);
		color: var(--uw-accent);
	}

	.btn--ghost {
		background-color: transparent;
		color: var(--uw-bg);
		border-color: transparent;
	}

	.btn--lg {
		padding: var(--uw-space-4) var(--uw-space-8);
		font-size: var(--uw-text-lg);
	}

	.btn--sm {
		padding: var(--uw-space-1) var(--uw-space-3);
		font-size: var(--uw-text-sm);
	}

	/* ────────────────────────────────────────────
     * Hero (shared base)
     * ──────────────────────────────────────────── */

	.hero {
		position: relative;
		isolation: isolate;
		overflow: hidden;
		display: flex;
		align-items: center;
		min-height: calc(100svh - var(--uw-header-height));
		color: var(--uw-bg);
	}

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

	/* Overlay sits above the image, below the content */
	.hero::before {
		content: "";
		position: absolute;
		inset: 0;
		background-color: color-mix(in srgb, var(--uw-fg) 45%, transparent);
		z-index: 1;
	}

	.hero__inner {
		position: relative;
		z-index: 2;
		padding-block: var(--uw-space-20);
		display: flex;
		flex-direction: column;
	}

	.hero__eyebrow {
		display: inline-block;
		font-family: var(--uw-font-body);
		font-size: var(--uw-text-sm);
		font-weight: 500;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--uw-bg);
		margin-block-end: var(--uw-space-2);
	}

	.hero__headline {
		color: var(--uw-bg);
		margin-block-end: var(--uw-space-6);
		max-width: 24ch;
	}

	.hero__subline {
		color: var(--uw-bg);
		max-width: 48ch;
		margin-block-end: var(--uw-space-10);
		font-size: var(--uw-text-lg);
	}

	@media (max-width: 768px) {
		.hero__subline {
			font-size: var(--uw-text-base);
		}
	}

	.hero__actions {
		display: flex;
		flex-wrap: wrap;
		gap: var(--uw-space-4);
	}

	/* ────────────────────────────────────────────
     * Short Hero (for inner pages)
     * ──────────────────────────────────────────── */

	.hero--short {
		min-height: 40svh;
	}

	/* ────────────────────────────────────────────
     * Section header pattern
     * ──────────────────────────────────────────── */

	.section-header {
		margin-block-end: var(--uw-space-12);
	}

	.section-header--center {
		text-align: center;
		margin-block-end: var(--uw-space-12);
	}

	.section-header__eyebrow {
		display: inline-block;
		font-family: var(--uw-font-body);
		font-size: var(--uw-text-sm);
		font-weight: 500;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		color: var(--uw-accent);
		margin-block-end: var(--uw-space-3);
		text-wrap: balance;
	}

	.section-header__title {
		margin-block-end: var(--uw-space-4);
	}

	.section-header__body {
		opacity: 0.75;
		max-width: 52ch;
		text-wrap: pretty;
	}

	.section-header--center .section-header__body {
		margin-inline: auto;
	}

	/* ────────────────────────────────────────────
     * Experience card (shared: homepage carousel + archive grid)
     * Sizing is set by the context (carousel flex-basis / grid track).
     * ──────────────────────────────────────────── */

	.experience-card__link {
		display: block;
		text-decoration: none;
		color: inherit;
	}

	.experience-card__media {
		aspect-ratio: 3 / 4;
		overflow: hidden;
		border-radius: var(--uw-radius-xs);
		margin-block-end: var(--uw-space-5);
		background-color: rgba(14, 20, 24, 0.06);
	}

	.experience-card__media img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
		transition: transform var(--uw-transition-slow);
	}

	.experience-card__link:hover .experience-card__media img {
		transform: scale(1.04);
	}

	.experience-card__body {
		padding-block: var(--uw-space-4);
	}

	.experience-card__headline {
		display: block;
		font-family: var(--uw-font-body);
		font-size: var(--uw-text-xs);
		letter-spacing: 0.06em;
		text-transform: uppercase;
		color: var(--uw-accent);
		margin-block-end: var(--uw-space-2);
	}

	.experience-card__title {
		font-size: var(--uw-text-2xl);
		margin-block-end: var(--uw-space-3);
	}

	.experience-card__desc {
		font-size: var(--uw-text-sm);
		opacity: 0.75;
		text-wrap: pretty;
		margin-block-end: var(--uw-space-4);
	}

	.experience-card__cta {
		font-family: var(--uw-font-body);
		font-size: var(--uw-text-sm);
		font-weight: 500;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		color: var(--uw-fg);
		text-decoration: underline;
		text-underline-offset: 4px;
		transition: opacity var(--uw-transition-fast);
	}

	.experience-card__link:hover .experience-card__cta {
		opacity: 0.7;
	}

	/* ────────────────────────────────────────────
     * Card
     * ──────────────────────────────────────────── */

	.card {
		background-color: var(--uw-bg);
		border-radius: var(--uw-radius-md);
		overflow: hidden;
		box-shadow: var(--uw-shadow-sm);
		transition:
			box-shadow var(--uw-transition-base),
			transform var(--uw-transition-base);
	}

	.card:hover {
		box-shadow: var(--uw-shadow-lg);
		transform: translateY(-2px);
	}

	.card__media {
		aspect-ratio: 16 / 10;
		overflow: hidden;
		background-color: rgba(14, 20, 24, 0.06);
	}

	.card__media img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		transition: transform var(--uw-transition-slow);
	}

	.card:hover .card__media img {
		transform: scale(1.04);
	}

	.card__body {
		padding: var(--uw-space-6);
	}

	.card__label {
		font-family: var(--uw-font-body);
		font-size: var(--uw-text-sm);
		font-weight: 500;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: var(--uw-accent);
		margin-block-end: var(--uw-space-2);
	}

	.card__title {
		font-size: var(--uw-text-xl);
		margin-block-end: var(--uw-space-3);
	}

	.card__excerpt {
		font-size: var(--uw-text-sm);
		opacity: 0.65;
		margin-block-end: var(--uw-space-6);
	}

	/* ────────────────────────────────────────────
     * Site Footer
     * ──────────────────────────────────────────── */

	.site-footer {
		background-color: var(--uw-bg);
		color: var(--uw-fg);
		padding-block: 0 var(--uw-space-6);
	}

	/* ── Help & Support (dark band at the top of the footer) ── */
	.footer-help {
		background-color: var(--uw-fg);
		color: var(--uw-bg);
		padding-block: var(--uw-space-20);
	}

	.footer-help__inner {
		max-width: 560px;
		margin-inline: auto;
		display: flex;
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.footer-help__icon-main {
		color: var(--uw-bg);
		opacity: 0.9;
		margin-block-end: var(--uw-space-6);
	}

	.footer-help__title {
		color: var(--uw-bg);
		margin-block-end: var(--uw-space-4);
	}

	.footer-help__lead {
		color: var(--uw-bg);
		opacity: 0.6;
		max-width: 34ch;
		text-wrap: pretty;
		margin-block-end: var(--uw-space-10);
	}

	.footer-help__cards {
		display: flex;
		flex-direction: column;
		gap: var(--uw-space-4);
		width: 100%;
	}

	.footer-help__card {
		display: flex;
		align-items: center;
		gap: var(--uw-space-4);
		padding: var(--uw-space-4) var(--uw-space-4);
		border: 1px solid rgba(245, 242, 236, 0.15);
		border-radius: var(--uw-radius-xs);
		text-align: left;
		text-decoration: none;
		color: var(--uw-bg);
		transition:
			border-color var(--uw-transition-fast),
			background-color var(--uw-transition-fast);
	}

	.footer-help__card:hover {
		border-color: var(--uw-accent-light);
		background-color: rgba(245, 242, 236, 0.03);
	}

	/* Non-link card (value missing) — don't react to hover like a link */
	.footer-help__card:not(a) {
		cursor: default;
	}

	.footer-help__card:not(a):hover {
		border-color: rgba(245, 242, 236, 0.15);
		background-color: transparent;
	}

	/* Placeholder shown only in the value line when the setting is empty */
	.footer-help__line--placeholder {
		opacity: 0.4;
		font-style: italic;
		text-decoration: underline dashed;
		text-underline-offset: 4px;
	}

	.footer-help__icon {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		flex-shrink: 0;
		border-radius: var(--uw-radius-pill);
		border: 1px solid var(--uw-accent-light);
		color: var(--uw-accent-light);
		transition: border-color var(--uw-transition-fast);
	}

	.footer-help__card:hover .footer-help__icon {
		border-color: var(--uw-accent-light);
	}

	.footer-help__text {
		display: flex;
		flex-direction: column;
		gap: 2px;
	}

	.footer-help__line {
		font-family: var(--uw-font-body);
		font-size: var(--uw-text-base);
		color: var(--uw-bg);
	}

	.footer-help__note {
		font-size: var(--uw-text-sm);
		color: var(--uw-bg);
		opacity: 0.5;
	}

	/* Full-bleed location map, sits flush at the top of the footer */
	.site-footer__map {
		width: 100%;
		line-height: 0;
	}

	.site-footer__map iframe {
		display: block;
		width: 100%;
		height: 380px;
		border: 0;
	}

	/* Visible NAP (name/address/phone) — sits under the footer logo.
	   Centered column on mobile; left-aligned on desktop (see media query). */
	.site-footer__address {
		display: flex;
		flex-direction: column;
		gap: var(--uw-space-1);
		align-items: center;
		text-align: center;
		font-style: normal;
		font-size: var(--uw-text-sm);
		color: var(--uw-primary);
		opacity: 0.8;
	}

	/* Kept in the DOM for the NAP / screen readers, hidden visually. */
	.site-footer__address-name {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		border: 0;
		overflow: hidden;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		white-space: nowrap;
	}

	.site-footer__address a {
		color: inherit;
		text-decoration: underline;
		text-underline-offset: 3px;
	}

	.site-footer__inner {
		display: flex;
		flex-direction: column;
		padding-block-start: var(--uw-space-12);
	}

	/* Footer logo sits on the light background, so undo the white filter
	   the header/sidebar apply to the SVG. */
	.site-footer__brand {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: var(--uw-space-6);
		padding-block-end: var(--uw-space-10);
	}

	.site-footer__brand .site-logo__svg img {
		filter: none;
		height: 2.25rem;
	}

	/* ── Accordion nav ── */
	.site-footer__nav {
		border-block-start: 1px solid rgba(14, 20, 24, 0.1);
	}

	.footer-acc {
		border-block-end: 1px solid rgba(14, 20, 24, 0.1);
	}

	.footer-acc__heading {
		margin: 0;
		font: inherit;
	}

	.footer-acc__summary {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--uw-space-4);
		width: 100%;
		padding-block: var(--uw-space-6);
		background: none;
		border: none;
		cursor: pointer;
		text-align: left;
		text-decoration: none;
	}

	.footer-acc__summary:focus-visible {
		outline: 2px solid var(--uw-primary);
		outline-offset: 2px;
	}

	.footer-acc__title {
		font-family: var(--uw-font-body);
		font-size: var(--uw-text-sm);
		letter-spacing: 0.1em;
		font-weight: 500;
		text-transform: uppercase;
		color: var(--uw-accent);
	}

	/* Plus icon that collapses to a minus when open */
	.footer-acc__icon {
		position: relative;
		width: 10px;
		height: 10px;
		flex-shrink: 0;
	}

	.footer-acc__icon::before,
	.footer-acc__icon::after {
		content: "";
		position: absolute;
		background-color: var(--uw-accent);
		transition:
			transform var(--uw-transition-base),
			opacity var(--uw-transition-base);
	}

	.footer-acc__icon::before {
		inset-inline: 0;
		top: 50%;
		height: 1px;
		transform: translateY(-50%);
	}

	.footer-acc__icon::after {
		inset-block: 0;
		left: 50%;
		width: 1px;
		transform: translateX(-50%);
	}

	.footer-acc.is-open .footer-acc__icon::after {
		transform: translateX(-50%) scaleY(0);
		opacity: 0;
	}

	/* Smooth collapse via animatable grid track */
	.footer-acc__panel {
		display: grid;
		grid-template-rows: 0fr;
		transition: grid-template-rows var(--uw-transition-base);
	}

	.footer-acc.is-open .footer-acc__panel {
		grid-template-rows: 1fr;
	}

	/* This is the clipped element: it must carry NO padding/margin of its own,
	   or that space persists while collapsed. Spacing goes on the items. */
	.footer-acc__list {
		list-style: none;
		display: flex;
		flex-direction: column;
		gap: var(--uw-space-3);
		min-height: 0;
		overflow: hidden;
	}

	.footer-acc__list > li:last-child {
		padding-block-end: var(--uw-space-6);
	}

	.footer-acc__list a {
		font-size: var(--uw-text-sm);
		color: var(--uw-fg);
		opacity: 0.6;
		text-decoration: none;
		transition: opacity var(--uw-transition-fast);
	}

	.footer-acc__list a:hover {
		opacity: 1;
	}

	/* ── Social ── */
	.site-footer__social {
		display: flex;
		justify-content: center;
		gap: var(--uw-space-2);
		padding-block: var(--uw-space-4);
		border-block-end: 1px solid rgba(14, 20, 24, 0.1);
	}

	/* 44x44 tap target (WCAG) with the icon kept at 20px */
	.site-footer__social a {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		color: var(--uw-accent);
		transition: opacity var(--uw-transition-fast);
	}

	.site-footer__social a:hover {
		opacity: 0.7;
	}

	/* ── Bottom bar ── */
	.site-footer__bottom {
		display: flex;
		align-items: center;
		justify-content: space-between;
		flex-wrap: wrap;
		gap: var(--uw-space-4);
		padding-block-start: var(--uw-space-8);
		letter-spacing: -0.0125em;
	}

	.site-footer__bottom-left {
		display: flex;
		align-items: center;
		gap: var(--uw-space-3);
	}

	.site-footer__sep {
		color: var(--uw-accent);
		opacity: 0.5;
	}

	.site-footer__legal {
		margin: 0;
		font-size: var(--uw-text-sm);
		color: var(--uw-accent);
	}

	.site-footer__credit {
		font-size: var(--uw-text-sm);
		color: var(--uw-primary);
		opacity: 0.75;
	}

	.site-footer__credit a {
		display: inline-flex;
		align-items: center;
		gap: var(--uw-space-1);
		color: #000;
		text-decoration: none;
		transition: opacity var(--uw-transition-fast);
	}


	.site-footer__credit-logo {
		height: 0.85em;
		width: auto;
		display: block;
	}

	.site-footer__lang {
		position: relative;
		display: inline-block;
	}

	.site-footer__lang-toggle {
		display: inline-flex;
		align-items: center;
		gap: var(--uw-space-2);
		cursor: pointer;
		font-family: var(--uw-font-body);
		font-size: var(--uw-text-sm);
		color: var(--uw-accent);
		letter-spacing: -0.0125em;
		list-style: none;
		transition: opacity var(--uw-transition-fast);
	}

	/* hide the native <summary> disclosure marker */
	.site-footer__lang-toggle::-webkit-details-marker {
		display: none;
	}

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

	.site-footer__lang-chevron {
		transition: transform var(--uw-transition-fast);
	}

	.site-footer__lang[open] .site-footer__lang-chevron {
		transform: rotate(180deg);
	}

	.site-footer__lang-menu {
		position: absolute;
		inset-block-end: calc(100% + var(--uw-space-2));
		inset-inline-start: 0;
		min-width: 9rem;
		margin: 0;
		padding: var(--uw-space-1);
		list-style: none;
		background: var(--uw-bg);
		border: 1px solid rgba(14, 20, 24, 0.1);
		border-radius: var(--uw-radius-sm);
		box-shadow: 0 8px 24px rgba(14, 20, 24, 0.12);
		z-index: 10;
	}

	.site-footer__lang-link {
		display: block;
		padding: var(--uw-space-2) var(--uw-space-3);
		font-size: var(--uw-text-sm);
		color: var(--uw-primary);
		text-decoration: none;
		border-radius: var(--uw-radius-xs);
		transition: background-color var(--uw-transition-fast);
	}

	.site-footer__lang-link:hover {
		background-color: rgba(14, 20, 24, 0.05);
	}

	.site-footer__lang-link.is-current {
		font-weight: 600;
	}

	/* ── Desktop footer: logo left, nav columns right, bars full-width ── */
	@media (min-width: 769px) {
		.site-footer__inner {
			display: grid;
			grid-template-columns: auto 1fr;
			align-items: start;
			column-gap: var(--uw-space-16);
			row-gap: var(--uw-space-12);
		}

		.site-footer__brand {
			align-items: flex-start;
			padding-block-end: 0;
		}

		/* Address reads left-aligned under the logo on desktop */
		.site-footer__address {
			align-items: flex-start;
			text-align: start;
		}

		/* nav sections become open columns instead of accordions */
		.site-footer__nav {
			display: flex;
			justify-content: flex-end;
			gap: var(--uw-space-16);
			border-block-start: none;
		}

		.site-footer__social,
		.site-footer__bottom {
			grid-column: 1 / -1;
		}

		.site-footer__social {
			border-block-start: 1px solid rgba(14, 20, 24, 0.1);
		}

		.footer-acc {
			border-block-end: none;
			flex: 0 1 auto;
		}

		/* Headings are static labels, not toggles, on desktop */
		button.footer-acc__summary {
			cursor: default;
			pointer-events: none;
			padding-block: 0;
			margin-block-end: var(--uw-space-4);
		}

		.footer-acc__icon {
			display: none;
		}

		/* Sub-links always visible (force the collapsible panel open) */
		.footer-acc__panel {
			grid-template-rows: 1fr;
		}

		.footer-acc__list {
			gap: var(--uw-space-3);
		}

		.footer-acc__list > li:last-child {
			padding-block-end: 0;
		}
	}

	/* ────────────────────────────────────────────
     * Form elements (shared across pages)
     * ──────────────────────────────────────────── */

	.form-group {
		display: flex;
		flex-direction: column;
		gap: var(--uw-space-2);
		margin-block-end: var(--uw-space-6);
	}

	.form-group:last-of-type {
		margin-block-end: 0;
	}

	.form-label {
		font-size: var(--uw-text-sm);
		font-weight: 500;
		color: var(--uw-fg);
	}

	.form-label--required::after {
		content: " *";
		color: var(--uw-accent);
	}

	.form-input,
	.form-textarea,
	.form-select {
		width: 100%;
		padding-inline: var(--uw-space-4);
		font-family: var(--uw-font-body);
		font-size: var(--uw-text-base);
		color: var(--uw-fg);
		border: 1px solid rgba(14, 20, 24, 0.2);
		border-radius: var(--uw-radius-md);
		transition:
			border-color var(--uw-transition-fast),
			box-shadow var(--uw-transition-fast);
		appearance: none;
	}

	/* Single-line fields: fixed height (text auto-centers vertically) */
	.form-input,
	.form-select {
		height: 44px;
	}

	/* Multi-line field keeps its own vertical padding + min-height */
	.form-textarea {
		padding-block: var(--uw-space-3);
	}

	.form-input:focus,
	.form-textarea:focus,
	.form-select:focus {
		outline: none;
		border-color: var(--uw-primary);
		box-shadow: 0 0 0 3px rgba(5, 68, 92, 0.15);
	}

	.form-textarea {
		resize: vertical;
		min-height: 140px;
	}

	/* Custom dropdown chevron (native arrow removed via appearance: none) */
	.form-select {
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230E1418' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
		background-repeat: no-repeat;
		background-position: right var(--uw-space-4) center;
		padding-inline-end: var(--uw-space-10);
		cursor: pointer;
	}

	.form-row {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: var(--uw-space-6);
	}

	.form-submit {
		margin-block-start: var(--uw-space-8);
	}

	/* ────────────────────────────────────────────
     * Responsive
     * ──────────────────────────────────────────── */

	@media (max-width: 768px) {
		.site-header__center {
			display: none;
		}

		.site-footer__map iframe {
			height: 260px;
		}

		.nav {
			position: fixed;
			inset: var(--uw-header-height) 0 0 0;
			background-color: var(--uw-bg);
			flex-direction: column;
			justify-content: flex-start;
			padding: var(--uw-space-8);
			transform: translateX(100%);
			transition: transform var(--uw-transition-base);
			overflow-y: auto;
			z-index: 99;
		}

		.nav.is-open {
			transform: translateX(0);
		}

		.nav__list {
			flex-direction: column;
			align-items: flex-start;
			width: 100%;
			gap: var(--uw-space-4);
		}

		.nav__list a {
			font-size: var(--uw-text-lg);
			opacity: 0.7;
		}

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

	/* ── Star rating ── */
	.star-rating {
		display: inline-flex;
		align-items: center;
		gap: 2px;
		color: var(--uw-accent-light);
	}

	.star-rating__star {
		display: block;
	}

	.star-rating__star.is-empty {
		opacity: 0.25;
	}

	/* ── Aggregate rating (near booking CTA) ── */
	.aggregate-rating {
		display: inline-flex;
		align-items: center;
		gap: var(--uw-space-2);
		flex-wrap: wrap;
		font-size: var(--uw-text-sm);
		color: inherit;
	}

	.aggregate-rating__score {
		font-weight: 600;
	}

	.aggregate-rating__meta {
		opacity: 0.7;
	}

	.experience-booking__rating {
		justify-content: center;
		margin-block-start: var(--uw-space-3);
	}

	/* ── Trust cluster ── */
	.trust-cluster {
		list-style: none;
		margin: var(--uw-space-6) 0 0;
		padding: 0;
		display: flex;
		flex-wrap: wrap;
		gap: var(--uw-space-3) var(--uw-space-6);
		width: fit-content;
		margin-inline: auto;
		text-align: start;
		justify-content: center;
	}

	.trust-cluster__item {
		display: flex;
		align-items: center;
		gap: var(--uw-space-2);
		font-size: var(--uw-text-sm);
		color: var(--uw-fg);
	}

	.trust-cluster__icon {
		flex-shrink: 0;
		color: var(--uw-accent-light);
	}

	/* ── Review card (homepage slider + experience page) ── */
	.review-card {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: var(--uw-space-4);
		text-align: center;
		max-width: 56ch;
		margin-inline: auto;
	}

	.review-card__quote {
		margin: 0;
		font-family: var(--uw-font-heading);
		font-size: var(--uw-text-2xl);
		font-style: italic;
		font-weight: 400;
		line-height: 1.5;
		color: inherit;
		text-wrap: pretty;
	}

	.review-card__meta {
		font-family: var(--uw-font-body);
		font-size: var(--uw-text-sm);
		font-weight: 500;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--uw-accent-light);
	}

	/* ── Experience-page reviews grid ── */
	.experience-reviews__grid {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
		gap: var(--uw-space-10);
	}

	.experience-reviews__grid .review-card__quote {
		font-size: var(--uw-text-lg);
	}

	/* ── FAQ (no-JS details accordion) ── */
	.faq {
		max-width: 720px;
		margin-inline: auto;
		/* enables the height: auto reveal animation where supported */
		interpolate-size: allow-keywords;
		display: flex;
		flex-direction: column;
		gap: var(--uw-space-6);
	}

	.faq__q {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--uw-space-5);
		padding-block: var(--uw-space-5);
		cursor: pointer;
		list-style: none;
		font-family: var(--uw-font-heading);
		font-size: var(--uw-text-lg);
		line-height: 1.2;
		color: var(--uw-fg);
		text-wrap: balance;
		transition: color var(--uw-transition-fast);
	}

	.faq__q::-webkit-details-marker {
		display: none;
	}

	.faq__q:hover {
		color: var(--uw-accent);
	}

	/* Circular toggle that rotates + fills when open */
	.faq__chevron {
		flex-shrink: 0;
		width: 34px;
		height: 34px;
		padding: 8px;
		border-radius: var(--uw-radius-pill);
		color: var(--uw-primary);
		transition:
			transform var(--uw-transition-base),
			background-color var(--uw-transition-fast),
			color var(--uw-transition-fast);
	}

	.faq__item[open] .faq__chevron {
		transform: rotate(180deg);
		background-color: var(--uw-primary);
		border-color: var(--uw-primary);
		color: var(--uw-bg);
	}

	.faq__a {
		padding-block: var(--uw-space-1) var(--uw-space-6);
		padding-inline-end: var(--uw-space-12);
		color: var(--uw-fg);
		opacity: 0.78;
		line-height: 1.75;
	}

	.faq__a > :first-child {
		margin-block-start: 0;
	}

	.faq__a > :last-child {
		margin-block-end: 0;
	}

	/* Smooth open/close (progressive enhancement; instant where unsupported) */
	.faq__item::details-content {
		block-size: 0;
		overflow: hidden;
		opacity: 0;
		transition:
			block-size var(--uw-transition-base),
			opacity var(--uw-transition-base),
			content-visibility var(--uw-transition-base);
		transition-behavior: allow-discrete;
	}

	.faq__item[open]::details-content {
		block-size: auto;
		opacity: 1;
	}

	@media (min-width: 769px) {
		.faq__q {
			font-size: var(--uw-text-xl);
		}
	}

	@media (prefers-reduced-motion: reduce) {
		.faq__item::details-content {
			transition: none;
		}

		.faq__chevron {
			transition:
				background-color var(--uw-transition-fast),
				border-color var(--uw-transition-fast),
				color var(--uw-transition-fast);
		}
	}

	/* ── Floating WhatsApp button ── */
	.whatsapp-fab {
		position: fixed;
		inset-inline-end: var(--uw-space-6);
		inset-block-end: var(--uw-space-6);
		z-index: 95;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 48px;
		height: 48px;
		border-radius: var(--uw-radius-pill);
		background-color: var(--uw-primary);
		color: var(--uw-bg);
		box-shadow: 0 6px 20px rgba(14, 20, 24, 0.22);
		transition:
			transform var(--uw-transition-fast),
			box-shadow var(--uw-transition-fast),
			inset-block-end var(--uw-transition-base);
	}

	.whatsapp-fab svg {
		width: 24px;
		height: 24px;
		display: block;
	}

	.whatsapp-fab:hover {
		transform: translateY(-2px);
		box-shadow: 0 10px 26px rgba(14, 20, 24, 0.28);
	}

	/* Lift above the sticky bookbar while it's showing (experience pages) */
	body:has(.experience-bookbar.is-visible) .whatsapp-fab {
		inset-block-end: calc(var(--uw-space-6) + 4rem);
	}

	@media (prefers-reduced-motion: reduce) {
		.whatsapp-fab {
			transition: box-shadow var(--uw-transition-fast);
		}
	}

	/* ── Generic page content (page.php prose) ── */
	.page-content {
		max-width: 720px;
		margin-inline: auto;
	}

	.page-content > :first-child {
		margin-block-start: 0;
	}

	.page-content > :last-child {
		margin-block-end: 0;
	}

	/* Restore WP block spacing the reset strips (paragraph margins come from
	   base.css; everything below is re-added here, scoped to rich content). */
	.page-content :where(h2, h3, h4, h5, h6) {
		margin-block: var(--uw-space-8) var(--uw-space-4);
	}

	.page-content :where(ul, ol) {
		margin-block-end: var(--uw-space-4);
		padding-inline-start: var(--uw-space-6);
	}

	.page-content ul {
		list-style: disc;
	}

	.page-content ol {
		list-style: decimal;
	}

	.page-content li {
		margin-block-end: var(--uw-space-2);
	}

	.page-content li:last-child {
		margin-block-end: 0;
	}

	.page-content :where(ul, ol) :where(ul, ol) {
		margin-block: var(--uw-space-2) 0;
	}

	.page-content blockquote {
		margin-block: var(--uw-space-6);
		padding-inline-start: var(--uw-space-4);
		border-inline-start: 2px solid var(--uw-accent-light);
		font-family: var(--uw-font-heading);
		font-style: italic;
	}

	.page-content :where(figure, img, table) {
		margin-block: var(--uw-space-6);
	}

	.page-content figure img {
		margin-block: 0;
	}

	.page-content figcaption {
		margin-block-start: var(--uw-space-2);
		font-size: var(--uw-text-sm);
		opacity: 0.7;
	}

	.page-content hr {
		margin-block: var(--uw-space-8);
		border: 0;
		border-block-start: 1px solid rgba(14, 20, 24, 0.12);
	}

	/* WordPress block headings render one step down the type scale.
	   Responsive steps mirror base.css (h1–h3), one size smaller. */
	h1.wp-block-heading { font-size: var(--uw-text-4xl); }
	h2.wp-block-heading { font-size: var(--uw-text-3xl); }
	h3.wp-block-heading { font-size: var(--uw-text-2xl); }
	h4.wp-block-heading { font-size: var(--uw-text-xl); }
	h5.wp-block-heading { font-size: var(--uw-text-lg); }
	h6.wp-block-heading { font-size: var(--uw-text-base); }

	@media (max-width: 1024px) {
		h1.wp-block-heading { font-size: var(--uw-text-3xl); }
		h2.wp-block-heading { font-size: var(--uw-text-2xl); }
		h3.wp-block-heading { font-size: var(--uw-text-xl); }
	}

	@media (max-width: 640px) {
		h1.wp-block-heading { font-size: var(--uw-text-2xl); }
		h2.wp-block-heading { font-size: var(--uw-text-xl); }
		h3.wp-block-heading { font-size: var(--uw-text-lg); }
	}

	/* ── Cookie consent banner ── */
	.cookie-banner {
		position: fixed;
		inset-block-end: var(--uw-space-6);
		inset-inline-start: var(--uw-space-6);
		z-index: 96;
		width: 340px;
		max-width: calc(100vw - 2 * var(--uw-space-6));
		padding: var(--uw-space-4);
		background-color: var(--uw-bg);
		color: var(--uw-fg);
		border-radius: var(--uw-radius-xs);
		box-shadow: 0 8px 24px rgba(14, 20, 24, 0.12);
		display: flex;
		flex-direction: column;
		gap: var(--uw-space-4);
		opacity: 0;
		transform: translateY(8px);
		transition:
			opacity var(--uw-transition-base),
			transform var(--uw-transition-base);
	}

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

	.cookie-banner.is-visible {
		opacity: 1;
		transform: translateY(0);
	}

	.cookie-banner__text {
		margin: 0;
		font-size: var(--uw-text-sm);
		opacity: 0.75;
		text-wrap: unset;
		letter-spacing: -0.0125em;
	}

	.cookie-banner__link {
		color: var(--uw-primary);
		text-decoration: underline;
		text-underline-offset: 2px;
		white-space: nowrap;
	}

	.cookie-banner__actions {
		display: flex;
		align-items: center;
		gap: var(--uw-space-4);
	}

	.cookie-banner__accept {
		flex-shrink: 0;
	}

	.cookie-banner__decline {
		background: none;
		border: none;
		padding: 0;
		font-family: var(--uw-font-body);
		font-size: var(--uw-text-sm);
		color: var(--uw-fg);
		opacity: 0.55;
		cursor: pointer;
		transition: opacity var(--uw-transition-fast);
	}

	.cookie-banner__decline:hover {
		opacity: 1;
	}

	@media (max-width: 560px) {
		.cookie-banner {
			inset-block-end: var(--uw-space-4);
			inset-inline-start: var(--uw-space-4);
			/* leave room on the right for the WhatsApp button */
			width: calc(100vw - var(--uw-space-4) - 5.5rem);
		}
	}

	@media (prefers-reduced-motion: reduce) {
		.cookie-banner {
			transition: opacity var(--uw-transition-fast);
			transform: none;
		}
	}
}
