/* Phase 1: shared foundation only. No page-content, catalogue or booking rewrite. */
:root {
	font-size: 100%;
	--vm-blue: #046bd2;
	--vm-blue-hover: #045cb4;
	--vm-blue-active: #034b93;
	--vm-ink: #1e293b;
	--vm-body: #334155;
	--vm-muted: #526174;
	--vm-white: #ffffff;
	--vm-surface: #f0f5fa;
	--vm-border: #d1d5db;
	--vm-control-border: #6b7785;
	--vm-dark: #111111;
	--vm-dark-text: #e5e7eb;
	--vm-success: #166534;
	--vm-error: #b42318;
	--vm-warning: #854d0e;
	--vm-disabled: #e6e9ed;
	--vm-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	--vm-space-1: .25rem;
	--vm-space-2: .5rem;
	--vm-space-3: .75rem;
	--vm-space-4: 1rem;
	--vm-space-5: 1.25rem;
	--vm-space-6: 1.5rem;
	--vm-space-8: 2rem;
	--vm-space-10: 2.5rem;
	--vm-space-12: 3rem;
	--vm-space-16: 4rem;
	--vm-width-page: 75rem;
	--vm-width-wide: 90rem;
	--vm-width-reading: 45rem;
	--vm-width-wiki: 70rem;
	--vm-width-pricing: 65rem;
	--vm-width-booking: 60rem;
	--vm-gutter: 1rem;
	--vm-section-space: 1.5rem;
	--vm-header-height: 4rem;
	--vm-header-measured: var(--vm-header-height);
	--vm-admin-offset: 0px;
	--vm-control-radius: .25rem;
	/* Retain Astra's preset names so existing translated blocks still resolve. */
	--ast-global-color-0: var(--vm-blue);
	--ast-global-color-1: var(--vm-blue-hover);
	--ast-global-color-2: var(--vm-ink);
	--ast-global-color-3: var(--vm-body);
	--ast-global-color-4: var(--vm-white);
	--ast-global-color-5: var(--vm-surface);
	--ast-global-color-6: var(--vm-dark);
	--ast-global-color-7: var(--vm-border);
	--ast-global-color-8: var(--vm-dark);
}

body.vm-design { font-family: var(--vm-font); font-size: 1rem; line-height: 1.625; color: var(--vm-body); background: var(--vm-white); }
.vm-design :where(button, input, select, textarea) { font-family: inherit; }
.vm-design :where(h1, h2, h3, h4, h5, h6) { font-family: var(--vm-font); color: var(--vm-ink); letter-spacing: -.02em; }
.vm-design :where(h1, .entry-title) { font-size: 1.75rem; line-height: 1.214286; font-weight: 700; }
.vm-design :where(h2) { font-size: 1.5rem; line-height: 1.333334; font-weight: 600; }
.vm-design :where(h3) { font-size: 1.25rem; line-height: 1.4; font-weight: 600; }
.vm-design :where(p) { margin-block: 0 1rem; }
.vm-design :where(a) { color: var(--vm-blue); text-underline-offset: .18em; }
.vm-design :where(.entry-content p a, .vm-reading a) { text-decoration: underline; }
.vm-design :where(a:hover) { color: var(--vm-blue-hover); }
.vm-design :where(a:active) { color: var(--vm-blue-active); }
.vm-design :where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--vm-blue);
	outline-offset: 3px;
	box-shadow: 0 0 0 3px var(--vm-white);
}
.vm-design :where([id]) { scroll-margin-block-start: calc(var(--vm-header-measured) + var(--vm-admin-offset) + 1rem); }
.vm-design :where(.price, .vm-tabular) { font-variant-numeric: tabular-nums; }
.vm-design .vm-lead { font-size: 1rem; line-height: 1.625; font-weight: 400; }
.vm-design .vm-supporting { font-size: .875rem; line-height: 1.428572; }
.vm-design .vm-caption { font-size: .75rem; line-height: 1.5; color: var(--vm-muted); }
.vm-design .vm-muted { color: var(--vm-muted); }
.vm-design .vm-container { box-sizing: border-box; width: 100%; max-width: calc(var(--vm-width-page) + 2 * var(--vm-gutter)); padding-inline: var(--vm-gutter); margin-inline: auto; }
.vm-design .vm-container--wide { max-width: calc(var(--vm-width-wide) + 2 * var(--vm-gutter)); }
.vm-design .vm-reading { max-width: var(--vm-width-reading); }
.vm-design .vm-section { padding-block: var(--vm-section-space); }
/* The catalogue plugin keeps ownership of its outer container until Phase 3. */
.vm-design:not(.vmcl-layout) #content > .ast-container { box-sizing: border-box; width: 100%; max-width: calc(var(--vm-width-page) + 2 * var(--vm-gutter)); padding-inline: var(--vm-gutter); }

