/* ==========================================================================
   VMC Versicherungsmakler – Main Stylesheet
   BEM Naming Convention
   ========================================================================== */

/* Moderne UI-Schrift (Google Fonts, display=swap) */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200;0,400;0,500;0,600;0,700;0,800;1,400&display=swap');

/* ==========================================================================
   1. BASE / RESET
   ========================================================================== */

:root {
	--color-bg: #F8F6F1;
	--color-background: var(--color-bg);
	--color-primary: #0B2E4F;
	--color-secondary: #1F5FA8;
	--color-accent: #D17B00;
	--color-text: #1C1C1C;
	--color-muted: #666666;
	--color-surface: #FFFFFF;
	--color-border: #E0E4EA;
	--font-heading: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--font-body: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--container-max: 1280px;
	--space-xs: 0.5rem;
	--space-sm: 1rem;
	--space-md: 1.5rem;
	--space-lg: 2.5rem;
	--space-xl: 4rem;
	--space-2xl: 6rem;
	--radius: 4px;
	--radius-lg: 8px;
	--transition: 0.25s ease;
	--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
	--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.1);
	--shadow-lg: 0 8px 30px rgba(0, 0, 0, 0.12);
}

*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	font-size: clamp(14px, 1vw + 10px, 16px);
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	font-family: var(--font-body);
	font-weight: 400;
	line-height: 1.7;
	color: var(--color-text);
	background-color: var(--color-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

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

a {
	color: var(--color-secondary);
	text-decoration: none;
	transition: color var(--transition);
}

a:hover {
	color: var(--color-primary);
}

ul, ol {
	list-style: none;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
	color: var(--color-primary);
}

h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
h2 { font-size: clamp(1.75rem, 4vw, 2.75rem); margin-bottom: var(--space-md); }
h3 { font-size: clamp(1.25rem, 3vw, 1.75rem); margin-bottom: var(--space-sm); }
h4 { font-size: clamp(1.1rem, 2vw, 1.35rem); }

p {
	margin-bottom: var(--space-sm);
}

/* ==========================================================================
   2. LAYOUT
   ========================================================================== */

.container {
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--space-sm);
}

@media (min-width: 768px) {
	.container {
		padding-inline: var(--space-md);
	}
}

@media (min-width: 1024px) {
	.container {
		padding-inline: var(--space-lg);
	}
}

.section {
	padding: var(--space-xl) 0;
}

@media (min-width: 768px) {
	.section {
		padding: var(--space-2xl) 0;
	}
}

.section--bg-white {
	background-color: var(--color-surface);
}

.section--bg-primary {
	background-color: var(--color-primary);
	color: var(--color-surface);
}

.section--bg-primary h2,
.section--bg-primary h3 {
	color: var(--color-surface);
}

.section--bg-accent {
	background-color: var(--color-accent);
	color: var(--color-surface);
}

.section--bg-accent h2,
.section--bg-accent h3 {
	color: var(--color-surface);
}

.section__header {
	text-align: center;
	margin-bottom: var(--space-xl);
	max-width: 700px;
	margin-inline: auto;
}

.section__subtitle {
	color: var(--color-muted);
	font-size: 1.1rem;
	margin-top: var(--space-xs);
}

.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ==========================================================================
   3. BUTTONS
   ========================================================================== */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 14px 28px;
	border-radius: var(--radius);
	font-family: var(--font-body);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	border: 2px solid transparent;
	cursor: pointer;
	transition: background-color var(--transition), color var(--transition), border-color var(--transition), transform var(--transition), box-shadow var(--transition);
	white-space: nowrap;
}

.btn:focus-visible {
	outline: 3px solid var(--color-accent);
	outline-offset: 2px;
}

.btn--primary {
	background-color: var(--color-accent);
	color: #FFFFFF;
	border-color: var(--color-accent);
}

.btn--primary:hover {
	background-color: #b86a00;
	border-color: #b86a00;
	color: #FFFFFF;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(209, 123, 0, 0.3);
}

.btn--secondary {
	background-color: transparent;
	color: var(--color-surface);
	border-color: var(--color-surface);
}

.btn--secondary:hover {
	background-color: var(--color-surface);
	color: var(--color-primary);
}

.btn--secondary-dark {
	background-color: transparent;
	color: var(--color-primary);
	border-color: var(--color-primary);
}

.btn--secondary-dark:hover {
	background-color: var(--color-primary);
	color: var(--color-surface);
}

.btn--navy {
	background-color: var(--color-primary);
	color: var(--color-surface);
	border-color: var(--color-primary);
}

.btn--navy:hover {
	background-color: #093a63;
	border-color: #093a63;
	color: var(--color-surface);
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(11, 46, 79, 0.3);
}

.btn--outline {
	background-color: transparent;
	border-color: var(--color-primary);
	color: var(--color-primary);
}

.btn--outline:hover {
	background-color: var(--color-primary);
	color: var(--color-surface);
}

.btn--sm {
	padding: 10px 20px;
	font-size: 0.9rem;
}

.btn--lg {
	padding: 18px 36px;
	font-size: 1.1rem;
}

/* ==========================================================================
   4. HEADER
   ========================================================================== */

.header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background-color: var(--color-surface);
	box-shadow: var(--shadow-sm);
}

.header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 72px;
}

.header__logo {
	flex-shrink: 0;
}

.header__logo img,
.header__logo svg {
	height: 36px;
	width: auto;
	transition: opacity var(--transition);
}

.header__logo a:hover img,
.header__logo a:hover svg {
	opacity: 0.7;
}

.header__nav {
	display: none;
}

@media (min-width: 1024px) {
	.header__nav {
		display: flex;
		align-items: center;
		gap: var(--space-lg);
	}
}

.header__menu {
	display: flex;
	align-items: center;
	gap: var(--space-md);
}

.header__menu-item {
	position: relative;
}

.header__menu-link {
	font-weight: 500;
	color: var(--color-text);
	padding: var(--space-xs) 0;
	transition: color var(--transition);
}

.header__menu-link:hover {
	color: var(--color-secondary);
}

/* Mega Dropdown */
.header__dropdown {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	min-width: 480px;
	background-color: var(--color-surface);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-lg);
	padding: var(--space-md);
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--transition), visibility var(--transition), transform var(--transition);
	transform: translateX(-50%) translateY(8px);
	z-index: 100;
}

.header__menu-item:hover .header__dropdown,
.header__menu-item:focus-within .header__dropdown {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

.header__dropdown-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-xs);
}

.header__dropdown-item {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	padding: var(--space-sm);
	border-radius: var(--radius);
	color: var(--color-text);
	transition: background-color var(--transition);
}

.header__dropdown-item:hover {
	background-color: var(--color-bg);
	color: var(--color-primary);
}

.header__dropdown-icon {
	flex-shrink: 0;
	color: var(--color-secondary);
}

.header__dropdown-icon svg {
	width: 24px;
	height: 24px;
}

.header__dropdown-text {
	font-weight: 500;
	font-size: 0.95rem;
}

.header__cta {
	display: none;
}

@media (min-width: 768px) {
	.header__cta {
		display: inline-flex;
	}
}

.header__actions {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
}

/* Mobile Menu Toggle */
.header__toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
}

@media (min-width: 1024px) {
	.header__toggle {
		display: none;
	}
}

.header__toggle-bar {
	display: block;
	width: 24px;
	height: 2px;
	background-color: var(--color-text);
	position: relative;
	transition: background-color var(--transition);
}

.header__toggle-bar::before,
.header__toggle-bar::after {
	content: '';
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background-color: var(--color-text);
	transition: transform var(--transition);
}

.header__toggle-bar::before { top: -7px; }
.header__toggle-bar::after { top: 7px; }

.header__toggle[aria-expanded="true"] .header__toggle-bar {
	background-color: transparent;
}

.header__toggle[aria-expanded="true"] .header__toggle-bar::before {
	transform: rotate(45deg) translate(5px, 5px);
}

.header__toggle[aria-expanded="true"] .header__toggle-bar::after {
	transform: rotate(-45deg) translate(5px, -5px);
}

/* Mobile Nav */
.mobile-nav {
	position: fixed;
	inset: 0;
	top: 72px;
	background-color: var(--color-surface);
	z-index: 999;
	padding: var(--space-lg) var(--space-sm);
	transform: translateX(100%);
	transition: transform 0.35s ease;
	overflow-y: auto;
}

.mobile-nav--open {
	transform: translateX(0);
}

