/*
Theme Name: B&W Haustechnik (VN Child)
Theme URI: https://bwhaustechnik.at
Author: Vision Nine Studio
Description: Child-Theme für B&W Haustechnik e.U. Linz — PureVolt-Stil-Adaption: ruhige kühle Near-Monochrome-Navy-Palette (kühles Off-White, Navy-Akzent, weiches Sky auf Dunkel), Plus Jakarta Sans + DM Sans self-hosted. KONZEPT-FINAL.md = Single Source of Truth.
Author URI: https://vision-nine.com
Template: vn-foundation
Version: 0.96.1
License: Proprietary
Text Domain: b-w-haustechnik-wp
*/

@font-face {
	font-family: 'Plus Jakarta Sans';
	font-style: normal;
	font-display: swap;
	font-weight: 200 800;
	src: url('assets/src/fonts/jakarta--latin-wght-normal.woff2') format('woff2-variations');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Plus Jakarta Sans';
	font-style: normal;
	font-display: swap;
	font-weight: 200 800;
	src: url('assets/src/fonts/jakarta--latin-ext-wght-normal.woff2') format('woff2-variations');
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Plus Jakarta Sans';
	font-style: italic;
	font-display: swap;
	font-weight: 200 800;
	src: url('assets/src/fonts/jakarta--latin-wght-italic.woff2') format('woff2-variations');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'DM Sans';
	font-style: normal;
	font-display: swap;
	font-weight: 100 1000;
	src: url('assets/src/fonts/dmsans--latin-wght-normal.woff2') format('woff2-variations');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'DM Sans';
	font-style: normal;
	font-display: swap;
	font-weight: 100 1000;
	src: url('assets/src/fonts/dmsans--latin-ext-wght-normal.woff2') format('woff2-variations');
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
	--bw-blue-50:  #ECF7FF;
	--bw-blue-100: #D4ECFF;
	--bw-blue-200: #B2DEFF;
	--bw-blue-300: #7DCAFF;
	--bw-blue-400: #41ADFF;
	--bw-blue-500: #158AFF;
	--bw-blue-600: #006FFF;
	--bw-blue-700: #0061FE;
	--bw-blue-800: #0049CD;
	--bw-blue-900: #073A8D;
	--bw-blue-950: #0B2960;

	--slate-500: #5E7088;
	--slate-600: #46576E;

	--paper: #EEF2F7;
	--paper-soft: #F7F9FC;
	--ink: #111A2B;
	--ink-muted: color-mix(in srgb, var(--ink) 62%, transparent);
	--ink-faint: color-mix(in srgb, var(--ink) 66%, transparent);
	--hairline: color-mix(in srgb, var(--ink) 12%, transparent);
	--hairline-soft: color-mix(in srgb, var(--ink) 6%, transparent);
	--hairline-strong: color-mix(in srgb, var(--ink) 20%, transparent);

	--dark-bg: var(--bw-blue-950);
	--dark-bg-raised: #0E316E;
	--on-dark-strong: var(--paper);
	--on-dark: #C0D0E4;
	--on-dark-muted: #8194B2;
	--divider-on-dark: color-mix(in srgb, var(--on-dark-strong) 16%, transparent);

	--accent: #0B3A8D;
	--accent-hover: #0A2E70;
	--accent-on-dark: #9FBBDE;
	--headline-soft: color-mix(in srgb, var(--ink) 46%, var(--paper));

	--font-display: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--font-body: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;

	--fs-hero: clamp(2.5rem, 5.5vw, 4.5rem);
	--fs-h1: clamp(2.25rem, 4vw, 3.5rem);
	--fs-h2: clamp(1.875rem, 3.5vw, 2.75rem);
	--fs-h3: clamp(1.25rem, 2vw, 1.5rem);
	--fs-stat: clamp(2.5rem, 5vw, 4rem);
	--fs-body: 1.1875rem;
	--fs-small: 0.9375rem;
	--fs-eyebrow: 0.75rem;
	--fs-fine: 0.8125rem;
	--ls-eyebrow: 0.08em;
	--sticky-top: 6rem;

	--radius-sm: 0.75rem;
	--radius-md: 1.375rem;
	--radius-hero: clamp(1.75rem, 3vw, 2.5rem);
	--radius-chip: 999px;

	--hero-inset: clamp(0.85rem, 1.8vw, 1.5rem);
	--hero-content-gap: 1.45rem;
	--nav-gap-top: clamp(0.9rem, 2vw, 1.6rem);
	--nav-clearance: clamp(5rem, 9vw, 6.5rem);

	--white: #FFFFFF;
	--btn-radius: var(--radius-chip);
	--btn-font-size: 0.9rem;
	--btn-font-size-sm: var(--fs-small);
	--btn-font-weight: 600;
	--btn-pad-y: 0.65rem;
	--btn-pad-x: 1.3rem;
	--btn-pad-y-sm: 0.5rem;
	--btn-pad-x-sm: 1rem;
	--btn-min-tap: 2.75rem;
	--btn-chip-min: 2.75rem;
	--btn-chip-min-sm: 1.7rem;
	--btn-chip-icon: 0.95rem;
	--btn-chip-icon-sm: 0.8rem;
	--btn-link-gap: 0.7rem;
	--btn-border: 1px solid var(--hairline);
	--btn-border-on-dark: 1px solid var(--divider-on-dark);
	--btn-dur: 0.18s;
	--btn-dur-chip: 0.2s;
	--btn-ease: cubic-bezier(0.4, 0, 0.2, 1);

	--space-section: clamp(4rem, 9vw, 8rem);
	--space-block: clamp(2rem, 4.5vw, 3.5rem);
	--container-max: 75rem;
	--container-pad: clamp(1.25rem, 4vw, 2.5rem);
}

