/*
 * Vesimentor CVI 2026
 * Black-led industrial system with CVI turquoise, Deep Sea, Dark Teal and orange.
 */

:root {
	--vm-black: #000000;
	--vm-white: #ffffff;
	--vm-turquoise: #3ecdbf;
	--vm-deep-sea: #119e93;
	--vm-dark-teal: #0b4d4a;
	--vm-orange: #ff6a00;
	--vm-graphite: #4a4f55;
	--vm-mint: #8fe7db;
	--vm-orange-soft: #ff8a3d;
	--vm-grey: #d9dee3;
	--vm-paper: #f1f4f3;
	--vm-line: #c7cfce;
	--vm-font-sans: "Inter", Arial, sans-serif;
	--vm-font-mono: "Inter", Arial, sans-serif;
	--vm-container: 80rem;
	--vm-reading: 72ch;
	--vm-gutter: clamp(1.25rem, 4vw, 4rem);
	/* Section rhythm: tight industrial spacing (was 4–7.5rem / too airy) */
	--vm-section: clamp(2.5rem, 4.5vw, 4rem);
	--vm-radius-sm: 8px;
	--vm-radius: 10px;
	--vm-radius-lg: 12px;
	--ast-global-color-0: var(--vm-deep-sea);
	--ast-global-color-1: var(--vm-dark-teal);
	--ast-global-color-2: var(--vm-black);
	--ast-global-color-3: var(--vm-graphite);
	--ast-global-color-4: var(--vm-white);
	--ast-global-color-5: var(--vm-paper);
	--ast-global-color-6: var(--vm-black);
	--ast-global-color-7: var(--vm-grey);
}

html {
	background: var(--vm-black);
	scroll-behavior: smooth;
	scroll-padding-top: 7rem;
}

body.vm-cvi,
body.vm-cvi button,
body.vm-cvi input,
body.vm-cvi select,
body.vm-cvi textarea,
body.vm-cvi .ast-button,
body.vm-cvi .ast-custom-button {
	font-family: var(--vm-font-sans);
}

body.vm-cvi {
	background: var(--vm-black);
	color: var(--vm-graphite);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.vm-cvi *,
body.vm-cvi *::before,
body.vm-cvi *::after {
	box-sizing: border-box;
}

body.vm-cvi ::selection {
	background: var(--vm-turquoise);
	color: var(--vm-black);
}

body.vm-cvi h1,
body.vm-cvi h2,
body.vm-cvi h3,
body.vm-cvi h4,
body.vm-cvi h5,
body.vm-cvi h6,
body.vm-cvi .entry-title,
body.vm-cvi .entry-title a,
body.vm-cvi .entry-content :where(h1, h2, h3, h4, h5, h6) {
	color: var(--vm-black);
	font-family: var(--vm-font-sans);
	font-weight: 700;
	hyphens: auto;
	letter-spacing: -0.025em;
	line-height: 1.08;
	overflow-wrap: break-word;
	text-transform: none;
}

body.vm-cvi h1,
body.vm-cvi .entry-title {
	font-size: clamp(2.45rem, 5vw, 4.75rem);
	line-height: 1;
}

body.vm-cvi h2 {
	font-size: clamp(1.9rem, 3.5vw, 3.25rem);
}

body.vm-cvi h3 {
	font-size: clamp(1.25rem, 2vw, 1.625rem);
	font-weight: 650;
	letter-spacing: -0.015em;
	line-height: 1.2;
}

body.vm-cvi h4 {
	font-size: 1.125rem;
	font-weight: 650;
	letter-spacing: -0.01em;
}

body.vm-cvi a {
	color: var(--vm-dark-teal);
	text-decoration-color: var(--vm-deep-sea);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

body.vm-cvi a:hover {
	color: var(--vm-dark-teal);
}

body.vm-cvi a:focus-visible,
body.vm-cvi button:focus-visible,
body.vm-cvi input:focus-visible,
body.vm-cvi textarea:focus-visible,
body.vm-cvi select:focus-visible,
body.vm-cvi summary:focus-visible {
	outline: 3px solid var(--vm-orange);
	outline-offset: 3px;
}

body.vm-cvi img {
	height: auto;
	max-width: 100%;
}

body.vm-cvi .ast-container,
.vm-wrap {
	margin-inline: auto;
	max-width: var(--vm-container);
	padding-inline: var(--vm-gutter);
	width: 100%;
}

.vm-kicker,
.vm-mono,
.vm-ey,
.vm-code,
.vm-system-bar {
	font-family: var(--vm-font-mono);
}

.vm-kicker {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.45;
	margin: 0 0 1rem;
	text-transform: uppercase;
}

[hidden] {
	display: none !important;
}

/* Header and navigation ---------------------------------------------------- */

.vm-system-bar {
	background: var(--vm-black);
	border-bottom: 1px solid rgba(143, 231, 219, 0.28);
	color: var(--vm-mint);
	font-size: 0.67rem;
	font-weight: 500;
	letter-spacing: 0.095em;
	line-height: 1.35;
	position: relative;
	text-transform: uppercase;
	z-index: 100;
}

.vm-system-bar__inner {
	align-items: center;
	display: flex;
	justify-content: space-between;
	min-height: 2.25rem;
}

.vm-system-bar__facts {
	color: var(--vm-grey);
}

.vm-system-bar__facts i {
	background: var(--vm-orange);
	border-radius: 50%;
	display: inline-block;
	height: 0.35rem;
	margin-inline: 0.75rem;
	vertical-align: 0.08em;
	width: 0.35rem;
}

body.vm-cvi .site-header {
	background: var(--vm-black);
	position: sticky;
	top: 0;
	z-index: 99;
}

body.admin-bar.vm-cvi .site-header {
	top: 32px;
}

body.vm-cvi .ast-primary-header-bar,
body.vm-cvi .main-header-bar,
body.vm-cvi .ast-desktop-header-content,
body.vm-cvi .ast-mobile-header-content {
	background: var(--vm-black) !important;
}

body.vm-cvi .ast-primary-header-bar {
	border: 0 !important;
	border-bottom: 1px solid rgba(217, 222, 227, 0.22) !important;
}

body.vm-cvi .site-primary-header-wrap {
	min-height: 5rem;
}

body.vm-cvi .site-branding {
	line-height: 0;
}

/* The supplied PNG has an opaque white matte; this maps it to the dark shell
 * while keeping the turquoise logo close to its original CVI colour. */
body.vm-cvi .site-logo-img img.custom-logo {
	filter: invert(1) sepia(49%) saturate(96%) hue-rotate(168deg) brightness(181%);
	height: auto;
	max-height: 2.75rem;
	object-fit: contain;
	object-position: left center;
	width: min(16rem, 42vw);
}

body.vm-cvi .site-title,
body.vm-cvi .ast-site-identity .site-title,
body.vm-cvi .site-description {
	display: none !important;
}

body.vm-cvi .main-header-menu > .menu-item > .menu-link,
body.vm-cvi .main-header-menu > .menu-item > .ast-menu-toggle {
	color: var(--vm-white) !important;
}

body.vm-cvi .main-header-menu > .menu-item > .menu-link {
	font-size: 0.75rem !important;
	font-weight: 650 !important;
	letter-spacing: 0.065em !important;
	min-height: 5rem;
	padding-inline: 0.7rem !important;
	text-transform: uppercase;
}

body.vm-cvi .main-header-menu > .menu-item > .menu-link:hover,
body.vm-cvi .main-header-menu > .current-menu-item > .menu-link,
body.vm-cvi .main-header-menu > .current-menu-ancestor > .menu-link,
body.vm-cvi .main-header-menu > .menu-item:hover > .ast-menu-toggle {
	color: var(--vm-turquoise) !important;
}

body.vm-cvi .main-header-menu .menu-link .ast-icon svg {
	fill: currentColor;
}

body.vm-cvi.ast-desktop .main-header-menu .menu-link .ast-icon {
	display: none;
}

body.vm-cvi.ast-desktop .main-header-menu > .vm-menu-cta > .menu-link {
	align-self: center;
	background: var(--vm-orange) !important;
	border-radius: var(--vm-radius-sm);
	color: var(--vm-black) !important;
	font-weight: 750 !important;
	min-height: 2.85rem;
	padding-inline: 1rem !important;
}

body.vm-cvi.ast-desktop .main-header-menu > .vm-menu-cta > .menu-link:hover {
	background: var(--vm-orange-soft) !important;
	color: var(--vm-black) !important;
}

body.vm-cvi .main-header-menu .sub-menu {
	background: var(--vm-white) !important;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
	border: 1px solid rgba(11, 77, 74, 0.16) !important;
	border-radius: 0 0 var(--vm-radius-sm) var(--vm-radius-sm);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08) !important;
	min-width: 17rem;
	overflow: hidden;
}

body.vm-cvi.ast-desktop .main-header-menu > .vm-mega > .sub-menu {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	min-width: 44rem;
	max-width: min(52rem, 94vw);
	padding: 0.65rem 0.35rem 0.45rem;
	overflow: visible;
}

body.vm-cvi.ast-desktop .main-header-menu > .vm-mega > .sub-menu > .menu-item-has-children {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: stretch;
	flex: 1 1 46%;
	min-width: 16rem;
}

body.vm-cvi.ast-desktop .main-header-menu > .vm-mega > .sub-menu > .menu-item-has-children.menu-item-object-category > .menu-link {
	font-weight: 700 !important;
	letter-spacing: 0.01em;
	text-transform: uppercase !important;
	font-size: 0.72rem !important;
	color: var(--vm-dark-teal) !important;
	min-height: 2.2rem;
	padding-bottom: 0.2rem !important;
}

body.vm-cvi.ast-desktop .main-header-menu > .vm-mega > .sub-menu > .menu-item-has-children.menu-item-object-page > .menu-link {
	text-transform: none !important;
	color: var(--vm-dark-teal) !important;
	font-weight: 550 !important;
	font-size: 0.83rem !important;
}

body.vm-cvi.ast-desktop .main-header-menu > .vm-mega > .sub-menu > .menu-item-has-children > .sub-menu {
	position: static !important;
	left: auto !important;
	top: auto !important;
	display: block !important;
	/* inherit (not visible): the closed panel sits on-screen at 922–1199 px, so a forced
	   "visible" leaked the nested links over the hero there (responsive QA 2026-09-28). */
	visibility: inherit !important;
	opacity: 1 !important;
	transform: none !important;
	min-width: 0;
	width: 100%;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

body.vm-cvi.ast-desktop .main-header-menu > .vm-mega > .sub-menu > li:not(.menu-item-has-children) {
	flex: 1 1 100%;
	border-top: 1px solid rgba(11, 77, 74, 0.16);
}

body.vm-cvi.ast-desktop .main-header-menu > .vm-mega .sub-menu .menu-link {
	display: block;
	height: auto;
	min-height: 0;
	align-items: flex-start;
	padding: 0.48rem 1rem !important;
}

body.vm-cvi .vm-mega-desc {
	display: none;
}

body.vm-cvi.ast-desktop .main-header-menu > .vm-mega .vm-mega-desc {
	display: block;
	margin-top: 0.12rem;
	color: var(--vm-graphite);
	font-size: 0.7rem;
	font-weight: 450;
	letter-spacing: 0;
	line-height: 1.3;
	text-transform: none;
}

body.vm-cvi.ast-desktop .main-header-menu > .vm-mega .menu-link:hover .vm-mega-desc,
body.vm-cvi.ast-desktop .main-header-menu > .vm-mega .current-menu-item > .menu-link .vm-mega-desc {
	color: rgba(0, 0, 0, 0.62);
}

body.vm-cvi:not(.ast-desktop) .vm-mega-desc {
	display: none;
}

body.vm-cvi .main-header-menu .sub-menu .menu-link {
	background: transparent !important;
	border: 0 !important;
	color: var(--vm-dark-teal) !important;
	font-size: 0.83rem !important;
	font-weight: 550 !important;
	line-height: 1.35;
	min-height: 2.9rem;
	padding: 0.72rem 1rem !important;
	text-transform: none !important;
}

body.vm-cvi .main-header-menu .sub-menu .menu-link:hover,
body.vm-cvi .main-header-menu .sub-menu .current-menu-item > .menu-link {
	background: rgba(62, 205, 191, 0.55) !important;
	color: var(--vm-dark-teal) !important;
}

body.vm-cvi .vm-langs > .menu-link {
	color: var(--vm-mint) !important;
	font-family: var(--vm-font-mono) !important;
}

@media (min-width: 922px) {
	body.vm-cvi .ast-builder-grid-row-no-center {
		grid-template-columns: auto minmax(0, 1fr) !important;
	}

	body.vm-cvi .site-header-primary-section-right,
	body.vm-cvi .ast-builder-menu-1,
	body.vm-cvi .ast-main-header-bar-alignment,
	body.vm-cvi .main-header-bar-navigation,
	body.vm-cvi .main-navigation {
		flex: 1 1 auto;
		width: 100%;
	}

	body.vm-cvi .main-header-menu {
		display: flex;
		width: 100%;
	}

	body.vm-cvi .main-header-menu > .menu-item:first-child,
	body.vm-cvi .main-header-menu > .vm-menu-cta {
		margin-left: auto;
	}
}

body.vm-cvi .vm-langs .sub-menu {
	min-width: 11rem;
	right: 0;
}

body.vm-cvi.ast-desktop .vm-langs > .sub-menu {
	left: auto !important;
	right: 0 !important;
}

body.vm-cvi .vm-langs .sub-menu img {
	border: 0;
	margin-right: 0.65rem;
	width: 1.125rem;
}

body.vm-cvi .main-header-menu .vm-lang-list a {
	align-items: center;
	color: var(--vm-dark-teal) !important;
	display: flex;
	font-family: var(--vm-font-sans);
	font-size: 0.83rem;
	font-weight: 550;
	line-height: 1.35;
	min-height: 2.9rem;
	padding: 0.72rem 1rem;
	text-decoration: none;
}

body.vm-cvi .main-header-menu .vm-lang-list a:hover,
body.vm-cvi .main-header-menu .vm-lang-list .current-lang > a {
	background: var(--vm-turquoise) !important;
	color: var(--vm-black) !important;
}

body.vm-cvi .menu-toggle.main-header-menu-toggle {
	align-items: center;
	background: var(--vm-turquoise) !important;
	border: 0 !important;
	border-radius: var(--vm-radius-sm);
	color: var(--vm-black) !important;
	display: inline-flex;
	height: 3rem;
	justify-content: center;
	padding: 0 !important;
	width: 3rem;
}

/* Shared buttons ---------------------------------------------------------- */

body.vm-cvi .vm-button,
body.vm-cvi .vm-btn,
body.vm-cvi .wp-block-button__link,
body.vm-cvi input[type="submit"],
body.vm-cvi button[type="submit"] {
	align-items: center;
	border: 2px solid transparent;
	border-radius: var(--vm-radius-sm);
	box-shadow: none;
	cursor: pointer;
	display: inline-flex;
	font-family: var(--vm-font-sans);
	font-size: 0.9rem;
	font-weight: 700;
	justify-content: center;
	letter-spacing: 0.015em;
	line-height: 1.2;
	min-height: 3.25rem;
	padding: 0.85rem 1.25rem;
	text-align: center;
	text-decoration: none !important;
	transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease, transform 150ms ease;
}

body.vm-cvi .vm-button:hover,
body.vm-cvi .vm-btn:hover,
body.vm-cvi .wp-block-button__link:hover,
body.vm-cvi input[type="submit"]:hover,
body.vm-cvi button[type="submit"]:hover {
	transform: translateY(-2px);
}

body.vm-cvi .vm-button--orange,
body.vm-cvi .vm-btn,
body.vm-cvi .wp-block-button__link,
body.vm-cvi input[type="submit"],
body.vm-cvi button[type="submit"] {
	background: var(--vm-orange) !important;
	border-color: var(--vm-orange) !important;
	color: var(--vm-black) !important;
}

body.vm-cvi .vm-button--orange:hover,
body.vm-cvi .vm-btn:hover,
body.vm-cvi .wp-block-button__link:hover,
body.vm-cvi input[type="submit"]:hover,
body.vm-cvi button[type="submit"]:hover {
	background: var(--vm-orange-soft) !important;
	border-color: var(--vm-orange-soft) !important;
	color: var(--vm-black) !important;
}

body.vm-cvi .vm-button--turquoise {
	background: var(--vm-turquoise) !important;
	border-color: var(--vm-turquoise) !important;
	color: var(--vm-black) !important;
}

body.vm-cvi .vm-button--turquoise:hover {
	background: var(--vm-mint) !important;
	border-color: var(--vm-mint) !important;
	color: var(--vm-black) !important;
}

body.vm-cvi .vm-button--outline-light,
body.vm-cvi .vm-btn--ghost {
	background: transparent !important;
	border-color: var(--vm-turquoise) !important;
	color: var(--vm-white) !important;
}

body.vm-cvi .vm-button--outline-light:hover,
body.vm-cvi .vm-btn--ghost:hover {
	background: var(--vm-turquoise) !important;
	color: var(--vm-black) !important;
}

.vm-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

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

body.vm-cvi.home #content,
body.vm-cvi.home .site-content,
body.vm-cvi.home .ast-page-builder-template {
	background: var(--vm-black) !important;
}

body.vm-cvi.home #primary,
body.vm-cvi.home .site-main,
body.vm-cvi.home .hentry,
body.vm-cvi.home .entry-content {
	margin: 0;
	padding: 0;
}

body.vm-cvi.home .vm-wrap {
	max-width: var(--vm-container);
}

.vm-hero {
	background: var(--vm-black);
	color: var(--vm-white);
	overflow: hidden;
	padding-block: clamp(2.5rem, 5vw, 4.25rem);
	position: relative;
}

.vm-hero::before {
	background: var(--vm-turquoise);
	content: "";
	height: 0.5rem;
	left: 0;
	position: absolute;
	top: clamp(2.5rem, 5vw, 4.25rem);
	width: clamp(2.5rem, 5vw, 5rem);
}

.vm-hero-grid {
	align-items: center;
	display: grid;
	gap: clamp(1.75rem, 4vw, 3.5rem);
	grid-template-columns: minmax(0, 7fr) minmax(21rem, 5fr);
}

.vm-hero-l {
	max-width: 48rem;
}

.vm-ey {
	align-items: center;
	color: var(--vm-turquoise);
	display: inline-flex;
	font-size: 0.72rem;
	font-weight: 500;
	gap: 0.75rem;
	letter-spacing: 0.12em;
	line-height: 1.45;
	margin-bottom: 1rem;
	text-transform: uppercase;
}

.vm-ey::before {
	background: var(--vm-orange);
	content: "";
	height: 0.4rem;
	width: 0.4rem;
}

body.vm-cvi .vm-hero h1 {
	color: var(--vm-white);
	font-size: clamp(2.5rem, 4.8vw, 4.5rem);
	hyphens: none;
	letter-spacing: -0.045em;
	line-height: 0.98;
	margin: 0 0 1.15rem;
	max-width: 13ch;
	overflow-wrap: normal;
	word-break: normal;
}

.vm-datum {
	align-items: center;
	color: var(--vm-grey);
	display: flex;
	font-family: var(--vm-font-mono);
	font-size: 0.72rem;
	font-weight: 500;
	gap: 0.75rem;
	letter-spacing: 0.08em;
	margin-bottom: 1rem;
	text-transform: uppercase;
}

.vm-datum .tick {
	background: var(--vm-deep-sea);
	height: 1px;
	width: 2.25rem;
}

.vm-hero-sub {
	color: var(--vm-grey);
	font-size: clamp(1.05rem, 1.6vw, 1.2rem);
	line-height: 1.55;
	margin: 0 0 1.35rem;
	max-width: 42rem;
}

body.vm-cvi.home .entry-content .vm-hero-sub {
	color: var(--vm-grey);
}

.vm-hero-l > p:last-child {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 0;
}

.vm-hero-l > p:last-child .vm-btn {
	margin: 0;
}

.vm-hero-r {
	border: 1px solid rgba(143, 231, 219, 0.4);
	border-radius: var(--vm-radius-lg);
	isolation: isolate;
	padding: 0.75rem;
	position: relative;
}

.vm-hero-r::before {
	background: var(--vm-dark-teal);
	border-radius: var(--vm-radius-lg);
	bottom: -1.5rem;
	content: "";
	left: 1.5rem;
	position: absolute;
	right: -1.5rem;
	top: 1.5rem;
	z-index: -1;
}

.vm-hero-r img {
	aspect-ratio: 4 / 5;
	border-radius: var(--vm-radius-sm);
	display: block;
	filter: saturate(0.72) contrast(1.08);
	object-fit: cover;
	width: 100%;
}

.vm-hero-cap {
	background: var(--vm-turquoise);
	bottom: 2rem;
	color: var(--vm-black);
	font-family: var(--vm-font-mono);
	font-size: 0.68rem;
	font-weight: 600;
	left: -1rem;
	letter-spacing: 0.07em;
	line-height: 1.35;
	max-width: calc(100% - 1rem);
	padding: 0.75rem 1rem;
	position: absolute;
	text-transform: uppercase;
}

/* Latest homepage direction: one panoramic factory image with copy over it. */
.vm-hero.vm-hero--panorama {
	background: var(--vm-black);
	min-height: clamp(34rem, 46.875vw, 50rem);
	padding: 0;
}

.vm-hero.vm-hero--panorama::before {
	display: none;
}

.vm-hero--panorama .vm-hero-grid {
	aspect-ratio: 2560 / 1200;
	display: block;
	max-width: none !important;
	min-height: clamp(34rem, 46.875vw, 50rem);
	padding: 0;
	position: relative;
	width: 100%;
}

.vm-hero--panorama .vm-hero-l {
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin: 0 auto;
	max-width: var(--vm-container);
	min-height: clamp(34rem, 46.875vw, 50rem);
	padding: clamp(4rem, 8vw, 7rem) var(--vm-gutter);
	position: relative;
	z-index: 2;
}

.vm-hero--panorama .vm-hero-r {
	border: 0;
	border-radius: 0;
	inset: 0;
	max-width: none;
	overflow: hidden;
	padding: 0;
	position: absolute;
	z-index: 0;
}

.vm-hero--panorama .vm-hero-r::before {
	background: linear-gradient(90deg, rgba(0, 30, 29, 0.92) 0%, rgba(0, 30, 29, 0.72) 42%, rgba(0, 30, 29, 0.18) 76%, rgba(0, 30, 29, 0.08) 100%);
	border-radius: 0;
	inset: 0;
	z-index: 1;
}

.vm-hero--panorama .vm-hero-r picture,
.vm-hero--panorama .vm-hero-r img {
	display: block;
	height: 100%;
	width: 100%;
}

.vm-hero--panorama .vm-hero-r img {
	aspect-ratio: 2560 / 1200;
	border-radius: 0;
	filter: saturate(0.82) contrast(1.04);
	object-fit: cover;
	object-position: center 48%;
}

.vm-hero--panorama .vm-hero-cap {
	display: none;
}

.vm-hero--panorama .vm-hero-sub {
	color: rgba(255, 255, 255, 0.86);
	max-width: 38rem;
}

/* Kevin 2026-08-18: English-home 2000 × 600 complete-manufacturing hero. */
.vm-hero.vm-hero--kevin,
.vm-hero--kevin .vm-hero-grid,
.vm-hero--kevin .vm-hero-l {
	min-height: clamp(32rem, 30vw, 37.5rem);
}

body.vm-cvi.home .vm-hero--kevin > .vm-wrap {
	max-width: 2000px;
	padding: 0;
	width: 100%;
}

.vm-hero--kevin .vm-hero-grid {
	aspect-ratio: 2000 / 600;
}

.vm-hero--kevin .vm-hero-l {
	justify-content: flex-start;
	margin: 0;
	max-width: none;
	padding: clamp(3.5rem, 4.5vw, 5.5rem) clamp(1.25rem, 5.25vw, 6.6rem) 2.5rem;
}

body.vm-cvi .vm-hero--kevin h1.vm-hero-title {
	font-size: clamp(2.9rem, 3.2vw, 4rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.12;
	margin: 0;
	max-width: none;
	text-transform: uppercase;
}

.vm-hero-title__accent {
	color: var(--vm-orange);
}

.vm-hero--kevin .vm-hero-r::before {
	background: linear-gradient(90deg, rgba(0, 13, 20, 0.13) 0%, rgba(0, 13, 20, 0.06) 52%, rgba(0, 13, 20, 0) 100%);
}

.vm-hero--kevin .vm-hero-r img {
	aspect-ratio: 2000 / 600;
	filter: none;
	object-position: center center;
}

.vm-hero--kevin .vm-hero-actions {
	gap: 0.85rem;
	margin-top: 1.35rem;
}

/* Temporary layout preview for Kevin's alternating homepage content blocks. */
.vm-home-sample-blocks {
	background: var(--vm-white);
	color: var(--vm-black);
	overflow: hidden;
	padding-block: clamp(4rem, 7vw, 7rem);
}

.vm-home-sample-blocks__inner {
	margin-inline: auto;
	max-width: 106rem;
	padding-inline: clamp(1.25rem, 3vw, 3rem);
}

.vm-home-sample-block {
	background: var(--vm-paper);
	border: 0;
	border-radius: var(--vm-radius-lg);
	box-shadow: inset 0 0 0 1px var(--vm-line);
	display: grid;
	grid-template-columns: minmax(0, 46.875rem) minmax(18rem, 1fr);
	column-gap: 2rem;
	min-height: 35rem;
}

.vm-home-sample-block + .vm-home-sample-block {
	margin-top: clamp(3.5rem, 6vw, 6rem);
}

.vm-home-sample-block__media {
	align-self: center;
	aspect-ratio: 3 / 2;
	border-radius: var(--vm-radius-lg);
	box-shadow: 0 1.5rem 3.75rem rgba(0, 30, 29, 0.16);
	margin: 1.875rem 0;
	overflow: hidden;
	transform: translateX(-1.75rem);
	width: 100%;
}

body.vm-cvi .entry-content .vm-home-sample-block__media img {
	border: 0;
	border-radius: 0;
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: var(--vm-sample-position, center);
	width: 100%;
}

.vm-home-sample-block__copy {
	align-self: center;
	display: grid;
	padding: clamp(2.5rem, 5vw, 5rem) clamp(2rem, 4vw, 4rem) clamp(2.5rem, 5vw, 5rem) 0;
}

.vm-home-sample-block__number {
	align-items: center;
	color: var(--vm-dark-teal);
	display: flex;
	font-size: 0.78rem;
	font-weight: 700;
	gap: 0.85rem;
	letter-spacing: 0.14em;
	margin-bottom: 1.35rem;
}

.vm-home-sample-block__number::after {
	background: var(--vm-orange);
	content: "";
	height: 2px;
	width: 3rem;
}

body.vm-cvi .entry-content .vm-home-sample-block__copy h2 {
	color: var(--vm-dark-teal);
	font-size: clamp(2.25rem, 3.6vw, 3.75rem);
	letter-spacing: -0.045em;
	line-height: 1.02;
	margin: 0 0 1.5rem;
	max-width: 13ch;
	padding: 0;
}

body.vm-cvi .entry-content .vm-home-sample-block__copy h2::before {
	display: none;
}

body.vm-cvi .entry-content .vm-home-sample-block__copy p {
	color: var(--vm-graphite);
	font-size: clamp(1rem, 1.3vw, 1.15rem);
	line-height: 1.7;
	margin: 0;
	max-width: 48ch;
}

.vm-home-sample-block:nth-child(even) {
	grid-template-columns: minmax(18rem, 1fr) minmax(0, 46.875rem);
}

.vm-home-sample-block:nth-child(even) .vm-home-sample-block__media {
	order: 2;
	transform: translateX(1.75rem);
}

.vm-home-sample-block:nth-child(even) .vm-home-sample-block__copy {
	justify-items: end;
	order: 1;
	padding-left: clamp(2rem, 4vw, 4rem);
	padding-right: 0;
}

@media (max-width: 921px) {
	.vm-home-sample-blocks {
		padding-block: 3.5rem;
	}

	.vm-home-sample-blocks__inner {
		padding-inline: 1.25rem;
	}

	.vm-home-sample-block,
	.vm-home-sample-block:nth-child(even) {
		column-gap: 0;
		grid-template-columns: minmax(0, 1fr);
		min-height: 0;
	}

	.vm-home-sample-block__media,
	.vm-home-sample-block:nth-child(even) .vm-home-sample-block__media {
		margin: 1.25rem 1.25rem 0;
		order: 1;
		transform: none;
		width: calc(100% - 2.5rem);
	}

	.vm-home-sample-block__copy,
	.vm-home-sample-block:nth-child(even) .vm-home-sample-block__copy {
		justify-items: stretch;
		order: 2;
		padding: clamp(2rem, 7vw, 3.5rem);
	}
}

@media (max-width: 480px) {
	.vm-home-sample-blocks {
		padding-block: 2.75rem;
	}

	.vm-home-sample-block + .vm-home-sample-block {
		margin-top: 2.75rem;
	}

	body.vm-cvi .entry-content .vm-home-sample-block__copy h2 {
		font-size: clamp(1.9rem, 9vw, 2.4rem);
	}
}

/* Verified six-point block. This is the sole icon-based content exception. */
.vm-why {
	background: var(--vm-dark-teal);
	color: var(--vm-white);
	padding-block: clamp(4rem, 7vw, 6.5rem);
}

.vm-why__heading {
	align-items: end;
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.75fr);
	margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

body.vm-cvi .entry-content .vm-why__heading h2 {
	color: var(--vm-white);
	font-size: clamp(2rem, 4vw, 3.5rem);
	letter-spacing: -0.04em;
	line-height: 1.02;
	margin: 0;
	max-width: 15ch;
	padding: 0;
}

body.vm-cvi .entry-content .vm-why__heading h2::before {
	display: none;
}

body.vm-cvi .entry-content .vm-why__heading p {
	color: var(--vm-grey);
	font-size: 1rem;
	line-height: 1.55;
	margin: 0;
}

.vm-why__grid {
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
	background: rgba(255, 255, 255, 0.22);
	border: 1px solid rgba(255, 255, 255, 0.22);
}

body.vm-cvi .entry-content .vm-why__item {
	align-items: center;
	background: var(--vm-black);
	display: grid;
	grid-template-columns: 3.25rem minmax(0, 1fr);
	grid-template-rows: auto auto;
	margin: 0;
	min-height: 9.5rem;
	padding: 1.4rem;
}

.vm-why__icon {
	background: var(--vm-turquoise);
	grid-row: 1 / 3;
	height: 2.5rem;
	-webkit-mask: var(--vm-why-icon) center / contain no-repeat;
	mask: var(--vm-why-icon) center / contain no-repeat;
	width: 2.5rem;
}

.vm-why__item strong {
	color: var(--vm-turquoise);
	font-size: clamp(1.05rem, 1.8vw, 1.35rem);
	line-height: 1.15;
}

.vm-why__item > span:last-child {
	color: var(--vm-grey);
	font-size: 0.84rem;
	line-height: 1.4;
	margin-top: 0.3rem;
}

body.vm-cvi.home #capabilities .vm-code,
body.vm-cvi.home #capabilities .vm-sec-head .vm-mono {
	display: none !important;
}

.vm-sec {
	background: var(--vm-white);
	color: var(--vm-black);
	padding-block: var(--vm-section);
}

.vm-sec + .vm-sec {
	background: var(--vm-dark-teal);
	color: var(--vm-white);
}

.vm-sec-head {
	align-items: end;
	border-bottom: 1px solid var(--vm-line);
	display: flex;
	gap: 1.5rem;
	justify-content: space-between;
	margin-bottom: 1.5rem;
	padding-bottom: 0.9rem;
}

body.vm-cvi .vm-sec-head h2,
body.vm-cvi .entry-content .vm-sec-head h2 {
	font-size: clamp(1.75rem, 3vw, 2.65rem);
	margin: 0;
	padding: 0;
}

body.vm-cvi .entry-content .vm-sec-head h2::before {
	display: none;
}

.vm-mono {
	color: var(--vm-graphite);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

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

body.vm-cvi .vm-card {
	align-items: start;
	background: var(--vm-white);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius);
	color: var(--vm-black);
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-rows: auto auto 1fr;
	min-height: 9.5rem;
	overflow: hidden;
	padding: clamp(1.25rem, 2.2vw, 1.75rem);
	position: relative;
	text-decoration: none;
	transition: background-color 150ms ease, border-color 150ms ease, transform 150ms ease;
}

/* Icon fallback (when no process photo injected) */
body.vm-cvi .vm-card:not(.vm-card--photo)::before {
	display: none;
}

body.vm-cvi .vm-card:not(.vm-card--photo):nth-child(1)::before {
	-webkit-mask-image: url("../icons/injection-moulding.svg");
	mask-image: url("../icons/injection-moulding.svg");
}

body.vm-cvi .vm-card:not(.vm-card--photo):nth-child(2)::before {
	-webkit-mask-image: url("../icons/vacuum-metallization.svg");
	mask-image: url("../icons/vacuum-metallization.svg");
}

body.vm-cvi .vm-card:not(.vm-card--photo):nth-child(3)::before {
	-webkit-mask-image: url("../icons/fipfg-sealing.svg");
	mask-image: url("../icons/fipfg-sealing.svg");
}

body.vm-cvi .vm-card:not(.vm-card--photo):nth-child(4)::before {
	-webkit-mask-image: url("../icons/rotational-moulding.svg");
	mask-image: url("../icons/rotational-moulding.svg");
}

body.vm-cvi .vm-card:not(.vm-card--photo):nth-child(5)::before {
	-webkit-mask-image: url("../icons/vacuum-forming.svg");
	mask-image: url("../icons/vacuum-forming.svg");
}

body.vm-cvi .vm-card::after {
	background: var(--vm-turquoise);
	content: "";
	height: 0.4rem;
	left: -1px;
	position: absolute;
	top: -1px;
	width: 5.5rem;
	z-index: 2;
}

/* Photo-led capability cards (homepage) */
body.vm-cvi .vm-card.vm-card--photo {
	display: flex;
	flex-direction: column;
	grid-template-columns: none;
	grid-template-rows: none;
	min-height: 0;
	padding: 0;
}

body.vm-cvi .vm-card-media {
	background: var(--vm-dark-teal);
	display: block;
	flex: 0 0 auto;
	overflow: hidden;
	position: relative;
	width: 100%;
}

body.vm-cvi .vm-card-media::after {
	background: linear-gradient(180deg, transparent 60%, rgba(0, 0, 0, 0.22) 100%);
	bottom: 0;
	content: "";
	left: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 1;
}

body.vm-cvi .vm-card-media picture,
body.vm-cvi .vm-card-media img,
body.vm-cvi .vm-card-media video {
	display: block;
	width: 100%;
}

body.vm-cvi .vm-card-media img,
body.vm-cvi .vm-card-media video {
	aspect-ratio: 16 / 10;
	height: auto;
	object-fit: cover;
	object-position: center;
	transition: transform 220ms ease;
}

body.vm-cvi .vm-card-video {
	background: var(--vm-dark-teal);
}

/* Legacy stacked poster (removed from markup) — never show under video */
body.vm-cvi .vm-card-poster {
	display: none !important;
}

/* One media slot only: video fills the 16:10 frame */
body.vm-cvi .vm-card-media > .vm-card-video {
	display: block;
	margin: 0;
}

@media (prefers-reduced-motion: reduce) {
	/* Video element stays for layout/poster frame; JS pauses playback */
	body.vm-cvi .vm-card-video {
		pointer-events: none;
	}
}

body.vm-cvi .vm-card.vm-card--photo .vm-code,
body.vm-cvi .vm-card.vm-card--photo .vm-card-t,
body.vm-cvi .vm-card.vm-card--photo .ar {
	margin-left: clamp(1rem, 2vw, 1.35rem);
	margin-right: clamp(1rem, 2vw, 1.35rem);
}

body.vm-cvi .vm-card.vm-card--photo .vm-code {
	align-self: flex-start;
	grid-column: auto;
	margin-bottom: 0.35rem;
	margin-top: 0.95rem;
}

body.vm-cvi .vm-card.vm-card--photo .vm-card-t {
	align-self: stretch;
	flex: 1 1 auto;
	grid-column: auto;
	margin-bottom: 0.85rem;
	padding-right: 2rem;
}

body.vm-cvi .vm-card.vm-card--photo .ar {
	align-self: flex-end;
	bottom: 0.95rem;
	grid-column: auto;
	grid-row: auto;
	margin-bottom: 1rem;
	margin-top: 0;
	position: absolute;
	right: clamp(1rem, 2vw, 1.35rem);
}

body.vm-cvi .vm-card:hover {
	background: var(--vm-white);
	border-color: var(--vm-turquoise);
	color: var(--vm-black);
	transform: translateY(-4px);
}

body.vm-cvi .vm-card.vm-card--photo:hover {
	background: var(--vm-white);
}

body.vm-cvi .vm-card.vm-card--photo:hover .vm-card-media img,
body.vm-cvi .vm-card.vm-card--photo:hover .vm-card-media video {
	transform: scale(1.03);
}

body.vm-cvi.home .entry-content a.vm-card {
	color: var(--vm-black) !important;
	text-decoration: none !important;
}

body.vm-cvi .vm-card:not(.vm-card--photo):hover {
	background: var(--vm-turquoise);
}

body.vm-cvi .vm-card:not(.vm-card--photo):hover::before {
	background: var(--vm-black);
}

.vm-code {
	align-self: end;
	color: var(--vm-dark-teal);
	font-size: 0.7rem;
	font-weight: 600;
	grid-column: 1;
	letter-spacing: 0.08em;
	margin-bottom: 0.6rem;
	text-transform: uppercase;
}

.vm-card:hover .vm-code {
	color: var(--vm-dark-teal);
}

body.vm-cvi .vm-card:not(.vm-card--photo):hover .vm-code {
	color: var(--vm-black);
}

.vm-card-t {
	align-self: end;
	font-size: clamp(1.15rem, 1.8vw, 1.45rem);
	font-weight: 700;
	grid-column: 1;
	line-height: 1.15;
}

.vm-card .ar {
	align-self: end;
	color: var(--vm-deep-sea);
	font-size: 1.6rem;
	grid-column: 2;
	grid-row: 3;
}

.vm-card:hover .ar {
	color: var(--vm-black);
}

/* In-house capabilities visual grid (Why Integrated etc.) ---------------
   Process silhouette icons + light CSS motion so each tile is readable at a glance. */

.vm-cap-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	margin: 1.5rem 0 2rem;
	padding: 0;
}

body.vm-cvi a.vm-cap-tile,
body.vm-cvi .vm-cap-tile {
	align-items: stretch;
	background: var(--vm-paper);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius);
	color: var(--vm-black) !important;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	min-height: 5.25rem;
	overflow: hidden;
	position: relative;
	text-decoration: none !important;
	transition: border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}

