/*
Theme Name: Gutenberg Lab VVM
Theme URI: https://example.com
Author: Christos
Description: A Gutenberg lab theme for porting the VVM site system.
Version: 0.1.0
Requires at least: 6.6
Tested up to: 6.7
Requires PHP: 8.1
Text Domain: gutenberg-lab-vvm
*/

:root {
	--vvm-scrollbar-width: 0px;
}

body {
	margin: 0;
	background: #ffffff;
}

.wp-site-blocks {
	padding-top: 0;
	--wp--style--block-gap: 0;
}

.wp-site-blocks > * {
	margin-block-start: 0;
}

/*
 * Young Estates uses tight, deliberate heading spacing instead of relying on
 * browser defaults. Setting the rhythm here keeps post content, patterns, and
 * template parts visually aligned with the shared type scale from theme.json.
 */
.wp-site-blocks :where(h1, h2, h3, h4, h5, h6) {
	margin-top: 0;
}

.wp-site-blocks :where(h1) {
	margin-bottom: 0.9375rem;
}

.wp-site-blocks :where(h2, h3) {
	margin-bottom: 0;
}

.wp-site-blocks :where(h6) {
	margin-top: 1.875rem;
	margin-bottom: 1.25rem;
}

/*
 * theme.json root padding only applies cleanly to direct children of
 * .wp-site-blocks. Our file/DB templates wrap page content in <main>, so we
 * recreate that gutter here and let alignfull sections cancel it back out.
 */
.wp-site-blocks > main.wp-block-group,
.wp-site-blocks > .wp-block-group > main.wp-block-group {
	padding-inline: var(--wp--custom--layout--gutter-current);
}

/*
 * The <main> wrapper above already reapplies the root gutter. When its direct
 * child also receives Gutenberg's has-global-padding class, the page ends up
 * with a doubled inline gutter and alignfull sections never truly bleed out.
 */
.wp-site-blocks > main.wp-block-group > .has-global-padding,
.wp-site-blocks > .wp-block-group > main.wp-block-group > .has-global-padding {
	padding-inline: 0;
}

.wp-site-blocks > main.wp-block-group > .alignfull,
.wp-site-blocks > .wp-block-group > main.wp-block-group > .alignfull,
.wp-site-blocks > main.wp-block-group > .has-global-padding > .alignfull,
.wp-site-blocks
	> .wp-block-group
	> main.wp-block-group
	> .has-global-padding
	> .alignfull,
.wp-site-blocks > main.wp-block-group > .wp-block-post-content > .alignfull,
.wp-site-blocks
	> .wp-block-group
	> main.wp-block-group
	> .wp-block-post-content
	> .alignfull {
	margin-inline: calc(var(--wp--custom--layout--gutter-current) * -1);
}

/*
 * The split-content block's edge mode uses a viewport-wide breakout. On
 * desktop, `100vw` includes the scrollbar width, so the section bleeds by a
 * few pixels and creates a horizontal scrollbar. Front-end JS keeps
 * --vvm-scrollbar-width updated with the real scrollbar width so the breakout
 * still reaches the viewport edge without overshooting it.
 */
body .wp-site-blocks .wp-block-gutenberg-lab-blocks-split-content.split-content--edge {
	inline-size: calc(100vw - var(--vvm-scrollbar-width)) !important;
	max-inline-size: calc(100vw - var(--vvm-scrollbar-width)) !important;
	margin-inline: calc(50% - 50vw + (var(--vvm-scrollbar-width) / 2)) !important;
	overflow-x: clip;
}

body .wp-site-blocks .wp-block-gutenberg-lab-blocks-split-content.split-content--edge .split-content__grid {
	inline-size: 100% !important;
	max-inline-size: 100% !important;
	margin-inline: 0 !important;
}

.wp-site-blocks > .wp-block-template-part,
.wp-site-blocks > .wp-block-template-part > .vvm-header {
	margin-block-end: 0;
}

