/*
 * Plinth base styles.
 *
 * Cascade layers: reset < base < utilities.
 * Block styles (blocks/{slug}/style.css) are intentionally UNLAYERED so they
 * always win over these layers without specificity fights.
 *
 * Design tokens come from theme.json as --wp--preset--* custom properties —
 * never hardcode colors, font sizes or spacing here.
 */

@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url("../fonts/inter-latin-variable.woff2") format("woff2");
}

@font-face {
	font-family: "Lora";
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url("../fonts/lora-latin-variable.woff2") format("woff2");
}

@layer reset, base, utilities;

/* ---------------------------------------------------------------- reset -- */
@layer reset {
	*,
	*::before,
	*::after {
		box-sizing: border-box;
	}

	* {
		margin: 0;
	}

	html {
		-webkit-text-size-adjust: none;
		text-size-adjust: none;
	}

	body {
		min-height: 100svh;
		-webkit-font-smoothing: antialiased;
	}

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

	input,
	button,
	textarea,
	select {
		font: inherit;
		color: inherit;
	}

	h1,
	h2,
	h3,
	h4,
	h5,
	h6 {
		overflow-wrap: break-word;
		text-wrap: balance;
	}

	p {
		overflow-wrap: break-word;
	}
}

/* ----------------------------------------------------------------- base -- */
@layer base {
	:focus-visible {
		outline: 2px solid var(--wp--preset--color--primary);
		outline-offset: 2px;
	}

	.skip-link:focus {
		position: fixed;
		inset-block-start: var(--wp--preset--spacing--sm);
		inset-inline-start: var(--wp--preset--spacing--sm);
		z-index: 100;
		width: auto;
		height: auto;
		padding: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--sm);
		clip-path: none;
		background: var(--wp--preset--color--contrast);
		color: var(--wp--preset--color--base);
		text-decoration: none;
	}

	/*
	 * Content flow.
	 *
	 * Pages are composed of full-bleed Plinth block <section>s that own their
	 * inner width and gutter. Loose paragraphs, images, and trusted HTML embeds
	 * use that same shared site-container shell so their edges align with
	 * adjacent Plinth blocks.
	 * Other prose blocks retain the narrower theme.json content size. Explicit
	 * wide/full alignments remain owned by WordPress. The .is-root-container
	 * variant keeps parity inside the editor canvas.
	 */
	:where(.entry-content, .is-root-container) >
	:where(p, .wp-block-image):not(.alignwide, .alignfull) {
		inline-size: var(--wp--custom--site-container--width);
		max-width: var(--wp--custom--site-container--max-width);
		margin-inline: auto;
		padding-inline: var(--wp--custom--site-container--padding-inline);
	}

	.entry-content > .wp-block-html {
		inline-size: var(--wp--custom--site-container--width);
		max-width: var(--wp--custom--site-container--max-width);
		margin-inline: auto;
		padding-inline: var(--wp--custom--site-container--padding-inline);
	}

	:where(.entry-content, .is-root-container) >
	:where(h1, h2, h3, h4, h5, h6, ul, ol, blockquote):not(.alignwide, .alignfull) {
		max-width: var(--wp--style--global--content-size);
		margin-inline: auto;
		padding-inline: var(--wp--custom--spacing--gutter);
	}

	:where(.entry-content) > * + * {
		margin-block-start: var(--wp--preset--spacing--md);
	}

	/* ---- Site chrome (viewport media queries are fine here — this is not
	   block CSS; blocks must use container queries instead). ---- */

	.site-header {
		--site-header-height: var(--wp--custom--header--expanded-height);
		position: fixed;
		inset-block-start: 0;
		inset-inline: 0;
		z-index: 80;
		block-size: var(--site-header-height);
		border-block-end: 0;
		background: var(--wp--preset--color--base);
		box-shadow: var(--wp--custom--shadow--lg);
		opacity: 1;
		transform: translateY(0);
		transition:
			block-size var(--wp--custom--transition--base),
			background-color var(--wp--custom--transition--base),
			box-shadow var(--wp--custom--transition--base),
			opacity var(--wp--custom--transition--base),
			transform var(--wp--custom--transition--base);
		will-change: transform;

		&[data-header-state="compact"],
		&[data-header-state="hidden"] {
			--site-header-height: var(--wp--custom--header--compact-height);
		}

		&[data-header-state="hidden"] {
			opacity: 0;
			pointer-events: none;
			transform: translateY(-100%);
		}
	}

	.admin-bar .site-header {
		inset-block-start: var(--wp-admin--admin-bar--height, 32px);
	}

	.has-leading-video-hero .site-header[data-header-tone="light"] {
		background: transparent;
		box-shadow: none;
		color: var(--wp--preset--color--base);

		& .site-header__logo img {
			filter: brightness(0) invert(1);
		}

		& .site-header__cta {
			background: var(--wp--preset--color--base);
			color: var(--wp--preset--color--contrast);
		}

		& .site-header__toggle {
			color: var(--wp--preset--color--base);
		}
	}

	.site-header__spacer {
		block-size: var(--wp--custom--header--expanded-height);
	}

	.has-leading-video-hero .site-header__spacer {
		display: none;
	}

	.site-header__inner {
		display: flex;
		align-items: center;
		gap: var(--wp--preset--spacing--md);
		inline-size: var(--wp--custom--site-container--width);
		block-size: 100%;
		max-width: var(--wp--custom--site-container--max-width);
		margin-inline: auto;
		padding-inline: var(--wp--custom--site-container--padding-inline);
	}

	.site-header__logo {
		display: block;
		flex: 0 0 var(--wp--custom--header--expanded-logo-width);
		inline-size: var(--wp--custom--header--expanded-logo-width);
		margin-inline-end: auto;
		transition:
			flex-basis var(--wp--custom--transition--base),
			inline-size var(--wp--custom--transition--base);

		& img {
			inline-size: 100%;
		}
	}

	.site-header:is([data-header-state="compact"], [data-header-state="hidden"]) .site-header__logo {
		flex-basis: var(--wp--custom--header--compact-logo-width);
		inline-size: var(--wp--custom--header--compact-logo-width);
	}

	.site-header__actions {
		display: flex;
		align-items: center;
		gap: var(--wp--custom--header--action-gap);
	}

	.site-header .site-header__cta {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: var(--wp--custom--header--cta-padding-block) var(--wp--custom--header--cta-padding-inline);
		border-radius: var(--wp--custom--radius--md);
		background: var(--wp--preset--color--primary);
		color: var(--wp--preset--color--base);
		font-family: var(--wp--preset--font-family--heading);
		font-size: var(--wp--custom--header--nav-font-size);
		font-weight: 400;
		line-height: 1;
		text-decoration: none;
		white-space: nowrap;
		transition:
			opacity var(--wp--custom--transition--fast),
			transform var(--wp--custom--transition--fast);

		&:hover {
			opacity: 0.88;
		}

		&:active {
			transform: translateY(1px);
		}
	}

	.site-header__toggle {
		display: none;
		align-items: center;
		justify-content: center;
		inline-size: var(--wp--preset--spacing--lg);
		block-size: var(--wp--preset--spacing--lg);
		padding: var(--wp--preset--spacing--xs);
		border: 0;
		background: none;
		cursor: pointer;
	}

	.site-header__toggle-lines {
		display: grid;
		gap: var(--wp--preset--spacing--xxs);
		inline-size: 100%;

		& span {
			display: block;
			block-size: 2px;
			border-radius: var(--wp--custom--radius--sm);
			background: currentcolor;
			transition:
				transform var(--wp--custom--transition--fast),
				opacity var(--wp--custom--transition--fast);
		}

		& span:nth-child(2) {
			inline-size: 75%;
		}
	}

	.site-header__toggle[aria-expanded="true"] {
		& .site-header__toggle-lines span:first-child {
			transform: translateY(8px) rotate(45deg);
		}

		& .site-header__toggle-lines span:nth-child(2) {
			opacity: 0;
		}

		& .site-header__toggle-lines span:last-child {
			transform: translateY(-8px) rotate(-45deg);
		}
	}

	.site-nav {
		align-self: stretch;
	}

	.site-nav__list {
		display: flex;
		align-items: center;
		gap: 0;
		block-size: 100%;
		list-style: none;
		padding: 0;
		font-family: var(--wp--preset--font-family--heading);
		font-size: var(--wp--custom--header--nav-font-size);
		font-weight: 400;

		& .menu-item {
			position: relative;
		}

		& > .menu-item {
			block-size: 100%;
		}

		& a {
			display: inline-flex;
			align-items: center;
			gap: var(--wp--preset--spacing--xxs);
			color: var(--wp--preset--color--contrast);
			text-decoration: none;
			white-space: nowrap;
			transition: color var(--wp--custom--transition--fast);

			&:hover {
				color: var(--wp--preset--color--primary);
			}
		}

		& > .menu-item > a {
			block-size: 100%;
			padding-inline: var(--wp--custom--header--desktop-link-padding);
		}

		& > .current-menu-item > a,
		& > .current-menu-ancestor > a {
			color: var(--wp--preset--color--primary);
		}

		& > .menu-item-has-children > a::after {
			inline-size: var(--wp--preset--spacing--xxs);
			block-size: var(--wp--preset--spacing--xxs);
			border-inline-end: 1px solid currentcolor;
			border-block-end: 1px solid currentcolor;
			content: "";
			transform: translateY(-25%) rotate(45deg);
		}
	}

	.site-nav .sub-menu {
		position: absolute;
		inset-block-start: calc(50% + var(--wp--preset--spacing--md));
		inset-inline-start: 0;
		z-index: 1;
		min-inline-size: var(--wp--custom--header--dropdown-min-width);
		padding: var(--wp--custom--header--dropdown-panel-padding) 0;
		border: 0;
		border-radius: var(--wp--custom--header--dropdown-radius);
		background: var(--wp--preset--color--base);
		box-shadow: var(--wp--custom--header--dropdown-shadow);
		list-style: none;
		font-family: var(--wp--preset--font-family--heading);
		font-size: var(--wp--custom--header--nav-font-size);
		font-weight: 400;
		line-height: 1.3;
		opacity: 0;
		transform: translateY(calc(-1 * var(--wp--preset--spacing--xxs)));
		visibility: hidden;
		transition:
			opacity var(--wp--custom--transition--fast),
			transform var(--wp--custom--transition--fast),
			visibility var(--wp--custom--transition--fast);

		& a {
			display: flex;
			align-items: center;
			gap: var(--wp--preset--spacing--xs);
			padding: var(--wp--custom--header--dropdown-link-padding-block) var(--wp--custom--header--dropdown-link-padding-inline);
			white-space: nowrap;
		}
	}

	.site-nav__item-label {
		min-inline-size: 0;
	}

	.site-nav__badge {
		flex: none;
		padding: var(--wp--custom--header--badge-padding-block) var(--wp--custom--header--badge-padding-inline);
		border-radius: var(--wp--custom--radius--md);
		background: var(--wp--custom--header--badge-background);
		color: var(--wp--preset--color--primary);
		font-family: var(--wp--preset--font-family--body);
		font-size: var(--wp--custom--header--badge-font-size);
		font-weight: 700;
		letter-spacing: var(--wp--custom--header--badge-letter-spacing);
		line-height: 1;
		text-transform: uppercase;
		white-space: nowrap;
	}

	.site-nav .menu-item-has-children:is(:hover, :focus-within) > .sub-menu {
		opacity: 1;
		transform: translateY(0);
		visibility: visible;
	}

	.site-nav__submenu-toggle {
		display: none;
	}

	@media (width <= 75rem) and (width > 64rem) {
		.site-nav__list > .menu-item > a {
			padding-inline: var(--wp--custom--header--narrow-desktop-link-padding);
		}
	}

	@media (width <= 64rem) {
		.site-header {
			--site-header-height: var(--wp--custom--header--tablet-expanded-height);

			&[data-header-state="compact"],
			&[data-header-state="hidden"] {
				--site-header-height: var(--wp--custom--header--tablet-compact-height);
			}
		}

		.site-header__spacer {
			block-size: var(--wp--custom--header--tablet-expanded-height);
		}

		.site-header__logo {
			flex-basis: var(--wp--custom--header--tablet-logo-width);
			inline-size: var(--wp--custom--header--tablet-logo-width);
		}

		.site-header:is([data-header-state="compact"], [data-header-state="hidden"]) .site-header__logo {
			flex-basis: var(--wp--custom--header--tablet-logo-width);
			inline-size: var(--wp--custom--header--tablet-logo-width);
		}

		.site-header__toggle {
			display: inline-flex;
			inline-size: var(--wp--custom--header--tablet-toggle-size);
			block-size: var(--wp--custom--header--tablet-toggle-size);
			padding: var(--wp--preset--spacing--xxs);
		}

		.site-header .site-header__cta {
			padding: var(--wp--custom--header--mobile-cta-padding-block) var(--wp--custom--header--mobile-cta-padding-inline);
			font-size: var(--wp--custom--header--mobile-cta-font-size);
			line-height: var(--wp--custom--header--nav-font-size);
		}

		.site-nav {
			display: none;
			position: absolute;
			inset-block-start: 100%;
			inset-inline: 0;
			block-size: calc(100svh - var(--site-header-height) - var(--wp-admin--admin-bar--height, 0px));
			max-block-size: calc(100svh - var(--site-header-height) - var(--wp-admin--admin-bar--height, 0px));
			overflow-y: auto;
			padding: var(--wp--custom--header--drawer-padding-block-start) 0 0;
			background: var(--wp--preset--color--base);
			border-block-end: 1px solid var(--wp--preset--color--surface);
			box-shadow: var(--wp--custom--shadow--md);

			&[data-open] {
				display: block;
			}

			& .site-nav__list {
				flex-direction: column;
				align-items: stretch;
				gap: 0;
				inline-size: var(--wp--custom--site-container--width);
				block-size: auto;
				max-width: var(--wp--custom--site-container--max-width);
				margin-inline: auto;
				font-family: var(--wp--preset--font-family--body);
				font-size: var(--wp--custom--header--drawer-font-size);
				font-weight: 600;
				line-height: 1;

				& > .menu-item {
					display: grid;
					grid-template-columns: 1fr auto;
					block-size: auto;
					border-block-end: 1px solid var(--wp--preset--color--surface);
				}

				& > .menu-item > a {
					block-size: auto;
					padding: var(--wp--custom--header--drawer-link-padding-block) var(--wp--custom--header--drawer-link-padding-inline);
				}

				& > .menu-item-has-children > a::after {
					display: none;
				}
			}

			& .sub-menu {
				display: grid;
				position: static;
				grid-column: 1 / -1;
				gap: var(--wp--preset--spacing--xxs);
				min-inline-size: 0;
				padding: 0 0 var(--wp--preset--spacing--sm) var(--wp--custom--header--drawer-link-padding-inline);
				border: 0;
				border-radius: 0;
				box-shadow: none;
				opacity: 1;
				transform: none;
				visibility: visible;
				font-family: var(--wp--preset--font-family--body);
				font-size: var(--wp--custom--header--nav-font-size);
				font-weight: 400;
				line-height: 1.3;

				& a {
					display: flex;
					flex-wrap: wrap;
					align-items: center;
					column-gap: var(--wp--preset--spacing--xs);
					row-gap: var(--wp--preset--spacing--xxs);
					padding: var(--wp--preset--spacing--xs) var(--wp--custom--header--drawer-link-padding-inline);
					white-space: normal;
				}

				&[hidden] {
					display: none;
				}
			}
		}

		.site-nav__submenu-toggle {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			align-self: center;
			inline-size: var(--wp--custom--header--tablet-toggle-size);
			block-size: var(--wp--custom--header--tablet-toggle-size);
			padding: var(--wp--preset--spacing--xs);
			border: 0;
			background: none;
			cursor: pointer;

			&::after {
				inline-size: var(--wp--preset--spacing--xs);
				block-size: var(--wp--preset--spacing--xs);
				border-inline-end: 1px solid currentcolor;
				border-block-end: 1px solid currentcolor;
				content: "";
				transform: translateY(-25%) rotate(45deg);
				transition: transform var(--wp--custom--transition--fast);
			}

			&[aria-expanded="true"]::after {
				transform: translateY(25%) rotate(225deg);
			}
		}

		html[data-nav-open] {
			overflow: hidden;
		}
	}

	@media (width <= 47.9375rem) {
		.site-header {
			--site-header-height: var(--wp--custom--header--phone-expanded-height);

			&[data-header-state="compact"],
			&[data-header-state="hidden"] {
				--site-header-height: var(--wp--custom--header--phone-compact-height);
			}
		}

		.site-header__spacer {
			block-size: var(--wp--custom--header--phone-expanded-height);
		}

		.site-header__logo,
		.site-header:is([data-header-state="compact"], [data-header-state="hidden"]) .site-header__logo {
			flex-basis: var(--wp--custom--header--phone-logo-width);
			inline-size: var(--wp--custom--header--phone-logo-width);
		}

		.site-header__toggle,
		.site-nav__submenu-toggle {
			inline-size: var(--wp--custom--header--phone-toggle-size);
			block-size: var(--wp--custom--header--phone-toggle-size);
		}
	}

	@media (width <= 22rem) {
		.site-header__inner,
		.site-header__actions {
			gap: var(--wp--custom--header--narrow-gap);
		}

		.site-header__logo,
		.site-header:is([data-header-state="compact"], [data-header-state="hidden"]) .site-header__logo {
			flex-basis: var(--wp--custom--header--narrow-logo-width);
			inline-size: var(--wp--custom--header--narrow-logo-width);
		}
	}

	.site-footer {
		margin-block-start: 0;
		color: var(--wp--preset--color--base);
	}

	.site-footer__landscape {
		block-size: var(--wp--custom--footer--landscape-height);
		overflow: hidden;

		& img {
			inline-size: 100%;
			block-size: 100%;
			object-fit: cover;
			object-position: var(--wp--custom--footer--landscape-position);
		}
	}

	.site-footer__main {
		background: var(--wp--preset--color--contrast);
	}

	.site-footer__inner {
		display: grid;
		grid-template-columns: 1.35fr 0.75fr 1fr;
		align-items: start;
		column-gap: var(--wp--custom--footer--column-gap);
		row-gap: var(--wp--custom--footer--row-gap);
		inline-size: var(--wp--custom--site-container--width);
		max-width: var(--wp--custom--site-container--max-width);
		margin-inline: auto;
		padding-block: var(--wp--custom--footer--main-padding-block);
		padding-inline: var(--wp--custom--site-container--padding-inline);
	}

	.site-footer__contact {
		display: grid;
		justify-items: start;
		gap: var(--wp--custom--footer--contact-gap);
		min-inline-size: 0;
	}

	.site-footer__logo {
		display: block;
		inline-size: min(100%, var(--wp--custom--footer--logo-width));
		transition: opacity var(--wp--custom--transition--fast);

		&:hover {
			opacity: 0.8;
		}

		& img {
			inline-size: 100%;
			filter: brightness(0) invert(1);
		}
	}

	.site-footer__address {
		font-style: normal;
	}

	.site-footer__contact :where(p, address) {
		max-inline-size: 100%;
	}

	.site-footer__contact a,
	.site-footer__nav a {
		text-decoration: none;
		transition: color var(--wp--custom--transition--fast);
	}

	.site-footer__socials {
		display: flex;
		gap: var(--wp--preset--spacing--xs);
	}

	.site-footer__social-link {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		inline-size: var(--wp--custom--footer--social-size);
		block-size: var(--wp--custom--footer--social-size);
		border-radius: var(--wp--custom--radius--sm);
		background: var(--wp--preset--color--base);
		transition:
			background-color var(--wp--custom--transition--fast),
			transform var(--wp--custom--transition--fast);

		&:hover {
			background: var(--wp--preset--color--surface);
		}

		&:active {
			transform: translateY(1px);
		}

		& svg {
			inline-size: var(--wp--custom--footer--social-icon-size);
			block-size: var(--wp--custom--footer--social-icon-size);
			fill: currentcolor;
		}

		& .site-footer__review-check {
			fill: none;
			stroke: var(--wp--preset--color--base);
			stroke-linecap: square;
			stroke-linejoin: miter;
			stroke-width: 2.25;
		}
	}

	.site-footer__nav {
		min-inline-size: 0;
	}

	.site-footer__list {
		display: grid;
		gap: var(--wp--custom--footer--menu-gap);
		list-style: none;
		padding: 0;
		font-weight: 600;
	}

	.site-footer__accreditation {
		inline-size: min(100%, var(--wp--custom--footer--accreditation-width));
		justify-self: end;

		& img {
			inline-size: 100%;
		}
	}

	.site-footer__copyright {
		background: var(--wp--custom--footer--copyright-background);
	}

	.site-footer__copyright-inner {
		inline-size: var(--wp--custom--site-container--width);
		max-width: var(--wp--custom--site-container--max-width);
		margin-inline: auto;
		padding-block: var(--wp--custom--footer--copyright-padding-block);
		padding-inline: var(--wp--custom--site-container--padding-inline);
		font-size: var(--wp--preset--font-size--sm);
	}

	@media (width <= 64rem) {
		.site-footer__inner {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}

		.site-footer__nav {
			justify-self: end;
		}

		.site-footer__accreditation {
			grid-column: 1 / -1;
			justify-self: center;
		}
	}

	@media (width <= 47.9375rem) {
		.site-footer__inner {
			grid-template-columns: minmax(0, 1fr);
			text-align: start;
		}

		.site-footer__contact {
			grid-column: 1 / -1;
			justify-items: start;
		}

		.site-footer__nav {
			display: none;
		}

		.site-footer__accreditation {
			grid-column: auto;
			align-self: start;
			justify-self: start;
			inline-size: min(100%, var(--wp--custom--footer--mobile-accreditation-width));
		}

		.site-footer__copyright-inner {
			text-align: start;
		}
	}

	/* ---- Archive / post-list templates ---- */

	.archive-main {
		max-width: var(--wp--style--global--content-size);
		margin-inline: auto;
		padding-block: var(--wp--preset--spacing--lg);
		padding-inline: var(--wp--custom--spacing--gutter);
	}

	.archive-header {
		margin-block-end: var(--wp--preset--spacing--lg);
	}

	.post-list {
		display: grid;
		gap: var(--wp--preset--spacing--lg);
	}

	.post-list__title a {
		color: inherit;
		text-decoration: none;

		&:hover {
			color: var(--wp--preset--color--primary);
		}
	}

	.post-list__date {
		font-size: var(--wp--preset--font-size--sm);
	}

	.entry-header {
		max-width: var(--wp--style--global--content-size);
		margin-inline: auto;
		padding-block: var(--wp--preset--spacing--lg) 0;
		padding-inline: var(--wp--custom--spacing--gutter);
	}

	/* ---- Motion ---- */

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