body.vm-cvi a.vm-cap-tile:hover,
body.vm-cvi .vm-cap-tile:hover {
	border-color: var(--vm-turquoise);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
	transform: translateY(-2px);
}

/* Dark silhouette panel — icons removed 2026-08-13 */
.vm-cap-tile__media,
.vm-cap-tile__glyph {
	display: none !important;
}

.vm-cap-tile__media::after {
	/* soft floor line so icons feel grounded */
	background: linear-gradient(90deg, transparent, rgba(143, 231, 219, 0.35), transparent);
	bottom: 0.85rem;
	content: "";
	height: 1px;
	left: 12%;
	opacity: 0.7;
	position: absolute;
	right: 12%;
}

.vm-cap-tile__glyph {
	background: #e8f7f5;
	display: block;
	flex: 0 0 auto;
	height: 2.85rem;
	-webkit-mask: var(--vm-cap-icon) center / contain no-repeat;
	mask: var(--vm-cap-icon) center / contain no-repeat;
	position: relative;
	transform-origin: center center;
	width: 2.85rem;
	z-index: 1;
}

body.vm-cvi a.vm-cap-tile:hover .vm-cap-tile__glyph,
body.vm-cvi .vm-cap-tile:hover .vm-cap-tile__glyph {
	background: var(--vm-turquoise);
}

/* Process-themed motion (subtle, continuous; paused for reduced motion) */
@keyframes vm-cap-press {
	0%, 100% { transform: translateY(0) scaleY(1); }
	45% { transform: translateY(3px) scaleY(0.92); }
	70% { transform: translateY(-1px) scaleY(1.02); }
}

@keyframes vm-cap-spin {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

@keyframes vm-cap-form {
	0%, 100% { transform: translateY(0) scale(1, 1); }
	50% { transform: translateY(4px) scale(1.06, 0.88); }
}

@keyframes vm-cap-shine {
	0%, 100% { transform: rotate(-8deg) scale(1); filter: brightness(1); }
	50% { transform: rotate(8deg) scale(1.06); filter: brightness(1.35); }
}

@keyframes vm-cap-mill {
	0%, 100% { transform: translate(0, 0); }
	25% { transform: translate(3px, -2px); }
	50% { transform: translate(-2px, 2px); }
	75% { transform: translate(2px, 1px); }
}

@keyframes vm-cap-bead {
	0%, 100% { transform: translateY(0); opacity: 1; }
	50% { transform: translateY(4px); opacity: 0.85; }
}

@keyframes vm-cap-weld {
	0%, 100% { transform: translateX(0); }
	20% { transform: translateX(-1.5px); }
	40% { transform: translateX(1.5px); }
	60% { transform: translateX(-1px); }
	80% { transform: translateX(1px); }
}

@keyframes vm-cap-stamp {
	0%, 100% { transform: translateY(0) scale(1); }
	40% { transform: translateY(5px) scale(0.94); }
	55% { transform: translateY(5px) scale(0.94); }
	75% { transform: translateY(-1px) scale(1.03); }
}

@keyframes vm-cap-pulse {
	0%, 100% { transform: scale(1); opacity: 1; }
	50% { transform: scale(1.08); opacity: 0.9; }
}

.vm-cap-motion--press .vm-cap-tile__glyph { animation: vm-cap-press 2.2s ease-in-out infinite; }
.vm-cap-motion--spin .vm-cap-tile__glyph { animation: vm-cap-spin 6s linear infinite; }
.vm-cap-motion--form .vm-cap-tile__glyph { animation: vm-cap-form 2.4s ease-in-out infinite; }
.vm-cap-motion--shine .vm-cap-tile__glyph { animation: vm-cap-shine 2.8s ease-in-out infinite; }
.vm-cap-motion--mill .vm-cap-tile__glyph { animation: vm-cap-mill 1.1s ease-in-out infinite; }
.vm-cap-motion--bead .vm-cap-tile__glyph { animation: vm-cap-bead 1.8s ease-in-out infinite; }
.vm-cap-motion--weld .vm-cap-tile__glyph { animation: vm-cap-weld 0.45s linear infinite; }
.vm-cap-motion--stamp .vm-cap-tile__glyph { animation: vm-cap-stamp 2s ease-in-out infinite; }
.vm-cap-motion--pulse .vm-cap-tile__glyph { animation: vm-cap-pulse 2.2s ease-in-out infinite; }
.vm-cap-motion--idle .vm-cap-tile__glyph { animation: none; }

/* Metallizing: extra “chrome disc” behind icon */
.vm-cap-motion--shine::before {
	background: conic-gradient(from 0deg, #3ecdbf, #fff, #8fe7db, #119e93, #3ecdbf);
	border-radius: 50%;
	content: "";
	height: 3.6rem;
	opacity: 0.28;
	position: absolute;
	width: 3.6rem;
	animation: vm-cap-spin 4s linear infinite;
}

.vm-cap-tile__body {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	justify-content: center;
	padding: 0.85rem 1rem 0.85rem 0.9rem;
}

.vm-cap-tile__title {
	color: var(--vm-black);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.25;
}

.vm-cap-tile__text {
	color: var(--vm-graphite);
	font-size: 0.82rem;
	line-height: 1.4;
}

@media (max-width: 700px) {
	.vm-cap-grid {
		grid-template-columns: 1fr;
	}

	body.vm-cvi a.vm-cap-tile,
	body.vm-cvi .vm-cap-tile {
		grid-template-columns: 5.5rem minmax(0, 1fr);
	}

	.vm-cap-tile__glyph {
		height: 2.4rem;
		width: 2.4rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.vm-cap-tile__glyph,
	.vm-cap-motion--shine::before {
		animation: none !important;
	}
}

.vm-sec + .vm-sec .vm-sec-head {
	border-bottom-color: rgba(255, 255, 255, 0.25);
	display: block;
	text-align: center;
}

body.vm-cvi .vm-sec + .vm-sec .vm-sec-head h2 {
	color: var(--vm-white);
	margin-inline: auto;
}

.vm-sec + .vm-sec .vm-mono {
	color: var(--vm-mint);
}

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

.vm-cert > * {
	align-items: center;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: var(--vm-radius-sm);
	display: flex;
	flex-direction: column;
	font-family: var(--vm-font-sans);
	font-size: 1rem;
	font-weight: 600;
	justify-content: center;
	letter-spacing: 0;
	min-height: 8.5rem;
	padding: 1.1rem 1.15rem;
	text-align: center;
	text-transform: none;
}

.vm-cert-l {
	display: none;
}

.vm-cert .c {
	color: var(--vm-white);
}

.vm-cert .c strong {
	color: var(--vm-turquoise);
	display: block;
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	margin-bottom: 0.55rem;
	text-transform: uppercase;
}

.vm-cert-copy {
	color: var(--vm-grey);
	font-size: 0.86rem;
	font-weight: 450;
	letter-spacing: 0;
	line-height: 1.45;
	max-width: 32ch;
	text-transform: none;
}

.vm-cert-note {
	display: none;
}

body.vm-cvi.home .entry-content .vm-cert-note {
	color: var(--vm-grey);
}

.vm-cta {
	background: var(--vm-black);
	border-top: 0.5rem solid var(--vm-orange);
	color: var(--vm-white);
	padding-block: var(--vm-section);
}

.vm-cta .vm-mono {
	color: var(--vm-turquoise);
}

body.vm-cvi .vm-cta h2,
body.vm-cvi .entry-content .vm-cta h2 {
	color: var(--vm-white);
	font-size: clamp(1.85rem, 3.4vw, 2.85rem);
	margin: 0.65rem 0 1.25rem;
	max-width: 18ch;
	padding: 0;
}

body.vm-cvi .entry-content .vm-cta h2::before {
	display: none;
}

.vm-cta p:last-child {
	margin-bottom: 0;
}

/* Inner pages ------------------------------------------------------------ */

body.vm-cvi:not(.home) .site-content {
	background: var(--vm-white) !important;
	isolation: isolate;
	padding-bottom: clamp(2.5rem, 5vw, 4rem);
	position: relative;
}

body.vm-cvi:not(.home) .site-content::before {
	display: none;
}

body.vm-cvi:not(.home) .site-content > .ast-container {
	align-items: start;
	display: block;
	max-width: none;
	padding-inline: 0;
}

body.vm-cvi:not(.home) #primary {
	float: none;
	margin: 0;
	max-width: 100%;
	padding: 0;
	width: 100%;
}

body.vm-cvi:not(.home) article.ast-article-single {
	background: var(--vm-white);
	margin: 0;
	padding: 0;
}

body.vm-cvi:not(.home) article.ast-article-single > .entry-header {
	align-items: flex-start;
	background: var(--vm-black);
	border-left: 0.5rem solid var(--vm-turquoise);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: clamp(10rem, 18vw, 13.5rem);
	padding: clamp(2rem, 4.5vw, 3.25rem) clamp(1.5rem, 5vw, 5rem) clamp(1.5rem, 3.5vw, 2.5rem);
	position: relative;
}

body.vm-cvi:not(.home) article.ast-article-single > .entry-header .entry-title {
	color: var(--vm-white);
	font-size: clamp(2rem, 4vw, 3.5rem);
	letter-spacing: -0.04em;
	line-height: 1.02;
	margin: 0;
	max-width: 20ch;
}

body.vm-cvi:not(.home) article.ast-article-single > .entry-content {
	background: var(--vm-white);
	border-radius: 0 0 var(--vm-radius-lg) var(--vm-radius-lg);
	font-size: clamp(1rem, 1.25vw, 1.075rem);
	margin: 0;
	min-height: 0;
	padding: clamp(1.75rem, 4vw, 3.25rem) clamp(1.5rem, 5vw, 4.5rem);
}

/* Astra adds one format wrapper around single posts, but not around pages. */
body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] {
	background: transparent;
	margin: 0;
	padding: 0;
}

body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] > .entry-header {
	align-items: flex-start;
	background: var(--vm-black);
	border-left: 0.5rem solid var(--vm-turquoise);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: clamp(10rem, 18vw, 13.5rem);
	padding: clamp(2rem, 4.5vw, 3.25rem) clamp(1.5rem, 5vw, 5rem) clamp(1.5rem, 3.5vw, 2.5rem);
	position: relative;
}

body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] > .entry-header .entry-title {
	color: var(--vm-white);
	font-size: clamp(2rem, 4vw, 3.5rem);
	letter-spacing: -0.04em;
	line-height: 1.02;
	margin: 0;
	max-width: 20ch;
}

body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] > .entry-header .entry-meta,
body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] > .entry-header .entry-meta * {
	color: var(--vm-grey);
}

body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] > .entry-content {
	background: var(--vm-white);
	border-radius: 0 0 var(--vm-radius-lg) var(--vm-radius-lg);
	font-size: clamp(1rem, 1.25vw, 1.075rem);
	margin: 0;
	min-height: 0;
	padding: clamp(1.75rem, 4vw, 3.25rem) clamp(1.5rem, 5vw, 4.5rem);
}

body.vm-cvi:not(.home) .entry-content > :where(p, ul, ol, dl, blockquote, h2, h3, h4, h5, h6) {
	max-width: var(--vm-reading);
}

/* Article/prose heading rhythm. Component blocks (.vm-sec-head, .vm-cta, hub,
   contact, etc.) must override with higher specificity so 1.45em margins do
   not create large empty gaps on the homepage and structured UI sections. */
body.vm-cvi .entry-content > h2:first-child {
	font-size: clamp(1.65rem, 2.8vw, 2.35rem);
	margin-top: 0;
}

body.vm-cvi .entry-content h2 {
	border: 0;
	margin: 1.45em 0 0.55em;
	padding: 0 0 0 1.25rem;
	position: relative;
}

body.vm-cvi .entry-content h2::before {
	background: var(--vm-turquoise);
	content: "";
	height: 100%;
	left: 0;
	max-height: 2.2rem;
	position: absolute;
	top: 0.12em;
	width: 0.35rem;
}