/* Native forms and buttons: preserve classes, DOM, field names and handlers. */
.vm-design :is(.vm-button, .wp-element-button, .wp-block-button__link, .button, button[type="submit"], input[type="submit"], .ast-custom-button) {
	box-sizing: border-box; min-height: 2.75rem; padding: .625rem 1rem;
	border: 1px solid var(--vm-blue); border-radius: var(--vm-control-radius);
	background: var(--vm-blue); color: var(--vm-white); box-shadow: none;
	font-family: var(--vm-font); font-size: 1rem; line-height: 1.5; font-weight: 600;
	text-align: center; text-decoration: none; white-space: normal; cursor: pointer;
}
.vm-design :is(.vm-button, .wp-element-button, .wp-block-button__link, .button, button[type="submit"], input[type="submit"], .ast-custom-button):hover { background: var(--vm-blue-hover); border-color: var(--vm-blue-hover); color: var(--vm-white); }
.vm-design :is(.vm-button, .wp-element-button, .wp-block-button__link, .button, button[type="submit"], input[type="submit"], .ast-custom-button):active { background: var(--vm-blue-active); border-color: var(--vm-blue-active); color: var(--vm-white); }
.vm-design :is(.vm-button--secondary, .is-style-outline > .wp-block-button__link) { background: var(--vm-white); border-color: var(--vm-blue); color: var(--vm-blue); }
.vm-design :is(.vm-button--secondary, .is-style-outline > .wp-block-button__link):hover { background: var(--vm-surface); border-color: var(--vm-blue-hover); color: var(--vm-blue-hover); }
.vm-design :is(.vm-button--secondary, .is-style-outline > .wp-block-button__link):active { background: var(--vm-surface); border-color: var(--vm-blue-active); color: var(--vm-blue-active); }
.vm-design :is(button, input, .button, .vm-button):is(:disabled, [aria-disabled="true"], .disabled) { background: var(--vm-disabled); border-color: var(--vm-border); color: var(--vm-muted); opacity: 1; cursor: not-allowed; }
.vm-design :is(.vm-button, .button, button[type="submit"])[aria-busy="true"] { cursor: progress; }
.vm-design :where(input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="search"], input[type="password"], input[type="url"], input[type="date"], select, textarea) {
	box-sizing: border-box; max-width: 100%; min-height: 2.75rem; padding: .625rem .75rem;
	font-size: 1rem; line-height: 1.5; color: var(--vm-ink); background: var(--vm-white);
	border: 1px solid var(--vm-control-border); border-radius: var(--vm-control-radius); box-shadow: none;
}
.vm-design :where(textarea) { min-height: 8rem; resize: vertical; }
.vm-design :where(label) { font-size: 1rem; line-height: 1.5; font-weight: 600; }
.vm-design :where(input, textarea)::placeholder { color: var(--vm-muted); opacity: 1; }
.vm-design :where(input[type="checkbox"], input[type="radio"]) { accent-color: var(--vm-blue); }
.vm-design :where([aria-invalid="true"]) { border-color: var(--vm-error); }
.vm-design :where(.vm-field-error) { color: var(--vm-error); font-size: .875rem; }
.vm-design .fluentform .ff-el-form-control { min-height: 44px; border: 1px solid var(--vm-control-border); border-radius: var(--vm-control-radius); font: 16px/24px var(--vm-font); }
.vm-design .fluentform textarea.ff-el-form-control { min-height: 128px; }
.vm-design :is(.fluentform, .woocommerce) button[type="submit"] { min-height: 48px; }
.vm-design .fluentform button[type="submit"] { background: var(--vm-blue) !important; border-color: var(--vm-blue) !important; color: var(--vm-white) !important; }
.vm-design .fluentform button[type="submit"]:hover { background: var(--vm-blue-hover) !important; border-color: var(--vm-blue-hover) !important; }
.vm-design .fluentform button[type="submit"]:active { background: var(--vm-blue-active) !important; border-color: var(--vm-blue-active) !important; }
.vm-design .fluentform button[type="submit"]:is(:disabled, [aria-disabled="true"]) { background: var(--vm-disabled) !important; border-color: var(--vm-border) !important; color: var(--vm-muted) !important; }
/* Keep the higher-specificity focus rule after button and field resets. */
.vm-design :is(.vm-button, .button, .wp-element-button, .wp-block-button__link, button, input, select, textarea):focus-visible { outline: 3px solid var(--vm-blue); outline-offset: 3px; box-shadow: 0 0 0 3px var(--vm-white); }

