/*
Theme Name: ViviVado
Theme URI: https://vivivado.it
Author: Elena Lazzarini
Description: Tema WordPress personalizzato per ViviVado.
Version: 1.0.0
Requires at least: 6.8
Requires PHP: 8.4
Text Domain: vivivado
*/

/* --------------------------------------------------------------------------
 * Design tokens
 * -------------------------------------------------------------------------- */

@font-face {
	font-family: "Midnight Pleasure Sans";
	src: url("assets/fonts/Midnight Pleasure Sans.woff2") format("woff2");
	font-style: normal;
	font-weight: 400;
	font-display: swap;
}

:root {
	--color-white: #ffffff;
	--color-primary: #4e573a;
	--color-primary-hover: #39412b;
	--color-secondary: #75482f;
	--color-accent: #c96a35;
	--color-accent-strong: #b24e24;
	--color-brand-beige: #f2d9c0;
	--color-canvas: #fefcf9;
	--color-surface: #ffffff;
	--color-surface-warm: #fbf4ed;
	--color-border: #dfc9b5;
	--color-text-primary: #1d1915;
	--color-text-secondary: #62564c;
	--color-focus: #1f5f63;
	--color-overlay: rgb(29 25 21 / 68%);
	--color-overlay-soft: rgb(29 25 21 / 18%);
	--color-overlay-strong: rgb(29 25 21 / 88%);
	--color-primary-soft: #eef0e9;
	--color-primary-translucent: rgb(78 87 58 / 50%);
	--color-accent-strong-translucent: rgb(178 78 36 / 50%);
	--color-focus-soft: rgb(31 95 99 / 10%);
	--color-white-translucent: rgb(255 255 255 / 88%);
	--color-shadow: rgb(29 25 21 / 12%);
	--color-shadow-strong: rgb(29 25 21 / 28%);

	/* Alias semantici transitori per i componenti esistenti. */
	--color-surface-muted: var(--color-surface-warm);
	--color-ink: var(--color-text-primary);
	--color-ink-muted: var(--color-text-secondary);
	--color-line: var(--color-border);

	--font-family-display: "Midnight Pleasure Sans", sans-serif;
	--font-family-base: "Open Sans", sans-serif;
	--font-size-root: 100%;
	--font-size-body: 1rem;
	--font-size-display: 3rem;
	--font-size-section: 2rem;
	--font-size-card-title: 1.375rem;
	--font-size-lead: 1.0625rem;
	--font-size-card-body: 0.875rem;
	--font-size-meta: 0.8125rem;
	--font-size-eyebrow: 0.6875rem;
	--font-size-action: 0.875rem;
	--font-size-hero-action: 0.9375rem;
	--font-size-navigation: 0.8125rem;
	--font-size-small: var(--font-size-action);
	--font-size-label: var(--font-size-eyebrow);
	--line-height-body: 1.6;
	--line-height-display: 0.98;
	--line-height-section: 1.06;
	--line-height-card-title: 1.15;
	--line-height-card-body: 1.55;
	--line-height-lead: 1.55;
	--line-height-meta: 1.45;
	--line-height-heading: var(--line-height-section);
	--letter-spacing-label: 0.1em;

	--space-eyebrow-title: 0.75rem;
	--space-title-lead: 1rem;
	--space-lead-content: 1.5rem;
	--space-card-category-title: 0.5rem;
	--space-card-title-description: 0.75rem;
	--space-card-description-meta: 0.75rem;
	--space-card-meta-action: 1rem;
	--space-hero-eyebrow-title: 1rem;
	--space-hero-title-lead: 1.25rem;
	--space-hero-lead-actions: 2rem;

	--space-2xs: 0.25rem;
	--space-xs: 0.5rem;
	--space-sm: 0.75rem;
	--space-md: 1rem;
	--space-lg: 1.5rem;
	--space-xl: 2rem;
	--space-2xl: 3rem;
	--space-3xl: 4.5rem;
	--space-4xl: 6rem;

	--container-max-width: 75rem;
	--container-padding: 1.25rem;
	--grid-gap: var(--space-lg);

	/* Header: shared proportions across transparent, sticky and internal variants. */
	--header-logo-size: clamp(9rem, 36vw, 9.375rem);
	--header-min-height: 4.5rem;
	--header-padding-block: 0.375rem;
	--header-cta-min-height: 2.5rem;
	--header-cta-padding-inline: 1rem;
	--header-menu-panel-padding-block: clamp(1.375rem, 5vw, 2rem);

	--radius-sm: 0.5rem;
	--radius-md: 1rem;
	--radius-lg: 1.5rem;
	--radius-pill: 999px;
	--shadow-sm: 0 0.375rem 1.25rem rgb(29 25 21 / 8%);
	--shadow-md: 0 1rem 2.5rem var(--color-shadow);

	--transition-fast: 160ms ease;
}

/* --------------------------------------------------------------------------
 * Reset and base elements
 * -------------------------------------------------------------------------- */

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

html {
	font-size: var(--font-size-root);
	scroll-behavior: smooth;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
figure,
blockquote {
	margin: 0;
}

ul,
ol {
	padding: 0;
	list-style: none;
}

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

button,
input,
textarea,
select {
	font: inherit;
	font-family: var(--font-family-base);
}

button,
input[type="submit"] {
	cursor: pointer;
}

body {
	min-width: 20rem;
	background-color: var(--color-canvas);
	color: var(--color-ink);
	font-family: var(--font-family-base);
	font-size: var(--font-size-body);
	font-weight: 400;
	line-height: var(--line-height-body);
	text-rendering: optimizeLegibility;
}

::selection {
	background-color: var(--color-primary);
	color: var(--color-white);
}

/* --------------------------------------------------------------------------
 * Accessibility
 * -------------------------------------------------------------------------- */

:focus-visible {
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
}

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

.screen-reader-text:focus {
	z-index: 100000;
	width: auto;
	height: auto;
	padding: var(--space-sm) var(--space-md);
	margin: 0;
	overflow: visible;
	clip: auto;
	white-space: normal;
	background-color: var(--color-ink);
	color: var(--color-white);
}

/* --------------------------------------------------------------------------
 * Typography
 * -------------------------------------------------------------------------- */

h1,
h2 {
	color: var(--color-primary);
	line-height: var(--line-height-heading);
	text-wrap: balance;
}

h1 {
	font-family: var(--font-family-display);
	font-weight: 400;
	letter-spacing: 0.06em;
}

h3,
h4,
h5,
h6 {
	color: var(--color-ink);
	line-height: var(--line-height-heading);
	text-wrap: balance;
}

h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-family-base);
}

h1 {
	font-size: var(--font-size-display);
	line-height: 0.98;
}

h2 {
	font-size: var(--font-size-section);
	font-weight: 600;
	line-height: var(--line-height-section);
}

h3 {
	font-size: var(--font-size-card-title);
	font-weight: 600;
	line-height: var(--line-height-card-title);
}

h4,
h5,
h6 {
	font-weight: 600;
}

p {
	max-width: 65ch;
	color: var(--color-ink-muted);
}

.section-eyebrow,
.section-label {
	color: var(--color-accent-strong);
	font-size: var(--font-size-eyebrow);
	font-weight: 400;
	letter-spacing: var(--letter-spacing-label);
	line-height: 1.3;
	text-transform: uppercase;
}

.section-title {
	max-width: 18ch;
	font-size: var(--font-size-section);
	line-height: var(--line-height-section);
}

.front-page .section-title {
	font-family: var(--font-family-display);
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 0.98;
}

/* --------------------------------------------------------------------------
 * Links and buttons
 * -------------------------------------------------------------------------- */

a {
	color: inherit;
	text-decoration-thickness: 0.125em;
	text-underline-offset: 0.18em;
}

a:hover {
	color: var(--color-primary);
}

.text-link {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding-block-end: 0.0625rem;
	background-image: linear-gradient(currentcolor, currentcolor);
	background-position: left bottom;
	background-repeat: no-repeat;
	background-size: 35% 0.0625rem;
	color: var(--color-accent-strong);
	font-size: var(--font-size-action);
	line-height: 1.35;
	font-weight: 600;
	text-decoration: none;
	transition: background-size var(--transition-fast), color var(--transition-fast);
}

.text-link::after {
	content: "→";
	transition: transform var(--transition-fast);
}

.text-link:hover,
.text-link:focus-visible {
	background-size: 100% 0.0625rem;
	color: var(--color-primary);
}

.text-link:hover::after,
.text-link:focus-visible::after {
	transform: translateX(0.1875rem);
}

.text-link:focus-visible {
	border-radius: var(--radius-sm);
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
}

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

	.text-link::after {
		transition: none;
	}

	.text-link:hover::after,
	.text-link:focus-visible::after {
		transform: none;
	}
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.875rem;
	padding: 0.75rem 1.125rem;
	border: 0.125rem solid transparent;
	border-radius: var(--radius-pill);
	font-size: var(--font-size-action);
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.button:hover {
	box-shadow: 0 0.5rem 1.25rem rgb(29 25 21 / 18%);
	transform: translateY(-0.125rem);
}

.button--primary,
.button--accent {
	background-color: var(--color-primary);
	color: var(--color-white);
}

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

.button--secondary,
.button--outline {
	border-color: currentcolor;
	background-color: transparent;
	color: var(--color-ink);
}

.button--secondary:hover,
.button--outline:hover {
	border-color: var(--color-primary);
	background-color: var(--color-primary);
	color: var(--color-white);
}

.button--light {
	background-color: var(--color-white);
	color: var(--color-primary);
}

.button--light:hover {
	background-color: var(--color-surface);
	color: var(--color-primary-hover);
}

/* --------------------------------------------------------------------------
 * Layout, containers and grids
 * -------------------------------------------------------------------------- */

.container {
	width: min(100% - (var(--container-padding) * 2), var(--container-max-width));
	margin-inline: auto;
}

.stack > * + * {
	margin-block-start: var(--space-lg);
}

.stack--compact > * + * {
	margin-block-start: var(--space-sm);
}

.stack--spacious > * + * {
	margin-block-start: var(--space-2xl);
}

.cluster {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-sm);
}

.grid {
	display: grid;
	gap: var(--grid-gap);
}

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

.section {
	padding-block: var(--space-3xl);
}

/* --------------------------------------------------------------------------
 * Responsive system
 * -------------------------------------------------------------------------- */

@media (min-width: 48rem) {
	:root {
		--container-padding: 2rem;
		--grid-gap: var(--space-xl);
		--font-size-body: 1.0625rem;
		--font-size-display: 4rem;
		--font-size-section: 2.75rem;
		--font-size-card-title: 1.5rem;
		--font-size-lead: 1.125rem;
		--font-size-card-body: 0.9375rem;
		--font-size-meta: 0.875rem;
		--font-size-eyebrow: 0.75rem;
		--font-size-action: 0.875rem;
		--font-size-hero-action: 0.9375rem;
		--font-size-navigation: 0.8125rem;
		--space-eyebrow-title: 1rem;
		--space-title-lead: 1.25rem;
		--space-lead-content: 1.75rem;
		--space-card-meta-action: 1rem;
		--space-hero-eyebrow-title: 1.25rem;
		--space-hero-title-lead: 1.5rem;
		--space-hero-lead-actions: 2.25rem;
	}

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

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

	.section {
		padding-block: var(--space-4xl);
	}
}

@media (min-width: 64rem) {
	:root {
		--font-size-display: 5.5rem;
		--font-size-section: 3.5rem;
		--font-size-card-title: 1.75rem;
		--font-size-lead: 1.25rem;
		--font-size-card-body: 0.9375rem;
		--font-size-meta: 0.875rem;
		--font-size-eyebrow: 0.75rem;
		--font-size-action: 0.9375rem;
		--font-size-hero-action: 1rem;
		--font-size-navigation: 0.875rem;
		--space-eyebrow-title: 1rem;
		--space-title-lead: 1.5rem;
		--space-lead-content: 2rem;
		--space-card-meta-action: 1.25rem;
		--space-hero-eyebrow-title: 1.5rem;
		--space-hero-title-lead: 1.75rem;
		--space-hero-lead-actions: 2.5rem;
	}

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

	.button {
		padding-inline: var(--space-lg);
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/* --------------------------------------------------------------------------
 * Homepage hero
 * -------------------------------------------------------------------------- */

.front-page-header {
	position: absolute;
	z-index: 20;
	top: 0;
	right: 0;
	left: 0;
	padding-top: env(safe-area-inset-top);
	color: var(--color-white);
}

.front-page-header::before {
	position: absolute;
	inset: 0;
	content: "";
	background-color: var(--color-overlay-soft);
	pointer-events: none;
}

.front-page-header__container {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	width: min(100% - (var(--container-padding) * 2), var(--container-max-width));
	min-height: var(--header-min-height);
	margin-inline: auto;
	padding-block: var(--header-padding-block);
	transition: min-height 240ms ease, padding 240ms ease;
}

.front-page-brand {
	display: inline-flex;
	align-items: center;
	width: var(--header-logo-size);
	color: var(--color-white);
	filter: drop-shadow(0 0.125rem 1rem var(--color-overlay));
	transition: width 240ms ease, filter 240ms ease;
}

.front-page-brand:hover {
	color: var(--color-white);
}

.front-page-brand__logo-stack {
	display: grid;
	width: 100%;
	aspect-ratio: 2 / 1;
}

.front-page-brand__logo {
	grid-area: 1 / 1;
	width: 100%;
	height: auto;
	transition: opacity 380ms cubic-bezier(0.16, 1, 0.3, 1);
}

.front-page-brand__logo--white {
	opacity: 0;
}

.front-page-header--over-hero .front-page-brand__logo--color {
	opacity: 0;
}

.front-page-header--over-hero .front-page-brand__logo--white {
	opacity: 1;
}

.front-page-nav-toggle {
	display: inline-grid;
	gap: 0.3125rem;
	width: 3rem;
	height: 3rem;
	padding: 0.75rem;
	border: 0.0625rem solid rgb(255 255 255 / 45%);
	border-radius: 50%;
	background-color: rgb(29 25 21 / 32%);
	color: var(--color-white);
	place-content: center;
	backdrop-filter: blur(0.5rem);
}

.front-page-nav-toggle__line {
	display: block;
	width: 1.25rem;
	height: 0.125rem;
	border-radius: var(--radius-pill);
	background-color: currentcolor;
}

.front-page-nav {
	display: none;
	grid-column: 1 / -1;
	margin-block-start: var(--space-sm);
	padding: var(--space-md);
	border: 0.0625rem solid rgb(255 255 255 / 18%);
	border-radius: var(--radius-md);
	background-color: var(--color-overlay-strong);
	backdrop-filter: blur(1rem);
}

.front-page-header.is-menu-open .front-page-nav {
	display: block;
}

.front-page-nav__list {
	display: grid;
	gap: var(--space-xs);
}

.front-page-nav__link {
	display: block;
	padding: var(--space-xs) 0;
	color: var(--color-white);
	font-size: var(--font-size-navigation);
	font-weight: 600;
	text-decoration: none;
}

.front-page-nav__link:hover {
	color: var(--color-accent);
}

.front-page-header__socials {
	display: none;
}

.front-page-header__socials a {
	display: inline-grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	border-radius: var(--radius-sm);
	color: inherit;
	transition: color var(--transition-fast), background-color var(--transition-fast);
}

.front-page-header__socials a:hover {
	border-color: rgb(78 87 58 / 42%);
	color: var(--color-primary-hover);
}

.front-page-header__socials a:focus-visible {
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
}

.social-icon,
.front-page-header__cta-icon {
	width: 1rem;
	height: 1rem;
	fill: none;
	stroke: currentcolor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.social-icon--facebook {
	width: 0.9375rem;
	height: 1rem;
	fill: currentcolor;
	stroke: none;
}

.front-page-header__cta {
	gap: 0.4375rem;
}

.front-page-hero__cta-icon {
	display: block;
	flex: 0 0 auto;
}

.front-page-header__actions {
	display: none;
}

.front-page-hero {
	position: relative;
	display: flex;
	min-height: 90vh;
	min-height: 90svh;
	overflow: hidden;
	isolation: isolate;
	background-color: var(--color-ink);
	color: var(--color-white);
}

.front-page-hero__media,
.front-page-hero__overlay {
	position: absolute;
	inset: 0;
}

.front-page-hero__media {
	z-index: 0;
	overflow: hidden;
	background-color: var(--color-primary);
}

.front-page-hero__video,
.front-page-hero__media > iframe {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	transform: translate(-50%, -50%);
}

.front-page-hero__video {
	object-fit: cover;
	filter: saturate(0.88) brightness(0.88) contrast(1.04);
}

.front-page-hero__media > iframe {
	width: 177.778vh;
	min-width: 100%;
	height: 56.25vw;
	min-height: 100%;
	border: 0;
	pointer-events: none;
}

.front-page-hero__overlay {
	z-index: 1;
	background: linear-gradient(90deg, rgb(29 25 21 / 42%) 0%, rgb(29 25 21 / 28%) 38%, rgb(29 25 21 / 10%) 66%, transparent 94%);
}

@media (min-width: 64rem) {
	.front-page-hero__overlay {
		background: linear-gradient(90deg, rgb(29 25 21 / 45%) 0%, rgb(29 25 21 / 29%) 30%, rgb(29 25 21 / 10%) 50%, transparent 68%);
	}
}

.front-page-hero__container {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: flex-end;
	width: min(100% - (var(--container-padding) * 2), var(--container-max-width));
	min-height: inherit;
	margin-inline: auto;
	padding-block: max(9rem, calc(var(--space-3xl) + env(safe-area-inset-bottom))) clamp(1.75rem, 5svh, 3.5rem);
}

.front-page-hero__content {
	width: min(100%, 50rem);
}

.front-page-hero .section-eyebrow,
.front-page-hero__title,
.front-page-hero__text {
	color: var(--color-white);
}

.front-page-hero .section-eyebrow {
	margin-block-end: 0.875rem;
	color: rgb(255 255 255 / 78%);
	font-size: 1.25rem;
	letter-spacing: 0.115em;
}

@media (max-width: 47.9375rem) {
	.front-page-hero .section-eyebrow {
		font-size: 1rem;
	}
}

.front-page-hero__title {
	max-width: 15ch;
	font-size: var(--font-size-display);
	letter-spacing: 0.035em;
	line-height: var(--line-height-display);
	text-shadow: 0 0.125rem 0.75rem rgb(29 25 21 / 24%);
}

.front-page-hero__text {
	max-width: 37.5rem;
	margin-block-start: var(--space-hero-title-lead);
	font-size: var(--font-size-lead);
	line-height: var(--line-height-lead);
	text-shadow: none;
}

.front-page-hero__actions {
	display: grid;
	gap: var(--space-md);
	margin-block-start: var(--space-hero-lead-actions);
}

.front-page-hero__actions .button {
	width: 100%;
	min-height: 3.5rem;
	padding-inline: var(--space-xl);
	font-size: var(--font-size-hero-action);
	transition: background-color 180ms cubic-bezier(0.16, 1, 0.3, 1), border-color 180ms cubic-bezier(0.16, 1, 0.3, 1), color 180ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 180ms cubic-bezier(0.16, 1, 0.3, 1), transform 180ms cubic-bezier(0.16, 1, 0.3, 1);
}

.front-page-hero__actions .button--accent {
	gap: 0.5rem;
	background-color: var(--color-primary);
	box-shadow: 0 0.5rem 1.25rem rgb(29 25 21 / 20%);
}

.front-page-hero__actions .button--accent:hover {
	background-color: var(--color-primary-hover);
}

.front-page-hero__actions .button--outline {
	border-color: rgb(255 255 255 / 76%);
	background-color: rgb(255 255 255 / 14%);
	color: var(--color-white);
	backdrop-filter: blur(0.5rem);
	box-shadow: none;
}

.front-page-hero__actions .button--outline:hover {
	border-color: var(--color-white);
	background-color: rgb(255 255 255 / 18%);
	color: var(--color-white);
}

@media (min-width: 48rem) {
	.front-page-hero__container {
		padding-block-end: clamp(2.75rem, 7vh, 4.75rem);
	}

	.front-page-hero__actions {
		display: flex;
		align-items: center;
	}

	.front-page-hero__actions .button {
		width: auto;
	}
}

@media (min-width: 64rem) {
	:root {
		--header-logo-size: clamp(11.125rem, 12.75vw, 11.75rem);
		--header-min-height: 4.5rem;
		--header-padding-block: 0.125rem;
	}

	.front-page-header__container {
		grid-template-columns: auto minmax(0, 1fr) auto auto;
		column-gap: var(--space-sm);
	}

	.front-page-hero .section-eyebrow {
		margin-block-end: 0.8125rem;
		font-size: 1.3125rem;
		letter-spacing: 0.11em;
	}

	.front-page-nav-toggle {
		display: none;
	}

	.front-page-nav {
		display: block;
		grid-column: auto;
		margin: 0;
		padding: 0;
		border: 0;
		background-color: transparent;
		backdrop-filter: none;
	}

	.front-page-nav__list {
		display: flex;
		justify-content: center;
		gap: clamp(0.625rem, 1.35vw, var(--space-lg));
	}

	.front-page-nav__link {
		padding: var(--space-xs);
		font-size: 0.90625rem;
		letter-spacing: 0.01em;
		text-shadow: 0 0.125rem 0.75rem rgb(29 25 21 / 35%);
	}

	.front-page-header__actions {
		display: block;
	}

	.front-page-header__socials {
		display: flex;
		align-items: center;
		gap: 0.375rem;
		color: var(--color-white);
	}

	.front-page-header__socials a {
		width: 2.5rem;
		height: 2.5rem;
		border: 0.0625rem solid rgb(255 255 255 / 24%);
		border-radius: 50%;
	}

	.front-page-header__cta {
		gap: 0.625rem;
		min-height: 2.875rem;
		padding: 0.625rem 1.5rem;
		background: linear-gradient(115deg, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 82%, var(--color-secondary)) 100%);
		background-size: 135% 100%;
		background-position: left center;
		box-shadow: 0 0.5rem 1rem rgb(29 25 21 / 14%);
		font-size: 0.8rem;
		font-weight: 700;
		letter-spacing: 0.04em;
		text-transform: uppercase;
		transition: background-position var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), filter var(--transition-fast);
	}

	.front-page-header__cta-icon {
		width: 0.875rem;
		height: 0.875rem;
	}

	.front-page-header__cta:hover {
		background-position: right center;
		filter: saturate(1.04) contrast(1.04);
		transform: none;
	}

	.front-page-hero__container {
		padding-block: 11rem clamp(1.75rem, 5vh, 4rem);
	}

	.front-page-hero__content {
		width: min(100%, 47rem);
	}

	.front-page-hero__title {
		letter-spacing: 0.0275em;
	}

	.front-page-hero__text {
		max-width: 35.5rem;
		margin-block-start: 1.125rem;
	}

	.front-page-hero__actions {
		margin-block-start: 1.875rem;
	}

	.front-page-hero__actions .button--accent {
		box-shadow: 0 0.5rem 1.25rem rgb(29 25 21 / 20%);
	}

	.front-page-hero__actions .button--outline {
		border-color: rgb(255 255 255 / 78%);
		background-color: rgb(255 255 255 / 15%);
		box-shadow: inset 0 0 0 0.0625rem rgb(255 255 255 / 15%);
	}
}

/* --------------------------------------------------------------------------
 * Homepage scroll experience — proof of concept
 * -------------------------------------------------------------------------- */

.home-scroll-experience,
.home-scroll-experience__stage {
	position: relative;
	background-color: var(--color-canvas);
}

.home-scroll-experience__editorial {
	padding: clamp(3rem, 9vw, 5rem) var(--container-padding);
	color: var(--color-primary);
}

.home-scroll-experience__statement,
.home-scroll-experience__words {
	width: min(100%, var(--container-max-width));
	margin-inline: auto;
}

.home-scroll-experience__statement {
	font-family: var(--font-family-display);
	font-size: clamp(2.75rem, 13vw, 5rem);
	letter-spacing: 0.025em;
	line-height: 0.96;
	text-transform: uppercase;
}

.home-scroll-experience__words {
	display: grid;
	gap: var(--space-sm);
	margin-block-start: var(--space-xl);
	color: var(--color-accent-strong);
	font-family: var(--font-family-display);
	font-size: clamp(2rem, 9vw, 3.5rem);
	letter-spacing: 0.025em;
	line-height: 1;
	text-transform: uppercase;
}

@media (max-width: 63.9375rem) {
	.home-scroll-experience__editorial {
		padding-block: clamp(1.75rem, 6vw, 2.5rem);
	}

	.home-scroll-experience__statement {
		font-size: clamp(1.875rem, 7vw, 2.625rem);
		line-height: 1;
		text-transform: none;
	}

	.home-scroll-experience__statement br {
		display: none;
	}

	.home-scroll-experience__words {
		display: flex;
		flex-wrap: wrap;
		gap: 0.25rem 0.5rem;
		margin-block-start: var(--space-sm);
		font-size: clamp(1.25rem, 5vw, 1.75rem);
		line-height: 1.1;
		text-transform: none;
	}
}

@media (max-width: 47.999rem) {
	.front-page-hero__actions .button--outline {
		min-height: 3.125rem;
	}
}

@media (min-width: 64rem) {
	.home-scroll-experience__word--mobile-only {
		display: none;
	}

	.home-scroll-experience.is-enhanced .home-scroll-experience__stage {
		height: 90vh;
		height: 90svh;
		overflow: hidden;
		isolation: isolate;
	}

	.home-scroll-experience.is-enhanced .front-page-hero {
		position: absolute;
		z-index: 1;
		inset: 0;
		min-height: 100%;
		background-color: transparent;
	}

	.home-scroll-experience.is-enhanced .front-page-hero__media {
		clip-path: inset(0 round 0);
		will-change: clip-path, transform;
	}

	.home-scroll-experience.is-enhanced .home-scroll-experience__editorial {
		position: absolute;
		z-index: 2;
		top: 50%;
		left: max(var(--container-padding), calc((100% - var(--container-max-width)) / 2));
		width: min(35%, 28rem);
		padding: 0;
		transform: translateY(-50%);
		pointer-events: none;
	}

	.home-scroll-experience.is-enhanced .home-scroll-experience__statement,
	.home-scroll-experience.is-enhanced .home-scroll-experience__words {
		width: 100%;
		margin-inline: 0;
	}

	.home-scroll-experience.is-enhanced .home-scroll-experience__statement {
		font-size: clamp(3.25rem, 5vw, 5.75rem);
	}

	.home-scroll-experience.is-enhanced .home-scroll-experience__words {
		position: relative;
		display: grid;
		min-height: 1.15em;
		margin-block-start: clamp(1.5rem, 3vh, 2.5rem);
		font-size: clamp(2.25rem, 3.25vw, 4rem);
	}

	.home-scroll-experience.is-enhanced .home-scroll-experience__words li {
		grid-area: 1 / 1;
	}
}

/* --------------------------------------------------------------------------
 * Narrative map
 * -------------------------------------------------------------------------- */

[data-reveal="image"],
[data-parallax="subtle"] {
	overflow: hidden;
}

.explore-section {
	position: relative;
	padding-block: clamp(3rem, 7vw, 5rem);
	background-color: var(--color-white);
}

.explore-section--homepage,
.front-page #attivita {
	scroll-margin-top: calc(var(--header-min-height) + 1rem);
}