body.vm-cvi .entry-content h3 {
	margin: 1.35em 0 0.5em;
}

/* Strip prose chrome from design-system headings */
body.vm-cvi .entry-content :is(.vm-sec-head, .vm-cta, .vm-hub-section__heading, .vm-hub-cta, .vm-contact-office, .vm-contact-team, .vm-inline-rfq, .vm-rfq__heading, .vm-hub-hero__copy) h2,
body.vm-cvi .entry-content :is(.vm-sec-head, .vm-cta, .vm-hub-section__heading, .vm-hub-cta, .vm-contact-office, .vm-contact-team, .vm-inline-rfq, .vm-rfq__heading, .vm-hub-hero__copy) h3 {
	padding-left: 0;
}

body.vm-cvi .entry-content :is(.vm-sec-head, .vm-cta, .vm-hub-section__heading, .vm-hub-cta, .vm-contact-office, .vm-contact-team, .vm-inline-rfq, .vm-rfq__heading, .vm-hub-hero__copy) h2::before {
	display: none;
}

body.vm-cvi .entry-content p,
body.vm-cvi .entry-content li,
body.vm-cvi .entry-content dd {
	color: #303638;
}

body.vm-cvi .entry-content p {
	margin-bottom: 1.2em;
}

body.vm-cvi .entry-content ul,
body.vm-cvi .entry-content ol {
	margin: 0 0 1.75rem 1.15rem;
}

body.vm-cvi .entry-content li {
	margin-bottom: 0.6rem;
	padding-left: 0.35rem;
}

body.vm-cvi .entry-content li::marker {
	color: var(--vm-deep-sea);
	font-weight: 700;
}

body.vm-cvi .entry-content a:not(.vm-button):not(.vm-btn) {
	color: var(--vm-dark-teal);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--vm-turquoise);
}

body.vm-cvi .entry-content a:not(.vm-button):not(.vm-btn):hover {
	color: var(--vm-dark-teal);
	text-decoration-color: var(--vm-orange);
}

body.vm-cvi .entry-content blockquote {
	background: #e8f7f5;
	border-left: 0.4rem solid var(--vm-deep-sea);
	color: var(--vm-black);
	margin: 2rem 0;
	padding: 1.5rem 1.75rem;
}

body.vm-cvi .entry-content img {
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius-sm);
}

body.vm-cvi .entry-content iframe {
	border: 0;
	border-radius: var(--vm-radius-sm);
	max-width: 100%;
}

body.vm-cvi .vm-video,
body.vm-cvi .ast-oembed-container {
	aspect-ratio: 16 / 9;
	max-width: 100%;
	position: relative;
}

body.vm-cvi .vm-video iframe,
body.vm-cvi .ast-oembed-container iframe {
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

body.vm-cvi .entry-content table {
	border: 1px solid var(--vm-line);
	border-collapse: collapse;
	font-size: 0.92rem;
	margin-block: 2rem;
	width: 100%;
}

body.vm-cvi .entry-content th,
body.vm-cvi .entry-content td {
	border: 1px solid var(--vm-line);
	padding: 0.85rem 1rem;
	text-align: left;
	vertical-align: top;
}

body.vm-cvi .entry-content th {
	background: var(--vm-dark-teal);
	color: var(--vm-white);
	font-family: var(--vm-font-mono);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

body.vm-cvi .entry-content tr:nth-child(even) td {
	background: var(--vm-paper);
}

/* Shared inner-page hero, H3 deck, value strip and repeatable split rows. */
body.vm-cvi:not(.home) article.ast-article-single > .entry-header,
body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] > .entry-header {
	background-color: var(--vm-black);
	background-image: linear-gradient(90deg, rgba(0, 30, 29, 0.92) 0%, rgba(0, 30, 29, 0.68) 52%, rgba(0, 30, 29, 0.18) 100%), var(--vm-page-hero-image, none);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	border: 0;
	min-height: clamp(27rem, 42vw, 36rem);
	padding: clamp(4rem, 7vw, 6rem) max(var(--vm-gutter), calc((100vw - var(--vm-container)) / 2 + var(--vm-gutter))) clamp(8.5rem, 13vw, 10.5rem);
}

body.vm-cvi:not(.home) article.ast-article-single > .entry-header::before,
body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] > .entry-header::before {
	left: max(var(--vm-gutter), calc((100vw - var(--vm-container)) / 2 + var(--vm-gutter)));
	top: clamp(2rem, 4vw, 3.5rem);
}

body.vm-cvi:not(.home) article.ast-article-single > .entry-header .entry-title,
body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] > .entry-header .entry-title {
	font-size: clamp(2.5rem, 5vw, 4.75rem);
	max-width: 16ch;
	position: relative;
	z-index: 1;
}

body.vm-cvi:not(.home) article.ast-article-single > .entry-content,
body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] > .entry-content {
	border-radius: 0;
	margin: 0 auto !important;
	max-width: var(--vm-container);
	padding: 0 var(--vm-gutter) clamp(3.5rem, 7vw, 6rem);
}

.vm-page-intro {
	margin-top: clamp(-9rem, -11vw, -7rem);
	position: relative;
	z-index: 3;
}

body.vm-cvi .entry-content .vm-page-intro__deck {
	color: var(--vm-white);
	font-size: clamp(1.05rem, 1.7vw, 1.3rem);
	font-weight: 550;
	line-height: 1.5;
	margin: 0 0 clamp(1.75rem, 3vw, 2.5rem);
	max-width: 62ch;
}

.vm-page-values {
	background: var(--vm-paper);
	border: 1px solid var(--vm-line);
	box-shadow: 0 18px 48px rgba(0, 30, 29, 0.12);
}

body.vm-cvi .entry-content .vm-page-values ul,
.vm-page-values ul {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	max-width: none;
	padding: 0;
}

body.vm-cvi .entry-content .vm-page-values li,
.vm-page-values li {
	border-left: 1px solid var(--vm-line);
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	margin: 0;
	min-height: 7.75rem;
	padding: 1.25rem;
}

body.vm-cvi .entry-content .vm-page-values li:first-child,
.vm-page-values li:first-child {
	border-left: 0;
}

.vm-page-values strong {
	color: var(--vm-dark-teal);
	font-size: clamp(1rem, 1.6vw, 1.25rem);
	line-height: 1.15;
}

.vm-page-values span {
	color: var(--vm-graphite);
	font-size: 0.76rem;
	line-height: 1.4;
}

body.vm-cvi:not(.home) .vm-source-hero {
	display: none;
}

.vm-page-story {
	margin: clamp(4.5rem, 8vw, 7rem) 0 clamp(2.5rem, 5vw, 4.5rem);
	max-width: none;
}

.vm-story-row {
	background: var(--vm-paper);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius-lg);
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	min-height: clamp(22rem, 34vw, 31rem);
	overflow: hidden;
}

.vm-story-row__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2rem, 5vw, 4.5rem);
}

body.vm-cvi .entry-content .vm-story-row__copy :is(h2, h3),
body.vm-cvi .vm-page-story--hub .vm-story-row__copy :is(h2, h3) {
	font-size: clamp(1.75rem, 3.2vw, 2.75rem);
	margin: 0 0 1.25rem;
	max-width: 18ch;
	padding: 0;
}

body.vm-cvi .entry-content .vm-story-row__copy :is(h2, h3)::before,
body.vm-cvi .vm-page-story--hub .vm-story-row__copy :is(h2, h3)::before {
	display: none;
}

body.vm-cvi .entry-content .vm-story-row__copy p,
body.vm-cvi .vm-page-story--hub .vm-story-row__copy p {
	margin: 0;
	max-width: 54ch;
}

body.vm-cvi .entry-content .vm-story-row__copy > p + p,
body.vm-cvi .vm-page-story--hub .vm-story-row__copy > p + p,
body.vm-cvi .entry-content .vm-story-row__copy > :is(p, ul, ol) + :is(ul, ol),
body.vm-cvi .vm-page-story--hub .vm-story-row__copy > :is(p, ul, ol) + :is(ul, ol) {
	margin-top: 1rem;
}

body.vm-cvi .entry-content .vm-story-row__copy > :is(ul, ol),
body.vm-cvi .vm-page-story--hub .vm-story-row__copy > :is(ul, ol) {
	margin-bottom: 0;
	max-width: 54ch;
}

.vm-story-row__media {
	margin: 0;
	min-height: 100%;
	overflow: hidden;
}

body.vm-cvi .entry-content .vm-story-row__media img,
body.vm-cvi .vm-page-story--hub .vm-story-row__media img {
	border: 0;
	border-radius: 0;
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.vm-page-story .vm-story-row:nth-child(even) .vm-story-row__copy {
	order: 2;
}

.vm-page-story .vm-story-row:nth-child(even) .vm-story-row__media {
	order: 1;
}

/* Process symbol in service-page title fields. */
body.vm-cvi[class*="vm-process-"] article.ast-article-single > .entry-header::after {
	display: none;
}

body.vm-cvi.vm-process-injection article.ast-article-single > .entry-header::after {
	-webkit-mask-image: url("../icons/injection-moulding.svg");
	mask-image: url("../icons/injection-moulding.svg");
}

body.vm-cvi.vm-process-rotational article.ast-article-single > .entry-header::after {
	-webkit-mask-image: url("../icons/rotational-moulding.svg");
	mask-image: url("../icons/rotational-moulding.svg");
}

body.vm-cvi.vm-process-vacuum-forming article.ast-article-single > .entry-header::after {
	-webkit-mask-image: url("../icons/vacuum-forming.svg");
	mask-image: url("../icons/vacuum-forming.svg");
}

body.vm-cvi.vm-process-cnc article.ast-article-single > .entry-header::after {
	-webkit-mask-image: url("../icons/cnc-plastic.svg");
	mask-image: url("../icons/cnc-plastic.svg");
}

body.vm-cvi.vm-process-fipfg article.ast-article-single > .entry-header::after {
	-webkit-mask-image: url("../icons/fipfg-sealing.svg");
	mask-image: url("../icons/fipfg-sealing.svg");
}

body.vm-cvi.vm-process-metallizing article.ast-article-single > .entry-header::after {
	-webkit-mask-image: url("../icons/vacuum-metallization.svg");
	mask-image: url("../icons/vacuum-metallization.svg");
}

body.vm-cvi.vm-process-ultrasonic article.ast-article-single > .entry-header::after {
	-webkit-mask-image: url("../icons/ultrasonic-welding.svg");
	mask-image: url("../icons/ultrasonic-welding.svg");
}

/* FAQ enhancement. The script converts each dt/dd pair into details/summary. */
body.vm-cvi .vm-faq {
	border-top: 1px solid var(--vm-line);
	margin: 2rem 0;
}

body.vm-cvi .vm-faq-item {
	border-bottom: 1px solid var(--vm-line);
	margin: 0;
}

body.vm-cvi .vm-faq-item summary {
	color: var(--vm-black);
	cursor: pointer;
	font-size: 1.05rem;
	font-weight: 650;
	list-style: none;
	padding: 1.25rem 3rem 1.25rem 0;
	position: relative;
}

body.vm-cvi .vm-faq-item summary::-webkit-details-marker {
	display: none;
}

body.vm-cvi .vm-faq-item summary::after {
	align-items: center;
	background: var(--vm-turquoise);
	border-radius: 50%;
	color: var(--vm-black);
	content: "+";
	display: flex;
	font-family: var(--vm-font-mono);
	height: 1.75rem;
	justify-content: center;
	position: absolute;
	right: 0;
	top: 1.1rem;
	width: 1.75rem;
}

body.vm-cvi .vm-faq-item[open] summary::after {
	content: "−";
}

body.vm-cvi .vm-faq-answer {
	padding: 0 3rem 1.25rem 0;
}

body.vm-cvi .vm-faq-answer > :last-child {
	margin-bottom: 0;
}

/* Replacement for broken duplicated in-content RFQ modules. */
body.vm-cvi .vm-inline-rfq {
	align-items: center;
	background: var(--vm-dark-teal);
	border-radius: var(--vm-radius-lg);
	color: var(--vm-white);
	display: grid;
	gap: 1.5rem;
	grid-template-columns: minmax(0, 1fr) auto;
	margin: 2.25rem 0 0;
	max-width: 100%;
	padding: clamp(1.25rem, 3vw, 1.85rem);
}

.vm-inline-rfq__icon {
	display: none;
}

body.vm-cvi .vm-inline-rfq h3 {
	color: var(--vm-white);
	margin: 0 0 0.4rem;
}

body.vm-cvi .vm-inline-rfq p {
	color: var(--vm-grey);
	margin: 0;
}

.vm-inline-rfq__actions {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

body.vm-cvi .entry-content .vm-inline-rfq__actions > a {
	color: var(--vm-mint);
	font-family: var(--vm-font-mono);
	font-size: 0.75rem;
}

/* Archives, product/news cards, search and 404 --------------------------- */

body.vm-cvi.archive .ast-archive-description,
body.vm-cvi.search .ast-archive-description {
	background: var(--vm-black) !important;
	border-left: 0.5rem solid var(--vm-turquoise);
	margin: 0;
	min-height: clamp(9rem, 16vw, 12rem);
	padding: clamp(2rem, 4.5vw, 3.25rem) clamp(1.5rem, 5vw, 5rem) !important;
}

body.vm-cvi.archive .ast-archive-title,
body.vm-cvi.search .ast-archive-title,
body.vm-cvi.archive .ast-archive-description .ast-archive-title,
body.vm-cvi.search .ast-archive-description .ast-archive-title {
	color: var(--vm-white) !important;
	font-size: clamp(2rem, 4vw, 3.4rem) !important;
	letter-spacing: -0.04em;
	line-height: 1.02;
	margin: 0;
}

body.vm-cvi.archive .site-main,
body.vm-cvi.search .site-main {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	padding-top: 2rem;
}

body.vm-cvi.archive .site-main > .ast-row,
body.vm-cvi.search .site-main > .ast-row {
	display: contents;
}

body.vm-cvi.archive article.ast-article-post,
body.vm-cvi.search article.ast-article-post {
	background: var(--vm-white);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius);
	display: flex;
	float: none;
	margin: 0;
	min-width: 0;
	overflow: hidden;
	padding: 0;
	width: 100%;
}

body.vm-cvi.archive article.ast-article-post .ast-article-inner,
body.vm-cvi.search article.ast-article-post .ast-article-inner {
	background: transparent;
	border: 0;
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1.75rem;
}

body.vm-cvi.archive article.ast-article-post::before,
body.vm-cvi.search article.ast-article-post::before {
	background: var(--vm-turquoise);
	content: "";
	height: 0.35rem;
	left: 0;
	position: absolute;
	top: 0;
	width: 4rem;
}

body.vm-cvi.archive .entry-title,
body.vm-cvi.search .entry-title {
	font-size: clamp(1.25rem, 2vw, 1.65rem);
	line-height: 1.2;
}

body.vm-cvi.archive .entry-title a,
body.vm-cvi.search .entry-title a {
	color: var(--vm-black);
	text-decoration: none;
}

body.vm-cvi.archive .entry-title a:hover,
body.vm-cvi.search .entry-title a:hover {
	color: var(--vm-dark-teal);
}

body.vm-cvi .entry-meta,
body.vm-cvi .entry-meta * {
	color: var(--vm-graphite);
	font-family: var(--vm-font-mono);
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

body.vm-cvi .ast-blog-single-element.ast-taxonomy-container,
body.vm-cvi .posted-by,
body.vm-cvi .post-navigation {
	display: none !important;
}

body.vm-cvi.single-post .entry-header .entry-meta {
	display: none !important;
}

body.vm-cvi .ast-pagination {
	grid-column: 1 / -1;
}

body.vm-cvi .ast-pagination .page-numbers {
	align-items: center;
	border: 1px solid var(--vm-dark-teal);
	border-radius: var(--vm-radius-sm);
	color: var(--vm-dark-teal);
	display: inline-flex;
	height: 2.75rem;
	justify-content: center;
	min-width: 2.75rem;
}

body.vm-cvi .ast-pagination .page-numbers.current {
	background: var(--vm-dark-teal);
	color: var(--vm-white);
}

body.vm-cvi.error404 .error-404,
body.vm-cvi.search-no-results .no-results {
	background: var(--vm-white);
	border-radius: var(--vm-radius-lg);
	margin-top: 2rem;
	padding: clamp(1.5rem, 4vw, 2.75rem);
	text-align: left;
}

body.vm-cvi.search-no-results .site-main {
	display: block;
}

body.vm-cvi .search-form {
	display: flex;
	gap: 0.5rem;
}

body.vm-cvi .search-form .search-field {
	min-height: 3rem;
}

/* Curated SSR hubs for empty service and Nordic product archives ---------- */

body.vm-cvi.vm-curated-hub .site-main {
	display: block;
	padding-top: 0;
}

.vm-hub-hero {
	background: var(--vm-black);
	border-left: 0.5rem solid var(--vm-turquoise);
	color: var(--vm-white);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: clamp(11rem, 18vw, 14.5rem);
	padding: clamp(1.25rem, 3vw, 2rem) clamp(1.5rem, 5vw, 5rem) clamp(1.75rem, 3.5vw, 2.75rem);
}

.vm-hub-breadcrumbs {
	font-family: var(--vm-font-mono);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	line-height: 1.5;
	text-transform: uppercase;
}

.vm-hub-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem 0.65rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.vm-hub-breadcrumbs li {
	align-items: center;
	display: flex;
	gap: 0.65rem;
	margin: 0;
}

.vm-hub-breadcrumbs li:not(:last-child)::after {
	color: var(--vm-orange);
	content: "/";
}

body.vm-cvi .vm-hub-breadcrumbs a {
	color: var(--vm-mint);
	text-decoration: none;
}

body.vm-cvi .vm-hub-breadcrumbs a:hover {
	color: var(--vm-white);
}

.vm-hub-breadcrumbs [aria-current="page"] {
	color: var(--vm-grey);
}

.vm-hub-hero__copy {
	margin-top: clamp(1.25rem, 3vw, 2.25rem);
	max-width: 62rem;
}

.vm-hub-hero__copy .vm-kicker {
	color: var(--vm-turquoise);
}

body.vm-cvi .vm-hub-hero h1 {
	color: var(--vm-white);
	font-size: clamp(2rem, 4vw, 3.5rem);
	letter-spacing: -0.04em;
	line-height: 1.02;
	margin: 0;
	max-width: 20ch;
}

.vm-hub-hero__lead {
	color: var(--vm-grey);
	font-size: clamp(1rem, 1.5vw, 1.15rem);
	line-height: 1.55;
	margin: 1rem 0 0;
	max-width: 66ch;
}

.vm-hub-content {
	background: var(--vm-white);
	border-radius: 0 0 var(--vm-radius-lg) var(--vm-radius-lg);
	padding: clamp(1.75rem, 4vw, 3.25rem) clamp(1.5rem, 5vw, 4.5rem);
}

.vm-hub-section + .vm-hub-section {
	border-top: 1px solid var(--vm-line);
	margin-top: clamp(2.25rem, 4vw, 3.25rem);
	padding-top: clamp(1.75rem, 3.5vw, 2.75rem);
}

.vm-hub-section__heading {
	margin-bottom: clamp(1.15rem, 2.5vw, 1.75rem);
}

body.vm-cvi .vm-hub-section__heading h2,
body.vm-cvi .entry-content .vm-hub-section__heading h2 {
	font-size: clamp(1.55rem, 2.8vw, 2.35rem);
	margin: 0;
	max-width: 18ch;
	padding: 0;
}

body.vm-cvi .entry-content .vm-hub-section__heading h2::before {
	display: none;
}

.vm-hub-section__heading--split {
	align-items: end;
	display: flex;
	gap: 1.5rem;
	justify-content: space-between;
}

body.vm-cvi .vm-hub-section__all {
	color: var(--vm-dark-teal);
	font-family: var(--vm-font-mono);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-decoration-color: var(--vm-turquoise);
	text-transform: uppercase;
}

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

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

.vm-hub-card {
	margin: 0;
	min-width: 0;
}

body.vm-cvi .vm-hub-card__link {
	background: var(--vm-paper);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius);
	color: var(--vm-black);
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 13.5rem;
	overflow: hidden;
	padding: 1.35rem;
	position: relative;
	text-decoration: none;
	transition: border-color 150ms ease, transform 150ms ease;
}

body.vm-cvi .vm-hub-card__link::before {
	background: var(--vm-turquoise);
	content: "";
	height: 0.35rem;
	left: 0;
	position: absolute;
	top: 0;
	width: 4.5rem;
}

body.vm-cvi .vm-hub-card__link:hover {
	border-color: var(--vm-turquoise);
	color: var(--vm-black);
	transform: translateY(-3px);
}

.vm-hub-card__number {
	color: var(--vm-dark-teal);
	font-family: var(--vm-font-mono);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	margin: 0.25rem 0 1.15rem;
}

body.vm-cvi .vm-hub-card h3 {
	color: var(--vm-black);
	font-size: clamp(1.1rem, 1.7vw, 1.35rem);
	line-height: 1.18;
	margin: 0 0 0.7rem;
}

.vm-hub-card p {
	color: var(--vm-graphite);
	font-size: 0.92rem;
	line-height: 1.55;
	margin: 0 0 1rem;
}

.vm-hub-card__action {
	color: var(--vm-dark-teal);
	font-family: var(--vm-font-mono);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	margin-top: auto;
	text-transform: uppercase;
}

.vm-hub-card__action > span {
	color: var(--vm-orange);
	font-size: 1rem;
	margin-left: 0.25rem;
}

body.vm-cvi .vm-hub-card-grid--compact .vm-hub-card__link {
	min-height: 11.5rem;
}

.vm-hub-capabilities {
	background: var(--vm-paper);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius-lg);
	padding: clamp(1.25rem, 3vw, 2rem);
}