@view-transition {
	navigation: auto;
}
::view-transition-old(root),
::view-transition-new(root) {
	animation-duration: 0.28s;
	animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
@media (prefers-reduced-motion: reduce) {
	::view-transition-old(root),
	::view-transition-new(root) {
		animation: none !important;
	}
}

* {
	box-sizing: border-box;
}

body.vn-body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1, h2 {
	font-family: var(--font-display);
	line-height: 1.16;
	margin: 0 0 0.5em;
	font-weight: 500;
	letter-spacing: -0.01em;
}

h3, h4 {
	font-family: var(--font-display);
	line-height: 1.2;
	margin: 0 0 0.5em;
	font-weight: 600;
	letter-spacing: -0.005em;
}

p {
	margin: 0 0 1em;
}

a {
	color: inherit;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

.vn-container {
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--container-pad);
}

.vn-section--a {
	background: var(--paper-soft);
}
.vn-section--b {
	background: var(--paper);
}
.vn-section--dark {
	background: var(--dark-bg);
	color: var(--on-dark);
}
.vn-section--dark h2,
.vn-section--dark h3 {
	color: var(--on-dark-strong);
}

em.vn-italic {
	font-style: normal;
	color: var(--accent);
}
.vn-section--dark em.vn-italic {
	color: var(--accent-on-dark);
}

.skip-link {
	position: absolute;
	left: -999px;
	top: 0;
	background: var(--ink);
	color: var(--paper);
	padding: 0.6rem 1rem;
	z-index: 100;
}
.skip-link:focus {
	left: 0;
}

.vn-badge {
	display: inline-block;
	background: transparent;
	color: var(--ink-muted);
	border: 1px solid var(--hairline);
	font-family: var(--font-display);
	font-size: var(--fs-eyebrow);
	font-weight: 600;
	letter-spacing: var(--ls-eyebrow);
	text-transform: uppercase;
	padding: 0.45rem 1rem;
	border-radius: var(--radius-chip);
}
.vn-section--dark .vn-badge {
	background: transparent;
	border-color: var(--divider-on-dark);
	color: var(--on-dark-muted);
}

.vn-section-header {
	margin-bottom: var(--space-block);
}
.vn-section-header__title {
	font-size: var(--fs-h2);
	max-width: 22ch;
	margin-top: 1rem;
}
.vn-section-header__lead {
	max-width: 56ch;
	color: var(--ink-muted);
}
.vn-section--dark .vn-section-header__lead {
	color: var(--on-dark);
}

.bw-cta,
.bw-link {
	font-family: var(--font-display);
	font-weight: var(--btn-font-weight);
	text-decoration: none;
}
.bw-cta {
	display: inline-flex;
	align-items: stretch;
	gap: 0;
}
.bw-cta__label {
	display: inline-flex;
	align-items: center;
	min-height: var(--btn-min-tap);
	background: var(--accent);
	color: var(--white);
	border-radius: var(--btn-radius);
	padding: var(--btn-pad-y) var(--btn-pad-x);
	font-size: var(--btn-font-size);
	white-space: nowrap;
	transition: background var(--btn-dur) var(--btn-ease), border-color var(--btn-dur) var(--btn-ease);
}
.bw-cta__chip {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	align-self: stretch;
	aspect-ratio: 1;
	min-width: var(--btn-chip-min);
	border-radius: var(--btn-radius);
	background: var(--accent);
	color: var(--white);
	transition: background var(--btn-dur) var(--btn-ease), transform var(--btn-dur-chip) var(--btn-ease);
}
.bw-cta__chip svg {
	width: var(--btn-chip-icon);
	height: var(--btn-chip-icon);
}
.bw-cta:hover .bw-cta__label,
.bw-cta:hover .bw-cta__chip {
	background: var(--accent-hover);
}
.bw-cta:hover .bw-cta__chip {
	transform: translate(2px, -2px);
}
.bw-cta:active .bw-cta__label,
.bw-cta:active .bw-cta__chip {
	transform: scale(0.97);
}
.bw-cta:focus-visible {
	outline: none;
}
.bw-cta:focus-visible .bw-cta__label,
.bw-cta:focus-visible .bw-cta__chip {
	outline: 2px solid var(--accent);
	outline-offset: 3px;
}
.bw-cta--on-dark .bw-cta__label,
.bw-cta--on-dark .bw-cta__chip {
	background: var(--on-dark-strong);
	color: var(--ink);
}
.bw-cta--on-dark:hover .bw-cta__label,
.bw-cta--on-dark:hover .bw-cta__chip {
	background: var(--white);
}
.bw-cta--on-dark:focus-visible .bw-cta__label,
.bw-cta--on-dark:focus-visible .bw-cta__chip {
	outline-color: var(--on-dark-strong);
}
.bw-cta--secondary .bw-cta__label {
	background: transparent;
	color: var(--ink);
	border: var(--btn-border);
	padding: calc(var(--btn-pad-y) - 1px) calc(var(--btn-pad-x) - 1px);
}
.bw-cta--secondary:hover .bw-cta__label {
	background: var(--hairline-soft);
	border-color: var(--ink);
}
.bw-cta--secondary.bw-cta--on-dark .bw-cta__label {
	background: transparent;
	color: var(--on-dark-strong);
	border: var(--btn-border-on-dark);
}
.bw-cta--secondary.bw-cta--on-dark:hover .bw-cta__label {
	background: color-mix(in srgb, var(--on-dark-strong) 12%, transparent);
	border-color: var(--on-dark-strong);
}
.bw-cta--sm .bw-cta__label {
	min-height: var(--btn-min-tap);
	padding: var(--btn-pad-y-sm) var(--btn-pad-x-sm);
	font-size: var(--btn-font-size-sm);
}
.bw-cta--sm .bw-cta__chip {
	min-width: var(--btn-min-tap);
}
.bw-cta--sm.bw-cta--secondary .bw-cta__label {
	padding: calc(var(--btn-pad-y-sm) - 1px) calc(var(--btn-pad-x-sm) - 1px);
}

@media (max-width: 767px) {
	main .bw-cta {
		display: flex;
		width: 80%;
	}
	main .bw-cta .bw-cta__label {
		flex: 1;
		justify-content: center;
		min-height: 3.25rem;
	}
	main .bw-cta .bw-cta__chip {
		min-width: 3.25rem;
	}
}

.bw-link {
	display: inline-flex;
	align-items: center;
	gap: var(--btn-link-gap);
	min-height: var(--btn-min-tap);
	font-size: var(--btn-font-size);
	color: var(--ink);
	white-space: nowrap;
}
.bw-link__chip {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: var(--btn-chip-min-sm);
	height: var(--btn-chip-min-sm);
	border-radius: var(--btn-radius);
	background: var(--hairline-soft);
	color: var(--ink);
	transition: background var(--btn-dur) var(--btn-ease), color var(--btn-dur) var(--btn-ease), transform var(--btn-dur-chip) var(--btn-ease);
}
.bw-link__chip svg {
	width: var(--btn-chip-icon-sm);
	height: var(--btn-chip-icon-sm);
}
.bw-link:hover {
	color: var(--accent);
}
.bw-link:hover .bw-link__chip {
	background: var(--accent);
	color: var(--white);
	transform: translate(2px, -2px);
}
.bw-link:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 3px;
	border-radius: var(--radius-sm);
}
.bw-link--sm {
	font-size: var(--btn-font-size-sm);
}
.bw-link--on-dark {
	color: var(--on-dark-strong);
}
.bw-link--on-dark:hover {
	color: var(--white);
}
.bw-link--on-dark .bw-link__chip {
	background: var(--divider-on-dark);
	color: var(--on-dark-strong);
}
.bw-link--on-dark:hover .bw-link__chip {
	background: var(--on-dark-strong);
	color: var(--ink);
}
.bw-link--on-dark:focus-visible {
	outline-color: var(--on-dark-strong);
}