body.admin-bar .explore-section--homepage,
body.admin-bar .front-page #attivita {
	scroll-margin-top: calc(var(--header-min-height) + 1rem + 2rem);
}

@media (max-width: 48.875rem) {
	body.admin-bar .explore-section--homepage,
	body.admin-bar .front-page #attivita {
		scroll-margin-top: calc(var(--header-min-height) + 1rem + 2.875rem);
	}
}

.explore-section__container {
	width: min(100% - (var(--container-padding) * 2), var(--container-max-width));
	margin-inline: auto;
}

.explore-section__intro .section-title {
	max-width: 13ch;
	margin-block-start: var(--space-eyebrow-title);
	font-size: clamp(2rem, 8vw, 2.75rem);
}

.explore-section__text {
	margin-block-start: var(--space-title-lead);
	font-size: 0.9375rem;
	line-height: 1.55;
}

.explore-section__definition {
	max-width: 62ch;
	margin-block-start: var(--space-md);
	color: var(--color-text-secondary);
	font-size: 0.9375rem;
	line-height: 1.6;
}

.explore-paths {
	margin-block-start: var(--space-lg);
}

.explore-paths--interests {
	position: relative;
	margin-block-start: var(--space-md);
	padding-block-start: var(--space-md);
	border-block-start: 0;
}

.explore-paths--interests::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 7rem;
	border-block-start: 0.0625rem solid rgb(29 25 21 / 12%);
	content: "";
}

.explore-paths--interests.is-inactive {
	display: none;
}

.explore-paths--interests .explore-path {
	padding-inline: 0.6875rem;
}

.explore-paths[hidden] {
	display: none;
}

.explore-paths__label {
	margin-block-end: var(--space-sm);
	color: var(--color-ink);
	font-size: var(--font-size-meta);
	font-weight: 400;
}

.explore-paths__list {
	display: flex;
	gap: var(--space-xs);
	padding-block-end: var(--space-xs);
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: none;
}

.explore-paths__list::-webkit-scrollbar {
	display: none;
}

.explore-paths__item {
	flex: 0 0 auto;
	scroll-snap-align: start;
}

.explore-path {
	min-height: 2.25rem;
	padding: 0.4375rem 0.8125rem;
	border: 0.0625rem solid var(--color-line);
	border-radius: var(--radius-pill);
	background-color: var(--color-white);
	color: var(--color-ink-muted);
	font-size: 0.75rem;
	font-weight: 600;
	transition: background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast);
}

.explore-path:hover {
	border-color: var(--color-accent-strong);
	box-shadow: 0 0 0 0.125rem var(--color-primary-soft);
	color: var(--color-accent-strong);
}

.explore-path.is-active {
	border-color: var(--color-primary);
	background-color: var(--color-primary);
	color: var(--color-white);
}

.explore-path:focus-visible {
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
}


.explore-stage {
	display: grid;
	gap: var(--space-lg);
}

.explore-stage__editorial {
	min-width: 0;
}

.explore-map {
	position: relative;
	min-width: 0;
	isolation: isolate;
}

.explore-map__canvas {
	position: relative;
	height: clamp(29rem, 64svh, 39rem);
	overflow: hidden;
	border-radius: var(--radius-lg);
	background-color: var(--color-surface-muted);
}

.explore-map__fallback {
	padding: var(--space-lg);
}

.explore-map__canvas.leaflet-container {
	width: 100%;
	background-color: var(--color-surface-muted);
	font-family: var(--font-family-base);
}

.explore-map__canvas .leaflet-control-zoom {
	margin: var(--space-md);
	border: 0.0625rem solid rgb(29 25 21 / 10%);
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
}

.explore-map__canvas .leaflet-control-zoom a {
	width: 2.375rem;
	height: 2.375rem;
	border: 0;
	background-color: var(--color-white);
	color: var(--color-ink);
	font-size: 1.25rem;
	line-height: 2.25rem;
}

.explore-map__canvas .leaflet-control-zoom a:hover {
	background-color: var(--color-surface);
	color: var(--color-primary);
}

.explore-map__canvas .leaflet-control-attribution {
	max-width: calc(100% - var(--space-md));
	padding: 0.1875rem 0.375rem;
	border-radius: var(--radius-sm) 0 0 0;
	background-color: rgb(255 255 255 / 88%);
	color: var(--color-ink-muted);
	font-size: 0.625rem;
	line-height: 1.35;
}

.explore-map__canvas .leaflet-control-attribution a {
	color: var(--color-ink);
}

.vivivado-map-marker {
	width: 1.875rem !important;
	height: 1.875rem !important;
	border: 0;
	border-radius: 50%;
	background: transparent;
	box-shadow: none;
	cursor: pointer;
}

.vivivado-map-marker__symbol {
	display: grid;
	position: relative;
	width: 100%;
	height: 100%;
	border: 0.1125rem solid var(--color-white);
	border-radius: 50%;
	box-shadow: 0 0.375rem 1rem rgb(29 25 21 / 24%);
	color: var(--color-white);
	overflow: visible;
	place-items: center;
	transition: box-shadow 0.2s ease-out, transform 0.2s ease-out;
}

.vivivado-map-marker__icon {
	position: relative;
	z-index: 1;
	display: block;
	width: 0.875rem;
	height: 0.875rem;
	object-fit: contain;
}

.vivivado-cultural-marker {
	cursor: pointer;
	filter: drop-shadow(0 0.0625rem 0.125rem rgb(29 25 21 / 24%));
	stroke-width: 2.5px;
	transform-box: fill-box;
	transform-origin: center;
	transition: fill 0.18s ease-out, stroke-width 0.18s ease-out, transform 0.18s ease-out;
}

.leaflet-culturalPlaces-pane > svg {
	max-width: none;
}

.vivivado-cultural-marker:hover,
.vivivado-cultural-marker.is-previewed,
.vivivado-cultural-marker.is-selected,
.vivivado-cultural-marker.is-current,
.vivivado-cultural-marker:focus-visible {
	fill: #71877d;
	stroke-width: 2.75px;
	transform: scale(1.05);
}

.vivivado-cultural-marker:focus-visible {
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.125rem;
}

.vivivado-map-marker--food .vivivado-map-marker__symbol {
	background-color: var(--color-accent-strong);
}

.vivivado-map-marker--craft .vivivado-map-marker__symbol {
	background-color: var(--color-primary);
}

.vivivado-map-marker--culture .vivivado-map-marker__symbol {
	background-color: var(--color-secondary);
}

.vivivado-map-marker--default .vivivado-map-marker__symbol {
	background-color: var(--color-accent-strong);
}

.vivivado-map-marker--color-terracotta .vivivado-map-marker__symbol {
	background-color: var(--color-accent-strong);
}

.vivivado-map-marker--color-olive .vivivado-map-marker__symbol {
	background-color: var(--color-primary);
}

.vivivado-map-marker--color-ochre .vivivado-map-marker__symbol {
	background-color: #a97932;
}

.vivivado-map-marker--color-petrol .vivivado-map-marker__symbol {
	background-color: var(--color-focus);
}

.vivivado-map-marker--color-plum .vivivado-map-marker__symbol {
	background-color: #6d3f63;
}

.vivivado-map-marker--color-neutral .vivivado-map-marker__symbol {
	background-color: var(--color-ink-muted);
}

.vivivado-map-marker--color-fresh {
	--marker-active-color: #426b4f;
	--marker-selected-color: rgb(66 107 79 / 35%);
}

.vivivado-map-marker--color-fresh .vivivado-map-marker__symbol {
	background-color: #426b4f;
}

.vivivado-map-marker--color-dusty-rose {
	--marker-active-color: #9d6172;
	--marker-selected-color: rgb(157 97 114 / 35%);
}

.vivivado-map-marker--color-dusty-rose .vivivado-map-marker__symbol {
	background-color: #8f6470;
	transition: background-color 0.2s ease-out, box-shadow 0.2s ease-out, transform 0.2s ease-out;
}

.vivivado-map-marker--color-dusty-rose.is-previewed .vivivado-map-marker__symbol,
.vivivado-map-marker--color-dusty-rose.is-selected .vivivado-map-marker__symbol,
.vivivado-map-marker--color-dusty-rose:hover .vivivado-map-marker__symbol,
.vivivado-map-marker--color-dusty-rose:focus-visible .vivivado-map-marker__symbol {
	background-color: #9d6172;
}

.vivivado-map-marker.is-previewed .vivivado-map-marker__symbol,
.vivivado-map-marker:hover .vivivado-map-marker__symbol {
	transform: scale(1.267);
}

.vivivado-map-marker.is-selected .vivivado-map-marker__symbol {
	box-shadow: 0 0 0 0.125rem var(--color-ink), 0 0 0 0.3125rem rgb(255 255 255 / 92%), 0 0 0 0.5rem var(--marker-selected-color, var(--color-accent-strong-translucent)), 0 0.625rem 1.25rem rgb(29 25 21 / 32%);
	animation: vivivado-map-marker-pop 0.2s ease-out;
	transform: scale(1.267);
}

.vivivado-map-marker:focus-visible {
	outline: 0;
	z-index: 750 !important;
}

.vivivado-map-marker:focus-visible .vivivado-map-marker__symbol {
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
	transform: scale(1.267);
}

@keyframes vivivado-map-marker-pop {
	from {
		transform: scale(1.4);
	}

	to {
		transform: scale(1.267);
	}
}

@keyframes vivivado-map-marker-pulse {
	0% {
		opacity: 0.52;
		transform: scale(1);
	}

	100% {
		opacity: 0;
		transform: scale(2.12);
	}
}

@keyframes vivivado-map-marker-breathe {
	0%,
	100% {
		transform: scale(1);
	}

	50% {
		transform: scale(1.04);
	}
}

.explore-map__canvas.is-awaiting-selection .vivivado-map-marker:not(.is-selected) .vivivado-map-marker__symbol {
	animation: vivivado-map-marker-breathe 2.2s ease-in-out infinite;
}

.explore-map__canvas.is-awaiting-selection .vivivado-map-marker:not(.is-selected) .vivivado-map-marker__symbol::before,
.explore-map__canvas.is-awaiting-selection .vivivado-map-marker:not(.is-selected) .vivivado-map-marker__symbol::after {
	position: absolute;
	inset: -0.125rem;
	border: 0.0625rem solid rgb(193 106 68 / 58%);
	border-radius: inherit;
	content: "";
	opacity: 0;
	pointer-events: none;
	transform: scale(1);
	transform-origin: center;
	animation: vivivado-map-marker-pulse 2.2s cubic-bezier(0.22, 1, 0.36, 1) infinite;
}

.explore-map__canvas.is-awaiting-selection .vivivado-map-marker:not(.is-selected) .vivivado-map-marker__symbol::after {
	animation-delay: 0.72s;
}

.explore-map__canvas.is-awaiting-selection .vivivado-map-marker--pulse-1 .vivivado-map-marker__symbol::before {
	animation-delay: 0.28s;
}

.explore-map__canvas.is-awaiting-selection .vivivado-map-marker--pulse-1 .vivivado-map-marker__symbol::after {
	animation-delay: 0.98s;
}

.explore-map__canvas.is-awaiting-selection .vivivado-map-marker--pulse-2 .vivivado-map-marker__symbol::before {
	animation-delay: 0.56s;
}

.explore-map__canvas.is-awaiting-selection .vivivado-map-marker--pulse-2 .vivivado-map-marker__symbol::after {
	animation-delay: 1.24s;
}

.explore-map__canvas.is-awaiting-selection .vivivado-map-marker--pulse-3 .vivivado-map-marker__symbol::before {
	animation-delay: 0.84s;
}

.explore-map__canvas.is-awaiting-selection .vivivado-map-marker--pulse-3 .vivivado-map-marker__symbol::after {
	animation-delay: 1.5s;
}

.vivivado-map-marker.is-filtered-out {
	opacity: 0.16 !important;
	pointer-events: none;
}

.vivivado-map-marker.is-type-filtered-out,
.vivivado-cultural-marker.is-type-filtered-out {
	opacity: 0 !important;
	pointer-events: none;
}

.activity-preview {
	position: absolute;
	bottom: var(--space-md);
	left: var(--container-padding);
	z-index: 1200;
	display: grid;
	grid-template-columns: minmax(7.25rem, 8.5rem) minmax(0, 1fr);
	gap: var(--space-sm);
	width: calc(100% - (var(--container-padding) * 2));
	padding: var(--space-sm);
	border: 0.0625rem solid rgb(29 25 21 / 8%);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: 0 1.25rem 2.75rem rgb(29 25 21 / 22%);
	transition: box-shadow 0.2s ease-out, opacity 0.18s ease-out, transform 0.18s ease-out;
}

.activity-preview:not(.is-empty) {
	cursor: pointer;
}

.activity-preview.is-hover-preview {
	pointer-events: auto;
}

.activity-preview:not(.is-empty):hover {
	border-color: var(--color-primary);
	box-shadow: 0 1.5rem 3rem rgb(29 25 21 / 26%);
}

.activity-preview.is-updating {
	opacity: 0.78;
	transform: translateY(0.25rem);
}

.activity-preview__image {
	align-self: start;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: calc(var(--radius-md) - 0.25rem);
	background-color: var(--color-surface-warm);
}

.activity-preview__image-element {
	width: 100%;
	height: 100%;
	border-radius: inherit;
	object-fit: cover;
	transition: transform var(--transition-fast);
}

.activity-preview.is-empty {
	display: block;
	overflow: hidden;
}

.activity-preview.is-empty .activity-preview__image {
	display: none;
}

.activity-preview.is-empty::after {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: url("assets/images/brand/ViviVado-orizzontale-colori.svg") no-repeat calc(100% + 2rem) calc(100% + 1.25rem) / 12rem auto;
	content: "";
	opacity: 0.06;
	pointer-events: none;
}

.activity-preview.is-empty .activity-preview__content {
	position: relative;
	z-index: 1;
	max-width: 31ch;
}

.activity-preview__content {
	min-width: 0;
}

.activity-preview__close {
	display: none;
}

.activity-preview__category {
	color: var(--color-accent-strong);
	font-size: 0.625rem;
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.activity-preview__title {
	margin-block-start: 0.25rem;
	font-size: 1.125rem;
	line-height: 1.08;
}

.activity-preview__text {
	margin-block-start: 0.5rem;
	font-size: 0.75rem;
	line-height: 1.45;
}

.activity-preview__address {
	display: none;
	color: var(--color-ink);
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.4;
}

.activity-preview__link {
	display: inline-flex;
	margin-block-start: 0.625rem;
	padding: 0;
	border: 0;
	border-radius: 0;
	background-color: transparent;
	color: var(--color-accent-strong);
	font-size: 0.75rem;
	letter-spacing: 0.02em;
}

.activity-preview__link:hover {
	color: var(--color-primary-hover);
}

.activity-preview__link::before {
	position: absolute;
	inset: 0;
	z-index: 1;
	content: "";
}

.activity-preview__link:focus-visible {
	outline: none;
}

.activity-preview:not(.is-empty):focus-within {
	border-color: var(--color-primary);
	box-shadow: 0 1.5rem 3rem rgb(29 25 21 / 26%);
}

.activity-preview:not(.is-empty):hover .activity-preview__image-element,
.activity-preview:not(.is-empty):focus-within .activity-preview__image-element {
	transform: scale(1.025);
}

/* Homepage map — active marker and temporary preview motion. */

.explore-section--homepage .vivivado-map-marker.is-previewed .vivivado-map-marker__symbol,
.explore-section--homepage .vivivado-map-marker:hover .vivivado-map-marker__symbol,
.explore-section--homepage .vivivado-map-marker:focus-visible .vivivado-map-marker__symbol {
	transform: scale(1.05);
}

.explore-section--homepage .vivivado-map-marker.is-previewed .vivivado-map-marker__symbol::after,
.explore-section--homepage .vivivado-map-marker:focus-visible .vivivado-map-marker__symbol::after {
	position: absolute;
	inset: -0.3125rem;
	border: 0.0625rem solid var(--marker-active-color, var(--color-accent-strong));
	border-radius: inherit;
	content: "";
	opacity: 0.72;
	pointer-events: none;
}

.explore-section--homepage .vivivado-map-marker--color-terracotta {
	--marker-active-color: var(--color-accent-strong);
}

.explore-section--homepage .vivivado-map-marker--color-olive {
	--marker-active-color: var(--color-primary);
}

.explore-section--homepage .vivivado-map-marker--color-ochre {
	--marker-active-color: #a97932;
}

.explore-section--homepage .vivivado-map-marker--color-petrol {
	--marker-active-color: var(--color-focus);
}

.explore-section--homepage .vivivado-map-marker--color-plum {
	--marker-active-color: #6d3f63;
}

.explore-section--homepage .vivivado-map-marker--color-neutral {
	--marker-active-color: var(--color-ink-muted);
}

.explore-section--homepage .vivivado-map-marker--color-fresh {
	--marker-active-color: #426b4f;
}

.explore-section--homepage .vivivado-map-marker--color-dusty-rose {
	--marker-active-color: #9d6172;
}

.explore-section--homepage .activity-preview {
	box-shadow: 0 1rem 2.375rem rgb(29 25 21 / 18%);
	transition: none;
}

@media (prefers-reduced-motion: reduce) {
	.vivivado-map-marker__symbol,
	.vivivado-cultural-marker,
	.activity-preview,
	.explore-map__canvas.is-awaiting-selection .vivivado-map-marker:not(.is-selected) .vivivado-map-marker__symbol,
	.vivivado-map-marker.is-selected .vivivado-map-marker__symbol,
	.explore-map__canvas.is-awaiting-selection .vivivado-map-marker:not(.is-selected) .vivivado-map-marker__symbol::before,
	.explore-map__canvas.is-awaiting-selection .vivivado-map-marker:not(.is-selected) .vivivado-map-marker__symbol::after {
		animation: none;
		transition: none;
	}

	.vivivado-cultural-marker:hover,
	.vivivado-cultural-marker.is-previewed,
	.vivivado-cultural-marker.is-selected,
	.vivivado-cultural-marker.is-current,
	.vivivado-cultural-marker:focus-visible {
		transform: none;
	}

	.vivivado-map-marker--color-dusty-rose .vivivado-map-marker__symbol {
		transition: none;
	}

	.explore-section--homepage .vivivado-map-marker.is-previewed .vivivado-map-marker__symbol,
	.explore-section--homepage .vivivado-map-marker:hover .vivivado-map-marker__symbol,
	.explore-section--homepage .vivivado-map-marker:focus-visible .vivivado-map-marker__symbol {
		transform: none;
	}

	.explore-section--homepage .vivivado-map-marker.is-previewed .vivivado-map-marker__symbol::after,
	.explore-section--homepage .vivivado-map-marker:focus-visible .vivivado-map-marker__symbol::after {
		display: none;
	}

	.explore-section--homepage .activity-preview {
		transition: none;
	}

}

@media (min-width: 64rem) {
	.explore-paths__list {
		flex-wrap: wrap;
		overflow: visible;
	}
}

.explore-section__footer {
	display: grid;
	gap: var(--space-md);
	margin-block-start: var(--space-md);
}

.explore-section__footer .text-link {
	justify-self: start;
}

@media (max-width: 63.9375rem) {
	.explore-stage__map {
		margin-inline: calc(var(--container-padding) * -1);
	}

	.explore-map__canvas .leaflet-bottom.leaflet-right {
		bottom: 11rem;
	}

	.vivivado-map-marker {
		opacity: 0.58;
	}

	.vivivado-map-marker.is-selected,
	.vivivado-map-marker.is-previewed {
		z-index: 1000 !important;
		opacity: 1;
	}

	.vivivado-map-marker.is-selected .vivivado-map-marker__symbol {
		box-shadow: 0 0 0 0.125rem var(--color-ink), 0 0 0 0.3125rem rgb(255 255 255 / 92%), 0 0 0 0.5rem var(--color-accent-strong-translucent), 0 0.625rem 1.25rem rgb(29 25 21 / 34%);
	}
}

@media (max-width: 47.999rem) {
	.home-scroll-experience__editorial {
		padding-block: calc(1.25rem + var(--space-lg)) 1.25rem;
	}

	.home-scroll-experience__words {
		margin-block-start: var(--space-xs);
	}

	.explore-section--homepage {
		padding-block-start: var(--space-xl);
		padding-block-end: var(--space-xl);
	}

	.explore-section--homepage + .activities-section {
		padding-block-start: var(--space-2xl);
	}

	.vivivado-map-marker {
		opacity: 0.84;
	}

	.activity-preview.is-empty {
		display: none;
	}

	.activity-preview:not(.is-empty) .activity-preview__content {
		padding-inline-end: 2.75rem;
	}

	.activity-preview__close {
		position: absolute;
		top: 0.25rem;
		right: 0.25rem;
		z-index: 3;
		width: 2.75rem;
		height: 2.75rem;
		padding: 0;
		place-items: center;
		border: 0;
		border-radius: 50%;
		background-color: transparent;
		color: var(--color-ink-muted);
		font-size: 1.25rem;
		line-height: 1;
	}

	.activity-preview:not(.is-empty) .activity-preview__close {
		display: grid;
	}

	.activity-preview__close:hover {
		background-color: var(--color-surface-warm);
		color: var(--color-primary);
	}

	.activity-preview__close:focus-visible {
		outline: 0.1875rem solid var(--color-focus);
		outline-offset: 0;
	}

	.explore-stage__map:has(.activity-preview.is-empty) .explore-map__canvas .leaflet-bottom.leaflet-right {
		bottom: var(--space-md);
	}

	.site-footer__bottom p:last-child {
		font-size: 0.75rem;
		line-height: 1.4;
	}
}

@media (min-width: 48rem) {
	.activity-preview {
		left: var(--space-lg);
		width: min(24rem, calc(100% - (var(--space-lg) * 2)));
	}

	.explore-section__footer {
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
}

@media (min-width: 64rem) {
	.explore-stage {
		grid-template-columns: minmax(15rem, 0.72fr) minmax(0, 1.8fr);
		gap: clamp(2rem, 5vw, 5rem);
		align-items: start;
	}

	.explore-stage__editorial {
		align-self: start;
	}

	.explore-section__intro .section-title {
		font-size: clamp(2.5rem, 3.4vw, 3.5rem);
	}

	.explore-section__text {
		max-width: 30ch;
		font-size: 1rem;
	}

	.explore-map__canvas {
		height: clamp(31rem, 47svh, 39rem);
	}

	.explore-map__canvas .leaflet-bottom.leaflet-right {
		right: clamp(19rem, 24vw, 21rem);
	}

	.activity-preview {
		bottom: var(--space-xl);
		left: auto;
		right: var(--space-xl);
		display: block;
		width: min(19rem, calc(100% - (var(--space-xl) * 2)));
		padding: 0;
		border-radius: var(--radius-lg);
	}

	.activity-preview__image {
		aspect-ratio: 16 / 9;
		border-radius: calc(var(--radius-lg) - 0.0625rem) calc(var(--radius-lg) - 0.0625rem) 0 0;
	}

	.activity-preview__content {
		padding: var(--space-md) var(--space-lg) var(--space-lg);
	}

	.activity-preview__category {
		font-size: 0.6875rem;
	}

	.activity-preview__title {
		font-size: 1.375rem;
	}

	.activity-preview__text {
		font-size: 0.8125rem;
	}

	.activity-preview__address {
		display: block;
		margin-block: 0.625rem 0;
	}

	.activity-preview .text-link {
		margin-block-start: 0.875rem;
		font-size: 0.8125rem;
	}

}

.activity-preview.is-cultural-preview {
	display: block;
	padding: var(--space-md) var(--space-lg);
	border-color: rgb(98 118 109 / 22%);
	box-shadow: 0 0.75rem 1.75rem rgb(29 25 21 / 14%);
}

.activity-preview.is-cultural-preview .activity-preview__content {
	padding: 0;
}

.activity-preview.is-cultural-preview .activity-preview__image,
.activity-preview.is-cultural-preview .activity-preview__text,
.activity-preview.is-cultural-preview .activity-preview__address {
	display: none;
}

.activity-preview.is-cultural-preview .activity-preview__category {
	color: #62766d;
}

.activity-preview.is-cultural-preview .activity-preview__link {
	color: var(--color-secondary);
}

.activity-preview.is-cultural-preview .activity-preview__link:hover {
	color: var(--color-primary);
}

@media (min-width: 64rem) {
	.explore-section--single-cultural-place .explore-stage__map {
		align-self: start;
	}
}

.explore-section--single-cultural-place {
	padding-block: clamp(2rem, 4vw, 3rem);
	margin-block-start: clamp(3rem, 12vw, 3.5rem);
	background-color: var(--color-canvas);
}

.explore-section--single-cultural-place .explore-section__container {
	width: 100%;
}

.explore-section--single-cultural-place .explore-section__intro .section-title {
	max-width: 20ch;
	font-size: clamp(1.75rem, 2.2vw, 1.875rem);
}

@media (min-width: 64rem) {
	.explore-section--single-cultural-place {
		margin-block-start: clamp(5rem, 6vw, 6rem);
		padding-block-start: 1rem;
	}
}

@media (min-width: 48rem) and (max-width: 63.9375rem) {
	.explore-section--single-cultural-place {
		margin-block-start: 4rem;
	}
}

/* --------------------------------------------------------------------------
 * Single activity
 * -------------------------------------------------------------------------- */

.activity-page {
	padding-block: var(--space-lg) clamp(4rem, 8vw, 7rem);
	background-color: var(--color-surface);
}

.activity-page__container {
	width: min(100% - (var(--container-padding) * 2), var(--container-max-width));
	margin-inline: auto;
}

.activity-page__topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-md);
	margin-block-end: var(--space-xl);
}