/* ------------------------------------------------------------ utilities -- */
@layer utilities {
	.screen-reader-text {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip-path: inset(50%);
		white-space: nowrap;
	}
}

/* Gutenberg wraps editable blocks, so mirror the loose content shell on their
   root wrappers. This is unlayered to beat WordPress's generated content-size
   rule inside the editor canvas. */
.editor-styles-wrapper .is-root-container >
:where([data-type="core/paragraph"], [data-type="core/image"], [data-type="core/html"]):not(.alignwide, .alignfull) {
	inline-size: var(--wp--custom--site-container--width);
	max-width: var(--wp--custom--site-container--max-width);
	margin-inline: auto;
	padding-inline: var(--wp--custom--site-container--padding-inline);
}

/* WordPress prints global link colours outside cascade layers. Keep the site
   chrome's intentional link treatments in the same (unlayered) cascade. */
.site-header .site-header__cta,
.site-header .site-header__cta:hover {
	color: var(--wp--preset--color--base);
}

.has-leading-video-hero .site-header[data-header-tone="light"] .site-header__cta,
.has-leading-video-hero .site-header[data-header-tone="light"] .site-header__cta:hover {
	color: var(--wp--preset--color--contrast);
}

.site-nav a {
	color: var(--wp--preset--color--contrast);
}