.bw-chip {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: var(--btn-chip-min-sm);
	height: var(--btn-chip-min-sm);
	border-radius: var(--btn-radius);
	background: var(--hairline-soft);
	color: var(--ink);
	transition: background var(--btn-dur) var(--btn-ease), color var(--btn-dur) var(--btn-ease), transform var(--btn-dur-chip) var(--btn-ease);
}
.bw-chip svg {
	width: var(--btn-chip-icon-sm);
	height: var(--btn-chip-icon-sm);
}
a:hover .bw-chip {
	background: var(--accent);
	color: var(--white);
	transform: translate(2px, -2px);
}
.bw-chip--on-dark {
	background: var(--divider-on-dark);
	color: var(--on-dark-strong);
}
a:hover .bw-chip--on-dark {
	background: var(--on-dark-strong);
	color: var(--ink);
}

@media (prefers-reduced-motion: reduce) {
	.bw-cta:hover .bw-cta__chip,
	.bw-link:hover .bw-link__chip,
	a:hover .bw-chip,
	.bw-cta:active .bw-cta__label,
	.bw-cta:active .bw-cta__chip {
		transform: none;
	}
}

.vn-header {
	position: fixed;
	top: var(--nav-gap-top);
	left: 0;
	right: 0;
	margin-inline: auto;
	z-index: 50;
	width: min(72rem, calc(100% - 2 * var(--container-pad)));
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 0.5rem 1.3rem;
	border-radius: var(--radius-md);
	border: 1px solid var(--divider-on-dark);
	background: color-mix(in srgb, var(--dark-bg) 72%, transparent);
	-webkit-backdrop-filter: blur(16px) saturate(1.4);
	backdrop-filter: blur(16px) saturate(1.4);
	color: var(--on-dark-strong);
	transition: background 0.25s var(--btn-ease), top 0.25s var(--btn-ease);
}
.vn-header.is-scrolled {
	top: clamp(0.5rem, 1.2vw, 0.9rem);
	background: var(--dark-bg);
	border-color: var(--divider-on-dark);
}
@media (min-width: 1024px) {
	.vn-header:not(.is-scrolled) {
		top: 0;
		padding-block: 1.9rem 1rem;
		border-radius: 0 0 var(--radius-md) var(--radius-md);
		border-color: transparent;
		background: var(--dark-bg);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}
}
main {
	padding-top: var(--nav-clearance);
}
main:has(> .bw-hero, > .vn-hero--inset, > .bw-page-hero),
main:has(> .bw-article > .bw-article__head) {
	padding-top: 0;
}
.vn-header__brand {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	color: var(--on-dark-strong);
}
.vn-header__logo {
	display: block;
	height: clamp(1.15rem, 1.3vw, 1.38rem);
	width: auto;
}
.vn-nav__list {
	display: flex;
	gap: 1.75rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.vn-nav__list a {
	font-family: var(--font-display);
	font-size: 0.95rem;
	font-weight: 500;
	color: var(--on-dark);
	text-decoration: none;
	transition: color 0.18s ease;
}
.vn-nav__list a:hover {
	color: var(--on-dark-strong);
}
.vn-nav__item--has-sub {
	position: relative;
}
.vn-nav__item--has-sub > a {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
}
.vn-nav__chevron {
	display: inline-flex;
	transition: transform 0.2s var(--btn-ease);
}
.vn-nav__chevron svg {
	width: 0.75rem;
	height: 0.75rem;
}
.vn-nav__item--has-sub:hover .vn-nav__chevron,
.vn-nav__item--has-sub:focus-within .vn-nav__chevron {
	transform: rotate(180deg);
}
.vn-nav__mega {
	position: absolute;
	top: 100%;
	left: 0;
	transform: translateY(6px);
	width: min(38rem, 92vw);
	padding: 0.85rem;
	background: var(--dark-bg-raised);
	border: 1px solid var(--divider-on-dark);
	border-radius: var(--radius-md);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.22s var(--btn-ease), transform 0.22s var(--btn-ease), visibility 0.22s var(--btn-ease);
}
.vn-nav__item--has-sub:hover .vn-nav__mega,
.vn-nav__item--has-sub:focus-within .vn-nav__mega {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}
.vn-nav__mega-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.2rem 0.6rem;
}
.vn-mega-card {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding: 0.5rem 0.55rem;
	border-radius: var(--radius-sm);
	text-decoration: none;
	color: var(--on-dark-strong);
	transition: background var(--btn-dur) var(--btn-ease);
}
.vn-mega-card:hover {
	background: color-mix(in srgb, var(--on-dark-strong) 8%, transparent);
}
.vn-mega-card__img {
	flex: 0 0 auto;
	width: 3.25rem;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: var(--radius-sm);
	border: 1px solid var(--divider-on-dark);
}
.vn-mega-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.45s var(--btn-ease);
}
.vn-mega-card:hover .vn-mega-card__img img,
.vn-mega-card:focus-visible .vn-mega-card__img img {
	transform: scale(1.08);
}
.vn-mega-card__label {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 1.05rem;
	line-height: 1.2;
	color: var(--on-dark-strong);
}
.vn-header__cta {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.vn-header__menu-toggle {
	display: none;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	min-width: 44px;
	min-height: 44px;
	background: transparent;
	border: none;
	padding: 0.5rem;
	cursor: pointer;
}
.vn-header__menu-bar {
	width: 22px;
	height: 2px;
	background: var(--on-dark-strong);
	border-radius: var(--radius-chip);
	transition: transform 0.35s var(--btn-ease);
}
.vn-header__menu-toggle[aria-expanded="true"] .vn-header__menu-bar:first-child {
	transform: translateY(3.5px) rotate(45deg);
}
.vn-header__menu-toggle[aria-expanded="true"] .vn-header__menu-bar:last-child {
	transform: translateY(-3.5px) rotate(-45deg);
}

.vn-mobile-nav {
	position: fixed;
	inset: 0;
	z-index: 45;
	background: var(--dark-bg);
	color: var(--on-dark);
	padding: var(--nav-clearance) var(--container-pad) 2.5rem;
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.4s var(--btn-ease), visibility 0.4s var(--btn-ease);
}
.vn-mobile-nav.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.vn-mobile-nav__inner {
	min-height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.vn-mobile-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: clamp(0.5rem, 2vw, 0.9rem);
}
.vn-mobile-nav__list > li {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 0.55s var(--btn-ease), transform 0.55s var(--btn-ease);
}
.vn-mobile-nav.is-open .vn-mobile-nav__list > li {
	opacity: 1;
	transform: none;
}
.vn-mobile-nav.is-open .vn-mobile-nav__list > li:nth-child(1) { transition-delay: 0.10s; }
.vn-mobile-nav.is-open .vn-mobile-nav__list > li:nth-child(2) { transition-delay: 0.16s; }
.vn-mobile-nav.is-open .vn-mobile-nav__list > li:nth-child(3) { transition-delay: 0.22s; }
.vn-mobile-nav.is-open .vn-mobile-nav__list > li:nth-child(4) { transition-delay: 0.28s; }
.vn-mobile-nav.is-open .vn-mobile-nav__list > li:nth-child(5) { transition-delay: 0.34s; }
.vn-mobile-nav__list > li > a,
.vn-mobile-nav__row > a {
	display: inline-block;
	font-family: var(--font-display);
	font-size: clamp(1.6rem, 7vw, 2.2rem);
	font-weight: 500;
	letter-spacing: -0.015em;
	line-height: 1.1;
	color: var(--on-dark-strong);
	text-decoration: none;
	transition: color var(--btn-dur) var(--btn-ease);
}
.vn-mobile-nav__list > li > a:active,
.vn-mobile-nav__row > a:active {
	color: var(--accent-on-dark);
}
.vn-mobile-nav__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}
.vn-mobile-nav__sub-toggle {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	margin-right: -0.6rem;
	padding: 0;
	background: transparent;
	border: none;
	color: var(--on-dark-muted);
	cursor: pointer;
}
.vn-mobile-nav__chevron {
	display: flex;
	transition: transform 0.3s var(--btn-ease);
}
.vn-mobile-nav__chevron svg {
	width: 1.35rem;
	height: 1.35rem;
}
.vn-mobile-nav__item--has-sub.is-expanded .vn-mobile-nav__chevron {
	transform: rotate(180deg);
}
.vn-mobile-nav__sub {
	overflow: hidden;
	max-height: 0;
	transition: max-height 0.4s var(--btn-ease);
}
.vn-mobile-nav__item--has-sub.is-expanded .vn-mobile-nav__sub {
	max-height: 30rem;
}
.vn-mobile-nav__mega {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.2rem;
	padding: 0.65rem 0 0.25rem;
}
.vn-mega-card--mobile {
	padding: 0.4rem 0;
}
.vn-mega-card--mobile .vn-mega-card__img {
	width: 3.5rem;
}
.vn-mega-card--mobile .vn-mega-card__label {
	font-size: 1.3rem;
}
.vn-mobile-nav__foot {
	margin-top: clamp(1.75rem, 5vw, 2.75rem);
	padding-top: clamp(1.5rem, 4vw, 2rem);
	border-top: 1px solid var(--divider-on-dark);
	display: flex;
	flex-direction: column;
	gap: 1rem;
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 0.55s var(--btn-ease) 0.42s, transform 0.55s var(--btn-ease) 0.42s;
}
.vn-mobile-nav.is-open .vn-mobile-nav__foot {
	opacity: 1;
	transform: none;
}
.vn-mobile-nav__cta {
	display: flex;
	width: 100%;
}
.vn-mobile-nav__cta .bw-cta__label {
	flex: 1;
	justify-content: center;
}
.vn-mobile-nav__person {
	margin-bottom: 0;
}
body.vn-nav-open {
	overflow: hidden;
}
body.vn-nav-open .vn-floating-tel {
	opacity: 0;
	pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
	.vn-mobile-nav__list > li,
	.vn-mobile-nav__foot {
		transform: none;
		transition: opacity 0.2s linear;
	}
	.vn-mobile-nav.is-open .vn-mobile-nav__list > li {
		transition-delay: 0s;
	}
	.vn-mobile-nav__sub {
		transition: none;
	}
}