.activity-page__brand {
	display: block;
	width: 7.5rem;
}

.activity-page__brand img {
	width: 100%;
	height: auto;
}

.activity-hero {
	display: grid;
	gap: var(--space-lg);
}

.activity-hero__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.activity-hero__terms {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	margin-block-end: var(--space-md);
}

.activity-hero__terms li {
	padding: 0.3125rem 0.5625rem;
	border: 0.0625rem solid var(--color-border);
	border-radius: var(--radius-pill);
	color: var(--color-accent-strong);
	font-size: var(--font-size-eyebrow);
	font-weight: 400;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.activity-hero__title {
	max-width: 12ch;
	font-size: clamp(2.75rem, 10vw, 4rem);
	letter-spacing: 0.06em;
	line-height: 0.98;
}

.activity-hero__excerpt {
	max-width: 34ch;
	margin-block-start: var(--space-lg);
	font-size: var(--font-size-lead);
	line-height: var(--line-height-lead);
}

.activity-hero__location {
	margin-block-start: var(--space-md);
	color: var(--color-ink);
	font-size: var(--font-size-meta);
	font-weight: 400;
}

.activity-hero__actions {
	display: grid;
	gap: var(--space-sm);
	margin-block-start: var(--space-xl);
}

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

.activity-hero__booking {
	border-color: var(--color-accent-strong);
	background-color: transparent;
	color: var(--color-accent-strong);
}

.activity-hero__booking:hover {
	border-color: var(--color-accent-strong);
	background-color: var(--color-accent-strong);
	color: var(--color-white);
}

.activity-hero__media {
	order: -1;
	overflow: hidden;
	border-radius: var(--radius-lg);
	background-color: var(--color-surface-muted);
}

.activity-hero__image,
.activity-hero__placeholder {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.activity-hero__placeholder {
	background-color: var(--color-surface-warm);
}

.activity-page__body {
	display: grid;
	gap: var(--space-2xl);
	margin-block-start: clamp(3.5rem, 8vw, 7rem);
}

.activity-story__header {
	margin-block-end: var(--space-lg);
}

.activity-story__title {
	max-width: 15ch;
	margin-block-start: var(--space-eyebrow-title);
	font-size: clamp(1.875rem, 6vw, 2.5rem);
}

.activity-story__content {
	max-width: 42rem;
	font-size: 1.0625rem;
	line-height: 1.75;
}

.activity-story__content > * + * {
	margin-block-start: var(--space-lg);
}

.activity-story__content img {
	border-radius: var(--radius-md);
}

.activity-details {
	display: grid;
	gap: var(--space-md);
}

.activity-details__group {
	padding: var(--space-lg);
	border: 0.0625rem solid rgb(29 25 21 / 8%);
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.activity-details__title {
	max-width: 15ch;
	margin-block-start: var(--space-eyebrow-title);
	font-size: 1.375rem;
}

.activity-details__subtitle {
	font-size: 1.125rem;
}

.activity-details__address,
.activity-details__contacts,
.activity-details__socials {
	display: grid;
	gap: var(--space-xs);
	margin-block-start: var(--space-lg);
}

.activity-details__address {
	color: var(--color-ink);
	font-style: normal;
	font-size: var(--font-size-meta);
	font-weight: 400;
}

.activity-details__contacts,
.activity-details__socials {
	font-size: var(--font-size-action);
	font-weight: 400;
}

.activity-details__contacts a,
.activity-details__socials a {
	color: var(--color-accent-strong);
}

.activity-details__price {
	margin-block-start: var(--space-md);
	color: var(--color-ink);
	font-size: var(--font-size-meta);
	font-weight: 400;
}

.activity-details__terms {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	margin-block-start: var(--space-md);
}

.activity-details__terms li {
	padding: 0.375rem 0.625rem;
	border-radius: var(--radius-pill);
	background-color: var(--color-surface-muted);
	color: var(--color-ink);
	font-size: var(--font-size-meta);
	font-weight: 400;
}

.activity-details__terms--accessibility li {
	background-color: var(--color-focus-soft);
}

.activity-details__note {
	margin-block-start: var(--space-md);
	font-size: var(--font-size-card-body);
	line-height: var(--line-height-card-body);
}

.related-activities {
	margin-block-start: clamp(3.5rem, 8vw, 7rem);
}

.related-activities__title {
	max-width: 14ch;
	margin-block-start: var(--space-eyebrow-title);
	font-size: clamp(1.875rem, 6vw, 2.5rem);
}

.related-activities__list {
	display: grid;
	gap: var(--space-lg);
	margin-block-start: var(--space-xl);
}

.related-activity-card {
	position: relative;
	overflow: hidden;
	border: 0;
	border-radius: var(--radius-md);
	background-color: var(--color-white);
	box-shadow: var(--shadow-sm);
	cursor: pointer;
	transition: box-shadow var(--transition-fast), transform var(--transition-fast);
}

.related-activity-card:hover,
.related-activity-card:focus-within {
	box-shadow: var(--shadow-sm);
	transform: translateY(-0.1875rem);
}

.related-activity-card__media {
	display: block;
	margin: 0;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background-color: var(--color-surface-muted);
}

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

.related-activity-card:hover .related-activity-card__media img,
.related-activity-card:focus-within .related-activity-card__media img {
	transform: scale(1.025);
}

.related-activity-card__content {
	padding: var(--space-lg);
}

.related-activity-card__category {
	color: var(--color-accent-strong);
	font-size: var(--font-size-eyebrow);
	font-weight: 400;
	letter-spacing: var(--letter-spacing-label);
	text-transform: uppercase;
}

.related-activity-card h3 {
	margin-block-start: var(--space-xs);
	font-size: 1.25rem;
}

.related-activity-card__address {
	margin-block-start: var(--space-sm);
	font-size: var(--font-size-meta);
}

.related-activity-card__link::before {
	position: absolute;
	inset: 0;
	z-index: 1;
	content: "";
}

.related-activity-card:focus-within {
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
}

.activity-archive-card :is(button, input, select, textarea, [data-card-action]),
.event-card :is(button, input, select, textarea, [data-card-action]),
.related-activity-card :is(button, input, select, textarea, [data-card-action]) {
	position: relative;
	z-index: 2;
}

@media (min-width: 48rem) {
	.activity-hero__actions {
		display: flex;
		flex-wrap: wrap;
	}

	.activity-hero__actions .button {
		width: auto;
	}

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

@media (min-width: 64rem) {
	.activity-page {
		padding-block-start: var(--space-xl);
	}

	.activity-page__topbar {
		margin-block-end: clamp(2rem, 5vw, 4rem);
	}

	.activity-page__brand {
		width: 9rem;
	}

	.activity-hero {
		grid-template-columns: minmax(0, 0.82fr) minmax(25rem, 1.18fr);
		gap: clamp(3rem, 8vw, 8rem);
		align-items: center;
	}

	.activity-hero__media {
		order: 0;
	}

	.activity-hero__image,
	.activity-hero__placeholder {
		aspect-ratio: 4 / 5;
	}

	.activity-hero__title {
		font-size: clamp(3.75rem, 5.8vw, 6rem);
	}

	.activity-page__body {
		grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.36fr);
		gap: clamp(3rem, 8vw, 8rem);
		align-items: start;
	}

	.activity-details {
		position: sticky;
		top: var(--space-lg);
	}

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

/* --------------------------------------------------------------------------
 * Single activity — editorial layout
 * -------------------------------------------------------------------------- */

.activity-page {
	padding-block: var(--space-md) clamp(3.5rem, 7vw, 6rem);
}

.activity-page__topbar {
	margin-block-end: clamp(1.75rem, 4vw, 3.25rem);
}

.activity-hero {
	display: block;
}

.activity-hero__media {
	overflow: hidden;
	border-radius: var(--radius-lg);
	background-color: var(--color-surface-muted);
}

.activity-hero__image,
.activity-hero__placeholder {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.activity-hero__content {
	width: 100%;
	min-width: 0;
	max-width: 48rem;
	padding-block-start: clamp(1.75rem, 4vw, 3.5rem);
}

.activity-video--hero {
	width: 100%;
	min-width: 0;
}

.activity-hero__terms {
	gap: 0.375rem;
	margin-block-end: var(--space-sm);
}

.activity-hero__terms li {
	padding: 0;
	border: 0;
	color: var(--color-accent-strong);
	font-size: var(--font-size-eyebrow);
}

.activity-hero__terms li + li::before {
	margin-inline-end: 0.375rem;
	color: var(--color-ink-muted);
	content: "·";
}

.activity-hero__title {
	max-width: 13ch;
	font-size: clamp(2.5rem, 9vw, 4.25rem);
	line-height: 0.98;
}

.activity-hero__excerpt {
	max-width: 38rem;
	margin-block-start: var(--space-md);
	font-size: clamp(1.0625rem, 2.3vw, 1.25rem);
	line-height: 1.55;
}

.activity-hero__location {
	margin-block-start: var(--space-sm);
	color: var(--color-ink-muted);
	font-weight: 600;
}

.activity-hero__actions {
	margin-block-start: var(--space-lg);
}

.activity-page__content {
	display: grid;
	gap: clamp(3.5rem, 7vw, 6rem);
	margin-block-start: clamp(3.5rem, 8vw, 6.5rem);
}

.activity-story {
	max-width: 45rem;
}

.activity-story__header {
	margin-block-end: var(--space-md);
}

.activity-story__title,
.activity-gallery__title,
.activity-details__title,
.related-activities__title {
	font-size: clamp(1.75rem, 4.5vw, 2.5rem);
	line-height: 1.06;
}

.activity-story__content {
	max-width: 42rem;
	font-size: 1rem;
	line-height: 1.7;
}

.activity-story__content > * + * {
	margin-block-start: var(--space-md);
}

.activity-gallery__header {
	max-width: 36rem;
	margin-block-end: var(--space-lg);
}

.activity-gallery__title {
	max-width: 16ch;
	margin-block-start: var(--space-eyebrow-title);
}

.activity-gallery__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
}

.activity-gallery__item:first-child {
	grid-column: 1 / -1;
}

.activity-gallery__link {
	display: block;
	overflow: hidden;
	border-radius: var(--radius-md);
	background-color: var(--color-surface-muted);
}

.activity-gallery__link:focus-visible {
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
}

.activity-gallery__image {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.activity-gallery__item:first-child .activity-gallery__image {
	aspect-ratio: 16 / 10;
}

.activity-details {
	display: grid;
	gap: var(--space-md);
	position: static;
	max-width: 56rem;
}

.activity-details__group {
	padding: clamp(1.25rem, 3vw, 1.75rem);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm);
}

.activity-details__title {
	max-width: 18ch;
	margin-block-start: var(--space-eyebrow-title);
}

.activity-details__subtitle {
	font-size: clamp(1.25rem, 3vw, 1.5rem);
}

.activity-details__contacts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
	margin-block-start: var(--space-lg);
}

.activity-details__contact {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-width: 0;
	color: var(--color-ink);
	font-size: var(--font-size-meta);
	font-weight: 400;
}

.activity-details__contact--address {
	flex-basis: 100%;
}

.activity-details__contact address {
	display: grid;
	font-style: normal;
}

.activity-details__phones {
	display: grid;
	gap: 0.375rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.activity-details__phone {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.5rem;
}

.activity-details__phone-label {
	color: var(--color-text-secondary);
	font-weight: 600;
}

.activity-details__contact a {
	color: var(--color-ink);
	text-decoration-color: rgb(29 25 21 / 25%);
}

.activity-details__contact a:hover {
	color: var(--color-accent-strong);
	text-decoration-color: currentcolor;
}

.activity-details__icon,
.activity-details__icon-link,
.activity-details__socials a {
	display: inline-grid;
	flex: 0 0 auto;
	width: 2.25rem;
	height: 2.25rem;
	border: 0.0625rem solid rgb(29 25 21 / 12%);
	border-radius: 50%;
	background-color: var(--color-surface);
	color: var(--color-accent-strong);
	place-items: center;
}

.activity-details__icon {
	width: 1.875rem;
	height: 1.875rem;
	border: 0;
	background: transparent;
	color: var(--color-accent-strong);
}

.activity-details__icon-link:hover,
.activity-details__socials a:hover {
	border-color: var(--color-primary);
	background-color: var(--color-primary);
	color: var(--color-white);
}

.activity-details__socials a:hover {
	border-color: rgb(78 87 58 / 42%);
	background-color: var(--color-surface);
	color: var(--color-primary-hover);
}

.activity-icon {
	width: 1rem;
	height: 1rem;
	fill: none;
	stroke: currentcolor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.activity-details__price {
	margin-block-start: var(--space-sm);
}

.activity-details__socials {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-block-start: var(--space-md);
}

.activity-details__socials a {
	color: var(--color-accent-strong);
}

.activity-details__highlights {
	max-width: 46rem;
	margin-block-start: var(--space-md);
	color: var(--color-ink);
	font-size: 1rem;
	line-height: 1.6;
}

.activity-details__terms {
	margin-block-start: var(--space-md);
}

.related-activities {
	margin-block-start: clamp(3.5rem, 7vw, 6rem);
}

.related-activities__list {
	margin-block-start: var(--space-lg);
}

.activity-lightbox {
	position: fixed;
	z-index: 1000;
	inset: 0;
	display: grid;
	padding: clamp(1rem, 4vw, 3rem);
	place-items: center;
}

.activity-lightbox__backdrop {
	position: absolute;
	inset: 0;
	background-color: var(--color-overlay-strong);
}

.activity-lightbox__dialog {
	position: relative;
	z-index: 1;
	display: grid;
	width: min(100%, 75rem);
	max-height: 100%;
	outline: none;
}

.activity-lightbox__figure {
	display: grid;
	max-height: calc(100svh - 2rem);
	margin: 0;
	place-items: center;
}

.activity-lightbox__image {
	max-width: 100%;
	max-height: calc(100svh - 2rem);
	border-radius: var(--radius-sm);
	object-fit: contain;
}

.activity-lightbox__close,
.activity-lightbox__control {
	position: absolute;
	z-index: 2;
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	border: 0;
	border-radius: 50%;
	background-color: var(--color-white);
	color: var(--color-ink);
	box-shadow: var(--shadow-sm);
	font-size: 1.5rem;
	place-items: center;
}

.activity-lightbox__close {
	top: 0.75rem;
	right: 0.75rem;
}

.activity-lightbox__control {
	top: 50%;
	transform: translateY(-50%);
}

.activity-lightbox__control--previous {
	left: 0.75rem;
}

.activity-lightbox__control--next {
	right: 0.75rem;
}

.has-activity-lightbox-open {
	overflow: hidden;
}

@media (min-width: 48rem) {
	.activity-hero__actions {
		display: flex;
		flex-wrap: wrap;
	}

	.activity-hero__actions .button {
		width: auto;
	}

	.activity-gallery__grid {
		grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr) minmax(0, 1fr);
	}

	.activity-gallery__item:first-child {
		grid-row: span 2;
		grid-column: auto;
	}

	.activity-gallery__item:first-child .activity-gallery__image,
	.activity-gallery__image {
		aspect-ratio: 1 / 1;
	}

	.activity-gallery__item:nth-child(n + 4) {
		grid-column: span 1;
	}
}

@media (min-width: 64rem) {
	.activity-page {
		padding-block-start: var(--space-lg);
	}

	.activity-page__brand {
		width: 8.5rem;
	}

	.activity-hero__image,
	.activity-hero__placeholder {
		aspect-ratio: 16 / 7;
	}

	.activity-hero__content {
		padding-inline-start: clamp(2rem, 7vw, 7rem);
	}

	.activity-hero__title {
		font-size: clamp(3.5rem, 5.8vw, 5.75rem);
	}

	.activity-page__content {
		max-width: 68rem;
	}

	.activity-details {
		grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.65fr);
		align-items: stretch;
	}

	.activity-details__group {
		display: flex;
		flex-direction: column;
	}

}

@media (prefers-reduced-motion: no-preference) {
	.activity-gallery__image {
		transition: transform 220ms ease;
	}

.activity-gallery__link:hover .activity-gallery__image {
	transform: scale(1.025);
}

.activity-gallery__link:hover {
	box-shadow: inset 0 0 0 0.125rem var(--color-accent-strong);
}
}

/* --------------------------------------------------------------------------
 * Single activity — final editorial refinement
 * -------------------------------------------------------------------------- */

.activity-hero__image,
.activity-hero__placeholder {
	aspect-ratio: 16 / 9;
}

.activity-hero__content {
	max-width: 46rem;
	padding-inline-start: 0;
}

.activity-hero__title {
	max-width: 15ch;
}

.activity-page__content {
	gap: clamp(3rem, 6vw, 5rem);
	margin-block-start: clamp(3rem, 6vw, 5.5rem);
}

.activity-story {
	max-width: 43rem;
}

.activity-story__content {
	font-size: clamp(1rem, 1.3vw, 1.125rem);
	line-height: 1.72;
}

.activity-video,
.activity-gallery {
	max-width: 68rem;
}

.activity-video__header,
.activity-gallery__header {
	margin-block-end: var(--space-md);
}

.activity-video__title,
.activity-gallery__title,
.activity-highlights__title {
	max-width: 17ch;
	margin-block-start: var(--space-eyebrow-title);
	font-size: clamp(1.625rem, 3.5vw, 2.375rem);
	line-height: 1.08;
}

.activity-video__frame {
	overflow: hidden;
	aspect-ratio: 16 / 9;
	border-radius: var(--radius-lg);
	background-color: var(--color-ink);
}

.activity-video__frame iframe {
	width: 100%;
	height: 100%;
	border: 0;
}

.activity-gallery__grid {
	grid-template-columns: 1fr;
	gap: 0.625rem;
}

.activity-gallery__item:first-child {
	grid-column: auto;
}

.activity-gallery__image,
.activity-gallery__item:first-child .activity-gallery__image {
	aspect-ratio: 16 / 10;
}

.activity-highlights {
	max-width: 46rem;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border: 0.0625rem solid var(--color-border);
	border-radius: var(--radius-lg);
	background: var(--color-white);
	box-shadow: var(--shadow-sm);
}

.activity-highlights .section-eyebrow {
	color: var(--color-accent-strong);
}

.activity-highlights__content {
	margin-block-start: var(--space-md);
	font-size: clamp(1rem, 1.5vw, 1.125rem);
	line-height: 1.65;
}

.activity-details {
	gap: 0.75rem;
	max-width: 58rem;
}

.activity-details__group {
	padding: clamp(1.125rem, 3vw, 1.5rem);
	box-shadow: none;
}

.activity-details__title {
	font-size: clamp(1.375rem, 3vw, 1.75rem);
}

.activity-details__contacts {
	gap: 0.625rem 0.875rem;
	margin-block-start: var(--space-md);
}

.activity-details__icon,
.activity-details__icon-link,
.activity-details__socials a {
	width: 2rem;
	height: 2rem;
}

.activity-details__icon {
	width: 1.625rem;
	height: 1.625rem;
}

.related-activities {
	margin-block-start: clamp(3rem, 6vw, 5.5rem);
}

.related-activities__header {
	display: grid;
	gap: var(--space-xs);
	max-width: 36rem;
}

.related-activities__list {
	gap: var(--space-md);
	margin-block-start: var(--space-lg);
}

.related-activity-card {
	border-color: rgb(29 25 21 / 7%);
	box-shadow: none;
}

.related-activity-card__content {
	padding: var(--space-md);
}

@media (min-width: 48rem) {
	.activity-gallery__grid {
		grid-template-columns: minmax(0, 1.6fr) repeat(2, minmax(0, 0.8fr));
		grid-auto-rows: clamp(9rem, 16vw, 13rem);
	}

	.activity-gallery__item:first-child {
		grid-row: span 2;
	}

	.activity-gallery__item:first-child .activity-gallery__image,
	.activity-gallery__image {
		height: 100%;
		aspect-ratio: auto;
	}
}

@media (min-width: 64rem) {
	.activity-hero__image,
	.activity-hero__placeholder {
		aspect-ratio: 16 / 9;
	}

	.activity-hero__content {
		padding-inline-start: 0;
	}

	.activity-hero__title {
		font-size: clamp(3.25rem, 5.2vw, 5.25rem);
	}

	.activity-details {
		grid-template-columns: minmax(0, 1.25fr) minmax(16rem, 0.75fr);
	}
}

/* --------------------------------------------------------------------------
 * Single activity — location reference layout
 * -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
 * Single activity — official composition reference
 * -------------------------------------------------------------------------- */

.activity-page {
	padding-block: 0 clamp(4rem, 7vw, 7.5rem);
}

.activity-page__topbar {
	min-height: clamp(5.5rem, 9vw, 7.5rem);
	margin-block-end: 0;
}

.activity-page__brand {
	width: clamp(8.5rem, 13vw, 11.5rem);
}

.activity-hero__media {
	border-radius: 0;
}

.activity-hero__image,
.activity-hero__placeholder {
	aspect-ratio: auto;
	height: clamp(16rem, 29vw, 37rem);
}

.activity-hero__content {
	width: min(100% - (var(--container-padding) * 2), var(--container-max-width));
	max-width: var(--container-max-width);
	padding-block: clamp(1.5rem, 3vw, 2.5rem) 0;
	margin-inline: auto;
}

.activity-hero__terms {
	margin-block-end: var(--space-sm);
}

.activity-hero__terms li {
	display: none;
	padding: 0.3125rem 0.75rem;
	border: 0.03125rem solid var(--color-accent);
	border-radius: var(--radius-pill);
	color: var(--color-accent-strong);
	font-size: var(--font-size-eyebrow);
	letter-spacing: var(--letter-spacing-label);
}

.activity-hero__terms li:first-child {
	display: block;
}

.activity-hero__terms li + li::before {
	content: none;
}

.activity-hero__title {
	max-width: 18ch;
	font-size: clamp(2.75rem, 6.5vw, 5.25rem);
	letter-spacing: 0.06em;
	line-height: 0.96;
}

.activity-hero__excerpt {
	max-width: 36rem;
	margin-block-start: var(--space-md);
	font-size: clamp(0.9375rem, 1.45vw, 1.125rem);
	line-height: 1.55;
}

.activity-hero__location {
	display: flex;
	align-items: flex-start;
	gap: 0.375rem;
	margin-block-start: var(--space-md);
	color: var(--color-ink);
	font-size: var(--font-size-meta);
	font-weight: 400;
}

.activity-hero__location-icon {
	flex: 0 0 auto;
	color: var(--color-accent-strong);
}

.activity-hero__location-icon .activity-icon {
	width: 0.9375rem;
	height: 0.9375rem;
}

.activity-hero__actions {
	gap: 0.625rem;
	margin-block-start: var(--space-md);
}

.activity-hero__actions .button {
	min-height: 2.625rem;
	padding-inline: 1.25rem;
	font-size: var(--font-size-action);
}

.activity-page__content {
	gap: clamp(2.5rem, 5vw, 4.5rem);
	max-width: none;
	margin-block-start: clamp(2.5rem, 5vw, 4.5rem);
}

.activity-editorial {
	display: grid;
	gap: var(--space-xl);
}

.activity-story {
	max-width: none;
}

.activity-story__header {
	margin-block-end: var(--space-md);
}

.activity-story__title {
	max-width: 14ch;
	font-size: clamp(1.5rem, 3vw, 2rem);
	line-height: 1.1;
}

.activity-story__content {
	max-width: 29rem;
	font-size: clamp(0.875rem, 1.15vw, 1rem);
	line-height: 1.62;
}

.activity-story__content > * + * {
	margin-block-start: var(--space-sm);
}

.activity-video {
	max-width: none;
}

.activity-gallery {
	max-width: none;
}

.activity-gallery__header {
	display: none;
}

.activity-gallery__grid {
	gap: 0.5rem;
}

.activity-gallery__link {
	border-radius: var(--radius-sm);
}

.activity-gallery__all {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	padding: 0.625rem 1.125rem;
	margin: var(--space-md) auto 0;
	border: 0.0625rem solid var(--color-accent-strong);
	border-radius: var(--radius-pill);
	background-color: transparent;
	color: var(--color-accent-strong);
	font-size: var(--font-size-action);
	font-weight: 600;
}

.activity-gallery__all:hover {
	background-color: var(--color-accent-strong);
	color: var(--color-white);
}

.activity-details,
.activity-highlights {
	max-width: none;
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	border: 0.0625rem solid rgb(29 25 21 / 12%);
	border-radius: var(--radius-md);
	background: var(--color-white);
	box-shadow: none;
}

.activity-details {
	display: block;
}

.activity-details__group {
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.activity-details__group + .activity-details__group {
	padding-block-start: var(--space-lg);
	margin-block-start: var(--space-lg);
	border-top: 0.0625rem solid rgb(29 25 21 / 10%);
}

.activity-details__title,
.activity-details__subtitle {
	margin-block-start: var(--space-eyebrow-title);
	font-size: 1rem;
	line-height: 1.2;
}

.activity-details__contacts {
	display: grid;
	gap: 0.75rem;
	margin-block-start: var(--space-md);
}

.activity-details__contact {
	font-size: var(--font-size-action);
}

.activity-details__contact--address {
	align-items: flex-start;
}

.activity-details__icon,
.activity-details__icon-link,
.activity-details__socials a {
	width: 1.875rem;
	height: 1.875rem;
}

.activity-details__icon {
	color: var(--color-accent-strong);
}

.activity-details__price {
	font-size: var(--font-size-action);
}

.activity-details__socials {
	margin-block-start: var(--space-lg);
}

.activity-highlights {
	background: var(--color-white);
	border-color: var(--color-accent);
}

.activity-highlights .section-eyebrow {
	margin-block-end: var(--space-md);
}

.activity-highlights__list {
	display: grid;
	gap: 0.875rem;
}

.activity-highlights__list li {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
	color: var(--color-ink);
	font-size: var(--font-size-action);
	font-weight: 400;
	line-height: 1.45;
}

.activity-highlights__symbol {
	display: grid;
	flex: 0 0 auto;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
	background-color: var(--color-surface-muted);
	color: var(--color-accent-strong);
	font-size: 0.75rem;
	place-items: center;
}

.related-activities {
	margin-block-start: clamp(3rem, 6vw, 5rem);
}

.related-activities__header {
	max-width: none;
}

.related-activities__title {
	display: none;
}

.related-activities__list {
	gap: var(--space-lg);
	margin-block-start: var(--space-md);
}

.related-activity-card {
	display: grid;
	grid-template-columns: 5rem minmax(0, 1fr);
	gap: var(--space-sm);
	overflow: visible;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.related-activity-card__media {
	aspect-ratio: 1;
	border-radius: var(--radius-sm);
}

.related-activity-card__content {
	align-self: center;
	padding: 0;
}

.related-activity-card h3 {
	font-size: 1rem;
	line-height: 1.15;
}

.related-activity-card__category,
.related-activity-card__address {
	font-size: 0.6875rem;
}

.related-activities__footer {
	display: flex;
	justify-content: flex-end;
	margin-block-start: var(--space-lg);
}

@media (min-width: 48rem) {
	.activity-hero__actions {
		display: flex;
	}

	.activity-editorial:not(:has(.activity-video)) {
		grid-template-columns: minmax(13rem, 0.78fr) minmax(0, 1.22fr);
		gap: clamp(2rem, 5vw, 4rem);
		align-items: start;
	}

	.activity-editorial:not(:has(.activity-video)) .activity-gallery {
		margin-block-start: 0;
	}

	.activity-gallery__grid {
		grid-template-columns: minmax(0, 1.55fr) repeat(2, minmax(0, 0.72fr));
		grid-auto-rows: clamp(6rem, 9vw, 9rem);
	}

	.activity-gallery__item:first-child {
		grid-row: span 2;
	}

	.activity-gallery__item:first-child .activity-gallery__image,
	.activity-gallery__image {
		height: 100%;
		aspect-ratio: auto;
	}

	.activity-page__content {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		column-gap: var(--space-md);
	}

	.activity-editorial {
		grid-column: 1 / -1;
	}

	.activity-details {
		grid-column: 1;
	}

	.activity-highlights {
		grid-column: 2;
	}

	.related-activities__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--space-md);
	}
}

@media (min-width: 64rem) {
	.activity-hero__title {
		font-size: clamp(3.5rem, 5.4vw, 5.25rem);
	}

}

/* --------------------------------------------------------------------------
 * Single activity — contained reference correction
 * -------------------------------------------------------------------------- */

.activity-hero__media {
	width: 100%;
	overflow: hidden;
	border-radius: var(--radius-lg);
}

.activity-hero__image,
.activity-hero__placeholder {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.activity-hero__image {
	object-position: center center;
}

.activity-hero__content {
	width: auto;
	max-width: 42rem;
	padding-block: clamp(1.5rem, 3vw, 2.5rem) 0;
	margin-inline: 0;
}

.activity-hero__title {
	max-width: 16ch;
}

.activity-page__content {
	margin-block-start: clamp(2.5rem, 5vw, 4rem);
}

.activity-editorial {
	gap: clamp(2rem, 4vw, 3.5rem);
}

.activity-story__content {
	max-width: 30rem;
}

.activity-video__frame {
	border-radius: var(--radius-md);
}

.activity-details,
.activity-highlights {
	min-height: 100%;
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	border-color: var(--color-line);
	border-radius: var(--radius-md);
}

.related-activities {
	margin-block-start: clamp(2.5rem, 5vw, 4rem);
}

.activity-lightbox[hidden] {
	display: none !important;
	pointer-events: none;
	visibility: hidden;
}

.activity-lightbox[aria-hidden="true"] {
	pointer-events: none;
}

.activity-lightbox:not([hidden]) {
	display: grid;
	pointer-events: auto;
	visibility: visible;
}

@media (min-width: 48rem) {
	.activity-hero__image,
	.activity-hero__placeholder {
		aspect-ratio: 17 / 5;
	}

	.activity-hero__content {
		padding-block-start: clamp(1.75rem, 3vw, 2.75rem);
	}

	.activity-editorial:not(:has(.activity-video)) {
		grid-template-columns: minmax(15rem, 0.72fr) minmax(0, 1.28fr);
		gap: clamp(2rem, 4vw, 3.5rem);
	}

	.activity-gallery__grid {
		grid-auto-rows: clamp(6.5rem, 9vw, 10rem);
	}

	.activity-page__content {
		row-gap: clamp(2rem, 4vw, 3rem);
	}
}

@media (min-width: 64rem) {
	.activity-hero__content {
		padding-inline-start: 0;
	}

	.activity-hero__title {
		font-size: clamp(3.25rem, 5.2vw, 5rem);
	}

}

/* --------------------------------------------------------------------------
 * Single activity — compact title and video reference
 * -------------------------------------------------------------------------- */

.activity-page__topbar {
	min-height: clamp(5.5rem, 8vw, 6.5rem);
	margin-block-end: clamp(1.5rem, 3vw, 2.5rem);
}

.activity-page__brand {
	width: clamp(6.5rem, 10vw, 8rem);
}

.activity-hero__intro {
	display: grid;
	gap: clamp(1.5rem, 4vw, 2.5rem);
	margin-block-start: clamp(1.5rem, 3vw, 2.5rem);
}

.activity-hero__content {
	padding-block: 0;
}

.activity-hero__location {
	margin-block-start: var(--space-sm);
}

.activity-hero__excerpt {
	margin-block-start: var(--space-md);
}

.activity-hero__actions {
	margin-block-start: var(--space-lg);
}

.activity-video--hero {
	width: 100%;
	max-width: none;
	margin: 0;
}

.activity-video--hero .activity-video__frame {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	aspect-ratio: 16 / 9;
	border-radius: var(--radius-lg);
}

.activity-editorial {
	gap: clamp(2.5rem, 5vw, 4rem);
}

.activity-gallery__grid {
	align-items: stretch;
}

.activity-gallery__item,
.activity-gallery__link,
.activity-gallery__image {
	min-width: 0;
}

.activity-gallery__item:nth-child(n + 6) {
	display: none;
}

.activity-gallery__all {
	position: static;
	clear: both;
	margin-block: var(--space-lg) var(--space-2xl);
}

@media (min-width: 48rem) {
	.activity-hero__intro {
		grid-template-columns: minmax(0, 0.94fr) minmax(20rem, 1.06fr);
		align-items: start;
	}

	.activity-hero__intro:not(:has(.activity-video)) {
		grid-template-columns: minmax(0, 1fr);
	}

	.activity-video--hero .activity-video__frame {
		min-height: 0;
	}

	.activity-editorial:not(:has(.activity-video)) {
		grid-template-columns: minmax(15rem, 0.72fr) minmax(0, 1.28fr);
	}

	.activity-gallery__grid {
		grid-auto-rows: clamp(6.5rem, 9vw, 9.5rem);
	}

	.activity-details,
	.activity-highlights {
		align-self: stretch;
	}
}

@media (min-width: 48rem) and (max-width: 63.9375rem) {
	.activity-hero__intro {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (min-width: 64rem) {
	.activity-hero__intro {
		gap: clamp(4rem, 5vw, 4.5rem);
	}

	.activity-page__topbar {
		margin-block-end: clamp(2rem, 3vw, 3rem);
	}

	.activity-page__brand {
		width: 7.25rem;
	}

	.activity-video--hero .activity-video__frame {
		min-height: 17.125rem;
	}
}

/* --------------------------------------------------------------------------
 * Single activity — stable desktop gallery grid
 * -------------------------------------------------------------------------- */

.activity-gallery__link,
.activity-gallery__image {
	display: block;
	width: 100%;
	height: 100%;
}

.activity-gallery__image {
	object-fit: cover;
	object-position: center;
}

@media (min-width: 48rem) and (max-width: 63.9375rem) {
	.activity-gallery__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: none;
		aspect-ratio: auto;
	}

	.activity-gallery__item:first-child {
		grid-column: 1 / -1;
		grid-row: auto;
	}

	.activity-gallery__item:first-child .activity-gallery__image {
		aspect-ratio: 16 / 10;
	}

	.activity-gallery__image {
		aspect-ratio: 1 / 1;
	}
}

@media (min-width: 64rem) {
	.activity-gallery__grid {
		display: grid;
		grid-template-columns: minmax(0, 1.55fr) repeat(2, minmax(0, 0.75fr));
		grid-template-rows: repeat(2, minmax(0, 1fr));
		gap: 0.625rem;
		aspect-ratio: 2.05 / 1;
	}

	.activity-gallery__item {
		min-height: 0;
	}

	.activity-gallery__item:first-child {
		grid-column: 1;
		grid-row: 1 / span 2;
	}

	.activity-gallery__link,
	.activity-gallery__image,
	.activity-gallery__item:first-child .activity-gallery__image {
		aspect-ratio: auto;
	}

	.activity-gallery__grid:has(.activity-gallery__item:only-child) {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: minmax(0, 1fr);
		aspect-ratio: 16 / 9;
	}

	.activity-gallery__grid:has(.activity-gallery__item:nth-child(2)):not(:has(.activity-gallery__item:nth-child(3))) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: minmax(0, 1fr);
		aspect-ratio: 2 / 1;
	}

	.activity-gallery__grid:has(.activity-gallery__item:nth-child(2)):not(:has(.activity-gallery__item:nth-child(3))) .activity-gallery__item:first-child {
		grid-column: auto;
		grid-row: auto;
	}

	.activity-gallery__grid:has(.activity-gallery__item:nth-child(3)):not(:has(.activity-gallery__item:nth-child(4))) {
		grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
		grid-template-rows: repeat(2, minmax(0, 1fr));
		aspect-ratio: 1.85 / 1;
	}

	.activity-gallery__grid:has(.activity-gallery__item:nth-child(3)):not(:has(.activity-gallery__item:nth-child(4))) .activity-gallery__item:first-child {
		grid-column: 1;
		grid-row: 1 / span 2;
	}

	.activity-gallery__grid:has(.activity-gallery__item:nth-child(4)):not(:has(.activity-gallery__item:nth-child(5))) {
		grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
		grid-template-rows: repeat(2, minmax(0, 1fr));
		aspect-ratio: 1.85 / 1;
	}

	.activity-gallery__grid:has(.activity-gallery__item:nth-child(4)):not(:has(.activity-gallery__item:nth-child(5))) .activity-gallery__item:first-child {
		grid-column: 1;
		grid-row: 1 / span 2;
	}
}

/* --------------------------------------------------------------------------
 * Homepage content carousels
 * -------------------------------------------------------------------------- */

.activities-section,
.events-section {
	padding-block: clamp(4rem, 8vw, 7rem);
}

.activities-section__container,
.events-section__container {
	width: min(100% - (2 * var(--container-padding)), var(--container-max-width));
	margin-inline: auto;
}

.activities-section__header,
.events-section__header {
	max-width: 32rem;
	margin-block-end: var(--space-xl);
}

.activities-section__header .section-title,
.events-section__header .section-title {
	margin-block-start: var(--space-eyebrow-title);
}

.activities-section__viewport,
.events-section__viewport {
	overflow-x: auto;
	overflow-y: hidden;
	padding-block: 0.25rem var(--space-md);
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-color: var(--color-border) transparent;
	scrollbar-width: thin;
	touch-action: pan-x pan-y;
}

.activities-section__viewport:focus-visible,
.events-section__viewport:focus-visible {
	border-radius: var(--radius-lg);
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.25rem;
}

.activities-section__viewport::-webkit-scrollbar,
.events-section__viewport::-webkit-scrollbar {
	height: 0.5rem;
}

.activities-section__viewport::-webkit-scrollbar-thumb,
.events-section__viewport::-webkit-scrollbar-thumb {
	border-radius: var(--radius-pill);
	background-color: var(--color-border);
}

.activities-section__carousel,
.events-section__carousel {
	display: flex;
	align-items: stretch;
	gap: var(--space-lg);
	width: max-content;
}

.activities-section__item,
.events-section__item {
	display: flex;
	flex: 0 0 82vw;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

.activities-section__item .activity-archive-card {
	width: 100%;
}

.activities-section__viewport {
	padding-block: 0.5rem var(--space-md);
}

.activities-section .activity-archive-card,
.activities-section .activity-archive-card:hover {
	box-shadow: none;
	transform: none;
}

.events-section__item .event-card {
	width: 100%;
}

.activities-section__footer,
.events-section__footer {
	display: flex;
	justify-content: center;
	margin-block-start: var(--space-xl);
}

@media (min-width: 48rem) {
	.activities-section__item,
	.events-section__item {
		flex-basis: min(44vw, 21rem);
	}
}

@media (min-width: 64rem) {
	.activities-section__viewport {
		--activities-viewport-gutter: clamp(3rem, 4vw, 4rem);
		--activities-viewport-breakout: max(
			0rem,
			calc(
				(100vw - var(--container-max-width)) / 2
				- var(--activities-viewport-gutter)
			)
		);

		width: calc(
			100% + var(--activities-viewport-breakout) + var(--activities-viewport-breakout)
		);
		margin-inline: calc(0rem - var(--activities-viewport-breakout));
	}

	.activities-section__item,
	.events-section__item {
		flex-basis: min(30vw, 24rem);
	}
}

/* Homepage featured event */

.events-section--featured {
	background-color: var(--color-surface-warm);
}

.featured-event {
	display: grid;
	align-items: center;
	gap: clamp(2rem, 6vw, 5rem);
}

.featured-event__content {
	max-width: 44rem;
}

.featured-event__title {
	margin-block-start: var(--space-eyebrow-title);
	color: var(--color-primary);
	font-size: clamp(2.25rem, 5vw, 3.5rem);
	line-height: 1.08;
	text-wrap: balance;
}

.featured-event__schedule {
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem 1rem;
	margin-block-start: var(--space-md);
	color: var(--color-accent-strong);
	font-size: var(--font-size-action);
	font-weight: 600;
}

.featured-event__date,
.featured-event__time {
	margin: 0;
}

.featured-event__excerpt {
	max-width: 40rem;
	margin-block-start: var(--space-md);
	color: var(--color-text-secondary);
	line-height: 1.7;
}

.featured-event__link,
.events-section__archive-link {
	min-height: 2.75rem;
	padding-block: 0.625rem;
}

.featured-event__link {
	margin-block-start: var(--space-md);
}

.featured-event__media {
	margin: 0;
	overflow: hidden;
	background-color: var(--color-surface-warm);
	border-radius: var(--radius-md);
	aspect-ratio: 16 / 9;
}

.featured-event__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.featured-event--without-media .featured-event__content {
	max-width: 52rem;
}

.events-section__footer--featured {
	justify-content: flex-start;
	margin-block-start: clamp(2rem, 4vw, 3rem);
}

@media (min-width: 68.75rem) {
	.featured-event:not(.featured-event--without-media) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.featured-event__title {
		font-size: clamp(2.5rem, 3.25vw, 3.5rem);
	}
}

/* Homepage Instagram feed */

.home-instagram {
	padding-block: clamp(4rem, 8vw, 7rem);
}

.home-instagram__container {
	width: min(100% - (2 * var(--container-padding)), var(--container-max-width));
	margin-inline: auto;
}

.home-instagram__header {
	max-width: 36rem;
}

.home-instagram__intro {
	margin-block-start: var(--space-title-lead);
	font-size: var(--font-size-lead);
	line-height: var(--line-height-lead);
}

.home-instagram__feed {
	min-width: 0;
	margin-block-start: clamp(2rem, 4vw, 3rem);
}

/* --------------------------------------------------------------------------
 * Archive hero pattern
 * -------------------------------------------------------------------------- */

.archive-shell {
	padding-block-start: var(--space-sm);
	overflow-x: clip;
	background-color: var(--color-canvas);
}

.archive-container {
	width: min(100% - (var(--container-padding) * 2), var(--container-max-width));
	margin-inline: auto;
}

.activities-archive {
	padding-block-end: clamp(3rem, 7vw, 6rem);
}

.activities-archive__topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-md);
	min-height: clamp(5.5rem, 8vw, 6.5rem);
}

.activities-archive__brand {
	display: block;
	width: clamp(6.5rem, 10vw, 7.25rem);
}

.activities-archive__brand img {
	width: 100%;
	height: auto;
}

.archive-hero {
	display: grid;
	gap: clamp(1.5rem, 4vw, 2.75rem);
	padding-block: clamp(1.5rem, 3vw, 2.75rem) clamp(1.25rem, 2vw, 1.75rem);
}

.archive-hero__eyebrow {
	margin-block-end: var(--space-eyebrow-title);
}

.archive-hero__title {
	max-width: 19ch;
	font-family: var(--font-family-display);
	font-size: clamp(2.5rem, 6vw, 4.5rem);
	letter-spacing: 0.04em;
	line-height: 0.98;
}

.archive-hero__intro {
	max-width: 39rem;
	margin-block-start: var(--space-md);
	font-size: var(--font-size-lead);
	line-height: var(--line-height-lead);
}

.activities-archive__results {
	color: var(--color-secondary);
	font-size: var(--font-size-meta);
	font-weight: 400;
}

.archive-hero__visual {
	margin: 0;
	height: clamp(18rem, 62vw, 32rem);
	overflow: hidden;
	border-radius: var(--radius-md);
	background-color: var(--color-surface-warm);
}

.archive-hero__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.archive-hero--activities .archive-hero__image {
	object-position: 50% 54%;
}

.archive-hero--events .archive-hero__image {
	object-position: 50% 46%;
}

.archive-hero--tifernum .archive-hero__image {
	object-position: 50% 50%;
}

.activities-archive__results {
	margin-block-start: var(--space-sm);
}

.activities-archive__filters {
	padding-block: var(--space-lg);
	border-block-end: 0.0625rem solid var(--color-border);
}

.activities-archive__filter-label {
	margin-block-end: var(--space-sm);
	color: var(--color-secondary);
	font-size: var(--font-size-meta);
	font-weight: 400;
}

.activities-archive__filter-list {
	display: flex;
	gap: var(--space-xs);
	overflow-x: auto;
	padding-block-end: var(--space-2xs);
	scrollbar-width: none;
}

.activities-archive__filter-list::-webkit-scrollbar {
	display: none;
}

.activities-archive__filter-list li {
	flex: 0 0 auto;
}

.activities-archive__filter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.5rem;
	padding: 0.4375rem 0.875rem;
	border: 0.0625rem solid var(--color-border);
	border-radius: var(--radius-pill);
	background-color: var(--color-surface);
	color: var(--color-text-primary);
	font-size: var(--font-size-action);
	font-weight: 600;
	text-decoration: none;
	transition: background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast);
}

.activities-archive__filter:hover {
	border-color: var(--color-accent-strong);
	box-shadow: 0 0 0 0.125rem var(--color-primary-soft);
	color: var(--color-accent-strong);
}

.activities-archive__filter.is-active {
	border-color: var(--color-primary);
	background-color: var(--color-primary);
	color: var(--color-white);
}

@media (max-width: 47.999rem) {
	.explore-paths__list,
	.activities-archive__filter-list {
		flex-wrap: wrap;
		overflow-x: visible;
		scroll-snap-type: none;
	}

	.explore-paths__item,
	.activities-archive__filter-list li {
		flex: 0 1 auto;
		scroll-snap-align: none;
	}

	.explore-path,
	.activities-archive__filter {
		min-height: 2.75rem;
	}
}

.activities-archive__listing {
	padding-block: clamp(2rem, 5vw, 4rem);
}

.activities-archive__results-content {
	transition: opacity 160ms ease-out;
}

.activities-archive__listing.is-loading .activities-archive__results-content {
	opacity: 0.68;
}

.activities-archive__grid {
	display: grid;
	gap: var(--space-lg);
}

.activity-archive-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 0;
	border-radius: var(--radius-lg);
	background-color: var(--color-surface);
	box-shadow:
		0 0.125rem 0.375rem rgb(29 25 21 / 4%),
		0 0.5rem 1.5rem rgb(29 25 21 / 7%);
	cursor: pointer;
	transition: box-shadow var(--transition-fast), transform var(--transition-fast);
}