.vm-hub-service-links {
	display: grid;
	gap: 0;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.vm-hub-service-links li {
	border-top: 1px solid var(--vm-line);
	margin: 0;
}

.vm-hub-service-links li:nth-child(odd) {
	margin-right: 1rem;
}

.vm-hub-service-links li:nth-child(even) {
	margin-left: 1rem;
}

body.vm-cvi .vm-hub-service-links a {
	align-items: center;
	color: var(--vm-black);
	display: flex;
	font-weight: 650;
	gap: 1rem;
	justify-content: space-between;
	line-height: 1.35;
	min-height: 4.5rem;
	padding: 0.9rem 0;
	text-decoration: none;
}

body.vm-cvi .vm-hub-service-links a:hover {
	color: var(--vm-dark-teal);
}

.vm-hub-service-links a > span {
	color: var(--vm-orange);
	font-family: var(--vm-font-mono);
}

.vm-hub-cta {
	align-items: center;
	background: var(--vm-dark-teal);
	border-top: 0.4rem solid var(--vm-turquoise);
	border-radius: var(--vm-radius-lg);
	color: var(--vm-white);
	display: grid;
	gap: clamp(1.25rem, 3vw, 2.25rem);
	grid-template-columns: minmax(0, 1fr) auto;
	margin-top: clamp(2.25rem, 4.5vw, 3.5rem);
	padding: clamp(1.35rem, 3.5vw, 2.25rem);
}

.vm-hub-cta .vm-kicker {
	color: var(--vm-mint);
}

body.vm-cvi .vm-hub-cta h2,
body.vm-cvi .entry-content .vm-hub-cta h2 {
	color: var(--vm-white);
	font-size: clamp(1.55rem, 2.8vw, 2.35rem);
	margin: 0 0 0.6rem;
	max-width: 18ch;
	padding: 0;
}

body.vm-cvi .entry-content .vm-hub-cta h2::before {
	display: none;
}

.vm-hub-cta__copy > p:last-child {
	color: var(--vm-grey);
	margin: 0;
	max-width: 45rem;
}

.vm-hub-cta .vm-actions {
	justify-content: flex-end;
}

body.vm-cvi.vm-curated-hub .vm-hub-hero {
	background-color: var(--vm-black);
	background-image: linear-gradient(90deg, rgba(0, 30, 29, 0.92) 0%, rgba(0, 30, 29, 0.68) 52%, rgba(0, 30, 29, 0.18) 100%), var(--vm-page-hero-image, none);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	border: 0;
	min-height: clamp(27rem, 42vw, 36rem);
	padding: clamp(2rem, 4vw, 3.5rem) max(var(--vm-gutter), calc((100vw - var(--vm-container)) / 2 + var(--vm-gutter))) clamp(7rem, 11vw, 9rem);
}

body.vm-cvi.vm-curated-hub .vm-hub-hero__copy {
	max-width: var(--vm-container);
}

body.vm-cvi.vm-curated-hub .vm-hub-hero__lead {
	color: rgba(255, 255, 255, 0.86);
	font-size: clamp(1.05rem, 1.7vw, 1.3rem);
	font-weight: 550;
}

.vm-page-values--hub {
	margin: -4rem auto 0;
	max-width: calc(var(--vm-container) - var(--vm-gutter) - var(--vm-gutter));
	position: relative;
	z-index: 3;
}

.vm-page-story--hub {
	margin: clamp(4.5rem, 8vw, 7rem) auto clamp(2rem, 4vw, 3.5rem);
	max-width: calc(var(--vm-container) - var(--vm-gutter) - var(--vm-gutter));
}

body.vm-cvi.vm-curated-hub .vm-hub-content {
	border-radius: 0;
	margin: 0 auto;
	max-width: var(--vm-container);
	padding-top: clamp(2rem, 4vw, 3.5rem);
}

/* Legacy SP Page Builder compatibility ----------------------------------- */

body.vm-cvi .entry-content .sppb-container,
body.vm-cvi .entry-content .sppb-row-container {
	margin-inline: auto !important;
	max-width: 100% !important;
	padding-inline: 0 !important;
	width: 100% !important;
}

body.vm-cvi .entry-content .sppb-section {
	background: transparent !important;
	margin: 0 !important;
	padding: 1.25rem 0 !important;
}

body.vm-cvi .entry-content .sppb-row {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 1.5rem;
	margin: 0 !important;
}

body.vm-cvi .entry-content [class*="sppb-col-"] {
	flex: 1 1 18rem !important;
	max-width: 100% !important;
	min-width: 0;
	padding: 0 !important;
}

body.vm-cvi .entry-content .sppb-addon,
body.vm-cvi .entry-content .sppb-addon-wrapper {
	max-width: 100%;
}

body.vm-cvi .entry-content .sppb-addon-title {
	color: var(--vm-black) !important;
	font-family: var(--vm-font-sans) !important;
}

body.vm-cvi .entry-content .sppb-img-responsive {
	display: block;
	width: 100%;
}

/* Localized contact directory ------------------------------------------- */

.vm-contact-page__lead {
	color: var(--vm-black) !important;
	font-size: clamp(1.05rem, 1.7vw, 1.25rem);
	font-weight: 520;
	line-height: 1.5;
	margin: 0 0 clamp(1.35rem, 3vw, 2rem) !important;
	max-width: 62ch !important;
}

.vm-contact-office {
	background: var(--vm-black);
	border-top: 0.45rem solid var(--vm-turquoise);
	border-radius: var(--vm-radius-lg);
	color: var(--vm-white);
	display: grid;
	gap: clamp(1.25rem, 3vw, 2.25rem);
	grid-template-columns: minmax(14rem, 0.72fr) minmax(0, 1.28fr);
	padding: clamp(1.35rem, 3.5vw, 2.5rem);
}

body.vm-cvi .entry-content .vm-contact-office__heading .vm-kicker,
body.vm-cvi .entry-content .vm-contact-team__heading .vm-kicker {
	color: var(--vm-dark-teal);
	margin-bottom: 0.75rem;
}

body.vm-cvi .entry-content .vm-contact-office__heading .vm-kicker {
	color: var(--vm-mint);
}

body.vm-cvi .entry-content .vm-contact-office h2,
body.vm-cvi .entry-content .vm-contact-team h2 {
	margin: 0;
	padding: 0;
}

body.vm-cvi .entry-content .vm-contact-office h2::before,
body.vm-cvi .entry-content .vm-contact-team h2::before {
	display: none;
}

body.vm-cvi .entry-content .vm-contact-office h2 {
	color: var(--vm-white);
	font-size: clamp(1.75rem, 3vw, 2.65rem);
	max-width: 12ch;
	padding: 0;
}

.vm-contact-facts {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0;
}

.vm-contact-facts > div {
	background: rgba(255, 255, 255, 0.07);
	border: 1px solid rgba(217, 222, 227, 0.2);
	border-radius: var(--vm-radius-sm);
	min-height: 6.25rem;
	padding: 1rem 1.1rem;
}

.vm-contact-facts dt {
	color: var(--vm-mint);
	font-family: var(--vm-font-mono);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	margin-bottom: 0.45rem;
	text-transform: uppercase;
}

body.vm-cvi .entry-content .vm-contact-facts dd,
body.vm-cvi .entry-content .vm-contact-facts address {
	color: var(--vm-white);
	font-style: normal;
	line-height: 1.45;
	margin: 0;
}

body.vm-cvi .entry-content .vm-contact-facts a {
	color: var(--vm-white) !important;
	font-weight: 600;
	text-decoration-color: var(--vm-turquoise) !important;
}

.vm-contact-office__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	grid-column: 1 / -1;
}

.vm-contact-team {
	margin-top: clamp(2.25rem, 4.5vw, 3.5rem);
}

.vm-contact-team__heading {
	border-bottom: 1px solid var(--vm-line);
	margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
	padding-bottom: 1rem;
}

body.vm-cvi .entry-content .vm-contact-team h2 {
	font-size: clamp(1.65rem, 3vw, 2.5rem);
	padding: 0;
}

.vm-team-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.vm-person {
	background: var(--vm-paper);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius);
	display: grid;
	grid-template-columns: 9.25rem minmax(0, 1fr);
	min-width: 0;
	overflow: hidden;
	position: relative;
	transition: border-color 150ms ease, transform 150ms ease;
}

.vm-person::after {
	background: var(--vm-turquoise);
	content: "";
	height: 0.3rem;
	left: 0;
	position: absolute;
	top: 0;
	width: 4.5rem;
}

.vm-person:hover {
	border-color: var(--vm-turquoise);
	transform: translateY(-3px);
}

.vm-person__photo {
	align-self: start;
	aspect-ratio: 250 / 283;
	background: var(--vm-grey);
	height: auto;
	min-width: 0;
	overflow: hidden;
	position: relative;
	width: 100%;
}