.mobile-nav__menu {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
}

.mobile-nav__link {
	display: block;
	padding: var(--space-sm);
	font-size: 1.1rem;
	font-weight: 500;
	color: var(--color-text);
	border-bottom: 1px solid var(--color-border);
}

.mobile-nav__link:hover {
	color: var(--color-secondary);
}

.mobile-nav__submenu {
	padding-left: var(--space-md);
}

.mobile-nav__submenu-link {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	padding: var(--space-xs) var(--space-sm);
	font-size: 1rem;
	color: var(--color-muted);
}

.mobile-nav__submenu-link:hover {
	color: var(--color-secondary);
}

.mobile-nav__ctas {
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
	margin-top: var(--space-lg);
}

/* ==========================================================================
   5. HERO
   ========================================================================== */

.hero {
	min-height: 85vh;
	display: flex;
	align-items: center;
	background: linear-gradient(135deg, var(--color-primary) 0%, #0a2540 60%, #132f4c 100%);
	color: var(--color-surface);
	padding: var(--space-xl) 0;
	position: relative;
	overflow: hidden;
}

/* Startseiten-Hero: Foto + kräftiges VMC-Blau (Primary/Secondary wie Standard-Hero), unten weich in --color-bg */
.hero--home-image {
	background-color: #0a2540;
	background-image:
		linear-gradient(
			to top,
			rgba(10, 37, 64, 0.55) 0%,
			rgba(11, 46, 79, 0.28) 22%,
			rgba(11, 46, 79, 0.08) 40%,
			transparent 62%
		),
		radial-gradient(ellipse 115% 60% at 50% 108%, rgba(7, 28, 48, 0.55) 0%, transparent 50%),
		radial-gradient(ellipse at 32% 48%, rgba(31, 95, 168, 0.28) 0%, transparent 68%),
		radial-gradient(circle at 14% 16%, rgba(255, 255, 255, 0.07) 0%, transparent 42%),
		linear-gradient(
			125deg,
			rgba(11, 46, 79, 0.94) 0%,
			rgba(11, 46, 79, 0.78) 32%,
			rgba(10, 37, 64, 0.58) 52%,
			rgba(19, 47, 76, 0.72) 100%
		),
		linear-gradient(135deg, rgba(11, 46, 79, 0.35) 0%, transparent 42%, rgba(19, 47, 76, 0.22) 100%),
		url('../images/hero-bg-test-family.png');
	background-position:
		center bottom,
		center bottom,
		center center,
		center top,
		center center,
		center center,
		center 38%;
	background-size: auto, auto, auto, auto, auto, auto, cover;
	background-repeat: no-repeat;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
	isolation: isolate;
}

/* Kfz-Produktseite: gleicher Stil wie Startseiten-Hero, eigenes Motiv (Familie + Auto) */
.hero--kfz-image {
	background-color: #0a2540;
	background-image:
		linear-gradient(
			to top,
			rgba(10, 37, 64, 0.55) 0%,
			rgba(11, 46, 79, 0.28) 22%,
			rgba(11, 46, 79, 0.08) 40%,
			transparent 62%
		),
		radial-gradient(ellipse 115% 60% at 50% 108%, rgba(7, 28, 48, 0.55) 0%, transparent 50%),
		radial-gradient(ellipse at 28% 48%, rgba(31, 95, 168, 0.32) 0%, transparent 68%),
		radial-gradient(circle at 12% 18%, rgba(255, 255, 255, 0.08) 0%, transparent 42%),
		linear-gradient(
			125deg,
			rgba(11, 46, 79, 0.96) 0%,
			rgba(11, 46, 79, 0.82) 28%,
			rgba(10, 37, 64, 0.52) 48%,
			rgba(19, 47, 76, 0.45) 100%
		),
		linear-gradient(135deg, rgba(11, 46, 79, 0.42) 0%, transparent 44%, rgba(19, 47, 76, 0.25) 100%),
		url('../images/kfz-hero-family-ev.png');
	background-position:
		center bottom,
		center bottom,
		center center,
		center top,
		center center,
		center center,
		/* Motiv: Familie ca. 40–85 % Bildbreite; etwas höher, damit alle Köpfe im Hero bleiben */
		61% 32%;
	background-size: auto, auto, auto, auto, auto, auto, cover;
	background-repeat: no-repeat;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
	isolation: isolate;
	min-height: 78vh;
}

/* Schmale Viewports: stärkerer Linksschwenk, damit Vater + Kinder nicht abgeschnitten werden */
@media (max-width: 900px) {
	.hero--kfz-image {
		background-position:
			center bottom,
			center bottom,
			center center,
			center top,
			center center,
			center center,
			56% 34%;
	}
}

@media (max-width: 480px) {
	.hero--kfz-image {
		background-position:
			center bottom,
			center bottom,
			center center,
			center top,
			center center,
			center center,
			52% 36%;
	}
}

.hero--kfz-image .hero__inner {
	grid-template-columns: 1fr;
	max-width: 720px;
}

@media (min-width: 1024px) {
	.hero--kfz-image .hero__inner {
		grid-template-columns: 1fr;
	}
}

.hero.hero--home-image::before,
.hero.hero--kfz-image::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(ellipse 85% 50% at 75% 35%, rgba(31, 95, 168, 0.12) 0%, transparent 55%),
		linear-gradient(90deg, rgba(11, 46, 79, 0.18) 0%, transparent 36%, transparent 62%, rgba(11, 46, 79, 0.2) 100%);
}

/* Auslauf: kompakter Verlauf Blau → Weiß (Anschluss an .products / --color-surface) */
.hero.hero--home-image::after,
.hero.hero--kfz-image::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 0;
	height: 20px;
	pointer-events: none;
	background: linear-gradient(
		to top,
		var(--color-surface) 0%,
		color-mix(in srgb, var(--color-surface) 92%, var(--color-primary)) 8%,
		color-mix(in srgb, var(--color-surface) 68%, var(--color-primary)) 20%,
		color-mix(in srgb, var(--color-surface) 38%, var(--color-primary)) 36%,
		color-mix(in srgb, var(--color-primary) 40%, transparent) 58%,
		color-mix(in srgb, var(--color-primary) 15%, transparent) 78%,
		transparent 100%
	);
}

.hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at 30% 50%, rgba(31, 95, 168, 0.15) 0%, transparent 70%);
	pointer-events: none;
}

.hero::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 120px;
	background: linear-gradient(to top, var(--color-bg), transparent);
	pointer-events: none;
}

.hero__inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-xl);
	align-items: center;
}

@media (min-width: 1024px) {
	.hero__inner {
		grid-template-columns: 1fr 1fr;
	}
}

.hero__content {
	position: relative;
	z-index: 1;
}

/* Startseiten-Hero: Logo-Bild als Wordmark – volle Breite & zentriert */
.hero--home-image .hero__wordmark {
	grid-column: 1 / -1;
	width: 100%;
	margin: 0 0 clamp(2.5rem, 6.5vw, 5rem);
	text-align: center;
}

.hero--home-image .hero__wordmark-logo {
	max-width: clamp(320px, 55vw, 580px);
	width: 100%;
	height: auto;
	margin: 0 auto;
	display: block;
	filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.3));
}

/* Startseite: Bereich unter der Wordmark (Text + CTAs) – Ausrichtung, Abstand, Lesepanel */
.hero--home-image .hero__inner {
	align-items: stretch;
	row-gap: clamp(1.5rem, 3.5vw, 2.75rem);
	column-gap: clamp(1.5rem, 4vw, 3rem);
}