.activity-archive-card:hover {
	box-shadow:
		0 0.1875rem 0.625rem rgb(29 25 21 / 5%),
		0 0.75rem 1.75rem rgb(29 25 21 / 9%);
	transform: translateY(-0.125rem);
}

.activity-archive-card__media {
	margin: 0;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border-radius: var(--radius-lg) var(--radius-lg) 0 0;
	background-color: var(--color-surface-warm);
}

.activity-archive-card__image,
.activity-archive-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--transition-fast);
}

.activity-archive-card:hover .activity-archive-card__image {
	transform: scale(1.025);
}

.activity-archive-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: var(--space-lg);
}

.activity-archive-card__category {
	color: var(--color-accent-strong);
	font-size: var(--font-size-eyebrow);
	font-weight: 400;
	letter-spacing: var(--letter-spacing-label);
	line-height: 1.3;
	text-transform: uppercase;
}

.activity-archive-card__title {
	margin-block-start: var(--space-xs);
	color: var(--color-primary);
	font-size: var(--font-size-card-title);
	line-height: var(--line-height-card-title);
}

.activity-archive-card__excerpt {
	margin-block-start: var(--space-sm);
	font-size: var(--font-size-card-body);
	line-height: var(--line-height-card-body);
}

.activity-archive-card__footer {
	display: grid;
	gap: var(--space-sm);
	margin-block-start: auto;
	padding-block-start: var(--space-lg);
}