/* Existing Astra header. Menu content and builder assignments are not rewritten. */
.vm-design #masthead { position: sticky; inset-block-start: var(--vm-admin-offset); z-index: 100; width: 100%; background: var(--vm-dark); box-shadow: none; }
.vm-design #masthead :is(.main-header-bar, .ast-primary-header-bar) { background: var(--vm-dark); border-block-end: 1px solid #334155; box-shadow: none; }
.vm-design #masthead .site-primary-header-wrap { max-width: calc(var(--vm-width-wide) + 2 * var(--vm-gutter)); padding-inline: var(--vm-gutter); margin-inline: auto; }
.vm-design #masthead .site-header-section { min-width: 0; }
.vm-design #masthead .site-branding { padding-block: 0; }
.vm-design #masthead .custom-logo-link { display: inline-flex; align-items: center; justify-content: center; min-width: 3.5rem; min-height: 3rem; }
.vm-design #masthead .custom-logo { width: 2.625rem; max-height: 2.5rem; object-fit: contain; }
.vm-design #masthead :is(.menu-link, .ast-menu-toggle, .menu-toggle, .ast-header-woo-cart a) { color: var(--vm-white); }
.vm-design #masthead .main-header-menu > .menu-item > .menu-link { min-height: 2.75rem; font-size: .875rem; line-height: 1.428572; font-weight: 600; padding-inline: .625rem; }
.vm-design #masthead :is(.ast-menu-toggle, .menu-toggle) { min-width: 2.75rem; min-height: 2.75rem; border-radius: 0; background: transparent; border-color: transparent; box-shadow: none; }
.vm-design #masthead .sub-menu { min-width: 15rem; background: var(--vm-white); border: 1px solid var(--vm-border); box-shadow: 0 8px 24px rgb(17 17 17 / 12%); }
.vm-design #masthead .sub-menu .menu-link { color: var(--vm-ink); min-height: 2.75rem; padding: .75rem 1rem; line-height: 1.5; white-space: normal; }
.vm-design #masthead .sub-menu .menu-link:hover { background: var(--vm-surface); color: var(--vm-blue-hover); }
.vm-design #masthead :is(.main-header-menu > .current-menu-item > .menu-link, .main-header-menu > .current-menu-ancestor > .menu-link) { text-decoration: underline; text-underline-offset: .4em; }
.vm-design .vm-book-link > a { background: var(--vm-blue); color: var(--vm-white); border-radius: var(--vm-control-radius); }
.vm-design #ast-mobile-header .ast-primary-header-bar { min-height: var(--vm-header-height); padding-block: .5rem; padding-inline: var(--vm-gutter); }
.vm-design #ast-mobile-popup .ast-mobile-popup-inner { background: var(--vm-dark); color: var(--vm-white); transition: none; }
.vm-design #ast-mobile-popup :is(.menu-link, .ast-menu-toggle, .menu-toggle-close, a) { color: var(--vm-white); }
.vm-design #ast-mobile-popup .menu-link { min-height: 3.25rem; padding: .875rem 1rem; line-height: 1.5; border-block-end: 1px solid #334155; }
.vm-design #ast-mobile-popup .sub-menu { background: var(--vm-dark); box-shadow: none; }
.vm-design #ast-mobile-popup .sub-menu .menu-link { min-height: 2.75rem; padding-inline-start: 2rem; }
.vm-design #ast-mobile-popup :is(.ast-menu-toggle, .menu-toggle-close) { min-width: 2.75rem; min-height: 2.75rem; }
.vm-design #ast-mobile-popup .vm-book-link > a { min-height: 3rem; margin: 1rem; text-align: center; }
.vm-design #ast-mobile-popup .ast-mobile-popup-content { overflow-y: auto; overscroll-behavior: contain; }