body.vm-cvi .entry-content .vm-person__photo img {
	border: 0;
	border-radius: 0;
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.vm-person__photo--placeholder {
	align-items: center;
	background: var(--vm-dark-teal);
	display: flex;
	justify-content: center;
}

.vm-person__photo--placeholder::before {
	display: none;
}

.vm-person__photo--placeholder span {
	color: var(--vm-mint);
	font-family: var(--vm-font-mono);
	font-size: 0.65rem;
	font-weight: 600;
	left: 0.65rem;
	letter-spacing: 0.08em;
	position: absolute;
	top: 0.7rem;
}

.vm-person__body {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 1.35rem 1.25rem 1.15rem;
}

body.vm-cvi .entry-content .vm-person h3 {
	font-size: clamp(1rem, 1.5vw, 1.25rem);
	letter-spacing: -0.015em;
	margin: 0 0 0.45rem;
	overflow-wrap: anywhere;
}

body.vm-cvi .entry-content .vm-person__role {
	color: var(--vm-dark-teal);
	font-family: var(--vm-font-mono);
	font-size: 0.69rem;
	font-weight: 600;
	letter-spacing: 0.025em;
	line-height: 1.45;
	margin: 0 0 1rem;
	text-transform: uppercase;
}

.vm-person__contacts {
	list-style: none;
	margin: auto 0 0 !important;
	min-width: 0;
	padding: 0;
}

body.vm-cvi .entry-content .vm-person__contacts li {
	font-size: 0.79rem;
	line-height: 1.35;
	margin: 0 0 0.45rem;
	overflow-wrap: anywhere;
	padding: 0;
}

body.vm-cvi .entry-content .vm-person__contacts a {
	color: var(--vm-black) !important;
	font-weight: 600;
	text-decoration-color: var(--vm-turquoise) !important;
}

body.vm-cvi .entry-content .vm-person__languages {
	color: var(--vm-dark-teal);
	font-family: var(--vm-font-mono);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.09em;
	margin: 0.75rem 0 0;
}

/* Footer — large structured industrial company footer ------------------- */

body.vm-cvi .site-footer {
	background: var(--vm-black);
	color: var(--vm-grey);
}

.vm-footer {
	background: var(--vm-black);
	border-top: 0;
	padding-top: clamp(4.5rem, 6vw, 6rem);
	padding-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

.vm-footer__inner {
	display: grid;
	gap: clamp(1.75rem, 3.5vw, 2.5rem);
}

.vm-footer__brand {
	display: grid;
	gap: 1.25rem;
	max-width: 28rem;
}

.vm-footer__logo .custom-logo-link,
.vm-footer__logo .custom-logo {
	display: inline-block;
	line-height: 0;
}

.vm-footer__logo img.custom-logo {
	filter: invert(1) sepia(49%) saturate(96%) hue-rotate(168deg) brightness(181%);
	height: auto;
	max-height: 2.75rem;
	object-fit: contain;
	object-position: left center;
	width: min(16rem, 70vw);
}

.vm-footer__logo-text {
	color: var(--vm-white);
	font-family: var(--vm-font-sans);
	font-size: 1.35rem;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.vm-footer__statement {
	color: var(--vm-grey);
	font-size: 1rem;
	line-height: 1.55;
	margin: 0;
	max-width: 26rem;
}

.vm-footer__cta {
	margin-top: 0.25rem;
}

/* ~5 columns, 40px gap */
.vm-footer__grid {
	display: grid;
	gap: 2.5rem; /* 40px */
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.vm-footer__col {
	min-width: 0;
}

.vm-footer__heading {
	color: var(--vm-white) !important;
	font-family: var(--vm-font-sans);
	font-size: 0.875rem; /* 14px */
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.3;
	margin: 0 0 1rem;
	text-transform: uppercase;
}

.vm-footer__links,
.vm-footer__contact {
	display: grid;
	gap: 0.7rem; /* ~11px link gap */
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Higher specificity than body.vm-cvi a (dark-teal) — otherwise links vanish on black */
body.vm-cvi .vm-footer__links a,
body.vm-cvi .vm-footer__contact a {
	color: #c8d4d2 !important;
	display: inline-block;
	font-family: var(--vm-font-sans);
	font-size: 0.9375rem; /* 15px */
	font-weight: 500;
	line-height: 1.35;
	text-decoration: none !important;
	text-decoration-color: transparent !important;
	transition: color 150ms ease;
}

body.vm-cvi .vm-footer__links a:hover,
body.vm-cvi .vm-footer__contact a:hover {
	color: var(--vm-turquoise) !important;
}

.vm-footer__contact li {
	display: grid;
	gap: 0.2rem;
}

.vm-footer__contact-label,
.vm-footer__contact-company span:first-child {
	color: rgba(217, 222, 227, 0.78);
	font-family: var(--vm-font-mono);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.vm-footer__contact-company {
	color: #d9dee3;
	font-size: 0.9375rem;
	line-height: 1.4;
	margin-bottom: 0.35rem;
}

/* Non-link contact text (reg no., address lines without <a>) */
body.vm-cvi .vm-footer__contact li {
	color: #c8d4d2;
}

.vm-footer__contact-company span:last-child {
	display: block;
	font-size: 0.875rem;
}

/* Legacy Astra flat footer menu — replaced by structured columns */
body.vm-cvi .vm-footer-nav,
body.vm-cvi .site-primary-footer-wrap,
body.vm-cvi .site-footer .ast-builder-grid-row-container:not(.site-below-footer-wrap) {
	display: none !important;
}

/* Bottom bar */
body.vm-cvi .site-below-footer-wrap {
	background: var(--vm-black) !important;
	border-color: rgba(217, 222, 227, 0.18) !important;
	border-top: 1px solid rgba(217, 222, 227, 0.18) !important;
	color: var(--vm-grey) !important;
	min-height: 0;
	padding-block: clamp(1.5rem, 2.5vw, 1.75rem) !important; /* 24–28px */
}

body.vm-cvi .site-below-footer-wrap .ast-builder-grid-row {
	align-items: center;
	max-width: var(--vm-container);
	min-height: 0;
	padding-inline: var(--vm-gutter);
}

body.vm-cvi .ast-footer-copyright {
	color: var(--vm-grey);
	font-family: var(--vm-font-mono);
	font-size: 0.68rem;
	letter-spacing: 0.05em;
	line-height: 1.5;
	text-transform: uppercase;
}

body.vm-cvi .ast-footer-copyright p {
	margin: 0;
}

body.vm-cvi .ast-footer-copyright a {
	color: var(--vm-grey);
	text-decoration-color: var(--vm-turquoise);
}

body.vm-cvi .ast-footer-copyright a:hover {
	color: var(--vm-white);
}

/* RFQ dialog ------------------------------------------------------------- */

body.vm-cvi .vm-rfq {
	background: transparent;
	border: 0;
	color: var(--vm-black);
	height: auto;
	margin: auto;
	max-height: min(92vh, 58rem);
	max-width: min(62rem, calc(100vw - 2rem));
	overflow: visible;
	padding: 0;
	width: 100%;
}

body.vm-cvi .vm-rfq::backdrop {
	background: rgba(0, 0, 0, 0.82);
}

body.vm-cvi .vm-rfq[open] {
	display: block;
}

.vm-rfq__panel {
	background: var(--vm-white);
	border: 1px solid var(--vm-turquoise);
	border-radius: var(--vm-radius-lg);
	max-height: min(92vh, 58rem);
	overflow: auto;
	padding: clamp(1.5rem, 5vw, 4rem);
	position: relative;
}

body.vm-cvi .vm-rfq__close {
	align-items: center;
	background: var(--vm-black) !important;
	border: 0 !important;
	border-radius: 50%;
	color: var(--vm-white) !important;
	cursor: pointer;
	display: flex;
	font-size: 1.6rem;
	height: 2.75rem;
	justify-content: center;
	line-height: 1;
	padding: 0;
	position: absolute;
	right: 1rem;
	top: 1rem;
	width: 2.75rem;
	z-index: 2;
}

body.vm-cvi .vm-rfq__close:hover {
	background: var(--vm-dark-teal) !important;
}

.vm-rfq__heading {
	border-bottom: 1px solid var(--vm-line);
	margin-bottom: 2rem;
	padding: 0 3rem 1.75rem 0;
}

.vm-rfq__heading .vm-kicker {
	color: var(--vm-dark-teal);
}

body.vm-cvi .vm-rfq__heading h2 {
	font-size: clamp(2rem, 4vw, 3.6rem);
	margin: 0 0 1rem;
	max-width: 15ch;
}

.vm-rfq__heading > p:last-child {
	color: var(--vm-graphite);
	margin: 0;
	max-width: 42rem;
}

.vm-rfq__form {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Keep the anti-spam field in the submitted form without exposing it to
   sighted users, keyboard navigation or the accessibility tree. */
.vm-rfq__honeypot {
	border: 0 !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	pointer-events: none !important;
	position: absolute !important;
	white-space: nowrap !important;
	width: 1px !important;
}

.vm-field {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.vm-field--wide {
	grid-column: 1 / -1;
}

body.vm-cvi .vm-field label {
	color: var(--vm-black);
	font-size: 0.82rem;
	font-weight: 650;
}

body.vm-cvi .vm-field input[type="text"],
body.vm-cvi .vm-field input[type="email"],
body.vm-cvi .vm-field input[type="file"],
body.vm-cvi .vm-field textarea {
	background: var(--vm-white);
	border: 1px solid #899492;
	border-radius: var(--vm-radius-sm);
	box-shadow: none;
	color: var(--vm-black);
	font-size: 1rem;
	line-height: 1.45;
	min-height: 3.25rem;
	padding: 0.78rem 0.9rem;
}

body.vm-cvi .vm-field textarea {
	min-height: 8rem;
	resize: vertical;
}

body.vm-cvi .vm-field input:focus,
body.vm-cvi .vm-field textarea:focus {
	border-color: var(--vm-dark-teal);
	box-shadow: 0 0 0 1px var(--vm-dark-teal);
	outline: 3px solid var(--vm-mint);
	outline-offset: 2px;
}

.vm-file-input {
	background: #e8f7f5;
	border: 1px dashed var(--vm-deep-sea);
	border-radius: var(--vm-radius-sm);
	padding: 0.75rem;
}

body.vm-cvi .vm-file-input input[type="file"] {
	background: transparent;
	border: 0;
	min-height: auto;
	padding: 0;
}

body.vm-cvi .vm-file-input input::file-selector-button {
	background: var(--vm-dark-teal);
	border: 0;
	border-radius: 6px;
	color: var(--vm-white);
	cursor: pointer;
	font-weight: 650;
	margin-right: 1rem;
	min-height: 2.6rem;
	padding: 0.65rem 1rem;
}

.vm-field__help {
	color: var(--vm-graphite);
	font-family: var(--vm-font-mono);
	font-size: 0.68rem;
	line-height: 1.5;
	margin: 0;
}

.vm-rfq__submit {
	align-items: center;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
}

.vm-rfq__submit > p {
	color: var(--vm-graphite);
	font-size: 0.75rem;
	margin: 0;
	max-width: 28rem;
}

.vm-rfq__status {
	color: #8b2400;
	font-weight: 650;
	margin: 0;
}

.vm-rfq[aria-busy="true"] .vm-rfq__status {
	color: var(--vm-dark-teal);
}

.vm-rfq__success {
	padding-block: clamp(2rem, 8vw, 6rem);
	text-align: center;
}

.vm-rfq__success-icon {
	align-items: center;
	background: var(--vm-turquoise);
	border-radius: 50%;
	color: var(--vm-black);
	display: flex;
	font-family: var(--vm-font-mono);
	font-size: 1.5rem;
	font-weight: 700;
	height: 4rem;
	justify-content: center;
	margin: 0 auto 1.5rem;
	width: 4rem;
}

body.vm-cvi .vm-rfq__success h2 {
	font-size: clamp(2rem, 4vw, 3.4rem);
	margin: 0 auto 1rem;
	max-width: 18ch;
}

.vm-rfq__success p {
	margin: 0 auto 1.75rem;
	max-width: 38rem;
}

body.vm-cvi.vm-rfq-is-open {
	overflow: hidden;
}

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

@media (max-width: 1100px) {
	body.vm-cvi .main-header-menu > .menu-item > .menu-link {
		font-size: 0.68rem !important;
		padding-inline: 0.52rem !important;
	}
}

@media (max-width: 921px) {
	body.vm-cvi .site-header {
		position: sticky;
	}

	body.vm-cvi .site-primary-header-wrap {
		min-height: 4.5rem;
		padding-inline: var(--vm-gutter);
	}

	body.vm-cvi .ast-mobile-header-content {
		background: var(--vm-black) !important;
		border-bottom: 1px solid rgba(217, 222, 227, 0.22);
		max-height: calc(100vh - 6.75rem);
		overflow-y: auto;
		padding: 0 var(--vm-gutter) 1rem;
	}

	body.vm-cvi .ast-builder-menu-mobile .main-navigation .main-header-menu,
	body.vm-cvi .ast-builder-menu-mobile .main-navigation .main-header-menu .sub-menu {
		background: var(--vm-black) !important;
	}

	body.vm-cvi .ast-builder-menu-mobile .main-navigation .main-header-menu .menu-item {
		border-bottom: 1px solid rgba(217, 222, 227, 0.18);
	}

	body.vm-cvi .ast-builder-menu-mobile .main-navigation .main-header-menu .menu-link,
	body.vm-cvi .ast-builder-menu-mobile .main-navigation .main-header-menu .ast-menu-toggle {
		background: transparent !important;
		color: var(--vm-white) !important;
	}

	body.vm-cvi .ast-builder-menu-mobile .main-navigation .main-header-menu .menu-link {
		font-size: 0.92rem !important;
		font-weight: 600 !important;
		line-height: 1.35;
		min-height: 3.5rem;
		padding: 0.75rem 0 !important;
	}

	body.vm-cvi .ast-builder-menu-mobile .main-navigation .main-header-menu .sub-menu {
		background: var(--vm-white) !important;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		border: 0 !important;
		border-left: 2px solid var(--vm-deep-sea) !important;
		border-radius: 0;
		margin: 0 0 0.75rem 0.75rem;
		min-width: 0;
		padding-left: 0.9rem;
	}

	body.vm-cvi .ast-builder-menu-mobile .main-navigation .main-header-menu .sub-menu .menu-link {
		color: var(--vm-dark-teal) !important;
		font-size: 0.85rem !important;
		min-height: 3rem;
	}

	body.vm-cvi .ast-builder-menu-mobile .main-navigation .vm-menu-cta > .menu-link {
		color: var(--vm-orange-soft) !important;
	}

	body.vm-cvi .ast-builder-menu-mobile .vm-langs > .sub-menu {
		display: none !important;
	}

	body.vm-cvi .ast-builder-menu-mobile .vm-langs.vm-lang-open > .sub-menu {
		display: block !important;
	}

	body.vm-cvi .ast-builder-menu-mobile .vm-lang-list a {
		color: var(--vm-dark-teal) !important;
		min-height: 3rem;
		padding: 0.75rem 0.85rem;
	}

	body.vm-cvi .ast-builder-menu-mobile .vm-lang-list a:hover,
	body.vm-cvi .ast-builder-menu-mobile .vm-lang-list .current-lang > a {
		background: var(--vm-turquoise) !important;
		color: var(--vm-black) !important;
	}

	.vm-hero-grid {
		grid-template-columns: 1fr;
	}

	.vm-footer__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 2rem;
	}

	.vm-hero-l {
		max-width: 52rem;
	}

	.vm-hero-r {
		max-width: 38rem;
	}

	.vm-hero-r img {
		aspect-ratio: 16 / 10;
	}

	.vm-why__heading {
		align-items: start;
		grid-template-columns: 1fr;
	}

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

	body.vm-cvi .entry-content .vm-page-values ul,
	.vm-page-values ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.vm-cvi .entry-content .vm-page-values li:nth-child(3),
	.vm-page-values li:nth-child(3) {
		border-left: 0;
		border-top: 1px solid var(--vm-line);
	}

	body.vm-cvi .entry-content .vm-page-values li:nth-child(4),
	.vm-page-values li:nth-child(4) {
		border-top: 1px solid var(--vm-line);
	}

	.vm-story-row {
		grid-template-columns: 1fr;
	}

	.vm-story-row__media {
		min-height: 20rem;
	}

	.vm-page-story .vm-story-row:nth-child(even) .vm-story-row__copy,
	.vm-page-story .vm-story-row:nth-child(even) .vm-story-row__media {
		order: initial;
	}

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

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

	body.vm-cvi.archive .site-main,
	body.vm-cvi.search .site-main {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

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

	.vm-hub-cta {
		grid-template-columns: 1fr;
	}

	.vm-hub-cta .vm-actions {
		justify-content: flex-start;
	}

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

	.vm-contact-office {
		grid-template-columns: 1fr;
	}

	.vm-team-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 700px) {
	.vm-system-bar__facts {
		display: none;
	}

	.vm-system-bar__inner {
		justify-content: center;
	}

	body.vm-cvi .vm-grid,
	body.vm-cvi.archive .site-main,
	body.vm-cvi.search .site-main,
	.vm-footer__grid,
	.vm-rfq__form {
		grid-template-columns: 1fr;
	}

	.vm-why__grid {
		grid-template-columns: 1fr;
	}

	body.vm-cvi .entry-content .vm-why__item {
		min-height: 8rem;
	}

	.vm-hub-card-grid,
	.vm-hub--products .vm-hub-card-grid,
	.vm-hub-service-links {
		grid-template-columns: 1fr;
	}

	.vm-hub-service-links li:nth-child(odd),
	.vm-hub-service-links li:nth-child(even) {
		margin-inline: 0;
	}

	.vm-hub-section__heading--split {
		align-items: flex-start;
		flex-direction: column;
	}

	.vm-hub-cta .vm-actions {
		align-items: stretch;
		flex-direction: column;
	}

	body.vm-cvi .vm-hub-cta .vm-button {
		width: 100%;
	}

	.vm-field--wide {
		grid-column: 1;
	}

	.vm-cert {
		grid-template-columns: 1fr;
	}

	.vm-cert > * {
		min-height: 5.25rem;
	}

	body.vm-cvi .entry-content table {
		display: block;
		max-width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.vm-contact-facts {
		grid-template-columns: 1fr;
	}

	.vm-contact-office__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.vm-contact-office__actions .vm-button {
		width: 100%;
	}

	.vm-person {
		grid-template-columns: 6.5rem minmax(0, 1fr);
	}

	.vm-person__body {
		padding: 1.15rem 1rem 1rem;
	}

	body.vm-cvi[class*="vm-process-"] article.ast-article-single > .entry-header::after {
		display: none;
	}

	body.vm-cvi:not(.home) article.ast-article-single > .entry-header .entry-title {
		max-width: 100%;
	}

	body.vm-cvi .vm-inline-rfq {
		align-items: start;
		grid-template-columns: minmax(0, 1fr);
	}

	.vm-inline-rfq__actions {
		align-items: start;
		grid-column: 1 / -1;
		padding-left: 0;
	}

	.vm-rfq__submit {
		align-items: stretch;
		flex-direction: column;
	}
}

@media (max-width: 782px) {
	body.admin-bar.vm-cvi .site-header {
		top: 46px;
	}
}

@media (max-width: 480px) {
	:root {
		--vm-gutter: 1.25rem;
	}

	.vm-hero {
		padding-block: 2.25rem 2.75rem;
	}

	.vm-hero.vm-hero--panorama,
	.vm-hero--panorama .vm-hero-grid,
	.vm-hero--panorama .vm-hero-l {
		min-height: 38rem;
	}

	.vm-hero.vm-hero--panorama {
		padding: 0;
	}

	.vm-hero--panorama .vm-hero-grid {
		aspect-ratio: auto;
	}

	.vm-hero--panorama .vm-hero-r img {
		aspect-ratio: auto;
		object-position: 58% center;
	}

	.vm-hero::before {
		top: 2.25rem;
	}

	body.vm-cvi .vm-hero h1 {
		font-size: clamp(2.15rem, 11vw, 2.85rem);
	}

	body.vm-cvi .vm-hero--kevin h1.vm-hero-title {
		font-size: clamp(2.1rem, 9.5vw, 2.75rem);
		line-height: 1.12;
	}

	.vm-hero--kevin .vm-hero-r::before {
		background: linear-gradient(90deg, rgba(0, 14, 23, 0.82) 0%, rgba(0, 18, 27, 0.68) 65%, rgba(0, 18, 27, 0.5) 100%);
	}

	.vm-hero--kevin .vm-hero-r img {
		object-position: 35% center;
	}

	.vm-datum {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.35rem;
	}

	.vm-datum .tick {
		display: none;
	}

	.vm-hero-l > p:last-child,
	.vm-actions {
		align-items: stretch;
		flex-direction: column;
	}

	body.vm-cvi .vm-button,
	body.vm-cvi .vm-btn {
		width: 100%;
	}

	.vm-sec-head {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.75rem;
	}

	body.vm-cvi .vm-card {
		min-height: 12rem;
	}

	body.vm-cvi .entry-content .vm-page-values ul,
	.vm-page-values ul {
		grid-template-columns: 1fr;
	}

	body.vm-cvi .entry-content .vm-page-values li,
	.vm-page-values li,
	body.vm-cvi .entry-content .vm-page-values li:nth-child(3),
	.vm-page-values li:nth-child(3) {
		border-left: 0;
		border-top: 1px solid var(--vm-line);
		min-height: 6.5rem;
	}

	body.vm-cvi .entry-content .vm-page-values li:first-child,
	.vm-page-values li:first-child {
		border-top: 0;
	}

	.vm-story-row__media {
		min-height: 15rem;
	}

	body.vm-cvi .vm-inline-rfq {
		grid-template-columns: 1fr;
	}

	.vm-inline-rfq__actions {
		grid-column: 1;
		width: 100%;
	}

	body.vm-cvi .vm-rfq {
		max-height: 96vh;
		max-width: calc(100vw - 0.75rem);
	}

	.vm-hub-hero {
		border-left-width: 0.35rem;
	}

	body.vm-cvi .vm-hub-card__link {
		min-height: 12rem;
	}

	.vm-rfq__panel {
		border-radius: var(--vm-radius-sm);
		max-height: 96vh;
	}
}

/* Unified 10 px major-block rhythm -------------------------------------- */

/* Homepage: every visible top-level section uses the header radius and a
 * single, deterministic gap. The sample-block wrapper is intentionally
 * transparent so its first card starts at that same 10 px boundary. */
body.vm-cvi.home .entry-content > :is(.vm-hero, .vm-why, .vm-home-sample-blocks, .vm-sec, .vm-cta) {
	margin-block: 0 !important;
}

body.vm-cvi.home .entry-content > :is(.vm-hero, .vm-why, .vm-sec, .vm-cta) {
	border-radius: var(--vm-radius-lg);
}

body.vm-cvi.home .entry-content > .vm-hero {
	overflow: hidden;
}

body.vm-cvi.home .entry-content > :is(.vm-hero, .vm-why, .vm-home-sample-blocks, .vm-sec, .vm-cta)
	+ :is(.vm-hero, .vm-why, .vm-home-sample-blocks, .vm-sec, .vm-cta) {
	margin-top: 10px !important;
}

.vm-home-sample-blocks {
	background: transparent;
	overflow: visible;
	padding-block: 0;
}

.vm-home-sample-block + .vm-home-sample-block {
	margin-top: 10px;
}

/* WHY CHOOSE VESIMENTOR spans the viewport while retaining a safe reading
 * gutter. Its heading remains one line at desktop widths. */
body.vm-cvi.home .vm-why > .vm-wrap {
	max-width: none !important;
	padding-inline: clamp(1.25rem, 3vw, 3rem);
	width: 100%;
}

.vm-why__heading {
	display: block;
	margin-bottom: clamp(1.75rem, 3vw, 2.75rem);
}

body.vm-cvi .entry-content .vm-why__heading h2 {
	font-size: clamp(2rem, 4.15vw, 4.75rem);
	line-height: 1;
	max-width: none;
	white-space: nowrap;
}

body.vm-cvi .entry-content .vm-why__heading p {
	max-width: 88ch;
}

body.vm-cvi .entry-content .vm-why__heading h2 + p,
body.vm-cvi .entry-content .vm-why__heading .vm-why__lead {
	color: var(--vm-white);
	font-size: clamp(1rem, 1.55vw, 1.35rem);
	font-weight: 750;
	letter-spacing: 0.035em;
	line-height: 1.35;
	margin-top: clamp(1.25rem, 2vw, 1.75rem);
	text-transform: uppercase;
}

body.vm-cvi .entry-content .vm-why__heading p + p,
body.vm-cvi .entry-content .vm-why__heading .vm-why__detail {
	color: var(--vm-grey);
	font-size: clamp(0.95rem, 1.2vw, 1.08rem);
	font-weight: 450;
	letter-spacing: 0;
	line-height: 1.65;
	margin-top: 0.75rem;
	text-transform: none;
}

.vm-why__grid {
	align-items: stretch;
	background: transparent;
	border: 0;
	gap: 10px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.vm-cvi .entry-content .vm-why__item {
	align-content: center;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: var(--vm-radius-lg);
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: auto auto;
	justify-items: center;
	min-height: 13rem;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	text-align: center;
}

.vm-why__icon {
	display: none;
}

.vm-why__item strong {
	font-size: clamp(1.75rem, 3.2vw, 3.15rem);
	letter-spacing: -0.035em;
	line-height: 1;
}

.vm-why__item > span:last-child {
	font-size: clamp(0.88rem, 1.15vw, 1rem);
	line-height: 1.5;
	margin-top: 0.85rem;
	max-width: 34ch;
}

/* Certification visuals share one carrier size and baseline. The current
 * neutral icon is not an issuer mark; future official marks remain unfiltered
 * and keep their original artwork. */
.vm-cert {
	gap: 10px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.vm-cert > * {
	border-radius: var(--vm-radius-lg);
	min-height: 15rem;
}

.vm-cert-copy {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 3.9rem;
}

.vm-cert-mark,
.vm-cert__mark {
	align-items: center;
	background: var(--vm-white);
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: var(--vm-radius-sm);
	box-sizing: border-box;
	display: flex;
	flex: 0 0 5rem;
	height: 5rem;
	justify-content: center;
	margin-top: 1.15rem;
	padding: 0.55rem;
	text-decoration: none !important;
	width: min(100%, 10rem);
}

.vm-cert-mark--neutral {
	background: var(--vm-paper);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius-sm);
	padding: 0.65rem 1rem;
}

body.vm-cvi .entry-content :is(.vm-cert-mark, .vm-cert__mark) img,
.vm-cert :is(.vm-cert-mark, .vm-cert__mark) img,
.vm-cert :is(.vm-cert-mark, .vm-cert__mark) svg {
	border: 0;
	border-radius: 0;
	display: block;
	height: 100%;
	max-width: 100%;
	object-fit: contain;
	width: 100%;
}

/* Singular, curated-hub and generic archive headers share the same 2000:600
 * geometry, dark identity and large-block radius on desktop. */
body.vm-cvi:not(.home) article.ast-article-single > .entry-header,
body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] > .entry-header,
body.vm-cvi.vm-curated-hub .vm-hub-hero,
body.vm-cvi.archive .ast-archive-description,
body.vm-cvi.search .ast-archive-description {
	aspect-ratio: 2000 / 600;
	border: 0;
	border-radius: var(--vm-radius-lg);
	box-sizing: border-box;
	margin: 0 !important;
	min-height: 0;
	overflow: hidden;
	width: 100%;
}

body.vm-cvi.archive .ast-archive-description,
body.vm-cvi.search .ast-archive-description {
	align-items: flex-start;
	background-color: var(--vm-black) !important;
	background-image: linear-gradient(90deg, rgba(0, 30, 29, 0.94) 0%, rgba(0, 30, 29, 0.72) 55%, rgba(0, 30, 29, 0.22) 100%), var(--vm-page-hero-image, none);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	display: flex;
	flex-direction: column;
	grid-column: 1 / -1;
	justify-content: flex-end;
	margin: 0 !important;
	padding: clamp(2rem, 4.5vw, 4.5rem) max(var(--vm-gutter), calc((100vw - var(--vm-container)) / 2 + var(--vm-gutter))) !important;
}

/* The intro and value strip now sit below, never over, the page header. */
.vm-page-intro {
	background: var(--vm-dark-teal);
	border-radius: var(--vm-radius-lg);
	margin-top: 10px;
	overflow: hidden;
	padding: clamp(1.5rem, 3.5vw, 2.75rem);
	position: relative;
	z-index: 1;
}

body.vm-cvi .entry-content .vm-page-intro__deck {
	margin-bottom: clamp(1.25rem, 2.5vw, 2rem);
}

.vm-page-values {
	border-radius: var(--vm-radius-lg);
	box-shadow: none;
	overflow: hidden;
}

.vm-page-story {
	margin: 10px 0 0;
}

.vm-story-row + .vm-story-row {
	margin-top: 10px;
}

.vm-page-story .vm-story-row--reverse .vm-story-row__copy,
.vm-page-story .vm-story-row:nth-child(even) .vm-story-row__copy {
	order: 2;
}

.vm-page-story .vm-story-row--reverse .vm-story-row__media,
.vm-page-story .vm-story-row:nth-child(even) .vm-story-row__media {
	order: 1;
}

body.vm-cvi .vm-inline-rfq {
	margin-top: 10px;
}

/* Special-content subpages still participate in the same outer rhythm even
 * when their content is a certificate table or the contact directory rather
 * than a text/image story sequence. */
body.vm-cvi:not(.home) .entry-content > table,
body.vm-cvi:not(.home) .entry-content > .vm-contact-page,
body.vm-cvi:not(.home) .entry-content > .vm-video-plokk {
	border-radius: var(--vm-radius-lg);
	margin: 10px 0 0 !important;
}

body.vm-cvi:not(.home) .entry-content > table {
	overflow: hidden;
}

body.vm-cvi:not(.home) .entry-content > .vm-contact-page {
	background: var(--vm-white);
	border: 1px solid var(--vm-line);
	padding: clamp(1.25rem, 3vw, 2.5rem);
}

body.vm-cvi:not(.home) article.ast-article-single > .entry-content,
body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] > .entry-content {
	padding-bottom: 0;
}

body.vm-cvi:not(.home) .site-content {
	padding-bottom: 0;
}

body.vm-cvi .site-footer {
	border-radius: var(--vm-radius-lg);
	margin-top: 10px;
	overflow: hidden;
}

/* Curated hubs use the same visible 10 px rhythm instead of overlap. */
.vm-page-values--hub,
.vm-page-story--hub,
body.vm-cvi.vm-curated-hub .vm-hub-content {
	margin-bottom: 0;
	margin-top: 10px;
}

.vm-page-values--hub,
.vm-page-story--hub {
	margin-inline: auto;
}

body.vm-cvi.vm-curated-hub .vm-hub-content {
	border-radius: var(--vm-radius-lg);
	overflow: hidden;
}

.vm-hub-cta {
	margin-top: 10px;
}

/* Archive/search descriptions are the header row; cards follow on the same
 * 10 px grid and inherit the common large-block radius. */
body.vm-cvi.archive .site-main,
body.vm-cvi.search .site-main {
	gap: 10px;
	padding-top: 10px;
}

body.vm-cvi.archive article.ast-article-post,
body.vm-cvi.search article.ast-article-post {
	border-radius: var(--vm-radius-lg);
}

@media (max-width: 921px) {
	body.vm-cvi:not(.home) article.ast-article-single > .entry-header,
	body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] > .entry-header,
	body.vm-cvi.vm-curated-hub .vm-hub-hero,
	body.vm-cvi.archive .ast-archive-description,
	body.vm-cvi.search .ast-archive-description {
		aspect-ratio: auto;
		min-height: clamp(22rem, 60vw, 30rem);
	}

	body.vm-cvi:not(.home) article.ast-article-single > .entry-header,
	body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] > .entry-header {
		padding: clamp(3.5rem, 10vw, 5rem) var(--vm-gutter) clamp(3rem, 9vw, 4.5rem);
	}

	body.vm-cvi.vm-curated-hub .vm-hub-hero {
		padding: clamp(1.5rem, 5vw, 2.5rem) var(--vm-gutter) clamp(2.5rem, 8vw, 4rem);
	}

	.vm-story-row,
	.vm-story-row.vm-story-row--reverse {
		grid-template-columns: minmax(0, 1fr);
	}

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

	.vm-page-story .vm-story-row--reverse .vm-story-row__copy,
	.vm-page-story .vm-story-row--reverse .vm-story-row__media,
	.vm-page-story .vm-story-row:nth-child(even) .vm-story-row__copy,
	.vm-page-story .vm-story-row:nth-child(even) .vm-story-row__media {
		order: initial;
	}
}

@media (max-width: 700px) {
	body.vm-cvi .entry-content .vm-why__heading h2 {
		font-size: clamp(1rem, 5.6vw, 2.35rem);
		white-space: nowrap;
	}

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

	body.vm-cvi .entry-content .vm-why__item {
		min-height: 10.5rem;
	}

	.vm-cert > * {
		min-height: 12rem;
	}

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

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	body.vm-cvi *,
	body.vm-cvi *::before,
	body.vm-cvi *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

@media print {
	.vm-system-bar,
	.site-header,
	.site-footer,
	.vm-inline-rfq,
	.vm-hub-cta,
	.vm-rfq {
		display: none !important;
	}

	body.vm-cvi,
	body.vm-cvi:not(.home) .site-content,
	body.vm-cvi:not(.home) article.ast-article-single > .entry-header,
	body.vm-cvi:not(.home) article.ast-article-single > .entry-content,
	.vm-hub-hero,
	.vm-hub-content {
		background: var(--vm-white) !important;
		color: var(--vm-black) !important;
	}

	body.vm-cvi:not(.home) article.ast-article-single > .entry-header .entry-title,
	body.vm-cvi .vm-hub-hero h1,
	.vm-hub-hero__lead {
		color: var(--vm-black);
	}
}

/* Kevin 2026-08-21 — full-width site, 30 px header edges, five key points,
 * homepage service rows, grid dropdowns, 10 px Quality/RFQ padding --------- */

:root {
	--vm-container: 100vw;
	--vm-edge: 30px;
	--vm-keypoints-height: 7.75rem;
}

/* Header: logo flush left, language + Contacts flush right, 30 px from edge. */
body.vm-cvi .site-primary-header-wrap,
body.vm-cvi .site-primary-header-wrap.ast-container {
	margin-inline: 0;
	max-width: none;
	padding-inline: var(--vm-edge);
	width: 100%;
}

body.vm-cvi .site-branding,
body.vm-cvi .site-logo-img,
body.vm-cvi .site-logo-img .custom-logo-link {
	margin: 0;
	padding: 0;
}

body.vm-cvi .site-logo-img img.custom-logo {
	object-position: left center;
}

@media (min-width: 922px) {
	body.vm-cvi .main-header-menu > .vm-menu-cta {
		margin-left: 0;
		margin-right: 0;
	}

	body.vm-cvi .main-header-menu > .vm-langs {
		margin-left: auto;
	}

	body.vm-cvi .main-header-menu > .vm-menu-cta > .menu-link {
		margin-right: 0;
	}

	/* Astra sets the menu-link line-height to the bar height; the orange
	 * Contacts button must stay a compact centred pill. */
	body.vm-cvi.ast-desktop .main-header-menu > .vm-menu-cta {
		align-items: center;
		display: flex;
		justify-content: center;
	}

	body.vm-cvi.ast-desktop .main-header-menu > .vm-menu-cta > .menu-link {
		height: auto;
		line-height: 1.2 !important;
		min-height: 2.85rem;
	}
}

@media (max-width: 921px) {
	body.vm-cvi .site-primary-header-wrap {
		padding-inline: var(--vm-edge);
	}
}

/* Full-width shells: content runs edge to edge; loose prose keeps a gutter. */
body.vm-cvi .ast-container,
.vm-wrap,
body.vm-cvi.home .vm-wrap,
body.vm-cvi.home .vm-hero--kevin > .vm-wrap {
	max-width: none;
}

body.vm-cvi:not(.home) article.ast-article-single > .entry-content,
body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] > .entry-content {
	max-width: none;
	padding-inline: 0;
}

/* Translated homepages: the panorama image runs edge to edge; the copy keeps
 * its own gutter inside .vm-hero-l. */
body.vm-cvi.home .vm-hero--panorama > .vm-wrap {
	padding-inline: 0;
}

body.vm-cvi:not(.home) .entry-content > :where(h1, h2, h3, h4, h5, h6, p, ul, ol, dl, blockquote, figure, .vm-faq, .wp-block-group, .wp-block-columns, .wp-block-image, .wp-block-gallery, .wp-block-buttons) {
	margin-inline: var(--vm-gutter) !important;
}

body.vm-cvi:not(.home) .entry-content > :where(h2, h3, h4):not(.vm-page-block):first-of-type {
	margin-top: clamp(2rem, 4vw, 3rem);
}

body.vm-cvi .vm-footer .vm-wrap {
	padding-inline: var(--vm-edge);
}

/* Homepage rhythm with the new blocks. */
body.vm-cvi.home .entry-content > :is(.vm-hero, .vm-page-values, .vm-home-features, .vm-why, .vm-sec, .vm-cta) {
	margin-block: 0 !important;
}

body.vm-cvi.home .entry-content > :is(.vm-hero, .vm-page-values, .vm-home-features, .vm-why, .vm-sec, .vm-cta)
	+ :is(.vm-hero, .vm-page-values, .vm-home-features, .vm-why, .vm-sec, .vm-cta) {
	margin-top: 10px !important;
}

/* Key points: one fixed-height strip, five values, full width, every page. */
.vm-page-intro {
	background: transparent;
	border-radius: 0;
	margin-top: 10px;
	overflow: visible;
	padding: 0;
}

.vm-page-values,
body.vm-cvi.home .vm-page-values,
.vm-page-values--hub {
	background: var(--vm-dark-teal);
	border: 0;
	border-radius: var(--vm-radius-lg);
	box-shadow: none;
	color: var(--vm-white);
	margin: 0;
	max-width: none;
	overflow: hidden;
	width: 100%;
}

body.vm-cvi .entry-content .vm-page-values ul,
.vm-page-values ul {
	grid-template-columns: repeat(5, minmax(0, 1fr));
	height: var(--vm-keypoints-height);
}

body.vm-cvi .entry-content .vm-page-values li,
.vm-page-values li {
	align-items: center;
	border-left: 1px solid rgba(255, 255, 255, 0.22);
	gap: 0.45rem;
	height: var(--vm-keypoints-height);
	justify-content: flex-start;
	min-height: 0;
	padding: 1.55rem 1rem 0.75rem;
	text-align: center;
}

body.vm-cvi .entry-content .vm-page-values li:first-child,
.vm-page-values li:first-child {
	border-left: 0;
}

.vm-page-values strong {
	color: var(--vm-white);
	font-size: clamp(1.1rem, 1.7vw, 1.7rem);
	font-weight: 750;
	letter-spacing: -0.02em;
	line-height: 1.1;
}

.vm-page-values span {
	color: var(--vm-grey);
	font-size: clamp(0.74rem, 0.95vw, 0.9rem);
	line-height: 1.4;
	max-width: 26ch;
}

/* Page hero copy: deck (or the 50M+ display line) under the H1. */
body.vm-cvi:not(.home) .entry-header .vm-page-hero__deck,
body.vm-cvi:not(.home) .entry-header .vm-page-hero__display {
	position: relative;
	z-index: 1;
}

body.vm-cvi:not(.home) .entry-header .vm-page-hero__deck {
	color: var(--vm-grey);
	font-size: clamp(1.05rem, 1.7vw, 1.3rem);
	font-weight: 550;
	line-height: 1.5;
	margin: 1rem 0 0;
	max-width: 62ch;
}

body.vm-cvi:not(.home) .entry-header .vm-page-hero__display {
	color: var(--vm-white);
	font-size: clamp(1.9rem, 3.9vw, 4.25rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.04;
	margin: 0.9rem 0 0;
	max-width: 16ch;
	text-transform: uppercase;
}

body.vm-cvi.vm-lang-en.vm-process-injection article.ast-article-single > .entry-header .entry-title {
	color: var(--vm-turquoise);
	font-size: clamp(0.95rem, 1.4vw, 1.3rem);
	font-weight: 700;
	letter-spacing: 0.08em;
	max-width: none;
	text-transform: uppercase;
}

/* Homepage service rows: full width, image and copy half/half, alternating. */
.vm-home-features {
	background: transparent;
	padding: 0;
}

.vm-home-feature {
	background: var(--vm-paper);
	border-radius: var(--vm-radius-lg);
	color: var(--vm-black);
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	overflow: hidden;
}

.vm-home-feature + .vm-home-feature {
	margin-top: 10px;
}

.vm-home-feature__media {
	aspect-ratio: 3 / 2;
	margin: 0;
	min-height: 100%;
	overflow: hidden;
}

body.vm-cvi .entry-content .vm-home-feature__media img {
	border: 0;
	border-radius: 0;
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.vm-home-feature__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2rem, 5vw, 5.5rem) clamp(1.5rem, 5vw, 6rem);
}

.vm-home-feature--text-left .vm-home-feature__media {
	order: 2;
}

.vm-home-feature--text-left .vm-home-feature__copy {
	order: 1;
}

body.vm-cvi .entry-content .vm-home-feature__copy h2 {
	color: var(--vm-dark-teal);
	font-size: clamp(1.9rem, 2.9vw, 3.2rem);
	letter-spacing: -0.035em;
	line-height: 1.05;
	margin: 0 0 1.25rem;
	max-width: 18ch;
	padding: 0;
}

body.vm-cvi .entry-content .vm-home-feature__copy h2::before {
	display: none;
}

body.vm-cvi .entry-content .vm-home-feature__lead {
	color: var(--vm-graphite);
	font-size: clamp(1.05rem, 1.4vw, 1.35rem);
	font-weight: 500;
	line-height: 1.55;
	margin: 0;
	max-width: 46ch;
}

body.vm-cvi .entry-content .vm-home-feature__actions {
	margin: 1.75rem 0 0;
}

/* Injection-moulding rows: lead copy at H4 scale. */
body.vm-cvi .entry-content .vm-story-row__copy .vm-story-row__lead {
	color: var(--vm-graphite);
	font-size: clamp(1.05rem, 1.4vw, 1.35rem);
	font-weight: 500;
	line-height: 1.55;
	max-width: 46ch;
}

/* Quality system and RFQ: colour extends only 10 px beyond the content. */
body.vm-cvi.home .vm-sec--quality {
	background: var(--vm-dark-teal);
	color: var(--vm-white);
	padding-block: 10px;
}

body.vm-cvi.home .vm-sec--quality > .vm-wrap {
	padding-inline: 10px;
}

body.vm-cvi.home .vm-sec--quality .vm-sec-head {
	border-bottom-color: rgba(255, 255, 255, 0.25);
	display: block;
	margin-bottom: 10px;
	padding-bottom: 0.6rem;
	text-align: center;
}

body.vm-cvi.home .vm-sec--quality .vm-sec-head h2 {
	color: var(--vm-white);
	margin-inline: auto;
}

body.vm-cvi.home .vm-sec--quality .vm-mono {
	color: var(--vm-mint);
}

body.vm-cvi .vm-inline-rfq {
	margin-top: 10px;
	padding: 10px clamp(1.25rem, 3vw, 1.85rem);
}

/* Kevin 2026-09-17: Products / Sectors / Value / About us open as one vertical
 * list, top to bottom, one entry under another. Subcontracting keeps its
 * panel. Replaces the three-per-row panel (2026-08-21) and the single About us
 * row (2026-09-15). */
body.vm-cvi.ast-desktop .main-header-menu > .vm-menu-dropdown > .sub-menu {
	border-radius: var(--vm-radius-sm);
	display: block;
	max-width: min(24rem, 94vw);
	min-width: 14rem;
	padding: 0.5rem 0;
	width: max-content;
}

body.vm-cvi.ast-desktop .main-header-menu > .vm-menu-dropdown > .sub-menu > .menu-item {
	display: block;
	width: 100%;
}

body.vm-cvi.ast-desktop .main-header-menu > .vm-menu-dropdown .sub-menu .menu-link {
	display: block;
	font-size: 0.95rem !important;
	height: auto;
	min-height: 0;
	padding: 0.7rem 1.5rem !important;
	white-space: normal;
}

@media (max-width: 921px) {
	body.vm-cvi .entry-content .vm-page-values ul,
	.vm-page-values ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		height: auto;
	}

	body.vm-cvi .entry-content .vm-page-values li,
	.vm-page-values li {
		border-left: 0;
		border-top: 1px solid rgba(255, 255, 255, 0.22);
		height: auto;
		justify-content: center;
		min-height: 6rem;
		padding: 1rem;
	}

	body.vm-cvi .entry-content .vm-page-values li:nth-child(-n+2),
	.vm-page-values li:nth-child(-n+2) {
		border-top: 0;
	}

	body.vm-cvi .entry-content .vm-page-values li:nth-child(even),
	.vm-page-values li:nth-child(even) {
		border-left: 1px solid rgba(255, 255, 255, 0.22);
	}

	body.vm-cvi .entry-content .vm-page-values li:last-child:nth-child(odd),
	.vm-page-values li:last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}

	.vm-home-feature,
	.vm-home-feature--text-left {
		grid-template-columns: minmax(0, 1fr);
	}

	.vm-home-feature--text-left .vm-home-feature__media,
	.vm-home-feature__media {
		min-height: 0;
		order: 1;
	}

	.vm-home-feature--text-left .vm-home-feature__copy,
	.vm-home-feature__copy {
		order: 2;
		padding: clamp(1.75rem, 6vw, 3rem) clamp(1.25rem, 5vw, 2.5rem);
	}
}

@media (max-width: 480px) {
	body.vm-cvi .entry-content .vm-page-values ul,
	.vm-page-values ul {
		grid-template-columns: minmax(0, 1fr);
	}

	body.vm-cvi .entry-content .vm-page-values li,
	.vm-page-values li {
		border-left: 0 !important;
		border-top: 1px solid rgba(255, 255, 255, 0.22);
		min-height: 5rem;
	}

	body.vm-cvi .entry-content .vm-page-values li:nth-child(n+2),
	.vm-page-values li:nth-child(n+2) {
		border-top: 1px solid rgba(255, 255, 255, 0.22);
	}

	body.vm-cvi .entry-content .vm-page-values li:first-child,
	.vm-page-values li:first-child {
		border-top: 0;
	}

	body.vm-cvi .entry-content .vm-home-feature__copy h2 {
		font-size: clamp(1.6rem, 8vw, 2.1rem);
	}
}

/* Kevin 2026-08-31: Overmoulding, Micro injection and One-Stop pages reuse
 * the homepage feature blocks unchanged. Images Kevin has not supplied yet
 * show a labelled placeholder; the 1500 × 450 value banner is letterboxed on
 * its own dark tone instead of being cropped to 3:2. */
body.vm-cvi:not(.home) .entry-content > .vm-kevin-subpage {
	margin: 10px 0 0;
}

.vm-home-feature__media {
	position: relative;
}

body.vm-cvi .entry-content .vm-home-feature__media--contain img {
	background: #020304;
	object-fit: contain;
}

.vm-image-pending {
	align-items: center;
	background: var(--vm-dark-teal);
	box-sizing: border-box;
	color: var(--vm-white);
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	inset: 0;
	justify-content: center;
	padding: clamp(1.5rem, 4vw, 3rem);
	position: absolute;
	text-align: center;
}

.vm-image-pending::before {
	border: 2px dashed rgba(255, 255, 255, 0.35);
	border-radius: 8px;
	content: '';
	inset: 12px;
	pointer-events: none;
	position: absolute;
}

.vm-image-pending__kicker {
	color: var(--vm-turquoise);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.vm-image-pending__file {
	font-size: clamp(0.9rem, 1.1vw, 1.05rem);
	font-weight: 500;
	max-width: 30ch;
	opacity: 0.85;
	overflow-wrap: anywhere;
}

body.vm-cvi:not(.home) .entry-header .vm-page-hero__pending {
	color: var(--vm-turquoise);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	margin: 0.9rem 0 0;
	position: relative;
	text-transform: uppercase;
	z-index: 1;
}

/* Approved 2026-09-05: production scope below the six injection blocks. */
body.vm-cvi .entry-content > .vm-content-review {
	background: var(--vm-paper);
	border-radius: var(--vm-radius-lg);
	margin-block: 10px;
	padding: clamp(1.5rem, 3vw, 3rem) var(--vm-gutter);
}
body.vm-cvi .vm-content-review > :first-child { margin-top: 0; }
body.vm-cvi .vm-content-review > :last-child { margin-bottom: 0; }
body.vm-cvi .entry-content > .vm-rfq-guidance {
	padding-inline: var(--vm-gutter);
}

/* ======================================================================== */
/* Kevin 2026-09-15 ("WEB" + "WEB2 - Quality systems")                      */
/* ======================================================================== */

/* Key points: Kevin's longer values need a slightly smaller display size so
 * the five-value strip keeps one fixed height. */
:root {
	--vm-keypoints-height: 8.75rem;
}

.vm-page-values strong {
	font-size: clamp(0.95rem, 1.2vw, 1.3rem);
}

.vm-page-values span {
	max-width: 30ch;
}

/* Footer: logo, statement and CTA centred under the link columns. */
.vm-footer__brand {
	justify-items: center;
	margin-inline: auto;
	max-width: 34rem;
	text-align: center;
}

.vm-footer__logo img.custom-logo {
	object-position: center;
}

.vm-footer__statement {
	margin-inline: auto;
	max-width: 30rem;
}

.vm-footer__cta {
	display: flex;
	justify-content: center;
}

/* Quality system: one mark per slot, logo above the wording. */
.vm-cert--marks {
	align-items: stretch;
}

.vm-cert--marks .c {
	gap: 0.35rem;
	justify-content: flex-start;
	padding: clamp(1.35rem, 2.5vw, 2rem) clamp(1rem, 2vw, 1.5rem);
}

.vm-cert--marks .vm-cert__mark {
	background: var(--vm-white);
	border: 1px solid rgba(255, 255, 255, 0.45);
	flex: 0 0 auto;
	height: 5.5rem;
	margin: 0 0 1.15rem;
	padding: 0.7rem 0.9rem;
	width: min(100%, 13rem);
}

.vm-cert--marks .vm-cert__standard {
	color: var(--vm-turquoise);
	display: block;
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	margin-bottom: 0.45rem;
	text-transform: uppercase;
}

.vm-cert--marks .vm-cert-copy {
	align-items: flex-start;
	min-height: 3rem;
}

.vm-cert__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.9rem;
	justify-content: center;
	margin-top: 0.9rem;
}

body.vm-cvi .entry-content .vm-cert__links a,
.vm-cert__links a {
	color: var(--vm-mint) !important;
	font-family: var(--vm-font-mono);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-decoration-color: var(--vm-turquoise) !important;
	text-transform: uppercase;
}

/* Kevin's centred copy block (Company, Sustainability, Quality commitment). */
.vm-copy {
	background: var(--vm-white);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius-lg);
	margin: 10px 0 0 !important;
	overflow: hidden;
}

.vm-copy__inner {
	margin-inline: auto;
	max-width: 58rem;
	padding: clamp(2.25rem, 5vw, 4.5rem) var(--vm-gutter);
}

body.vm-cvi .entry-content .vm-copy__title {
	color: var(--vm-dark-teal);
	font-size: clamp(1.75rem, 3.2vw, 2.9rem);
	letter-spacing: -0.035em;
	line-height: 1.06;
	margin: 0 auto clamp(1.25rem, 2.5vw, 1.75rem) !important;
	max-width: 28ch;
	padding: 0;
	text-align: center;
}

body.vm-cvi .entry-content .vm-copy__title::before {
	display: none;
}

body.vm-cvi .entry-content .vm-copy__lead {
	color: var(--vm-black);
	font-size: clamp(1.1rem, 1.6vw, 1.3rem);
	font-weight: 520;
	line-height: 1.5;
	margin: 0 auto clamp(1.25rem, 2.5vw, 1.75rem) !important;
	max-width: 62ch;
	text-align: center;
}

body.vm-cvi .entry-content .vm-copy__inner > p {
	color: var(--vm-graphite);
	font-size: 1.05rem;
	line-height: 1.65;
	margin: 0 0 1.15rem !important;
	max-width: 68ch;
}

body.vm-cvi .entry-content .vm-copy__heading {
	border-top: 1px solid var(--vm-line);
	color: var(--vm-black);
	font-size: clamp(0.82rem, 1.1vw, 0.95rem);
	font-weight: 700;
	letter-spacing: 0.09em;
	margin: clamp(2rem, 3.5vw, 2.75rem) 0 1.15rem !important;
	padding-top: clamp(1.25rem, 2.5vw, 1.75rem);
	text-transform: uppercase;
}

body.vm-cvi .entry-content .vm-copy__heading::before {
	display: none;
}

body.vm-cvi .entry-content .vm-copy__list {
	color: var(--vm-graphite);
	display: grid;
	gap: 0.5rem;
	list-style: none;
	margin: 0 0 1.15rem !important;
	max-width: 68ch;
	padding: 0;
}

body.vm-cvi .entry-content .vm-copy__list li {
	line-height: 1.55;
	padding-left: 1.5rem;
	position: relative;
}

body.vm-cvi .entry-content .vm-copy__list li::before {
	background: var(--vm-turquoise);
	border-radius: 2px;
	content: "";
	height: 0.5rem;
	left: 0;
	position: absolute;
	top: 0.55rem;
	width: 0.5rem;
}

body.vm-cvi .entry-content .vm-copy__points,
body.vm-cvi .entry-content .vm-copy__facts {
	display: grid;
	gap: 10px;
	list-style: none;
	margin: 0 !important;
	padding: 0;
}

body.vm-cvi .entry-content .vm-copy__points {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.vm-cvi .entry-content .vm-copy__facts {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.vm-cvi .entry-content .vm-copy__points li,
body.vm-cvi .entry-content .vm-copy__facts li {
	background: var(--vm-paper);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius-sm);
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	line-height: 1.45;
	padding: 1.1rem 1.15rem;
}

body.vm-cvi .entry-content .vm-copy__points li strong,
body.vm-cvi .entry-content .vm-copy__facts li strong {
	color: var(--vm-dark-teal);
	font-size: 1.02rem;
	font-weight: 700;
	letter-spacing: -0.01em;
}

body.vm-cvi .entry-content .vm-copy__facts li strong {
	font-size: 0.95rem;
}

body.vm-cvi .entry-content .vm-copy__points li span,
body.vm-cvi .entry-content .vm-copy__facts li span {
	color: var(--vm-graphite);
	font-size: 0.88rem;
}

body.vm-cvi .entry-content .vm-copy__note {
	border-top: 1px solid var(--vm-line);
	color: var(--vm-dark-teal);
	font-size: clamp(1.05rem, 1.5vw, 1.25rem);
	font-weight: 650;
	margin: clamp(2rem, 3.5vw, 2.75rem) auto 0 !important;
	max-width: 56ch;
	padding-top: clamp(1.25rem, 2.5vw, 1.75rem);
	text-align: center;
}

/* Company page: the two export contacts in the Contacts-page card format. */
.vm-company-contacts {
	background: var(--vm-white);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius-lg);
	margin: 10px 0 0 !important;
}

.vm-company-contacts__inner {
	margin-inline: auto;
	max-width: 62rem;
	padding: clamp(1.75rem, 4vw, 3rem) var(--vm-gutter);
}

body.vm-cvi .entry-content .vm-company-contacts h2 {
	color: var(--vm-black);
	font-size: clamp(1.5rem, 2.6vw, 2.25rem);
	margin: 0 0 clamp(1.25rem, 2.5vw, 1.75rem) !important;
	padding: 0;
	text-align: center;
}

body.vm-cvi .entry-content .vm-company-contacts h2::before {
	display: none;
}

.vm-team-grid--pair {
	grid-template-columns: repeat(auto-fit, minmax(23rem, 1fr));
}

/* Contacts page: team on the left, company details on the right, same line. */
body.vm-cvi:not(.home) .entry-content > .vm-contact-page {
	align-items: start;
	display: grid;
	gap: clamp(1.25rem, 2.5vw, 2.25rem);
	grid-template-areas: "team office";
	grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
}

body.vm-cvi .entry-content .vm-contact-page > .vm-contact-team {
	grid-area: team;
	margin-top: 0;
}

body.vm-cvi .entry-content .vm-contact-page > .vm-contact-office {
	grid-area: office;
	grid-template-columns: minmax(0, 1fr);
}

body.vm-cvi .entry-content .vm-contact-page .vm-contact-facts {
	grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
}

.vm-team-grid--six {
	grid-template-columns: repeat(auto-fill, minmax(22rem, 1fr));
}

/* Certificates: one centred grid, four cards per row. */
body.vm-cvi .entry-content .vm-cert-grid {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	list-style: none;
	margin: 10px auto 0 !important;
	max-width: 76rem;
	padding: 0 var(--vm-gutter);
}

.vm-cert-grid__item {
	display: flex;
	min-width: 0;
}

body.vm-cvi .entry-content .vm-cert-grid__link {
	align-items: center;
	background: var(--vm-white);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius);
	color: var(--vm-black) !important;
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.85rem;
	justify-content: flex-start;
	padding: 1.25rem 1rem;
	text-align: center;
	text-decoration: none !important;
	transition: border-color 0.2s ease, transform 0.2s ease;
}

body.vm-cvi .entry-content .vm-cert-grid__link:hover {
	border-color: var(--vm-turquoise);
	transform: translateY(-2px);
}

.vm-cert-grid__thumb {
	align-items: center;
	background: var(--vm-paper);
	border-radius: var(--vm-radius-sm);
	display: flex;
	height: 11rem;
	justify-content: center;
	padding: 0.65rem;
	width: 100%;
}

body.vm-cvi .entry-content .vm-cert-grid__thumb img {
	border: 0;
	border-radius: 0;
	display: block;
	height: 100%;
	max-width: 100%;
	object-fit: contain;
	width: auto;
}

.vm-cert-grid__label {
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.35;
}

/* Technology blog and other archives: readable header copy over the hero and
 * three clearly separated cards. */
body.vm-cvi.archive .ast-archive-description,
body.vm-cvi.search .ast-archive-description {
	background-color: transparent !important;
	background-image: linear-gradient(90deg, rgba(0, 30, 29, 0.94) 0%, rgba(0, 30, 29, 0.74) 55%, rgba(0, 30, 29, 0.3) 100%), var(--vm-page-hero-image, none) !important;
	justify-content: flex-end;
}

body.vm-cvi.archive .ast-archive-description p,
body.vm-cvi.search .ast-archive-description p {
	color: rgba(255, 255, 255, 0.88) !important;
	font-size: clamp(1rem, 1.5vw, 1.2rem);
	line-height: 1.5;
	margin: 0.85rem 0 0;
	max-width: 62ch;
	position: relative;
	z-index: 1;
}

body.vm-cvi.archive .site-main,
body.vm-cvi.search .site-main {
	align-items: stretch;
}

body.vm-cvi.archive article.ast-article-post,
body.vm-cvi.search article.ast-article-post {
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	position: relative;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

body.vm-cvi.archive article.ast-article-post:hover,
body.vm-cvi.search article.ast-article-post:hover {
	border-color: var(--vm-turquoise);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.09);
	transform: translateY(-2px);
}

body.vm-cvi.archive .ast-article-inner .entry-title,
body.vm-cvi.search .ast-article-inner .entry-title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}

body.vm-cvi.archive .ast-excerpt-container,
body.vm-cvi.search .ast-excerpt-container {
	margin-top: 0.85rem;
}

body.vm-cvi.archive .ast-excerpt-container p,
body.vm-cvi.search .ast-excerpt-container p {
	color: var(--vm-graphite);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	line-height: 1.55;
	margin: 0;
	overflow: hidden;
}

@media (max-width: 1100px) {
	body.vm-cvi .entry-content .vm-copy__facts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.vm-cvi:not(.home) .entry-content > .vm-contact-page {
		grid-template-areas: "office" "team";
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 921px) {
	.vm-cert--marks {
		grid-template-columns: minmax(0, 1fr);
	}

	body.vm-cvi .entry-content .vm-copy__points {
		grid-template-columns: minmax(0, 1fr);
	}

	body.vm-cvi .entry-content .vm-cert-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	body.vm-cvi .entry-content .vm-copy__facts,
	body.vm-cvi .entry-content .vm-cert-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.vm-cert-grid__thumb {
		height: 13rem;
	}
}

/* Kevin 2026-09-15: no "EST. 1997" datum line over any hero, including the
 * translated homepage heroes where it lives in the stored content. */
body.vm-cvi .entry-content .vm-datum,
.vm-hero .vm-datum {
	display: none;
}

/* Kevin 2026-09-15: the imported Sustainability page showed its funding logos
 * and photos at full page width. Cap them to a readable, centred size. */
body.vm-group-sustainability .entry-content .sppb-addon-single-image-container img,
body.vm-group-sustainability .entry-content .vm-sustainability-picture {
	display: block;
	margin-inline: auto;
	max-width: 40rem;
}

body.vm-group-sustainability .entry-content img[src*="kaksiklogod"],
body.vm-group-sustainability .entry-content img[src*="1022-574-max"] {
	max-width: 22rem;
}

body.vm-group-sustainability .entry-content .sppb-addon-content > p,
body.vm-group-sustainability .entry-content .sppb-addon-title {
	margin-inline: auto;
	max-width: var(--vm-reading);
}

body.vm-group-sustainability .entry-content .sppb-addon-single-image,
body.vm-group-sustainability .entry-content .sppb-addon-single-image .sppb-addon-content,
body.vm-group-sustainability .entry-content .sppb-addon-single-image-container {
	margin-inline: auto;
	text-align: center;
}

body.vm-group-sustainability .entry-content .sppb-addon-wrapper.addon-root-image {
	text-align: center;
}

/* Astra caps archive headers at 1200 px in its inline CSS; like every other
 * page header, the archive hero runs the full content width. */
body.vm-cvi.archive .ast-archive-description,
body.vm-cvi.search .ast-archive-description {
	max-width: none;
}

/* Kevin 2026-09-16: product listings as a three-column card grid — product
 * image left; category, title, short description and an arrow right. */
body.vm-cvi .vm-product-grid,
body.vm-cvi.archive .site-main.vm-product-grid {
	align-items: stretch;
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

body.vm-cvi.archive .site-main.vm-product-grid {
	padding-top: 10px;
}

body.vm-cvi .vm-product-card {
	align-items: stretch;
	background: var(--vm-white);
	border: 1px solid var(--vm-grey);
	border-radius: var(--vm-radius-lg);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
	display: grid;
	gap: 1.1rem;
	grid-template-columns: minmax(0, 30%) minmax(0, 1fr);
	margin: 0;
	min-width: 0;
	padding: 10px;
	position: relative;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

body.vm-cvi .vm-product-card--no-image {
	grid-template-columns: minmax(0, 1fr);
}

body.vm-cvi .vm-product-card:hover {
	border-color: var(--vm-turquoise);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.09);
	transform: translateY(-2px);
}

body.vm-cvi .vm-product-card:focus-within {
	outline: 2px solid var(--vm-deep-sea);
	outline-offset: 2px;
}

/* At least square, never wider than its column: with both axes stretched the
 * ratio only sets the row's minimum height. */
.vm-product-card__media {
	align-items: center;
	align-self: stretch;
	aspect-ratio: 1 / 1;
	background: var(--vm-paper);
	border-radius: var(--vm-radius);
	display: flex;
	justify-content: center;
	justify-self: stretch;
	min-width: 0;
	overflow: hidden;
	padding: 0.5rem;
}

body.vm-cvi .vm-product-card__media img {
	border: 0;
	border-radius: 0;
	display: block;
	height: 100%;
	max-width: 100%;
	object-fit: contain;
	width: 100%;
}

.vm-product-card__body {
	align-content: start;
	column-gap: 0.75rem;
	display: grid;
	grid-template-areas:
		"category category"
		"title title"
		"summary arrow";
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-rows: auto auto 1fr;
	min-width: 0;
	padding: 0.65rem 0.4rem 0.4rem 0;
}

body.vm-cvi .vm-product-card__category {
	align-self: start;
	background: rgba(62, 205, 191, 0.16);
	border-radius: var(--vm-radius-sm);
	color: var(--vm-dark-teal);
	font-family: var(--vm-font-mono);
	font-size: 0.66rem;
	font-weight: 600;
	grid-area: category;
	justify-self: start;
	letter-spacing: 0.06em;
	line-height: 1.25;
	margin: 0 0 0.75rem;
	max-width: 100%;
	padding: 0.4rem 0.65rem;
	text-transform: uppercase;
}

/* Product names stay whole and unhyphenated: "groov" and "shelf" variants
 * differ only at the end. */
body.vm-cvi .vm-product-card__title {
	color: var(--vm-black);
	font-size: clamp(1.05rem, 1.3vw, 1.25rem);
	grid-area: title;
	hyphens: manual;
	letter-spacing: -0.01em;
	line-height: 1.25;
	margin: 0 0 0.5rem;
}

body.vm-cvi .vm-product-card__title a {
	color: inherit;
	text-decoration: none;
}

body.vm-cvi .vm-product-card__title a:focus {
	outline: 0;
}

/* The title link covers the whole card: image, text and arrow. */
body.vm-cvi .vm-product-card__title a::after {
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

/* Clamped text keeps its own height; a stretched grid item would show the
 * lines after the ellipsis. */
body.vm-cvi .vm-product-card__summary {
	align-self: start;
	-webkit-box-orient: vertical;
	color: var(--vm-graphite);
	display: -webkit-box;
	font-size: 0.88rem;
	grid-area: summary;
	-webkit-line-clamp: 3;
	line-height: 1.5;
	margin: 0;
	overflow: hidden;
}

.vm-product-card__arrow {
	align-items: center;
	align-self: end;
	border: 1.5px solid var(--vm-turquoise);
	border-radius: 50%;
	color: var(--vm-deep-sea);
	display: inline-flex;
	grid-area: arrow;
	height: 2.25rem;
	justify-content: center;
	transition: background-color 0.2s ease, color 0.2s ease;
	width: 2.25rem;
}

.vm-product-card__arrow svg {
	display: block;
}

body.vm-cvi .vm-product-card:hover .vm-product-card__arrow {
	background: var(--vm-turquoise);
	color: var(--vm-black);
}

@media (max-width: 1180px) {
	body.vm-cvi .vm-product-grid,
	body.vm-cvi.archive .site-main.vm-product-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	body.vm-cvi .vm-product-grid,
	body.vm-cvi.archive .site-main.vm-product-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	body.vm-cvi .vm-product-card {
		gap: 0.85rem;
		grid-template-columns: minmax(0, 32%) minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	body.vm-cvi .vm-product-card,
	.vm-product-card__arrow {
		transition: none;
	}

	body.vm-cvi .vm-product-card:hover {
		transform: none;
	}
}

/* Kevin 2026-09-17: product pages have no hero and no key-point strip. Photo
 * (1:1) left, technical data table right, documents below. */
body.vm-cvi.vm-product-single article.ast-article-single > .entry-header,
body.vm-cvi.vm-product-single article.ast-article-single > [class*="ast-post-format-"] > .entry-header {
	display: none !important;
}

.vm-product {
	background: var(--vm-white);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius-lg);
	margin: 10px 0 0 !important;
	padding: clamp(1.25rem, 3vw, 2.75rem);
}

.vm-product__top {
	align-items: start;
	display: grid;
	gap: clamp(1.5rem, 3vw, 3rem);
	grid-template-columns: minmax(0, 36%) minmax(0, 1fr);
}

.vm-product--no-image .vm-product__top {
	grid-template-columns: minmax(0, 1fr);
}

body.vm-cvi .entry-content .vm-product__media {
	aspect-ratio: 1 / 1;
	background: var(--vm-paper);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius);
	margin: 0;
	overflow: hidden;
	padding: 0.75rem;
}

.vm-product__zoom {
	display: block;
	height: 100%;
	position: relative;
}

body.vm-cvi .entry-content .vm-product__media img {
	border: 0;
	border-radius: calc(var(--vm-radius) - 4px);
	display: block;
	height: 100%;
	max-width: none;
	object-fit: contain;
	width: 100%;
}

.vm-product__zoom-icon {
	align-items: center;
	background: var(--vm-white);
	border-radius: 50%;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.14);
	color: var(--vm-dark-teal);
	display: inline-flex;
	height: 2.5rem;
	justify-content: center;
	position: absolute;
	right: 0.6rem;
	top: 0.6rem;
	transition: background-color 0.2s ease;
	width: 2.5rem;
}

.vm-product__zoom:hover .vm-product__zoom-icon,
.vm-product__zoom:focus-visible .vm-product__zoom-icon {
	background: var(--vm-turquoise);
}

body.vm-cvi .entry-content .vm-product__category {
	color: var(--vm-graphite);
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.3;
	margin: 0.35rem 0 0.6rem;
	text-transform: uppercase;
}

body.vm-cvi .entry-content .vm-product__title {
	color: var(--vm-black);
	font-size: clamp(1.8rem, 2.9vw, 2.7rem);
	hyphens: manual;
	letter-spacing: -0.03em;
	line-height: 1.1;
	margin: 0 0 clamp(1.25rem, 2.2vw, 1.75rem);
	padding: 0;
}

body.vm-cvi .entry-content .vm-product__title::before {
	display: none;
}

body.vm-cvi .entry-content table.vm-product__specs {
	border: 1px solid var(--vm-line);
	border-collapse: separate;
	border-radius: var(--vm-radius-sm);
	border-spacing: 0;
	margin: 0;
	overflow: hidden;
	width: 100%;
}

body.vm-cvi .entry-content table.vm-product__specs th,
body.vm-cvi .entry-content table.vm-product__specs td {
	border: 0;
	border-bottom: 1px solid var(--vm-line);
	font-size: 0.95rem;
	letter-spacing: 0;
	line-height: 1.45;
	padding: 0.95rem 1.25rem;
	text-align: left;
	text-transform: none;
	vertical-align: top;
}

body.vm-cvi .entry-content table.vm-product__specs th {
	background: var(--vm-paper);
	border-right: 1px solid var(--vm-line);
	color: var(--vm-graphite);
	font-weight: 500;
	width: 38%;
}

body.vm-cvi .entry-content table.vm-product__specs td {
	background: var(--vm-white);
	color: var(--vm-black);
	font-weight: 650;
}

body.vm-cvi .entry-content table.vm-product__specs tr:last-child th,
body.vm-cvi .entry-content table.vm-product__specs tr:last-child td {
	border-bottom: 0;
}

body.vm-cvi .entry-content .vm-product__note {
	align-items: flex-start;
	background: var(--vm-paper);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius-sm);
	color: var(--vm-graphite);
	display: flex;
	font-size: 0.86rem;
	gap: 0.65rem;
	line-height: 1.5;
	margin: 1rem 0 0;
	padding: 0.85rem 1rem;
}

.vm-product__note svg {
	color: var(--vm-dark-teal);
	flex: 0 0 auto;
	margin-top: 0.1rem;
}

.vm-product__lower {
	display: grid;
	gap: clamp(1.5rem, 3vw, 3rem);
	grid-template-columns: minmax(0, 1fr);
	margin-top: clamp(2rem, 4vw, 3rem);
}

.vm-product__lower--split {
	grid-template-columns: minmax(0, 36%) minmax(0, 1fr);
}

.vm-product__main > .vm-product__documents {
	margin-top: 0.25rem;
}

body.vm-cvi .entry-content .vm-product h2 {
	color: var(--vm-black);
	font-size: clamp(1.3rem, 1.9vw, 1.65rem);
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin: 0 0 1rem;
	padding: 0;
}

body.vm-cvi .entry-content .vm-product h2::before {
	display: none;
}

body.vm-cvi .entry-content .vm-product-docs {
	display: grid;
	gap: 0.6rem;
	list-style: none;
	margin: 0;
	max-width: 36rem;
	padding: 0;
}

body.vm-cvi .entry-content .vm-product-doc {
	margin: 0;
	padding: 0;
}

body.vm-cvi .entry-content .vm-product-doc a {
	align-items: center;
	background: var(--vm-white);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius-sm);
	color: var(--vm-black) !important;
	display: grid;
	gap: 0.85rem;
	grid-template-columns: auto minmax(0, 1fr) auto auto;
	padding: 0.85rem 1rem;
	text-decoration: none !important;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

body.vm-cvi .entry-content .vm-product-doc a:hover,
body.vm-cvi .entry-content .vm-product-doc a:focus-visible {
	border-color: var(--vm-turquoise);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.07);
}