.activity-archive-card__address {
	color: var(--color-text-primary);
	font-size: var(--font-size-meta);
	font-weight: 400;
	line-height: var(--line-height-meta);
}

.activity-archive-card__link {
	width: fit-content;
	font-size: var(--font-size-action);
}

.activity-archive-card__link::before {
	position: absolute;
	inset: 0;
	z-index: 1;
	content: "";
}

.activity-archive-card:hover .activity-archive-card__link::after {
	transform: translateX(0.1875rem);
}

.activity-archive-card:has(.activity-archive-card__link:focus-visible) {
	outline: 0.1875rem solid var(--color-primary);
	outline-offset: 0.25rem;
}

.activities-archive__empty {
	max-width: 42rem;
	padding: var(--space-xl);
	border: 0.0625rem solid var(--color-border);
	border-radius: var(--radius-md);
	background-color: var(--color-surface-warm);
}

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

	.activity-archive-card,
	.activity-archive-card__image,
	.cultural-place-card__image {
		transition: none;
	}

	.activity-archive-card:hover,
	.activity-archive-card:hover .activity-archive-card__image,
	.activity-archive-card:hover .activity-archive-card__link::after,
	.cultural-place-card__media-link:hover .cultural-place-card__image,
	.cultural-place-card__media-link:focus-visible .cultural-place-card__image {
		transform: none;
	}
}

.activities-archive__map-cta {
	padding-block: 2.75rem;
}

.activities-archive__map-cta-content {
	width: min(100%, 42rem);
}

.activities-archive__map-cta-content::before {
	display: block;
	width: 2.75rem;
	height: 0.125rem;
	margin-block-end: 1.25rem;
	background-color: var(--color-accent-strong);
	content: "";
}

.activities-archive__map-cta-title {
	max-width: 20ch;
	margin-block-start: 0.625rem;
	color: var(--color-primary);
	font-size: clamp(2rem, 3vw, 3rem);
	line-height: 1.08;
	text-wrap: balance;
}

.activities-archive__map-cta-text {
	max-width: 38rem;
	margin-block-start: 0.875rem;
	line-height: 1.65;
}

.activities-archive__map-cta-link {
	min-height: 2.75rem;
	margin-block-start: 1.25rem;
	padding-block: 0.625rem;
}

@media (min-width: 48rem) {
	.activities-archive__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.activities-archive__map-cta {
		padding-block: 3.5rem;
	}
}

@media (min-width: 64rem) {
	.activities-archive__map-cta {
		padding-block: 4rem;
	}

	.activities-archive__map-cta-content {
		width: 62%;
	}

	.archive-hero {
		grid-template-columns: minmax(26rem, 38fr) minmax(0, 62fr);
		align-items: start;
		gap: clamp(1.25rem, 2.5vw, 2.25rem);
		padding-block: clamp(1.25rem, 2vw, 1.75rem) clamp(1rem, 1.5vw, 1.5rem);
	}

	.archive-hero__content {
		position: relative;
		z-index: 1;
		padding-block-start: clamp(0.75rem, 1.5vw, 1.5rem);
	}

	.archive-hero__title {
		max-width: 16ch;
		font-size: clamp(2.75rem, 4vw, 4rem);
		letter-spacing: 0.035em;
		line-height: 0.95;
	}

	.archive-hero__intro {
		max-width: 34rem;
		margin-block-start: var(--space-md);
	}

	.archive-hero__visual {
		--archive-hero-visual-breakout: max(calc((100vw - var(--container-max-width)) / 2), var(--container-padding));

		align-self: start;
		width: calc(100% + var(--archive-hero-visual-breakout));
		height: clamp(33rem, 40vw, 39rem);
		margin-block-start: clamp(1.75rem, 3vw, 3.25rem);
		margin-inline-end: calc(var(--archive-hero-visual-breakout) * -1);
		border-radius: var(--radius-lg) 0 0 var(--radius-lg);
	}

}

/* -------------------------------------------------------------------------- */
/* Single event                                                                */
/* -------------------------------------------------------------------------- */

.event-page {
	padding-block: clamp(1.5rem, 3vw, 3.25rem) 0;
	background: var(--color-canvas);
}

.event-page__container {
	width: min(100% - (2 * var(--space-xl)), var(--container-max-width));
	margin-inline: auto;
}

.event-page__topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-lg);
	margin-bottom: clamp(2rem, 4vw, 4rem);
}

.event-page__brand {
	display: inline-flex;
	width: clamp(5.5rem, 9vw, 8.5rem);
}

.event-page__brand img {
	display: block;
	width: 100%;
	height: auto;
}

.event-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: clamp(26rem, 38vw, 35rem);
	overflow: hidden;
	border-radius: var(--radius-lg);
	background: var(--color-primary);
	isolation: isolate;
}

.event-hero__image,
.event-hero__overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.event-hero__image {
	display: block;
	object-fit: cover;
	object-position: center;
	z-index: -2;
}

.event-hero__overlay {
	background: rgb(29 25 21 / 0.52);
	z-index: -1;
}

.event-hero--without-image .event-hero__overlay {
	background: rgb(78 87 58 / 0.96);
}

.event-hero__content {
	width: min(100%, 48rem);
	padding: clamp(1.5rem, 4vw, 3.5rem);
	color: var(--color-surface);
}

.event-hero__meta,
.event-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem 0.85rem;
}

.event-hero__status,
.event-card__status {
	margin: 0;
	padding: 0.35rem 0.65rem;
	border: 1px solid currentColor;
	border-radius: var(--radius-pill);
	font-size: var(--font-size-eyebrow);
	font-weight: 400;
	letter-spacing: 0.06em;
	line-height: 1.1;
	text-transform: uppercase;
}

.event-hero__date {
	margin: 0;
	color: var(--color-white);
	font-size: var(--font-size-action);
	font-weight: 600;
}

.event-hero__status {
	border-color: rgb(255 255 255 / 0.72);
	background: rgb(29 25 21 / 0.3);
	color: var(--color-white);
	font-weight: 600;
}

.event-hero__title {
	max-width: 14ch;
	margin-block: var(--space-md);
	color: inherit;
	font-size: clamp(2.875rem, 4.25vw, 4rem);
	line-height: 0.98;
}

.event-hero__venue {
	display: flex;
	gap: 0.55rem;
	align-items: center;
	margin: 0;
	color: rgb(255 255 255 / 0.96);
	font-weight: 400;
}

.event-hero__venue .activity-icon {
	flex: 0 0 auto;
	width: 1.1rem;
	height: 1.1rem;
	color: currentcolor;
}

.event-hero__promoter {
	max-width: 40rem;
	margin: var(--space-md) 0 0;
	color: rgb(255 255 255 / 0.78);
	font-size: var(--font-size-action);
}

.event-information {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	gap: var(--space-lg);
	margin-block: clamp(1.75rem, 3vw, 3rem) 0;
}

.event-information__card {
	min-height: 11rem;
	padding: clamp(1.25rem, 2.5vw, 2rem);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	background: var(--color-surface);
	box-shadow: var(--shadow-sm);
}

.event-information__eyebrow {
	display: flex;
	gap: 0.55rem;
	align-items: center;
	margin: 0 0 var(--space-lg);
	color: var(--color-accent);
	font-size: var(--font-size-eyebrow);
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.event-information__eyebrow span,
.event-information__eyebrow .activity-icon {
	display: inline-grid;
	width: 1.25rem;
	height: 1.25rem;
	place-items: center;
	border-radius: 50%;
	background: var(--color-surface-warm);
	font-weight: 400;
}

.event-information__eyebrow .activity-icon {
	padding: 0.15rem;
	stroke-width: 1.8;
}

.event-information__value,
.event-information__detail {
	margin: 0;
}

.event-information__value {
	color: var(--color-primary);
	font-size: var(--font-size-lead);
	font-weight: 400;
	line-height: 1.25;
}

.event-information__detail {
	margin-top: var(--space-sm);
	color: var(--color-text-secondary);
}

.event-information__card .text-link {
	display: inline-flex;
	margin-top: var(--space-xs);
}

.event-page__editorial {
	width: min(100%, 48rem);
	margin-inline: auto;
	padding-block: clamp(3rem, 5vw, 5rem);
}

.event-page__editorial h2,
.event-section-header h2 {
	margin-block: var(--space-sm) var(--space-lg);
	color: var(--color-primary);
	font-size: clamp(2rem, 3.5vw, 3.25rem);
	line-height: 1.05;
}

.event-program {
	border-top: 1px solid var(--color-border);
	border-bottom: 1px solid var(--color-border);
}

.event-program__content,
.event-description__content {
	color: var(--color-text-primary);
	font-size: var(--font-size-lead);
	line-height: 1.7;
}

.event-program__content > :first-child,
.event-description__content > :first-child {
	margin-top: 0;
}

.event-program__content > :last-child,
.event-description__content > :last-child {
	margin-bottom: 0;
}

.event-gallery {
	margin-block: clamp(2rem, 4vw, 4rem) clamp(3.5rem, 7vw, 6rem);
}

.event-section-header {
	max-width: 44rem;
	margin-bottom: clamp(1.75rem, 4vw, 3rem);
}

.event-discover-activities,
.event-related {
	padding-block: clamp(3.5rem, 6vw, 5.5rem);
	border-top: 1px solid var(--color-border);
}

.event-discover-activities__grid,
.event-related__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-lg);
	margin: 0;
	padding: 0;
	list-style: none;
}

.event-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 0;
	border-radius: var(--radius-lg);
	background: var(--color-surface);
	box-shadow: var(--shadow-sm);
	cursor: pointer;
	transition: box-shadow var(--transition-fast), transform var(--transition-fast);
}

.event-card:hover,
.event-card:focus-within {
	box-shadow: var(--shadow-sm);
	transform: translateY(-0.1875rem);
}

.event-card__media {
	aspect-ratio: 16 / 10;
	margin: 0;
	overflow: hidden;
	background: var(--color-surface-warm);
}

.event-card__image,
.event-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--transition-fast);
}

.event-card:hover .event-card__image,
.event-card:focus-within .event-card__image {
	transform: scale(1.025);
}

.event-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	padding: var(--space-lg);
}

.event-card__meta {
	color: var(--color-accent);
	font-size: var(--font-size-eyebrow);
	font-weight: 400;
}

.event-card__status {
	padding: 0.25rem 0.45rem;
}

.event-card__title {
	margin-block: var(--space-md) var(--space-sm);
	font-size: var(--font-size-card-title);
	line-height: 1.15;
}

.event-card__venue {
	margin: 0 0 var(--space-lg);
	color: var(--color-text-secondary);
	font-size: var(--font-size-action);
}

.event-card__link {
	margin-top: auto;
}

.event-card__link::before {
	position: absolute;
	inset: 0;
	z-index: 1;
	content: "";
}

.event-card:focus-within {
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
}

.event-page__closing {
	margin-top: 0;
	padding-block: clamp(2.5rem, 3.5vw, 3.5rem) clamp(4.5rem, 6vw, 6.25rem);
	border-top: 1px solid var(--color-border);
	text-align: center;
}

.event-page__closing h2 {
	max-width: 32rem;
	margin: 0 auto var(--space-md);
	color: var(--color-primary);
	font-size: clamp(1.75rem, 2.5vw, 2.4rem);
	line-height: 1.1;
}

/* --------------------------------------------------------------------------
 * Back to top
 * -------------------------------------------------------------------------- */

.back-to-top {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 900;
	display: grid;
	width: 2.875rem;
	height: 2.875rem;
	padding: 0;
	place-items: center;
	border: 0.0625rem solid rgb(255 255 255 / 24%);
	border-radius: 50%;
	background-color: var(--color-primary);
	box-shadow: 0 0.375rem 1rem rgb(29 25 21 / 12%);
	color: var(--color-white);
	opacity: 0;
	pointer-events: none;
	transform: translateY(0.375rem);
	transition: background-color var(--transition-fast), border-color var(--transition-fast), opacity var(--transition-fast), transform var(--transition-fast), visibility var(--transition-fast);
	visibility: hidden;
}

.back-to-top.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
	visibility: visible;
}

.back-to-top:hover {
	border-color: rgb(255 255 255 / 38%);
	background-color: var(--color-primary-hover);
}

.back-to-top:focus-visible {
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
}

.back-to-top__icon {
	width: 1.25rem;
	height: 1.25rem;
	fill: none;
	stroke: currentcolor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
}

@media (min-width: 48rem) {
	.back-to-top {
		right: 1.75rem;
		bottom: 1.75rem;
	}
}

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

	.back-to-top {
		transform: none;
		transition: none;
	}
}

/* --------------------------------------------------------------------------
 * Privacy consent
 * -------------------------------------------------------------------------- */

.privacy-banner {
	position: fixed;
	right: clamp(1rem, 3vw, 2rem);
	bottom: clamp(1rem, 3vw, 2rem);
	left: clamp(1rem, 3vw, 2rem);
	z-index: 1250;
	display: grid;
	width: min(calc(100% - clamp(2rem, 6vw, 4rem)), 72rem);
	max-height: calc(100vh - 2rem);
	max-height: calc(100dvh - 2rem);
	margin-inline: auto;
	padding: clamp(1.25rem, 3vw, 1.75rem);
	overflow-y: auto;
	border: 0.0625rem solid var(--color-border);
	border-radius: var(--radius-lg);
	background-color: var(--color-canvas);
	box-shadow: 0 0.75rem 2rem rgb(29 25 21 / 14%);
}

.privacy-banner[hidden],
.privacy-preferences[hidden] {
	display: none;
}

.privacy-banner__title,
.privacy-preferences__title {
	margin: 0;
	color: var(--color-primary);
	font-family: var(--font-family-display);
	font-weight: 400;
	line-height: 1;
}

.privacy-banner__title {
	font-size: clamp(1.75rem, 4vw, 2.25rem);
}

.privacy-banner__text {
	max-width: 66ch;
	margin-block-start: var(--space-sm);
	color: var(--color-text-secondary);
	font-size: var(--font-size-card-body);
	line-height: 1.6;
}

.privacy-banner__links,
.privacy-preferences__links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs) var(--space-md);
	margin-block-start: var(--space-sm);
	font-size: var(--font-size-meta);
}

.privacy-banner__links a,
.privacy-preferences__links a {
	color: var(--color-primary);
	font-weight: 600;
	text-underline-offset: 0.2em;
}

.privacy-banner__actions {
	display: grid;
	gap: var(--space-sm);
	margin-block-start: var(--space-lg);
}

.privacy-banner__button {
	width: 100%;
	min-height: 2.875rem;
	padding-inline: var(--space-md);
	font-size: 0.875rem;
}

.privacy-preferences {
	position: fixed;
	inset: 0;
	z-index: 1300;
	display: grid;
	padding: var(--space-md);
	place-items: center;
}

.privacy-preferences__backdrop {
	position: absolute;
	inset: 0;
	background-color: rgb(29 25 21 / 58%);
}

.privacy-preferences__dialog {
	position: relative;
	z-index: 1;
	display: flex;
	width: min(100%, 42rem);
	max-height: calc(100vh - (2 * var(--space-md)));
	max-height: calc(100dvh - (2 * var(--space-md)));
	padding: clamp(1.25rem, 4vw, 2rem);
	flex-direction: column;
	overflow: hidden;
	border-radius: var(--radius-lg);
	background-color: var(--color-canvas);
	box-shadow: 0 1rem 3rem rgb(29 25 21 / 20%);
}

.privacy-preferences__dialog:focus {
	outline: none;
}

.privacy-preferences__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--space-md);
	padding-block-end: var(--space-md);
	border-block-end: 0.0625rem solid var(--color-border);
}

.privacy-preferences__title {
	margin-block-start: var(--space-xs);
	font-size: clamp(2rem, 7vw, 3rem);
}

.privacy-preferences__close {
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	flex: 0 0 auto;
	place-items: center;
	border: 0.0625rem solid var(--color-border);
	border-radius: 50%;
	background-color: transparent;
	color: var(--color-primary);
	font-size: 1.5rem;
	line-height: 1;
}

.privacy-preferences__close:hover {
	border-color: var(--color-primary);
	background-color: var(--color-surface-warm);
}

.privacy-preferences__close:focus-visible,
.privacy-switch input:focus-visible + .privacy-switch__control,
.site-footer__cookie-preferences:focus-visible {
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
}

.privacy-preferences__body {
	overflow-y: auto;
	overscroll-behavior: contain;
}

.privacy-preferences__category {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--space-md);
	align-items: center;
	padding-block: var(--space-md);
	border-block-end: 0.0625rem solid var(--color-border);
}

.privacy-preferences__category-copy {
	min-width: 0;
}

.privacy-preferences__category h3 {
	margin: 0;
	color: var(--color-primary);
	font-size: 1rem;
	line-height: 1.3;
}

.privacy-preferences__category p {
	margin-block-start: 0.375rem;
	color: var(--color-text-secondary);
	font-size: 0.875rem;
	line-height: 1.5;
}

.privacy-switch {
	position: relative;
	display: inline-flex;
	flex: 0 0 auto;
	cursor: pointer;
}

.privacy-switch input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}

.privacy-switch__control {
	position: relative;
	display: block;
	width: 3rem;
	height: 1.75rem;
	border: 0.0625rem solid var(--color-border-strong);
	border-radius: var(--radius-pill);
	background-color: var(--color-surface-muted);
	transition: background-color var(--transition-fast), border-color var(--transition-fast);
}

.privacy-switch__control::after {
	position: absolute;
	top: 0.1875rem;
	left: 0.1875rem;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 50%;
	background-color: var(--color-white);
	box-shadow: 0 0.125rem 0.375rem rgb(29 25 21 / 18%);
	content: "";
	transition: transform var(--transition-fast);
}

.privacy-switch input:checked + .privacy-switch__control {
	border-color: var(--color-primary);
	background-color: var(--color-primary);
}

.privacy-switch input:checked + .privacy-switch__control::after {
	transform: translateX(1.25rem);
}

.privacy-switch--disabled {
	cursor: not-allowed;
	opacity: 0.72;
}

.privacy-preferences__footer {
	display: grid;
	gap: var(--space-md);
	padding-block-start: var(--space-lg);
}

.privacy-preferences__footer .button {
	width: 100%;
}

.site-footer__cookie-preferences {
	justify-self: start;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--color-primary);
	font: inherit;
	font-weight: 600;
	text-decoration: underline;
	text-decoration-thickness: 0.0625rem;
	text-underline-offset: 0.2em;
}

.site-footer__cookie-preferences:hover {
	color: var(--color-accent-strong);
}

body.has-privacy-modal-open {
	overflow: hidden;
}

.activity-video__frame--consent {
	display: grid;
	place-items: center;
	background-color: var(--color-surface-warm);
}

.activity-video__consent-placeholder {
	display: grid;
	max-width: 34rem;
	padding: clamp(1.25rem, 5vw, 2.5rem);
	place-items: center;
	color: var(--color-text-secondary);
	text-align: center;
}

.activity-video__consent-title {
	color: var(--color-primary);
	font-size: clamp(1.125rem, 3vw, 1.5rem);
	font-weight: 700;
}

.activity-video__consent-placeholder p + p {
	margin-block-start: var(--space-xs);
}

.activity-video__consent-placeholder .button {
	margin-block-start: var(--space-md);
}