.wp-site-blocks main p a:not(.wp-element-button),
.wp-site-blocks main li a:not(.wp-element-button),
.wp-site-blocks main .has-xs-font-size a:not(.wp-element-button) {
	color: var(--wp--preset--color--dark-green, #1e3d2f);
	text-decoration-line: underline;
	text-decoration-color: currentColor;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.14em;
	transition:
		color 0.2s ease,
		text-decoration-color 0.2s ease,
		text-decoration-thickness 0.2s ease,
		text-underline-offset 0.2s ease;
}

.wp-site-blocks main p a:not(.wp-element-button):hover,
.wp-site-blocks main p a:not(.wp-element-button):focus-visible,
.wp-site-blocks main li a:not(.wp-element-button):hover,
.wp-site-blocks main li a:not(.wp-element-button):focus-visible,
.wp-site-blocks main .has-xs-font-size a:not(.wp-element-button):hover,
.wp-site-blocks main .has-xs-font-size a:not(.wp-element-button):focus-visible {
	color: var(--wp--preset--color--gold, #c4922a);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.2em;
}

/*
 * The package archive uses split-content as a promotional band. The generic
 * block defaults are intentionally roomy, but this archive needs a tighter
 * Lake Austin-style overlap where the media only peeks above/below the card.
 */
body.post-type-archive-packages
	.wp-block-gutenberg-lab-blocks-split-content.split-content--layout-overlap,
.vvm-packages-archive-promo.wp-block-gutenberg-lab-blocks-split-content.split-content--layout-overlap {
		max-inline-size: min(100%, var(--wp--style--global--content-size, 1320px));
		margin-inline: auto;
		/*
		 * The overlap card pulls visual weight back into the media column, so the
		 * whole promo band needs a slight rightward nudge to feel centered.
		 */
		--vvm-packages-archive-promo-visual-offset: clamp(1rem, 2vw, 1.75rem);
		--split-content-overlap-card-max-width: clamp(24rem, 29vw, 28rem);
		--split-content-overlap-card-padding-block: clamp(1.75rem, 3vw, 2.75rem);
		--split-content-overlap-card-padding-inline: clamp(1.25rem, 2.4vw, 2rem);
		--split-content-overlap-card-shift: clamp(0.5rem, 1vw, 1rem);
		--split-content-overlap-media-aspect-ratio: 30 / 31;
		--split-content-media-min-height: clamp(22rem, 28vw, 32rem);
		margin-top: var(--wp--preset--spacing--section-md);
		margin-bottom: var(--wp--preset--spacing--section-md);
		transform: translateX(var(--vvm-packages-archive-promo-visual-offset));
}

body.post-type-archive-packages
	.wp-block-gutenberg-lab-blocks-split-content.split-content--layout-overlap
	.split-content__grid,
.vvm-packages-archive-promo.wp-block-gutenberg-lab-blocks-split-content.split-content--layout-overlap
	.split-content__grid {
	grid-template-columns: minmax(0, 11fr) minmax(0, 9fr);
}

body.post-type-archive-packages
	.wp-block-gutenberg-lab-blocks-split-content.split-content--layout-overlap
	.split-content__content-flow,
	.vvm-packages-archive-promo.wp-block-gutenberg-lab-blocks-split-content.split-content--layout-overlap
		.split-content__content-flow {
		gap: clamp(0.75rem, 1.2vw, 1rem);
}

@media (max-width: 1023px) {
	body.post-type-archive-packages
		.wp-block-gutenberg-lab-blocks-split-content.split-content--layout-overlap,
	.vvm-packages-archive-promo.wp-block-gutenberg-lab-blocks-split-content.split-content--layout-overlap {
			transform: none;
	}
}

body.post-type-archive-packages .wp-block-gutenberg-lab-blocks-packages-display,
.vvm-packages-archive-list.wp-block-gutenberg-lab-blocks-packages-display {
	max-inline-size: min(100%, var(--wp--style--global--content-size, 1320px));
	margin-inline: auto;
}

body.post-type-archive-packages
	.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-packages-display__header,
.vvm-packages-archive-list.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-packages-display__header {
		justify-items: center;
		margin-inline: auto;
		text-align: center;
}

body.post-type-archive-packages
	.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-packages-display__intro,
.vvm-packages-archive-list.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-packages-display__intro {
		max-width: 40rem;
}

body.post-type-archive-packages
	.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-package-card__body,
.vvm-packages-archive-list.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-package-card__body {
		gap: 0.75rem;
}

body.post-type-archive-packages
	.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-package-meta--card {
		display: grid;
		gap: 0.65rem;
}

body.post-type-archive-packages
	.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-package-meta--card
	.vvm-package-meta__price-wrap,
.vvm-packages-archive-list.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-package-meta--card
	.vvm-package-meta__price-wrap {
		display: grid;
		gap: 0.15rem;
}

body.post-type-archive-packages
	.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-package-meta--card
	.vvm-package-meta__price,
.vvm-packages-archive-list.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-package-meta--card
	.vvm-package-meta__price {
		font-size: 1rem;
		font-weight: 700;
	}

body.post-type-archive-packages
	.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-package-meta--card
	.vvm-package-meta__actions,
.vvm-packages-archive-list.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-package-meta--card
	.vvm-package-meta__actions {
		margin-top: 0.35rem;
}

body.post-type-archive-packages
	.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-package-meta--card
	.vvm-package-meta__actions,
.vvm-packages-archive-list.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-package-meta--card
	.vvm-package-meta__actions {
		display: block !important;
}

body.post-type-archive-packages
	.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-package-meta--card
	.vvm-package-meta__actions
	.wp-block-button,
.vvm-packages-archive-list.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-package-meta--card
	.vvm-package-meta__actions
	.wp-block-button {
		display: block !important;
		margin: 0 !important;
		width: max-content;
}

body.post-type-archive-packages
	.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-package-meta--card
	.vvm-package-meta__actions
	.wp-block-button
	+ .wp-block-button,
.vvm-packages-archive-list.wp-block-gutenberg-lab-blocks-packages-display
	.vvm-package-meta--card
	.vvm-package-meta__actions
	.wp-block-button
	+ .wp-block-button {
		margin-top: 0.5rem !important;
}

.vvm-header {
	/*
	 * Header chrome is color-token driven so the same markup can switch between
	 * transparent-on-hero and solid-on-scroll without duplicating selectors.
	 */
	--vvm-header-bg: var(--wp--preset--color--dark-green, #1e3d2f);
	--vvm-header-fg: var(--wp--preset--color--light-gold, #f5ecd7);
	--vvm-header-hover: var(--wp--preset--color--gold, #c4922a);
	--vvm-header-shadow: none;
	--vvm-header-logo-width: 220px;
	position: relative;
	z-index: 40;
	background-color: var(--vvm-header-bg);
	backdrop-filter: none;
	box-shadow: var(--vvm-header-shadow);
	transition:
		background-color 0.42s ease,
		backdrop-filter 0.42s ease,
		box-shadow 0.42s ease,
		color 0.3s ease,
		transform 0.42s ease;
}

/*
 * WordPress exposes the live admin-bar height as a CSS custom property when a
 * user is logged in. Reusing that value keeps the overlay and fixed header
 * states visible instead of tucking the top edge behind the toolbar.
 */
body {
	--vvm-admin-bar-offset: 0px;
}

body.admin-bar {
	--vvm-admin-bar-offset: var(--wp-admin--admin-bar--height, 32px);
}

.vvm-header__inner {
	max-width: none !important;
}

.vvm-header__inner > .vvm-header__bar {
	width: 100%;
	max-width: none !important;
}

.vvm-header__bar {
	min-height: var(--vvm-header-height, 96px);
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	column-gap: clamp(1rem, 2vw, 2.5rem);
}

.vvm-header__utility {
	display: flex;
	align-items: center;
	gap: clamp(0.85rem, 1.6vw, 1.4rem);
	min-width: 0;
}

.vvm-header__utility--left {
	grid-column: 1;
	justify-self: start;
}

.vvm-header__utility--right {
	grid-column: 3;
	justify-self: end;
}

.vvm-header__brand {
	grid-column: 2;
	display: grid;
	justify-self: center;
	justify-items: center;
}

.vvm-header .wp-block-site-logo {
	margin: 0;
}

.vvm-header .custom-logo-link,
.vvm-header .wp-block-site-logo a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}

.vvm-header .wp-block-site-logo img {
	width: min(var(--vvm-header-logo-width), 100%) !important;
	height: auto !important;
	max-width: 100%;
	max-height: none;
	object-fit: contain;
	transition:
		width 0.42s ease,
		opacity 0.3s ease,
		transform 0.42s ease;
}

.vvm-header__nav {
	margin: 0;
	color: var(--vvm-header-fg);
}

.vvm-header__nav .wp-block-navigation__responsive-container-open,
.vvm-header__nav .wp-block-navigation__responsive-container-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--vvm-header-fg);
	box-shadow: none;
	transition:
		color 0.2s ease,
		opacity 0.2s ease;
}

.vvm-header__nav .wp-block-navigation__responsive-container-open:hover,
.vvm-header__nav .wp-block-navigation__responsive-container-open:focus-visible,
.vvm-header__nav .wp-block-navigation__responsive-container-close:hover,
.vvm-header__nav .wp-block-navigation__responsive-container-close:focus-visible {
	color: var(--vvm-header-hover);
}

.vvm-header__contact {
	margin: 0;
	font-family: var(--wp--preset--font-family--refined-sans);
	font-size: 0.95rem;
	font-weight: 300;
	letter-spacing: 0.16em;
	line-height: 1;
	text-transform: uppercase;
}

.vvm-header__contact a {
	color: var(--vvm-header-fg);
	text-decoration: none;
	transition:
		color 0.2s ease,
		opacity 0.2s ease;
}

.vvm-header__contact a:hover,
.vvm-header__contact a:focus-visible {
	color: var(--vvm-header-hover);
}

.vvm-header__social {
	gap: clamp(0.5rem, 1vw, 0.85rem);
	margin: 0;
}

.vvm-header__social.wp-block-social-links .wp-social-link {
	margin: 0;
	color: var(--vvm-header-fg);
	background: transparent;
	transform: none;
	transition:
		color 0.2s ease,
		opacity 0.2s ease;
}

.vvm-header__social.wp-block-social-links .wp-social-link a {
	padding: 0;
	color: inherit;
}

.vvm-header__social.wp-block-social-links .wp-social-link svg {
	width: 1.05rem;
	height: 1.05rem;
}

.vvm-header__social.wp-block-social-links .wp-social-link:hover,
.vvm-header__social.wp-block-social-links .wp-social-link:focus-within {
	color: var(--vvm-header-hover);
}

.wp-block-button.is-style-vvm-primary .wp-block-button__link,
.wp-block-button.is-style-vvm-primary .wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	padding: 12px 40px 14px;
	border: 1px solid var(--wp--preset--color--dark-green, #1e3d2f);
	border-radius: 0;
	background: var(--wp--preset--color--dark-green, #1e3d2f) !important;
	color: #ffffff !important;
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.0625rem;
	text-decoration: none !important;
	text-transform: uppercase;
	box-shadow: none;
	transition:
		background-color 0.2s ease,
		color 0.2s ease,
		border-color 0.2s ease,
		box-shadow 0.2s ease,
		transform 0.12s ease;
}

.wp-block-button.is-style-vvm-primary .wp-block-button__link:hover,
.wp-block-button.is-style-vvm-primary .wp-block-button__link:focus-visible,
.wp-block-button.is-style-vvm-primary .wp-element-button:hover,
.wp-block-button.is-style-vvm-primary .wp-element-button:focus-visible {
	background: var(--wp--preset--color--gold, #c4922a) !important;
	border-color: var(--wp--preset--color--gold, #c4922a);
	color: var(--wp--preset--color--dark-green, #1e3d2f) !important;
	box-shadow: 0 10px 20px rgb(30 61 47 / 0.14);
	transform: translateY(-1px);
}

.wp-block-button.is-style-vvm-primary .wp-block-button__link:active,
.wp-block-button.is-style-vvm-primary .wp-element-button:active {
	box-shadow: none;
	transform: translateY(0);
}

.wp-block-button.is-style-vvm-secondary .wp-block-button__link,
.wp-block-button.is-style-vvm-secondary .wp-element-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	padding: 12px 40px 14px;
	border: 1px solid var(--wp--preset--color--dark-green, #1e3d2f);
	border-radius: 0;
	background: #ffffff !important;
	color: var(--wp--preset--color--dark-green, #1e3d2f) !important;
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0.0625rem;
	text-decoration: none !important;
	text-transform: uppercase;
	box-shadow: none;
	transition:
		background-color 0.2s ease,
		color 0.2s ease,
		border-color 0.2s ease,
		box-shadow 0.2s ease,
		transform 0.12s ease;
}

.wp-block-button.is-style-vvm-secondary .wp-block-button__link:hover,
.wp-block-button.is-style-vvm-secondary .wp-block-button__link:focus-visible,
.wp-block-button.is-style-vvm-secondary .wp-element-button:hover,
.wp-block-button.is-style-vvm-secondary .wp-element-button:focus-visible {
	background: var(--wp--preset--color--gold, #c4922a) !important;
	border-color: var(--wp--preset--color--gold, #c4922a);
	color: var(--wp--preset--color--dark-green, #1e3d2f) !important;
	box-shadow: 0 10px 20px rgb(30 61 47 / 0.12);
	transform: translateY(-1px);
}

.wp-block-button.is-style-vvm-secondary .wp-block-button__link:active,
.wp-block-button.is-style-vvm-secondary .wp-element-button:active {
	box-shadow: none;
	transform: translateY(0);
}

.wp-block-button.is-style-vvm-link-primary .wp-block-button__link,
.wp-block-button.is-style-vvm-link-primary .wp-element-button,
.wp-block-button.is-style-vvm-link-secondary .wp-block-button__link,
.wp-block-button.is-style-vvm-link-secondary .wp-element-button {
	display: inline-flex;
	align-items: center;
	gap: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent !important;
	box-shadow: none;
	font-size: 1.25rem;
	font-weight: 400;
	letter-spacing: 0.0625rem;
	text-decoration: underline !important;
	text-transform: uppercase;
	transition:
		color 0.2s ease,
		text-decoration-color 0.2s ease,
		transform 0.2s ease;
}

.wp-block-button.is-style-vvm-link-primary .wp-block-button__link,
.wp-block-button.is-style-vvm-link-primary .wp-element-button {
	color: var(--wp--preset--color--dark-green, #1e3d2f) !important;
}

.wp-block-button.is-style-vvm-link-secondary .wp-block-button__link,
.wp-block-button.is-style-vvm-link-secondary .wp-element-button {
	color: #ffffff !important;
}

.wp-block-button.is-style-vvm-link-primary .wp-block-button__link::after,
.wp-block-button.is-style-vvm-link-primary .wp-element-button::after,
.wp-block-button.is-style-vvm-link-secondary .wp-block-button__link::after,
.wp-block-button.is-style-vvm-link-secondary .wp-element-button::after {
	content: "";
	display: inline-block;
	width: 0;
	height: 0;
	margin-left: 0.5rem;
	border-top: 4px solid transparent;
	border-bottom: 4px solid transparent;
	border-left: 6px solid var(--wp--preset--color--gold, #c4922a);
	transition: transform 0.2s ease;
	vertical-align: middle;
}

.wp-block-button.is-style-vvm-link-primary .wp-block-button__link:hover,
.wp-block-button.is-style-vvm-link-primary .wp-block-button__link:focus-visible,
.wp-block-button.is-style-vvm-link-primary .wp-element-button:hover,
.wp-block-button.is-style-vvm-link-primary .wp-element-button:focus-visible,
.wp-block-button.is-style-vvm-link-secondary .wp-block-button__link:hover,
.wp-block-button.is-style-vvm-link-secondary .wp-block-button__link:focus-visible,
.wp-block-button.is-style-vvm-link-secondary .wp-element-button:hover,
.wp-block-button.is-style-vvm-link-secondary .wp-element-button:focus-visible {
	color: var(--wp--preset--color--gold, #c4922a) !important;
	text-decoration: none !important;
}

.wp-block-button.is-style-vvm-link-primary .wp-block-button__link:hover::after,
.wp-block-button.is-style-vvm-link-primary .wp-block-button__link:focus-visible::after,
.wp-block-button.is-style-vvm-link-primary .wp-element-button:hover::after,
.wp-block-button.is-style-vvm-link-primary .wp-element-button:focus-visible::after,
.wp-block-button.is-style-vvm-link-secondary .wp-block-button__link:hover::after,
.wp-block-button.is-style-vvm-link-secondary .wp-block-button__link:focus-visible::after,
.wp-block-button.is-style-vvm-link-secondary .wp-element-button:hover::after,
.wp-block-button.is-style-vvm-link-secondary .wp-element-button:focus-visible::after {
	transform: translateX(3px);
}

body.vvm-has-hero-header .vvm-header {
	--vvm-header-bg: transparent;
	--vvm-header-fg: var(--wp--preset--color--light-gold, #f5ecd7);
	--vvm-header-hover: var(--wp--preset--color--gold, #c4922a);
	--vvm-header-shadow: none;
	position: fixed;
	top: var(--vvm-admin-bar-offset);
	left: 0;
	right: 0;
	inset-inline: 0;
	background-color: var(--vvm-header-bg);
	backdrop-filter: none;
	box-shadow: var(--vvm-header-shadow);
}

.vvm-header.is-scrolled {
	--vvm-header-bg: var(--wp--preset--color--dark-green, #1e3d2f);
	--vvm-header-fg: var(--wp--preset--color--light-gold, #f5ecd7);
	--vvm-header-hover: var(--wp--preset--color--gold, #c4922a);
	--vvm-header-shadow: 0 14px 40px rgba(13, 28, 22, 0.22);
	--vvm-header-logo-width: 110px;
	position: fixed;
	top: var(--vvm-admin-bar-offset);
	left: 0;
	right: 0;
	inset-inline: 0;
	background-color: var(--vvm-header-bg);
	backdrop-filter: none;
	box-shadow: var(--vvm-header-shadow);
}

body.vvm-has-hero-header .vvm-header.is-scrolled {
	--vvm-header-bg: var(--wp--preset--color--dark-green, #1e3d2f);
	--vvm-header-fg: var(--wp--preset--color--light-gold, #f5ecd7);
	--vvm-header-hover: var(--wp--preset--color--gold, #c4922a);
	--vvm-header-shadow: 0 14px 40px rgba(13, 28, 22, 0.22);
	--vvm-header-logo-width: 110px;
	position: fixed;
	background-color: var(--vvm-header-bg);
	backdrop-filter: none;
	box-shadow: var(--vvm-header-shadow);
}

.vvm-header .wp-block-navigation__responsive-container {
	padding: 0;
	position: fixed;
	inset: 0;
	z-index: 45;
	display: none !important;
	background: transparent !important;
	background-color: transparent !important;
	color: var(--wp--preset--color--dark-green, #1e3d2f) !important;
	backdrop-filter: none;
	visibility: hidden;
	pointer-events: none;
	transition: visibility 0s linear 0.34s;
}

.vvm-header .wp-block-navigation__responsive-container.has-modal-open,
.vvm-header .wp-block-navigation__responsive-container.is-menu-open {
	display: block !important;
	visibility: visible;
	pointer-events: auto;
	transition-delay: 0s;
}

.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation__container,
.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-item__content,
.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-submenu__toggle,
.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container {
	color: var(--wp--preset--color--dark-green, #1e3d2f);
}

.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation__container {
	display: block;
	width: 100% !important;
	box-sizing: border-box;
	gap: 0;
	margin: 0;
	padding: 0;
	justify-content: flex-start;
}

.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation__responsive-close {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
}

.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation__responsive-dialog {
	position: fixed;
	top: 0 !important;
	left: 0;
	width: min(21rem, calc(100vw - 3.5rem));
	height: calc(100dvh - var(--vvm-admin-bar-offset)) !important;
	max-width: none;
	margin: 0;
	background: rgba(255, 255, 255, 0.98);
	border-right: 4px solid rgba(30, 61, 47, 0.18);
	box-shadow: 22px 0 44px rgba(13, 28, 22, 0.18);
	overflow: hidden;
	transform: translateX(calc(-100% - 1rem));
	opacity: 0;
	transition:
		transform 0.34s cubic-bezier(0.22, 1, 0.36, 1),
		opacity 0.24s ease;
}

.vvm-header .wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation__responsive-dialog,
.vvm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
	transform: translateX(0);
	opacity: 1;
}

.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-item__content,
.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-submenu__toggle {
	font-size: 0.88rem;
	font-weight: 300;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content {
	height: 100%;
	overflow-y: auto;
	padding: 0;
}

.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-close {
	position: absolute;
	top: 0.85rem;
	right: 0.85rem;
	z-index: 2;
	width: 2rem;
	height: 2rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--dark-green, #1e3d2f);
}

.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-item {
	display: block;
	width: 100% !important;
	box-sizing: border-box;
	margin: 0;
	border-bottom: 1px solid rgba(30, 61, 47, 0.12);
}

.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-item > .wp-block-navigation-item__content,
.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-item > .wp-block-navigation-submenu__toggle {
	min-height: 55px;
}

.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: flex;
	align-items: center;
	width: 100% !important;
	box-sizing: border-box;
	padding: 0 2.25rem;
	background: transparent;
}

.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-item.vvm-header-nav__child > .wp-block-navigation-item__content {
	padding-left: 3.15rem;
}

.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-item__content:hover,
.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-item__content:focus-visible,
.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-submenu__toggle:hover,
.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-submenu__toggle:focus-visible {
	color: var(--wp--preset--color--light-gold, #f5ecd7);
	background: rgba(30, 61, 47, 0.62);
}

.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-item.current-menu-ancestor > .wp-block-navigation-item__content,
.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation-item.current-page-parent > .wp-block-navigation-item__content {
	background: rgba(94, 153, 120, 0.82);
	color: var(--wp--preset--color--light-gold, #f5ecd7);
}

@media (prefers-reduced-motion: reduce) {
	.vvm-header,
	.vvm-header .wp-block-site-logo img,
	.vvm-header .wp-block-navigation__responsive-container,
	.vvm-header .wp-block-navigation__responsive-container .wp-block-navigation__responsive-dialog {
		transition: none !important;
	}
}

.vvm-atmosphere-edge {
	position: relative;
	overflow: hidden;
	--vvm-atmosphere-edge-height: clamp(8rem, 20vw, 15rem);
	--vvm-atmosphere-edge-white-solid: rgba(255, 255, 255, 1);
	--vvm-atmosphere-edge-white-soft: rgba(255, 255, 255, 0.88);
	--vvm-atmosphere-edge-white-mid: rgba(255, 255, 255, 0.56);
	--vvm-atmosphere-edge-white-light: rgba(255, 255, 255, 0.22);
	--vvm-atmosphere-edge-clear: rgba(255, 255, 255, 0);
}

.vvm-atmosphere-edge::after {
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	z-index: 2;
	pointer-events: none;
}

.vvm-atmosphere-edge--top::after,
.vvm-atmosphere-edge--fog-top::after {
	top: 0;
	bottom: auto;
	height: var(--vvm-atmosphere-edge-height);
	background: linear-gradient(
		180deg,
		var(--vvm-atmosphere-edge-white-solid) 0%,
		var(--vvm-atmosphere-edge-white-solid) 18%,
		var(--vvm-atmosphere-edge-white-soft) 34%,
		var(--vvm-atmosphere-edge-white-mid) 58%,
		var(--vvm-atmosphere-edge-white-light) 80%,
		var(--vvm-atmosphere-edge-clear) 100%
	);
}

.vvm-atmosphere-edge--bottom::after,
.vvm-atmosphere-edge--fog-bottom::after {
	top: auto;
	bottom: 0;
	height: var(--vvm-atmosphere-edge-height);
	background: linear-gradient(
		0deg,
		var(--vvm-atmosphere-edge-white-solid) 0%,
		var(--vvm-atmosphere-edge-white-solid) 18%,
		var(--vvm-atmosphere-edge-white-soft) 34%,
		var(--vvm-atmosphere-edge-white-mid) 58%,
		var(--vvm-atmosphere-edge-white-light) 80%,
		var(--vvm-atmosphere-edge-clear) 100%
	);
}

.wp-block-gutenberg-lab-blocks-media-panel.vvm-atmosphere-edge .media-panel__overlay {
	position: relative;
	z-index: 3;
}

.vvm-footer {
	--vvm-footer-bg: #0b1712;
	--vvm-footer-text: var(--wp--preset--color--light-gold, #f5ecd7);
	--vvm-footer-accent: var(--wp--preset--color--gold, #c4922a);
	position: relative;
	color: var(--vvm-footer-text);
	background: var(--vvm-footer-bg) !important;
}

.vvm-footer::before {
	display: none;
}

.vvm-footer::after {
	display: none;
}

.vvm-footer__inner {
	position: relative;
	margin: 0 auto;
}

.vvm-footer__columns {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) repeat(2, minmax(0, 1fr)) minmax(0, 1.1fr);
	gap: 80px;
	align-items: start;
	margin-bottom: 0;
}

.vvm-footer__columns > .wp-block-column {
	margin: 0 !important;
}

.vvm-footer__column {
	min-width: 0;
	color: var(--vvm-footer-text);
}

.vvm-footer__column--brand {
	max-width: 22rem;
}

.vvm-footer__column--contact {
	max-width: 18rem;
}

.vvm-footer__logo {
	margin-bottom: 1.5rem;
}

.vvm-footer__logo .custom-logo-link,
.vvm-footer__logo img {
	display: block;
}

.vvm-footer__logo img {
	width: min(100%, 18.75rem) !important;
	height: auto;
}

.vvm-footer__tagline {
	margin-top: 0;
	margin-bottom: 0;
	max-width: 18rem;
	font-size: 1rem;
	line-height: 1.6;
	opacity: 0.8;
	color: var(--vvm-footer-text);
}

.vvm-footer__eyebrow {
	margin: 0 0 1rem;
	font-family: inherit;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--vvm-footer-accent);
}

.vvm-footer__nav,
.vvm-footer__legal-nav {
	margin: 0;
}

.vvm-footer__nav .wp-block-navigation__container,
.vvm-footer__legal-nav .wp-block-navigation__container {
	row-gap: 0.75rem;
	column-gap: 0.75rem;
	align-items: flex-start;
}

.vvm-footer__nav .wp-block-navigation-item,
.vvm-footer__legal-nav .wp-block-navigation-item {
	margin: 0;
}

.vvm-footer__nav .wp-block-navigation-item__content,
.vvm-footer__legal-nav .wp-block-navigation-item__content {
	display: inline-block;
	padding: 0;
	font-size: 1rem;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.5;
	text-transform: none;
	color: var(--vvm-footer-text);
	text-decoration: none;
	font-family: "Liberation Serif", Georgia, serif;
	transition:
		color 0.3s ease,
		transform 0.3s ease,
		opacity 0.3s ease;
	transform-origin: left center;
}

.vvm-footer__nav .wp-block-navigation-item__label,
.vvm-footer__legal-nav .wp-block-navigation-item__label {
	font-family: "Liberation Serif", Georgia, serif;
}

.vvm-footer__nav .wp-block-navigation-item__content:hover,
.vvm-footer__nav .wp-block-navigation-item__content:focus-visible,
.vvm-footer__legal-nav .wp-block-navigation-item__content:hover,
.vvm-footer__legal-nav .wp-block-navigation-item__content:focus-visible {
	color: var(--vvm-footer-accent);
	transform: translateX(0.35rem);
}

.vvm-footer__nav .current-menu-item > .wp-block-navigation-item__content,
.vvm-footer__nav .current-menu-ancestor > .wp-block-navigation-item__content,
.vvm-footer__nav .wp-block-navigation-item__content[aria-current="page"] {
	color: var(--vvm-footer-accent);
	transform: translateX(0.35rem);
}

.vvm-footer__contact-list {
	margin: 0;
}

.vvm-footer__contact-item {
	display: flex;
	align-items: flex-start;
	gap: 0.875rem;
	margin: 0;
	font-size: 1rem;
	line-height: 1.65;
	letter-spacing: 0;
	color: var(--vvm-footer-text);
	font-family: "Liberation Serif", Georgia, serif;
}

.vvm-footer__contact-item + .vvm-footer__contact-item {
	margin-top: 1rem;
}

.vvm-footer__contact-icon {
	flex: 0 0 1.125rem;
	width: 1.125rem;
	height: 1.125rem;
	margin-top: 0.15rem;
	color: var(--vvm-footer-accent);
}

.vvm-footer__contact-icon svg {
	display: block;
	width: 100%;
	height: 100%;
}

.vvm-footer__contact-item a,
.vvm-footer__contact-item span:last-child {
	color: var(--vvm-footer-text);
	text-decoration: none;
	font-family: "Liberation Serif", Georgia, serif;
	transition: color 0.3s ease;
}

.vvm-footer__contact-item a:hover,
.vvm-footer__contact-item a:focus-visible {
	color: var(--vvm-footer-accent);
}

.vvm-footer__divider {
	margin-top: 40px;
	margin-bottom: 20px;
	border: 0;
	height: 1px;
	background: rgb(196 146 42 / 0.3);
	color: transparent;
	opacity: 1;
}

.vvm-footer__bottom {
	width: 100%;
	justify-content: space-between;
	align-items: center;
	gap: 0.625rem 1.25rem;
	padding-bottom: 30px;
	text-align: left;
}

.vvm-footer__copyright {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.5;
	opacity: 0.7;
	color: var(--vvm-footer-text);
}

.vvm-footer__legal-nav .wp-block-navigation__container {
	justify-content: flex-end;
	row-gap: 0.5rem;
	column-gap: 2rem;
}

.vvm-footer__legal-nav .wp-block-navigation-item__content {
	font-size: 0.875rem;
	opacity: 0.7;
	transform-origin: center;
}

.vvm-footer__legal-nav .wp-block-navigation-item__content:hover,
.vvm-footer__legal-nav .wp-block-navigation-item__content:focus-visible {
	color: var(--vvm-footer-accent);
	transform: none;
}

.js .vvm-footer .vvm-footer__motion-item {
	opacity: 0;
	transform: translate3d(0, 40px, 0);
	transition:
		opacity 0.8s ease-out,
		transform 0.8s ease-out;
}

.js .vvm-footer.is-visible .vvm-footer__motion-item {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.js .vvm-footer .vvm-footer__motion-item--1 {
	transition-delay: 0s;
}

.js .vvm-footer .vvm-footer__motion-item--2 {
	transition-delay: 0.1s;
}

.js .vvm-footer .vvm-footer__motion-item--3 {
	transition-delay: 0.2s;
}

.js .vvm-footer .vvm-footer__motion-item--4 {
	transition-delay: 0.3s;
}

.js .vvm-footer .vvm-footer__motion-item--5 {
	transition-delay: 0.4s;
}

@media (min-width: 782px) {
	.vvm-header__utility--right {
		display: flex;
	}
}

@media (max-width: 1023px) {
	.vvm-footer__columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 40px;
	}
}

@media (max-width: 781px) {
	.vvm-header__bar {
		grid-template-columns: 40px minmax(0, 1fr) 40px;
		min-height: var(--vvm-header-height, 96px);
		column-gap: 0.75rem;
	}

	.vvm-header__utility {
		gap: 0;
	}

	.vvm-header__brand {
		grid-column: 2;
		justify-self: center;
	}

	.vvm-header__contact,
	.vvm-header__utility--right {
		display: none !important;
	}

	.vvm-header .wp-block-site-logo img {
		width: min(var(--vvm-header-logo-width), 100%) !important;
	}

	.vvm-header {
		--vvm-header-logo-width: 176px;
	}

	.vvm-header.is-scrolled,
	body.vvm-has-hero-header .vvm-header.is-scrolled {
		--vvm-header-logo-width: 88px;
	}

	.vvm-header__nav .wp-block-navigation__responsive-container-open {
		padding: 0;
		width: 34px;
		height: 34px;
	}

	.vvm-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
		max-width: 100%;
	}

	.vvm-footer {
		padding-top: 64px !important;
		padding-bottom: 48px !important;
	}

	.vvm-footer__columns {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	.vvm-footer__column--brand,
	.vvm-footer__column--contact,
	.vvm-footer__tagline {
		max-width: none;
	}

	.vvm-footer__divider {
		margin-top: 48px;
		margin-bottom: 40px;
	}

	.vvm-footer__bottom {
		flex-direction: column;
		justify-content: center;
		gap: 0.5rem;
		padding-top: 0;
		padding-bottom: 0;
		text-align: center;
	}

	.vvm-footer__legal-nav .wp-block-navigation__container {
		justify-content: center;
		column-gap: 1.25rem;
	}
}

@media (min-width: 782px) {
	.vvm-footer__bottom {
		flex-direction: row;
	}
}

@media (min-width: 1024px) {
	.vvm-footer__eyebrow {
		font-size: 16px;
	}

	.vvm-footer__nav .wp-block-navigation-item__label,
	.vvm-footer__legal-nav .wp-block-navigation-item__label {
		font-size: 14px;
	}
}