.vm-product-doc__icon {
	color: var(--vm-graphite);
	display: inline-flex;
}

.vm-product-doc__label {
	font-size: 0.92rem;
	font-weight: 650;
	line-height: 1.35;
	min-width: 0;
	overflow-wrap: anywhere;
}

.vm-product-doc__type {
	background: var(--vm-paper);
	border-radius: 4px;
	color: var(--vm-graphite);
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	padding: 0.2rem 0.4rem;
}

.vm-product-doc__action {
	align-items: center;
	color: var(--vm-dark-teal);
	display: inline-flex;
	font-size: 0.88rem;
	font-weight: 600;
	gap: 0.4rem;
	white-space: nowrap;
}

body.vm-cvi .entry-content .vm-product__description p {
	color: var(--vm-graphite);
	font-size: 1rem;
	line-height: 1.65;
	margin: 0 0 1rem;
	max-width: 72ch;
	text-align: left;
}

body.vm-cvi .entry-content .vm-product__description p:last-child {
	margin-bottom: 0;
}

.vm-product__gallery {
	border-top: 1px solid var(--vm-line);
	margin-top: clamp(2rem, 4vw, 3rem);
	padding-top: clamp(1.5rem, 3vw, 2.25rem);
}

body.vm-cvi .entry-content .vm-product__gallery ul {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

body.vm-cvi .entry-content .vm-product__gallery li {
	margin: 0;
	padding: 0;
}

body.vm-cvi .entry-content .vm-product__gallery a {
	align-items: center;
	background: var(--vm-white);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius);
	display: flex;
	height: 13rem;
	justify-content: center;
	min-width: 13rem;
	padding: 0.75rem;
	transition: border-color 0.2s ease;
}