.hero--home-image .hero__content {
	max-width: 40rem;
	width: 100%;
	padding: clamp(1.25rem, 3vw, 2rem) clamp(1.25rem, 3vw, 2rem);
	background: rgba(7, 24, 42, 0.42);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 14px;
	box-shadow:
		0 8px 32px rgba(0, 0, 0, 0.18),
		inset 0 1px 0 rgba(255, 255, 255, 0.07);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.hero--home-image .hero__title {
	margin-top: 0;
	margin-bottom: var(--space-sm);
	line-height: 1.2;
}

.hero--home-image .hero__subtitle {
	max-width: none;
	margin-bottom: var(--space-md);
	opacity: 0.92;
	line-height: 1.65;
}

.hero--home-image .hero__ctas {
	margin-top: 0.125rem;
}

@media (max-width: 1023px) {
	.hero--home-image .hero__content {
		max-width: none;
	}
}

@media (min-width: 1024px) {
	.hero--home-image .hero__offers {
		display: flex;
		flex-direction: column;
		gap: var(--space-sm);
	}

	.hero--home-image .hero__offers .offer-card {
		flex: 1;
		display: flex;
		flex-direction: column;
		justify-content: center;
	}
}

.hero__title {
	font-family: var(--font-heading);
	font-size: clamp(2rem, 5vw, 3.5rem);
	line-height: 1.15;
	margin-bottom: var(--space-md);
	font-weight: 600;
	letter-spacing: -0.03em;
	color: var(--color-surface);
}

.hero__subtitle {
	font-size: clamp(1rem, 2vw, 1.25rem);
	line-height: 1.6;
	opacity: 0.9;
	margin-bottom: var(--space-lg);
	max-width: 560px;
}

.hero__ctas {
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
}

@media (min-width: 480px) {
	.hero__ctas {
		flex-direction: row;
	}
}

.hero__offers {
	position: relative;
	z-index: 1;
}

@media (max-width: 1023px) {
	.hero__offers {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x mandatory;
		display: flex;
		gap: var(--space-sm);
		padding-bottom: var(--space-sm);
	}
}

@media (min-width: 1024px) {
	.hero__offers {
		display: flex;
		flex-direction: column;
		gap: var(--space-sm);
	}
}

/* Hero Product Page Variant */
.hero--product {
	min-height: 50vh;
}

.hero--product::after {
	display: none;
}

/* Hero Kontakt Page */
.hero--contact {
	background-color: var(--color-primary);
	background-image:
		linear-gradient(
			to right,
			rgba(11, 46, 79, 0.88) 0%,
			rgba(11, 46, 79, 0.55) 50%,
			rgba(11, 46, 79, 0.2) 100%
		),
		url('../images/contact-hero-bg.png');
	background-size: cover, cover;
	background-position: center, center right;
	background-repeat: no-repeat;
	min-height: auto;
	padding: clamp(7rem, 15vw, 10rem) 0 clamp(3.5rem, 8vw, 5rem);
	position: relative;
	overflow: hidden;
}

.hero--contact::before {
	display: none;
}

.hero--contact::after {
	display: none;
}

.hero--contact .hero__inner {
	position: relative;
	z-index: 1;
	max-width: var(--container-max);
	margin: 0 auto;
}

.hero--contact .hero__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
}

.hero--contact .vmc-breadcrumb {
	margin-bottom: 2rem;
}

.hero--contact .hero__title {
	font-size: clamp(2.25rem, 5.5vw, 3.25rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.15;
	margin-bottom: 1rem;
	color: var(--color-surface);
}

.hero--contact .hero__title span {
	color: var(--color-accent);
}

.hero--contact .hero__badge {
	display: inline-block;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	color: var(--color-accent);
	border: 1px solid rgba(209, 123, 0, 0.4);
	border-radius: 100px;
	padding: 0.35rem 1rem;
	margin-bottom: 1.25rem;
	background: rgba(209, 123, 0, 0.08);
}

.hero--contact .hero__subtitle {
	font-size: clamp(1.02rem, 2vw, 1.15rem);
	max-width: none;
	color: rgba(255, 255, 255, 0.78);
	line-height: 1.65;
	margin-bottom: 0;
}

.hero--contact .hero__subtitle a {
	color: #fff;
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, 0.35);
	transition: border-color 0.2s;
}

.hero--contact .hero__subtitle a:hover {
	border-bottom-color: var(--color-accent);
}

/* ── Kfz-Säulen (3 Pillars) ──────────────────────────────── */
.kfz-pillars {
	padding: var(--space-2xl) 0;
	background: var(--color-bg);
}

.kfz-pillars .section__header {
	text-align: center;
	margin-bottom: var(--space-xl);
}

.kfz-pillars__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	max-width: 1060px;
	margin: 0 auto;
}

@media (max-width: 768px) {
	.kfz-pillars__grid {
		grid-template-columns: 1fr;
		max-width: 420px;
	}
}

.kfz-pillar {
	position: relative;
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 14px;
	padding: 2rem 1.75rem 1.75rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.kfz-pillar:hover {
	transform: translateY(-6px);
	box-shadow: 0 12px 32px rgba(11, 46, 79, 0.1), 0 4px 8px rgba(11, 46, 79, 0.05);
}

.kfz-pillar__badge {
	position: absolute;
	top: -11px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0.25rem 0.85rem;
	border-radius: 100px;
	color: #fff;
}

.kfz-pillar--basic .kfz-pillar__badge {
	background: var(--color-primary);
}

.kfz-pillar--mid .kfz-pillar__badge {
	background: var(--color-secondary);
}

.kfz-pillar--full .kfz-pillar__badge {
	background: var(--color-accent);
}

.kfz-pillar__icon {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 0.25rem;
}

.kfz-pillar--basic .kfz-pillar__icon {
	background: rgba(11, 46, 79, 0.07);
	color: var(--color-primary);
}

.kfz-pillar--mid .kfz-pillar__icon {
	background: rgba(31, 95, 168, 0.08);
	color: var(--color-secondary);
}

.kfz-pillar--full .kfz-pillar__icon {
	background: rgba(209, 123, 0, 0.08);
	color: var(--color-accent);
}

.kfz-pillar__name {
	font-family: var(--font-heading);
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--color-primary);
	letter-spacing: -0.01em;
}

.kfz-pillar__desc {
	font-size: 0.92rem;
	color: var(--color-muted);
	line-height: 1.6;
}

.kfz-pillar__list {
	list-style: none;
	padding: 0;
	margin: 0.5rem 0 0;
	width: 100%;
	text-align: left;
	border-top: 1px solid var(--color-border);
	padding-top: 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.kfz-pillar__list li {
	font-size: 0.88rem;
	color: var(--color-text);
	padding-left: 1.4rem;
	position: relative;
	line-height: 1.45;
}

.kfz-pillar__list li::before {
	content: '✓';
	position: absolute;
	left: 0;
	font-weight: 700;
	color: var(--color-secondary);
}

.kfz-pillar--full .kfz-pillar__list li::before {
	color: var(--color-accent);
}

/* E-E-A-T: Expertenhinweis (Produktseiten) – Aufgabe 12 Ergänzung */
.vmc-expert-badge {
	display: flex;
	align-items: center;
	gap: 12px;
	background: var(--color-background, #F8F6F1);
	border: 1px solid var(--color-border, #E0E4EA);
	border-radius: 8px;
	padding: 0.875rem 1.25rem;
	margin: 1.5rem 0;
	max-width: 600px;
}

.vmc-expert-badge img {
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}

.vmc-expert-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.vmc-expert-text strong {
	font-size: 0.9rem;
	color: var(--color-primary, #0B2E4F);
}

.vmc-expert-text span {
	font-size: 0.8rem;
	color: var(--color-muted, #666);
}

/* ==========================================================================
   6. OFFERS CARDS
   ========================================================================== */

.offer-card {
	background-color: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: var(--radius-lg);
	padding: var(--space-md);
	min-width: 280px;
	scroll-snap-align: start;
	transition: background-color var(--transition), border-color var(--transition);
}

.offer-card:hover {
	background-color: rgba(255, 255, 255, 0.15);
	border-color: rgba(255, 255, 255, 0.25);
}

.offer-card__badge {
	display: inline-block;
	background-color: var(--color-accent);
	color: #FFFFFF;
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 4px 12px;
	border-radius: 100px;
	margin-bottom: var(--space-sm);
}

.offer-card__title {
	font-family: var(--font-heading);
	font-size: 1.25rem;
	font-weight: 600;
	letter-spacing: -0.02em;
	margin-bottom: var(--space-xs);
	color: var(--color-surface);
}

.offer-card__text {
	font-size: 0.9rem;
	opacity: 0.85;
	line-height: 1.5;
}

/* ==========================================================================
   7. PRODUCT TILES
   ========================================================================== */

.products {
	padding: var(--space-xl) 0;
	background: linear-gradient(180deg, var(--color-bg) 0%, var(--color-surface) 100%);
}

.products .section__header {
	margin-bottom: var(--space-lg);
}

.products .section__header h2 {
	font-size: clamp(1.5rem, 3.5vw, 2.25rem);
}

.products__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.85rem;
}

@media (min-width: 600px) {
	.products__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (min-width: 900px) {
	.products__grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 1rem;
	}
}

.product-tile {
	background-color: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 10px;
	padding: 1.25rem 1rem 1rem;
	text-align: left;
	text-decoration: none;
	color: var(--color-text);
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	position: relative;
	overflow: hidden;
}

.product-tile::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--color-secondary), var(--color-accent));
	opacity: 0;
	transition: opacity 0.25s ease;
}

.product-tile:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(11, 46, 79, 0.1), 0 2px 6px rgba(11, 46, 79, 0.06);
	border-color: var(--color-secondary);
	color: var(--color-text);
}

