:root {
	--df-navy-950: #03283d;
	--df-navy-900: #043650;
	--df-navy-800: #07516d;
	--df-ocean-700: #08738f;
	--df-cyan-600: #0d9fba;
	--df-cyan-500: #19b6ca;
	--df-cyan-100: #dff7fa;
	--df-sand-100: #f5f0e8;
	--df-cream: #fffdf9;
	--df-ink: #153042;
	--df-muted: #526976;
	--df-border: #d8e1e5;
	--df-danger: #b42318;
	--df-success: #18794e;
	--df-radius-sm: .375rem;
	--df-radius: .75rem;
	--df-radius-lg: 1.25rem;
	--df-shadow: 0 1rem 2.5rem rgba( 3, 40, 61, .12 );
	--df-font-display: Georgia, 'Times New Roman', serif;
	--df-font-body: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

html {
	overflow-x: clip;
	scroll-behavior: smooth;
}

body {
	background: var(--df-cream);
	color: var(--df-ink);
	font-family: var(--df-font-body);
	font-size: 1rem;
	line-height: 1.65;
	overflow-x: clip;
}

h1,
h2,
h3,
h4,
h5,
h6,
.display-font {
	color: var(--df-navy-950);
	font-family: var(--df-font-display);
	font-weight: 400;
}

a {
	color: var(--df-ocean-700);
	text-decoration: none;
}

a:hover,
a:focus,
a:focus-visible {
	color: var(--df-navy-900);
	text-decoration: none;
}

:focus-visible {
	border-radius: .15rem;
	outline: .2rem solid #ffbf47 !important;
	outline-offset: .2rem;
}

.skip-link {
	background: #fff;
	color: #000;
	font-weight: 700;
	left: 1rem;
	padding: .75rem 1rem;
	position: fixed;
	top: -10rem;
	z-index: 10000;
}

.skip-link:focus {
	top: 1rem;
}

.utility-bar,
.navbar,
.offcanvas,
.footer-main {
	background: var(--df-navy-950);
	color: #fff;
}

.utility-bar {
	border-bottom: 1px solid rgba(255, 255, 255, .18);
	font-size: .875rem;
	padding-block: .4rem;
}

.utility-bar a,
.site-footer a {
	color: #fff;
}

.utility-contact {
	align-items: center;
	display: flex;
	flex: 0 0 auto;
	gap: .65rem;
}

.utility-contact > span {
	color: rgba(255, 255, 255, .5);
}

.utility-actions {
	align-items: center;
	display: flex;
	gap: 1.25rem;
}

@media (max-width: 991.98px) {
	.utility-bar .container-xl {
		justify-content: flex-end !important;
	}

	.utility-message,
	.utility-contact {
		display: none;
	}
}

.navbar {
	min-height: 5rem;
}

.navbar > .container-xl > .d-flex {
	flex: 0 0 auto;
}

.navbar-brand,
.footer-brand {
	color: #fff;
	font-family: var(--df-font-display);
	font-size: clamp(1.35rem, 3vw, 2rem);
	letter-spacing: .025em;
	text-decoration: none;
}

.custom-logo {
	height: auto;
	max-height: 4rem;
	width: auto;
}

.navbar-nav a {
	color: #fff;
	display: block;
	font-weight: 650;
	padding: .85rem 1rem;
	text-decoration: none;
}

.navbar-nav a:hover,
.navbar-nav a:focus-visible,
.navbar-nav .current-menu-item > a,
.navbar-nav .current-menu-ancestor > a {
	color: var(--df-cyan-500);
}

.navbar-nav .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.navbar-nav .menu-item-has-children > a::after {
	border-bottom: .12rem solid currentColor;
	border-right: .12rem solid currentColor;
	content: '';
	display: inline-block;
	height: .48rem;
	margin-left: .55rem;
	transform: rotate(45deg) translateY(-.18rem);
	transition: transform .2s ease;
	width: .48rem;
}

.language-switcher {
	display: flex;
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
}

.language-switcher li + li::before {
	color: rgba(255, 255, 255, .5);
	content: '|';
	margin-inline: .5rem;
}

.language-switcher a,
.language-switcher span {
	color: #fff;
	font-size: .875rem;
	font-weight: 700;
	text-decoration: none;
	text-transform: uppercase;
}

.navbar-toggler {
	align-items: center;
	background: var(--df-ocean-700);
	border: 0;
	border-radius: 0;
	color: #fff;
	display: flex;
	gap: .45rem;
	min-height: 3rem;
	padding: .55rem .75rem;
}

.navbar-toggler-icon {
	filter: brightness(0) invert(1);
}

.menu-label {
	font-size: .8rem;
	font-weight: 700;
}

.offcanvas-header {
	border-bottom: 1px solid rgba(255,255,255,.2);
}

.offcanvas-title {
	color: #fff;
}

.btn {
	border-radius: var(--df-radius-sm);
	font-weight: 700;
	min-height: 2.75rem;
	padding: .65rem 1.1rem;
}

.btn-primary {
	background: var(--df-ocean-700);
	border-color: var(--df-ocean-700);
}

.btn-primary:hover,
.btn-primary:focus-visible {
	background: var(--df-navy-800);
	border-color: var(--df-navy-800);
}

.btn-outline-light:hover {
	color: var(--df-navy-950);
}

.page-hero {
	background-color: var(--df-navy-800);
	color: #fff;
	isolation: isolate;
	min-height: clamp(22rem, 62vh, 44rem);
	position: relative;
}

.page-hero::after {
	background: linear-gradient(90deg, rgba(3,40,61,.96) 0%, rgba(3,40,61,.72) 46%, rgba(3,40,61,.12) 100%);
	content: '';
	inset: 0;
	position: absolute;
	z-index: -1;
}

.page-hero h1,
.page-hero h2 {
	color: #fff;
}

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

.section-eyebrow {
	color: var(--df-ocean-700);
	font-size: .8rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.page-hero .section-eyebrow,
.legal-hero .section-eyebrow,
.search-hero .section-eyebrow,
.not-found-hero .section-eyebrow {
	color: var(--df-cyan-500);
}

.section-title::after {
	background: var(--df-cyan-500);
	content: '';
	display: block;
	height: .18rem;
	margin-top: .75rem;
	width: 3rem;
}

.feature-card,
.content-card,
.diving-center-card {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius);
	height: 100%;
}

.feature-card,
.content-card {
	padding: clamp(1.25rem, 3vw, 2rem);
}

.feature-icon {
	align-items: center;
	background: var(--df-cyan-100);
	border-radius: 50%;
	color: var(--df-ocean-700);
	display: inline-flex;
	font-size: 1.5rem;
	height: 3.5rem;
	justify-content: center;
	width: 3.5rem;
}

.media-placeholder {
	align-items: center;
	background: linear-gradient(135deg, var(--df-cyan-100), #c4eaf0);
	color: var(--df-navy-800);
	display: flex;
	justify-content: center;
	min-height: 12rem;
	overflow: hidden;
}

.media-placeholder span {
	font-weight: 700;
	padding: 1rem;
	text-align: center;
}

.entry-content > * {
	margin-inline: auto;
	max-width: 78rem;
}

.entry-content > .alignwide {
	max-width: 90rem;
}

.entry-content > .alignfull {
	max-width: none;
}

.form-control,
.form-select {
	border-color: #9aacb5;
	min-height: 2.75rem;
}

.form-control:focus,
.form-select:focus {
	border-color: var(--df-ocean-700);
	box-shadow: 0 0 0 .2rem rgba(8,123,153,.2);
}

.footer-newsletter {
	background: #dff4f7;
}

.footer-funding {
	background: var(--df-sand-100);
}

.footer-funding > .container-xl {
	max-width: 70rem;
}

.footer-funding-card {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius);
	box-shadow: var(--df-shadow);
	overflow: hidden;
}

.footer-funding-logos {
	align-items: center;
	display: grid;
	gap: clamp(.75rem, 3vw, 2rem);
	grid-template-columns: repeat(3, minmax(0, 1fr));
	padding: 1rem clamp(1.25rem, 3vw, 2.5rem);
}

.footer-funding-logos img {
	height: clamp(5.5rem, 7.5vw, 6.5rem);
	margin-inline: auto;
	max-width: 100%;
	object-fit: contain;
	transform: scale(1.25);
	width: auto;
}

.footer-logo-crop {
	align-items: center;
	display: flex;
	height: 6.5rem;
	justify-content: center;
	overflow: hidden;
	width: 100%;
}

.footer-logo-crop img {
	flex: 0 0 auto;
	height: auto;
	max-width: none;
	transform: none;
	width: 25rem;
}

.footer-funding-copy {
	background: linear-gradient(110deg, var(--df-navy-950), var(--df-ocean-700));
	color: #fff;
	padding: clamp(1.4rem, 2.5vw, 2rem);
}

.footer-funding-copy h2 {
	color: #fff;
	font-size: clamp(1.35rem, 2vw, 1.75rem);
	max-width: 60rem;
}

.footer-funding-copy p:last-child {
	max-width: 66rem;
}

.footer-funding-kicker {
	color: var(--df-cyan-100);
	font-size: .8rem;
	font-weight: 750;
	letter-spacing: .09em;
	text-transform: uppercase;
}

@media (max-width: 767.98px) {
	.footer-funding-logos {
		grid-template-columns: 1fr;
	}

	.footer-funding-logos img {
		height: 6.5rem;
		transform: scale(1.15);
	}

	.footer-logo-crop {
		height: 6.5rem;
	}

	.footer-logo-crop img {
		width: 22rem;
	}
}

.footer-main h2,
.footer-main h3,
.footer-main h4 {
	color: #fff;
}

.footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-menu a {
	display: inline-block;
	padding-block: .3rem;
}

.footer-legal {
	border-top: 1px solid rgba(255,255,255,.2);
	font-size: .875rem;
}

.footer-legal nav {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
}

.footer-socials {
	display: flex;
	gap: .6rem;
	margin-top: 1rem;
}

.footer-socials a {
	align-items: center;
	border: 1px solid rgba(255,255,255,.6);
	border-radius: 50%;
	display: flex;
	height: 2.4rem;
	justify-content: center;
	text-decoration: none;
	width: 2.4rem;
}

.home-hero-slider {
	background: var(--df-navy-950);
	position: relative;
}

.home-hero-slider [data-home-slider-status] {
	background-color: var(--df-navy-950);
	color: #fff;
}

.home-hero-slide {
	display: flex;
	min-height: clamp(34rem, 72vh, 48rem);
}

.home-hero-slide[hidden] {
	display: none;
}

.home-hero-slide::after {
	pointer-events: none;
	z-index: 1;
}

.home-hero-slide-media {
	inset: 0;
	position: absolute;
	z-index: 0;
}

.home-hero-slide-media img,
.home-hero-slide-media video,
.home-hero-slide-media .media-placeholder {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.home-hero-slide-copy {
	align-items: center;
	display: flex;
	position: relative;
	z-index: 2;
}

.home-slider-controls {
	align-items: center;
	bottom: 1.5rem;
	display: flex;
	gap: .65rem;
	left: 50%;
	position: absolute;
	right: auto;
	top: auto;
	transform: translateX(-50%);
	z-index: 4;
}

.home-slider-controls > button,
.home-slider-dots button {
	align-items: center;
	background: rgba(3,40,61,.82);
	border: 1px solid rgba(255,255,255,.8);
	border-radius: 50%;
	color: #fff;
	display: flex;
	height: 2.75rem;
	justify-content: center;
	width: 2.75rem;
}

.home-slider-dots {
	display: flex;
	gap: .4rem;
}

.home-slider-dots button {
	background: rgba(255,255,255,.35);
	height: .85rem;
	padding: 0;
	width: .85rem;
}

.home-slider-dots button[aria-current="true"] {
	background: var(--df-cyan-500);
	border-color: #fff;
}

.home-video-transcript {
	background: rgba(3,40,61,.86);
	border: 1px solid rgba(255,255,255,.6);
	border-radius: var(--df-radius-sm);
	color: #fff;
	margin-top: 1rem;
	max-height: 10rem;
	overflow: auto;
	padding: .65rem .85rem;
}

.home-video-transcript summary {
	cursor: pointer;
	font-weight: 700;
}

.home-media-frame,
.home-split-media,
.shipwreck-media,
.home-map-panel {
	overflow: hidden;
}

.home-media-frame {
	border-radius: var(--df-radius-sm);
	box-shadow: var(--df-shadow);
}

.home-highlights {
	background: var(--df-sand-100);
}

.home-split,
.home-map-plan {
	background: linear-gradient(110deg, var(--df-sand-100), var(--df-cream));
}

.home-split-copy {
	margin-inline: auto;
	max-width: 44rem;
	padding: clamp(2.5rem, 6vw, 5.5rem);
	width: 100%;
}

.home-split-media,
.shipwreck-media,
.home-map-panel {
	min-height: 24rem;
}

.home-split-media > img,
.shipwreck-media > img,
.home-map-panel > img,
.home-split-media > .media-placeholder,
.shipwreck-media > .media-placeholder,
.home-map-panel > .media-placeholder {
	height: 100%;
	min-height: inherit;
	object-fit: cover;
}

.shipwreck-band {
	background: var(--df-navy-900);
	color: #fff;
}

.shipwreck-copy {
	align-items: center;
	display: flex;
	gap: clamp(1.25rem, 4vw, 3rem);
	margin-inline: auto;
	max-width: 58rem;
	padding: clamp(2.5rem, 5vw, 4rem);
}

.shipwreck-number {
	border-right: 1px solid var(--df-cyan-500);
	color: var(--df-cyan-500);
	font-family: var(--df-font-display);
	font-size: clamp(4.5rem, 10vw, 8rem);
	line-height: .8;
	margin: 0;
	padding-right: clamp(1rem, 3vw, 2rem);
}

.dive-site-card {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	height: 100%;
	overflow: hidden;
}

.dive-site-card h3 a {
	color: var(--df-navy-950);
	text-decoration: none;
}

.travel-list {
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
}

.travel-list li {
	border-bottom: 1px solid var(--df-border);
	display: grid;
	gap: .15rem;
	padding: .8rem 0 .8rem 2.75rem;
	position: relative;
}

.travel-list li::before {
	align-items: center;
	background: var(--df-cyan-100);
	border-radius: 50%;
	color: var(--df-ocean-700);
	content: '→';
	display: flex;
	height: 2rem;
	justify-content: center;
	left: 0;
	position: absolute;
	top: .8rem;
	width: 2rem;
}

.travel-list span {
	color: var(--df-muted);
}

.gallery-strip {
	display: grid;
	gap: .5rem;
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.gallery-strip .media-placeholder {
	min-height: 9rem;
}

.discover-hero {
	background-image: linear-gradient(135deg, var(--df-navy-900), var(--df-ocean-700));
	background-position: center;
	background-size: cover;
	min-height: clamp(25rem, 54vh, 38rem);
}

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

.discover-fact {
	align-items: center;
	border-bottom: 1px solid var(--df-border);
	border-right: 1px solid var(--df-border);
	display: flex;
	flex-direction: column;
	gap: .35rem;
	justify-content: center;
	min-height: 11rem;
	padding: 1.25rem;
	text-align: center;
}

.discover-fact:nth-child(even) {
	border-right: 0;
}

.discover-fact:nth-last-child(-n+2) {
	border-bottom: 0;
}

.discover-fact strong {
	color: var(--df-ocean-700);
}

.discover-full-media {
	min-height: 32rem;
	overflow: hidden;
}

.discover-full-media > img,
.discover-full-media > .media-placeholder {
	height: 100%;
	min-height: inherit;
	object-fit: cover;
}

.discover-mini-feature {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: .35rem;
	text-align: center;
}

.discover-mini-feature > span {
	color: var(--df-cyan-600);
	font-size: 2rem;
}

.discover-mini-feature small {
	color: var(--df-muted);
}

.discover-history {
	background: var(--df-sand-100);
}

.discover-timeline {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
	position: relative;
}

.discover-timeline::before {
	background: var(--df-cyan-600);
	content: '';
	height: 2px;
	left: 0;
	position: absolute;
	right: 0;
	top: 2.75rem;
}

.discover-timeline li {
	padding: 0 1rem;
	position: relative;
	text-align: center;
}

.timeline-year {
	display: block;
	font-weight: 700;
	margin-bottom: 2.4rem;
}

.discover-timeline li::before {
	background: #fff;
	border: .35rem solid var(--df-ocean-700);
	border-radius: 50%;
	content: '';
	height: 1.25rem;
	left: calc(50% - .625rem);
	position: absolute;
	top: 2.18rem;
	width: 1.25rem;
}

.discover-tradition,
.discover-quote {
	background: var(--df-navy-900);
	color: #fff;
}

.tradition-points strong {
	color: var(--df-cyan-100);
	display: block;
	font-size: .95rem;
	text-align: center;
}

.discover-life-card {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	height: 100%;
	overflow: hidden;
}

.discover-quote {
	background-image: linear-gradient(90deg, rgba(3,40,61,.98), rgba(7,81,109,.8));
	background-position: center;
	background-size: cover;
	position: relative;
}

.discover-quote p {
	font-family: var(--df-font-display);
	margin-inline: auto;
	max-width: 58rem;
	position: relative;
	text-align: center;
	z-index: 1;
}

.discover-travel {
	background: linear-gradient(110deg, var(--df-cream), var(--df-sand-100));
}

.diving-hero {
	background-image: linear-gradient(135deg, var(--df-navy-900), var(--df-ocean-700));
	background-position: center;
	background-size: cover;
}

.diving-highlight {
	border-right: 1px solid var(--df-border);
	height: 100%;
	padding: 1.5rem;
}

.diving-highlights .col-lg-3:last-child .diving-highlight {
	border-right: 0;
}

.dive-sites-directory {
	background: #fff;
}

.dive-filter-form {
	background: var(--df-sand-100);
	border-radius: var(--df-radius);
	padding: 1rem;
}

.dive-directory-card {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	height: 100%;
	overflow: hidden;
}

.dive-directory-card h3 a {
	color: var(--df-navy-950);
	text-decoration: none;
}

.dive-sites-archive-hero,
.single-dive-site-hero {
	background-image: linear-gradient(125deg, var(--df-navy-950), var(--df-ocean-700));
	background-position: center;
	background-size: cover;
}

.dive-sites-archive-filters {
	align-items: end;
	background: var(--df-sand-100);
	border-radius: var(--df-radius);
	display: grid;
	gap: 1rem;
	grid-template-columns: 1.4fr 1fr 1fr auto auto;
	padding: 1.25rem;
}

.dive-sites-archive-filters label {
	display: block;
	font-weight: 700;
	margin-bottom: .35rem;
}

.dive-sites-archive-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dive-site-archive-card {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius);
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.dive-site-card-media {
	display: block;
	position: relative;
}

.dive-site-card-media img,
.dive-site-card-media .media-placeholder {
	aspect-ratio: 3 / 2;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.dive-site-verification {
	background: rgba(3,40,61,.9);
	bottom: .75rem;
	color: #fff;
	font-size: .7rem;
	font-weight: 700;
	left: .75rem;
	padding: .3rem .55rem;
	position: absolute;
}

.dive-site-card-copy {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1.25rem;
}

.dive-site-card-copy h2 a {
	color: var(--df-navy-950);
	text-decoration: none;
}

.dive-site-taxonomies {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	margin-bottom: .75rem;
}

.dive-site-taxonomies span {
	background: var(--df-cyan-100);
	border-radius: 99rem;
	color: var(--df-ocean-700);
	font-size: .7rem;
	font-weight: 800;
	padding: .25rem .55rem;
}

.dive-site-card-copy dl {
	display: grid;
	grid-template-columns: 1fr 1fr;
	margin-block: auto 1rem;
	padding-top: 1rem;
}

.dive-site-card-copy dl > div {
	border-left: 2px solid var(--df-cyan-600);
	padding-left: .65rem;
}

.dive-site-card-copy dt {
	font-size: .72rem;
	text-transform: uppercase;
}

.dive-site-card-copy dd {
	font-weight: 700;
	margin: 0;
}

.dive-site-more {
	font-weight: 700;
}

.dive-sites-safety,
.single-site-cta {
	background: var(--df-navy-950);
	color: #fff;
}

.dive-sites-safety .container-xl,
.single-site-cta .container-xl {
	align-items: center;
	display: flex;
	gap: 2rem;
	justify-content: space-between;
	padding-block: 2.5rem;
}

.dive-sites-safety h2,
.single-site-cta h2 {
	color: #fff;
}

.dive-sites-safety p,
.single-site-cta p {
	margin: 0;
	max-width: 55rem;
}

.single-dive-site-hero .single-site-status {
	background: rgba(3,40,61,.9);
	border-left: .2rem solid var(--df-cyan-500);
	display: inline-block;
	font-weight: 700;
	padding: .5rem .75rem;
}

.single-site-nav {
	background: #fff;
	border-bottom: 1px solid var(--df-border);
	position: sticky;
	top: 0;
	z-index: 100;
}

.single-site-nav .container-xl {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x proximity;
}

.single-site-nav a {
	border-bottom: .2rem solid transparent;
	color: var(--df-navy-800);
	flex: 0 0 auto;
	font-weight: 700;
	padding: 1rem;
	scroll-snap-align: start;
	text-align: center;
	text-decoration: none;
}

.single-site-nav a:hover,
.single-site-nav a:focus-visible {
	border-bottom-color: var(--df-cyan-600);
	color: var(--df-ocean-700);
}

.single-site-nav .container-xl:focus-visible {
	outline: .18rem solid var(--df-cyan-500);
	outline-offset: -.18rem;
}

.single-dive-site-page section[id] {
	scroll-margin-top: 5rem;
}

.single-site-overview {
	display: grid;
	gap: clamp(2rem, 5vw, 5rem);
	grid-template-columns: 1.3fr .7fr;
}

.single-site-overview > aside,
.single-site-conditions aside {
	background: var(--df-sand-100);
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	padding: 1.5rem;
}

.single-site-facts > div {
	border-bottom: 1px solid var(--df-border);
	display: flex;
	justify-content: space-between;
	padding-block: .65rem;
}

.single-site-facts dd {
	font-weight: 700;
	margin: 0;
	text-align: right;
}

.single-site-conditions {
	background: var(--df-navy-900);
	color: #fff;
}

.single-site-conditions .container-xl {
	display: grid;
	gap: 2rem;
	grid-template-columns: 1.3fr .7fr;
}

.single-site-conditions h2 {
	color: #fff;
}

.single-site-conditions aside {
	color: var(--df-ink);
}

.single-site-conditions aside h2 {
	color: var(--df-navy-950);
}

.single-site-warning {
	border: 1px solid var(--df-cyan-500);
	display: grid;
	margin-top: 1.5rem;
	padding: 1rem;
}

.single-site-species {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.single-site-species article {
	background: var(--df-sand-100);
	border: 1px solid var(--df-border);
	padding: 1rem;
}

.single-site-species article > span {
	color: var(--df-cyan-600);
	font-size: 2rem;
}

.single-site-gallery-grid {
	display: grid;
	gap: .65rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.single-site-gallery-grid img,
.single-site-gallery-grid .media-placeholder {
	aspect-ratio: 3 / 2;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.dive-meta {
	color: var(--df-ocean-700);
	font-size: .9rem;
	font-weight: 700;
}

.level-panel {
	color: #fff;
	display: flex;
	justify-content: center;
	min-height: 24rem;
	padding: clamp(2.5rem, 6vw, 5rem);
}

.level-panel > div {
	max-width: 42rem;
	width: 100%;
}

.level-beginner {
	background: linear-gradient(135deg, var(--df-ocean-700), var(--df-cyan-600));
}

.level-advanced {
	background: linear-gradient(135deg, var(--df-navy-950), var(--df-navy-800));
}

.marine-life-strip {
	display: grid;
	gap: .5rem;
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.marine-life-strip article {
	background: #fff;
	border: 1px solid var(--df-border);
	overflow: hidden;
}

.marine-life-strip .media-placeholder {
	min-height: 9rem;
}

.underwater-photo {
	background: linear-gradient(110deg, var(--df-sand-100), #fff);
}

.check-list,
.safety-list {
	list-style: none;
	margin: 1.5rem 0;
	padding: 0;
}

.check-list li,
.safety-list li {
	padding: .35rem 0 .35rem 2rem;
	position: relative;
}

.check-list li::before,
.safety-list li::before {
	border: 2px solid var(--df-cyan-500);
	border-radius: 50%;
	color: var(--df-cyan-500);
	content: '✓';
	font-size: .75rem;
	font-weight: 800;
	height: 1.25rem;
	left: 0;
	line-height: 1rem;
	position: absolute;
	text-align: center;
	top: .55rem;
	width: 1.25rem;
}

.photo-collage {
	display: grid;
	gap: .5rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.photo-collage .photo-main {
	grid-row: span 2;
}

.photo-collage .media-placeholder {
	height: 100%;
	min-height: 12rem;
}

.diving-safety {
	background: var(--df-navy-950);
	color: #fff;
}

.diving-map-cta {
	background: linear-gradient(110deg, #dff4f7, var(--df-cream));
}

.diving-map-cta .media-placeholder,
.diving-map-cta img {
	min-height: 25rem;
	object-fit: cover;
}

.park-hero {
	background-image: linear-gradient(135deg, var(--df-navy-950), var(--df-ocean-700));
	background-position: center;
	background-size: cover;
}

.park-location,
.park-sustainability,
.park-code,
.park-center-cta {
	background: var(--df-sand-100);
}

.park-project-history {
	background: #fff;
}

.park-project-intro {
	align-items: center;
	display: grid;
	gap: clamp(2rem, 5vw, 5rem);
	grid-template-columns: .85fr 1.15fr;
}

.park-project-intro img,
.park-project-intro .media-placeholder {
	border-radius: var(--df-radius-sm);
	min-height: 24rem;
	object-fit: cover;
}

.park-verification-note {
	background: #fff3cd;
	border-left: .2rem solid #d7ad29;
	font-size: .85rem;
	margin-top: 1.25rem;
	padding: .75rem 1rem;
}

.park-project-timeline {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	list-style: none;
	margin: 4rem 0 0;
	padding: 0;
}

.park-project-timeline li {
	border-top: 2px solid var(--df-cyan-600);
	padding: 2rem 1rem 1rem;
	position: relative;
}

.park-project-step {
	align-items: center;
	background: var(--df-cyan-600);
	border: .2rem solid #fff;
	border-radius: 50%;
	color: #fff;
	display: flex;
	font-weight: 800;
	height: 2.5rem;
	justify-content: center;
	left: 1rem;
	position: absolute;
	top: -1.25rem;
	width: 2.5rem;
}

.park-project-timeline time {
	color: var(--df-ocean-700);
	display: block;
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .04em;
	margin-bottom: .5rem;
	text-transform: uppercase;
}

.park-project-timeline h3 {
	font-size: 1.3rem;
}

.park-project-timeline p {
	font-size: .9rem;
}

.park-fact-card {
	align-items: center;
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	display: flex;
	flex-direction: column;
	gap: .6rem;
	height: 100%;
	justify-content: center;
	min-height: 18rem;
	padding: 1.25rem;
	text-align: center;
}

.park-fact-card strong {
	color: var(--df-navy-950);
	font-family: var(--df-font-display);
	font-size: clamp(1.6rem, 4vw, 2.5rem);
	line-height: 1.12;
	max-width: 100%;
	overflow-wrap: anywhere;
}

.park-fact-card .park-fact-value-long {
	font-family: var(--df-font-body);
	font-size: clamp(1rem, 1.6vw, 1.25rem);
	font-weight: 750;
	line-height: 1.3;
}

.park-fact-card small {
	color: var(--df-muted);
}

.park-geology {
	background: var(--df-navy-900);
	color: #fff;
}

.geology-visual {
	min-height: 34rem;
	position: relative;
}

.geology-visual > img,
.geology-visual > .media-placeholder {
	height: 34rem;
	object-fit: cover;
	width: 100%;
}

.geology-label {
	background: rgba(3, 40, 61, .88);
	border-left: .2rem solid var(--df-cyan-500);
	display: flex;
	flex-direction: column;
	max-width: 16rem;
	padding: .75rem 1rem;
	position: absolute;
}

.geology-label-one {
	bottom: 12%;
	left: 4%;
}

.geology-label-two {
	bottom: 5%;
	left: 40%;
}

.geology-label-three {
	right: 4%;
	top: 8%;
}

.section-title-centered::after {
	margin-inline: auto;
}

.sustainability-pillars article {
	border-right: 1px solid var(--df-border);
	height: 100%;
	padding: 1.5rem;
	text-align: center;
}

.sustainability-pillars .col-md-4:last-child article {
	border-right: 0;
}

.diver-journey {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
	position: relative;
}

.diver-journey::before {
	border-top: 2px dashed var(--df-cyan-500);
	content: '';
	left: 10%;
	position: absolute;
	right: 10%;
	top: 1.25rem;
}

.diver-journey li {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: .6rem;
	position: relative;
	text-align: center;
}

.diver-journey li > span {
	align-items: center;
	background: var(--df-cyan-600);
	border-radius: 50%;
	color: #fff;
	display: flex;
	font-weight: 800;
	height: 2.5rem;
	justify-content: center;
	width: 2.5rem;
}

.diver-journey small {
	color: var(--df-muted);
}

.park-protection {
	background: var(--df-navy-950);
	color: #fff;
}

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

.protection-rules > div {
	align-items: center;
	border-left: 1px solid rgba(255,255,255,.25);
	display: flex;
	flex-direction: column;
	gap: .75rem;
	padding: 1rem;
	text-align: center;
}

.protection-rules span {
	color: var(--df-cyan-500);
	font-size: 2.25rem;
}

.code-grid {
	columns: 2;
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
}

.code-grid li {
	break-inside: avoid;
	padding: .45rem 0 .45rem 1.75rem;
	position: relative;
}

.code-grid li::before {
	color: var(--df-cyan-600);
	content: '✓';
	font-weight: 800;
	left: 0;
	position: absolute;
}

.guide-card {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius);
	box-shadow: var(--df-shadow);
	padding: 2rem;
}

.park-center-cta {
	border-top: 1px solid var(--df-border);
}

.archaeology-hero {
	background-image: linear-gradient(135deg, var(--df-navy-950), var(--df-ocean-700));
	background-position: center;
	background-size: cover;
}

.archaeology-count,
.archaeology-amphorae,
.archaeology-research,
.visitable-sites,
.archaeology-info-cta {
	background: var(--df-sand-100);
}

.archaeology-number {
	align-items: center;
	display: flex;
	gap: 1.25rem;
}

.archaeology-number > span {
	color: var(--df-cyan-600);
	font-family: var(--df-font-display);
	font-size: clamp(5rem, 12vw, 9rem);
	line-height: .85;
}

.archaeology-number h2 {
	font-size: clamp(2.2rem, 5vw, 4.25rem);
	line-height: .95;
}

.archaeology-periods {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
	position: relative;
}

.archaeology-periods::before {
	background: var(--df-muted);
	content: '';
	height: 1px;
	left: 5%;
	position: absolute;
	right: 5%;
	top: 2.2rem;
}

.archaeology-periods li {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: .45rem;
	position: relative;
	text-align: center;
}

.archaeology-periods li > span {
	align-items: center;
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: 50%;
	color: var(--df-cyan-600);
	display: flex;
	font-size: 1.4rem;
	height: 4.4rem;
	justify-content: center;
	width: 4.4rem;
}

.archaeology-periods small {
	color: var(--df-muted);
}

.archaeology-trade {
	background: #fff;
}

.archaeology-trade-map {
	min-height: 34rem;
}

.archaeology-trade-map > img,
.archaeology-trade-map > .media-placeholder {
	height: 100%;
	min-height: inherit;
	object-fit: cover;
}

.trade-goods,
.amphora-grid,
.visitable-steps {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 2rem;
}

.trade-goods article,
.amphora-grid article,
.visitable-steps article {
	padding: 1rem;
	text-align: center;
}

.amphora-grid article {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
}

.research-steps {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	list-style: none;
	margin: 3rem 0 0;
	padding: 0;
}

.research-steps li {
	position: relative;
}

.research-number {
	align-items: center;
	background: var(--df-cyan-600);
	border-radius: 50%;
	color: #fff;
	display: flex;
	font-weight: 800;
	height: 2.5rem;
	justify-content: center;
	left: calc(50% - 1.25rem);
	position: absolute;
	top: -1.25rem;
	width: 2.5rem;
	z-index: 1;
}

.research-steps .media-placeholder {
	min-height: 12rem;
}

.research-steps h3 {
	margin-top: 1rem;
}

.archaeology-ethics {
	background: var(--df-navy-950);
	background-position: center;
	background-size: cover;
	color: #fff;
	position: relative;
}

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

.ethics-rules > div {
	align-items: center;
	border-left: 1px solid rgba(255,255,255,.2);
	display: flex;
	flex-direction: column;
	gap: .75rem;
	padding: 1rem;
	text-align: center;
}

.ethics-rules span {
	color: var(--df-cyan-500);
	font-size: 2.25rem;
}

.archaeology-dive-cta {
	background: linear-gradient(145deg, var(--df-navy-800), var(--df-ocean-700));
	background-position: center;
	background-size: cover;
	border-radius: var(--df-radius);
	color: #fff;
	min-height: 100%;
	padding: 2rem;
	position: relative;
}

.archaeology-info-cta {
	border-top: 1px solid var(--df-border);
}

.travel-hero {
	background-image: linear-gradient(135deg, var(--df-navy-950), var(--df-ocean-700));
	background-position: center;
	background-size: cover;
}

.travel-route-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr 1fr;
}

.travel-route-card {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	padding: 1.5rem;
}

.travel-route-card dl {
	margin: 1rem 0;
}

.travel-route-card dl > div {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding-block: .35rem;
}

.travel-route-card dd {
	margin: 0;
	text-align: right;
}

.travel-notice {
	border-left: .2rem solid var(--df-cyan-600);
	color: var(--df-muted);
	font-size: .9rem;
	padding-left: 1rem;
}

.travel-local,
.travel-seasons,
.travel-useful,
.travel-bottom-cta {
	background: var(--df-sand-100);
}

.local-transport-grid,
.season-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.local-transport-grid article,
.season-grid article {
	border-right: 1px solid var(--df-border);
	padding: 1.25rem;
}

.local-transport-grid article:last-child,
.season-grid article:last-child {
	border-right: 0;
}

.travel-stay-card {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	height: 100%;
	overflow: hidden;
}

.stay-cta,
.travel-help-card {
	background: linear-gradient(110deg, var(--df-sand-100), #fff);
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	padding: 2rem;
}

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

.season-grid ul {
	margin: 0;
	padding-left: 1.2rem;
}

.travel-packing {
	background: #fff;
}

.travel-full-media {
	min-height: 36rem;
}

.travel-full-media > img,
.travel-full-media > .media-placeholder {
	height: 100%;
	min-height: inherit;
	object-fit: cover;
}

.travel-accordion {
	display: grid;
	gap: .75rem 1rem;
	grid-template-columns: 1fr 1fr;
}

.travel-accordion .accordion-item {
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	overflow: hidden;
}

.travel-map-card {
	align-items: stretch;
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	display: grid;
	grid-template-columns: 1.2fr .8fr;
	height: 100%;
	overflow: hidden;
}

.travel-map-card > div:last-child {
	padding: 2rem;
}

.travel-map-card .media-placeholder,
.travel-map-card img {
	height: 100%;
	min-height: 18rem;
	object-fit: cover;
}

.travel-help-card {
	height: 100%;
}

.experience-hero {
	background-image: linear-gradient(135deg, var(--df-navy-950), var(--df-ocean-700));
	background-position: center;
	background-size: cover;
}

.experience-lead-grid {
	display: grid;
	gap: 2rem;
	grid-template-columns: minmax(12rem, .65fr) minmax(0, 2.35fr);
}

.experience-intro {
	align-self: center;
}

.experience-beach-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.experience-card {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	height: 100%;
	overflow: hidden;
}

.experience-card > img,
.experience-card > .media-placeholder {
	aspect-ratio: 4 / 3;
	height: auto;
	object-fit: cover;
}

.experience-card-body {
	padding: 1rem;
}

.experience-card-body p,
.experience-card-body small {
	color: var(--df-muted);
	font-size: .8rem;
}

.experience-card-featured {
	grid-row: span 2;
}

.experience-card-featured > img,
.experience-card-featured > .media-placeholder {
	aspect-ratio: auto;
	height: calc(100% - 6.5rem);
	min-height: 18rem;
}

.experience-trails,
.experience-events,
.experience-map {
	background: var(--df-sand-100);
}

.experience-trail-layout {
	display: grid;
	gap: 1rem;
	grid-template-columns: .75fr 1.1fr 1.1fr 1.25fr;
}

.experience-trail-image > img,
.experience-trail-image > .media-placeholder,
.experience-trail-map > img,
.experience-trail-map > .media-placeholder {
	height: 100%;
	min-height: 23rem;
	object-fit: cover;
}

.experience-trail-list {
	display: flex;
	flex-direction: column;
	gap: .75rem;
	justify-content: center;
}

.experience-trail-list article {
	align-items: center;
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	display: grid;
	gap: .75rem;
	grid-template-columns: auto 1fr auto;
	padding: .75rem;
}

.experience-trail-list .feature-icon {
	font-size: 1rem;
	height: 2.5rem;
	width: 2.5rem;
}

.experience-flavours {
	background: linear-gradient(100deg, var(--df-navy-950), var(--df-ocean-700));
	color: #fff;
}

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

.flavour-grid > div {
	align-items: center;
	border-left: 1px solid rgba(255,255,255,.2);
	display: flex;
	flex-direction: column;
	gap: .5rem;
	padding: 2rem .5rem;
	text-align: center;
}

.flavour-icon {
	color: var(--df-cyan-500);
	font-size: 2.25rem;
}

.experience-row-layout {
	display: grid;
	gap: 2rem;
	grid-template-columns: minmax(12rem, .65fr) minmax(0, 3.35fr);
}

.experience-horizontal-cards {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.experience-horizontal-cards .experience-card-body {
	text-align: center;
}

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

.experience-activities {
	border-top: 1px solid var(--df-border);
}

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

.activity-cards .experience-card-body {
	color: var(--df-ocean-700);
	text-align: left;
}

.experience-season {
	background: linear-gradient(110deg, var(--df-ocean-700), var(--df-navy-800));
	color: #fff;
}

.season-values {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: 1fr 1fr;
}

.season-values > div {
	align-items: center;
	display: flex;
	font-weight: 700;
	gap: .75rem;
}

.experience-season-media img,
.experience-season-media .media-placeholder {
	border-radius: var(--df-radius-sm);
	min-height: 12rem;
	object-fit: cover;
}

.experience-map-layout {
	align-items: center;
	display: grid;
	gap: 1.5rem;
	grid-template-columns: 1.2fr .9fr 1.2fr;
}

.experience-map-layout img,
.experience-map-layout .media-placeholder {
	border-radius: var(--df-radius-sm);
	min-height: 18rem;
	object-fit: cover;
}

.gallery-hero {
	background-image: linear-gradient(135deg, var(--df-navy-950), var(--df-ocean-700));
	background-position: center;
	background-size: cover;
}

.gallery-filters {
	-webkit-overflow-scrolling: touch;
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	display: flex;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	padding: .25rem;
	scroll-snap-type: x proximity;
}

.gallery-filter-hint {
	align-items: center;
	color: var(--df-navy-800);
	display: flex;
	font-size: .78rem;
	font-weight: 700;
	gap: .45rem;
	justify-content: center;
	letter-spacing: .03em;
	margin: .45rem 0 0;
	text-transform: uppercase;
}

.gallery-filter-hint span {
	color: var(--df-cyan-600);
	font-size: 1.15rem;
}

.gallery-filter {
	background: transparent;
	border: 0;
	border-right: 1px solid var(--df-border);
	color: var(--df-navy-800);
	flex: 1 0 auto;
	font-weight: 700;
	min-height: 3rem;
	padding: .65rem 1rem;
	scroll-snap-align: start;
}

.gallery-filter:last-child {
	border-right: 0;
}

.gallery-filter:hover,
.gallery-filter:focus-visible,
.gallery-filter.is-active {
	background: var(--df-ocean-700);
	color: #fff;
}

.gallery-feature-grid {
	display: grid;
	gap: .75rem;
	grid-template-columns: 1.45fr .85fr;
}

.gallery-feature-side {
	display: grid;
	gap: .75rem;
	grid-template-rows: 1fr 1fr;
}

.gallery-video-card,
.gallery-card {
	background: var(--df-navy-950);
	border-radius: var(--df-radius-sm);
	color: #fff;
	min-height: 13rem;
	overflow: hidden;
	position: relative;
}

.gallery-video-card {
	min-height: 31rem;
}

.gallery-video-card video,
.gallery-video-card > img,
.gallery-video-card > .media-placeholder,
.gallery-card-open,
.gallery-card-open img,
.gallery-card > img,
.gallery-card > .media-placeholder {
	height: 100%;
	min-height: inherit;
	object-fit: cover;
	width: 100%;
}

.gallery-card-open {
	background: transparent;
	border: 0;
	display: block;
	padding: 0;
}

.gallery-card-open:focus-visible {
	outline: .2rem solid #fff;
	outline-offset: -.35rem;
}

.gallery-overlay {
	background: linear-gradient(transparent, rgba(3,40,61,.95));
	bottom: 0;
	left: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	padding: 3rem 1rem 1rem;
}

.gallery-overlay h3,
.gallery-overlay p {
	color: #fff;
}

.gallery-badge,
.gallery-media-icon {
	background: var(--df-ocean-700);
	border-radius: .2rem;
	color: #fff;
	left: 1rem;
	padding: .35rem .65rem;
	position: absolute;
	top: 1rem;
	z-index: 2;
}

.gallery-media-icon,
.gallery-badge {
	pointer-events: none;
}

.gallery-media-icon {
	background: rgba(3,40,61,.8);
	left: auto;
	right: .5rem;
	top: .5rem;
}

.gallery-play {
	align-items: center;
	border: 3px solid #fff;
	border-radius: 50%;
	display: flex;
	font-size: 2rem;
	height: 5rem;
	justify-content: center;
	left: calc(50% - 2.5rem);
	padding-left: .25rem;
	position: absolute;
	top: calc(50% - 2.5rem);
	width: 5rem;
}

.gallery-masonry {
	display: grid;
	gap: .75rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: .75rem;
}

.gallery-video-transcript {
	background: var(--df-sand-100);
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	margin-top: .75rem;
	padding: 1rem 1.25rem;
}

.gallery-video-transcript summary {
	cursor: pointer;
	font-weight: 700;
}

.gallery-video-transcript > div {
	padding-top: .75rem;
}

.gallery-item[hidden] {
	display: none !important;
}

.gallery-deferred {
	display: none;
}

.gallery-ethics {
	align-items: center;
	background: var(--df-sand-100);
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	display: grid;
	gap: 2rem;
	grid-template-columns: 1.2fr 1fr;
	padding: 2rem;
}

.gallery-ethics-copy {
	align-items: center;
	display: flex;
	gap: 1.25rem;
}

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

.gallery-ethics-rules span {
	align-items: center;
	border-left: 1px solid var(--df-border);
	color: var(--df-cyan-600);
	display: flex;
	flex-direction: column;
	font-size: 1.5rem;
	gap: .5rem;
	padding: .75rem;
	text-align: center;
}

.gallery-ethics-rules strong {
	color: var(--df-navy-800);
	font-size: .75rem;
}

.gallery-experience-cta {
	background: linear-gradient(110deg, var(--df-navy-950), var(--df-ocean-700));
}

.gallery-lightbox {
	background: var(--df-navy-950);
	border: 0;
	border-radius: var(--df-radius-sm);
	color: #fff;
	max-height: 94vh;
	max-width: 92rem;
	padding: 0;
	width: 94vw;
}

.gallery-lightbox::backdrop {
	background: rgba(0,20,33,.9);
}

.gallery-lightbox-toolbar,
.gallery-lightbox-footer {
	align-items: center;
	display: flex;
	justify-content: space-between;
	padding: .75rem 1rem;
}

.gallery-lightbox-toolbar button,
.gallery-lightbox-footer button,
.gallery-lightbox-nav {
	background: transparent;
	border: 1px solid rgba(255,255,255,.6);
	border-radius: .2rem;
	color: #fff;
	min-height: 2.75rem;
	padding: .5rem .75rem;
}

.gallery-lightbox-stage {
	align-items: center;
	display: grid;
	gap: 1rem;
	grid-template-columns: auto 1fr auto;
}

.gallery-lightbox-stage figure {
	margin: 0;
	position: relative;
}

.gallery-lightbox-stage img {
	display: block;
	max-height: 72vh;
	object-fit: contain;
	width: 100%;
}

.gallery-lightbox-stage figcaption {
	background: linear-gradient(transparent, rgba(3,40,61,.96));
	bottom: 0;
	display: flex;
	flex-direction: column;
	left: 0;
	padding: 3rem 1rem 1rem;
	position: absolute;
	right: 0;
}

.gallery-lightbox-nav {
	font-size: 2rem;
	margin: .5rem;
}

.stay-hero {
	background-image: linear-gradient(135deg, var(--df-navy-950), var(--df-ocean-700));
	background-position: center;
	background-size: cover;
}

.stay-filters {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	padding: 1.5rem;
}

.stay-filters label,
.stay-sort {
	color: var(--df-navy-800);
	font-weight: 700;
}

.stay-filter-actions {
	align-items: center;
	display: flex;
	gap: 1rem;
	grid-column: 1 / -1;
}

.stay-results-toolbar {
	align-items: center;
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr auto auto;
}

.stay-view-switch {
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	display: flex;
	overflow: hidden;
}

.stay-view-switch button {
	background: #fff;
	border: 0;
	color: var(--df-navy-800);
	min-height: 2.75rem;
	padding: .5rem 1rem;
}

.stay-view-switch button.is-active {
	background: var(--df-cyan-100);
	color: var(--df-ocean-700);
	font-weight: 800;
}

.stay-sort {
	align-items: center;
	display: flex;
	gap: .5rem;
}

.stay-sort .form-select {
	min-width: 12rem;
}

.stay-results-layout {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(0, 1.55fr) minmax(18rem, .8fr);
}

.stay-card-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: 1fr 1fr;
}

.stay-card {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	overflow: hidden;
}

.stay-card[hidden] {
	display: none;
}

.stay-card-media {
	position: relative;
}

.stay-card-media img,
.stay-card-media .media-placeholder {
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.stay-map-number {
	align-items: center;
	background: var(--df-cyan-600);
	border-radius: 50%;
	color: #fff;
	display: flex;
	font-weight: 800;
	height: 2.25rem;
	justify-content: center;
	left: .75rem;
	position: absolute;
	top: .75rem;
	width: 2.25rem;
	z-index: 1;
}

.stay-card-content {
	padding: 1.25rem;
}

.stay-card-meta {
	color: var(--df-muted);
	font-size: .85rem;
}

.stay-amenities {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	list-style: none;
	margin: 1rem 0;
	padding: 0;
}

.stay-amenities li {
	align-items: center;
	color: var(--df-muted);
	display: flex;
	font-size: .75rem;
	gap: .25rem;
}

.stay-amenities span {
	color: var(--df-cyan-600);
}

.stay-accessibility {
	border-block: 1px solid var(--df-border);
	margin-block: 1rem;
	padding-block: .75rem;
}

.stay-accessibility summary {
	color: var(--df-navy-800);
	cursor: pointer;
	font-weight: 700;
}

.stay-accessibility p {
	margin: .75rem 0 0;
}

.stay-provider-links {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.stay-map-panel {
	align-self: start;
	background: var(--df-cyan-100);
	border-radius: var(--df-radius-sm);
	padding: 1rem;
	position: sticky;
	top: 7rem;
}

.stay-map-panel img,
.stay-map-panel .media-placeholder {
	min-height: 48rem;
	object-fit: cover;
}

.stay-results-layout.is-map-only {
	grid-template-columns: 1fr;
}

.stay-results-layout.is-map-only .stay-card-grid {
	display: none;
}

.stay-results-layout.is-map-only .stay-map-panel img,
.stay-results-layout.is-map-only .stay-map-panel .media-placeholder {
	min-height: 38rem;
}

.stay-no-results {
	background: var(--df-sand-100);
	border-radius: var(--df-radius-sm);
	grid-column: 1 / -1;
	padding: 2rem;
}

.stay-information {
	align-items: center;
	background: var(--df-sand-100);
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	display: grid;
	gap: 1.5rem;
	grid-template-columns: 1.2fr .55fr 1fr;
	padding: 1.5rem;
}

.stay-information > div:first-child {
	align-items: center;
	display: flex;
	gap: 1rem;
}

.stay-information img,
.stay-information .media-placeholder {
	border-radius: var(--df-radius-sm);
	min-height: 9rem;
	object-fit: cover;
}

.centers-archive-hero {
	background-image: linear-gradient(135deg, var(--df-navy-950), var(--df-ocean-700));
	background-position: center;
	background-size: cover;
}

.centers-benefits {
	background: var(--df-sand-100);
}

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

.centers-benefit-grid article {
	border-right: 1px solid var(--df-border);
	padding: 1.5rem;
	text-align: center;
}

.centers-benefit-grid article:last-child {
	border-right: 0;
}

.centers-benefit-grid article > span,
.centers-check-grid article > span {
	color: var(--df-cyan-600);
	display: block;
	font-size: 2.5rem;
	margin-bottom: .75rem;
}

.centers-filters {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	padding: 1rem;
}

.centers-search {
	display: block;
	margin-bottom: 1rem;
}

.centers-filter-controls {
	align-items: center;
	display: flex;
	gap: .75rem;
}

.centers-service-filters {
	-webkit-overflow-scrolling: touch;
	display: flex;
	flex: 1;
	gap: .5rem;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	padding: .2rem;
	scroll-snap-type: x proximity;
}

.centers-service-filters:focus-visible {
	border-radius: var(--df-radius-sm);
	outline: .18rem solid var(--df-cyan-500);
	outline-offset: .15rem;
}

.centers-service-filters label {
	flex: 0 0 auto;
	scroll-snap-align: start;
}

.centers-service-filters input {
	position: absolute;
	opacity: 0;
}

.centers-service-filters span {
	border: 1px solid var(--df-cyan-600);
	border-radius: var(--df-radius-sm);
	color: var(--df-ocean-700);
	cursor: pointer;
	display: block;
	font-weight: 700;
	padding: .55rem .8rem;
}

.centers-service-filters input:checked + span {
	background: var(--df-cyan-600);
	color: #fff;
}

.centers-service-filters input:focus-visible + span {
	outline: .2rem solid var(--df-navy-800);
	outline-offset: .15rem;
}

.centers-list {
	display: grid;
	gap: 1rem;
}

.center-archive-card {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	display: grid;
	grid-template-areas: "logo image main facts" "logo contact contact contact";
	grid-template-columns: 8rem minmax(15rem, 1.05fr) minmax(20rem, 1.2fr) minmax(16rem, .9fr);
	overflow: hidden;
}

.center-card-logo {
	align-items: center;
	border-right: 1px solid var(--df-border);
	display: flex;
	grid-area: logo;
	justify-content: center;
	padding: 1rem;
	text-align: center;
}

.center-card-logo span {
	align-items: center;
	border: 2px solid var(--df-ocean-700);
	border-radius: 50%;
	color: var(--df-ocean-700);
	display: flex;
	font-weight: 800;
	height: 6rem;
	justify-content: center;
	width: 6rem;
}

.center-card-image {
	grid-area: image;
	min-height: 17rem;
	position: relative;
}

.center-card-image img,
.center-card-image .media-placeholder {
	height: 100%;
	min-height: inherit;
	object-fit: cover;
}

.center-mobile-number {
	display: none;
}

.center-card-main {
	grid-area: main;
	padding: 1.25rem;
}

.center-card-main h2 a {
	color: var(--df-navy-950);
	text-decoration: none;
}

.center-service-tags {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.center-service-tags li {
	border: 1px solid var(--df-border);
	border-radius: .2rem;
	font-size: .75rem;
	padding: .25rem .45rem;
}

.center-card-facts {
	align-self: center;
	grid-area: facts;
	margin: 0;
	padding: 1.25rem;
}

.center-card-facts > div {
	display: grid;
	font-size: .8rem;
	gap: .5rem;
	grid-template-columns: 1fr 1fr;
	padding-block: .25rem;
}

.center-card-facts dt {
	color: var(--df-ocean-700);
}

.center-card-facts dd {
	margin: 0;
}

.center-card-contact {
	border-top: 1px solid var(--df-border);
	display: grid;
	grid-area: contact;
	grid-template-columns: repeat(3, 1fr) 1.2fr;
}

.center-card-contact > span,
.center-card-contact > a {
	align-items: center;
	border-right: 1px solid var(--df-border);
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 3.5rem;
	padding: .5rem;
	text-align: center;
}

.center-card-contact a {
	text-decoration: none;
}

.center-card-contact small {
	display: block;
}

.center-map-link,
.center-more-link {
	background: var(--df-ocean-700);
	color: #fff;
	font-weight: 700;
}

.center-more-link {
	display: none !important;
}

.centers-comparison {
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	overflow: hidden;
}

.centers-comparison summary {
	cursor: pointer;
	padding: 1rem;
}

.centers-comparison summary .h3 {
	display: inline;
}

.centers-comparison .table {
	margin: 0;
	text-align: center;
}

.centers-comparison th:first-child {
	text-align: left;
}

.centers-checklist {
	background: var(--df-sand-100);
}

.centers-check-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.centers-check-grid article {
	border-right: 1px solid var(--df-border);
	padding: 1.25rem;
	text-align: center;
}

.centers-check-grid article:last-child {
	border-right: 0;
}

.centers-map-section {
	padding-block: clamp(2rem, 5vw, 4rem);
}

.centers-map-layout {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr 1fr;
}

.centers-map-layout > div {
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	overflow: hidden;
}

.centers-map-canvas {
	position: relative;
}

.centers-map-marker {
	align-items: center;
	background: var(--df-cyan-600);
	border: .18rem solid #fff;
	border-radius: 50% 50% 50% 0;
	box-shadow: 0 .2rem .6rem rgba(3,40,61,.3);
	color: #fff;
	display: flex;
	font-weight: 800;
	height: 2.8rem;
	justify-content: center;
	left: var(--marker-left);
	position: absolute;
	text-decoration: none;
	top: var(--marker-top);
	transform: translate(-50%, -100%) rotate(-45deg);
	width: 2.8rem;
	z-index: 2;
}

.centers-map-marker:hover,
.centers-map-marker:focus-visible {
	background: var(--df-navy-950);
	color: #fff;
	outline: .2rem solid var(--df-cyan-500);
	outline-offset: .15rem;
}

.centers-map-marker span {
	transform: rotate(45deg);
}

.centers-map-layout img,
.centers-map-layout .media-placeholder {
	height: 100%;
	min-height: 23rem;
	object-fit: cover;
}

.centers-map-layout > div:last-child {
	padding: 1.5rem;
}

.centers-map-layout ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

.centers-map-layout li {
	align-items: center;
	border-bottom: 1px solid var(--df-border);
	display: grid;
	gap: .75rem;
	grid-template-columns: auto 1fr auto;
	padding-block: .75rem;
}

.centers-map-layout li > span {
	align-items: center;
	background: var(--df-cyan-600);
	border-radius: 50%;
	color: #fff;
	display: flex;
	height: 2rem;
	justify-content: center;
	width: 2rem;
}

.centers-map-layout small {
	display: block;
}

.centers-final-cta {
	background: var(--df-navy-950);
	color: #fff;
}

.centers-final-cta .container-xl {
	display: grid;
	grid-template-columns: 1fr 1fr;
}

.centers-final-cta .container-xl > div {
	padding: 2rem;
}

.centers-final-cta .container-xl > div + div {
	border-left: 1px solid rgba(255,255,255,.25);
}

.center-single-hero {
	background-image: linear-gradient(135deg, var(--df-navy-950), var(--df-ocean-700));
	background-position: center;
	background-size: cover;
}

.center-hero-content {
	max-width: 42rem;
}

.center-hero-logo {
	align-items: center;
	background: #fff;
	border: 2px solid var(--df-cyan-600);
	border-radius: 50%;
	color: var(--df-cyan-600);
	display: flex;
	font-weight: 800;
	height: 7rem;
	justify-content: center;
	margin-bottom: 1rem;
	overflow: hidden;
	text-align: center;
	width: 7rem;
}

.center-section-nav {
	background: #fff;
	border-bottom: 1px solid var(--df-border);
	position: sticky;
	top: 0;
	z-index: 20;
}

.center-section-nav .container-xl {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x proximity;
}

.center-section-nav a {
	border-bottom: .2rem solid transparent;
	color: var(--df-navy-800);
	flex: 1 0 auto;
	font-weight: 700;
	padding: 1rem;
	scroll-snap-align: start;
	text-align: center;
	text-decoration: none;
}

.center-section-nav a:hover,
.center-section-nav a:focus-visible {
	border-bottom-color: var(--df-cyan-600);
	color: var(--df-ocean-700);
}

.center-single section[id] {
	scroll-margin-top: 5rem;
}

.center-about-layout {
	display: grid;
	gap: 2rem;
	grid-template-columns: minmax(0, 1.7fr) minmax(18rem, .8fr);
}

.center-highlight-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 2rem;
}

.center-highlight-grid article {
	text-align: center;
}

.center-highlight-grid article > span {
	color: var(--df-cyan-600);
	display: block;
	font-size: 2.25rem;
	margin-bottom: .5rem;
}

.center-highlight-grid p {
	color: var(--df-muted);
	font-size: .8rem;
}

.center-fact-panel {
	align-self: start;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	padding: 1.5rem;
}

.center-fact-panel dl {
	margin: 0;
}

.center-fact-panel dl > div {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr 1fr;
	padding-block: .65rem;
}

.center-fact-panel dt {
	color: var(--df-ocean-700);
}

.center-fact-panel dd {
	margin: 0;
}

.center-services {
	background: var(--df-sand-100);
}

.center-services-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.center-services-grid article {
	align-items: flex-start;
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	display: flex;
	gap: 1rem;
	padding: 1.5rem;
}

.center-services-grid article > span {
	color: var(--df-cyan-600);
	font-size: 2.5rem;
}

.center-services-grid p {
	margin: 0;
}

.center-team-certifications {
	padding-bottom: clamp(2rem, 5vw, 4rem);
}

.center-team-cert-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr 1fr;
}

.center-team-card,
.center-cert-card {
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	padding: 1rem;
}

.center-team-content {
	display: grid;
	gap: 1rem;
	grid-template-columns: .9fr 1.1fr;
}

.center-team-content img,
.center-team-content .media-placeholder {
	height: 100%;
	min-height: 16rem;
	object-fit: cover;
}

.center-team-content ul {
	list-style: none;
	padding: 0;
}

.center-team-content li::before {
	color: var(--df-cyan-600);
	content: '✓';
	margin-right: .5rem;
}

.center-cert-list {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 2rem;
}

.center-cert-list > div {
	align-items: center;
	border: 2px dashed var(--df-ocean-700);
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	height: 9rem;
	justify-content: center;
	padding: .75rem;
	text-align: center;
}

.center-cert-list span {
	color: var(--df-cyan-600);
	font-size: 1.5rem;
}

.center-gallery {
	background: #fff;
}

.center-gallery-grid {
	display: grid;
	gap: .5rem;
	grid-template-columns: 1.15fr 1.85fr;
}

.center-video,
.center-gallery-grid > .gallery-item {
	min-height: 28rem;
}

.center-video iframe,
.center-video .media-placeholder,
.center-gallery-grid > .gallery-item .gallery-card-open,
.center-gallery-grid > .gallery-item img {
	height: 100%;
	min-height: inherit;
	object-fit: cover;
	width: 100%;
}

.center-gallery-thumbs {
	display: grid;
	gap: .5rem;
	grid-template-columns: 1fr 1fr;
}

.center-gallery-thumbs > article,
.center-gallery-thumbs > .media-placeholder {
	min-height: 13.75rem;
}

.center-gallery-thumbs img,
.center-gallery-thumbs .gallery-card-open {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.center-accessibility {
	padding-bottom: clamp(2rem, 5vw, 4rem);
}

.center-accessibility-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.center-accessibility-grid article {
	border: 1px solid var(--df-border);
	padding: 1.25rem;
	text-align: center;
}

.center-accessibility-grid article > span {
	color: var(--df-cyan-600);
	font-size: 2.25rem;
}

.center-accessibility-grid strong {
	display: block;
	font-size: .75rem;
	margin-bottom: .5rem;
}

.center-accessibility-grid p {
	color: var(--df-muted);
	font-size: .75rem;
	margin: 0;
}

.center-contact {
	background: var(--df-sand-100);
}

.center-contact-layout {
	align-items: stretch;
	display: grid;
	gap: 1rem;
	grid-template-columns: 1.2fr .8fr .65fr;
}

.center-contact-layout > div,
.center-contact-layout > aside {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	padding: 1.25rem;
}

.center-contact-layout > div:first-child {
	padding: 0;
	overflow: hidden;
}

.center-contact-layout > div:first-child img,
.center-contact-layout > div:first-child .media-placeholder {
	height: 100%;
	min-height: 20rem;
	object-fit: cover;
}

.center-contact-layout dl > div {
	display: grid;
	gap: .75rem;
	grid-template-columns: 6rem 1fr;
	padding-block: .35rem;
}

.center-contact-layout dd {
	margin: 0;
}

.center-socials {
	display: flex;
	gap: .5rem;
}

.center-socials a {
	align-items: center;
	background: var(--df-navy-800);
	border-radius: 50%;
	color: #fff;
	display: flex;
	height: 2rem;
	justify-content: center;
	text-decoration: none;
	width: 2rem;
}

.center-related {
	padding-bottom: clamp(3rem, 6vw, 5rem);
}

.center-related-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.center-related-grid article {
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	overflow: hidden;
}

.center-related-grid img,
.center-related-grid .media-placeholder {
	height: 100%;
	min-height: 9rem;
	object-fit: cover;
}

.center-related-grid article > div {
	padding: 1rem;
}

.center-verification-note {
	background: var(--df-sand-100);
	border-radius: var(--df-radius-sm);
	margin-block: 1rem;
	padding: .75rem 1rem;
}

.center-mobile-actions {
	display: none;
}

.interactive-map-hero {
	background-image: linear-gradient(135deg, var(--df-navy-950), var(--df-ocean-700));
	background-position: center;
	background-size: cover;
	min-height: clamp(24rem, 48vh, 34rem);
}

.map-filters {
	align-items: start;
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(14rem, .8fr) minmax(0, 3fr) auto;
}

.map-search {
	grid-column: 1;
}

.map-filter-button {
	display: none;
}

.map-category-filters {
	display: grid;
	gap: .5rem;
	grid-column: 2;
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.map-category-filters label {
	align-items: center;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	cursor: pointer;
	display: flex;
	flex-direction: column;
	gap: .35rem;
	min-height: 6rem;
	padding: .65rem .35rem;
	text-align: center;
}

.map-category-filters label > span {
	color: var(--map-category-color);
	font-size: 1.75rem;
}

.map-category-filters strong {
	font-size: .7rem;
}

.map-category-filters input {
	height: 1.2rem;
	width: 1.2rem;
}

.map-category-filters label:has(input:checked) {
	background: color-mix(in srgb, var(--map-category-color) 12%, white);
	border-color: var(--map-category-color);
}

.map-category-filters:focus-visible {
	border-radius: var(--df-radius-sm);
	outline: .18rem solid var(--df-cyan-500);
	outline-offset: .15rem;
}

.map-filter-swipe-hint {
	display: none;
}

.map-reset {
	grid-column: 3;
}

.map-view-switch {
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	display: flex;
	margin: 2rem auto 0;
	max-width: 18rem;
	overflow: hidden;
}

.map-view-switch button {
	background: #fff;
	border: 0;
	color: var(--df-navy-800);
	flex: 1;
	font-weight: 700;
	min-height: 2.75rem;
}

.map-view-switch button.is-active {
	background: var(--df-cyan-600);
	color: #fff;
}

.map-explorer {
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(18rem, .75fr) minmax(0, 1.8fr);
}

.map-results-heading {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-bottom: 1rem;
}

.map-result-cards {
	display: grid;
	gap: .6rem;
}

.map-result-card {
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	overflow: hidden;
}

.map-result-card[hidden],
.map-accessible-list tr[hidden] {
	display: none;
}

.map-result-card > button {
	align-items: center;
	background: #fff;
	border: 0;
	display: grid;
	gap: .6rem;
	grid-template-columns: auto auto 1fr 5rem auto;
	padding: .6rem;
	text-align: left;
	width: 100%;
}

.map-result-card > button:hover,
.map-result-card > button:focus-visible {
	background: var(--df-sand-100);
}

.map-result-number {
	align-items: center;
	background: var(--map-category-color);
	border-radius: 50%;
	color: #fff;
	display: flex;
	font-weight: 800;
	height: 2rem;
	justify-content: center;
	width: 2rem;
}

.map-result-icon {
	color: var(--map-category-color);
	font-size: 1.5rem;
}

.map-result-card strong,
.map-result-card small {
	display: block;
}

.map-result-card small {
	color: var(--df-muted);
	font-size: .7rem;
}

.map-result-card img {
	height: 4.5rem;
	object-fit: cover;
	width: 5rem;
}

.map-empty {
	background: var(--df-sand-100);
	border-radius: var(--df-radius-sm);
	padding: 2rem;
}

.map-canvas-panel {
	border-radius: var(--df-radius-sm);
	min-height: 52rem;
	overflow: hidden;
	position: relative;
}

.map-canvas {
	height: 52rem;
	width: 100%;
	z-index: 1;
}

.fournoi-map-marker-wrap {
	background: transparent;
	border: 0;
}

.fournoi-map-marker {
	align-items: center;
	background: var(--marker-color);
	border: 3px solid #fff;
	border-radius: 50%;
	box-shadow: 0 .2rem .5rem rgba(3,40,61,.35);
	color: #fff;
	display: flex;
	font-size: 1.1rem;
	height: 2.5rem;
	justify-content: center;
	width: 2.5rem;
}

.map-extra-controls {
	display: grid;
	gap: .4rem;
	position: absolute;
	right: .65rem;
	top: 5.5rem;
	z-index: 500;
}

.map-extra-controls button {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: .2rem;
	color: var(--df-navy-800);
	font-size: 1.25rem;
	height: 2.25rem;
	width: 2.25rem;
}

.map-selected-card {
	background: #fff;
	border-radius: var(--df-radius-sm);
	bottom: 1rem;
	box-shadow: 0 .4rem 1.4rem rgba(3,40,61,.25);
	display: grid;
	gap: 1rem;
	grid-template-columns: 10rem 1fr;
	left: 50%;
	max-width: 34rem;
	padding: 1rem;
	position: absolute;
	transform: translateX(-50%);
	width: calc(100% - 2rem);
	z-index: 500;
}

.map-selected-card[hidden] {
	display: none;
}

.map-selected-card > img {
	height: 100%;
	min-height: 10rem;
	object-fit: cover;
	width: 100%;
}

.map-selected-card > img[hidden] + div {
	grid-column: 1 / -1;
}

.map-selected-close {
	background: transparent;
	border: 0;
	font-size: 1.5rem;
	position: absolute;
	right: .5rem;
	top: .25rem;
}

.map-selected-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.map-accessible-list {
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	overflow: hidden;
}

.map-accessible-list summary {
	cursor: pointer;
	padding: 1rem;
}

.map-accessible-list summary .h3 {
	display: inline;
}

.map-accessible-list .table {
	margin: 0;
}

.map-help-travel {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr 1fr;
}

.map-help-travel > section,
.map-help-travel > aside {
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	overflow: hidden;
	padding: 1.5rem;
}

.map-help-travel > section > div {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.map-help-travel article {
	border-right: 1px solid var(--df-border);
	padding: 1rem;
	text-align: center;
}

.map-help-travel article:last-child {
	border-right: 0;
}

.map-help-travel article > span {
	color: var(--df-cyan-600);
	font-size: 2rem;
}

.map-help-travel > aside {
	align-items: center;
	background: var(--df-sand-100);
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr 1fr;
}

.map-help-travel > aside img,
.map-help-travel > aside .media-placeholder {
	height: 100%;
	min-height: 14rem;
	object-fit: cover;
}

.forms-hero {
	background-image: linear-gradient(135deg, var(--df-navy-950), var(--df-ocean-700));
	background-position: center;
	background-size: cover;
	min-height: clamp(24rem, 52vh, 36rem);
}

.forms-section-tabs {
	position: relative;
	z-index: 4;
}

.forms-section-tabs .container-xl {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	box-shadow: 0 .4rem 1.25rem rgba(3,40,61,.12);
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: -1.5rem;
	overflow: hidden;
}

.forms-section-tabs a {
	border-bottom: .2rem solid transparent;
	border-right: 1px solid var(--df-border);
	color: var(--df-navy-800);
	font-family: var(--df-font-display);
	font-size: 1.15rem;
	padding: 1.25rem;
	text-align: center;
	text-decoration: none;
}

.forms-section-tabs a:last-child {
	border-right: 0;
}

.forms-section-tabs a:hover,
.forms-section-tabs a:focus-visible,
.forms-section-tabs a[aria-current="location"] {
	border-bottom-color: var(--df-cyan-600);
	color: var(--df-ocean-700);
}

.forms-page [id^="form-"] {
	scroll-margin-top: 2rem;
}

.form-status {
	border: 1px solid;
	border-radius: var(--df-radius-sm);
	margin-bottom: 1rem;
	padding: 1rem 1.25rem;
}

.form-status-success {
	background: #edf9f0;
	border-color: #48a868;
	color: #205e35;
}

.form-status-error {
	background: #fff1f1;
	border-color: #d94a4a;
	color: #8f2525;
}

.forms-contact-layout {
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(0, 1.7fr) minmax(18rem, .8fr);
}

.public-form,
.forms-contact-details {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	padding: clamp(1.25rem, 3vw, 2rem);
}

.public-form label {
	color: var(--df-navy-800);
	display: block;
	font-weight: 700;
	margin-bottom: .35rem;
}

.public-form .form-control,
.public-form .form-select {
	margin-bottom: 1rem;
}

.form-grid-two,
.form-grid-three {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr 1fr;
}

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

.form-consent {
	align-items: flex-start;
	display: flex !important;
	font-weight: 400 !important;
	gap: .5rem;
	margin-block: .75rem;
}

.form-consent input {
	flex: 0 0 auto;
	margin-top: .25rem;
}

.human-check {
	align-items: center;
	background: var(--df-cyan-100);
	border: 1px solid var(--df-cyan-600);
	border-radius: var(--df-radius-sm);
	display: grid;
	gap: .75rem;
	grid-template-columns: auto 1fr 5rem;
	margin-block: 1rem;
	padding: 1rem;
}

.human-check > span {
	color: var(--df-cyan-600);
	font-size: 1.75rem;
}

.human-check .form-control {
	margin: 0;
}

.form-honeypot {
	height: 1px;
	left: -10000px;
	overflow: hidden;
	position: absolute;
	top: auto;
	width: 1px;
}

.field-error {
	color: #b42318;
	display: block;
	font-weight: 700;
	margin: -.65rem 0 .75rem;
}

.public-form [aria-invalid="true"] {
	border-color: #d92d20;
	box-shadow: 0 0 0 .15rem rgba(217,45,32,.14);
}

.form-loading {
	color: var(--df-ocean-700);
	font-weight: 700;
	margin-left: 1rem;
}

.forms-contact-details {
	background: var(--df-sand-100);
}

.forms-contact-details dl > div {
	padding-block: .55rem;
}

.forms-contact-details dd {
	margin: .15rem 0 0;
}

.forms-contact-details img,
.forms-contact-details .media-placeholder {
	border-radius: var(--df-radius-sm);
	min-height: 12rem;
	object-fit: cover;
}

.forms-socials {
	display: flex;
	gap: .5rem;
	margin-block: 1rem;
}

.forms-socials a {
	align-items: center;
	border: 1px solid var(--df-cyan-600);
	border-radius: 50%;
	display: flex;
	height: 2.5rem;
	justify-content: center;
	text-decoration: none;
	width: 2.5rem;
}

.file-upload {
	border: 2px dashed var(--df-border);
	border-radius: var(--df-radius-sm);
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 12rem;
	padding: 1rem;
	text-align: center;
}

.file-upload input {
	margin-block: .75rem;
}

.evaluation-layout {
	display: grid;
	gap: 2rem;
	grid-template-columns: 1.55fr .85fr;
}

.rating-groups {
	display: grid;
	gap: .5rem;
}

.rating-groups fieldset {
	align-items: center;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(10rem, .8fr) 1.2fr;
	padding: .75rem 1rem;
}

.rating-groups legend {
	float: none;
	font-size: .9rem;
	font-weight: 700;
	margin: 0;
	width: auto;
}

.rating-options {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
}

.rating-options label {
	align-items: center;
	display: flex;
	flex-direction: column;
	font-weight: 400;
	margin: 0;
	min-height: 3.5rem;
	text-align: center;
}

.rating-options small {
	font-size: .6rem;
}

.forms-privacy {
	background: var(--df-sand-100);
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	display: grid;
	grid-template-columns: 1fr 1fr;
}

.forms-privacy > div {
	display: grid;
	gap: .75rem;
	grid-template-columns: auto 1fr;
	padding: 1.5rem;
}

.forms-privacy > div + div {
	border-left: 1px solid var(--df-border);
}

.forms-privacy span {
	color: var(--df-cyan-600);
	font-size: 2rem;
	grid-row: span 2;
}

/* Legal, privacy, cookie and accessibility documents. */
.legal-hero {
	background: linear-gradient(125deg, var(--df-navy-950), var(--df-ocean-700));
	color: #fff;
	padding-block: clamp(3.5rem, 8vw, 6rem);
}

.legal-hero h1 {
	color: #fff;
	font-size: clamp(2.6rem, 5vw, 4.6rem);
}

.legal-hero > .container-xl > p:not(.section-eyebrow) {
	font-size: 1.1rem;
	max-width: 52rem;
}

.legal-hero dl {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin: 2rem 0 0;
}

.legal-hero dl > div {
	border-left: .2rem solid var(--df-cyan-500);
	padding-left: .75rem;
}

.legal-hero dt {
	font-size: .7rem;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.legal-hero dd {
	font-weight: 700;
	margin: 0;
}

.legal-draft-notice {
	background: #fff3cd;
	border-bottom: 1px solid #d7ad29;
	color: #594300;
}

.legal-draft-notice .container-xl {
	align-items: center;
	display: flex;
	gap: .85rem;
	padding-block: 1rem;
}

.legal-draft-notice span {
	align-items: center;
	border: 2px solid currentColor;
	border-radius: 50%;
	display: flex;
	flex: 0 0 2rem;
	font-weight: 800;
	height: 2rem;
	justify-content: center;
}

.legal-draft-notice p { margin: 0; }
.legal-layout {
	display: grid;
	gap: clamp(2rem, 5vw, 5rem);
	grid-template-columns: minmax(14rem, .55fr) minmax(0, 1.45fr);
}

.legal-layout > aside {
	align-self: start;
	position: sticky;
	top: 1.5rem;
}

.legal-layout aside nav,
.legal-contact {
	background: var(--df-sand-100);
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius-sm);
	padding: 1.25rem;
}

.legal-layout aside h2 {
	font-size: 1.25rem;
}

.legal-layout aside ol {
	margin: 0;
	padding-left: 1.2rem;
}

.legal-layout aside li + li { margin-top: .45rem; }
.legal-layout aside a { font-size: .9rem; }
.legal-contact { margin-top: 1rem; }
.legal-document > section {
	scroll-margin-top: 2rem;
}

.legal-document > section + section {
	border-top: 1px solid var(--df-border);
	margin-top: 2rem;
	padding-top: 2rem;
}

.legal-document h2 {
	font-size: clamp(1.5rem, 3vw, 2rem);
}

.legal-document li + li { margin-top: .5rem; }
.legal-document table {
	background: #fff;
	border-collapse: collapse;
	min-width: 42rem;
	width: 100%;
}

.legal-document th,
.legal-document td {
	border: 1px solid var(--df-border);
	padding: .75rem;
	text-align: left;
	vertical-align: top;
}

.legal-document th { background: var(--df-cyan-100); }
.legal-table-hint {
	align-items: center;
	color: var(--df-navy-800);
	font-size: .78rem;
	font-weight: 700;
	gap: .45rem;
	justify-content: center;
	letter-spacing: .03em;
	margin: .65rem 0 0;
	text-transform: uppercase;
}

.legal-table-hint span {
	color: var(--df-cyan-600);
	font-size: 1.15rem;
}

.legal-document .table-responsive:focus-visible {
	outline: 3px solid var(--df-focus);
	outline-offset: 3px;
}

.legal-sources {
	background: var(--df-sand-100);
	border: 1px solid var(--df-border) !important;
	border-radius: var(--df-radius-sm);
	padding: 1.5rem !important;
}

/* 404 / not found. */
.not-found-hero {
	background: linear-gradient(125deg, var(--df-navy-950), var(--df-ocean-700));
	color: #fff;
	overflow: hidden;
}

.not-found-hero .container-xl {
	align-items: center;
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	min-height: 36rem;
}

.not-found-copy {
	padding-block: 4rem;
	position: relative;
	z-index: 2;
}

.not-found-code {
	color: rgba(255,255,255,.12);
	font-family: var(--df-font-display);
	font-size: clamp(8rem, 20vw, 17rem);
	font-weight: 700;
	left: -1rem;
	line-height: .75;
	margin: 0;
	position: absolute;
	top: 2rem;
	z-index: -1;
}

.not-found-copy h1 {
	color: #fff;
	font-size: clamp(2.7rem, 5vw, 4.8rem);
}

.not-found-copy > p:not(.section-eyebrow, .not-found-code) {
	font-size: 1.1rem;
	max-width: 42rem;
}

.not-found-visual {
	height: 30rem;
	position: relative;
}

.not-found-sun {
	background: #f5d58c;
	border-radius: 50%;
	box-shadow: 0 0 4rem rgba(245,213,140,.35);
	height: 9rem;
	position: absolute;
	right: 10%;
	top: 12%;
	width: 9rem;
}

.not-found-island {
	background: #174f5d;
	border-radius: 70% 35% 0 0;
	bottom: 20%;
	height: 9rem;
	left: 5%;
	position: absolute;
	transform: rotate(-4deg);
	width: 85%;
}

.not-found-wave {
	bottom: 4%;
	color: var(--df-cyan-500);
	font-family: var(--df-font-display);
	font-size: 6rem;
	letter-spacing: -.2em;
	line-height: .5;
	position: absolute;
	white-space: nowrap;
}

.not-found-wave.wave-one { left: 0; }
.not-found-wave.wave-two { bottom: -3%; right: 0; }
.not-found-marker {
	align-items: center;
	background: var(--df-cyan-500);
	border: .35rem solid #fff;
	border-radius: 50%;
	color: #fff;
	display: flex;
	font-family: var(--df-font-display);
	font-size: 2.5rem;
	height: 5.5rem;
	justify-content: center;
	left: 46%;
	position: absolute;
	top: 35%;
	width: 5.5rem;
}

.not-found-search {
	background: var(--df-sand-100);
	border-radius: var(--df-radius);
	margin-bottom: 3rem;
	padding: clamp(1.5rem, 4vw, 3rem);
}

.not-found-search .site-search-form {
	margin-top: 1.25rem;
}

.not-found-search .site-search-control {
	border: 1px solid var(--df-border);
}

.not-found-links {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 2rem;
}

.not-found-links > a {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius);
	color: var(--df-ink);
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: 1.5rem;
	text-decoration: none;
}

.not-found-links > a:hover {
	border-color: var(--df-cyan-600);
	box-shadow: var(--df-shadow);
}

.not-found-links > a > span {
	align-items: center;
	background: var(--df-cyan-100);
	border-radius: 50%;
	color: var(--df-ocean-700);
	display: flex;
	font-size: 1.6rem;
	height: 3.5rem;
	justify-content: center;
	width: 3.5rem;
}

.not-found-links h3 { font-size: 1.25rem; }
.not-found-links p { font-size: .9rem; }
.not-found-links strong { color: var(--df-ocean-700); }
.not-found-contact { background: var(--df-navy-900); color: #fff; }
.not-found-contact .container-xl { align-items: center; display: flex; justify-content: space-between; padding-block: 2rem; }
.not-found-contact h2 { color: #fff; }
.not-found-contact p { margin: 0; }

/* Search and results. */
.search-hero {
	background: linear-gradient(125deg, var(--df-navy-950), var(--df-ocean-700));
	color: #fff;
	padding-block: clamp(3.5rem, 8vw, 7rem);
}

.search-hero h1 {
	color: #fff;
	font-size: clamp(2.8rem, 6vw, 5rem);
}

.search-hero p:not(.section-eyebrow) {
	font-size: 1.1rem;
	max-width: 46rem;
}

.site-search-form {
	margin-top: 2rem;
	max-width: 55rem;
}

.site-search-form > label {
	display: block;
	font-weight: 700;
	margin-bottom: .5rem;
}

.site-search-control {
	background: #fff;
	border-radius: var(--df-radius-sm);
	display: grid;
	grid-template-columns: 1fr auto;
	padding: .35rem;
}

.site-search-control .form-control {
	border: 0;
	min-height: 3.25rem;
}

.search-summary {
	align-items: end;
	display: flex;
	justify-content: space-between;
}

.search-type-filters {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	margin-block: 1.75rem 2rem;
}

.search-type-filters a {
	border: 1px solid var(--df-ocean-700);
	border-radius: 99rem;
	font-weight: 700;
	padding: .45rem 1rem;
	text-decoration: none;
}

.search-type-filters a[aria-current="page"] {
	background: var(--df-navy-800);
	border-color: var(--df-navy-800);
	color: #fff;
}

.search-filter-hint {
	align-items: center;
	color: var(--df-navy-800);
	font-size: .78rem;
	font-weight: 700;
	gap: .45rem;
	justify-content: center;
	letter-spacing: .03em;
	margin: -1.5rem 0 2rem;
	text-transform: uppercase;
}

.search-filter-hint span {
	color: var(--df-cyan-600);
	font-size: 1.15rem;
}

.search-results-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.search-result-card {
	background: #fff;
	border: 1px solid var(--df-border);
	border-radius: var(--df-radius);
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.search-result-media {
	display: block;
}

.search-result-media img,
.search-result-media .media-placeholder {
	aspect-ratio: 3 / 2;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.search-result-copy {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1.25rem;
}

.search-result-type {
	color: var(--df-ocean-700);
	display: block;
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .08em;
	margin-bottom: .45rem;
	text-transform: uppercase;
}

.search-result-copy h2 a {
	color: var(--df-navy-950);
	text-decoration: none;
}

.search-result-link {
	font-weight: 700;
	margin-top: auto;
}

.search-results-page .pagination {
	justify-content: center;
	margin-top: 2rem;
}

.search-results-page .page-numbers {
	border: 1px solid var(--df-border);
	display: inline-block;
	margin: .15rem;
	padding: .5rem .8rem;
	text-decoration: none;
}

.search-results-page .page-numbers.current {
	background: var(--df-navy-800);
	color: #fff;
}

.search-empty {
	background: var(--df-sand-100);
	border-radius: var(--df-radius);
	padding: clamp(2rem, 6vw, 5rem);
	text-align: center;
}

.search-empty > span {
	color: var(--df-cyan-600);
	font-size: 4rem;
}

.search-empty .btn {
	margin: .35rem;
}

/* Focused marketing campaign template. */
.campaign-landing-body { background: #f9f7f2; }
.campaign-header { background: var(--df-navy-950); border-bottom: 1px solid rgba(255,255,255,.18); color: #fff; }
.campaign-header .container-xl,
.campaign-footer .container-xl { align-items: center; display: flex; justify-content: space-between; min-height: 4.5rem; }
.campaign-brand { color: #fff; font-family: var(--df-font-display); font-size: 1.45rem; letter-spacing: .03em; text-decoration: none; }
.campaign-header-actions { align-items: center; display: flex; gap: 1.25rem; }
.campaign-header .language-switcher { margin: 0; }
.campaign-header .language-switcher a,
.campaign-header .language-switcher span { color: #fff; }
.campaign-page h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); }
.campaign-hero { background-color: var(--df-navy-950); background-position: center; background-size: cover; color: #fff; min-height: min(43rem, 78vh); position: relative; }
.campaign-hero::before,
.campaign-final-cta::before { background: linear-gradient(90deg, rgba(3,40,61,.98) 0%, rgba(3,40,61,.82) 38%, rgba(3,40,61,.12) 72%); content: ''; inset: 0; position: absolute; }
.campaign-hero .container-xl { display: flex; min-height: inherit; position: relative; z-index: 1; }
.campaign-hero-copy { align-self: center; max-width: 36rem; padding-block: 4rem; }
.campaign-eyebrow { color: var(--df-cyan-500); font-weight: 700; }
.campaign-hero h1 { color: #fff; font-size: clamp(2.8rem, 6.4vw, 5.4rem); line-height: 1.08; margin-bottom: 2rem; }
.campaign-hero-copy > p:not(.campaign-eyebrow) { font-size: 1.15rem; }
.campaign-hero-copy small { display: block; margin-top: 1.5rem; }
.campaign-benefits { padding-block: 1.25rem; }
.campaign-benefits .container-xl,
.campaign-testimonials .container-xl,
.campaign-facts { display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.campaign-benefits article { background: #fff; border-radius: var(--df-radius-sm); box-shadow: 0 .35rem 1.5rem rgba(3,40,61,.07); padding: 1.5rem 1rem; text-align: center; }
.campaign-benefits article > span,
.campaign-facts > div > span { color: var(--df-cyan-600); font-size: 2.5rem; }
.campaign-benefits h2 { font-size: 1.25rem; margin-top: .5rem; }
.campaign-benefits p { font-size: .9rem; margin: 0; }
.campaign-video { border-radius: var(--df-radius-sm); display: grid; grid-template-columns: 1.7fr .9fr; overflow: hidden; padding: 0; }
.campaign-video-media { background: #061f2f; min-height: 23rem; position: relative; }
.campaign-video video,
.campaign-video-media img,
.campaign-video-media .media-placeholder { height: 100%; object-fit: cover; width: 100%; }
.campaign-play { align-items: center; background: var(--df-cyan-500); border: .25rem solid #fff; border-radius: 50%; color: #fff; display: flex; font-size: 2rem; height: 5rem; justify-content: center; left: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%); width: 5rem; }
.campaign-video > div:last-child { background: var(--df-navy-950); color: #fff; display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem, 5vw, 4rem); }
.campaign-video h2,
.campaign-video details { color: #fff; }
.campaign-video details { border-top: 1px solid rgba(255,255,255,.3); margin-top: .75rem; padding-top: .75rem; }
.campaign-steps { padding-block: 2rem; text-align: center; }
.campaign-steps > h2::after,
.campaign-feature h2::after,
.campaign-form-intro h2::after,
.campaign-faq > h2::after { background: var(--df-cyan-500); content: ''; display: block; height: .2rem; margin: .6rem auto 1.25rem; width: 2.5rem; }
.campaign-steps > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.campaign-steps article { border-top: 1px dashed var(--df-cyan-600); padding: 0 2rem; }
.campaign-steps article > span { align-items: center; background: var(--df-cyan-600); border-radius: 50%; color: #fff; display: inline-flex; font-weight: 700; height: 2rem; justify-content: center; position: relative; top: -1rem; width: 2rem; }
.campaign-steps h3 { font-size: 1.1rem; }
.campaign-steps strong { color: var(--df-ocean-700); font-size: .9rem; }
.campaign-feature { background: var(--df-sand-100); }
.campaign-feature .container-xl { display: grid; grid-template-columns: .8fr 1.4fr; padding: 0; }
.campaign-feature .container-xl > div:first-child { align-self: center; padding: clamp(2rem, 5vw, 4rem); }
.campaign-feature h2::after,
.campaign-form-intro h2::after,
.campaign-faq > h2::after { margin-left: 0; }
.campaign-feature img,
.campaign-feature .media-placeholder { height: 100%; min-height: 29rem; object-fit: cover; }
.campaign-testimonials { padding-block: 1.25rem; }
.campaign-testimonials .container-xl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.campaign-testimonials blockquote { background: #fff; border-radius: var(--df-radius-sm); display: flex; gap: 1rem; margin: 0; padding: 1.25rem; }
.campaign-testimonials blockquote > span { color: var(--df-cyan-600); font-size: 3rem; line-height: 1; }
.campaign-testimonials cite { color: var(--df-navy-900); font-family: var(--df-font-display); font-style: normal; font-weight: 700; }
.campaign-testimonials p { font-size: .85rem; margin: .35rem 0 0; }
.campaign-facts { background: #f1ece2; border-radius: var(--df-radius-sm); margin-bottom: 1.5rem; padding: 1.25rem; }
.campaign-facts > div { align-items: center; border-right: 1px solid #d4cec4; display: flex; gap: .75rem; }
.campaign-facts > div:last-child { border: 0; }
.campaign-facts p { font-size: .9rem; margin: 0; }
.campaign-form-shell { background: #fff; border-radius: var(--df-radius-sm); display: grid; grid-template-columns: .8fr 1.5fr; overflow: hidden; padding: 0; }
.campaign-form-intro { background: var(--df-navy-950); color: #fff; padding: clamp(2rem, 5vw, 4rem); }
.campaign-form-intro h2 { color: #fff; }
.campaign-form-intro small { display: block; margin-top: 3rem; }
.campaign-form-panel { padding: clamp(1rem, 3vw, 2rem); }
.campaign-interest-form { border: 0; padding: 0; }
.campaign-faq { padding-block: 2rem; }
.campaign-faq details { background: #fff; border: 1px solid var(--df-border); padding: .7rem 1.25rem; }
.campaign-faq details + details { border-top: 0; }
.campaign-faq summary { cursor: pointer; font-weight: 700; }
.campaign-faq details > div { padding-top: .75rem; }
.campaign-final-cta { background-color: var(--df-navy-900); background-position: center; background-size: cover; color: #fff; min-height: 16rem; position: relative; text-align: center; }
.campaign-final-cta::before { background: rgba(3,40,61,.55); }
.campaign-final-cta .container-xl { align-items: center; display: flex; flex-direction: column; justify-content: center; min-height: inherit; position: relative; z-index: 1; }
.campaign-final-cta h2 { color: #fff; }
.campaign-footer { background: var(--df-navy-950); color: #fff; }
.campaign-footer nav { display: flex; gap: 1.5rem; }
.campaign-footer a { color: #fff; }

@media (min-width: 768px) and (max-width: 991.98px) {
	.dive-sites-archive-filters {
		grid-template-columns: 1fr 1fr;
	}

	.dive-sites-archive-grid {
		grid-template-columns: 1fr 1fr;
	}

	.single-site-species,
	.single-site-gallery-grid {
		grid-template-columns: 1fr 1fr;
	}

	.legal-layout {
		grid-template-columns: minmax(13rem, .6fr) 1.4fr;
	}

	.not-found-links {
		grid-template-columns: 1fr 1fr;
	}

	.search-results-grid {
		grid-template-columns: 1fr 1fr;
	}

	.home-welcome .col-lg-5,
	.home-split .col-lg-5 {
		width: 42%;
	}

	.home-welcome .col-lg-7,
	.home-split .col-lg-7 {
		width: 58%;
	}

	.shipwreck-band .col-lg-7 {
		width: 60%;
	}

	.shipwreck-band .col-lg-5 {
		width: 40%;
	}

	.home-map-plan .col-lg-6 {
		width: 50%;
	}

	.experience-trail-layout {
		grid-template-columns: 1fr 1fr;
	}

	.experience-trail-list {
		grid-column: 2;
		grid-row: 2;
	}

	.experience-horizontal-cards,
	.activity-cards {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}

	.experience-horizontal-cards article {
		flex: 0 0 38%;
		scroll-snap-align: start;
	}

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

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

	.gallery-ethics {
		grid-template-columns: 1fr;
	}

	.stay-results-layout {
		grid-template-columns: minmax(0, 1.4fr) minmax(16rem, .7fr);
	}

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

	.stay-information {
		grid-template-columns: 1fr 1fr;
	}

	.stay-information > div:first-child {
		grid-column: 1 / -1;
	}

	.center-archive-card {
		grid-template-areas: "image main facts" "contact contact contact";
		grid-template-columns: minmax(14rem, .8fr) 1fr .8fr;
		position: relative;
	}

	.center-card-logo {
		background: #fff;
		border-radius: 50%;
		bottom: 4.5rem;
		display: flex;
		height: 5rem;
		left: 1rem;
		padding: .4rem;
		position: absolute;
		width: 5rem;
		z-index: 2;
	}

	.center-card-logo span {
		border-width: 1px;
		font-size: .65rem;
		height: 4rem;
		width: 4rem;
	}

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

	.center-about-layout {
		grid-template-columns: 1fr;
	}

	.center-fact-panel {
		width: 100%;
	}

	.center-accessibility-grid {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}

	.center-accessibility-grid article {
		flex: 0 0 28%;
		scroll-snap-align: start;
	}

	.center-contact-layout {
		grid-template-columns: 1fr 1fr;
	}

	.center-contact-layout > div:first-child {
		grid-row: span 2;
	}

	.map-explorer {
		grid-template-columns: minmax(16rem, .7fr) minmax(0, 1.3fr);
	}

	.map-canvas-panel,
	.map-canvas {
		height: 44rem;
		min-height: 44rem;
	}

	.forms-contact-layout {
		grid-template-columns: minmax(0, 1.3fr) minmax(17rem, .7fr);
	}

	.campaign-benefits .container-xl,
	.campaign-facts {
		grid-template-columns: 1fr 1fr;
	}

	.campaign-facts > div:nth-child(2) {
		border-right: 0;
	}
}

@media (min-width: 992px) {
	.navbar-toggler {
		display: none;
	}

	.offcanvas {
		background: transparent;
		color: inherit;
		overflow: visible;
		position: static;
		transform: none !important;
		visibility: visible !important;
		width: auto !important;
	}

	.offcanvas-body {
		overflow: visible;
		padding: 0;
	}

	.navbar-nav > li {
		position: relative;
	}

	.navbar-nav > li > a {
		align-items: center;
		display: flex;
		min-height: 5rem;
	}

	.navbar-nav .sub-menu {
		background: #fff;
		border: 1px solid var(--df-border);
		border-radius: var(--df-radius);
		box-shadow: 0 1rem 2.5rem rgba(3, 40, 61, .2);
		left: 50%;
		min-width: 17rem;
		opacity: 0;
		padding: .55rem;
		pointer-events: none;
		position: absolute;
		top: calc(100% - .35rem);
		transform: translate(-50%, .65rem);
		transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
		visibility: hidden;
		z-index: 1050;
	}

	.navbar-nav .sub-menu::before {
		background: #fff;
		border-left: 1px solid var(--df-border);
		border-top: 1px solid var(--df-border);
		content: '';
		height: .75rem;
		left: 50%;
		position: absolute;
		top: -.42rem;
		transform: translateX(-50%) rotate(45deg);
		width: .75rem;
	}

	.navbar-nav .sub-menu li {
		position: relative;
		z-index: 1;
	}

	.navbar-nav .sub-menu li + li {
		border-top: 1px solid #e8eef0;
	}

	.navbar-nav .sub-menu a {
		border-radius: .35rem;
		color: var(--df-navy-900);
		font-size: .95rem;
		font-weight: 600;
		line-height: 1.35;
		padding: .8rem .9rem;
	}

	.navbar-nav .sub-menu a:hover,
	.navbar-nav .sub-menu a:focus-visible,
	.navbar-nav .sub-menu .current-menu-item > a {
		background: var(--df-cyan-100);
		color: var(--df-navy-950);
	}

	.navbar-nav li:hover > .sub-menu,
	.navbar-nav li:focus-within > .sub-menu {
		opacity: 1;
		pointer-events: auto;
		transform: translate(-50%, 0);
		visibility: visible;
	}

	.navbar-nav li:hover > a::after,
	.navbar-nav li:focus-within > a::after {
		transform: rotate(225deg) translate(-.1rem, -.1rem);
	}
}

@media (max-width: 991.98px) {
	.offcanvas-body {
		padding: .75rem 1rem 1.5rem;
	}

	.navbar-nav > li {
		border-bottom: 1px solid rgba(255, 255, 255, .14);
	}

	.navbar-nav > li > a {
		align-items: center;
		display: flex;
		justify-content: space-between;
		min-height: 3.25rem;
	}

	.navbar-nav .menu-item-has-children > a::after {
		margin-left: auto;
	}

	.navbar-nav .sub-menu {
		background: rgba(255, 255, 255, .07);
		border-left: .2rem solid var(--df-cyan-500);
		border-radius: 0 var(--df-radius-sm) var(--df-radius-sm) 0;
		margin: 0 .5rem .85rem;
		padding: .3rem .45rem;
	}

	.navbar-nav .sub-menu li + li {
		border-top: 1px solid rgba(255, 255, 255, .1);
	}

	.navbar-nav .sub-menu a {
		color: rgba(255, 255, 255, .9);
		font-size: .92rem;
		font-weight: 550;
		line-height: 1.4;
		min-height: 2.8rem;
		padding: .7rem .85rem;
	}

	.navbar-nav .sub-menu a:hover,
	.navbar-nav .sub-menu a:focus-visible,
	.navbar-nav .sub-menu .current-menu-item > a {
		background: rgba(25, 182, 202, .16);
		color: #fff;
	}

	.discover-timeline {
		gap: 1.5rem;
		grid-template-columns: 1fr;
		padding-left: 2rem;
	}

	.discover-timeline::before {
		bottom: 0;
		height: auto;
		left: .5rem;
		right: auto;
		top: 0;
		width: 2px;
	}

	.discover-timeline li {
		padding: 0 0 0 1rem;
		text-align: left;
	}

	.timeline-year {
		margin-bottom: .25rem;
	}

	.discover-timeline li::before {
		left: -2.1rem;
		top: .25rem;
	}

	.marine-life-strip {
		-webkit-overflow-scrolling: touch;
		display: flex;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		padding-bottom: .75rem;
		scroll-snap-type: x mandatory;
		scrollbar-color: var(--df-cyan-600) rgba(3, 40, 61, .12);
		scrollbar-width: thin;
	}

	.marine-life-strip article {
		flex: 0 0 32%;
		scroll-snap-align: start;
	}

	.marine-life-strip:focus-visible {
		border-radius: var(--df-radius-sm);
		outline: .18rem solid var(--df-cyan-500);
		outline-offset: .2rem;
	}

	.diving-swipe-hint {
		align-items: center;
		color: var(--df-navy-800);
		display: flex;
		font-size: .78rem;
		font-weight: 700;
		gap: .45rem;
		justify-content: center;
		letter-spacing: .03em;
		margin: .25rem 0 0;
		text-transform: uppercase;
	}

	.diving-swipe-hint span {
		color: var(--df-cyan-600);
		font-size: 1.15rem;
	}

	.park-project-intro {
		grid-template-columns: 1fr;
	}

	.park-project-intro img,
	.park-project-intro .media-placeholder {
		min-height: 18rem;
	}

	.park-project-timeline {
		gap: 1.5rem;
		grid-template-columns: 1fr;
		margin-left: 1.25rem;
	}

	.park-project-timeline li {
		border-left: 2px solid var(--df-cyan-600);
		border-top: 0;
		padding: 0 0 1rem 2rem;
	}

	.park-project-step {
		left: -1.3rem;
		top: 0;
	}

	.diver-journey {
		grid-template-columns: 1fr;
		padding-left: 3rem;
	}

	.diver-journey::before {
		border-left: 2px dashed var(--df-cyan-500);
		border-top: 0;
		bottom: 0;
		left: 1.25rem;
		right: auto;
		top: 0;
	}

	.diver-journey li {
		align-items: flex-start;
		text-align: left;
	}

	.diver-journey li > span {
		left: -3rem;
		position: absolute;
	}

	.protection-rules {
		grid-template-columns: 1fr 1fr;
	}

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

	.trade-goods,
	.amphora-grid,
	.visitable-steps,
	.ethics-rules {
		grid-template-columns: 1fr 1fr;
	}

	.research-steps {
		-webkit-overflow-scrolling: touch;
		display: flex;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		padding-bottom: .75rem;
		padding-top: 1.5rem;
		scroll-snap-type: x mandatory;
		scrollbar-color: var(--df-cyan-600) rgba(3, 40, 61, .12);
		scrollbar-width: thin;
	}

	.research-steps li {
		flex: 0 0 32%;
		scroll-snap-align: start;
	}

	.research-steps:focus-visible {
		border-radius: var(--df-radius-sm);
		outline: .18rem solid var(--df-cyan-500);
		outline-offset: .2rem;
	}

	.archaeology-swipe-hint {
		align-items: center;
		color: var(--df-navy-800);
		display: flex;
		font-size: .78rem;
		font-weight: 700;
		gap: .45rem;
		justify-content: center;
		letter-spacing: .03em;
		margin: .25rem 0 0;
		text-transform: uppercase;
	}

	.archaeology-swipe-hint span {
		color: var(--df-cyan-600);
		font-size: 1.15rem;
	}

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

	.center-accessibility-grid {
		-webkit-overflow-scrolling: touch;
		display: flex;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		padding-bottom: .75rem;
		scroll-snap-type: x mandatory;
		scrollbar-color: var(--df-cyan-600) rgba(3, 40, 61, .12);
		scrollbar-width: thin;
	}

	.center-accessibility-grid article {
		flex: 0 0 28%;
		scroll-snap-align: start;
	}

	.center-accessibility-grid:focus-visible,
	.center-related-grid:focus-visible {
		border-radius: var(--df-radius-sm);
		outline: .18rem solid var(--df-cyan-500);
		outline-offset: .2rem;
	}

	.center-swipe-hint {
		align-items: center;
		color: var(--df-navy-800);
		display: flex;
		font-size: .78rem;
		font-weight: 700;
		gap: .45rem;
		justify-content: center;
		letter-spacing: .03em;
		margin: .25rem 0 0;
		text-transform: uppercase;
	}

	.center-swipe-hint span {
		color: var(--df-cyan-600);
		font-size: 1.15rem;
	}

	.stay-results-layout {
		grid-template-columns: 1fr;
	}

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

	.stay-map-panel {
		position: static;
	}

	.stay-map-panel img,
	.stay-map-panel .media-placeholder {
		min-height: 34rem;
	}

	.experience-lead-grid,
	.experience-row-layout,
	.experience-trail-layout,
	.experience-map-layout {
		grid-template-columns: 1fr;
	}

	.experience-beach-grid,
	.experience-horizontal-cards {
		-webkit-overflow-scrolling: touch;
		display: flex;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		padding-bottom: .75rem;
		scroll-snap-type: x mandatory;
		scrollbar-color: var(--df-cyan-600) rgba(3, 40, 61, .12);
		scrollbar-width: thin;
	}

	.experience-beach-grid article {
		flex: 0 0 42%;
		scroll-snap-align: start;
	}

	.experience-horizontal-cards article {
		flex: 0 0 38%;
		scroll-snap-align: start;
	}

	.experience-card-featured {
		grid-row: auto;
	}

	.experience-card-featured > img,
	.experience-card-featured > .media-placeholder {
		aspect-ratio: 4 / 3;
		height: auto;
		min-height: 0;
	}

	.experience-trail-list {
		grid-column: auto;
		grid-row: auto;
	}

	.experience-beach-grid:focus-visible,
	.experience-horizontal-cards:focus-visible {
		border-radius: var(--df-radius-sm);
		outline: .18rem solid var(--df-cyan-500);
		outline-offset: .2rem;
	}

	.experience-swipe-hint {
		align-items: center;
		color: var(--df-navy-800);
		display: flex;
		font-size: .78rem;
		font-weight: 700;
		gap: .45rem;
		justify-content: center;
		letter-spacing: .03em;
		margin: .25rem 0 0;
		text-transform: uppercase;
	}

	.experience-swipe-hint span {
		color: var(--df-cyan-600);
		font-size: 1.15rem;
	}
}

@media (max-width: 767.98px) {
	.navbar-brand {
		font-size: clamp(1.15rem, 5.5vw, 1.35rem);
		min-width: 0;
		white-space: nowrap;
	}

	.navbar-toggler {
		justify-content: center;
		padding-inline: .55rem;
		width: 3rem;
	}

	.navbar-toggler .menu-label {
		display: none;
	}

	.dive-sites-archive-filters,
	.dive-sites-archive-grid,
	.single-site-overview,
	.single-site-conditions .container-xl,
	.single-site-species,
	.single-site-gallery-grid {
		grid-template-columns: 1fr;
	}

	.dive-sites-safety .container-xl,
	.single-site-cta .container-xl {
		align-items: flex-start;
		flex-direction: column;
	}

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

	.park-project-intro {
		grid-template-columns: 1fr;
	}

	.park-project-intro img,
	.park-project-intro .media-placeholder {
		min-height: 18rem;
	}

	.park-project-timeline {
		gap: 1.5rem;
		grid-template-columns: 1fr;
		margin-left: 1.25rem;
	}

	.park-project-timeline li {
		border-left: 2px solid var(--df-cyan-600);
		border-top: 0;
		padding: 0 0 1rem 2rem;
	}

	.park-project-step {
		left: -1.3rem;
		top: 0;
	}

	.home-hero-slide {
		min-height: 39rem;
	}

	.home-slider-controls {
		bottom: 1rem;
		left: 50%;
		right: auto;
	}

	.home-hero-slide .display-2 {
		font-size: clamp(2.4rem, 12vw, 4rem);
	}

	.legal-layout {
		grid-template-columns: 1fr;
	}

	.legal-layout > aside {
		position: static;
	}

	.legal-draft-notice .container-xl {
		align-items: flex-start;
	}

	.not-found-hero .container-xl {
		grid-template-columns: 1fr;
	}

	.not-found-copy {
		padding-bottom: 1rem;
	}

	.not-found-visual {
		height: 18rem;
	}

	.not-found-links {
		grid-template-columns: 1fr;
	}

	.not-found-links > a {
		flex-direction: row;
	}

	.not-found-links > a > span {
		flex: 0 0 3.5rem;
	}

	.not-found-contact .container-xl {
		align-items: flex-start;
		flex-direction: column;
		gap: 1rem;
	}

	.site-search-control {
		gap: .5rem;
		grid-template-columns: 1fr;
	}

	.search-type-filters {
		-webkit-overflow-scrolling: touch;
		flex-wrap: nowrap;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		padding-bottom: .5rem;
		scroll-snap-type: x mandatory;
		scrollbar-color: var(--df-cyan-600) rgba(3, 40, 61, .12);
		scrollbar-width: thin;
	}

	.search-type-filters a {
		flex: 0 0 auto;
		scroll-snap-align: start;
	}

	.search-results-grid {
		grid-template-columns: 1fr;
	}

	.campaign-header .container-xl { min-height: 4rem; }
	.campaign-header .btn { display: none; }
	.campaign-header-actions { gap: .5rem; }
	.campaign-hero { min-height: 36rem; }
	.campaign-hero::before { background: linear-gradient(90deg, rgba(3,40,61,.95), rgba(3,40,61,.45)); }
	.campaign-testimonials .container-xl,
	.campaign-facts,
	.campaign-video,
	.campaign-feature .container-xl,
	.campaign-form-shell { grid-template-columns: 1fr; }
	.campaign-benefits .container-xl { grid-template-columns: 1fr 1fr; }
	.campaign-benefits article { padding: 1rem .65rem; }
	.campaign-benefits p { font-size: .75rem; }
	.campaign-video,
	.campaign-feature .container-xl,
	.campaign-form-shell { margin-inline: 1rem; width: auto; }
	.campaign-video-media { min-height: 15rem; }
	.campaign-steps > div { gap: 2rem; grid-template-columns: 1fr; }
	.campaign-feature img,
	.campaign-feature .media-placeholder { min-height: 18rem; }
	.campaign-facts > div { border-bottom: 1px solid #d4cec4; border-right: 0; padding-bottom: .75rem; }
	.campaign-facts > div:last-child { border-bottom: 0; }
	.campaign-footer .container-xl { align-items: flex-start; flex-direction: column; padding-block: 1.25rem; }

	.page-hero {
		min-height: 32rem;
	}

	.page-hero::after {
		background: linear-gradient(90deg, rgba(3,40,61,.94), rgba(3,40,61,.45));
	}

	.newsletter-form .input-group {
		flex-direction: column;
		gap: .75rem;
	}

	.newsletter-form .form-control,
	.newsletter-form .btn {
		border-radius: var(--df-radius-sm) !important;
		width: 100%;
	}

	.home-highlight-row,
	.dive-site-row {
		-webkit-overflow-scrolling: touch;
		flex-wrap: nowrap;
		overflow-y: hidden;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		padding-bottom: 1rem;
		scroll-padding-inline: calc(var(--bs-gutter-x) * .5);
		scroll-snap-type: x mandatory;
		scrollbar-color: var(--df-cyan-600) rgba(3, 40, 61, .12);
		scrollbar-width: thin;
	}

	.home-highlight-row > *,
	.dive-site-row > * {
		scroll-snap-align: start;
	}

	.home-highlight-row:focus-visible,
	.dive-site-row:focus-visible {
		border-radius: var(--df-radius-sm);
		outline: .18rem solid var(--df-cyan-500);
		outline-offset: .2rem;
	}

	.home-swipe-hint {
		align-items: center;
		color: var(--df-navy-800);
		display: flex;
		font-size: .78rem;
		font-weight: 700;
		gap: .45rem;
		justify-content: center;
		letter-spacing: .03em;
		margin: -.35rem 0 0;
		text-transform: uppercase;
	}

	.home-swipe-hint span {
		color: var(--df-ocean-700);
		font-size: 1.15rem;
	}

	.shipwreck-copy {
		align-items: flex-start;
		flex-direction: column;
	}

	.shipwreck-number {
		border-bottom: 1px solid var(--df-cyan-500);
		border-right: 0;
		padding-bottom: 1rem;
		padding-right: 0;
	}

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

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

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

	.gallery-strip > :first-child {
		grid-column: 1 / -1;
	}

	.discover-facts {
		grid-template-columns: 1fr 1fr;
	}

	.diving-highlight {
		border-bottom: 1px solid var(--df-border);
		border-right: 0;
	}

	.marine-life-strip {
		gap: .75rem;
	}

	.marine-life-strip article {
		flex: 0 0 72%;
		scroll-snap-align: start;
	}

	.photo-collage {
		grid-template-columns: 1fr 1fr;
	}

	.photo-collage .photo-main {
		grid-column: 1 / -1;
		grid-row: auto;
	}

	.park-fact-card {
		min-height: 14rem;
	}

	.geology-visual {
		display: grid;
		gap: .75rem;
		min-height: 0;
	}

	.geology-visual > img,
	.geology-visual > .media-placeholder {
		height: auto;
		min-height: 20rem;
	}

	.geology-label {
		max-width: none;
		position: static;
	}

	.diver-journey {
		grid-template-columns: 1fr;
		padding-left: 3rem;
	}

	.diver-journey::before {
		border-left: 2px dashed var(--df-cyan-500);
		border-top: 0;
		bottom: 0;
		left: 1.25rem;
		right: auto;
		top: 0;
	}

	.diver-journey li {
		align-items: flex-start;
		text-align: left;
	}

	.diver-journey li > span {
		left: -3rem;
		position: absolute;
	}

	.protection-rules {
		grid-template-columns: 1fr 1fr;
	}

	.protection-rules > div {
		border-bottom: 1px solid rgba(255,255,255,.25);
	}

	.code-grid {
		columns: 1;
	}

	.archaeology-periods {
		gap: 1.5rem;
		grid-template-columns: 1fr;
	}

	.archaeology-periods::before {
		bottom: 0;
		height: auto;
		left: 2.2rem;
		right: auto;
		top: 0;
		width: 1px;
	}

	.archaeology-periods li {
		align-items: flex-start;
		padding-left: 5.5rem;
		text-align: left;
	}

	.archaeology-periods li > span {
		left: 0;
		position: absolute;
	}

	.trade-goods,
	.amphora-grid,
	.visitable-steps {
		grid-template-columns: 1fr 1fr;
	}

	.research-steps {
		display: flex;
		overflow-x: auto;
		padding-top: 1.5rem;
		scroll-snap-type: x mandatory;
	}

	.research-steps li {
		flex: 0 0 78%;
		scroll-snap-align: start;
	}

	.ethics-rules {
		grid-template-columns: 1fr 1fr;
	}

	.travel-route-grid,
	.travel-accordion {
		grid-template-columns: 1fr;
	}

	.local-transport-grid,
	.season-grid {
		grid-template-columns: 1fr 1fr;
	}

	.local-transport-grid article,
	.season-grid article {
		border-bottom: 1px solid var(--df-border);
		border-right: 0;
	}

	.travel-map-card {
		grid-template-columns: 1fr;
	}

	.experience-lead-grid,
	.experience-row-layout,
	.experience-trail-layout,
	.experience-map-layout {
		grid-template-columns: 1fr;
	}

	.experience-beach-grid {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}

	.experience-beach-grid article {
		flex: 0 0 82%;
		scroll-snap-align: start;
	}

	.experience-card-featured {
		grid-row: auto;
	}

	.experience-card-featured > img,
	.experience-card-featured > .media-placeholder {
		aspect-ratio: 4 / 3;
		height: auto;
		min-height: 0;
	}

	.experience-trail-list {
		grid-column: auto;
		grid-row: auto;
	}

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

	.experience-horizontal-cards {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}

	.experience-horizontal-cards article {
		flex: 0 0 76%;
		scroll-snap-align: start;
	}

	.season-values {
		grid-template-columns: 1fr;
	}

	.gallery-feature-grid {
		grid-template-columns: 1fr;
	}

	.gallery-feature-side {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto;
	}

	.gallery-video-card {
		min-height: 23rem;
	}

	.gallery-masonry {
		grid-template-columns: 1fr 1fr;
	}

	.gallery-ethics {
		grid-template-columns: 1fr;
		padding: 1.25rem;
	}

	.gallery-ethics-copy {
		align-items: flex-start;
	}

	.gallery-ethics-rules {
		grid-template-columns: 1fr 1fr;
	}

	.gallery-lightbox-stage {
		gap: .25rem;
		grid-template-columns: 2.75rem 1fr 2.75rem;
	}

	.gallery-lightbox-nav {
		margin: 0;
		padding: .25rem;
	}

	.stay-filters,
	.stay-results-toolbar,
	.stay-results-layout,
	.stay-card-grid,
	.stay-information {
		grid-template-columns: 1fr;
	}

	.stay-filter-actions,
	.stay-sort {
		align-items: stretch;
		flex-direction: column;
	}

	.stay-filter-actions .btn {
		width: 100%;
	}

	.stay-results-toolbar {
		align-items: stretch;
	}

	.stay-view-switch button {
		flex: 1;
	}

	.stay-map-panel {
		position: static;
	}

	.stay-map-panel img,
	.stay-map-panel .media-placeholder {
		min-height: 28rem;
	}

	.stay-information > div:first-child {
		grid-column: auto;
	}

	.centers-benefits .container-xl {
		padding-inline: 1.25rem;
	}

	.centers-benefits h2 {
		border: 0;
		clip: rect(0, 0, 0, 0);
		height: 1px;
		margin: -1px;
		overflow: hidden;
		padding: 0;
		position: absolute;
		white-space: nowrap;
		width: 1px;
	}

	.centers-benefit-grid {
		background: #fff;
		border-radius: var(--df-radius-sm);
		box-shadow: 0 .4rem 1.25rem rgba(3,40,61,.12);
		margin-top: -1.5rem;
		position: relative;
		z-index: 2;
	}

	.centers-benefit-grid article {
		padding: 1rem .35rem;
	}

	.centers-benefit-grid article > span {
		font-size: 1.8rem;
	}

	.centers-benefit-grid h3 {
		font-size: .85rem;
	}

	.centers-benefit-grid p {
		display: none;
	}

	.centers-filter-controls {
		align-items: stretch;
		flex-direction: column;
	}

	.centers-filter-hint {
		align-items: center;
		color: var(--df-navy-800);
		display: flex;
		font-size: .78rem;
		font-weight: 700;
		gap: .45rem;
		justify-content: center;
		letter-spacing: .03em;
		margin: 0;
		text-transform: uppercase;
	}

	.centers-filter-hint span {
		color: var(--df-cyan-600);
		font-size: 1.15rem;
	}

	.center-archive-card {
		grid-template-areas: "image main" "contact contact";
		grid-template-columns: 40% 60%;
		position: relative;
	}

	.center-card-logo {
		background: #fff;
		border-radius: 50%;
		bottom: 4.75rem;
		display: flex;
		height: 4.75rem;
		left: .75rem;
		padding: .35rem;
		position: absolute;
		width: 4.75rem;
		z-index: 2;
	}

	.center-card-logo span {
		border-width: 1px;
		font-size: .6rem;
		height: 3.8rem;
		width: 3.8rem;
	}

	.center-card-image {
		min-height: 13rem;
	}

	.center-mobile-number {
		align-items: center;
		background: var(--df-cyan-600);
		border-radius: 50%;
		color: #fff;
		display: flex;
		height: 2rem;
		justify-content: center;
		left: .5rem;
		position: absolute;
		top: .5rem;
		width: 2rem;
	}

	.center-card-main {
		padding: .85rem;
	}

	.center-card-main h2 {
		font-size: 1.2rem;
	}

	.center-card-main p {
		font-size: .75rem;
	}

	.center-card-main > strong,
	.center-service-tags,
	.center-card-facts {
		display: none !important;
	}

	.center-card-contact {
		grid-template-columns: repeat(4, 1fr);
	}

	.center-card-contact > span,
	.center-card-contact > a {
		font-size: .7rem;
		min-height: 3rem;
		padding: .35rem;
	}

	.center-card-contact small {
		display: none;
	}

	.center-map-link {
		background: #fff;
		color: var(--df-ocean-700);
	}

	.center-more-link {
		display: flex !important;
		grid-column: 1 / -1;
	}

	.centers-comparison:not([open]) .table-responsive {
		display: none;
	}

	.centers-check-grid {
		gap: .5rem;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.centers-check-grid article {
		border: 1px solid var(--df-border);
		border-radius: var(--df-radius-sm);
		padding: .75rem;
	}

	.centers-check-grid article > span {
		font-size: 1.75rem;
	}

	.centers-check-grid p {
		display: none;
	}

	.centers-map-layout,
	.centers-final-cta .container-xl {
		grid-template-columns: 1fr;
	}

	.centers-map-layout li {
		grid-template-columns: auto 1fr;
	}

	.centers-map-layout li a {
		grid-column: 2;
	}

	.centers-final-cta {
		background: transparent;
	}

	.centers-final-cta .container-xl {
		gap: .5rem;
	}

	.centers-final-cta .container-xl > div {
		background: var(--df-navy-950);
		border-radius: var(--df-radius-sm);
		padding: 1.5rem;
	}

	.centers-final-cta .container-xl > div + div {
		border-left: 0;
	}

	.single-diving_center {
		padding-bottom: 4.25rem;
	}

	.center-single-hero {
		align-items: flex-end !important;
		min-height: 36rem;
	}

	.center-hero-logo {
		height: 5rem;
		width: 5rem;
	}

	.center-section-nav a {
		font-size: .75rem;
		padding: .85rem .75rem;
	}

	.center-about-layout,
	.center-team-cert-grid,
	.center-gallery-grid,
	.center-contact-layout {
		grid-template-columns: 1fr;
	}

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

	.center-highlight-grid article > span {
		font-size: 1.75rem;
	}

	.center-highlight-grid h3 {
		font-size: .75rem;
	}

	.center-highlight-grid p {
		font-size: .65rem;
	}

	.center-services-grid {
		grid-template-columns: 1fr 1fr;
	}

	.center-services-grid article {
		padding: .9rem;
	}

	.center-services-grid article > span {
		font-size: 1.8rem;
	}

	.center-services-grid h3 {
		font-size: .9rem;
	}

	.center-services-grid p {
		font-size: .7rem;
	}

	.center-team-content {
		grid-template-columns: 1fr 1fr;
	}

	.center-cert-list > div {
		height: 7rem;
	}

	.center-video,
	.center-gallery-grid > .gallery-item {
		min-height: 20rem;
	}

	.center-gallery-thumbs > article,
	.center-gallery-thumbs > .media-placeholder {
		min-height: 9rem;
	}

	.center-accessibility-grid article {
		flex: 0 0 42%;
	}

	.center-contact-layout > div:first-child {
		grid-row: auto;
	}

	.center-related-grid {
		-webkit-overflow-scrolling: touch;
		display: flex;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		padding-bottom: .75rem;
		scroll-snap-type: x mandatory;
		scrollbar-color: var(--df-cyan-600) rgba(3, 40, 61, .12);
		scrollbar-width: thin;
	}

	.center-related-grid article {
		flex: 0 0 78%;
		scroll-snap-align: start;
	}

	.center-mobile-actions {
	background: var(--df-navy-950);
	bottom: 0;
	display: grid;
	gap: .5rem;
	grid-template-columns: 1fr 1fr;
	left: 0;
	padding: .5rem;
	position: fixed;
	right: 0;
	z-index: 1050;
	}

	.center-mobile-actions a,
	.center-mobile-actions span {
		background: var(--df-cyan-600);
		border-radius: var(--df-radius-sm);
		color: #fff;
		font-weight: 700;
		padding: .65rem;
		text-align: center;
		text-decoration: none;
	}

	.center-mobile-actions span[aria-disabled="true"] {
		background: #667b85;
	}

	.map-filters {
		grid-template-columns: 1fr 1fr;
	}

	.map-search {
		grid-column: 1;
	}

	.map-filter-button {
		display: block;
		grid-column: 2;
	}

	.map-category-filters {
		display: flex;
		grid-column: 1 / -1;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}

	.map-category-filters label {
		flex: 0 0 30%;
		scroll-snap-align: start;
	}

	.map-filter-swipe-hint {
		align-items: center;
		color: var(--df-navy-800);
		display: flex;
		font-size: .72rem;
		font-weight: 700;
		gap: .4rem;
		grid-column: 1 / -1;
		justify-content: center;
		margin: -.4rem 0 0;
		text-transform: uppercase;
	}

	.map-filter-swipe-hint span {
		color: var(--df-cyan-600);
		font-size: 1rem;
	}

	.map-reset {
		grid-column: 1 / -1;
	}

	.map-view-switch {
		max-width: none;
	}

	.map-explorer {
		grid-template-areas: "map" "results";
		grid-template-columns: 1fr;
	}

	.map-canvas-panel {
		grid-area: map;
	}

	.map-results-panel {
		grid-area: results;
	}

	.map-canvas-panel,
	.map-canvas {
		height: 36rem;
		min-height: 36rem;
	}

	.map-selected-card {
		grid-template-columns: 40% 60%;
		padding: .65rem;
	}

	.map-selected-card > img {
		min-height: 8rem;
	}

	.map-selected-card p {
		font-size: .75rem;
	}

	.map-selected-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.map-result-card > button {
		grid-template-columns: auto auto 1fr auto;
	}

	.map-result-card img,
	.map-result-card small:last-child {
		display: none;
	}

	.map-accessible-list:not([open]) .table-responsive {
		display: none;
	}

	.map-help-travel {
		grid-template-columns: 1fr;
	}

	.map-help-travel > section > div {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.map-help-travel article {
		padding: .5rem;
	}

	.map-help-travel article p {
		font-size: .7rem;
	}

	.map-help-travel > aside {
		grid-template-columns: 1fr;
	}

	.forms-section-tabs .container-xl {
		margin-inline: 1rem;
		width: auto;
	}

	.forms-section-tabs a {
		font-size: .75rem;
		padding: 1rem .35rem;
	}

	.forms-contact-layout,
	.form-grid-two,
	.form-grid-three,
	.evaluation-layout,
	.forms-privacy {
		grid-template-columns: 1fr;
	}

	.public-form,
	.forms-contact-details {
		padding: 1rem;
	}

	.human-check {
		grid-template-columns: auto 1fr;
	}

	.human-check .form-control {
		grid-column: 2;
	}

	.rating-groups fieldset {
		grid-template-columns: 1fr;
	}

	.forms-privacy > div + div {
		border-left: 0;
		border-top: 1px solid var(--df-border);
	}

	.form-loading {
		display: block;
		margin: .75rem 0 0;
	}
}

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

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