@media (min-width: 64rem) {
	.privacy-banner {
		grid-template-columns: minmax(0, 1fr) minmax(17rem, auto);
		gap: clamp(1.5rem, 4vw, 3rem);
		align-items: end;
	}

	.privacy-banner__actions {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		margin-block-start: 0;
	}

	.privacy-preferences__footer {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: end;
	}

	.privacy-preferences__footer .button {
		width: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.privacy-switch__control,
	.privacy-switch__control::after {
		transition: none;
	}
}

/* --------------------------------------------------------------------------
 * Global footer
 * -------------------------------------------------------------------------- */

.network-cta {
	width: min(100% - (2 * var(--container-padding)), var(--container-max-width));
	margin-inline: auto;
	padding-block: clamp(2.75rem, 6vw, 5rem);
	border-block-start: 0.0625rem solid var(--color-border);
}

.network-cta__container {
	display: grid;
	gap: var(--space-lg);
	align-items: center;
}

.network-cta__content {
	max-width: 46rem;
}

.network-cta__title {
	max-width: 24ch;
	color: var(--color-primary);
	font-size: clamp(1.75rem, 3vw, 2.75rem);
	line-height: 1.12;
	text-wrap: balance;
}

.network-cta__text {
	max-width: 42rem;
	margin-block-start: var(--space-sm);
	color: var(--color-text-primary);
	line-height: 1.6;
}

.network-cta__link {
	justify-self: start;
}

.network-cta + .site-footer {
	margin-top: 0;
}

.home .network-cta {
	position: relative;
	width: 100%;
	padding-inline: max(
		var(--container-padding),
		calc((100% - var(--container-max-width)) / 2)
	);
	border-block-start: 0;
	background-color: var(--color-surface-warm);
}

.home .network-cta::before {
	position: absolute;
	top: 0;
	right: max(
		var(--container-padding),
		calc((100% - var(--container-max-width)) / 2)
	);
	left: max(
		var(--container-padding),
		calc((100% - var(--container-max-width)) / 2)
	);
	border-block-start: 0.0625rem solid var(--color-border);
	content: "";
}

@media (min-width: 64rem) {
	.network-cta__container {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: clamp(3rem, 7vw, 7rem);
	}

	.network-cta__link {
		justify-self: end;
	}
}

.site-footer {
	margin-top: var(--space-4xl);
	padding-block: clamp(2.75rem, 4vw, 4rem) clamp(1.5rem, 2vw, 2rem);
	background-color: var(--color-brand-beige);
	color: var(--color-text-primary);
}

.front-page + .site-footer {
	margin-top: 0;
}

.site-footer__container {
	width: min(100% - (2 * clamp(1.5rem, 4vw, 2rem)), var(--container-max-width));
	margin-inline: auto;
}

.site-footer__primary {
	display: grid;
	align-items: start;
	gap: clamp(2.5rem, 6vw, 4rem);
}

.site-footer__brand {
	min-width: 0;
}

.site-footer__brand-link {
	display: block;
	width: fit-content;
	border-radius: var(--radius-md);
}

.site-footer__brand-logo {
	display: block;
	width: clamp(9.5rem, 14vw, 11.75rem);
	height: auto;
}

.site-footer__socials {
	display: flex;
	gap: var(--space-sm);
	margin-top: var(--space-md);
}

.site-footer__socials a {
	display: inline-grid;
	width: 2.5rem;
	height: 2.5rem;
	place-items: center;
	border: 1px solid var(--color-border);
	border-radius: 50%;
	color: var(--color-primary);
	transition: border-color var(--transition-fast), color var(--transition-fast), opacity var(--transition-fast);
}

.site-footer__socials a:hover {
	border-color: rgb(78 87 58 / 42%);
	color: var(--color-primary-hover);
}

.site-footer__socials a:focus-visible,
.site-footer a:focus-visible {
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.25rem;
}

.site-footer__social-icon {
	width: 1.125rem;
	height: 1.125rem;
}

.site-footer__social-icon.social-icon--facebook {
	width: 1.0625rem;
}

.site-footer__institutional {
	min-width: 0;
}

.site-footer__partners {
	width: min(100%, 34rem);
}

.site-footer__partners-image {
	display: block;
	width: 100%;
	height: auto;
}

.site-footer__funding-note {
	max-width: 34rem;
	margin-top: var(--space-md);
	color: var(--color-text-secondary);
	font-size: clamp(0.71875rem, 0.7rem + 0.08vw, 0.78125rem);
	line-height: 1.65;
}

.site-footer__bottom {
	display: grid;
	gap: var(--space-lg);
	margin-top: var(--space-2xl);
	padding-block-start: var(--space-lg);
	padding-inline-end: 3.75rem;
	border-top: 1px solid var(--color-border);
	color: var(--color-text-secondary);
	font-size: var(--font-size-meta);
	line-height: var(--line-height-meta);
}

.site-footer__bottom-group {
	display: grid;
	gap: var(--space-sm);
	min-width: 0;
}

.site-footer__bottom-group--utility {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--space-sm);
}

.site-footer__bottom-group--utility p::after {
	margin-inline-start: 0.375rem;
	content: "·";
}

.site-footer__bottom p {
	color: inherit;
}

.site-footer__bottom a {
	color: var(--color-primary);
	font-weight: 600;
	text-decoration: none;
}

.site-footer__bottom a:hover,
.site-footer__bottom a:focus-visible {
	color: var(--color-accent-strong);
	text-decoration: underline;
	text-decoration-thickness: 0.0625rem;
	text-underline-offset: 0.2em;
}

.site-footer__legal {
	min-width: 0;
}

.site-footer__legal-menu {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs) 0.375rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__legal-menu li + li::before {
	margin-inline-end: 0.375rem;
	content: "·";
}

/* --------------------------------------------------------------------------
 * Standard WordPress pages
 * -------------------------------------------------------------------------- */

.standard-page {
	padding-block: clamp(2rem, 5vw, 4rem) clamp(4rem, 9vw, 8rem);
}

.standard-page__container {
	width: min(100% - (2 * var(--container-padding)), var(--container-max-width));
	margin-inline: auto;
}

.standard-page__article {
	min-width: 0;
}

.standard-page__header,
.standard-page__content {
	width: min(100%, 48rem);
}

.standard-page__header {
	margin-block-end: clamp(2rem, 5vw, 3.5rem);
}

.standard-page__header .section-eyebrow {
	margin-block-end: var(--space-eyebrow-title);
}

.standard-page__title {
	max-width: 16ch;
	color: var(--color-primary);
	font-family: var(--font-family-display);
	font-size: clamp(2.5rem, 7vw, 4.5rem);
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 1;
	overflow-wrap: break-word;
}

.standard-page__content {
	color: var(--color-text-primary);
	font-size: var(--font-size-body);
	line-height: 1.72;
}

.standard-page__content > * + * {
	margin-block-start: var(--space-md);
}

.standard-page__content h2,
.standard-page__content h3 {
	color: var(--color-primary);
	font-family: var(--font-family-body);
	font-weight: 700;
	line-height: 1.18;
	overflow-wrap: break-word;
}

.standard-page__content h2 {
	margin-block-start: clamp(2.5rem, 6vw, 4rem);
	font-size: clamp(1.75rem, 4vw, 2.375rem);
}

.standard-page__content h3 {
	margin-block-start: clamp(2rem, 5vw, 3rem);
	font-size: clamp(1.25rem, 3vw, 1.5rem);
}

.standard-page__content :is(ul, ol) {
	display: grid;
	gap: var(--space-xs);
	padding-inline-start: 1.35rem;
}

.standard-page__content a {
	color: var(--color-primary);
	text-decoration-color: var(--color-accent-strong);
	text-decoration-thickness: 0.0625rem;
	text-underline-offset: 0.2em;
}

.standard-page__content a:hover {
	color: var(--color-accent-strong);
}

.standard-page__content a:focus-visible {
	border-radius: var(--radius-sm);
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
}