.product-tile:hover::before {
	opacity: 1;
}

.product-tile__icon {
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--color-bg);
	border-radius: 12px;
	color: var(--color-secondary);
	margin-bottom: 0.15rem;
	background: linear-gradient(135deg, rgba(31, 95, 168, 0.08), rgba(31, 95, 168, 0.04));
}

.product-tile:hover .product-tile__icon {
	background: linear-gradient(135deg, rgba(31, 95, 168, 0.14), rgba(209, 123, 0, 0.08));
}

.product-tile__icon .vmc-icon {
	width: 24px;
	height: 24px;
}

.product-tile__name {
	font-family: var(--font-heading);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--color-primary);
	line-height: 1.25;
}

.product-tile__teaser {
	font-size: 0.82rem;
	color: var(--color-muted);
	line-height: 1.5;
	flex-grow: 1;
}

.product-tile__arrow {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	color: var(--color-secondary);
	font-size: 0.78rem;
	font-weight: 600;
	margin-top: auto;
	transition: gap 0.25s ease;
}

.product-tile__arrow::before {
	content: 'Mehr erfahren';
}

.product-tile__arrow::after {
	content: '→';
	transition: transform 0.25s ease;
}

.product-tile__arrow .vmc-icon {
	display: none;
}

.product-tile:hover .product-tile__arrow {
	gap: 0.55rem;
}

.product-tile:hover .product-tile__arrow::after {
	transform: translateX(2px);
}

/* Gewerbeversicherungen */
.gewerbe {
	padding: var(--space-2xl) 0;
	background-color: var(--color-surface);
	border-top: 1px solid var(--color-border);
	border-bottom: 1px solid var(--color-border);
}

.section__label {
	display: block;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--color-secondary);
	margin-bottom: var(--space-xs);
}

.gewerbe__list {
	list-style: none;
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-sm);
	margin-bottom: var(--space-xl);
	max-width: 560px;
	margin-inline: auto;
}

@media (min-width: 480px) {
	.gewerbe__list {
		grid-template-columns: 1fr 1fr;
		gap: var(--space-sm) var(--space-lg);
	}
}

.gewerbe__list li {
	display: flex;
	align-items: center;
	gap: 0.6em;
	font-size: 1.05rem;
	font-weight: 500;
	color: var(--color-primary);
}

.gewerbe__list li svg {
	flex-shrink: 0;
}

.gewerbe__cta {
	text-align: center;
}

/* ==========================================================================
   8. USP SECTION
   ========================================================================== */

.usp {
	padding: var(--space-2xl) 0;
	background-color: var(--color-bg);
	position: relative;
}

.usp::before {
	content: '';
	display: block;
	width: 60px;
	height: 3px;
	background: var(--color-accent);
	border-radius: 2px;
	margin: 0 auto var(--space-lg);
}

.usp__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg);
	align-items: stretch;
}

@media (min-width: 768px) {
	.usp__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.usp__grid {
		grid-template-columns: repeat(5, 1fr);
		gap: var(--space-md);
	}
}

/* Karten-Blöcke: klarer Rahmen, gleiche Höhe, Fließtext linksbündig */
.usp__item {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	text-align: left;
	height: 100%;
	margin: 0;
	padding: clamp(1rem, 2vw, 1.35rem);
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	transition: box-shadow var(--transition), transform var(--transition);
	hyphens: auto;
	-webkit-hyphens: auto;
	overflow-wrap: break-word;
}

.usp__item:hover {
	box-shadow: var(--shadow-md);
	transform: translateY(-2px);
}

.usp__icon {
	width: 52px;
	height: 52px;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--color-bg);
	border-radius: 50%;
	color: var(--color-accent);
	margin: 0 0 var(--space-sm) 0;
	box-shadow: inset 0 0 0 1px rgba(209, 123, 0, 0.15), var(--shadow-sm);
}

.usp__title {
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.35;
	color: var(--color-primary);
	margin: 0 0 var(--space-xs);
}

.usp__text {
	font-size: 0.9rem;
	color: var(--color-muted);
	line-height: 1.65;
	margin: 0;
	flex-grow: 1;
}

/* ==========================================================================
   9. TRUST / SOCIAL PROOF
   ========================================================================== */

.trust {
	padding: var(--space-2xl) 0;
	background-color: var(--color-surface);
}

.trust__header {
	text-align: center;
	margin-bottom: var(--space-xl);
}

.trust__rating {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-sm);
	margin-bottom: var(--space-xl);
	flex-wrap: wrap;
}

.trust__rating-score {
	font-family: var(--font-heading);
	font-size: 2.5rem;
	color: var(--color-accent);
}

.trust__rating-details {
	text-align: left;
}

.trust__rating-stars .stars {
	display: flex;
	gap: 2px;
}

.trust__rating-count {
	font-size: 0.9rem;
	color: var(--color-muted);
}

.trust__testimonials {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-md);
	margin-bottom: var(--space-xl);
}

@media (min-width: 768px) {
	.trust__testimonials {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.trust__testimonials {
		grid-template-columns: repeat(3, 1fr);
	}
}

.testimonial {
	background-color: var(--color-bg);
	border-radius: var(--radius-lg);
	padding: var(--space-lg);
	position: relative;
}

.testimonial::before {
	content: '\201C';
	font-family: var(--font-heading);
	font-size: 4rem;
	color: var(--color-accent);
	opacity: 0.3;
	position: absolute;
	top: var(--space-sm);
	left: var(--space-md);
	line-height: 1;
}

.testimonial__text {
	font-size: 1rem;
	line-height: 1.7;
	margin-bottom: var(--space-md);
	position: relative;
	z-index: 1;
}

.testimonial__author {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
}

.testimonial__avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background-color: var(--color-secondary);
	color: var(--color-surface);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 1.1rem;
	flex-shrink: 0;
}

.testimonial__name {
	font-weight: 600;
	font-size: 0.95rem;
}

.testimonial__stars {
	display: flex;
	gap: 2px;
}

/* Broker Portrait */
.trust__broker {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg);
	align-items: center;
	margin-top: var(--space-xl);
	padding: var(--space-lg);
	background-color: var(--color-bg);
	border-radius: var(--radius-lg);
}

.trust__broker + .trust__header {
	margin-top: var(--space-2xl);
}

@media (min-width: 768px) {
	.trust__broker {
		grid-template-columns: auto 1fr;
	}
}

.trust__broker-photo {
	width: 220px;
	height: 300px;
	border-radius: 14px;
	object-fit: cover;
	border: 4px solid var(--color-surface);
	box-shadow: var(--shadow-md);
	margin: 0 auto;
}

.trust__broker-photo--placeholder {
	width: 160px;
	height: 160px;
	border-radius: 50%;
	background-color: var(--color-secondary);
	color: var(--color-surface);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 3rem;
	font-weight: 700;
	margin: 0 auto;
	border: 4px solid var(--color-surface);
	box-shadow: var(--shadow-md);
}

.trust__broker-info h3 {
	margin-bottom: var(--space-xs);
}

.trust__broker-bio {
	color: var(--color-muted);
	margin-bottom: var(--space-sm);
}

ul.trust__broker-bio {
	padding-left: 1.2rem;
	margin-bottom: var(--space-md);
}

ul.trust__broker-bio li + li {
	margin-top: 0.5rem;
}

.trust__badge {
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
	padding: var(--space-xs) var(--space-sm);
	background-color: var(--color-primary);
	color: var(--color-surface);
	border-radius: var(--radius);
	font-size: 0.85rem;
	font-weight: 600;
}

.trust__badge--button {
	cursor: pointer;
	border: none;
}

.license-info-dialog {
	position: fixed;
	inset: 0;
	display: none;
	z-index: 1200;
}

.license-info-dialog--open {
	display: block;
}

.license-info-dialog__overlay {
	position: absolute;
	inset: 0;
	background: rgba(11, 46, 79, 0.5);
}

.license-info-dialog__panel {
	position: relative;
	max-width: 560px;
	margin: 10vh auto 0;
	background: var(--color-surface);
	color: var(--color-text);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-lg);
	padding: var(--space-lg);
	z-index: 1;
}

