/* =============================================================
   MVZ-Arzt · Cinematic Design System
   Shared design tokens, materials, and utility classes consumed
   by every Elementor widget in the theme.

   Anything specific to one widget lives in that widget's PHP
   render method. Anything shared lives here.
============================================================= */

:root {
	--mvz-text-dark:        #1B1B3A;
	--mvz-text:             #2C2C2C;
	--mvz-text-soft:        #555555;
	--mvz-text-muted:       #888888;

	--mvz-brand-green:        #61CE70;
	--mvz-brand-green-dark:   #4FB85E;
	--mvz-brand-green-darker: #3FA04D;

	--mvz-card-from: #162C6D;
	--mvz-card-to:   #0A101D;
	--mvz-brand-deep:#1B1B3A;
	--mvz-brand-navy:#0A101D;

	--mvz-white:    #FFFFFF;
	--mvz-gray:     #F4F4F4;
	--mvz-cream:    #FAFAFA;
	--mvz-divider:  #EBEBEB;

	--mvz-font-display: 'Questrial', system-ui, sans-serif;
	--mvz-font-body:    'Overpass', system-ui, -apple-system, sans-serif;

	--mvz-ease-cinematic: cubic-bezier(0.22, 1, 0.36, 1);
	--mvz-ease-spring:    cubic-bezier(0.32, 0.72, 0, 1);
}

/* =============================================================
   Base reset (scoped — Elementor handles most resets, we just
   make sure our widgets render predictably)
============================================================= */
.mvz-section { font-family: var(--mvz-font-body); color: var(--mvz-text); }
.mvz-section *, .mvz-section *::before, .mvz-section *::after { box-sizing: border-box; }
.mvz-section img { max-width: 100%; display: block; height: auto; }
.mvz-section h1,
.mvz-section h2,
.mvz-section h3,
.mvz-section h4,
.mvz-section h5,
.mvz-section h6 {
	font-family: var(--mvz-font-display);
	font-weight: 400;
	color: var(--mvz-text-dark);
	margin: 0;
	line-height: 1.05;
	letter-spacing: -0.01em;
}
.mvz-section p { margin: 0; }
.mvz-section a { color: inherit; text-decoration: none; }