.vn-footer {
	position: relative;
	overflow: hidden;
	background: var(--dark-bg);
	color: var(--on-dark-muted);
	--footer-link: color-mix(in srgb, var(--on-dark) 72%, var(--on-dark-muted));
	margin-top: var(--space-section);
}
main:has(> .vn-section--dark:last-child) ~ .vn-footer {
	margin-top: 0;
}
.vn-footer__top {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1.4fr;
	gap: 2.5rem;
	padding-block: var(--space-block) 3rem;
}
.vn-footer__logo {
	display: inline-flex;
	text-decoration: none;
}
.vn-footer__logo-img {
	display: block;
	height: 1.95rem;
	width: auto;
	margin-bottom: 1.25rem;
}
.vn-footer__statement {
	color: var(--on-dark-muted);
	font-size: var(--fs-small);
	max-width: 32ch;
}
.vn-footer__heading {
	font-size: var(--fs-eyebrow);
	letter-spacing: var(--ls-eyebrow);
	text-transform: uppercase;
	color: var(--on-dark-muted);
	font-weight: 600;
	margin-bottom: 1rem;
}
.vn-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.55rem;
}
.vn-footer__list a {
	display: inline-block;
	padding-block: 0.35rem;
	color: var(--on-dark-strong);
	text-decoration: none;
	font-size: var(--fs-small);
}
.vn-footer__list a:hover {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
.vn-footer__contact {
	margin: 0;
	font-size: var(--fs-small);
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.4rem 1rem;
}
.vn-footer__contact dt {
	color: var(--on-dark-muted);
}
.vn-footer__contact dd {
	margin: 0;
	color: var(--on-dark-strong);
}
.vn-footer__contact a {
	color: var(--on-dark-strong);
	text-decoration: none;
}
.vn-footer__bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding-block: 1.25rem;
	border-top: 1px solid var(--divider-on-dark);
	font-size: var(--fs-small);
	color: var(--on-dark-muted);
}
.vn-footer__legal {
	display: flex;
	gap: 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.vn-footer__legal a {
	color: var(--footer-link);
	text-decoration: none;
}
.vn-footer__credit {
	display: inline-flex;
	align-items: center;
	color: var(--on-dark-muted);
	transition: color var(--btn-dur) var(--btn-ease);
}
.vn-footer__credit:hover {
	color: var(--on-dark-strong);
}
.vn-footer__credit svg {
	height: 2.25rem;
	width: auto;
	display: block;
}

.vn-floating-tel {
	position: fixed;
	right: clamp(1rem, 2vw, 1.5rem);
	bottom: clamp(1rem, 2vw, 1.5rem);
	z-index: 60;
	display: inline-flex;
	align-items: center;
	background: var(--dark-bg);
	color: var(--on-dark-strong);
	text-decoration: none;
	padding: 0.3rem;
	border-radius: var(--radius-chip);
	border: 1px solid var(--divider-on-dark);
	transform: translateY(160%);
	opacity: 0;
	pointer-events: none;
	transition: transform 0.6s cubic-bezier(0.23, 1, 0.32, 1), opacity 0.4s ease, background var(--btn-dur) var(--btn-ease);
}
.vn-floating-tel.is-tel-visible {
	transform: translateY(0);
	opacity: 1;
	pointer-events: auto;
}
.vn-floating-tel__label {
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-width: 0;
	opacity: 0;
	overflow: hidden;
	white-space: nowrap;
	transition: max-width 0.35s var(--btn-ease), opacity 0.25s var(--btn-ease), padding 0.35s var(--btn-ease);
}
.vn-floating-tel:hover .vn-floating-tel__label,
.vn-floating-tel:focus-visible .vn-floating-tel__label {
	max-width: 14rem;
	opacity: 1;
	padding: 0 0.5rem 0 1rem;
}
.vn-floating-tel__hint {
	font-size: 0.68rem;
	letter-spacing: var(--ls-eyebrow);
	text-transform: uppercase;
	color: var(--on-dark-muted);
}
.vn-floating-tel__num {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--on-dark-strong);
}
.vn-floating-tel__avatar {
	position: relative;
	flex: 0 0 auto;
	width: 3rem;
	height: 3rem;
}
.vn-floating-tel__avatar img {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
	display: block;
}
.vn-floating-tel__badge {
	position: absolute;
	right: 0.1rem;
	bottom: 0.1rem;
	display: grid;
	place-items: center;
	width: 1.05rem;
	height: 1.05rem;
	border-radius: 50%;
	background: var(--accent);
	color: var(--white);
	border: 2px solid var(--dark-bg);
}
.vn-floating-tel__badge svg {
	width: 0.6rem;
	height: 0.6rem;
}
.vn-floating-tel:focus-visible {
	outline: 2px solid var(--on-dark-strong);
	outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
	.vn-floating-tel {
		transform: none;
		transition: opacity 0.25s ease, background var(--btn-dur) var(--btn-ease);
	}
	.vn-floating-tel.is-tel-visible {
		transform: none;
	}
	.vn-floating-tel__label {
		transition: opacity 0.2s linear;
	}
}