.license-info-dialog__panel h3 {
	margin-bottom: var(--space-sm);
	color: var(--color-primary);
}

.license-info-dialog__panel p {
	margin-bottom: var(--space-sm);
	line-height: 1.7;
}

/* ==========================================================================
   10. HOW IT WORKS (3 Steps)
   ========================================================================== */

.steps {
	padding: var(--space-2xl) 0;
}

.steps__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg);
	position: relative;
}

@media (min-width: 768px) {
	.steps__grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.steps__grid::before {
		content: '';
		position: absolute;
		top: 40px;
		left: calc(16.67% + 24px);
		right: calc(16.67% + 24px);
		height: 2px;
		background: linear-gradient(to right, var(--color-border), var(--color-secondary), var(--color-border));
	}
}

.step {
	text-align: center;
	position: relative;
}

.step__number {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background-color: var(--color-surface);
	border: 3px solid var(--color-secondary);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto var(--space-md);
	position: relative;
	z-index: 1;
}

.step__number-text {
	font-family: var(--font-heading);
	font-size: 1.75rem;
	color: var(--color-secondary);
}

.step__icon {
	color: var(--color-secondary);
	margin-bottom: var(--space-xs);
}

.step__title {
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 1.1rem;
	color: var(--color-primary);
	margin-bottom: var(--space-xs);
}

.step__text {
	font-size: 0.95rem;
	color: var(--color-muted);
	max-width: 280px;
	margin-inline: auto;
}

/* ==========================================================================
   11. FAQ ACCORDION
   ========================================================================== */

.faq {
	padding: var(--space-2xl) 0;
	background-color: var(--color-surface);
}

.faq__list {
	max-width: 800px;
	margin-inline: auto;
}

.faq__item {
	border-bottom: 1px solid var(--color-border);
}

.faq__question {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--space-md) 0;
	background: none;
	border: none;
	cursor: pointer;
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 1.05rem;
	color: var(--color-primary);
	text-align: left;
	gap: var(--space-sm);
	transition: color var(--transition);
}

.faq__question:hover {
	color: var(--color-secondary);
}

.faq__icon {
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	position: relative;
	transition: transform 0.3s ease;
}

.faq__icon::before,
.faq__icon::after {
	content: '';
	position: absolute;
	background-color: currentColor;
	transition: transform 0.3s ease;
}

.faq__icon::before {
	top: 50%;
	left: 4px;
	right: 4px;
	height: 2px;
	transform: translateY(-50%);
}

.faq__icon::after {
	left: 50%;
	top: 4px;
	bottom: 4px;
	width: 2px;
	transform: translateX(-50%);
}

.faq__item--open .faq__icon::after {
	transform: translateX(-50%) rotate(90deg);
	opacity: 0;
}

.faq__answer {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.35s ease, padding 0.35s ease;
}

.faq__item--open .faq__answer {
	max-height: 500px;
}

.faq__answer-inner {
	padding-bottom: var(--space-md);
	color: var(--color-muted);
	line-height: 1.7;
}

/* ==========================================================================
   11b. CONTACT FORM
   ========================================================================== */

.contact {
	padding: var(--space-xl) 0;
	background-color: var(--color-surface);
}

.contact__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg);
	max-width: 1000px;
	margin: 0 auto;
}

@media (min-width: 768px) {
	.contact__layout {
		grid-template-columns: 1fr 1fr;
	}
}

.contact__info {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}

.contact__info-card {
	background: var(--color-background, #F8F6F1);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-md);
}

.contact__info-card h3 {
	font-size: 1rem;
	margin-bottom: 0.75rem;
	color: var(--color-primary);
}

.contact__info-item {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: 0.5rem;
	font-size: 0.92rem;
	color: var(--color-text);
}

.contact__info-item:last-child {
	margin-bottom: 0;
}

.contact__info-item svg {
	flex-shrink: 0;
	color: var(--color-secondary);
}

.contact__info-item a {
	color: var(--color-secondary);
	text-decoration: none;
}

.contact__info-item a:hover {
	text-decoration: underline;
}

.contact__form-card {
	background: #fff;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-md);
	box-shadow: var(--shadow-sm);
}

.contact__form-card h3 {
	font-size: 1.1rem;
	margin-bottom: var(--space-sm);
	color: var(--color-primary);
}

.vmc-form__group {
	margin-bottom: 1rem;
}

.vmc-form__label {
	display: block;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--color-text);
	margin-bottom: 0.35rem;
}

.vmc-form__input,
.vmc-form__select,
.vmc-form__textarea {
	width: 100%;
	padding: 0.65rem 0.85rem;
	font-size: 0.92rem;
	font-family: var(--font-body);
	border: 1px solid var(--color-border);
	border-radius: 6px;
	background-color: #fff;
	color: var(--color-text);
	transition: border-color var(--transition), box-shadow var(--transition);
	box-sizing: border-box;
}

.vmc-form__input:focus,
.vmc-form__select:focus,
.vmc-form__textarea:focus {
	outline: none;
	border-color: var(--color-secondary);
	box-shadow: 0 0 0 3px rgba(31, 95, 168, 0.12);
}

.vmc-form__textarea {
	resize: vertical;
	min-height: 100px;
}

.vmc-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem;
}

@media (max-width: 479px) {
	.vmc-form__row {
		grid-template-columns: 1fr;
	}
}

.vmc-form__toggle-group {
	display: flex;
	gap: 0;
	border: 1px solid var(--color-border);
	border-radius: 6px;
	overflow: hidden;
}

.vmc-form__toggle-input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.vmc-form__toggle-label {
	flex: 1;
	text-align: center;
	padding: 0.6rem 1rem;
	font-size: 0.88rem;
	font-weight: 600;
	cursor: pointer;
	background: #fff;
	color: var(--color-muted);
	border-right: 1px solid var(--color-border);
	transition: background-color var(--transition), color var(--transition);
}

.vmc-form__toggle-label:last-of-type {
	border-right: none;
}

.vmc-form__toggle-input:checked + .vmc-form__toggle-label {
	background-color: var(--color-primary);
	color: #fff;
}

.vmc-form__checkbox-group {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.4rem;
}

@media (max-width: 479px) {
	.vmc-form__checkbox-group {
		grid-template-columns: 1fr;
	}
}

.vmc-form__checkbox-item {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	font-size: 0.85rem;
	color: var(--color-text);
	cursor: pointer;
}

.vmc-form__checkbox-item input[type="checkbox"] {
	width: 16px;
	height: 16px;
	accent-color: var(--color-secondary);
	flex-shrink: 0;
}

.vmc-form__consent {
	font-size: 0.78rem;
	color: var(--color-muted);
	line-height: 1.5;
	margin-bottom: 1rem;
}

.vmc-form__consent a {
	color: var(--color-secondary);
}

.vmc-form__submit {
	width: 100%;
}

/* Gewerbe-Optionen: initial ausgeblendet */
.vmc-form__gewerbe-options {
	display: none;
}

.vmc-form__gewerbe-options--visible {
	display: grid;
}

/* ==========================================================================
   12. CTA BLOCK
   ========================================================================== */

.cta-block {
	padding: var(--space-xl) 0;
	text-align: center;
}

.cta-block--dark {
	background: linear-gradient(135deg, var(--color-primary) 0%, #0a2540 100%);
	color: var(--color-surface);
}

.cta-block--dark h2 {
	color: var(--color-surface);
}

.cta-block--accent {
	background: linear-gradient(135deg, var(--color-accent) 0%, #b86a00 100%);
	color: var(--color-surface);
}

.cta-block--accent h2 {
	color: var(--color-surface);
}

/* Better button contrast on orange CTA background */
.cta-block--accent .btn--primary {
	background-color: var(--color-surface);
	color: var(--color-primary);
	border-color: var(--color-surface);
	box-shadow: 0 6px 16px rgba(11, 46, 79, 0.22);
}

.cta-block--accent .btn--primary:hover {
	background-color: #f2f6fb;
	border-color: #f2f6fb;
	color: var(--color-primary);
}

.cta-block--accent .btn--secondary {
	background-color: rgba(11, 46, 79, 0.22);
	color: var(--color-surface);
	border-color: var(--color-surface);
}

.cta-block--accent .btn--secondary:hover {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-surface);
}

.cta-block__title {
	font-size: clamp(1.5rem, 4vw, 2.5rem);
	margin-bottom: var(--space-sm);
}

.cta-block__text {
	font-size: 1.1rem;
	opacity: 0.9;
	margin-bottom: var(--space-lg);
	max-width: 600px;
	margin-inline: auto;
}

.cta-block__buttons {
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
	align-items: center;
	justify-content: center;
}

@media (min-width: 480px) {
	.cta-block__buttons {
		flex-direction: row;
	}
}

/* Related products (interne Verlinkung Produktseiten) – Aufgabe 8 Ergänzung */
.vmc-related-products {
	padding: 3rem 0;
	background: var(--color-background);
}

.vmc-related-products h2 {
	font-size: 1.3rem;
	margin-bottom: 1.5rem;
	color: var(--color-primary);
}

.vmc-related-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
}