/* =============================================================
   Section wrappers
============================================================= */
.mvz-section { padding: 140px 0; position: relative; }
.mvz-section.is-cream { background: var(--mvz-cream); }
.mvz-section.is-white { background: var(--mvz-white); }
.mvz-section.is-dark  { background: var(--mvz-brand-navy); color: #fff; }
.mvz-section.is-dark-gradient { background: linear-gradient(180deg, #0A101D 0%, #1B1B3A 100%); color: #fff; }

.mvz-wrap        { max-width: 1240px; margin: 0 auto; padding: 0 32px; }
.mvz-wrap-narrow { max-width: 1040px; margin: 0 auto; padding: 0 32px; }

@media (max-width: 768px) {
	.mvz-section { padding: 100px 0; }
	.mvz-wrap, .mvz-wrap-narrow { padding: 0 24px; }
}

/* =============================================================
   Typography utilities
============================================================= */
.mvz-eyebrow {
	font-family: var(--mvz-font-body);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--mvz-text-soft);
}
.mvz-eyebrow.is-light  { color: rgba(255,255,255,0.55); }
.mvz-eyebrow.is-green  { color: var(--mvz-brand-green-darker); }
.mvz-eyebrow.is-bright { color: var(--mvz-brand-green); }

.mvz-sec-header { max-width: 780px; margin: 0 auto 50px; text-align: center; }
.mvz-sec-header.is-left { text-align: left; margin-left: 0; }
.mvz-sec-header h2 {
	font-size: clamp(38px, 4vw, 64px);
	line-height: 1.05;
	margin: 14px 0 18px;
}
.mvz-sec-header p {
	font-size: 17px; line-height: 1.7; color: var(--mvz-text-soft);
	max-width: 560px; margin: 0 auto;
}
.mvz-sec-header.on-dark h2 { color: #fff; }
.mvz-sec-header.on-dark p  { color: rgba(255,255,255,0.65); }

.mvz-text-silver-matte {
	background: linear-gradient(180deg, #0F172A 0%, rgba(15,23,42,0.4) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	filter: drop-shadow(0 10px 20px rgba(15,23,42,0.15));
}
.mvz-text-card-silver {
	background: linear-gradient(180deg, #FFFFFF 0%, #A1A1AA 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	filter: drop-shadow(0 12px 24px rgba(0,0,0,0.8));
}
.mvz-text-emerald-glow {
	color: var(--mvz-brand-green);
	text-shadow: 0 0 30px rgba(97,206,112,0.5), 0 0 60px rgba(97,206,112,0.25);
}

/* =============================================================
   Buttons
============================================================= */
.mvz-btn {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 14px 28px; border-radius: 999px;
	font-family: var(--mvz-font-body);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.04em;
	transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1);
	white-space: nowrap;
	border: none; cursor: pointer;
	text-decoration: none;
}
.mvz-btn-green {
	color: #fff;
	background: linear-gradient(180deg, #6FE07F 0%, #4FB85E 100%);
	box-shadow:
		0 0 0 1px rgba(63, 160, 77, 0.3),
		0 2px 4px rgba(63, 160, 77, 0.2),
		0 12px 32px -8px rgba(97, 206, 112, 0.6),
		inset 0 1px 1px rgba(255,255,255,0.4),
		inset 0 -3px 6px rgba(0,0,0,0.15);
}
.mvz-btn-green:hover {
	transform: translateY(-3px);
	background: linear-gradient(180deg, #76E886 0%, #58C067 100%);
	box-shadow:
		0 0 0 1px rgba(63, 160, 77, 0.4),
		0 6px 12px -2px rgba(63, 160, 77, 0.3),
		0 24px 48px -12px rgba(97, 206, 112, 0.7);
}
.mvz-btn-dark {
	color: #fff;
	background: linear-gradient(180deg, #27272A 0%, #18181B 100%);
	box-shadow: 0 0 0 1px rgba(255,255,255,0.1), 0 2px 4px rgba(0,0,0,0.6), 0 12px 24px -4px rgba(0,0,0,0.9), inset 0 1px 1px rgba(255,255,255,0.15);
}
.mvz-btn-dark:hover { transform: translateY(-3px); background: linear-gradient(180deg, #3F3F46 0%, #27272A 100%); }
.mvz-btn-light {
	color: #0F172A;
	background: linear-gradient(180deg, #FFFFFF 0%, #F1F5F9 100%);
	box-shadow: 0 0 0 1px rgba(0,0,0,0.05), 0 2px 4px rgba(0,0,0,0.1), 0 12px 24px -4px rgba(0,0,0,0.3), inset 0 1px 1px rgba(255,255,255,1);
}
.mvz-btn-light:hover { transform: translateY(-3px); }
.mvz-btn-ghost {
	color: var(--mvz-text-dark); padding: 12px 22px;
	border: 1px solid rgba(27,27,58,0.15);
	background: rgba(255,255,255,0.6);
}
.mvz-btn-ghost:hover { background: var(--mvz-white); border-color: rgba(27,27,58,0.3); }

/* =============================================================
   Materials — premium-depth-card, light-glass-card, glass badge
============================================================= */
.mvz-premium-depth-card {
	background: linear-gradient(145deg, var(--mvz-card-from) 0%, var(--mvz-card-to) 100%);
	box-shadow:
		0 40px 100px -20px rgba(0, 0, 0, 0.9),
		0 20px 40px -20px rgba(0, 0, 0, 0.8),
		inset 0 1px 2px rgba(255, 255, 255, 0.2),
		inset 0 -2px 4px rgba(0, 0, 0, 0.8);
	border: 1px solid rgba(255, 255, 255, 0.04);
	position: relative;
	color: #fff;
}

.mvz-light-glass-card {
	background: linear-gradient(145deg, #FFFFFF 0%, #F8FAFC 100%);
	box-shadow:
		0 1px 0 rgba(0, 0, 0, 0.04),
		0 8px 16px -4px rgba(15, 23, 42, 0.08),
		0 24px 48px -12px rgba(15, 23, 42, 0.12),
		inset 0 1px 0 rgba(255, 255, 255, 1);
	border: 1px solid rgba(15, 23, 42, 0.05);
	transition: transform 0.4s var(--mvz-ease-spring), box-shadow 0.4s var(--mvz-ease-spring);
}
.mvz-light-glass-card:hover {
	transform: translateY(-4px);
	box-shadow:
		0 1px 0 rgba(0, 0, 0, 0.04),
		0 12px 24px -4px rgba(15, 23, 42, 0.10),
		0 32px 64px -16px rgba(15, 23, 42, 0.18),
		inset 0 1px 0 rgba(255, 255, 255, 1);
}

.mvz-floating-ui-badge {
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.02) 100%);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	box-shadow:
		0 0 0 1px rgba(255, 255, 255, 0.1),
		0 25px 50px -12px rgba(0, 0, 0, 0.8),
		inset 0 1px 1px rgba(255, 255, 255, 0.2),
		inset 0 -1px 1px rgba(0, 0, 0, 0.5);
	color: #fff;
}

/* =============================================================
   Atmospheric overlays — grid, grain
============================================================= */
.mvz-grid-bg,
.mvz-grid-bg-dark {
	position: absolute; inset: 0; pointer-events: none;
	mask-image: radial-gradient(ellipse at center, black 0%, transparent 70%);
	-webkit-mask-image: radial-gradient(ellipse at center, black 0%, transparent 70%);
}
.mvz-grid-bg {
	background-size: 60px 60px;
	background-image:
		linear-gradient(to right, rgba(15,23,42,0.05) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(15,23,42,0.05) 1px, transparent 1px);
}
.mvz-grid-bg-dark {
	background-size: 80px 80px;
	background-image:
		linear-gradient(to right, rgba(255,255,255,0.04) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(255,255,255,0.04) 1px, transparent 1px);
}

.mvz-film-grain {
	position: absolute; inset: 0; pointer-events: none;
	opacity: 0.04; mix-blend-mode: overlay; z-index: 50;
	background: url('data:image/svg+xml;utf8,<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><filter id="n"><feTurbulence type="fractalNoise" baseFrequency="0.8" numOctaves="3" stitchTiles="stitch"/></filter><rect width="100%" height="100%" filter="url(%23n)"/></svg>');
}

/* =============================================================
   Dividers
============================================================= */
.mvz-divider-soft       { width: 80px; height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent); }
.mvz-divider-soft-light { width: 80px; height: 1px; background: linear-gradient(90deg, transparent, rgba(15,23,42,0.3), transparent); }

/* =============================================================
   Trust badge (used in hamlet + other inline notices)
============================================================= */
.mvz-trust-badge {
	display: inline-flex; gap: 14px; align-items: center;
	padding: 14px 22px;
	background: rgba(97, 206, 112, 0.08);
	border: 1px solid rgba(97, 206, 112, 0.25);
	border-radius: 999px;
	font-size: 13px; font-weight: 600;
	color: var(--mvz-brand-green-darker);
}
.mvz-trust-badge .mvz-dot {
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--mvz-brand-green);
	box-shadow: 0 0 12px var(--mvz-brand-green);
}

/* =============================================================
   Scroll-reveal — added by reveal.js
============================================================= */
.mvz-reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.9s var(--mvz-ease-cinematic), transform 0.9s var(--mvz-ease-cinematic); }
.mvz-reveal.is-in { opacity: 1; transform: translateY(0); }
.mvz-reveal.d1 { transition-delay: 0.08s; }
.mvz-reveal.d2 { transition-delay: 0.16s; }
.mvz-reveal.d3 { transition-delay: 0.24s; }
.mvz-reveal.d4 { transition-delay: 0.32s; }

@media (prefers-reduced-motion: reduce) {
	.mvz-reveal { opacity: 1; transform: none; transition: none; }
	*, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* =============================================================
   WIDGET-SPECIFIC STYLES
   Kept here so users can override via custom CSS in Elementor
   without diving into widget PHP.
============================================================= */

/* ---------- 1. Hero ---------- */
.mvz-hero {
	position: relative;
	min-height: 100vh;
	padding: 100px 48px 60px;
	display: grid;
	grid-template-rows: auto 1fr auto;
	overflow: hidden;
	background: var(--mvz-white);
}
.mvz-hero-grid {
	display: grid;
	grid-template-columns: 1fr 1.4fr 1fr;
	align-items: end;
	gap: 40px;
}
.mvz-hero-left { max-width: 280px; align-self: end; padding-bottom: 60px; }
.mvz-hero-left p { font-size: 14px; line-height: 1.7; color: rgba(27,27,58,0.78); margin-bottom: 18px; }
.mvz-hero-left a { font-size: 14px; font-weight: 500; color: var(--mvz-text-dark); border-bottom: 1px solid var(--mvz-text-dark); padding-bottom: 2px; }

.mvz-hero-center { position: relative; min-height: 70vh; display: flex; justify-content: center; align-items: flex-end; }
.mvz-hero-halo {
	position: absolute;
	bottom: 15%;
	width: 460px; height: 460px;
	border-radius: 50%;
	background: var(--mvz-brand-green);
	z-index: 0;
	animation: mvz-heroHalo 1s var(--mvz-ease-cinematic) both;
}
.mvz-hero-portrait {
	position: relative; z-index: 2;
	width: 480px; max-width: 95%; height: auto;
	filter: drop-shadow(0 30px 60px rgba(0,0,0,0.25));
	animation: mvz-heroPortrait 1.2s var(--mvz-ease-cinematic) 0.2s both;
}
.mvz-hero-right { align-self: end; padding-bottom: 60px; animation: mvz-heroText 1s var(--mvz-ease-cinematic) 0.6s both; }
.mvz-hero-right h1 {
	font-family: var(--mvz-font-display);
	font-size: clamp(56px, 7vw, 104px);
	line-height: 0.92;
	letter-spacing: -0.025em;
	color: var(--mvz-text-dark);
}
.mvz-hero-right h1 span { display: block; }

.mvz-hero-footer {
	display: flex; align-items: center; justify-content: space-between;
	padding-top: 30px; border-top: 1px solid var(--mvz-divider);
}
.mvz-hero-socials { display: flex; gap: 22px; align-items: center; }
.mvz-hero-socials a { color: rgba(27,27,58,0.55); transition: color 0.3s ease; }
.mvz-hero-socials a:hover { color: var(--mvz-text-dark); }
.mvz-hero-location { font-size: 12px; font-weight: 600; letter-spacing: 0.18em; }

@keyframes mvz-heroHalo { from { transform: scale(0.7); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@keyframes mvz-heroPortrait { from { transform: translateY(60px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes mvz-heroText { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

@media (max-width: 1100px) {
	.mvz-hero-grid { grid-template-columns: 1fr; gap: 50px; }
	.mvz-hero-left { order: 2; max-width: 100%; padding-bottom: 0; text-align: center; }
	.mvz-hero-center { order: 1; min-height: 480px; }
	.mvz-hero-right { order: 3; padding-bottom: 0; text-align: center; }
	.mvz-hero-halo { width: 340px; height: 340px; bottom: 10%; }
	.mvz-hero-portrait { width: 320px; }
	.mvz-hero { padding: 120px 24px 50px; }
}

/* ---------- 2. Target Audience / Hamlet ---------- */
.mvz-hamlet {
	display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center;
}
.mvz-hamlet-figure { position: relative; display: flex; justify-content: center; align-items: end; min-height: 600px; }
.mvz-hamlet-halo { position: absolute; width: 420px; height: 420px; border-radius: 50%; background: var(--mvz-brand-green); bottom: 12%; opacity: 0.95; }
.mvz-hamlet-figure img { position: relative; z-index: 2; width: 440px; max-width: 100%; filter: drop-shadow(0 25px 50px rgba(0,0,0,0.22)); }

.mvz-hamlet-copy h2 { font-size: clamp(48px, 5.5vw, 88px); line-height: 1.0; margin: 24px 0 16px; }
.mvz-hamlet-copy h2 em { font-family: var(--mvz-font-display); font-style: italic; color: var(--mvz-brand-green); font-weight: 400; }
.mvz-hamlet-italic { font-family: var(--mvz-font-display); font-style: italic; font-size: 24px; color: var(--mvz-text-soft); margin-bottom: 32px; }
.mvz-hamlet-body { font-size: 16px; line-height: 1.7; color: var(--mvz-text-soft); max-width: 480px; margin-bottom: 32px; }

.mvz-audience-header { text-align: center; max-width: 740px; margin: 140px auto 70px; }
.mvz-audience-header h2 { font-size: clamp(40px, 4.5vw, 72px); line-height: 1.0; margin: 16px 0 24px; }
.mvz-audience-header h2 span { display: block; }
.mvz-audience-header p { font-size: 17px; line-height: 1.7; color: var(--mvz-text-soft); max-width: 560px; margin: 0 auto; }

.mvz-audience-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.mvz-audience-card { padding: 36px 30px; border-radius: 20px; display: flex; flex-direction: column; gap: 14px; min-height: 280px; }
.mvz-audience-card .mvz-eyebrow { color: var(--mvz-brand-green-darker); }
.mvz-audience-card h3 { font-size: 24px; margin-top: 6px; }
.mvz-audience-card p { font-size: 14px; line-height: 1.65; color: var(--mvz-text-soft); }
.mvz-audience-card .mvz-icon-wrap {
	width: 44px; height: 44px; border-radius: 12px;
	background: rgba(97,206,112,0.1);
	display: flex; align-items: center; justify-content: center;
	color: var(--mvz-brand-green-darker); margin-bottom: 6px;
}

@media (max-width: 1024px) {
	.mvz-hamlet { grid-template-columns: 1fr; gap: 50px; }
	.mvz-hamlet-figure { min-height: 420px; }
	.mvz-hamlet-halo { width: 300px; height: 300px; }
	.mvz-hamlet-figure img { width: 320px; }
	.mvz-audience-grid { grid-template-columns: repeat(2, 1fr); }
	.mvz-audience-header { margin-top: 90px; }
}
@media (max-width: 600px) { .mvz-audience-grid { grid-template-columns: 1fr; } }

/* ---------- 3. Trust Strip ---------- */
.mvz-trust-strip {
	padding: 60px 0; background: var(--mvz-white);
	border-top: 1px solid var(--mvz-divider); border-bottom: 1px solid var(--mvz-divider);
}
.mvz-trust-row { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 30px; }
.mvz-trust-row .mvz-eyebrow { min-width: 140px; }
.mvz-trust-logos { display: flex; gap: 50px; flex-wrap: wrap; font-family: var(--mvz-font-display); font-size: 18px; color: var(--mvz-text-muted); letter-spacing: 0.02em; }
.mvz-trust-logos span { padding: 8px 0; transition: color 0.3s ease; }
.mvz-trust-logos span:hover { color: var(--mvz-text-dark); }

/* ---------- 4. Benefits ---------- */
.mvz-benefits-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 70px; }
.mvz-benefit {
	padding: 36px 28px; background: var(--mvz-white);
	border-radius: 18px; border: 1px solid var(--mvz-divider);
	transition: transform 0.4s var(--mvz-ease-spring), box-shadow 0.4s var(--mvz-ease-spring), border-color 0.4s ease;
}
.mvz-benefit:hover { transform: translateY(-6px); border-color: rgba(97,206,112,0.4); box-shadow: 0 18px 36px -12px rgba(15,23,42,0.12); }
.mvz-benefit .mvz-num { font-family: var(--mvz-font-display); font-size: 14px; color: var(--mvz-brand-green-darker); letter-spacing: 0.15em; margin-bottom: 16px; }
.mvz-benefit h3 { font-size: 22px; margin-bottom: 12px; line-height: 1.15; }
.mvz-benefit p { font-size: 14px; line-height: 1.65; color: var(--mvz-text-soft); }

@media (max-width: 1024px) { .mvz-benefits-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .mvz-benefits-grid { grid-template-columns: 1fr; } }

/* ---------- 5. Problem Stat ---------- */
.mvz-problem-card { position: relative; padding: 100px 60px; border-radius: 28px; display: grid; grid-template-columns: 1fr 1.1fr; gap: 70px; align-items: center; overflow: hidden; }
.mvz-problem-big { font-family: var(--mvz-font-display); font-size: clamp(120px, 16vw, 220px); line-height: 0.9; color: #fff; letter-spacing: -0.04em; }
.mvz-problem-big sup { font-size: 0.4em; vertical-align: super; color: var(--mvz-brand-green); margin-left: 6px; }
.mvz-problem-label { color: rgba(255,255,255,0.55); font-size: 13px; letter-spacing: 0.2em; text-transform: uppercase; margin-top: 10px; }
.mvz-problem-quote { font-family: var(--mvz-font-display); font-size: 28px; line-height: 1.35; color: rgba(255,255,255,0.92); }
.mvz-problem-attr { margin-top: 26px; font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.5); }
@media (max-width: 900px) { .mvz-problem-card { padding: 60px 32px; grid-template-columns: 1fr; gap: 40px; } }

/* ---------- 6. Pillars (Expertenstandard) ---------- */
.mvz-pillars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: 70px; border-top: 1px solid var(--mvz-divider); border-bottom: 1px solid var(--mvz-divider); }
.mvz-pillar { padding: 50px 30px; border-right: 1px solid var(--mvz-divider); position: relative; }
.mvz-pillar:last-child { border-right: none; }
.mvz-pillar .mvz-pillar-num { font-family: var(--mvz-font-display); font-size: 14px; color: var(--mvz-brand-green-darker); letter-spacing: 0.15em; margin-bottom: 24px; }
.mvz-pillar h4 { font-size: 22px; line-height: 1.15; margin-bottom: 12px; }
.mvz-pillar p { font-size: 14px; line-height: 1.65; color: var(--mvz-text-soft); }
@media (max-width: 900px) {
	.mvz-pillars { grid-template-columns: 1fr 1fr; }
	.mvz-pillar { border-right: 1px solid var(--mvz-divider); border-bottom: 1px solid var(--mvz-divider); }
	.mvz-pillar:nth-child(2n) { border-right: none; }
	.mvz-pillar:nth-last-child(-n+2) { border-bottom: none; }
}
@media (max-width: 540px) {
	.mvz-pillars { grid-template-columns: 1fr; }
	.mvz-pillar { border-right: none !important; border-bottom: 1px solid var(--mvz-divider) !important; }
	.mvz-pillar:last-child { border-bottom: none !important; }
}

/* ---------- 7. Services ---------- */
.mvz-services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 60px; }
.mvz-service-card {
	padding: 30px 28px; border-radius: 20px; background: var(--mvz-white);
	border: 1px solid var(--mvz-divider); display: flex; flex-direction: column;
	transition: transform 0.4s var(--mvz-ease-spring), box-shadow 0.4s var(--mvz-ease-spring);
}
.mvz-service-card:hover { transform: translateY(-6px); box-shadow: 0 24px 48px -16px rgba(15,23,42,0.18); }
.mvz-service-icon {
	width: 48px; height: 48px; border-radius: 12px;
	background: linear-gradient(180deg, #6FE07F 0%, #4FB85E 100%);
	display: flex; align-items: center; justify-content: center;
	color: #fff; margin-bottom: 22px;
	box-shadow: 0 8px 18px -6px rgba(97,206,112,0.5);
}
.mvz-service-card h3 { font-size: 22px; margin-bottom: 10px; }
.mvz-service-card p  { font-size: 14px; line-height: 1.65; color: var(--mvz-text-soft); }
.mvz-service-card .mvz-tag {
	margin-top: 18px;
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 11px; font-weight: 700; letter-spacing: 0.16em;
	color: var(--mvz-brand-green-darker); text-transform: uppercase;
}
@media (max-width: 900px) { .mvz-services-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .mvz-services-grid { grid-template-columns: 1fr; } }

/* ---------- 8. Feature Spotlight (Digital Prothetik / Videosprechstunde) ---------- */
.mvz-feature-split { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; }
.mvz-feature-split.is-reverse > :first-child { order: 2; }
.mvz-feature-image {
	border-radius: 24px; overflow: hidden;
	background: linear-gradient(145deg, var(--mvz-card-from), var(--mvz-card-to));
	aspect-ratio: 4/5; position: relative;
	box-shadow: 0 40px 80px -30px rgba(15,23,42,0.45);
}
.mvz-feature-image img { width: 100%; height: 100%; object-fit: cover; opacity: 0.95; }
.mvz-feature-image .mvz-image-tag {
	position: absolute; bottom: 18px; left: 18px;
	padding: 8px 14px; border-radius: 999px;
	background: rgba(0,0,0,0.55); backdrop-filter: blur(10px);
	color: #fff; font-size: 11px; font-weight: 700; letter-spacing: 0.16em;
}
.mvz-feature-copy .mvz-eyebrow { color: var(--mvz-brand-green-darker); }
.mvz-feature-copy h2 { font-size: clamp(36px, 4vw, 60px); line-height: 1.05; margin: 16px 0 24px; }
.mvz-feature-copy p { font-size: 16px; line-height: 1.75; color: var(--mvz-text-soft); margin-bottom: 18px; }
.mvz-feature-bullets { list-style: none; padding: 0; margin: 26px 0 0; display: grid; gap: 14px; }
.mvz-feature-bullets li { display: flex; gap: 14px; align-items: flex-start; font-size: 15px; line-height: 1.55; color: var(--mvz-text); }
.mvz-feature-bullets li::before { content: ''; flex-shrink: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--mvz-brand-green); margin-top: 8px; box-shadow: 0 0 10px var(--mvz-brand-green); }
@media (max-width: 900px) {
	.mvz-feature-split { grid-template-columns: 1fr; gap: 40px; }
	.mvz-feature-split.is-reverse > :first-child { order: 0; }
}

/* ---------- 9. Visit Day ---------- */
.mvz-visit-track {
	display: flex; gap: 24px; overflow-x: auto;
	padding: 50px 32px 80px;
	scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
}
.mvz-visit-track::-webkit-scrollbar { height: 6px; }
.mvz-visit-track::-webkit-scrollbar-track { background: rgba(255,255,255,0.04); border-radius: 6px; }
.mvz-visit-track::-webkit-scrollbar-thumb { background: var(--mvz-brand-green); border-radius: 6px; }
.mvz-visit-frame {
	flex: 0 0 460px;
	scroll-snap-align: start;
	border-radius: 22px; overflow: hidden;
	background: linear-gradient(145deg, #1B2A4E, #0A101D);
	display: flex; flex-direction: column;
	box-shadow: 0 32px 64px -20px rgba(0,0,0,0.5);
}
.mvz-visit-img { height: 280px; background-size: cover; background-position: center; position: relative; }
.mvz-visit-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, transparent 50%, rgba(10,16,29,0.85) 100%); }
.mvz-visit-copy { padding: 28px; color: #fff; }
.mvz-visit-time { font-family: var(--mvz-font-display); font-size: 32px; color: var(--mvz-brand-green); margin-bottom: 8px; }
.mvz-visit-frame h4 { color: #fff; font-size: 20px; margin-bottom: 10px; }
.mvz-visit-frame p { font-size: 14px; line-height: 1.6; color: rgba(255,255,255,0.65); }

/* ---------- 10. Cinematic Hero ---------- */
.mvz-cinematic { position: relative; padding: 160px 24px; background: linear-gradient(180deg, #0A101D 0%, #1B1B3A 100%); overflow: hidden; }
.mvz-cinematic-brand { text-align: center; font-family: var(--mvz-font-display); font-size: 13px; letter-spacing: 0.4em; color: rgba(97,206,112,0.85); margin-bottom: 32px; }
.mvz-cinematic-tagline { text-align: center; font-family: var(--mvz-font-display); font-size: clamp(48px, 6vw, 96px); line-height: 1.0; letter-spacing: -0.02em; margin-bottom: 80px; }
.mvz-cinematic-tagline .line1 { color: rgba(255,255,255,0.55); display: block; }
.mvz-cinematic-tagline .line2 { color: #fff; display: block; }

.mvz-cinematic-card { max-width: 1080px; margin: 0 auto; padding: 70px 60px; border-radius: 28px; display: grid; grid-template-columns: 1.3fr 1fr; gap: 60px; align-items: center; }
.mvz-cinematic-card-left h3 { font-size: clamp(34px, 3.8vw, 56px); color: #fff; margin-bottom: 24px; line-height: 1.05; }
.mvz-cinematic-card-left p { font-size: 16px; line-height: 1.75; color: rgba(255,255,255,0.72); }
.mvz-cinematic-card-left p .mvz-accent { color: var(--mvz-brand-green); font-weight: 600; }

.mvz-metric-widget {
	background: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.01) 100%);
	border-radius: 22px; padding: 40px 30px; text-align: center;
	border: 1px solid rgba(255,255,255,0.06);
	box-shadow: inset 0 1px 1px rgba(255,255,255,0.05), inset 0 -1px 1px rgba(0,0,0,0.5);
}
.mvz-metric-value { font-family: var(--mvz-font-display); font-size: 110px; line-height: 0.9; color: var(--mvz-brand-green); text-shadow: 0 0 40px rgba(97,206,112,0.45); }
.mvz-metric-label { margin-top: 14px; color: rgba(255,255,255,0.6); font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase; }
.mvz-progress { margin-top: 26px; height: 4px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; }
.mvz-progress > span { display: block; height: 100%; background: linear-gradient(90deg, var(--mvz-brand-green), #76E886); box-shadow: 0 0 12px var(--mvz-brand-green); }

.mvz-cinematic-cta { text-align: center; margin-top: 90px; }
.mvz-cinematic-cta h3 { font-size: clamp(34px, 4vw, 60px); color: #fff; margin-bottom: 20px; }
.mvz-cinematic-cta p { max-width: 540px; margin: 0 auto 32px; color: rgba(255,255,255,0.68); font-size: 16px; line-height: 1.7; }
@media (max-width: 900px) {
	.mvz-cinematic-card { grid-template-columns: 1fr; padding: 40px 28px; gap: 40px; }
	.mvz-metric-value { font-size: 80px; }
}

/* ---------- 11. Founder ---------- */
.mvz-founder-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 70px; align-items: center; }
.mvz-founder-photo {
	border-radius: 22px; overflow: hidden; aspect-ratio: 3/4;
	background: linear-gradient(145deg, #DDD, #BBB);
	box-shadow: 0 30px 60px -20px rgba(15,23,42,0.3);
}
.mvz-founder-photo img { width: 100%; height: 100%; object-fit: cover; }
.mvz-founder-copy h2 { font-size: clamp(38px, 4.4vw, 64px); line-height: 1.05; margin-bottom: 22px; }
.mvz-founder-copy .mvz-role { font-size: 13px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--mvz-brand-green-darker); margin-bottom: 14px; }
.mvz-founder-copy p { font-size: 16px; line-height: 1.75; color: var(--mvz-text-soft); margin-bottom: 18px; }
.mvz-founder-credentials { display: flex; gap: 30px; margin-top: 30px; flex-wrap: wrap; }
.mvz-founder-credentials > div { border-left: 2px solid var(--mvz-brand-green); padding-left: 16px; }
.mvz-credential-num { font-family: var(--mvz-font-display); font-size: 32px; color: var(--mvz-text-dark); }
.mvz-credential-label { font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mvz-text-muted); }
@media (max-width: 900px) { .mvz-founder-grid { grid-template-columns: 1fr; gap: 40px; } }

/* ---------- 12. Behandlungsplatz ---------- */
.mvz-kit-block { position: relative; padding: 100px 60px; border-radius: 28px; overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.mvz-kit-image-wrap { border-radius: 22px; overflow: hidden; background: linear-gradient(145deg, #2a2a2a, #0a0a0a); aspect-ratio: 4/3; box-shadow: 0 30px 60px -20px rgba(0,0,0,0.6); }
.mvz-kit-image-wrap img { width: 100%; height: 100%; object-fit: cover; }
.mvz-kit-copy h2 { color: #fff; font-size: clamp(36px, 4vw, 60px); line-height: 1.05; margin: 16px 0 24px; }
.mvz-kit-copy p { color: rgba(255,255,255,0.7); font-size: 16px; line-height: 1.75; margin-bottom: 24px; }
.mvz-kit-specs { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 30px; }
.mvz-kit-specs > div { padding: 18px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 14px; }
.mvz-spec-num { font-family: var(--mvz-font-display); font-size: 32px; color: var(--mvz-brand-green); }
.mvz-spec-label { color: rgba(255,255,255,0.5); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; margin-top: 8px; }
@media (max-width: 900px) { .mvz-kit-block { grid-template-columns: 1fr; padding: 50px 28px; } }

/* ---------- 13. Testimonials ---------- */
.mvz-testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 60px; }
.mvz-testimonial {
	padding: 36px 30px; border-radius: 20px;
	background: linear-gradient(145deg, #FFFFFF 0%, #F8FAFC 100%);
	border: 1px solid rgba(15,23,42,0.06);
	box-shadow: 0 12px 24px -8px rgba(15,23,42,0.08);
	display: flex; flex-direction: column;
}
.mvz-quote-mark { font-family: var(--mvz-font-display); font-size: 64px; line-height: 0.5; color: var(--mvz-brand-green); margin-bottom: 16px; }
.mvz-testimonial blockquote { margin: 0 0 24px; font-family: var(--mvz-font-display); font-size: 20px; line-height: 1.45; color: var(--mvz-text-dark); }
.mvz-author { display: flex; align-items: center; gap: 14px; margin-top: auto; padding-top: 24px; border-top: 1px solid var(--mvz-divider); }
.mvz-avatar { width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, var(--mvz-brand-green), var(--mvz-brand-green-darker)); flex-shrink: 0; background-size: cover; background-position: center; }
.mvz-author-name { font-weight: 600; font-size: 14px; color: var(--mvz-text-dark); }
.mvz-author-role { font-size: 12px; color: var(--mvz-text-muted); }
@media (max-width: 900px) { .mvz-testimonial-grid { grid-template-columns: 1fr; } }

/* ---------- 14. Stats ---------- */
.mvz-stats-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 70px; border-top: 1px solid rgba(255,255,255,0.08); border-bottom: 1px solid rgba(255,255,255,0.08); }
.mvz-stat { padding: 70px 40px; text-align: center; border-right: 1px solid rgba(255,255,255,0.08); }
.mvz-stat:last-child { border-right: none; }
.mvz-stat-num { font-family: var(--mvz-font-display); font-size: clamp(72px, 9vw, 140px); color: #fff; line-height: 0.9; }
.mvz-stat-num em { font-style: normal; color: var(--mvz-brand-green); text-shadow: 0 0 30px rgba(97,206,112,0.4); }
.mvz-stat-label { margin-top: 18px; color: rgba(255,255,255,0.55); font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase; }
.mvz-stat-detail { margin-top: 14px; color: rgba(255,255,255,0.4); font-size: 13px; line-height: 1.6; max-width: 260px; margin-left: auto; margin-right: auto; }
@media (max-width: 900px) {
	.mvz-stats-row { grid-template-columns: 1fr; }
	.mvz-stat { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.08); }
	.mvz-stat:last-child { border-bottom: none; }
}

/* ---------- 15. Booking ---------- */
.mvz-booking-card {
	max-width: 880px; margin: 0 auto;
	padding: 70px 60px; background: var(--mvz-white);
	border-radius: 28px;
	box-shadow: 0 40px 80px -30px rgba(15,23,42,0.2);
	border: 1px solid var(--mvz-divider);
}
.mvz-booking-card h2 { font-size: clamp(38px, 4.4vw, 60px); line-height: 1.05; margin-bottom: 16px; }
.mvz-booking-card > p { font-size: 16px; line-height: 1.7; color: var(--mvz-text-soft); margin-bottom: 36px; max-width: 540px; }
.mvz-booking-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.mvz-booking-form label { display: flex; flex-direction: column; gap: 8px; font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--mvz-text-muted); }
.mvz-booking-form label.is-full { grid-column: 1 / -1; }
.mvz-booking-form input, .mvz-booking-form textarea {
	padding: 14px 16px;
	border: 1px solid var(--mvz-divider);
	border-radius: 12px;
	font-family: var(--mvz-font-body); font-size: 15px;
	background: var(--mvz-cream);
	transition: border-color 0.3s ease, background 0.3s ease;
}
.mvz-booking-form input:focus, .mvz-booking-form textarea:focus { outline: none; border-color: var(--mvz-brand-green); background: var(--mvz-white); }
.mvz-booking-form textarea { min-height: 110px; resize: vertical; }
.mvz-booking-form button { grid-column: 1 / -1; justify-content: center; padding: 18px 28px; font-size: 15px; }
.mvz-booking-meta { display: flex; gap: 28px; flex-wrap: wrap; margin-top: 28px; padding-top: 28px; border-top: 1px solid var(--mvz-divider); color: var(--mvz-text-muted); font-size: 13px; }
.mvz-booking-meta span { display: inline-flex; align-items: center; gap: 8px; }
.mvz-booking-meta .mvz-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--mvz-brand-green); }

/* Booking success / error banners */
.mvz-booking-success,
.mvz-booking-error {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 22px;
	margin: 0 0 32px;
	border-radius: 14px;
	font-family: var(--mvz-font-body);
	font-size: 15px;
	line-height: 1.55;
	font-weight: 500;
	animation: mvzFadeSlide 0.5s var(--mvz-ease-cinematic) both;
}
.mvz-booking-success {
	background: rgba(97, 206, 112, 0.10);
	border: 1px solid rgba(97, 206, 112, 0.28);
	color: var(--mvz-brand-green-darker);
}
.mvz-booking-success .mvz-success-icon {
	width: 28px; height: 28px;
	border-radius: 50%;
	background: linear-gradient(180deg, #6FE07F 0%, #4FB85E 100%);
	color: #fff;
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 16px; font-weight: 700; line-height: 1;
	flex-shrink: 0;
	box-shadow: 0 4px 10px -2px rgba(63, 160, 77, 0.45);
}
.mvz-booking-error {
	background: rgba(220, 38, 38, 0.06);
	border: 1px solid rgba(220, 38, 38, 0.25);
	color: #B91C1C;
}
@keyframes mvzFadeSlide {
	from { opacity: 0; transform: translateY(-6px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* When a form plugin shortcode (WPForms, CF7, Fluent Forms, etc.) is
   rendered inside the booking card, normalize its visual styling so it
   inherits the cinematic design instead of the plugin's own theming. */
.mvz-booking-shortcode {
	font-family: var(--mvz-font-body);
}
.mvz-booking-shortcode .wpforms-container,
.mvz-booking-shortcode .wpforms-form,
.mvz-booking-shortcode form.wpcf7-form,
.mvz-booking-shortcode .fluentform,
.mvz-booking-shortcode .frm_forms,
.mvz-booking-shortcode form { margin: 0 !important; }

/* Labels */
.mvz-booking-shortcode label,
.mvz-booking-shortcode .wpforms-field-label,
.mvz-booking-shortcode .ff-el-input--label label,
.mvz-booking-shortcode .wpcf7-form-control-wrap label {
	font-family: var(--mvz-font-body) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	color: var(--mvz-text-muted) !important;
	margin-bottom: 8px !important;
}

/* Inputs and textareas */
.mvz-booking-shortcode input[type="text"],
.mvz-booking-shortcode input[type="email"],
.mvz-booking-shortcode input[type="tel"],
.mvz-booking-shortcode input[type="number"],
.mvz-booking-shortcode input[type="url"],
.mvz-booking-shortcode input[type="date"],
.mvz-booking-shortcode select,
.mvz-booking-shortcode textarea {
	padding: 14px 16px !important;
	border: 1px solid var(--mvz-divider) !important;
	border-radius: 12px !important;
	font-family: var(--mvz-font-body) !important;
	font-size: 15px !important;
	background: var(--mvz-cream) !important;
	transition: border-color 0.3s ease, background 0.3s ease !important;
	width: 100% !important;
	box-shadow: none !important;
}
.mvz-booking-shortcode input:focus,
.mvz-booking-shortcode select:focus,
.mvz-booking-shortcode textarea:focus {
	outline: none !important;
	border-color: var(--mvz-brand-green) !important;
	background: var(--mvz-white) !important;
}
.mvz-booking-shortcode textarea { min-height: 110px !important; resize: vertical !important; }

/* Submit buttons */
.mvz-booking-shortcode button[type="submit"],
.mvz-booking-shortcode input[type="submit"],
.mvz-booking-shortcode .wpforms-submit,
.mvz-booking-shortcode .wpcf7-submit,
.mvz-booking-shortcode .ff-btn-submit {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;
	padding: 16px 32px !important;
	border-radius: 999px !important;
	font-family: var(--mvz-font-body) !important;
	font-weight: 600 !important;
	font-size: 15px !important;
	letter-spacing: 0.04em !important;
	color: #fff !important;
	background: linear-gradient(180deg, #6FE07F 0%, #4FB85E 100%) !important;
	border: none !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	box-shadow:
		0 0 0 1px rgba(63, 160, 77, 0.3),
		0 2px 4px rgba(63, 160, 77, 0.2),
		0 12px 32px -8px rgba(97, 206, 112, 0.6),
		inset 0 1px 1px rgba(255, 255, 255, 0.4),
		inset 0 -3px 6px rgba(0, 0, 0, 0.15) !important;
	transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1) !important;
}
.mvz-booking-shortcode button[type="submit"]:hover,
.mvz-booking-shortcode input[type="submit"]:hover,
.mvz-booking-shortcode .wpforms-submit:hover,
.mvz-booking-shortcode .wpcf7-submit:hover,
.mvz-booking-shortcode .ff-btn-submit:hover {
	transform: translateY(-3px) !important;
	background: linear-gradient(180deg, #76E886 0%, #58C067 100%) !important;
}

/* Confirmation/success messages from the form plugin */
.mvz-booking-shortcode .wpforms-confirmation-container-full,
.mvz-booking-shortcode .wpcf7-response-output,
.mvz-booking-shortcode .ff-message-success {
	padding: 18px 22px !important;
	margin: 0 0 24px !important;
	border-radius: 14px !important;
	background: rgba(97, 206, 112, 0.10) !important;
	border: 1px solid rgba(97, 206, 112, 0.28) !important;
	color: var(--mvz-brand-green-darker) !important;
	font-family: var(--mvz-font-body) !important;
	font-size: 15px !important;
	line-height: 1.55 !important;
}

/* Error messages */
.mvz-booking-shortcode .wpforms-error,
.mvz-booking-shortcode .wpcf7-not-valid-tip,
.mvz-booking-shortcode .ff-el-is-error .text-danger {
	color: #B91C1C !important;
	font-size: 13px !important;
	margin-top: 6px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	font-weight: 500 !important;
}

@media (max-width: 700px) {
	.mvz-booking-form { grid-template-columns: 1fr; }
	.mvz-booking-card { padding: 40px 24px; }
}

/* ---------- 16. FAQ ---------- */
.mvz-faq-list { max-width: 880px; margin: 60px auto 0; }
.mvz-faq-item { border-bottom: 1px solid var(--mvz-divider); }
.mvz-faq-item summary {
	list-style: none;
	display: flex; justify-content: space-between; align-items: center;
	padding: 30px 8px; cursor: pointer;
	font-family: var(--mvz-font-display); font-size: 22px;
	color: var(--mvz-text-dark);
	transition: color 0.3s ease;
}
.mvz-faq-item summary::-webkit-details-marker { display: none; }
.mvz-faq-item summary:hover { color: var(--mvz-brand-green-darker); }
.mvz-faq-item summary::after { content: '+'; font-size: 26px; color: var(--mvz-brand-green); transition: transform 0.3s ease; font-weight: 300; margin-left: 16px; }
.mvz-faq-item[open] summary::after { transform: rotate(45deg); }
.mvz-faq-answer { padding: 0 8px 30px; font-size: 16px; line-height: 1.75; color: var(--mvz-text-soft); max-width: 760px; }

/* ---------- 17. Imprint (Impressum) ---------- */
.mvz-imprint { padding: 120px 0 140px; }
.mvz-imprint .mvz-wrap-narrow { max-width: 920px; }

.mvz-imprint-header { text-align: center; margin-bottom: 60px; }
.mvz-imprint-header .mvz-eyebrow { display: inline-block; margin-bottom: 14px; }
.mvz-imprint-header h1 {
	font-family: var(--mvz-font-display);
	font-size: clamp(48px, 6vw, 88px);
	line-height: 1.0;
	letter-spacing: -0.02em;
	color: var(--mvz-text-dark);
	margin: 0 0 18px;
}
.mvz-imprint-lede {
	font-family: var(--mvz-font-display);
	font-style: italic;
	font-size: 18px;
	color: var(--mvz-text-soft);
	max-width: 560px;
	margin: 0 auto;
	line-height: 1.5;
}

.mvz-imprint-banner {
	position: relative;
	margin: 0 0 70px;
	border-radius: 22px;
	overflow: hidden;
	background: linear-gradient(145deg, #DDD, #BBB);
	box-shadow: 0 30px 60px -20px rgba(15, 23, 42, 0.25);
}
.mvz-imprint-banner img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.mvz-imprint-banner figcaption {
	position: absolute;
	bottom: 18px;
	left: 18px;
	padding: 8px 14px;
	border-radius: 999px;
	background: rgba(10, 16, 29, 0.65);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	color: #fff;
	font-family: var(--mvz-font-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.mvz-imprint-body {
	font-family: var(--mvz-font-body);
	font-size: 16px;
	line-height: 1.75;
	color: var(--mvz-text);
	max-width: 760px;
	margin: 0 auto;
}
.mvz-imprint-body h2,
.mvz-imprint-body h3 {
	font-family: var(--mvz-font-display);
	font-weight: 400;
	color: var(--mvz-text-dark);
	letter-spacing: -0.01em;
	line-height: 1.15;
	margin: 56px 0 16px;
	padding-top: 32px;
	border-top: 1px solid var(--mvz-divider);
}
.mvz-imprint-body h2 { font-size: 32px; }
.mvz-imprint-body h3 { font-size: 26px; }
.mvz-imprint-body > h2:first-child,
.mvz-imprint-body > h3:first-child { border-top: none; padding-top: 0; margin-top: 0; }

.mvz-imprint-body h4 {
	font-family: var(--mvz-font-body);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--mvz-brand-green-darker);
	margin: 32px 0 12px;
}

.mvz-imprint-body p {
	margin: 0 0 18px;
	color: var(--mvz-text-soft);
}
.mvz-imprint-body p strong { color: var(--mvz-text-dark); font-weight: 600; }
.mvz-imprint-body a {
	color: var(--mvz-brand-green-darker);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color 0.3s ease;
}
.mvz-imprint-body a:hover { color: var(--mvz-brand-green); }

.mvz-imprint-body ul,
.mvz-imprint-body ol { margin: 0 0 18px; padding-left: 24px; color: var(--mvz-text-soft); }
.mvz-imprint-body li { margin-bottom: 6px; }

/* On-dark variant for the imprint section */
.mvz-imprint.is-dark .mvz-imprint-header h1,
.mvz-imprint.is-dark-gradient .mvz-imprint-header h1 { color: #fff; }
.mvz-imprint.is-dark .mvz-imprint-body,
.mvz-imprint.is-dark-gradient .mvz-imprint-body { color: rgba(255, 255, 255, 0.85); }
.mvz-imprint.is-dark .mvz-imprint-body h2,
.mvz-imprint.is-dark .mvz-imprint-body h3,
.mvz-imprint.is-dark-gradient .mvz-imprint-body h2,
.mvz-imprint.is-dark-gradient .mvz-imprint-body h3 {
	color: #fff;
	border-top-color: rgba(255, 255, 255, 0.08);
}
.mvz-imprint.is-dark .mvz-imprint-body p,
.mvz-imprint.is-dark-gradient .mvz-imprint-body p { color: rgba(255, 255, 255, 0.7); }
.mvz-imprint.is-dark .mvz-imprint-body p strong,
.mvz-imprint.is-dark-gradient .mvz-imprint-body p strong { color: #fff; }

@media (max-width: 700px) {
	.mvz-imprint { padding: 80px 0 100px; }
	.mvz-imprint-header { margin-bottom: 40px; }
	.mvz-imprint-banner { margin-bottom: 50px; border-radius: 14px; }
	.mvz-imprint-body { font-size: 15px; }
	.mvz-imprint-body h2 { font-size: 26px; }
	.mvz-imprint-body h3 { font-size: 22px; }
}

/* ---------- 18. Text & Image (Editorial) ---------- */
.mvz-ti-section { padding: 120px 0; }

.mvz-ti-grid {
	display: grid;
	gap: 60px;
	align-items: center;
}

/* Stacked (top/bottom) — single column */
.mvz-ti-grid.is-stacked { grid-template-columns: 1fr !important; gap: 40px; }
.mvz-ti-grid.is-stacked .mvz-ti-copy { max-width: 760px; margin: 0 auto; }

/* Reverse — image visually on right (or bottom for stacked) */
.mvz-ti-grid.is-reverse .mvz-ti-image { order: 2; }
.mvz-ti-grid.is-reverse .mvz-ti-copy  { order: 1; }

/* Text alignment variants for stacked mode */
.mvz-ti-grid.is-stacked.align-center { text-align: center; }
.mvz-ti-grid.is-stacked.align-right  { text-align: right; }

/* Image */
.mvz-ti-image {
	position: relative;
	margin: 0;
	overflow: hidden;
	background: linear-gradient(145deg, #DDDFE3, #B5B9C1);
	box-shadow: 0 30px 60px -20px rgba(15, 23, 42, 0.25);
}
.mvz-ti-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
/* When aspect-ratio is "auto" (original), no cropping — let image dictate height */
.mvz-ti-image:not([style*="aspect-ratio"]) img { height: auto; }

/* Caption / overlay tag */
.mvz-ti-image-tag {
	position: absolute;
	top: 18px; left: 18px;
	padding: 8px 14px;
	border-radius: 999px;
	background: rgba(10, 16, 29, 0.65);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	color: #fff;
	font-family: var(--mvz-font-body);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	margin: 0;
}

/* Text column */
.mvz-ti-copy { display: flex; flex-direction: column; gap: 18px; }
.mvz-ti-copy .mvz-ti-eyebrow { color: var(--mvz-brand-green-darker); margin-bottom: 0; }
.mvz-ti-copy .mvz-ti-headline {
	font-family: var(--mvz-font-display);
	font-size: clamp(32px, 3.8vw, 56px);
	line-height: 1.08;
	letter-spacing: -0.01em;
	color: var(--mvz-text-dark);
	font-weight: 400;
	margin: 0;
}
.mvz-ti-copy .mvz-ti-headline em {
	font-style: italic;
	color: var(--mvz-brand-green-darker);
	font-weight: 400;
}

/* Body text — paragraphs only, no bullets */
.mvz-ti-body {
	font-family: var(--mvz-font-body);
	font-size: 16px;
	line-height: 1.75;
	color: var(--mvz-text-soft);
}
.mvz-ti-body p { margin: 0 0 16px; }
.mvz-ti-body p:last-child { margin-bottom: 0; }
.mvz-ti-body strong { color: var(--mvz-text-dark); font-weight: 600; }
.mvz-ti-body a {
	color: var(--mvz-brand-green-darker);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color 0.3s ease;
}
.mvz-ti-body a:hover { color: var(--mvz-brand-green); }

/* Hide any bullet/numbered list defaults that the WYSIWYG might inject */
.mvz-ti-body ul,
.mvz-ti-body ol {
	list-style: none;
	padding: 0;
	margin: 0 0 16px;
}
.mvz-ti-body ul li,
.mvz-ti-body ol li { margin: 0 0 8px; }

/* CTA */
.mvz-ti-cta-wrap { margin-top: 14px; }
.mvz-ti-grid.is-stacked.align-center .mvz-ti-cta-wrap { display: flex; justify-content: center; }
.mvz-ti-grid.is-stacked.align-right .mvz-ti-cta-wrap  { display: flex; justify-content: flex-end; }

.mvz-ti-textlink {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--mvz-font-body);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--mvz-text-dark);
	border-bottom: 1px solid var(--mvz-text-dark);
	padding-bottom: 2px;
	transition: color 0.3s ease, border-color 0.3s ease;
}
.mvz-ti-textlink:hover {
	color: var(--mvz-brand-green-darker);
	border-bottom-color: var(--mvz-brand-green-darker);
}

/* On-dark variant */
.mvz-ti-section.is-dark .mvz-ti-copy .mvz-ti-headline,
.mvz-ti-section.is-dark-gradient .mvz-ti-copy .mvz-ti-headline { color: #fff; }
.mvz-ti-section.is-dark .mvz-ti-body,
.mvz-ti-section.is-dark-gradient .mvz-ti-body { color: rgba(255, 255, 255, 0.78); }
.mvz-ti-section.is-dark .mvz-ti-body strong,
.mvz-ti-section.is-dark-gradient .mvz-ti-body strong { color: #fff; }
.mvz-ti-section.is-dark .mvz-ti-body a,
.mvz-ti-section.is-dark-gradient .mvz-ti-body a { color: var(--mvz-brand-green); }
.mvz-ti-section.is-dark .mvz-ti-textlink,
.mvz-ti-section.is-dark-gradient .mvz-ti-textlink {
	color: #fff;
	border-bottom-color: rgba(255,255,255,0.4);
}

/* Mobile: collapse two-column to stacked */
@media (max-width: 900px) {
	.mvz-ti-section { padding: 80px 0; }
	.mvz-ti-grid {
		grid-template-columns: 1fr !important;
		gap: 36px;
	}
	.mvz-ti-grid.is-reverse .mvz-ti-image { order: 1; }
	.mvz-ti-grid.is-reverse .mvz-ti-copy  { order: 2; }
	.mvz-ti-copy { gap: 14px; }
}

/* ---------- 19. Navigation (standalone) ---------- */
.mvz-nav {
	width: 100%;
	z-index: 100;
	font-family: var(--mvz-font-body);
}
.mvz-nav-sticky { position: sticky; top: 0; }
.mvz-nav-static { position: relative; }

.mvz-nav-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--mvz-nav-pad-y, 22px) 48px;
	max-width: 1440px;
	margin: 0 auto;
	gap: 24px;
}

/* --- Background styles --- */
.mvz-nav-bg-frosted-light {
	background: rgba(255, 255, 255, 0.72);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
}
.mvz-nav-bg-solid-white { background: var(--mvz-white); }
.mvz-nav-bg-solid-cream { background: var(--mvz-cream); }
.mvz-nav-bg-frosted-dark {
	background: rgba(10, 16, 29, 0.55);
	backdrop-filter: blur(20px);
	-webkit-backdrop-filter: blur(20px);
}
.mvz-nav-bg-solid-dark { background: var(--mvz-brand-navy); }
.mvz-nav-bg-transparent { background: transparent; }

/* Dark-bg variants: invert text colors */
.mvz-nav-bg-frosted-dark .mvz-nav-logo-text,
.mvz-nav-bg-solid-dark .mvz-nav-logo-text { color: #fff; }
.mvz-nav-bg-frosted-dark .mvz-nav-link,
.mvz-nav-bg-solid-dark .mvz-nav-link { color: rgba(255, 255, 255, 0.7); }
.mvz-nav-bg-frosted-dark .mvz-nav-link:hover,
.mvz-nav-bg-solid-dark .mvz-nav-link:hover { color: #fff; }
.mvz-nav-bg-frosted-dark .mvz-nav-link.is-active,
.mvz-nav-bg-solid-dark .mvz-nav-link.is-active { color: var(--mvz-brand-green); }
.mvz-nav-bg-frosted-dark .mvz-nav-toggle-btn span,
.mvz-nav-bg-solid-dark .mvz-nav-toggle-btn span { background: #fff; }

/* --- Border --- */
.mvz-nav-border-soft  { border-bottom: 1px solid var(--mvz-divider); }
.mvz-nav-border-green { border-bottom: 2px solid var(--mvz-brand-green); }
.mvz-nav-bg-frosted-dark.mvz-nav-border-soft,
.mvz-nav-bg-solid-dark.mvz-nav-border-soft { border-bottom-color: rgba(255, 255, 255, 0.08); }

/* --- Logo --- */
.mvz-nav-logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	flex-shrink: 0;
}
.mvz-nav-logo-text {
	font-family: var(--mvz-font-display);
	font-size: 22px;
	letter-spacing: -0.01em;
	color: var(--mvz-text-dark);
	line-height: 1;
}

/* --- Links --- */
.mvz-nav-links {
	display: flex;
	align-items: center;
	gap: 36px;
	flex-wrap: wrap;
}
.mvz-nav-link {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(27, 27, 58, 0.55);
	text-decoration: none;
	transition: color 0.25s ease;
	position: relative;
	padding: 6px 0;
}
.mvz-nav-link:hover { color: var(--mvz-text-dark); }
.mvz-nav-link.is-active {
	color: var(--mvz-text-dark);
}
.mvz-nav-link.is-active::after {
	content: '';
	position: absolute;
	left: 0; right: 0; bottom: -2px;
	height: 2px;
	background: var(--mvz-brand-green);
	border-radius: 2px;
}

/* --- CTA in nav --- */
.mvz-nav-cta {
	padding: 10px 22px !important;
	font-size: 13px !important;
	letter-spacing: 0.04em !important;
	margin-left: 8px;
}

/* --- Mobile hamburger toggle (CSS-only) --- */
.mvz-nav-toggle { display: none; }
.mvz-nav-toggle-btn {
	display: none;
	width: 32px;
	height: 32px;
	cursor: pointer;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 5px;
	background: none;
	border: none;
	padding: 0;
}
.mvz-nav-toggle-btn span {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--mvz-text-dark);
	border-radius: 2px;
	transition: transform 0.3s var(--mvz-ease-spring), opacity 0.2s ease;
	transform-origin: center;
}

/* Open state */
.mvz-nav-toggle:checked ~ .mvz-nav-toggle-btn span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mvz-nav-toggle:checked ~ .mvz-nav-toggle-btn span:nth-child(2) { opacity: 0; }
.mvz-nav-toggle:checked ~ .mvz-nav-toggle-btn span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* --- Responsive: collapse to mobile menu below 900px --- */
@media (max-width: 900px) {
	.mvz-nav-inner { padding: var(--mvz-nav-pad-y, 18px) 24px; flex-wrap: wrap; }
	.mvz-nav-toggle-btn { display: inline-flex; }

	.mvz-nav-links {
		display: none;
		flex-direction: column;
		align-items: flex-start;
		gap: 18px;
		width: 100%;
		padding: 24px 0 8px;
		border-top: 1px solid var(--mvz-divider);
		margin-top: 16px;
	}
	.mvz-nav-toggle:checked ~ .mvz-nav-links {
		display: flex;
	}
	.mvz-nav-link {
		font-size: 14px;
		letter-spacing: 0.18em;
		padding: 8px 0;
		width: 100%;
	}
	.mvz-nav-link.is-active::after { display: none; }
	.mvz-nav-link.is-active { border-left: 2px solid var(--mvz-brand-green); padding-left: 12px; margin-left: -14px; }

	.mvz-nav-cta {
		margin-left: 0;
		margin-top: 8px;
		align-self: stretch;
		justify-content: center;
	}

	.mvz-nav-bg-frosted-dark .mvz-nav-links,
	.mvz-nav-bg-solid-dark .mvz-nav-links { border-top-color: rgba(255, 255, 255, 0.08); }
}

/* Prevent layout shift when sticky nav appears on a page */
.mvz-nav-sticky + * { /* nothing — sticky doesn't push content */ }