@media (min-width: 768px) {
	.vn-floating-tel.is-tel-visible .vn-floating-tel__label {
		max-width: 14rem;
		opacity: 1;
		padding: 0 0.5rem 0 1rem;
		transition:
			max-width 0.5s var(--btn-ease) 0.22s,
			opacity 0.35s ease 0.28s,
			padding 0.5s var(--btn-ease) 0.22s;
	}
}
@media (min-width: 768px) and (prefers-reduced-motion: reduce) {
	.vn-floating-tel.is-tel-visible .vn-floating-tel__label {
		transition: opacity 0.2s linear;
	}
}

.vn-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.7s cubic-bezier(0.23, 1, 0.32, 1), transform 0.7s cubic-bezier(0.23, 1, 0.32, 1);
}
.vn-reveal.is-revealed {
	opacity: 1;
	transform: none;
}
.vn-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

a:focus-visible,
summary:focus-visible,
button:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 3px;
	border-radius: var(--radius-sm);
}
.vn-header a:focus-visible,
.vn-footer a:focus-visible,
.bw-hero a:focus-visible,
.vn-section--dark a:focus-visible,
.vn-section--dark summary:focus-visible {
	outline-color: var(--on-dark-strong);
}

.vn-reveal-mask {
	opacity: 0;
	transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: opacity;
}
.vn-reveal-mask img {
	transform: scale(1.06);
	transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: transform;
}
.vn-reveal-mask.is-revealed {
	opacity: 1;
}
.vn-reveal-mask.is-revealed img {
	transform: scale(1);
}
.vn-delay-1 { transition-delay: 0s; }
.vn-delay-2 { transition-delay: 0.12s; }
.vn-delay-3 { transition-delay: 0.24s; }
.vn-delay-4 { transition-delay: 0.36s; }
.vn-delay-5 { transition-delay: 0.48s; }
.vn-delay-6 { transition-delay: 0.6s; }
@media (prefers-reduced-motion: reduce) {
	.vn-reveal,
	.vn-reveal-mask,
	.vn-reveal-mask img {
		opacity: 1;
		transform: none;
		clip-path: none;
		transition: none;
	}
}