@media (max-width: 768px) {
	.vmc-related-grid {
		grid-template-columns: 1fr;
	}
}

.vmc-related-card {
	display: block;
	padding: 1.25rem;
	text-decoration: none;
	border: 1px solid var(--color-border, #E0E4EA);
	border-radius: 8px;
	background: var(--color-surface, #fff);
	transition: border-color 0.2s, box-shadow 0.2s;
}

.vmc-related-card:hover {
	border-color: var(--color-secondary, #1F5FA8);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.vmc-related-title {
	display: block;
	font-weight: 600;
	color: var(--color-primary, #0B2E4F);
	margin-bottom: 0.25rem;
}

.vmc-related-desc {
	display: block;
	font-size: 0.875rem;
	color: var(--color-muted, #666);
}

.vmc-related-card:focus-visible {
	outline: 2px solid var(--color-secondary, #1F5FA8);
	outline-offset: 3px;
}

/* ==========================================================================
   13. STICKY CTA BAR
   ========================================================================== */

.sticky-cta {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background-color: var(--color-surface);
	box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
	z-index: 999;
	padding: var(--space-sm);
	transform: translateY(100%);
	transition: transform 0.35s ease;
}

.sticky-cta--visible {
	transform: translateY(0);
}

.sticky-cta__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-sm);
	max-width: var(--container-max);
	margin-inline: auto;
}

.sticky-cta__close {
	position: absolute;
	top: 4px;
	right: 8px;
	background: none;
	border: none;
	font-size: 1.25rem;
	cursor: pointer;
	color: var(--color-muted);
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: background-color var(--transition);
}

@media (min-width: 768px) {
	.sticky-cta__close {
		display: none;
	}
}

.sticky-cta__close:hover {
	background-color: var(--color-bg);
}

.sticky-cta .btn {
	padding: 10px 20px;
	font-size: 0.9rem;
}

@media (min-width: 768px) {
	.sticky-cta .btn {
		padding: 14px 28px;
		font-size: 1rem;
	}
}

/* ==========================================================================
   14. PRODUCT PAGE
   ========================================================================== */

.product-benefits {
	padding: var(--space-2xl) 0;
}

.product-benefits__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-md);
}

@media (min-width: 768px) {
	.product-benefits__list {
		grid-template-columns: repeat(2, 1fr);
	}
}

.product-benefit {
	display: flex;
	gap: var(--space-sm);
	align-items: flex-start;
}

.product-benefit__icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: rgba(31, 95, 168, 0.1);
	border-radius: 50%;
	color: var(--color-secondary);
}

.product-benefit__text {
	font-size: 1.05rem;
	line-height: 1.5;
}

/* Target Audience */
.product-audience {
	padding: var(--space-2xl) 0;
	background-color: var(--color-surface);
}

.product-audience__content {
	max-width: 800px;
	margin-inline: auto;
}

.product-audience__content p {
	color: var(--color-muted);
}

/* Coverage Overview */
.product-coverage {
	padding: var(--space-2xl) 0;
}

.product-coverage__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg);
}

@media (min-width: 768px) {
	.product-coverage__grid {
		grid-template-columns: 1fr 1fr;
	}
}

.product-coverage__col {
	padding: var(--space-lg);
	border-radius: var(--radius-lg);
}

.product-coverage__col--included {
	background-color: rgba(31, 95, 168, 0.05);
	border: 1px solid rgba(31, 95, 168, 0.15);
}

.product-coverage__col--excluded {
	background-color: rgba(209, 123, 0, 0.05);
	border: 1px solid rgba(209, 123, 0, 0.15);
}

.product-coverage__col h3 {
	margin-bottom: var(--space-md);
}

.product-coverage__col ul {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
}

.product-coverage__col li {
	display: flex;
	align-items: flex-start;
	gap: var(--space-xs);
	font-size: 0.95rem;
	line-height: 1.6;
}

.product-coverage__col--included li::before {
	content: '✓';
	color: var(--color-secondary);
	font-weight: 700;
	flex-shrink: 0;
}

.product-coverage__col--excluded li::before {
	content: '✗';
	color: var(--color-accent);
	font-weight: 700;
	flex-shrink: 0;
}

/* Common Mistakes */
.product-mistakes {
	padding: var(--space-2xl) 0;
	background-color: var(--color-surface);
}

.product-mistakes__list {
	max-width: 800px;
	margin-inline: auto;
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}

.product-mistake {
	display: flex;
	gap: var(--space-sm);
	align-items: flex-start;
	padding: var(--space-md);
	background-color: var(--color-bg);
	border-radius: var(--radius-lg);
	border-left: 4px solid var(--color-accent);
}

.product-mistake__icon {
	flex-shrink: 0;
	color: var(--color-accent);
}

.product-mistake__text {
	line-height: 1.6;
}

/* Why VMC (Product Page) */
.product-why-vmc {
	padding: var(--space-2xl) 0;
}

.product-why-vmc__content {
	max-width: 800px;
	margin-inline: auto;
	text-align: center;
}

.product-why-vmc__content p {
	color: var(--color-muted);
	margin-bottom: var(--space-md);
}

/* ==========================================================================
   15. ARCHIVE / VERSICHERUNG LIST
   ========================================================================== */

.archive-hero {
	background: linear-gradient(135deg, var(--color-primary) 0%, #0a2540 100%);
	color: var(--color-surface);
	padding: var(--space-xl) 0;
	text-align: center;
}

.archive-hero h1 {
	color: var(--color-surface);
}

.archive-hero p {
	opacity: 0.9;
	max-width: 600px;
	margin-inline: auto;
}

.archive-grid {
	padding: var(--space-2xl) 0;
}

.archive-grid__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-md);
}

@media (min-width: 480px) {
	.archive-grid__list {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.archive-grid__list {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ==========================================================================
   16. FOOTER
   ========================================================================== */

.footer {
	background-color: var(--color-primary);
	color: rgba(255, 255, 255, 0.8);
	padding: var(--space-2xl) 0 var(--space-lg);
}

.footer a {
	color: rgba(255, 255, 255, 0.8);
	transition: color var(--transition);
}

.footer a:hover {
	color: var(--color-surface);
}

.footer__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-xl);
	margin-bottom: var(--space-xl);
}

@media (min-width: 768px) {
	.footer__grid {
		grid-template-columns: 2fr 1fr 1fr 1fr;
	}
}

.footer__brand {
	max-width: 320px;
}

.footer__logo {
	margin-bottom: var(--space-md);
}

.footer__logo img {
	height: 44px;
	width: auto;
	filter: brightness(0) invert(1);
}

.footer__description {
	font-size: 0.9rem;
	line-height: 1.7;
	margin-bottom: var(--space-md);
}

.footer__badge {
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
	padding: var(--space-xs) var(--space-sm);
	background-color: rgba(255, 255, 255, 0.1);
	border-radius: var(--radius);
	font-size: 0.8rem;
	font-weight: 600;
}

.footer__heading {
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 1rem;
	color: var(--color-surface);
	margin-bottom: var(--space-md);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.footer__links {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
}

.footer__link {
	font-size: 0.9rem;
	padding: 2px 0;
}

.footer__contact-item {
	display: flex;
	align-items: flex-start;
	gap: var(--space-xs);
	margin-bottom: var(--space-sm);
	font-size: 0.9rem;
}

.footer__contact-icon {
	flex-shrink: 0;
	margin-top: 3px;
	color: var(--color-accent);
}

/* Social-Media-Zeile unter dem Footer-Grid */
.footer__social-wrap {
	margin-bottom: var(--space-xl);
	padding-bottom: var(--space-lg);
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-sm) var(--space-lg);
}

.footer__social-wrap--compact {
	margin-bottom: var(--space-md);
	padding-bottom: var(--space-md);
}

.footer__social-label {
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 0.85rem;
	color: var(--color-surface);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin: 0;
}

.footer__social {
	margin: 0;
}

.footer__social-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.footer__social-link {
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: rgba(255, 255, 255, 0.12);
	border-radius: 8px;
	color: rgba(255, 255, 255, 0.92);
	transition: background-color var(--transition), color var(--transition), transform var(--transition);
}

.footer__social-link:hover {
	background-color: var(--color-accent);
	color: var(--color-primary);
	transform: translateY(-1px);
}

.footer__social-link:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

.footer__social-icon {
	display: block;
	flex-shrink: 0;
}

.footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	padding-top: var(--space-md);
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
	align-items: center;
	text-align: center;
}