body.vm-cvi .entry-content .vm-product__gallery a:hover,
body.vm-cvi .entry-content .vm-product__gallery a:focus-visible {
	border-color: var(--vm-turquoise);
}

body.vm-cvi .entry-content .vm-product__gallery img {
	border: 0;
	border-radius: 0;
	display: block;
	height: auto;
	max-height: 100%;
	max-width: min(100%, 22rem);
	object-fit: contain;
	width: auto;
}

@media (max-width: 921px) {
	.vm-product__top,
	.vm-product__lower--split {
		grid-template-columns: minmax(0, 1fr);
	}

	body.vm-cvi .entry-content .vm-product__media {
		margin-inline: auto;
		max-width: 30rem;
		width: 100%;
	}
}

@media (max-width: 560px) {
	body.vm-cvi .entry-content table.vm-product__specs th,
	body.vm-cvi .entry-content table.vm-product__specs td {
		padding: 0.75rem 0.85rem;
	}

	body.vm-cvi .entry-content table.vm-product__specs th {
		width: 42%;
	}

	body.vm-cvi .entry-content .vm-product-doc a {
		grid-template-columns: auto minmax(0, 1fr) auto;
	}

	.vm-product-doc__type {
		display: none;
	}

	body.vm-cvi .entry-content .vm-product__gallery a {
		min-width: 0;
		width: 100%;
	}
}

/* Kevin 2026-09-17: copy blocks (Company, Sustainability, Quality commitment
 * and the imported project texts) are centred — headings, paragraphs, lists. */
.vm-copy__inner {
	text-align: center;
}

body.vm-cvi .entry-content .vm-copy__inner > p,
body.vm-cvi .entry-content .vm-copy__intro-text > p {
	margin-inline: auto !important;
}

body.vm-cvi .entry-content .vm-copy__intro-text > p:not(.vm-copy__lead) {
	color: var(--vm-graphite);
	font-size: 1.05rem;
	line-height: 1.65;
	margin-bottom: 1.15rem !important;
	max-width: 68ch;
}

body.vm-cvi .entry-content .vm-copy__list {
	justify-items: center;
	margin-inline: auto !important;
}

body.vm-cvi .entry-content .vm-copy__list li {
	padding-left: 0;
}

body.vm-cvi .entry-content .vm-copy__list li::before {
	display: inline-block;
	left: auto;
	margin-right: 0.7rem;
	position: relative;
	top: -0.08rem;
	vertical-align: middle;
}

body.vm-cvi .entry-content .vm-copy__points li,
body.vm-cvi .entry-content .vm-copy__facts li {
	align-items: center;
	text-align: center;
}

/* Pictures beside the first text block. */
.vm-copy__intro {
	align-items: center;
	display: grid;
	gap: clamp(1.5rem, 3vw, 3rem);
	grid-template-columns: minmax(0, 1fr) minmax(0, 46%);
}

/* The imported translations put their whole text in this row, so the
 * pictures start level with it instead of floating at mid-height. */
.vm-copy--imported .vm-copy__intro {
	align-items: start;
}

body.vm-cvi .entry-content .vm-copy__title {
	hyphens: manual;
	text-wrap: balance;
}

.vm-copy--with-media .vm-copy__inner {
	max-width: 76rem;
}

.vm-copy--with-media .vm-copy__inner > * {
	margin-inline: auto;
	max-width: 58rem;
}

.vm-copy--with-media .vm-copy__inner > .vm-copy__intro {
	max-width: none;
}