@media (max-width: 991px) {
	.vn-footer__top {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 1023px) {
	.vn-nav {
		display: none;
	}
	.vn-header__menu-toggle {
		display: flex;
	}
	.vn-header__call {
		display: none;
	}
	.vn-header {
		width: min(clamp(17.5rem, 46vw, 32rem), calc(100% - 3rem));
		padding-inline: 1.05rem;
	}
	.vn-header__logo {
		height: 1.15rem;
	}
	.vn-header:not(.is-scrolled) {
		top: 0;
		padding-block: 0.45rem 0.55rem;
		border-radius: 0 0 var(--radius-md) var(--radius-md);
		border-color: transparent;
		background: var(--dark-bg);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}
}

@media (max-width: 767px) {
	.vn-header.is-scrolled {
		top: 0.25rem;
	}
	.vn-floating-tel {
		left: 0;
		right: 0;
		margin-inline: auto;
		width: max-content;
		max-width: calc(100vw - 2rem);
		bottom: clamp(0.75rem, 3vw, 1.25rem);
		flex-direction: row-reverse;
		transform-origin: center;
		transform: translateY(160%);
		opacity: 0;
		pointer-events: none;
		transition: transform 0.6s cubic-bezier(0.23, 1, 0.32, 1), opacity 0.4s ease;
	}
	.vn-floating-tel.is-tel-visible {
		transform: translateY(0);
		opacity: 1;
		pointer-events: auto;
	}
	.vn-floating-tel__label {
		max-width: 0;
		opacity: 0;
		padding: 0;
		transition: max-width 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0.1s, opacity 0.3s ease 0.15s, padding 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0.1s;
	}
	.vn-floating-tel.is-tel-visible .vn-floating-tel__label {
		max-width: 16rem;
		opacity: 1;
		padding: 0 0.5rem 0 1rem;
	}
	@media (prefers-reduced-motion: reduce) {
		.vn-floating-tel {
			transform: none;
			transition: opacity 0.25s ease;
		}
		.vn-floating-tel.is-tel-visible {
			transform: none;
		}
		.vn-floating-tel__label,
		.vn-floating-tel.is-tel-visible .vn-floating-tel__label {
			transition: opacity 0.2s ease;
		}
	}
	.vn-footer__top {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
	.vn-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
	}
}


.vn-footer__mark {
	position: absolute;
	right: -2.5rem;
	bottom: -3.5rem;
	width: clamp(11rem, 20vw, 17rem);
	color: var(--on-dark);
	opacity: 0.05;
	pointer-events: none;
	z-index: 0;
}
.vn-footer__mark svg {
	display: block;
	width: 100%;
	height: auto;
}
.vn-footer__top,
.vn-footer__bottom {
	position: relative;
	z-index: 1;
}