@media (min-width: 768px) {
	.footer__bottom {
		flex-direction: row;
		justify-content: space-between;
		text-align: left;
	}
}

.footer__copyright {
	font-size: 0.85rem;
}

.footer__legal {
	display: flex;
	gap: var(--space-md);
	font-size: 0.85rem;
}

/* ==========================================================================
   17. 404 PAGE
   ========================================================================== */

.page-404 {
	min-height: 60vh;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: var(--space-2xl) 0;
}

.page-404__code {
	font-family: var(--font-heading);
	font-size: clamp(6rem, 15vw, 12rem);
	color: var(--color-border);
	line-height: 1;
	margin-bottom: var(--space-md);
}

.page-404__title {
	margin-bottom: var(--space-sm);
}

.page-404__text {
	color: var(--color-muted);
	margin-bottom: var(--space-lg);
	max-width: 480px;
	margin-inline: auto;
}

/* ==========================================================================
   18. UTILITIES
   ========================================================================== */

/* ==========================================================================
   18A. LEGAL PAGES
   ========================================================================== */

.legal-hero {
	background: linear-gradient(135deg, var(--color-primary) 0%, #0a2540 100%);
	color: var(--color-surface);
	padding: var(--space-xl) 0;
}

.legal-hero h1,
.legal-hero h2,
.legal-hero h3 {
	color: var(--color-surface);
}

.legal-hero__inner {
	max-width: 840px;
}

.legal-hero__meta {
	display: inline-flex;
	flex-wrap: wrap;
	gap: var(--space-xs);
	margin-bottom: var(--space-md);
}

.legal-hero__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 6px 12px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 999px;
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.9);
}

.legal-hero__text {
	max-width: 760px;
	opacity: 0.92;
	font-size: 1.05rem;
}

.legal-page {
	padding: var(--space-2xl) 0;
}

.legal-page__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg);
	align-items: start;
}

@media (min-width: 1024px) {
	.legal-page__layout {
		grid-template-columns: minmax(0, 280px) minmax(0, 1fr);
		gap: var(--space-xl);
	}
}

.legal-page__sidebar {
	display: grid;
	gap: var(--space-md);
}

@media (min-width: 1024px) {
	.legal-page__sidebar {
		position: sticky;
		top: 96px;
	}
}

.legal-card {
	background-color: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	padding: var(--space-lg);
}

.legal-card h2,
.legal-card h3 {
	margin-bottom: var(--space-sm);
}

.legal-card p:last-child,
.legal-card ul:last-child,
.legal-card ol:last-child {
	margin-bottom: 0;
}

.legal-toc {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.legal-toc a {
	color: var(--color-text);
	font-weight: 500;
	line-height: 1.5;
}

.legal-toc a:hover {
	color: var(--color-secondary);
}

.legal-page__content {
	display: grid;
	gap: var(--space-lg);
}

.legal-section h2 {
	margin-bottom: var(--space-sm);
}

.legal-section h3 {
	margin-top: var(--space-md);
}

.legal-section p,
.legal-section li {
	color: var(--color-muted);
}

.legal-section ul,
.legal-section ol {
	display: grid;
	gap: 0.65rem;
	padding-left: 1.25rem;
	list-style: initial;
}

.legal-section ol {
	list-style: decimal;
}

.legal-section strong {
	color: var(--color-primary);
}

.legal-address {
	font-style: normal;
	color: var(--color-muted);
	line-height: 1.8;
}

.legal-meta {
	display: grid;
	gap: var(--space-sm);
}

.legal-meta__item {
	padding: var(--space-sm);
	background-color: var(--color-bg);
	border-radius: var(--radius);
	border: 1px solid var(--color-border);
}

.legal-meta__label {
	display: block;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--color-primary);
	margin-bottom: 0.25rem;
}

.legal-note {
	padding: var(--space-md);
	background-color: rgba(209, 123, 0, 0.08);
	border-left: 4px solid var(--color-accent);
	border-radius: var(--radius);
	color: var(--color-text);
}

.legal-note p:last-child {
	margin-bottom: 0;
}

.text-center { text-align: center; }
.text-left { text-align: left; }
.mt-sm { margin-top: var(--space-sm); }
.mt-md { margin-top: var(--space-md); }
.mt-lg { margin-top: var(--space-lg); }
.mt-xl { margin-top: var(--space-xl); }
.mb-sm { margin-bottom: var(--space-sm); }
.mb-md { margin-bottom: var(--space-md); }
.mb-lg { margin-bottom: var(--space-lg); }
.mb-xl { margin-bottom: var(--space-xl); }

/* Stars */
.stars {
	display: inline-flex;
	gap: 2px;
	align-items: center;
}

.stars__star {
	width: 20px;
	height: 20px;
}

/* Skip to Content (a11y) */
.skip-link {
	position: absolute;
	top: -100%;
	left: var(--space-sm);
	background-color: var(--color-accent);
	color: #FFFFFF;
	padding: var(--space-sm) var(--space-md);
	z-index: 10000;
	border-radius: var(--radius);
	font-weight: 600;
	transition: top var(--transition);
}

.skip-link:focus {
	top: var(--space-sm);
}

/* ==========================================================================
   18. LEGAL PAGES (VMC)
   ========================================================================== */

.vmc-container {
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--space-sm);
}

@media (min-width: 768px) {
	.vmc-container {
		padding-inline: var(--space-md);
	}
}

@media (min-width: 1024px) {
	.vmc-container {
		padding-inline: var(--space-lg);
	}
}

.vmc-legal-page {
	padding-bottom: var(--space-2xl);
}

.vmc-legal-hero {
	padding: var(--space-xl) 0 var(--space-lg);
	background: linear-gradient(180deg, rgba(11, 46, 79, 0.08) 0%, rgba(248, 246, 241, 0.3) 100%);
	border-bottom: 1px solid var(--color-border);
}

.vmc-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: var(--space-sm);
	color: var(--color-muted);
	font-size: 0.95rem;
}

.vmc-breadcrumb span:last-child {
	color: var(--color-primary);
}

.vmc-legal-content {
	padding: var(--space-xl) 0;
}

.vmc-legal-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg);
}

@media (min-width: 960px) {
	.vmc-legal-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
	}
}

.vmc-legal-col {
	background-color: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-lg);
	box-shadow: var(--shadow-sm);
}

.vmc-legal-col h2 {
	margin-bottom: var(--space-md);
}

.vmc-legal-address {
	font-style: normal;
	line-height: 1.8;
	margin-bottom: var(--space-md);
}

.vmc-legal-contact-list {
	display: grid;
	gap: 0.75rem;
	margin-bottom: var(--space-md);
}

.vmc-legal-contact-list li {
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--color-border);
}

.vmc-legal-contact-list li:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.vmc-legal-block {
	margin-top: var(--space-sm);
	padding-top: var(--space-sm);
	border-top: 1px solid var(--color-border);
}

.vmc-legal-block h3 {
	margin-bottom: 0.5rem;
}

.vmc-legal-block p:last-child {
	margin-bottom: 0;
}

.vmc-legal-notices {
	padding-top: var(--space-sm);
}

.vmc-legal-notice-card {
	background-color: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-lg);
	box-shadow: var(--shadow-sm);
}

.vmc-legal-notice-card + .vmc-legal-notice-card {
	margin-top: var(--space-md);
}

.vmc-legal-notice-card h3 {
	margin-bottom: 0.75rem;
}

.vmc-legal-notice-card p:last-child {
	margin-bottom: 0;
}

.vmc-legal-date {
	margin-top: var(--space-sm);
	color: var(--color-muted);
	font-size: 0.95rem;
}

/* Privacy layout (TOC + content) */
.vmc-privacy-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg);
}