.vm-copy__intro-media {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.vm-cvi .entry-content .vm-copy__intro-media img {
	aspect-ratio: 5 / 4;
	border: 0;
	border-radius: var(--vm-radius);
	display: block;
	height: auto;
	max-width: none;
	object-fit: cover;
	width: 100%;
}

body.vm-cvi .entry-content .vm-copy__figure {
	margin: clamp(1.5rem, 3vw, 2.25rem) auto 0;
	text-align: center;
}

body.vm-cvi .entry-content .vm-copy__figure img,
body.vm-cvi .entry-content .vm-copy__figure picture {
	display: block;
	height: auto;
	margin-inline: auto;
	max-width: min(100%, 40rem);
}

body.vm-cvi .entry-content .vm-copy__figure img[src*="kaksiklogod"],
body.vm-cvi .entry-content .vm-copy__figure img[src*="1022-574-max"] {
	border: 0;
	border-radius: 0;
	max-width: min(100%, 22rem);
}

@media (max-width: 921px) {
	.vm-copy__intro {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Kevin 2026-09-17: the Sustainability hero shows the photograph only. The H1
 * stays in the document for search engines and screen readers. */
body.vm-cvi.vm-group-sustainability article.ast-article-single > .entry-header .entry-title {
	border: 0 !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute !important;
	white-space: nowrap !important;
	width: 1px !important;
}

/* Kevin 2026-09-17 (afternoon letters) ------------------------------------ */

/* Company, Quality commitment and Contacts heroes show the photograph only,
 * like Sustainability. The H1 stays in the document. */
body.vm-cvi.vm-group-about article.ast-article-single > .entry-header .entry-title,
body.vm-cvi.vm-group-quality article.ast-article-single > .entry-header .entry-title,
body.vm-cvi.vm-group-contacts article.ast-article-single > .entry-header .entry-title {
	border: 0 !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute !important;
	white-space: nowrap !important;
	width: 1px !important;
}

/* Company: heading, sentence and orange button stacked on the centre line of
 * the green block. */
body.vm-cvi.vm-group-about .vm-inline-rfq {
	grid-template-columns: minmax(0, 1fr);
	justify-items: center;
	text-align: center;
}

body.vm-cvi.vm-group-about .vm-inline-rfq__copy {
	max-width: 46rem;
}

body.vm-cvi.vm-group-about .vm-inline-rfq__actions {
	align-items: center;
	grid-column: 1;
	width: auto;
}

body.vm-cvi.vm-group-about .entry-content .vm-inline-rfq__actions > a {
	display: none;
}

/* Footer: 10 px above the logo. */
.vm-footer {
	padding-top: 10px;
}

/* Contacts: both blocks start and end on the same line and share the full
 * page width. */
@media (min-width: 1101px) {
	body.vm-cvi:not(.home) .entry-content > .vm-contact-page {
		align-items: stretch;
		grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
		max-width: none !important;
		width: 100%;
	}

	body.vm-cvi .entry-content .vm-contact-page > .vm-contact-office {
		align-content: start;
		height: 100%;
	}
}

/* Sustainability: the text column sits on the page centre line; the picture
 * stands left of it, level with the text and 10 px away. */
.vm-copy--with-media .vm-copy__inner {
	max-width: 88rem;
}

.vm-copy__intro {
	align-items: center;
	gap: 10px;
	grid-template-columns: minmax(0, 1fr) minmax(0, 42rem) minmax(0, 1fr);
}

.vm-copy__intro-media {
	grid-column: 1;
	grid-template-columns: minmax(0, 1fr);
	justify-self: end;
	max-width: 24rem;
	width: 100%;
}

.vm-copy__intro-text {
	grid-column: 2;
}

body.vm-cvi .entry-content .vm-copy__intro-text > p:last-child {
	margin-bottom: 0 !important;
}

.vm-copy__intro + * {
	margin-top: clamp(1.25rem, 2.5vw, 1.75rem) !important;
}

/* Two project texts side by side with a light divider. */
.vm-copy-pair {
	background: var(--vm-white);
	border: 1px solid var(--vm-line);
	border-radius: var(--vm-radius-lg);
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 10px 0 0 !important;
	overflow: hidden;
}

.vm-copy-pair > .vm-copy {
	border: 0;
	border-radius: 0;
	margin: 0 !important;
}

.vm-copy-pair > .vm-copy + .vm-copy {
	border-left: 1px solid var(--vm-line);
}

@media (max-width: 921px) {
	.vm-copy__intro {
		grid-template-columns: minmax(0, 1fr);
	}

	.vm-copy__intro-media,
	.vm-copy__intro-text {
		grid-column: 1;
	}

	.vm-copy__intro-media {
		justify-self: center;
	}

	.vm-copy-pair {
		grid-template-columns: minmax(0, 1fr);
	}

	.vm-copy-pair > .vm-copy + .vm-copy {
		border-left: 0;
		border-top: 1px solid var(--vm-line);
	}
}

/* Phone menu. Astra gives the menu link height: 100%; once a sub-menu opens
 * the link grew to the whole item and squeezed the sub-menu, so half of its
 * entries were cut off. The sub-menu stays black with white entries and the
 * menu button is larger with a black icon. */
@media (max-width: 921px) {
	body.vm-cvi .ast-builder-menu-mobile .main-navigation .main-header-menu .menu-item > .menu-link {
		height: auto !important;
	}

	body.vm-cvi .ast-builder-menu-mobile .main-navigation .main-header-menu .sub-menu {
		background: var(--vm-black) !important;
		border-left-color: var(--vm-turquoise) !important;
	}

	body.vm-cvi .ast-builder-menu-mobile .main-navigation .main-header-menu .sub-menu .menu-link {
		color: var(--vm-white) !important;
	}

	body.vm-cvi .menu-toggle.main-header-menu-toggle {
		height: 2.75rem !important;
		min-height: 2.75rem;
		min-width: 2.75rem;
		width: 2.75rem !important;
	}

	body.vm-cvi .menu-toggle.main-header-menu-toggle .ast-mobile-svg {
		fill: var(--vm-black) !important;
		height: 1.5rem;
		width: 1.5rem;
	}
}

/* Kevin 2026-09-17: with the picture row the block is wider than its text, so
 * sub-headings, lists and point grids kept their 0 side margins and slid left
 * of the page centre line. Every child is centred in the block. */
body.vm-cvi .entry-content .vm-copy--with-media .vm-copy__inner > :not(.vm-copy__intro) {
	margin-left: auto !important;
	margin-right: auto !important;
}

/* §31: the About page contact pointer uses the same panel grammar as the
   surrounding copy blocks. */
body.vm-cvi .vm-about-contact {
	background: var(--vm-paper);
	border-radius: var(--vm-radius-lg);
	margin-top: 10px;
	padding: clamp(1.35rem, 3vw, 2rem) clamp(1.35rem, 3.4vw, 3rem);
	text-align: center;
}

body.vm-cvi .entry-content .vm-about-contact p,
body.vm-cvi .vm-about-contact p {
	color: var(--vm-graphite);
	margin: 0 auto;
	max-width: 44rem;
}

/* §33: EU funding information is kept public but set apart from, and below,
   the sustainability narrative. */
body.vm-cvi .vm-eu-projects {
	margin-top: clamp(2.5rem, 5vw, 4rem);
}

body.vm-cvi .entry-content .vm-eu-projects__title,
body.vm-cvi .vm-eu-projects__title {
	border-top: 1px solid var(--vm-line);
	color: var(--vm-graphite);
	font-family: var(--vm-font-mono);
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	margin: 0 0 10px;
	padding: clamp(1.5rem, 3vw, 2.25rem) 0 0;
	text-align: center;
	text-transform: uppercase;
}

body.vm-cvi .entry-content .vm-eu-projects__title::before {
	display: none;
}

/* ==========================================================================
   Kevin 2026-09-22 — Phase 1 components, composed in Phase 1C.

   Spacing levels are kept separate (§16):
     · micro spacing    — inside a component
     · component spacing— between related items in a component
     · section spacing  — the padding inside a supporting section, which is what
                          produces the distance between one section and the next
     · panel gap        — the 10 px edge rhythm, used only where two deliberate
                          panels sit next to each other

   §15 / §27: the three supporting sections no longer sit in their own rounded
   panel. They live directly on the page canvas, so the homepage reads as one
   composition rather than a stack of cards. Image display ratios are unchanged
   throughout: the capability media stays 3:2 and the sector thumbnails stay 5:3,
   scaled proportionally in both dimensions (§3–§6).
   ========================================================================== */

:root {
	--vm-section-support: clamp(1.75rem, 2.4vw, 2.2rem);     /* 28–35 px */
	--vm-sector-thumb-h: clamp(4.125rem, 5.6vw, 5rem);       /* 66–80 px */
	/* Derived, so the 5:3 display ratio is exact at every width (§32). */
	--vm-sector-thumb-w: calc(var(--vm-sector-thumb-h) * 5 / 3);
}

/* --- Shared: quiet arrow link, same values as the hub's "all services" link */
body.vm-cvi .vm-link-arrow {
	color: var(--vm-turquoise);
	font-family: var(--vm-font-mono);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-decoration-color: var(--vm-turquoise);
	text-transform: uppercase;
}

/* --- §17–§18 Key-point strip: one compact credibility band --------------- */
body.vm-cvi.home .vm-page-values--home {
	--vm-keypoints-height: 7rem; /* 112 px */
}

body.vm-cvi .entry-content .vm-page-values--cols-4 ul,
.vm-page-values--cols-4 ul {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.vm-cvi .entry-content .vm-page-values--cols-3 ul,
.vm-page-values--cols-3 ul {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 899px) {
	body.vm-cvi .entry-content .vm-page-values--cols-4 ul,
	.vm-page-values--cols-4 ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 599px) {
	body.vm-cvi .entry-content .vm-page-values--cols-4 ul,
	.vm-page-values--cols-4 ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.vm-cvi .entry-content .vm-page-values--cols-3 ul,
	.vm-page-values--cols-3 ul {
		grid-template-columns: 1fr;
	}

	body.vm-cvi.home .vm-page-values--home ul,
	body.vm-cvi.home .entry-content .vm-page-values--home ul {
		height: auto;
	}

	body.vm-cvi .entry-content .vm-page-values--cols-4 li,
	.vm-page-values--cols-4 li {
		border-left: 1px solid var(--vm-line);
		border-top: 1px solid var(--vm-line);
		min-height: 0;
		padding: 0.8rem 0.9rem;
	}

	body.vm-cvi .entry-content .vm-page-values--cols-4 li:nth-child(-n+2),
	.vm-page-values--cols-4 li:nth-child(-n+2) {
		border-top: 0;
	}

	body.vm-cvi .entry-content .vm-page-values--cols-4 li:nth-child(odd),
	.vm-page-values--cols-4 li:nth-child(odd) {
		border-left: 0;
	}
}

/* --- Supporting sections live on the page canvas ------------------------- */
body.vm-cvi.home .entry-content > :is(.vm-home-integrated, .vm-home-sectors, .vm-home-cta) {
	margin-block: 0 !important;
}

body.vm-cvi.home .entry-content > :is(.vm-hero, .vm-page-values, .vm-home-features, .vm-why, .vm-sec, .vm-cta, .vm-home-integrated, .vm-home-sectors, .vm-home-cta)
	+ :is(.vm-home-integrated, .vm-home-sectors, .vm-home-cta) {
	margin-top: 0 !important;
}

/* The panel gap stays only where a panel actually sits next to something. */
body.vm-cvi.home .entry-content > :is(.vm-home-integrated, .vm-home-sectors, .vm-home-cta) + .vm-sec--quality {
	margin-top: 0 !important;
}

body.vm-cvi.home .vm-home-integrated,
body.vm-cvi.home .vm-home-sectors,
body.vm-cvi.home .vm-home-cta {
	background: transparent;
	border-radius: 0;
	color: var(--vm-white);
	overflow: visible;
	padding-block: 0;
}

body.vm-cvi.home .vm-home-integrated > .vm-wrap,
body.vm-cvi.home .vm-home-sectors > .vm-wrap,
body.vm-cvi.home .vm-home-cta > .vm-wrap {
	max-width: none;
	padding-block: var(--vm-section-support);
	padding-inline: clamp(1.25rem, 3.4vw, 3rem);
}

/* --- §23–§27 Integrated manufacturing ------------------------------------ */
body.vm-cvi.home .entry-content .vm-home-integrated__grid,
.vm-home-integrated__grid {
	align-items: center;
	display: grid;
	gap: clamp(1.5rem, 3.2vw, 2.75rem);
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); /* §25: 50 / 50 */
}

body.vm-cvi.home .entry-content .vm-home-integrated__eyebrow,
.vm-home-integrated__eyebrow {
	color: var(--vm-mint);
	margin: 0 0 0.45rem;
}

body.vm-cvi.home .vm-home-integrated h2,
body.vm-cvi.home .entry-content .vm-home-integrated h2 {
	color: var(--vm-white);
	font-size: clamp(1.35rem, 1.95vw, 1.75rem);
	line-height: 1.2;
	margin: 0 0 0.5rem;
	max-width: none;
	padding: 0;
}

body.vm-cvi.home .entry-content .vm-home-integrated h2::before {
	display: none;
}

body.vm-cvi.home .entry-content .vm-home-integrated__lead,
.vm-home-integrated__lead {
	color: var(--vm-grey);
	font-size: 0.95rem;
	line-height: 1.5;
	margin: 0 0 0.7rem;
	max-width: 34rem;
}

body.vm-cvi.home .entry-content .vm-home-integrated__actions,
.vm-home-integrated__actions {
	margin: 0;
}

/* §26: five technical labels, subordinate to the H2. */
body.vm-cvi.home .entry-content .vm-home-integrated__steps,
.vm-home-integrated__steps {
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	border-bottom: 1px solid rgba(255, 255, 255, 0.16);
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	max-width: none;
	padding: 0;
}

body.vm-cvi.home .entry-content .vm-home-integrated__steps li,
.vm-home-integrated__steps li {
	border-left: 1px solid rgba(255, 255, 255, 0.16);
	margin: 0;
	padding: 0.8rem 0.35rem;
	text-align: center;
}

body.vm-cvi.home .entry-content .vm-home-integrated__steps li:first-child,
.vm-home-integrated__steps li:first-child {
	border-left: 0;
}

.vm-home-integrated__steps .vm-mono {
	color: var(--vm-mint);
	font-size: 0.72rem;
	letter-spacing: 0.09em;
}

/* --- §28–§37 Sectors we serve -------------------------------------------- */
body.vm-cvi.home .vm-home-sectors .vm-sec-head {
	border-bottom: 0;
	display: block;
	margin-bottom: 1.15rem;
	padding-bottom: 0;
	text-align: center;
}

body.vm-cvi.home .vm-home-sectors .vm-sec-head h2,
body.vm-cvi.home .entry-content .vm-home-sectors .vm-sec-head h2 {
	color: var(--vm-white);
	font-size: clamp(1.35rem, 1.95vw, 1.75rem);
	margin-inline: auto;
}

body.vm-cvi.home .entry-content .vm-home-sectors__grid,
.vm-home-sectors__grid {
	display: grid;
	gap: 1.75rem;
	/* §33: the thumbnails keep their own proportions instead of being stretched
	   to the full grid width, so the six of them read as one compact band. */
	grid-template-columns: repeat(6, var(--vm-sector-thumb-w));
	justify-content: center;
	list-style: none;
	margin: 0;
	max-width: none;
	padding: 0;
}

body.vm-cvi.home .entry-content .vm-home-sectors__item,
.vm-home-sectors__item {
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	cursor: default;
	display: block;
	margin: 0;
	min-width: 0;
	padding: 0;
}

/* §32: the 5:3 display ratio established in Phase 1B is preserved; both
   dimensions are scaled down together. */
.vm-home-sectors__media {
	aspect-ratio: 5 / 3;
	border-radius: var(--vm-radius-sm);
	height: var(--vm-sector-thumb-h);
	margin: 0;
	overflow: hidden;
	width: 100%;
}

body.vm-cvi .vm-home-sectors__media img,
body.vm-cvi .entry-content .vm-home-sectors__media img {
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: none;
	width: 100%;
}

.vm-home-sectors__name {
	color: rgba(255, 255, 255, 0.86);
	display: block;
	font-family: var(--vm-font-mono);
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.25;
	margin-top: 0.5rem;
	text-align: center;
	text-transform: uppercase;
}

/* --- §44–§45 Closing action band ----------------------------------------- */
body.vm-cvi.home .vm-home-cta > .vm-wrap {
	padding-block: clamp(2.25rem, 3.4vw, 3.15rem);
}

body.vm-cvi.home .entry-content .vm-home-cta__grid,
.vm-home-cta__grid {
	align-items: center;
	display: grid;
	gap: clamp(1.25rem, 3vw, 2.5rem);
	grid-template-columns: minmax(0, 1fr) auto;
}

body.vm-cvi.home .vm-home-cta h2,
body.vm-cvi.home .entry-content .vm-home-cta h2 {
	color: var(--vm-white);
	font-size: clamp(1.5rem, 2.2vw, 2rem);
	line-height: 1.15;
	margin: 0 0 0.4rem;
	padding: 0;
}

body.vm-cvi.home .entry-content .vm-home-cta h2::before {
	display: none;
}

body.vm-cvi.home .entry-content .vm-home-cta__lead,
.vm-home-cta__lead {
	color: var(--vm-grey);
	font-size: 0.95rem;
	line-height: 1.5;
	margin: 0;
	max-width: 36rem;
}

body.vm-cvi.home .entry-content .vm-home-cta__actions,
.vm-home-cta__actions {
	margin: 0;
}

/* --- §52–§54 Landing page: compact capability overview ------------------- */
@media (min-width: 1200px) {
	.vm-hub--services .vm-hub-card-grid:not(.vm-hub-card-grid--solutions) {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

body.vm-cvi .vm-hub--services .vm-hub-card__link {
	min-height: 0;
	padding: 0.95rem 1.1rem;
}

/* §53: the card is shortened by removing spacing, not by shrinking the type.
   These cards carry no imagery, so no display ratio is involved. */
body.vm-cvi .vm-hub--services .vm-hub-card__number {
	margin: 0 0 0.5rem;
}

body.vm-cvi .vm-hub--services .vm-hub-card__link h3 {
	margin-bottom: 0.5rem;
}

body.vm-cvi .vm-hub--services .vm-hub-card__link p {
	margin-bottom: 0.65rem;
}

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

body.vm-cvi .vm-hub-card--solution .vm-hub-card__link {
	min-height: 0;
}

/* --- Responsive ---------------------------------------------------------- */
@media (max-width: 1199px) {
	body.vm-cvi.home .entry-content .vm-home-sectors__grid,
	.vm-home-sectors__grid {
		grid-template-columns: repeat(3, var(--vm-sector-thumb-w));
		justify-content: center;
	}
}

@media (max-width: 921px) {
	body.vm-cvi.home .entry-content .vm-home-integrated__grid,
	.vm-home-integrated__grid {
		gap: clamp(1.1rem, 3vw, 1.75rem);
		grid-template-columns: 1fr;
	}

	body.vm-cvi.home .entry-content .vm-home-cta__grid,
	.vm-home-cta__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 700px) {
	body.vm-cvi.home .vm-home-integrated > .vm-wrap,
	body.vm-cvi.home .vm-home-sectors > .vm-wrap,
	body.vm-cvi.home .vm-home-cta > .vm-wrap {
		padding-inline: clamp(1.1rem, 4vw, 1.6rem);
	}

	body.vm-cvi.home .entry-content .vm-home-integrated__steps,
	.vm-home-integrated__steps {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	body.vm-cvi.home .entry-content .vm-home-integrated__steps li,
	.vm-home-integrated__steps li {
		padding: 0.65rem 0.3rem;
	}

	body.vm-cvi.home .entry-content .vm-home-integrated__steps li:nth-child(4),
	.vm-home-integrated__steps li:nth-child(4) {
		border-left: 0;
	}

	body.vm-cvi.home .entry-content .vm-home-integrated__steps li:nth-child(n+4),
	.vm-home-integrated__steps li:nth-child(n+4) {
		border-top: 1px solid rgba(255, 255, 255, 0.16);
	}

	.vm-hub-card-grid--solutions {
		grid-template-columns: 1fr;
	}
}

/* §41: 2 × 3 on a phone, with the 5:3 ratio kept and both dimensions scaled. */
@media (max-width: 479px) {
	:root {
		/* §41: the same 5:3 display ratio, scaled down in both dimensions. Set in
		   px because the root font-size is reduced at this width; the width is
		   derived from it, so the ratio stays exact. */
		--vm-sector-thumb-h: 66px;
		--vm-section-support: 1.25rem; /* §52: compact supporting sections */
	}

	body.vm-cvi.home .entry-content .vm-home-sectors__grid,
	.vm-home-sectors__grid {
		gap: 0.5rem 0.9rem;
		grid-template-columns: repeat(2, var(--vm-sector-thumb-w));
		justify-content: center;
	}

	body.vm-cvi.home .vm-home-sectors .vm-sec-head {
		margin-bottom: 0.85rem;
	}

	body.vm-cvi.home .vm-home-cta > .vm-wrap {
		padding-block: 1.75rem;
	}

	.vm-home-sectors__name {
		font-size: 0.78rem;
		margin-top: 0.35rem;
	}
}

/* ==========================================================================
   Kevin 2026-09-22 — Phase 2: products catalogue.
   The catalogue reuses the existing card, table, label and link language. No
   new component system, no ecommerce affordances.
   ========================================================================== */

/* §12: one family after another on the products landing page. Astra turns
   .site-main into its own blog grid, so this states the block layout with the
   same specificity the existing product grid uses. */
body.vm-cvi .vm-product-families,
body.vm-cvi.archive .site-main.vm-product-families {
	display: block;
	grid-template-columns: none;
}

.vm-product-family + .vm-product-family {
	margin-top: clamp(2.25rem, 4vw, 3.5rem);
}

.vm-product-family__head {
	align-items: baseline;
	border-bottom: 1px solid var(--vm-line);
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	justify-content: space-between;
	margin-bottom: clamp(1rem, 2vw, 1.5rem);
	padding-bottom: 0.7rem;
}

body.vm-cvi .vm-product-family__title,
body.vm-cvi .entry-content .vm-product-family__title {
	font-size: clamp(1.25rem, 2vw, 1.6rem);
	margin: 0;
	padding: 0;
}

body.vm-cvi .entry-content .vm-product-family__title::before {
	display: none;
}

body.vm-cvi .entry-content .vm-product-grid__list,
.vm-product-grid__list {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	max-width: none;
	padding: 0;
}

body.vm-cvi .entry-content .vm-product-grid__list > li,
.vm-product-grid__list > li {
	margin: 0;
	min-width: 0;
}

/* §23–§24: a restrained industrial specification table. */
.vm-product--catalogue .vm-product__top {
	column-gap: clamp(1.5rem, 3vw, 3rem);
	grid-template-areas: 'media heading' 'media data';
	grid-template-columns: minmax(0, 46%) minmax(0, 1fr);
	grid-template-rows: auto 1fr;
	row-gap: 0;
}

.vm-product--catalogue .vm-product__heading {
	grid-area: heading;
	min-width: 0;
}

.vm-product--catalogue .vm-product__media {
	grid-area: media;
}

.vm-product--catalogue .vm-product__main {
	grid-area: data;
	min-width: 0;
}

.vm-product--catalogue.vm-product--no-image .vm-product__top {
	grid-template-areas: 'heading' 'data';
	grid-template-columns: minmax(0, 1fr);
}

.vm-product__specs-wrap {
	margin-top: clamp(1rem, 2vw, 1.5rem);
}

body.vm-cvi .vm-product__specs-title,
body.vm-cvi .entry-content .vm-product__specs-title {
	font-family: var(--vm-font-mono);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	margin: 0 0 0.6rem;
	padding: 0;
	text-transform: uppercase;
}

body.vm-cvi .entry-content .vm-product__specs-title::before {
	display: none;
}

body.vm-cvi .vm-product__specs,
body.vm-cvi .entry-content .vm-product__specs {
	border-collapse: collapse;
	margin: 0;
	table-layout: fixed;
	width: 100%;
}

body.vm-cvi .vm-product__specs th,
body.vm-cvi .vm-product__specs td,
body.vm-cvi .entry-content .vm-product__specs th,
body.vm-cvi .entry-content .vm-product__specs td {
	border: 0;
	border-top: 1px solid var(--vm-line);
	font-size: 0.9rem;
	line-height: 1.45;
	padding: 0.6rem 0.75rem 0.6rem 0;
	text-align: left;
	vertical-align: top;
}

body.vm-cvi .vm-product__specs tr:first-child th,
body.vm-cvi .vm-product__specs tr:first-child td {
	border-top: 0;
}

body.vm-cvi .vm-product__specs th,
body.vm-cvi .entry-content .vm-product__specs th {
	color: var(--vm-graphite);
	font-weight: 500;
	width: 42%;
}

body.vm-cvi .vm-product__specs td,
body.vm-cvi .entry-content .vm-product__specs td {
	color: var(--vm-black);
	font-weight: 500;
}

/* §32: an empty value is simply an empty cell — no highlight, no collapse. */
body.vm-cvi .vm-product__specs td:empty::after {
	content: '';
	display: inline-block;
}

/* §21: quiet breadcrumb above the product name. */
.vm-product__crumbs {
	color: var(--vm-graphite);
	font-family: var(--vm-font-mono);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	margin-bottom: 0.5rem;
	text-transform: uppercase;
}

body.vm-cvi .vm-product__crumbs a {
	color: var(--vm-deep-sea);
	text-decoration-color: var(--vm-turquoise);
}

/* §41: one restrained enquiry block at the foot of a product page. */
.vm-product__cta {
	border-top: 1px solid var(--vm-line);
	margin-top: clamp(1.75rem, 3.5vw, 2.75rem);
	padding-top: clamp(1.25rem, 2.5vw, 1.85rem);
}

body.vm-cvi .vm-product__cta h2,
body.vm-cvi .entry-content .vm-product__cta h2 {
	font-size: clamp(1.15rem, 1.8vw, 1.45rem);
	margin: 0 0 0.4rem;
	padding: 0;
}

body.vm-cvi .entry-content .vm-product__cta h2::before {
	display: none;
}

body.vm-cvi .entry-content .vm-product__cta-lead,
.vm-product__cta-lead {
	color: var(--vm-graphite);
	margin: 0 0 1rem;
	max-width: 42rem;
}

body.vm-cvi .entry-content .vm-product__cta-actions,
.vm-product__cta-actions {
	margin: 0;
}

/* §49: the product grid stays readable rather than forcing four columns. */
@media (max-width: 1199px) {
	body.vm-cvi .entry-content .vm-product-grid__list,
	.vm-product-grid__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 921px) {
	.vm-product--catalogue .vm-product__top {
		grid-template-areas: 'heading' 'media' 'data';
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto;
		row-gap: 1.25rem;
	}

	body.vm-cvi .entry-content .vm-product-grid__list,
	.vm-product-grid__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* §48: the label/value relationship is kept on a phone; the table is not
   turned into decorative cards and nothing is truncated. */
@media (max-width: 600px) {
	body.vm-cvi .vm-product__specs th,
	body.vm-cvi .entry-content .vm-product__specs th {
		width: 44%;
	}

	body.vm-cvi .vm-product__specs th,
	body.vm-cvi .vm-product__specs td,
	body.vm-cvi .entry-content .vm-product__specs th,
	body.vm-cvi .entry-content .vm-product__specs td {
		font-size: 0.86rem;
		padding: 0.55rem 0.5rem 0.55rem 0;
	}
}

@media (max-width: 479px) {
	body.vm-cvi .entry-content .vm-product-grid__list,
	.vm-product-grid__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	/* Long technical names remain readable on the English catalogue. */
	html[lang^="en"] body.vm-cvi .vm-product-grid__list,
	html[lang^="en"] body.vm-cvi.archive .site-main.vm-product-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Phase 1E, Kevin 2026-09-22: roles are scoped to the English site.
   The homepage hero, facts, five 50/50 capability rows, sectors and quality
   panel intentionally inherit their approved Phase 1D rules unchanged. */
body.vm-cvi.vm-lang-en {
	--vm-type-page: clamp(34px, 3.75vw, 54px);
	--vm-type-section: clamp(28px, 2.8vw, 40px);
	--vm-type-subsection: clamp(22px, 1.85vw, 26px);
	--vm-type-body: clamp(16px, 1.2vw, 17px);
	--vm-type-lead: clamp(18px, 1.4vw, 20px);
}

/* A: one centered message, process row and link, in reading order. */
body.vm-cvi.vm-lang-en.home .vm-home-integrated > .vm-wrap {
	padding-block: 30px;
}
body.vm-cvi.vm-lang-en.home .entry-content .vm-home-integrated__grid {
	gap: 8px;
	grid-template-columns: minmax(0, 1fr);
	justify-items: center;
	margin-inline: auto;
	max-width: 850px;
	text-align: center;
}
body.vm-cvi.vm-lang-en.home .entry-content .vm-home-integrated__eyebrow {
	font-size: 12px;
	line-height: 16px;
	margin-bottom: 6px;
}
body.vm-cvi.vm-lang-en.home .entry-content .vm-home-integrated h2 {
	font-size: clamp(27px, 2.4vw, 34px);
	line-height: 1.12;
	margin-bottom: 6px;
}
body.vm-cvi.vm-lang-en.home .entry-content .vm-home-integrated__lead {
	font-size: 16px;
	line-height: 1.5;
	margin: 0 auto;
	max-width: 680px;
}
body.vm-cvi.vm-lang-en.home .entry-content .vm-home-integrated__steps {
	border: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 24px;
	justify-content: center;
	max-width: 760px;
}
body.vm-cvi.vm-lang-en.home .entry-content .vm-home-integrated__steps li {
	border: 0;
	padding: 0;
}
body.vm-cvi.vm-lang-en.home .vm-home-integrated__steps .vm-mono {
	font-size: 13px;
	line-height: 20px;
}
body.vm-cvi.vm-lang-en.home .vm-home-integrated__actions .vm-link-arrow {
	font-size: 13px;
	line-height: 20px;
}

/* A: compact closing CTA; footer utilities are not part of this rule. */
body.vm-cvi.vm-lang-en.home .vm-home-cta > .vm-wrap {
	padding-block: 22px;
}
body.vm-cvi.vm-lang-en.home .entry-content .vm-home-cta__grid {
	gap: 14px;
	grid-template-columns: minmax(0, 1fr);
	justify-items: center;
	margin-inline: auto;
	max-width: 740px;
	text-align: center;
}
body.vm-cvi.vm-lang-en.home .entry-content .vm-home-cta h2 {
	font-size: clamp(28px, 2.4vw, 34px);
	line-height: 1.12;
	margin-bottom: 7px;
}
body.vm-cvi.vm-lang-en.home .entry-content .vm-home-cta__lead {
	font-size: 17px;
	line-height: 1.5;
	margin-inline: auto;
	max-width: 680px;
}
body.vm-cvi.vm-lang-en.home .vm-home-cta__actions {
	justify-self: center;
}

/* Normal page titles; the injection page's existing eyebrow H1 is retained. */
body.vm-cvi.vm-lang-en:not(.home):not(.vm-process-injection) article.ast-article-single .entry-header .entry-title,
body.vm-cvi.vm-lang-en .vm-hub-hero h1 {
	font-size: var(--vm-type-page);
	line-height: 1.08;
	max-width: 900px;
}
body.vm-cvi.vm-lang-en:not(.home) .entry-header .vm-page-hero__deck {
	font-size: var(--vm-type-lead);
	line-height: 1.5;
	max-width: 700px;
}

/* C/D: reading and split sections. H3 is subordinate to H2. */
body.vm-cvi.vm-lang-en:not(.home) .entry-content :is(.vm-story-row__copy, .vm-copy__inner, .vm-content-review) h2,
body.vm-cvi.vm-lang-en:not(.home) .entry-content > h2,
body.vm-cvi.vm-lang-en .vm-hub-section__heading h2 {
	font-size: var(--vm-type-section);
	line-height: 1.12;
}
body.vm-cvi.vm-lang-en:not(.home) .entry-content :is(.vm-story-row__copy, .vm-content-review) h3,
body.vm-cvi.vm-lang-en:not(.home) .entry-content > h3 {
	font-size: var(--vm-type-subsection);
	line-height: 1.2;
}
body.vm-cvi.vm-lang-en:not(.home) .entry-content :is(.vm-story-row__copy, .vm-copy__inner, .vm-content-review) :is(p, li),
body.vm-cvi.vm-lang-en:not(.home) .entry-content > :is(p, ul, ol),
body.vm-cvi.vm-lang-en .vm-hub-card__link p,
body.vm-cvi.vm-lang-en .ast-blog-single-element p {
	font-size: var(--vm-type-body);
	line-height: 1.6;
}
body.vm-cvi.vm-lang-en:not(.home) .entry-content :is(.vm-story-row__copy, .vm-copy__inner) :is(.vm-story-row__lead, .vm-copy__lead),
body.vm-cvi.vm-lang-en .vm-hub-hero__lead {
	font-size: var(--vm-type-lead);
	line-height: 1.5;
}
body.vm-cvi.vm-lang-en:not(.home) .vm-home-feature__lead {
	font-size: clamp(17px, 1.4vw, 20px);
	line-height: 1.55;
}
body.vm-cvi.vm-lang-en:not(.home) .entry-content > :is(p, ul, ol, blockquote) {
	max-width: 740px;
}
body.vm-cvi.vm-lang-en .entry-content .vm-copy__inner {
	text-align: left;
}
body.vm-cvi.vm-lang-en .entry-content :is(.vm-copy__title, .vm-copy__lead) {
	text-align: left;
}
body.vm-cvi.vm-lang-en .entry-content .vm-copy__inner > :is(p, h2, h3, ul),
body.vm-cvi.vm-lang-en .entry-content .vm-copy__intro-text > p {
	margin-inline: 0 !important;
	max-width: 740px;
}
body.vm-cvi.vm-lang-en .vm-copy:not(.vm-copy--with-media) .vm-copy__inner {
	max-width: 740px;
}
body.vm-cvi.vm-lang-en .entry-content .vm-copy--with-media .vm-copy__inner > :not(.vm-copy__intro) {
	margin-inline: auto !important;
}
body.vm-cvi.vm-lang-en .entry-content .vm-copy__heading {
	font-size: var(--vm-type-subsection);
	letter-spacing: -0.015em;
	line-height: 1.2;
	text-transform: none;
}
body.vm-cvi.vm-lang-en .vm-copy__list {
	justify-items: start;
}
body.vm-cvi.vm-lang-en :is(.vm-copy__points, .vm-copy__facts) li {
	align-items: flex-start;
	text-align: left;
}

/* Shared short CTA clusters. Technical product content remains left aligned. */
body.vm-cvi.vm-lang-en :is(.vm-hub-cta, .vm-inline-rfq) {
	gap: 14px;
	grid-template-columns: minmax(0, 1fr);
	justify-items: center;
	padding-block: 24px;
	text-align: center;
}
body.vm-cvi.vm-lang-en :is(.vm-hub-cta__copy, .vm-inline-rfq__copy) {
	max-width: 740px;
}
body.vm-cvi.vm-lang-en .vm-hub-cta h2,
body.vm-cvi.vm-lang-en .entry-content :is(.vm-hub-cta, .vm-inline-rfq) :is(h2, h3) {
	font-size: clamp(27px, 2.2vw, 32px);
	line-height: 1.15;
	margin: 0 0 8px;
	max-width: 740px;
}
body.vm-cvi.vm-lang-en :is(.vm-hub-cta__copy, .vm-inline-rfq__copy) > p:last-child {
	font-size: 17px;
	line-height: 1.5;
	margin-inline: auto;
	max-width: 680px;
}
body.vm-cvi.vm-lang-en .vm-hub-cta .vm-actions,
body.vm-cvi.vm-lang-en .vm-inline-rfq__actions {
	align-items: center;
	grid-column: 1;
	justify-content: center;
	width: auto;
}
body.vm-cvi.vm-lang-en .entry-content > .vm-rfq-guidance {
	margin-inline: auto;
	max-width: 740px;
	text-align: center;
}
body.vm-cvi.vm-lang-en .vm-rfq-guidance h3 {
	font-size: var(--vm-type-subsection);
	line-height: 1.2;
}
body.vm-cvi.vm-lang-en .vm-rfq-guidance p {
	font-size: var(--vm-type-body);
	line-height: 1.6;
}

/* E: readable catalogue type, without changing content or the 46/54 grid. */
body.vm-cvi.vm-lang-en .entry-content .vm-product__title {
	font-size: clamp(32px, 3vw, 44px);
	line-height: 1.1;
}
body.vm-cvi.vm-lang-en .entry-content .vm-product__specs th {
	font-size: 14px;
	line-height: 1.5;
	padding: 11px 12px;
}
body.vm-cvi.vm-lang-en .entry-content .vm-product__specs td {
	font-size: 16px;
	line-height: 1.5;
	padding: 11px 12px;
}
body.vm-cvi.vm-lang-en .entry-content .vm-product__description :is(p, li),
body.vm-cvi.vm-lang-en .entry-content :is(.vm-product__description, .vm-product__note, .vm-product__cta-lead) {
	font-size: var(--vm-type-body);
	line-height: 1.6;
	max-width: 740px;
	text-align: left;
}
body.vm-cvi.vm-lang-en .vm-product-doc__label {
	font-size: 16px;
	line-height: 1.5;
}
body.vm-cvi.vm-lang-en :is(.vm-product-doc__type, .vm-product-doc__action, .vm-product__crumbs) {
	font-size: 13px;
	line-height: 1.5;
}
body.vm-cvi.vm-lang-en .vm-product-card .vm-product-card__title,
body.vm-cvi.vm-lang-en .entry-content .vm-product-card__title,
body.vm-cvi.vm-lang-en .vm-hub-card__link h3,
body.vm-cvi.vm-lang-en.archive .ast-article-inner .entry-title {
	font-size: clamp(20px, 1.55vw, 22px);
	line-height: 1.2;
}
body.vm-cvi.vm-lang-en .entry-content .vm-product-family__title {
	font-size: clamp(28px, 2.4vw, 34px);
	line-height: 1.15;
}

body.vm-cvi.vm-lang-en .entry-content :is(.vm-product__documents, .vm-product__specs) > h2,
body.vm-cvi.vm-lang-en .entry-content .vm-product__gallery > h2,
body.vm-cvi.vm-lang-en .entry-content .vm-product__description > h2,
body.vm-cvi.vm-lang-en .entry-content .vm-product__specs-title {
	font-size: clamp(24px, 2vw, 28px);
	line-height: 1.2;
}
body.vm-cvi.vm-lang-en .entry-content .vm-product__cta h2 {
	font-size: clamp(22px, 1.8vw, 26px);
	line-height: 1.2;
}

/* The legacy article stores type sizes inline; only its prose role overrides
   those sizes. Media frames and their aspect ratios remain untouched. */
body.vm-cvi.vm-lang-en.vm-page-sealed-protected-built-to-last-fipfg-sealing-potting article.ast-article-single .entry-header {
	padding-block: clamp(24px, 3vw, 44px);
}
body.vm-cvi.vm-lang-en.vm-page-sealed-protected-built-to-last-fipfg-sealing-potting .entry-content > :is(p, ul, ol, h2, h3),
body.vm-cvi.vm-lang-en .tech-article-teaser .teaser-text {
	max-width: 740px;
}
body.vm-cvi.vm-lang-en.vm-page-sealed-protected-built-to-last-fipfg-sealing-potting .entry-content h2 {
	font-size: var(--vm-type-section) !important;
	line-height: 1.12;
}
body.vm-cvi.vm-lang-en .tech-article-teaser .lead {
	font-size: var(--vm-type-lead) !important;
	line-height: 1.5 !important;
}
body.vm-cvi.vm-lang-en .vm-contact-team h2,
body.vm-cvi.vm-lang-en .vm-contact-office h2 {
	font-size: var(--vm-type-section);
	line-height: 1.12;
}
body.vm-cvi.vm-lang-en .vm-person h3 {
	font-size: 22px;
	line-height: 1.2;
}
body.vm-cvi.vm-lang-en :is(.vm-person__role, .vm-person__contacts, .vm-contact-facts dd) {
	font-size: 16px;
	line-height: 1.5;
}

/* RFQ dialog: a form heading, not a second hero; retain the submission flow. */
body.vm-cvi.vm-lang-en .vm-rfq__heading h2 {
	font-size: clamp(28px, 2.4vw, 34px);
	line-height: 1.12;
	max-width: 700px;
}
body.vm-cvi.vm-lang-en .vm-rfq__heading > p:last-child,
body.vm-cvi.vm-lang-en .vm-rfq :is(input, textarea) {
	font-size: 16px;
	line-height: 1.5;
}
body.vm-cvi.vm-lang-en .vm-rfq :is(label, .vm-field__help, .vm-rfq__submit p, .vm-kicker) {
	font-size: 13px;
	line-height: 1.5;
}
body.vm-cvi.vm-lang-en .vm-rfq .vm-button {
	font-size: 14px;
}
body.vm-cvi.vm-lang-en .vm-rfq :is(.vm-field, .vm-file-input, input, textarea) {
	min-width: 0;
	max-width: 100%;
}

/* The existing two-column menu must fit the narrow desktop viewport. */
body.vm-cvi.vm-lang-en.ast-desktop .main-header-menu > .vm-mega .vm-mega-desc {
	font-size: 12px;
	line-height: 1.35;
}
@media (min-width: 922px) and (max-width: 1199px) {
	body.vm-cvi.vm-lang-en .main-header-menu {
		position: relative;
	}
	body.vm-cvi.vm-lang-en .main-header-menu > .vm-mega {
		position: static;
	}
	body.vm-cvi.vm-lang-en .main-header-menu > .vm-mega > .sub-menu {
		left: auto !important;
		right: 0 !important;
		min-width: 0;
		width: min(44rem, calc(100vw - 32px));
	}
}

/* 2026-09-28 responsive QA: legacy single posts (technology blog, news) had no content
   column, so body text ran edge to edge at every width. A centred 740 px reading column
   with 20 px gutters; media keep their own sizes inside it. */
body.vm-cvi.single-post .entry-content > :is(.tech-article, .lb-news) {
	box-sizing: content-box;
	max-width: 740px;
	margin-inline: auto;
	padding-inline: 20px;
}
body.vm-cvi.single-post .entry-content :is(.tech-article, .lb-news) img {
	max-width: 100%;
	height: auto;
}
/* A Joomla-era CTA modal left in one news post rendered as an empty inline form after
   its script and styles were retired; the site-wide RFQ dialog replaces it. */
body.vm-cvi .entry-content .v-modal-overlay {
	display: none !important;
}

/* 2026-09-28 responsive QA: the 2000:600 page header was a fixed height, so at 922–1199 px
   a two-line title plus the deck overflowed upwards and the H1's first line disappeared
   under the site header (sector pages). Keep 2000:600 as the minimum and let it grow. */
@media (min-width: 922px) and (max-width: 1199px) {
	body.vm-cvi:not(.home) article.ast-article-single > .entry-header,
	body.vm-cvi.single-post article.ast-article-single > [class*="ast-post-format-"] > .entry-header {
		aspect-ratio: auto;
		min-height: 30vw;
	}
}