/* Opt-in footer; existing footer is retained until all slots are verified. */
.vm-design .vm-site-footer { padding-block: 2rem; background: var(--vm-dark); color: var(--vm-dark-text); font-size: .875rem; line-height: 1.571429; }
.vm-design .vm-footer-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; }
.vm-design .vm-footer-heading { color: var(--vm-white); font-size: 1rem; line-height: 1.5; margin-block: 0 .75rem; font-weight: 600; }
.vm-design .vm-site-footer :is(a, a:hover, a:visited) { color: var(--vm-dark-text); }
.vm-design .vm-site-footer a:hover { color: var(--vm-white); text-decoration: underline; }
.vm-design .vm-site-footer :is(ul, ol) { margin: 0; padding: 0; list-style: none; }
.vm-design .vm-site-footer li > a { display: inline-flex; align-items: center; min-height: 2.75rem; padding-block: .5rem; }
.vm-design .vm-site-footer .sub-menu { padding-inline-start: 1rem; }
.vm-design .vm-footer-bottom { border-block-start: 1px solid #334155; margin-block-start: 2rem; padding-block-start: 1.5rem; }
.vm-design .vm-footer-bottom nav > ul { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.vm-design .vm-site-footer .widget { margin-block-end: 0; }

@media (min-width: 768px) {
	:root { --vm-gutter: 1.5rem; --vm-section-space: 2rem; }
	.vm-design :where(h1, .entry-title) { font-size: 2rem; line-height: 1.25; }
	.vm-design :where(h2) { font-size: 1.75rem; line-height: 1.285715; }
	.vm-design .vm-lead { font-size: 1.125rem; line-height: 1.555556; }
	.vm-design .vm-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vm-design .vm-footer-identity { grid-column: 1 / -1; }
}
@media (min-width: 1024px) {
	:root { --vm-section-space: 3rem; }
	.vm-design .vm-footer-grid { grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
	.vm-design .vm-footer-identity { grid-column: auto; }
	.vm-design .vm-site-footer { padding-block: 2.5rem; }
}
@media (min-width: 1200px) {
	:root { --vm-gutter: 2rem; --vm-header-height: 4.5rem; }
	.vm-design #ast-desktop-header .ast-primary-header-bar { min-height: var(--vm-header-height); padding-block: .75rem; }
	.vm-design #masthead .custom-logo { width: 3rem; max-height: 2.875rem; }
}
@media (prefers-reduced-motion: reduce) {
	.vm-design #masthead *, .vm-design #ast-mobile-popup * { transition: none; animation: none; }
}

/* Explicit boundary with the retained Additional CSS. These scoped important
   rules replace its important header/footer overrides, not page-specific CSS. */
body.vm-design #masthead {
	position: sticky !important; top: var(--vm-admin-offset) !important;
	z-index: 100 !important; background: var(--vm-dark) !important;
	box-shadow: none !important; transition: none !important;
}
body.vm-design #masthead :is(.ast-primary-header-bar, .main-header-bar, .ast-builder-grid-row-container, .ast-builder-grid-row, .site-primary-header-wrap) {
	background: var(--vm-dark) !important; box-shadow: none !important; transition: none !important;
}
body.vm-design #masthead .ast-primary-header-bar {
	padding-block: 0 !important; height: var(--vm-header-height) !important; min-height: var(--vm-header-height) !important; border-bottom: 0;
}
body.vm-design #masthead .ast-builder-grid-row { min-height: var(--vm-header-height) !important; }
body.vm-design #masthead .site-primary-header-wrap { height: var(--vm-header-height) !important; min-height: var(--vm-header-height) !important; }
body.vm-design #masthead :is(.site-logo-img, .site-branding, .ast-site-identity) { padding: 0 !important; }
body.vm-design #masthead .custom-logo-link { vertical-align: middle; }
body.vm-design #masthead .custom-logo { width: 42px !important; height: 40px !important; max-height: 40px !important; }
body.vm-design #masthead :is(.menu-link, .ast-icon, .menu-item-cart a) { color: var(--vm-white) !important; }
body.vm-design #masthead .main-header-menu > .menu-item > .menu-link { font-size: 14px !important; font-weight: 600 !important; }
body.vm-design #masthead .main-header-menu .sub-menu { background: var(--vm-white) !important; border: 1px solid var(--vm-border) !important; box-shadow: 0 8px 24px rgb(17 17 17 / 12%) !important; }
body.vm-design #masthead .main-header-menu .sub-menu :is(a, .menu-link) { background: var(--vm-white) !important; color: var(--vm-ink) !important; font-weight: 400 !important; }
body.vm-design #masthead .main-header-menu .sub-menu :is(a, .menu-link):hover { background: var(--vm-surface) !important; color: var(--vm-blue-hover) !important; }
body.vm-design #masthead .vm-book-link > .menu-link { background: var(--vm-blue) !important; color: var(--vm-white) !important; padding-inline: 16px; margin-inline: 12px; }
body.vm-design #masthead .vm-book-link > .menu-link:hover { background: var(--vm-blue-hover) !important; }
body.vm-design #masthead .vm-book-link > .menu-link:active { background: var(--vm-blue-active) !important; }
body.vm-design #masthead .menu-item-cart a { min-width: 44px; min-height: 44px; }
body.vm-design #masthead .menu-item-cart .cart-count { background: transparent !important; color: var(--vm-white) !important; }
body.vm-design #ast-mobile-header .ast-builder-grid-row { grid-template-columns: 44px minmax(0, 1fr) 44px !important; }
body.vm-design #ast-mobile-header .ast-primary-header-bar { padding-inline: var(--vm-gutter) !important; }
/* Legacy icon fixes stopped at 921px; the compact header now lasts to 1199px. */
body.vm-design #ast-mobile-header .menu-toggle { padding: 0 !important; justify-content: center; }
body.vm-design #ast-mobile-header .menu-toggle :is(svg, path) { width: 30px !important; height: 30px !important; fill: var(--vm-white) !important; }
body.vm-design #ast-mobile-header :is(.ast-site-header-cart, .ast-site-header-cart-li, .cart-container, .ast-addon-cart-wrap) {
	display: inline-flex !important; align-items: center !important; justify-content: center !important;
	padding: 0 !important; margin: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important;
}
body.vm-design #ast-mobile-header .cart-container { width: 44px !important; height: 44px !important; }
body.vm-design #ast-mobile-header .cart-container::before,
body.vm-design #ast-mobile-header .cart-container::after { content: none !important; display: none !important; }
body.vm-design #ast-mobile-header .ast-addon-cart-wrap { position: relative; width: 28px !important; height: 28px !important; }
body.vm-design #ast-mobile-header .ast-site-header-cart :is(i.astra-icon, .ast-icon, svg) { display: block !important; width: 28px !important; height: 28px !important; padding: 0 !important; color: var(--vm-white) !important; fill: var(--vm-white) !important; }
body.vm-design #ast-mobile-header .ast-site-header-cart svg path { fill: var(--vm-white) !important; }
body.vm-design #ast-mobile-header .astra-icon::after { content: attr(data-cart-total) !important; position: absolute !important; top: -7px !important; right: -8px !important; display: grid !important; place-items: center; min-width: 16px; height: 16px; padding: 0 2px; border: 1px solid var(--vm-white); border-radius: 50%; background: var(--vm-dark) !important; color: var(--vm-white) !important; font: 11px/1 var(--vm-font); }
body.vm-design #ast-mobile-header .astra-icon[data-cart-total="0"]::after { display: none !important; }
body.vm-design #ast-mobile-popup .ast-mobile-popup-inner {
	background: var(--vm-dark) !important; width: 100%; max-width: 100%; height: 100dvh; transition: none;
}
body.vm-design #ast-mobile-popup .ast-mobile-popup-header { min-height: 64px; padding: 8px var(--vm-gutter); }
body.vm-design #ast-mobile-popup .ast-mobile-popup-content { padding: 0 var(--vm-gutter) 24px; }
body.vm-design #ast-mobile-popup :is(.main-header-menu, .main-navigation, .ast-builder-menu-mobile) { width: 100%; }
body.vm-design #ast-mobile-popup .main-header-menu { background: transparent !important; }
body.vm-design #ast-mobile-popup .menu-toggle-close { border: 0; border-radius: 0; }
body.vm-design #ast-mobile-popup .menu-item > .menu-link {
	font-family: var(--vm-font); font-size: 16px !important; line-height: 24px !important; font-weight: 600 !important;
	padding: 14px 52px 14px 0 !important; min-height: 52px !important;
	color: var(--vm-white) !important; background: transparent !important;
}
body.vm-design #ast-mobile-popup .sub-menu .menu-link { padding-inline-start: 16px !important; min-height: 44px !important; font-weight: 400 !important; }
body.vm-design #ast-mobile-popup .ast-menu-toggle { inset-inline-end: 0; top: 4px; width: 44px !important; height: 44px !important; color: var(--vm-white) !important; }
body.vm-design #ast-mobile-popup .vm-book-link > .menu-link { background: var(--vm-blue) !important; padding: 12px 16px !important; margin: 20px 0 8px; min-height: 48px !important; }
body.vm-design #ast-mobile-popup .vm-book-link > .menu-link:hover { background: var(--vm-blue-hover) !important; }
body.vm-design #ast-mobile-popup .wpml-ls-menu-item { margin: 12px 12px 0 0 !important; }
body.vm-design #ast-mobile-popup .wpml-ls-menu-item .menu-link { padding: 10px !important; min-width: 44px; min-height: 44px !important; }
body.vm-design :is(#masthead, #ast-mobile-popup) :is(a, button):focus-visible {
	outline: 3px solid var(--vm-white) !important; outline-offset: 3px !important; box-shadow: none !important;
}
body.vm-design #masthead .sub-menu :is(a, button):focus-visible { outline-color: var(--vm-blue) !important; }