@media (min-width: 1024px) {
	.vmc-privacy-layout {
		grid-template-columns: 360px 1fr;
		align-items: start;
	}
}

.vmc-privacy-toc {
	background-color: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-md);
	box-shadow: var(--shadow-sm);
}

@media (min-width: 1024px) {
	.vmc-privacy-toc {
		position: sticky;
		top: 92px;
	}
}

.vmc-toc-title {
	font-weight: 700;
	color: var(--color-primary);
	cursor: pointer;
}

.vmc-toc-list {
	list-style: decimal;
	padding-left: 1.25rem;
	display: grid;
	gap: 0.5rem;
	margin-top: var(--space-sm);
	margin-bottom: 0;
}

.vmc-toc-list a {
	color: var(--color-secondary);
}

.vmc-toc-list a:hover {
	color: var(--color-primary);
}

.vmc-privacy-content {
	display: block;
}

.vmc-legal-notice--widerspruch {
	background-color: #FFF8E1;
	border: 1px solid #F9A825;
	border-left: 4px solid #F9A825;
	border-radius: var(--radius-lg);
	padding: var(--space-lg);
	margin-bottom: var(--space-md);
}

.vmc-legal-notice--widerspruch strong {
	display: block;
	font-size: 1.1rem;
	margin-bottom: 0.5rem;
	color: var(--color-primary);
}

.vmc-legal-notice--widerspruch p {
	margin-bottom: 0;
	color: var(--color-text);
}

.vmc-privacy-section {
	background-color: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	padding: var(--space-lg);
	box-shadow: var(--shadow-sm);
}

.vmc-privacy-section + .vmc-privacy-section {
	margin-top: var(--space-md);
}

.vmc-legal-ref {
	color: var(--color-muted);
	font-size: 0.95em;
}

.vmc-legal-note {
	margin-top: var(--space-md);
	padding: var(--space-md);
	background-color: rgba(209, 123, 0, 0.08);
	border-left: 4px solid var(--color-accent);
	border-radius: var(--radius);
	color: var(--color-text);
}

/* ============================================================
   VMC LEGAL PAGES – Impressum & Datenschutzerklärung
   Ergänzung zu main.css – keine bestehenden Styles überschreiben
   ============================================================ */

/* ── Page Layout ─────────────────────────────────────────── */
.vmc-legal-page {
  min-height: 70vh;
}

/* ── Hero (schmal) ───────────────────────────────────────── */
.vmc-legal-hero {
  background-color: var(--color-primary);
  color: var(--color-surface);
  padding: 3rem 0 2.5rem;
}
.vmc-legal-hero h1 {
  margin: 0.5rem 0 0;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  color: var(--color-surface);
}
.vmc-legal-date {
  margin-top: 0.5rem;
  font-size: 0.9rem;
  opacity: 0.75;
}

/* ── Breadcrumb ──────────────────────────────────────────── */
.vmc-breadcrumb {
  font-size: 0.85rem;
  opacity: 0.8;
  display: flex;
  gap: 0.4rem;
  align-items: center;
}
.vmc-breadcrumb a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ── Impressum Grid (2 Spalten) ──────────────────────────── */
.vmc-legal-content {
  padding: 4rem 0;
}
.vmc-legal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  max-width: 900px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .vmc-legal-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

/* ── Impressum Blöcke ────────────────────────────────────── */
.vmc-legal-col h2 {
  font-size: 1.25rem;
  color: var(--color-primary);
  border-bottom: 2px solid var(--color-secondary);
  padding-bottom: 0.5rem;
  margin-bottom: 1.25rem;
}
.vmc-legal-block {
  margin-top: 1.75rem;
}
.vmc-legal-block h3 {
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-secondary);
  margin-bottom: 0.4rem;
}
.vmc-legal-address {
  font-style: normal;
  line-height: 1.8;
}
.vmc-legal-contact-list {
  list-style: none;
  padding: 0;
  margin: 1rem 0 0;
  line-height: 2;
}
.vmc-legal-contact-list a {
  color: var(--color-secondary);
}

/* ── Rechtliche Hinweise (Notice Cards) ──────────────────── */
.vmc-legal-notices {
  background-color: var(--color-bg);
  padding: 3rem 0 4rem;
}
.vmc-legal-notices .vmc-container {
  max-width: 900px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-auto-rows: 1fr;
  align-items: stretch;
  gap: 3rem;
}
@media (max-width: 768px) {
  .vmc-legal-notices .vmc-container {
    grid-template-columns: 1fr;
  }
}
.vmc-legal-notice-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 6px;
  padding: 1.5rem;
  height: 100%;
}
.vmc-legal-notices .vmc-legal-notice-card + .vmc-legal-notice-card {
  margin-top: 0;
}
.vmc-legal-notice-card h3 {
  font-size: 1rem;
  color: var(--color-primary);
  margin-bottom: 0.75rem;
}
.vmc-legal-notice-card p {
  font-size: 0.9rem;
  line-height: 1.7;
  margin: 0;
  color: var(--color-text);
}

/* ── Datenschutz Layout (TOC + Content) ──────────────────── */
.vmc-privacy-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 3rem;
  align-items: start;
  max-width: 1100px;
  margin: 0 auto;
}
@media (max-width: 900px) {
  .vmc-privacy-layout {
    grid-template-columns: 1fr;
  }
}

/* ── TOC (Inhaltsverzeichnis) ────────────────────────────── */
.vmc-privacy-toc {
  position: sticky;
  top: 80px;
}
.vmc-toc-details {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 6px;
  overflow: hidden;
}
.vmc-toc-title {
  font-weight: 600;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-primary);
  padding: 1rem 1.25rem;
  cursor: pointer;
  background: var(--color-bg);
  list-style: none;
}
.vmc-toc-list {
  padding: 0.75rem 1.25rem 1rem;
  margin: 0;
  list-style: decimal;
  font-size: 0.875rem;
  line-height: 2;
}
.vmc-toc-list a {
  color: var(--color-secondary);
  text-decoration: none;
}
.vmc-toc-list a:hover {
  text-decoration: underline;
}

/* ── Datenschutz Abschnitte ──────────────────────────────── */
.vmc-privacy-content {
  max-width: none;
  width: 100%;
}
.vmc-privacy-section {
  padding-bottom: 2.5rem;
  margin-bottom: 2.5rem;
  border-bottom: 1px solid var(--color-border);
}
.vmc-privacy-section:last-child {
  border-bottom: none;
}
.vmc-privacy-section h2 {
  font-size: 1.3rem;
  color: var(--color-primary);
  margin-bottom: 1rem;
}
.vmc-privacy-section h3 {
  font-size: 1rem;
  color: var(--color-secondary);
  margin: 1.25rem 0 0.4rem;
}
.vmc-privacy-section ul {
  padding-left: 1.25rem;
  line-height: 2;
}
.vmc-privacy-section p {
  line-height: 1.8;
}

/* ── Hilfsklassen ────────────────────────────────────────── */
.vmc-legal-ref {
  font-size: 0.8em;
  color: var(--color-muted);
  font-style: italic;
}
.vmc-legal-note {
  background: var(--color-bg);
  border-left: 3px solid var(--color-secondary);
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  border-radius: 0 4px 4px 0;
}

/* ============================================================
   MOBILE SAFETY OVERRIDES
   Ensure the phone layout wins reliably on smaller screens.
   ============================================================ */
@media (max-width: 767px) {
	.header__nav,
	.header__cta {
		display: none !important;
	}

	.header__toggle {
		display: flex !important;
	}

	.hero__inner,
	.products__grid,
	.usp__grid,
	.trust__testimonials,
	.product-benefits__list,
	.product-coverage__grid,
	.product-mistakes__grid,
	.archive-grid__list,
	.footer__grid {
		grid-template-columns: 1fr !important;
	}

	.cta-block__buttons,
	.hero__ctas,
	.sticky-cta__inner {
		flex-direction: column;
	}

	.trust__broker {
		grid-template-columns: 1fr;
	}

	.trust__broker-photo {
		width: min(220px, 100%);
		height: auto;
		aspect-ratio: 11 / 15;
	}
}

/* Print Styles */
@media print {
	.header,
	.footer,
	.sticky-cta,
	.mobile-nav {
		display: none !important;
	}

	body {
		background: #fff;
		color: #000;
		font-size: 12pt;
	}

	a[href]::after {
		content: ' (' attr(href) ')';
	}
}