.standard-page__content .wp-block-table {
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.standard-page__content table {
	width: 100%;
	min-width: 36rem;
	border-collapse: collapse;
	font-size: var(--font-size-card-body);
	line-height: 1.5;
}

.standard-page__content :is(th, td) {
	padding: 0.75rem;
	border: 0.0625rem solid var(--color-border);
	text-align: left;
	vertical-align: top;
}

.standard-page__content th {
	background-color: var(--color-surface-warm);
	color: var(--color-primary);
	font-weight: 700;
}

.standard-page__description {
	max-width: 42rem;
	margin-block-start: var(--space-md);
	color: var(--color-text-secondary);
	font-size: var(--font-size-lead);
	line-height: var(--line-height-lead);
}

.standard-page__featured-media {
	width: min(100%, 60rem);
	margin: 0 0 clamp(2rem, 5vw, 3.5rem);
	overflow: hidden;
	border-radius: var(--radius-lg);
}

.standard-page__featured-image {
	display: block;
	width: 100%;
	height: auto;
}

.standard-page__entries {
	display: grid;
	gap: clamp(2rem, 5vw, 3rem);
}

.standard-page__entry {
	min-width: 0;
	padding-block-end: clamp(2rem, 5vw, 3rem);
	border-block-end: 0.0625rem solid var(--color-border);
}

.standard-page__entry-title {
	margin: 0;
	font-size: clamp(1.5rem, 4vw, 2rem);
	line-height: 1.2;
	overflow-wrap: break-word;
}

.standard-page__entry-title a {
	color: var(--color-primary);
	text-decoration: none;
}

.standard-page__entry-title a:hover,
.standard-page__entry-title a:focus-visible {
	color: var(--color-accent-strong);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.standard-page__entry-excerpt {
	margin-block: var(--space-sm) var(--space-md);
}

.standard-page__empty > * + * {
	margin-block-start: var(--space-md);
}

.standard-page .navigation.pagination {
	margin-block-start: clamp(2.5rem, 6vw, 4rem);
}

.standard-page .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	align-items: center;
}

.standard-page .page-numbers {
	display: inline-flex;
	min-width: 2.75rem;
	min-height: 2.75rem;
	align-items: center;
	justify-content: center;
	padding: 0.5rem 0.75rem;
	border: 0.0625rem solid var(--color-border);
	border-radius: var(--radius-pill);
	color: var(--color-primary);
	text-decoration: none;
}

.standard-page .page-numbers.current {
	border-color: var(--color-primary);
	background-color: var(--color-primary);
	color: var(--color-white);
}

.standard-page .page-numbers:focus-visible {
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
}

@media (max-width: 47.999rem) {
	.standard-page__title {
		font-size: clamp(2.5rem, 12vw, 3.25rem);
	}
}

/* --------------------------------------------------------------------------
 * Global header
 * -------------------------------------------------------------------------- */

.site-header.front-page-header {
	position: sticky;
	z-index: 50;
	top: 0;
	padding-top: 0;
	background-color: var(--color-canvas);
	color: var(--color-primary);
	transition: background-color 240ms ease, box-shadow 240ms ease, opacity 240ms ease, transform 240ms ease;
}

.site-header.front-page-header::before {
	display: none;
}

body.admin-bar .site-header.front-page-header {
	top: 2rem;
}

.site-header .front-page-brand {
	color: var(--color-primary);
	filter: none;
}

.site-header .front-page-nav-toggle {
	border-color: var(--color-primary-translucent);
	background-color: var(--color-surface);
	color: var(--color-primary);
	backdrop-filter: none;
}

.site-header .front-page-nav {
	padding: var(--space-xs) 0;
	border: 0;
	background-color: transparent;
	box-shadow: none;
	backdrop-filter: none;
}

.site-header .front-page-nav__link {
	display: flex;
	align-items: center;
	min-height: 2.75rem;
	color: var(--color-primary);
	text-shadow: none;
}

.site-header .front-page-nav__link:hover {
	color: var(--color-accent-strong);
}

.site-header .front-page-nav__link:focus-visible {
	border-radius: var(--radius-sm);
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.25rem;
}

.front-page-nav .menu-item-has-children {
	position: relative;
}

.front-page-nav .sub-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.front-page-nav__submenu-toggle {
	display: none;
}

.front-page-nav__submenu-index {
	display: none;
}

.front-page-nav__list > .front-page-nav__item > .front-page-nav__link {
	font-weight: 700;
	letter-spacing: 0.035em;
	text-transform: uppercase;
	white-space: nowrap;
}

.site-header .front-page-header__socials {
	color: var(--color-primary);
}

.site-header .front-page-header__socials a {
	border-color: rgb(78 87 58 / 30%);
}

.site-header.front-page-header.front-page-header--over-hero {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	padding-top: env(safe-area-inset-top);
	border-bottom: 0;
	background-color: transparent;
	color: var(--color-white);
}

body.admin-bar .site-header.front-page-header.front-page-header--over-hero {
	top: 2rem;
}

.site-header.front-page-header.front-page-header--over-hero::before {
	inset: 0 0 auto;
	height: clamp(8rem, 18vw, 14rem);
	display: block;
	background: linear-gradient(180deg, rgb(29 25 21 / 36%) 0%, rgb(29 25 21 / 18%) 46%, rgb(29 25 21 / 0%) 100%);
}

.site-header.front-page-header.front-page-header--over-hero .front-page-brand {
	color: var(--color-white);
	filter: drop-shadow(0 0.125rem 0.5rem rgb(29 25 21 / 46%)) drop-shadow(0 0.375rem 1rem rgb(29 25 21 / 18%));
}

.site-header.front-page-header.front-page-header--over-hero .front-page-nav-toggle {
	border-color: rgb(255 255 255 / 45%);
	background-color: rgb(29 25 21 / 32%);
	color: var(--color-white);
	backdrop-filter: blur(0.5rem);
}

.site-header.front-page-header.front-page-header--over-hero .front-page-nav {
	padding: var(--space-xs) 0;
	border: 0;
	background-color: transparent;
	box-shadow: none;
	backdrop-filter: none;
}

.site-header.front-page-header.front-page-header--over-hero .front-page-nav__link {
	color: var(--color-white);
	text-shadow: 0 0.125rem 0.75rem rgb(29 25 21 / 42%);
}

.site-header.front-page-header.front-page-header--over-hero .front-page-nav__link:hover {
	color: var(--color-accent);
}

.site-header.front-page-header.front-page-header--over-hero .front-page-nav__link:focus-visible {
	outline-color: var(--color-brand-beige);
}

.site-header.front-page-header.front-page-header--over-hero .front-page-header__socials {
	color: var(--color-white);
}

.site-header.front-page-header.front-page-header--over-hero .front-page-header__socials a {
	border-color: rgb(255 255 255 / 24%);
}

.site-header.front-page-header.front-page-header--over-hero .front-page-header__socials a:hover {
	border-color: rgb(255 255 255 / 48%);
	color: var(--color-brand-beige);
}

.site-header.front-page-header.front-page-header--over-hero .front-page-header__socials a:focus-visible {
	outline-color: var(--color-brand-beige);
}

.site-header.front-page-header.is-sticky {
	background-color: var(--color-canvas);
	box-shadow: 0 0.375rem 1.5rem rgb(29 25 21 / 7%);
	color: var(--color-primary);
}

.site-header.front-page-header.is-sticky .front-page-header__container {
	min-height: var(--header-min-height);
	padding-block: var(--header-padding-block);
}

.site-header.front-page-header.is-sticky .front-page-header__cta {
	min-height: 2.875rem;
	padding-inline: 1.5rem;
}

.site-header.front-page-header--over-hero.is-sticky {
	position: fixed;
	right: 0;
	left: 0;
	top: 0;
	opacity: 0;
	transform: translateY(-0.75rem);
}

.site-header.front-page-header--over-hero.is-sticky.is-sticky-visible {
	opacity: 1;
	transform: translateY(0);
}

.site-header.front-page-header.is-sticky::before {
	display: none;
}

.site-header.front-page-header.is-sticky .front-page-brand {
	color: var(--color-primary);
	filter: none;
}

.site-header.front-page-header.is-sticky .front-page-brand__logo--color {
	opacity: 1;
}

.site-header.front-page-header.is-sticky .front-page-brand__logo--white {
	opacity: 0;
}

.site-header.front-page-header.is-sticky .front-page-nav-toggle {
	border-color: var(--color-primary-translucent);
	background-color: var(--color-surface);
	color: var(--color-primary);
	backdrop-filter: none;
}

.site-header.front-page-header.is-sticky .front-page-nav__link {
	color: var(--color-primary);
	text-shadow: none;
}

.site-header.front-page-header.is-sticky .front-page-nav__link:hover {
	color: var(--color-accent-strong);
}

.site-header.front-page-header.is-sticky .front-page-header__socials {
	color: var(--color-primary);
}

.site-header.front-page-header.is-sticky .front-page-header__socials a {
	border-color: rgb(78 87 58 / 30%);
}

.site-header.front-page-header.is-sticky .front-page-header__socials a:hover {
	border-color: rgb(78 87 58 / 42%);
	color: var(--color-primary-hover);
}

body.admin-bar .site-header.front-page-header--over-hero.is-sticky {
	top: 2rem;
}

.activity-page__contextual-link,
.event-page__contextual-link {
	margin-block: 0 clamp(1.5rem, 3vw, 2.5rem);
}

.activity-page__contextual-link .text-link::before,
.event-page__contextual-link .text-link::before {
	content: "←";
}

.activity-page__contextual-link .text-link::after,
.event-page__contextual-link .text-link::after {
	content: none;
}

body.has-menu-open {
	position: fixed;
	top: calc(var(--menu-scroll-offset, 0px) * -1);
	right: 0;
	left: 0;
	width: 100%;
	overflow: hidden;
	overscroll-behavior: none;
}

@media (max-width: 63.9375rem) {
	.site-header.front-page-header.front-page-header--over-hero:not(.is-sticky):not(.is-menu-open) {
		position: absolute;
		border-color: transparent;
		background-color: transparent;
		box-shadow: none;
		color: var(--color-white);
	}

	.site-header.front-page-header.front-page-header--over-hero:not(.is-sticky):not(.is-menu-open)::before {
		display: block;
	}

	.site-header.front-page-header.front-page-header--over-hero:not(.is-sticky):not(.is-menu-open) .front-page-brand {
		color: var(--color-white);
	}

	.site-header.front-page-header.front-page-header--over-hero:not(.is-sticky):not(.is-menu-open) .front-page-nav-toggle {
		border-color: rgb(255 255 255 / 45%);
		background-color: rgb(29 25 21 / 32%);
		color: var(--color-white);
		backdrop-filter: blur(0.5rem);
	}

	.site-header.front-page-header.is-menu-open {
		position: fixed;
		z-index: 1275;
		inset: 0;
		width: 100%;
		min-height: 100dvh;
		height: 100dvh;
		overflow-y: auto;
		overscroll-behavior: contain;
		padding: 0;
		border: 0;
		background-color: var(--color-primary);
		background-image: linear-gradient(145deg, color-mix(in srgb, var(--color-primary) 88%, var(--color-primary-hover)) 0%, var(--color-primary) 100%);
		color: var(--color-white);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity 400ms cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 400ms;
	}

	.site-header.front-page-header.front-page-header--over-hero.is-menu-open {
		position: fixed;
		padding-top: 0;
		background-color: var(--color-primary);
		background-image: linear-gradient(145deg, color-mix(in srgb, var(--color-primary) 88%, var(--color-primary-hover)) 0%, var(--color-primary) 100%);
	}

	body.admin-bar .site-header.is-menu-open {
		inset: 2.875rem 0 0;
		height: calc(100dvh - 2.875rem);
	}

	.site-header.front-page-header.is-menu-open.is-menu-visible {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transition: opacity 400ms cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 0s;
	}

	.site-header.is-menu-open::before {
		display: none;
	}

	.site-header.is-menu-open .front-page-header__container {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-rows: auto auto auto auto;
		align-content: start;
		align-items: center;
		min-height: 100%;
		padding-block: var(--header-menu-panel-padding-block);
		opacity: 0;
		transform: translateY(0.875rem) scale(0.985);
		transition: opacity 320ms cubic-bezier(0.16, 1, 0.3, 1) 40ms, transform 400ms cubic-bezier(0.16, 1, 0.3, 1) 40ms;
	}

	.site-header.is-menu-open.is-menu-visible .front-page-header__container {
		opacity: 1;
		transform: translateY(0) scale(1);
	}

	.site-header.front-page-header.is-menu-open .front-page-brand {
		width: var(--header-logo-size);
		color: var(--color-white);
		filter: none;
	}

	.site-header.is-menu-open.is-menu-visible .front-page-brand__logo--color {
		opacity: 0;
	}

	.site-header.is-menu-open.is-menu-visible .front-page-brand__logo--white {
		opacity: 1;
	}

	.site-header.is-menu-open .front-page-nav-toggle {
		border-color: rgb(255 255 255 / 45%);
		background-color: transparent;
		color: var(--color-white);
	}

	.front-page-nav-toggle__line {
		transition: opacity 220ms cubic-bezier(0.16, 1, 0.3, 1), transform 280ms cubic-bezier(0.16, 1, 0.3, 1);
	}

	.site-header.is-menu-open .front-page-nav-toggle__line:nth-last-child(3) {
		transform: translateY(0.4375rem) rotate(45deg);
	}

	.site-header.is-menu-open .front-page-nav-toggle__line:nth-last-child(2) {
		opacity: 0;
	}

	.site-header.is-menu-open .front-page-nav-toggle__line:last-child {
		transform: translateY(-0.4375rem) rotate(-45deg);
	}

	.site-header.is-menu-open .front-page-nav {
		display: block;
		grid-column: 1 / -1;
		align-self: start;
		margin-block-start: clamp(1.5rem, 5vh, 2.5rem);
		padding: 0;
	}

	.site-header.is-menu-open .front-page-nav__list {
		width: 100%;
		min-width: 0;
		gap: 0.25rem;
	}

	.site-header.is-menu-open .front-page-nav__item {
		position: relative;
		width: 100%;
		min-width: 0;
		opacity: 0;
		transform: translateY(0.625rem);
		transition: opacity 300ms cubic-bezier(0.16, 1, 0.3, 1), transform 360ms cubic-bezier(0.16, 1, 0.3, 1);
	}

	.site-header.is-menu-open .front-page-nav .menu-item-has-children {
		display: grid;
		grid-template-columns: max-content 2.5rem minmax(0, 1fr);
		column-gap: 0.125rem;
		align-items: center;
	}

	.site-header.is-menu-open .menu-item-has-children > .front-page-nav__link {
		width: auto;
		padding-inline-end: 0;
		white-space: nowrap;
	}

	.site-header.is-menu-open .front-page-nav__submenu-toggle {
		display: inline-grid;
		width: 2.5rem;
		height: 2.5rem;
		padding: 0;
		border: 0;
		border-radius: var(--radius-sm);
		background: transparent;
		color: var(--color-white);
		justify-self: start;
		place-items: center;
		transition: color 180ms cubic-bezier(0.16, 1, 0.3, 1);
	}

	.front-page-nav__submenu-icon {
		width: 0.9375rem;
		height: 0.9375rem;
		fill: none;
		stroke: currentcolor;
		stroke-linecap: round;
		stroke-linejoin: round;
		stroke-width: 1.5;
		transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1);
	}

	.site-header.is-menu-open .front-page-nav__submenu-toggle[aria-expanded="true"] .front-page-nav__submenu-icon {
		transform: rotate(45deg);
	}

	.site-header.is-menu-open .front-page-nav__submenu-toggle:hover {
		color: var(--color-brand-beige);
	}

	.site-header.is-menu-open .front-page-nav__submenu-toggle:focus-visible {
		outline: 0.125rem solid var(--color-brand-beige);
		outline-offset: 0;
	}

	.site-header.is-menu-open .front-page-nav .sub-menu {
		display: grid;
		grid-column: 1 / -1;
		width: 100%;
		gap: 0;
		margin-block-start: 0.625rem;
		padding: 0.5rem 0.875rem;
		border-radius: var(--radius-sm);
		background: var(--color-surface-warm);
		box-shadow: none;
		color: var(--color-primary);
	}

	.site-header.has-submenu-controls.is-menu-open .front-page-nav .sub-menu {
		max-height: 0;
		margin-block-start: 0;
		padding-block: 0;
		overflow: hidden;
		opacity: 0;
		visibility: hidden;
		transform: translateY(-0.375rem);
		transition: max-height 240ms cubic-bezier(0.16, 1, 0.3, 1), margin-block-start 180ms cubic-bezier(0.16, 1, 0.3, 1), padding-block 180ms cubic-bezier(0.16, 1, 0.3, 1), opacity 160ms cubic-bezier(0.16, 1, 0.3, 1), transform 200ms cubic-bezier(0.16, 1, 0.3, 1), visibility 0s linear 240ms;
	}

	.site-header.has-submenu-controls.is-menu-open .front-page-nav .is-submenu-open > .sub-menu {
		max-height: 24rem;
		margin-block-start: 0.625rem;
		padding-block: 0.5rem;
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		transition-delay: 0s;
	}

	.site-header.is-menu-open .front-page-nav .sub-menu .front-page-nav__item {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.site-header.is-menu-open .front-page-nav .sub-menu .front-page-nav__link {
		display: grid;
		grid-template-columns: 1.75rem minmax(0, 1fr);
		gap: 0.625rem;
		width: 100%;
		min-height: 2.75rem;
		padding: 0.6875rem 0.25rem;
		color: var(--color-primary);
		font-size: clamp(0.9375rem, 4vw, 1rem);
		font-weight: 500;
		letter-spacing: normal;
		line-height: 1.3;
		text-shadow: none;
		text-transform: none;
		transition: background-color 180ms cubic-bezier(0.16, 1, 0.3, 1), color 180ms cubic-bezier(0.16, 1, 0.3, 1);
	}

	.site-header.is-menu-open .front-page-nav .sub-menu .front-page-nav__item + .front-page-nav__item {
		border-top: 0.0625rem solid color-mix(in srgb, var(--color-primary) 14%, transparent);
	}

	.site-header.is-menu-open .front-page-nav .sub-menu .front-page-nav__link:hover,
	.site-header.is-menu-open .front-page-nav .sub-menu .is-current-anchor > .front-page-nav__link {
		color: var(--color-primary-hover);
		background: rgb(255 255 255 / 32%);
	}

	.site-header.is-menu-open .front-page-nav__submenu-index {
		display: inline-block;
		padding-block-start: 0.125rem;
		color: var(--color-accent-strong);
		font-size: 0.6875rem;
		font-weight: 700;
		letter-spacing: 0.08em;
		text-shadow: none;
		opacity: 0.78;
	}

	.site-header.is-menu-open.is-menu-visible .front-page-nav__item {
		opacity: 1;
		transform: translateY(0);
	}

	.site-header.is-menu-open .front-page-nav__item:nth-child(1) {
		transition-delay: 90ms;
	}

	.site-header.is-menu-open .front-page-nav__item:nth-child(2) {
		transition-delay: 120ms;
	}

	.site-header.is-menu-open .front-page-nav__item:nth-child(3) {
		transition-delay: 150ms;
	}

	.site-header.is-menu-open .front-page-nav__item:nth-child(4) {
		transition-delay: 180ms;
	}

	.site-header.is-menu-open .front-page-nav__item:nth-child(5) {
		transition-delay: 210ms;
	}

	.site-header.is-menu-open .front-page-nav__link,
	.site-header.front-page-header.front-page-header--over-hero.is-menu-open .front-page-nav__link {
		width: fit-content;
		max-width: 100%;
		min-height: 3rem;
		padding-block: 0.5rem;
		color: var(--color-white);
		font-size: clamp(1.25rem, 5.5vw, 1.5rem);
		font-weight: 600;
		letter-spacing: -0.01em;
		line-height: 1.18;
		text-shadow: none;
		text-transform: none;
		white-space: normal;
		transition: color 180ms cubic-bezier(0.16, 1, 0.3, 1);
	}

	.site-header.is-menu-open .front-page-nav__list > .current-menu-item > .front-page-nav__link,
	.site-header.is-menu-open .front-page-nav__list > .current-menu-parent > .front-page-nav__link,
	.site-header.is-menu-open .front-page-nav__list > .current-menu-ancestor > .front-page-nav__link {
		position: relative;
		padding-inline-start: 1rem;
	}

	.site-header.is-menu-open .front-page-nav__list > .current-menu-item > .front-page-nav__link::before,
	.site-header.is-menu-open .front-page-nav__list > .current-menu-parent > .front-page-nav__link::before,
	.site-header.is-menu-open .front-page-nav__list > .current-menu-ancestor > .front-page-nav__link::before {
		position: absolute;
		left: 0;
		top: 50%;
		width: 0.1875rem;
		height: 1.5rem;
		border-radius: 999px;
		background: var(--color-accent-strong);
		content: "";
		transform: translateY(-50%);
	}

	.site-header.is-menu-open .front-page-nav__link:hover {
		color: var(--color-brand-beige);
	}

	.site-header.is-menu-open .front-page-nav__link:focus-visible {
		outline: 0;
		text-decoration: underline;
		text-decoration-color: var(--color-brand-beige);
		text-decoration-thickness: 0.125rem;
		text-underline-offset: 0.35em;
	}

	.site-header.is-menu-open .front-page-nav .sub-menu .front-page-nav__link:focus-visible {
		border-radius: var(--radius-sm);
		outline: 0.125rem solid var(--color-primary);
		outline-offset: -0.125rem;
		text-decoration: none;
	}

	.site-header.is-menu-open .front-page-header__actions {
		display: block;
		grid-column: 1 / -1;
		margin-block-start: clamp(1.5rem, 4vh, 2.5rem);
		opacity: 0;
		transform: translateY(0.625rem);
		transition: opacity 300ms cubic-bezier(0.16, 1, 0.3, 1) 230ms, transform 360ms cubic-bezier(0.16, 1, 0.3, 1) 230ms;
	}

	.site-header.is-menu-open.is-menu-visible .front-page-header__actions {
		opacity: 1;
		transform: translateY(0);
	}

	.site-header.is-menu-open .front-page-header__socials {
		display: flex;
		grid-column: 1 / -1;
		gap: var(--space-sm);
		margin-block-start: var(--space-lg);
		color: var(--color-white);
		opacity: 0;
		transform: translateY(0.625rem);
		transition: opacity 300ms cubic-bezier(0.16, 1, 0.3, 1) 200ms, transform 360ms cubic-bezier(0.16, 1, 0.3, 1) 200ms;
	}

	.site-header.is-menu-open.is-menu-visible .front-page-header__socials {
		opacity: 1;
		transform: translateY(0);
	}

	.site-header.is-menu-open .front-page-header__socials a {
		width: 2.5rem;
		height: 2.5rem;
		border: 0.0625rem solid rgb(255 255 255 / 30%);
		border-radius: 50%;
	}

	.site-header.is-menu-open .front-page-header__socials a:hover {
		border-color: var(--color-brand-beige);
		color: var(--color-brand-beige);
	}

	.site-header.is-menu-open .front-page-header__socials a:focus-visible {
		outline-color: var(--color-brand-beige);
	}

	.site-header.is-menu-open .front-page-header__cta {
		display: flex;
		justify-content: center;
		width: 100%;
		min-height: var(--header-cta-min-height);
		padding-inline: var(--header-cta-padding-inline);
		border-color: var(--color-brand-beige);
		background-color: var(--color-brand-beige);
		background-image: none;
		color: var(--color-primary);
		box-shadow: none;
		transition: background-color 180ms cubic-bezier(0.16, 1, 0.3, 1), border-color 180ms cubic-bezier(0.16, 1, 0.3, 1), color 180ms cubic-bezier(0.16, 1, 0.3, 1);
	}

	.site-header.is-menu-open .front-page-header__cta:hover {
		border-color: var(--color-white);
		background-color: var(--color-white);
		color: var(--color-primary-hover);
	}

	.site-header.front-page-header.is-sticky.is-menu-open {
		position: fixed;
		z-index: 1275;
		inset: 0;
		width: 100%;
		min-height: 100dvh;
		height: 100dvh;
		overflow-y: auto;
		overscroll-behavior: contain;
		padding: 0;
		border: 0;
		background-color: var(--color-primary);
		background-image: linear-gradient(145deg, color-mix(in srgb, var(--color-primary) 88%, var(--color-primary-hover)) 0%, var(--color-primary) 100%);
		box-shadow: none;
		color: var(--color-white);
		opacity: 0;
		transform: none;
		visibility: hidden;
		pointer-events: none;
	}

	.site-header.front-page-header.is-sticky.is-menu-open.is-menu-visible {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	.site-header.front-page-header.is-sticky.is-menu-open::before {
		display: none;
	}

	.site-header.front-page-header.is-sticky.is-menu-open .front-page-header__container {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-rows: auto auto auto auto;
		align-content: start;
		align-items: center;
		min-height: 100%;
		padding-block: var(--header-menu-panel-padding-block);
		opacity: 0;
		transform: translateY(0.875rem) scale(0.985);
	}

	.site-header.front-page-header.is-sticky.is-menu-open.is-menu-visible .front-page-header__container {
		opacity: 1;
		transform: translateY(0) scale(1);
	}

	.site-header.front-page-header.is-sticky.is-menu-open .front-page-brand {
		width: var(--header-logo-size);
		color: var(--color-white);
		filter: none;
	}

	.site-header.front-page-header.is-sticky.is-menu-open.is-menu-visible .front-page-brand__logo--color {
		opacity: 0;
	}

	.site-header.front-page-header.is-sticky.is-menu-open.is-menu-visible .front-page-brand__logo--white {
		opacity: 1;
	}

	.site-header.front-page-header.is-sticky.is-menu-open .front-page-nav-toggle {
		border-color: rgb(255 255 255 / 45%);
		background-color: transparent;
		color: var(--color-white);
	}

	.site-header.front-page-header.is-sticky.is-menu-open .front-page-nav {
		display: block;
		grid-column: 1 / -1;
		align-self: start;
		margin-block-start: clamp(2.25rem, 8vh, 4rem);
		padding: 0;
	}

	.site-header.front-page-header.is-sticky.is-menu-open .front-page-nav__link {
		color: var(--color-white);
		text-shadow: none;
	}

	.site-header.front-page-header.is-sticky.is-menu-open .front-page-header__actions {
		display: block;
		grid-column: 1 / -1;
		margin-block-start: clamp(1.5rem, 4vh, 2.5rem);
	}

	.site-header.front-page-header.is-sticky.is-menu-open .front-page-header__cta {
		display: flex;
		justify-content: center;
		width: 100%;
		min-height: var(--header-cta-min-height);
		padding-inline: var(--header-cta-padding-inline);
		border-color: var(--color-brand-beige);
		background-color: var(--color-brand-beige);
		color: var(--color-primary);
		box-shadow: none;
	}

	.site-header.front-page-header.is-menu-open .front-page-header__socials {
		color: var(--color-white);
	}

	.site-header.front-page-header.is-menu-open .front-page-header__socials a {
		border-color: rgb(255 255 255 / 30%);
	}

	.front-page-hero__actions .button--accent {
		gap: 0.5rem;
		box-shadow: 0 0.375rem 0.875rem rgb(29 25 21 / 18%);
	}

	.front-page-hero__cta-icon {
		display: block;
		flex: 0 0 auto;
		width: 0.9375rem;
		height: 0.9375rem;
	}

	.front-page-hero__actions .button--outline {
		border-color: rgb(255 255 255 / 76%);
		background-color: rgb(255 255 255 / 10%);
		box-shadow: none;
	}
}

@media (min-width: 48.9375rem) and (max-width: 63.9375rem) {
	body.admin-bar .site-header.is-menu-open {
		inset: 2rem 0 0;
		height: calc(100dvh - 2rem);
	}

	body.admin-bar .site-header.front-page-header.is-sticky.is-menu-open {
		inset: 2rem 0 0;
		min-height: calc(100dvh - 2rem);
		height: calc(100dvh - 2rem);
	}
}

@media (max-width: 48.875rem) {
	body.admin-bar .site-header.front-page-header {
		top: 2.875rem;
	}

	body.admin-bar .site-header.front-page-header.front-page-header--over-hero {
		top: 2.875rem;
	}

	body.admin-bar .site-header.front-page-header.front-page-header--over-hero.is-sticky {
		top: 2.875rem;
	}

	body.admin-bar .site-header.front-page-header.is-sticky.is-menu-open {
		inset: 2.875rem 0 0;
		min-height: calc(100dvh - 2.875rem);
		height: calc(100dvh - 2.875rem);
	}
}

@media (min-width: 48rem) {
	.site-footer__primary {
		grid-template-columns: minmax(16rem, 0.8fr) minmax(24rem, 1.2fr);
		gap: clamp(4rem, 7vw, 7rem);
	}

	.site-footer__bottom {
		grid-template-columns: minmax(0, 1fr) auto;
		column-gap: var(--space-xl);
		align-items: center;
		padding-inline-end: 4rem;
	}

	.site-footer__bottom-group--legal {
		display: flex;
		flex-wrap: wrap;
		align-items: baseline;
		gap: var(--space-sm) 0.5rem;
	}

	.site-footer__legal {
		display: flex;
		align-items: baseline;
	}

	.site-footer__legal::before {
		margin-inline-end: 0.5rem;
		content: "·";
	}

	.site-footer__bottom-group--utility {
		justify-content: end;
		white-space: nowrap;
	}
}

@media (min-width: 64rem) {
	.site-footer__bottom {
		padding-inline-end: 0;
	}

	.site-footer__institutional {
		margin-top: clamp(0.875rem, 1.25vw, 1.125rem);
	}

	.site-header .front-page-nav {
		padding: 0;
		background-color: transparent;
		box-shadow: none;
	}

	.site-header.front-page-header.front-page-header--over-hero .front-page-nav {
		padding: 0;
	}

	.site-header .front-page-nav__link {
		padding-inline: 0.375rem;
		font-size: clamp(0.825rem, 0.94vw, 0.875rem);
		text-shadow: none;
	}

	.site-header .front-page-nav__link:hover {
		color: var(--color-primary-hover);
		text-decoration: underline;
		text-decoration-thickness: 0.0625rem;
		text-underline-offset: 0.35em;
	}

	.front-page-nav .sub-menu {
		position: absolute;
		top: 100%;
		left: 0;
		z-index: 2;
		display: grid;
		min-width: 17rem;
		gap: 0.125rem;
		padding: 0.625rem;
		border: 0.0625rem solid var(--color-border);
		border-radius: var(--radius-sm);
		background-color: var(--color-surface);
		box-shadow: 0 0.75rem 2rem rgb(29 25 21 / 12%);
		opacity: 0;
		transform: translateY(-0.375rem);
		visibility: hidden;
		pointer-events: none;
		transition: opacity var(--transition-fast), transform var(--transition-fast), visibility 0s linear var(--transition-fast);
	}

	.front-page-nav .menu-item-has-children:hover > .sub-menu,
	.front-page-nav .menu-item-has-children:focus-within > .sub-menu {
		opacity: 1;
		transform: translateY(0);
		visibility: visible;
		pointer-events: auto;
		transition-delay: 0s;
	}

	.site-header.front-page-header .front-page-nav .sub-menu .front-page-nav__link {
		min-height: 2.5rem;
		padding: 0.5rem 0.625rem;
		border-radius: var(--radius-sm);
		color: var(--color-primary);
		font-size: 0.8125rem;
		font-weight: 600;
		letter-spacing: normal;
		text-shadow: none;
		text-transform: none;
		white-space: nowrap;
	}

	.front-page-header--over-hero .front-page-nav__link {
		text-shadow: 0 0.125rem 0.75rem rgb(29 25 21 / 35%);
	}

	.site-header.front-page-header.front-page-header--over-hero:not(.is-sticky) .front-page-nav__link:hover {
		color: var(--color-white);
	}

	.site-header.front-page-header.is-sticky .front-page-nav__link:hover {
		color: var(--color-primary-hover);
	}

	.site-header.front-page-header .front-page-nav .sub-menu .front-page-nav__link:hover,
	.site-header.front-page-header .front-page-nav .sub-menu .front-page-nav__link:focus,
	.site-header.front-page-header .front-page-nav .sub-menu .front-page-nav__link:focus-visible,
	.site-header.front-page-header .front-page-nav .sub-menu .current-menu-item > .front-page-nav__link,
	.site-header.front-page-header .front-page-nav .sub-menu .current-menu-parent > .front-page-nav__link,
	.site-header.front-page-header .front-page-nav .sub-menu .current-menu-ancestor > .front-page-nav__link,
	.site-header.front-page-header .front-page-nav .sub-menu .is-current-anchor > .front-page-nav__link {
		background-color: var(--color-surface-warm);
		color: var(--color-primary-hover);
		text-decoration: none;
	}

	.site-header .front-page-header__cta {
		min-height: 2.875rem;
		padding-inline: 1.5rem;
	}
}

/* --------------------------------------------------------------------------
 * Events archive
 * -------------------------------------------------------------------------- */

.events-archive__content {
	padding-block: clamp(2rem, 5vw, 4rem) clamp(4.5rem, 10vw, 9rem);
	background-color: var(--color-canvas);
}

.events-archive__listing-header h2 {
	margin-block-start: 0;
	color: var(--color-primary);
}

.events-archive__listing-header .section-eyebrow + h2 {
	margin-block-start: var(--space-eyebrow-title);
}

.events-archive__listing + .events-archive__listing {
	margin-block-start: clamp(3.5rem, 8vw, 6.5rem);
}

.events-archive__listing + .events-archive__past {
	margin-block-start: clamp(4.5rem, 9vw, 7rem);
}

.events-archive__listing-header {
	max-width: 34rem;
	margin-block-end: var(--space-xl);
}

.events-archive__grid {
	display: grid;
	gap: var(--space-lg);
	margin: 0;
	padding: 0;
	list-style: none;
}

.event-card--archive .event-card__media {
	aspect-ratio: 16 / 9;
}

.event-card__type {
	margin: 0 0 var(--space-sm);
	color: var(--color-accent-strong);
	font-size: var(--font-size-eyebrow);
	font-weight: 600;
	letter-spacing: var(--letter-spacing-label);
	line-height: 1.3;
	text-transform: uppercase;
}

.event-card--archive .event-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	align-items: center;
}

.event-card__excerpt {
	margin: 0 0 var(--space-lg);
	color: var(--color-text-secondary);
	font-size: var(--font-size-card-body);
	line-height: var(--line-height-card-body);
}

.events-archive__empty {
	max-width: 42rem;
}

.events-archive__empty h2 {
	color: var(--color-primary);
}

.events-archive__empty p {
	margin-block-start: var(--space-sm);
}

.events-archive__past .events-archive__listing-header h2 {
	color: var(--color-secondary);
	font-size: clamp(2rem, 3.5vw, 2.75rem);
}

@media (min-width: 42rem) {
	.events-archive__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 75rem) {
	.events-archive__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* --------------------------------------------------------------------------
 * Antica Tifernum Metaurense
 * -------------------------------------------------------------------------- */

.tifernum-page {
	padding-block-end: clamp(4rem, 9vw, 8rem);
}

.tifernum-page__introduction {
	padding-block: clamp(2.5rem, 6vw, 5rem);
}

.tifernum-page__introduction-content {
	max-width: 52rem;
	font-size: var(--font-size-lead);
	line-height: var(--line-height-lead);
}

.tifernum-page__introduction-content > * + * {
	margin-block-start: var(--space-md);
}

.tifernum-page__sections {
	padding-block-start: clamp(2rem, 5vw, 4rem);
}

.tifernum-section + .tifernum-section {
	margin-block-start: clamp(4rem, 9vw, 7rem);
}

.tifernum-section {
	scroll-margin-top: 6.75rem;
}

.tifernum-section__header {
	max-width: 42rem;
	margin-block-end: clamp(1.75rem, 4vw, 3rem);
}

.tifernum-section__header h2,
.tifernum-closing h2 {
	color: var(--color-primary);
}

.cultural-grid {
	display: grid;
	gap: clamp(2.5rem, 6vw, 4.5rem) clamp(1.5rem, 4vw, 3rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cultural-place-card__media {
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: var(--radius-md);
	background-color: var(--color-surface-warm);
}

.cultural-place-card__media-link {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: inherit;
}

.cultural-place-card__media-link:focus-visible {
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: -0.1875rem;
}

.cultural-place-card__image,
.cultural-place-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
}

.cultural-place-card__image {
	object-fit: cover;
	transition: transform var(--transition-fast);
}

.cultural-place-card__media-link:hover .cultural-place-card__image,
.cultural-place-card__media-link:focus-visible .cultural-place-card__image {
	transform: scale(1.025);
}

.cultural-place-card__content {
	padding-block-start: var(--space-md);
}

.cultural-place-card__eyebrow {
	margin-block-end: var(--space-xs);
	color: var(--color-accent-strong);
	font-size: var(--font-size-eyebrow);
	font-weight: 600;
	letter-spacing: var(--letter-spacing-label);
	line-height: 1.3;
	text-transform: uppercase;
}

.cultural-place-card__title {
	color: var(--color-primary);
	font-family: var(--font-family-body);
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	line-height: 1.18;
}

.cultural-place-card__title-link {
	border-radius: var(--radius-sm);
	color: inherit;
	text-decoration-color: transparent;
	text-decoration-thickness: 0.0625rem;
	text-underline-offset: 0.2em;
	transition: text-decoration-color var(--transition-fast);
}

.cultural-place-card__title-link:hover {
	text-decoration-color: currentcolor;
}

.cultural-place-card__title-link:focus-visible {
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
}

.cultural-place-card__excerpt {
	max-width: 38rem;
	margin-block-start: var(--space-sm);
	color: var(--color-text-secondary);
	line-height: var(--line-height-card-body);
}

.cultural-place-card__link {
	margin-block-start: var(--space-sm);
}

.tifernum-closing {
	margin-block-start: clamp(4.5rem, 10vw, 8rem);
	padding-block-start: clamp(2.5rem, 6vw, 4.5rem);
	border-block-start: 0.0625rem solid var(--color-border);
}

.tifernum-closing__content {
	max-width: 48rem;
}

.tifernum-closing__visual {
	margin: var(--space-xl) 0 0;
	overflow: hidden;
	border-radius: var(--radius-md);
}

.tifernum-closing__image {
	display: block;
	width: 100%;
	height: auto;
}

.tifernum-closing .section-eyebrow {
	margin-block-end: var(--space-eyebrow-title);
}

.tifernum-closing__text {
	margin-block-start: var(--space-md);
	font-size: var(--font-size-lead);
	line-height: var(--line-height-lead);
}

.tifernum-closing__text > * + * {
	margin-block-start: var(--space-md);
}

@media (min-width: 48rem) {
	.cultural-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

}

@media (min-width: 70rem) {

	.tifernum-closing--with-image {
		display: grid;
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
		gap: clamp(2.75rem, 4vw, 3.75rem);
		align-items: start;
	}

	.tifernum-closing--with-image .tifernum-closing__content {
		max-width: 42rem;
	}

	.tifernum-closing__visual {
		margin-block-start: 0;
		aspect-ratio: 4 / 5;
	}

	.tifernum-closing__image {
		height: 100%;
		object-fit: cover;
		object-position: center;
	}
}

@media (min-width: 64rem) {
	.tifernum-section {
		scroll-margin-top: calc(var(--header-min-height) + 1.5rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	.cultural-place-card__image {
		transition: none;
	}

	.cultural-place-card__media-link:hover .cultural-place-card__image,
	.cultural-place-card__media-link:focus-visible .cultural-place-card__image {
		transform: none;
	}
}

/* --------------------------------------------------------------------------
 * Cultural place single
 * -------------------------------------------------------------------------- */

.cultural-place-page {
	padding-block: clamp(1.5rem, 4vw, 3rem) clamp(3rem, 6vw, 5rem);
	overflow-x: clip;
	background-color: var(--color-canvas);
}

.cultural-place-page__container {
	max-width: 72rem;
}

.cultural-place-page__back {
	margin-block-end: clamp(2.5rem, 6vw, 4.5rem);
}

.cultural-place-page__back .text-link::after {
	content: none;
}

.cultural-place-article__header {
	width: 100%;
	min-width: 0;
	max-width: 58rem;
	margin-inline: 0 auto;
	text-align: left;
}

.cultural-place-article__content {
	width: 100%;
	min-width: 0;
	max-width: 58rem;
	margin-inline: 0 auto;
}

.cultural-place-article__eyebrow {
	margin-block-end: var(--space-eyebrow-title);
}

.cultural-place-article__title {
	max-width: min(100%, 18ch);
	color: var(--color-primary);
	font-family: var(--font-family-display);
	font-size: clamp(2.25rem, 9.5vw, 2.75rem);
	letter-spacing: 0.025em;
	line-height: 1;
	overflow-wrap: break-word;
}

.cultural-place-article__excerpt {
	max-width: 42rem;
	margin-block-start: var(--space-md);
	font-size: var(--font-size-lead);
	line-height: var(--line-height-lead);
}

.cultural-place-article__media {
	max-width: 72rem;
	margin: clamp(2.5rem, 4vw, 4rem) auto 0;
	overflow: hidden;
	border-radius: var(--radius-lg);
}

.cultural-place-article__image {
	display: block;
	width: 100%;
	height: auto;
}

.cultural-place-article__editorial {
	display: grid;
	gap: clamp(2rem, 4vw, 3.5rem);
	margin-block-start: clamp(3rem, 5vw, 4rem);
	align-items: start;
}

.cultural-place-article__content {
	font-size: var(--font-size-body);
	line-height: var(--line-height-body);
}

.cultural-place-article__content > * + * {
	margin-block-start: var(--space-md);
}

.cultural-place-article__content > p {
	max-width: 75ch;
}

.cultural-place-article__content h2,
.cultural-place-article__content h3,
.cultural-place-article__content h4 {
	color: var(--color-primary);
}

.cultural-place-article__content h2 {
	margin-block-start: clamp(2.5rem, 6vw, 4rem);
}

.cultural-place-article__content h3,
.cultural-place-article__content h4 {
	margin-block-start: clamp(2rem, 4vw, 3rem);
}

.cultural-place-page__back,
.cultural-place-article__eyebrow {
	max-width: 100%;
	overflow-wrap: break-word;
}

.cultural-place-page__back .text-link {
	max-width: 100%;
	white-space: normal;
	overflow-wrap: break-word;
}

.cultural-place-article__content img {
	max-width: 100%;
	height: auto;
}

.cultural-place-article__content .wp-block-gallery,
.cultural-place-article__content .wp-block-image,
.cultural-place-article__content ul,
.cultural-place-article__content ol {
	margin-block: clamp(1.5rem, 4vw, 2.5rem);
}

.cultural-place-article__content a:focus-visible {
	border-radius: var(--radius-sm);
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
}

.cultural-place-article__content .cultural-place-details {
	max-width: 42rem;
	margin-block-start: clamp(1.75rem, 3vw, 2.25rem);
}

.cultural-place-details__list {
	display: grid;
	gap: 1.25rem clamp(1.5rem, 3vw, 2rem);
	margin: 0;
}

.cultural-place-details__item {
	min-width: 0;
}

.cultural-place-details__item dt {
	margin-block-end: 0.375rem;
	color: var(--color-accent-strong);
	font-size: var(--font-size-eyebrow);
	font-weight: 600;
	letter-spacing: var(--letter-spacing-label);
	line-height: 1.35;
	text-transform: uppercase;
}

.cultural-place-details__item dd,
.cultural-place-details__item address {
	margin: 0;
}

.cultural-place-details__item address {
	font-style: normal;
}

.cultural-place-details__item span {
	display: block;
}

.cultural-place-details__item a:not(.text-link) {
	color: var(--color-secondary);
	font-weight: 600;
}

.cultural-place-details__map-link {
	margin-block-start: 0.625rem;
}

@media (min-width: 48rem) {
	.cultural-place-article__title {
		font-size: clamp(3.25rem, 7vw, 5rem);
		letter-spacing: 0.035em;
		line-height: 0.98;
	}

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

	.cultural-place-details__item:first-child {
		grid-column: 1 / -1;
	}
}

.cultural-place-facts {
	max-width: 72rem;
	margin: clamp(2.5rem, 5vw, 3.5rem) auto 0 0;
	padding: clamp(1.25rem, 3vw, 1.75rem);
	border-radius: var(--radius-md);
	background-color: var(--color-surface-warm);
}

.cultural-place-facts__title {
	color: var(--color-primary);
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	line-height: 1.15;
}

.cultural-place-facts__list {
	display: grid;
	gap: 1.25rem clamp(1.5rem, 3vw, 2rem);
	margin: var(--space-md) 0 0;
}

.cultural-place-facts__item {
	min-width: 0;
}

.cultural-place-facts__item dt {
	margin-block-end: 0.375rem;
	color: var(--color-accent-strong);
	font-size: var(--font-size-eyebrow);
	font-weight: 600;
	letter-spacing: var(--letter-spacing-label);
	line-height: 1.35;
	text-transform: uppercase;
}

.cultural-place-facts__item dd {
	margin: 0;
	color: var(--color-text-primary);
	font-size: 0.9375rem;
	line-height: 1.6;
	white-space: pre-line;
}

@media (min-width: 48rem) {
	.cultural-place-facts__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.cultural-place-facts__item--wide {
		grid-column: 1 / -1;
	}
}

.cultural-place-gallery {
	max-width: 72rem;
	margin: clamp(3rem, 5vw, 4rem) auto 0;
}

.cultural-place-gallery .activity-gallery__header {
	display: block;
	max-width: 58rem;
	margin-inline: 0 auto;
}

.cultural-visit {
	min-width: 0;
	margin: 0;
	padding: clamp(1.5rem, 2.5vw, 1.75rem);
	border-radius: var(--radius-md);
	background-color: var(--color-primary-soft);
}

.cultural-visit__header {
	max-width: none;
}

.cultural-visit__header .section-eyebrow {
	margin-block-end: var(--space-xs);
}

.cultural-visit__header h2 {
	max-width: none;
	color: var(--color-primary);
	font-size: clamp(1.375rem, 1.8vw, 1.5rem);
	line-height: 1.15;
}

.cultural-visit__header h2 + p {
	max-width: 42rem;
	margin-block-start: var(--space-sm);
	font-size: var(--font-size-body);
	line-height: var(--line-height-body);
}

.cultural-visit__layout {
	max-width: none;
	margin-block-start: clamp(1rem, 2vw, 1.25rem);
}

.cultural-visit__area {
	min-width: 0;
}

.cultural-visit__details {
	display: grid;
	gap: 1rem clamp(1.5rem, 3vw, 2rem);
	margin: 0;
}

.cultural-visit__detail + .cultural-visit__detail {
	padding-block-start: 0;
	border-block-start: 0;
}

.cultural-visit__detail dt {
	margin-block-end: 0.375rem;
	color: var(--color-accent-strong);
	font-size: var(--font-size-eyebrow);
	font-weight: 600;
	letter-spacing: var(--letter-spacing-label);
	line-height: 1.35;
	text-transform: uppercase;
}

.cultural-visit__detail dd {
	margin: 0;
	color: var(--color-text-primary);
	line-height: 1.65;
}

.cultural-visit__detail address {
	font-style: normal;
}

.cultural-visit__detail span {
	display: block;
}

.cultural-visit__detail a {
	color: var(--color-secondary);
	font-weight: 600;
	text-decoration-color: rgb(178 78 36 / 42%);
	text-decoration-thickness: 0.0625rem;
	text-underline-offset: 0.3em;
}

.cultural-visit__detail a:hover {
	color: var(--color-primary);
}

.cultural-visit__detail a:focus-visible {
	border-radius: var(--radius-sm);
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
}

@media (min-width: 48rem) {
	.cultural-visit__details {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cultural-visit__detail:last-child {
		grid-column: 1 / -1;
	}
}

@media (min-width: 68rem) {
	.cultural-place-article__editorial {
		grid-template-columns: minmax(0, 1.7fr) minmax(18rem, 0.95fr);
	}
}

@media (max-width: 70rem) {
	.event-discover-activities__grid,
	.event-related__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 42rem) {
	main h1,
	main h2,
	main h3,
	.section-eyebrow,
	.section-label,
	.button,
	.text-link {
		overflow-wrap: break-word;
	}

	.section-eyebrow,
	.section-label,
	.button,
	.text-link {
		max-width: 100%;
		white-space: normal;
	}

	.event-page {
		padding-block: var(--space-lg) 0;
	}

	.event-page__container {
		width: min(100% - (2 * var(--container-padding)), var(--container-max-width));
	}

	.event-page__topbar {
		margin-bottom: var(--space-xl);
	}

	.event-hero {
		min-height: clamp(22rem, 95vw, 26rem);
		border-radius: var(--radius-lg);
	}

	.event-hero__content {
		padding: var(--space-lg);
	}

	.event-hero__title {
		font-size: clamp(2.25rem, 9.5vw, 2.75rem);
		line-height: 0.98;
	}

	.event-information {
		margin-block: var(--space-lg) 0;
	}

	.event-information__card {
		min-height: auto;
	}

	.event-page__editorial {
		padding-block: var(--space-2xl);
	}

	.event-program__content,
	.event-description__content {
		font-size: var(--font-size-body);
	}

	.event-gallery {
		margin-block: var(--space-lg) var(--space-2xl);
	}

	.event-discover-activities,
	.event-related {
		padding-block: var(--space-2xl);
	}

	.event-page__closing {
		padding-block: var(--space-xl) var(--space-2xl);
	}

	.event-discover-activities__grid,
	.event-related__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 22.5rem) {
	.event-hero__title {
		font-size: 2.0625rem;
	}
}

/* --------------------------------------------------------------------------
 * Single activity — visit information refinement
 * -------------------------------------------------------------------------- */

.activity-page .activity-details,
.activity-page .activity-highlights {
	padding: clamp(1.5rem, 3vw, 2.25rem);
}

.activity-details__group + .activity-details__group {
	margin-block-start: clamp(1.5rem, 3vw, 2rem);
	padding-block-start: clamp(1.5rem, 3vw, 2rem);
}

.activity-details__title {
	max-width: 21ch;
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	line-height: 1.15;
}

.activity-details__subtitle {
	font-size: clamp(1.125rem, 2vw, 1.375rem);
	line-height: 1.25;
}

.activity-details__contacts {
	gap: 1.125rem;
	margin-block-start: var(--space-xl);
	padding: 0;
	list-style: none;
}

.activity-details__contact {
	display: grid;
	grid-template-columns: 2.25rem minmax(0, 1fr);
	gap: var(--space-sm);
	align-items: start;
	font-size: 1rem;
	line-height: 1.5;
}

.activity-details__icon {
	display: grid;
	width: 2.25rem;
	height: 2.25rem;
	margin-block-start: 0.125rem;
	border: 0.0625rem solid var(--color-border);
	border-radius: 50%;
	background-color: var(--color-surface-warm);
	color: var(--color-accent-strong);
	place-items: center;
}

.activity-details__icon .activity-icon {
	width: 1.125rem;
	height: 1.125rem;
}

.activity-details__contact-content {
	min-width: 0;
}

.activity-details__label {
	margin: 0 0 0.1875rem;
	color: var(--color-accent-strong);
	font-size: var(--font-size-eyebrow);
	font-weight: 600;
	letter-spacing: var(--letter-spacing-label);
	line-height: 1.35;
	text-transform: uppercase;
}

.activity-details__contact address {
	display: grid;
	font-style: normal;
}

.activity-details__contact a {
	color: var(--color-text-primary);
	font-weight: 400;
	text-decoration-color: rgb(29 25 21 / 25%);
	text-underline-offset: 0.2em;
}

.activity-details__contact a:hover {
	color: var(--color-accent-strong);
	text-decoration-color: currentcolor;
}

.activity-details__price {
	display: grid;
	gap: 0.1875rem;
	margin-block-start: var(--space-lg);
	font-size: var(--font-size-card-body);
}

.activity-details__links {
	margin-block-start: var(--space-xl);
}

.activity-details__links ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	margin: 0;
	padding: 0;
	list-style: none;
}

.activity-details__links a {
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	padding-inline: var(--space-md);
	border: 0.0625rem solid var(--color-border);
	border-radius: var(--radius-pill);
	color: var(--color-primary);
	font-size: var(--font-size-action);
	font-weight: 600;
	text-decoration: none;
	transition: border-color var(--transition-fast), background-color var(--transition-fast), color var(--transition-fast);
}

.activity-details__links a:hover {
	border-color: var(--color-accent-strong);
	background-color: var(--color-surface-warm);
	color: var(--color-accent-strong);
}

.activity-details__links a:focus-visible {
	outline: 0.1875rem solid var(--color-focus);
	outline-offset: 0.1875rem;
}

.activity-highlights__list {
	gap: 0;
	margin: var(--space-lg) 0 0;
	padding: 0;
	list-style: none;
}

.activity-highlights__list li {
	padding-block: 1rem;
	color: var(--color-text-primary);
}

.activity-highlights__list li:first-child {
	padding-block-start: 0;
}

.activity-highlights__list li + li {
	border-top: 0.0625rem solid var(--color-border);
}

.activity-highlights__item-title {
	margin: 0;
	color: var(--color-primary);
	font-family: var(--font-family-base);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.35;
}

.activity-highlights__item-description {
	margin: 0.375rem 0 0;
	color: var(--color-text-secondary);
	font-size: var(--font-size-card-body);
	font-weight: 400;
	line-height: 1.55;
}

@media (min-width: 64rem) {
	.activity-page__content {
		column-gap: clamp(1.25rem, 2vw, 2rem);
	}

	.activity-details {
		display: block;
	}

	.activity-details__contacts {
		gap: 1.25rem;
	}
}

/* --------------------------------------------------------------------------
 * Single activity — visit information premium refinement
 * -------------------------------------------------------------------------- */

.activity-page .activity-details,
.activity-page .activity-highlights {
	padding: clamp(1.625rem, 3.25vw, 2.5rem);
	border-color: rgb(117 72 47 / 14%);
	box-shadow: 0 0.25rem 1rem rgb(29 25 21 / 3%);
}

.activity-details .section-eyebrow {
	margin-block-end: 0.875rem;
}

.activity-details__title {
	max-width: 22ch;
	font-size: clamp(1.4375rem, 2.25vw, 1.875rem);
	line-height: 1.18;
}

.activity-details__contacts {
	gap: clamp(1.125rem, 2.25vw, 1.375rem);
	margin-block-start: clamp(1.625rem, 3vw, 2.125rem);
}

.activity-details__icon {
	width: 2.125rem;
	height: 2.125rem;
	margin-block-start: 0.0625rem;
	border-color: rgb(117 72 47 / 20%);
}

.activity-details__icon .activity-icon {
	width: 1.0625rem;
	height: 1.0625rem;
}

.activity-details__group + .activity-details__group {
	margin-block-start: clamp(1.25rem, 2.5vw, 1.625rem);
	padding-block-start: clamp(1.25rem, 2.5vw, 1.625rem);
}

.activity-details__subtitle {
	margin-block-end: 0;
	font-size: clamp(1.0625rem, 1.8vw, 1.25rem);
	line-height: 1.3;
}

.activity-details__terms {
	margin-block-start: 0.75rem;
}

.activity-details__links {
	margin-block-start: clamp(1.25rem, 2.5vw, 1.625rem);
}

.activity-details__links ul {
	gap: 0.625rem;
}

.activity-details__links a {
	min-height: 2.75rem;
	padding-inline: 1.125rem;
	border-color: rgb(117 72 47 / 22%);
	background-color: rgb(255 255 255 / 52%);
	box-shadow: inset 0 0 0 0.0625rem rgb(255 255 255 / 32%);
	transition: border-color 200ms ease, background-color 200ms ease, box-shadow 200ms ease, color 200ms ease;
}

.activity-details__links a:hover {
	border-color: rgb(178 78 36 / 58%);
	background-color: var(--color-surface-warm);
	box-shadow: inset 0 0 0 0.0625rem rgb(178 78 36 / 10%);
}

.activity-highlights .section-eyebrow {
	margin-block-end: 1.125rem;
}

.activity-highlights__list {
	margin-block-start: 1.125rem;
}

.activity-highlights__list li {
	padding-block: clamp(1.125rem, 2.25vw, 1.375rem);
}

.activity-highlights__list li + li {
	border-color: rgb(117 72 47 / 12%);
}

.activity-highlights__item-title {
	max-width: 25ch;
	color: var(--color-primary);
	font-size: clamp(1rem, 1.65vw, 1.125rem);
	line-height: 1.4;
	text-wrap: balance;
}

.activity-highlights__item-description {
	max-width: 38ch;
	margin-block-start: 0.5rem;
	font-size: clamp(0.875rem, 1.3vw, 0.9375rem);
	line-height: 1.62;
}

@media (max-width: 47.9375rem) {
	.activity-page .activity-details,
	.activity-page .activity-highlights {
		padding: 1.5rem;
	}

	.activity-details__contacts {
		margin-block-start: 1.5rem;
	}

	.activity-details__links {
		margin-block-start: 1.375rem;
	}

	.activity-details__links ul {
		gap: var(--space-xs);
	}

	.activity-highlights__list li {
		padding-block: 1.125rem;
	}
}

/* --------------------------------------------------------------------------
 * Single activity — open visit information composition
 * -------------------------------------------------------------------------- */

.activity-visit {
	display: grid;
	grid-column: 1 / -1;
	gap: clamp(3rem, 7vw, 4.5rem);
}

.activity-visit:empty {
	display: none;
}

.activity-visit > .activity-details,
.activity-visit > .activity-highlights {
	grid-column: auto;
	align-self: start;
}

.activity-page .activity-visit > .activity-details,
.activity-page .activity-visit > .activity-highlights {
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.activity-details__title {
	max-width: 28ch;
	font-size: clamp(1.5rem, 2.25vw, 2.125rem);
	line-height: 1.15;
	text-wrap: balance;
}

.activity-details__contacts {
	gap: clamp(1rem, 2vw, 1.25rem);
	margin-block-start: clamp(1.5rem, 3vw, 2rem);
}

.activity-details__contact {
	grid-template-columns: 2.125rem minmax(0, 1fr);
	gap: var(--space-sm);
}

.activity-details__contact-content,
.activity-details__contact-content a {
	min-width: 0;
	overflow-wrap: anywhere;
}

.activity-details__group + .activity-details__group {
	margin-block-start: clamp(1.5rem, 3vw, 2rem);
	padding-block-start: clamp(1.5rem, 3vw, 2rem);
	border-top-color: rgb(29 25 21 / 7%);
}

.activity-details__links {
	margin-block-start: clamp(1.25rem, 2.5vw, 1.75rem);
}

.activity-details__links ul {
	gap: 0.25rem 1.5rem;
}

.activity-details__links a {
	min-height: 0;
	padding: 0.625rem 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--color-primary);
	text-decoration: underline;
	text-decoration-color: rgb(117 72 47 / 30%);
	text-underline-offset: 0.3em;
	transition: color var(--transition-fast), text-decoration-color var(--transition-fast);
}

.activity-details__links a:hover {
	border: 0;
	background: transparent;
	box-shadow: none;
	color: var(--color-accent-strong);
	text-decoration-color: currentcolor;
}

.activity-highlights .section-eyebrow {
	margin-block-end: 0;
}

.activity-highlights__list {
	gap: 0;
	margin-block-start: clamp(1.5rem, 3vw, 2rem);
}

.activity-highlights__list li {
	display: block;
	padding-block: clamp(1.125rem, 2.5vw, 1.5rem);
}

.activity-highlights__list li:first-child {
	padding-block-start: 0;
}

.activity-highlights__list li + li {
	border-top-color: rgb(29 25 21 / 7%);
}

.activity-highlights__item-title,
.activity-highlights__item-description {
	max-width: none;
}

.activity-highlights__item-description {
	margin-block-start: 0.5rem;
}

@media (min-width: 64rem) {
	.activity-visit {
		grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
		gap: clamp(3rem, 5vw, 5rem);
		align-items: start;
	}

	.activity-visit > :only-child {
		grid-column: 1 / -1;
		width: min(100%, 52rem);
	}

	.activity-highlights__list li {
		display: grid;
		grid-template-columns: minmax(9rem, 0.3fr) minmax(0, 0.7fr);
		gap: clamp(1.5rem, 3vw, 2.5rem);
		align-items: start;
	}

	.activity-highlights__item-description {
		margin-block-start: 0;
	}
}

/* Single activity — contextual navigation and map action. */

.activity-page {
	padding-block-start: clamp(1.25rem, 2vw, 2.25rem);
}

.activity-page__contextual-link {
	margin-block: 0 clamp(1.25rem, 1.75vw, 2rem);
}

.activity-details__map-link {
	display: inline-flex;
	max-width: 100%;
	align-items: center;
	margin-block-start: 0.375rem;
	padding-block: 0.625rem;
	border: 0;
	background: transparent;
	box-shadow: none;
	color: var(--color-primary);
	text-decoration: underline;
	text-decoration-color: rgb(117 72 47 / 30%);
	text-underline-offset: 0.3em;
}

.activity-details__map-link:hover {
	color: var(--color-accent-strong);
	text-decoration-color: currentcolor;
}

/* Single activity — available items and accessibility. */

.activity-details__feature-section + .activity-details__feature-section {
	margin-block-start: clamp(1.5rem, 3vw, 2rem);
	padding-block-start: clamp(1.5rem, 3vw, 2rem);
	border-top: 0.0625rem solid rgb(29 25 21 / 7%);
}

.activity-details__feature-section .activity-details__subtitle {
	margin-block-start: 0;
}

.activity-details__terms {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.625rem 1.5rem;
}

.activity-details__terms li {
	display: grid;
	grid-template-columns: 0.5rem minmax(0, 1fr);
	gap: 0.625rem;
	align-items: start;
	min-width: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--color-text-primary);
	font-size: var(--font-size-meta);
	line-height: 1.5;
}

.activity-details__terms li::before {
	width: 0.375rem;
	height: 0.375rem;
	margin-block-start: 0.55em;
	border-radius: 50%;
	background-color: var(--color-accent-strong);
	content: "";
}

.activity-details__terms--accessibility li {
	background: transparent;
}

.activity-details__terms--accessibility li::before {
	background-color: var(--color-primary);
}

@media (min-width: 64rem) {
	.activity-details__terms:not(.activity-details__terms--accessibility) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* --------------------------------------------------------------------------
 * Single activity — second editorial art direction
 * -------------------------------------------------------------------------- */

.activity-page .activity-editorial:not(:has(.activity-video)) {
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(2.5rem, 6vw, 4rem);
}

.activity-story__title {
	max-width: 19ch;
	font-size: clamp(1.625rem, 2.4vw, 1.9375rem);
	line-height: 1.08;
	text-wrap: balance;
}

.activity-story__content {
	max-width: 36rem;
	line-height: 1.68;
}

.activity-gallery__grid {
	gap: 0.625rem;
}

.activity-gallery__all {
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	justify-content: flex-start;
	gap: 0.375rem;
	padding: 0.5rem 0.125rem;
	margin: 1rem 0 0;
	border: 0;
	border-radius: 0;
	background-color: transparent;
	box-shadow: none;
	color: var(--color-accent-strong);
	text-decoration: none;
	transition: background-size var(--transition-fast), color var(--transition-fast);
}

.activity-gallery__all span {
	display: none;
}

.activity-gallery__all::after {
	display: inline-block;
}

.activity-gallery__all:hover {
	background-color: transparent;
	color: var(--color-primary);
}

.activity-details__contacts {
	gap: clamp(0.875rem, 1.5vw, 1rem);
	margin-block-start: clamp(1.25rem, 2vw, 1.5rem);
}

.activity-details__group + .activity-details__group {
	margin-block-start: clamp(1.25rem, 2vw, 1.5rem);
	padding-block-start: clamp(1.25rem, 2vw, 1.5rem);
}

.activity-details__links {
	margin-block-start: 1.125rem;
}

.activity-details__links + .activity-details__social-links {
	margin-block-start: 0.875rem;
}

.activity-details__links-label {
	margin: 0 0 0.25rem;
	color: var(--color-accent-strong);
	font-size: var(--font-size-eyebrow);
	font-weight: 600;
	letter-spacing: var(--letter-spacing-label);
	line-height: 1.35;
	text-transform: uppercase;
}

.activity-details__social-links ul {
	gap: 0.25rem 1.5rem;
}

.activity-details__links a {
	min-height: 2.75rem;
	align-items: center;
	padding-block: 0.625rem;
	overflow-wrap: anywhere;
}

.activity-highlights__list {
	margin-block-start: 1.125rem;
}

.activity-highlights__list li {
	display: block;
	padding-block: 1.25rem;
}

.activity-highlights__list li + li {
	border-top-color: rgb(29 25 21 / 5%);
}

.activity-highlights__item-title {
	max-width: none;
	font-size: clamp(1.0625rem, 1.7vw, 1.1875rem);
	line-height: 1.3;
}

.activity-highlights__item-description {
	max-width: 48rem;
	margin-block-start: 0.5rem;
	line-height: 1.58;
}

@media (min-width: 64rem) {
	.activity-page .activity-editorial:not(:has(.activity-video)) {
		grid-template-columns: minmax(20rem, 0.82fr) minmax(0, 1.08fr);
		gap: clamp(2.5rem, 4vw, 3.75rem);
		align-items: start;
	}

	.activity-page .activity-editorial:not(:has(.activity-video)) > :only-child {
		grid-column: 1 / -1;
	}

	.activity-visit {
		grid-template-columns: minmax(18rem, 0.58fr) minmax(0, 1fr);
		gap: clamp(3rem, 5vw, 4.75rem);
	}

}

@media (max-width: 47.9375rem) {
	.activity-highlights__list {
		margin-block-start: 1rem;
	}

	.activity-highlights__list li {
		padding-block: 1rem;
	}
}