/* Preserve Astra's existing translated HTML footer and every legal link. */
body.vm-design #colophon { background: var(--vm-dark); }
body.vm-design #colophon :is(.site-above-footer-wrap, .ast-builder-grid-row-container, .ast-builder-html-element) { background: var(--vm-dark); padding: 0; border: 0; }
body.vm-design #colophon .ast-builder-grid-row-container-inner { max-width: none; padding: 0; }
body.vm-design #colophon .vm-footer { background: var(--vm-dark) !important; color: var(--vm-dark-text) !important; padding: 32px var(--vm-gutter) !important; text-align: left !important; font: 14px/22px var(--vm-font); }
body.vm-design #colophon .vm-footer-wrap { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 24px !important; max-width: var(--vm-width-wide) !important; margin: 0 auto !important; padding: 0 !important; }
body.vm-design #colophon .vm-footer-brand { grid-column: auto !important; }
body.vm-design #colophon .vm-footer :is(h2, h3) { color: var(--vm-white) !important; font-family: var(--vm-font); font-size: 16px !important; line-height: 24px !important; font-weight: 600; margin: 0 0 12px; text-align: left; }
body.vm-design #colophon .vm-footer :is(p, small) { color: var(--vm-dark-text); font-size: 14px !important; line-height: 22px; max-width: 36ch !important; margin: 0 0 12px !important; text-align: left !important; }
body.vm-design #colophon .vm-footer ul { list-style: none; margin: 0; padding: 0; }
body.vm-design #colophon .vm-footer li { margin: 0 !important; line-height: 22px; }
body.vm-design #colophon .vm-footer a { color: var(--vm-dark-text) !important; font-size: 14px !important; text-decoration: none; }
body.vm-design #colophon .vm-footer li a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 8px; }
body.vm-design #colophon .vm-footer a:hover { color: var(--vm-white) !important; text-decoration: underline; }
body.vm-design #colophon .vm-footer a:focus-visible { outline: 3px solid var(--vm-white); outline-offset: 3px; }
body.vm-design #colophon .vm-footer-bottom { max-width: var(--vm-width-wide) !important; display: flex !important; flex-wrap: wrap !important; justify-content: flex-start !important; align-items: center !important; gap: 12px 24px !important; padding: 24px 0 0 !important; margin: 24px auto 0 !important; border-top: 1px solid var(--vm-body); text-align: left !important; }
body.vm-design #colophon .vm-footer-bottom > * { margin: 0 !important; text-align: left !important; max-width: none !important; }
body.vm-design #colophon .vm-footer-bottom { flex-direction: row !important; }
body.vm-design #colophon .vm-footer .vm-footer-bottom > p { max-width: none !important; flex: 1 1 320px; }
body.vm-design #colophon .vm-footer-bottom br { display: none; }
body.vm-design #colophon .vm-footer-bottom a { display: inline-block; min-height: 44px; padding-block: 10px; }
@media (min-width: 768px) {
	body.vm-design #colophon .vm-footer-wrap { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	body.vm-design #colophon .vm-footer-brand { grid-column: 1 / -1 !important; }
}
@media (min-width: 1024px) {
	body.vm-design #colophon .vm-footer { padding-block: 40px !important; }
	body.vm-design #colophon .vm-footer-wrap { grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr)) !important; }
	body.vm-design #colophon .vm-footer-brand { grid-column: auto !important; }
}
@media (max-width: 1199px) {
	body.vm-design #ast-desktop-header { display: none !important; }
	body.vm-design #ast-mobile-header { display: block !important; }
}
@media (min-width: 1200px) {
	body.vm-design #ast-desktop-header { display: block !important; }
	body.vm-design #ast-mobile-header { display: none !important; }
	body.vm-design #masthead .custom-logo { width: 48px !important; height: 46px !important; max-height: 46px !important; }
	body.vm-design #ast-desktop-header .main-header-menu > .menu-item { display: flex; align-items: center; height: var(--vm-header-height); }
	body.vm-design #ast-desktop-header .main-header-menu > .menu-item > .menu-link { height: 44px !important; }
	body.vm-design #ast-desktop-header .main-header-menu > .menu-item > .sub-menu { top: 100%; }
	/* Retained Additional CSS made the WPML submenu a 420px two-column grid.
	   The redesigned utility belongs in one compact, readable column. */
	body.vm-design #ast-desktop-header #ast-hf-menu-1 > li.wpml-ls-menu-item > ul.sub-menu {
		display: block !important; width: 72px !important; min-width: 72px !important;
		max-width: calc(100vw - 24px) !important; right: 0 !important; left: auto !important;
	}
	body.vm-design #ast-desktop-header #ast-hf-menu-1 > li.wpml-ls-menu-item > ul.sub-menu > li.wpml-ls-menu-item {
		display: block !important; width: 100% !important; min-width: 0 !important;
	}
	body.vm-design #ast-desktop-header #ast-hf-menu-1 > li.wpml-ls-menu-item > ul.sub-menu a.menu-link {
		width: 100% !important; min-height: 44px !important; padding: 10px 12px !important;
	}
}