.site-nav a:hover,
.site-nav .current-menu-item > a,
.site-nav .current-menu-ancestor > a {
	color: var(--wp--preset--color--primary);
}

.has-leading-video-hero .site-header[data-header-tone="light"] .site-nav__list > .menu-item > a,
.has-leading-video-hero .site-header[data-header-tone="light"] .site-nav__list > .menu-item > a:hover,
.has-leading-video-hero .site-header[data-header-tone="light"] .site-nav__list > .current-menu-item > a,
.has-leading-video-hero .site-header[data-header-tone="light"] .site-nav__list > .current-menu-ancestor > a {
	color: var(--wp--preset--color--base);
}

.site-footer a {
	color: var(--wp--preset--color--base);
}

.site-footer__contact a:hover,
.site-footer__nav a:hover,
.site-footer__nav .current-menu-item > a {
	color: var(--wp--preset--color--primary);
}

.site-footer .site-footer__social-link {
	color: var(--wp--preset--color--contrast);
}

/* Reveal blocks are server-prepared to prevent a visible-first flash. */
@media (scripting: none), (prefers-reduced-motion: reduce) {
	.b-gallery-lightbox[data-reveal-ready] .b-gallery-lightbox__item,
	.b-intro-paragraph[data-reveal-ready] .b-intro-paragraph__eyebrow,
	.b-intro-paragraph[data-reveal-ready] .b-intro-paragraph__title,
	.b-cottage-details__card[data-reveal-ready] {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}
