/* --- 0. FONT FACE DECLARATIONS --- */
@font-face {
	font-family: 'Manrope';
	src: url('../fonts/manrope-v20-latin-regular.woff2') format('woff2');
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: 'Manrope';
	src: url('../fonts/manrope-v20-latin-500.woff2') format('woff2');
	font-weight: 500;
	font-display: swap;
}

@font-face {
	font-family: 'Manrope';
	src: url('../fonts/manrope-v20-latin-600.woff2') format('woff2');
	font-weight: 600;
	font-display: swap;
}

@font-face {
	font-family: 'Manrope';
	src: url('../fonts/manrope-v20-latin-700.woff2') format('woff2');
	font-weight: 700;
	font-display: swap;
}

@font-face {
	font-family: 'Manrope';
	src: url('../fonts/manrope-v20-latin-800.woff2') format('woff2');
	font-weight: 800;
	font-display: swap;
}

@font-face {
	font-family: 'JetBrains Mono';
	src: url('../fonts/jetbrains-mono-v24-latin-regular.woff2') format('woff2');
	font-weight: 400;
	font-display: swap;
}

/* --- 1. VARIABLES & RESET --- */
:root {
	/* 1. PALETTE (Primitive) */
	--base-white: #ffffff;
	--base-black: #000000;
	--base-grey-50: #fafafa;
	--base-grey-100: #f5f5f5;
	--base-grey-200: #e5e5e5;
	--base-grey-400: #a3a3a3;
	--base-grey-600: #666666;
	--base-grey-800: #333333;
	--base-grey-900: #1a1a1a;
	--brand-accent: #E3EF26;
	--brand-error: #ff6b6b;

	/* 2. SEMANTICS (Mapping) */
	--bg-surface: var(--base-white);
	--bg-subtle: var(--base-grey-50);
	--bg-contrast: var(--base-grey-900);
	--text-primary: #050505;
	--text-secondary: var(--base-grey-600);
	--text-inverted: var(--base-white);
	--border-light: #e0e0e0;
	--border-dark: var(--base-grey-800);

	/* 3. SHADOWS */
	--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
	--shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
	--shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
	--overlay-dim: rgba(0, 0, 0, 0.5);

	/* 4. TYPOGRAPHY */
	--font-sans: 'Manrope', system-ui, sans-serif;
	--font-mono: 'JetBrains Mono', monospace;
	--text-xs: 0.75rem;
	--text-sm: 0.875rem;
	--text-base: 1rem;
	--text-lg: 1.125rem;
	--text-xl: 1.25rem;
	--text-2xl: clamp(1.5rem, 2vw + 1rem, 1.75rem);
	--text-3xl: clamp(2rem, 3vw + 1rem, 2.5rem);
	--text-4xl: clamp(2.5rem, 5vw + 1rem, 4rem);

	/* 5. SPACING (4px Grid) */
	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-6: 1.5rem;
	--space-8: 2rem;
	--space-12: 3rem;
	--space-16: 4rem;
	--space-32: 8rem;

	/* 6. LAYOUT */
	--radius-base: 10px;
	--container-width: 1200px;
	--container-padding: clamp(1rem, 5vw, 30px);
	--transition-base: 0.2s ease;

	/* 7. AVATAR */
	--avatar-size-sm: 40px;
	--avatar-size-md: 50px;
	--avatar-size-lg: 60px;
}

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

img {
    max-width: 100%;
    height: auto; /* Sorgt dafür, dass das Seitenverhältnis im Browser erhalten bleibt, auch wenn wir HTML-Attribute setzen */
    display: block; /* Entfernt oft ungewollte Abstände unter Bildern */
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 80px; /* Exakte Höhe der Navigation */
}

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

@media (max-width: 767px) {
	html {
		scroll-padding-top: 60px; /* Etwas weniger Abstand mobil, da die Leiste schmaler ist */
	}
}

body {
	background-color: var(--bg-subtle);
	color: var(--text-primary);
	font-family: var(--font-sans);
	line-height: 1.5;
	font-size: var(--text-base);
	-webkit-font-smoothing: antialiased;
	width: 100%;
	overflow-x: hidden;
	position: relative;
	hyphens: auto;
	-webkit-hyphens: auto;
}

body.no-scroll {
	overflow: hidden;
}

/* UTILITIES (Accessibility & Logic) */
.skip-link {
	position: absolute;
	top: -40px;
	left: 0;
	z-index: 9999;
	background: var(--text-primary);
	color: var(--bg-subtle);
	padding: var(--space-2);
	text-decoration: none;
	transition: top 0.2s;
}

.skip-link:focus {
	top: 0;
}

:focus-visible {
	outline: 2px solid var(--text-primary);
	outline-offset: 4px;
}

/* TYPOGRAPHY SCALE */
h1,
h2,
h3 {
	letter-spacing: -0.03em;
	line-height: 1.1;
	text-wrap: balance;
	color: var(--text-primary);
	font-weight: 800;
	margin-bottom: var(--space-8);
}

h1 {
	font-size: var(--text-4xl);
}

h2 {
	font-size: var(--text-3xl);
}

h3 {
	font-size: var(--text-2xl);
}

.article-content h2 {
	font-size: var(--text-2xl);
	margin-top: var(--space-32);
	margin-bottom: var(--space-4);
	line-height: 1.2;
}

h1 .hero-title-line,
h2 .hero-title-line,
h3 .hero-title-line {
	display: block;
}

p {
	max-width: 60ch;
	color: var(--text-secondary);
	font-size: var(--text-base);
	text-wrap: pretty;
	line-height: 1.6;
	hyphens: auto;
	-webkit-hyphens: auto;
}

section {
	content-visibility: auto;
	contain-intrinsic-size: 1px 800px;
}

a {
	text-decoration: none;
	color: inherit;
	transition: color var(--transition-base), background var(--transition-base);
}

/* BUTTONS BASE */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	padding: 1.2rem 2.5rem;
	font-size: var(--text-sm);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	border: 1px solid var(--text-primary);
	background: transparent;
	color: inherit;
	cursor: pointer;
	position: relative;
	overflow: hidden;
	border-radius: var(--radius-base);
	transition: all var(--transition-base);
}

@media(max-width: 767px) {
	.btn {
		padding: var(--space-4) var(--space-6);
		width: 100%;
	}
}

.btn-arrow {
	transition: transform var(--transition-base), color var(--transition-base);
	flex-shrink: 0;
}

.btn:hover .btn-arrow {
	transform: rotate(-45deg);
}

/* Button Variations */
.btn-primary {
	background: var(--text-primary);
	color: var(--bg-subtle);
	border-color: var(--text-primary);
}

.btn-primary:hover {
	background: transparent;
	color: var(--text-primary);
}

.btn-primary .btn-arrow {
	color: var(--bg-subtle);
}

.btn-primary:hover .btn-arrow {
	color: var(--text-primary);
}

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

.btn-secondary:hover {
	background: var(--text-primary);
	color: var(--bg-subtle);
}

.btn-secondary .btn-arrow {
	color: var(--text-primary);
}

.btn-secondary:hover .btn-arrow {
	color: var(--bg-subtle);
}

/* --- DOCUMENT / ENTSCHEIDUNGSVORLAGE STYLES --- */

.doc-body {
    background-color: var(--base-grey-200); /* Dunklerer Hintergrund für Kontrast zum "Blatt" */
    min-height: 100vh;
}

/* Screen Navigation */
.doc-nav {
    background: var(--bg-surface);
    border-bottom: 1px solid var(--border-light);
    padding: var(--space-4) 0;
    position: sticky;
    top: 0;
    z-index: 100;
}

.doc-back-link {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--text-secondary);
}
.doc-back-link:hover { color: var(--text-primary); }

/* Document Sheet (Das "Blatt Papier") */
.doc-wrapper {
    padding: var(--space-8) var(--space-4);
    display: flex;
    justify-content: center;
}

.doc-sheet {
    background: white;
    width: 100%;
    max-width: 210mm; /* A4 Breite */
    min-height: 297mm; /* A4 Höhe */
    padding: 20mm; /* Standard Druckrand */
    box-shadow: var(--shadow-lg);
    color: black; /* Erzwinge Schwarz für Kontrast */
    font-family: var(--font-sans);
}

/* Header */
.doc-header {
    border-bottom: 2px solid black;
    padding-bottom: var(--space-6);
    margin-bottom: var(--space-8);
}

.doc-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-6);
}

.doc-logo { width: 140px; height: auto; }
.doc-date { font-family: var(--font-mono); font-size: 0.8rem; color: var(--base-grey-600); }

.doc-title {
    font-size: 2rem; /* Groß und dominant */
    margin-bottom: var(--space-2);
    line-height: 1.1;
    color: black;
}

.doc-subtitle {
    font-size: 1.1rem;
    color: var(--base-grey-600);
    font-weight: 500;
}

/* Sections */
.doc-section { margin-bottom: var(--space-8); padding-top: var(--space-8);}

.doc-h2 {
    font-size: 1.25rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--base-grey-200);
    padding-bottom: var(--space-2);
    margin-bottom: var(--space-4);
    color: black;
}

.doc-h3 {
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: var(--space-2);
    color: black;
}

/* Highlight Box (Exec Summary) */
.doc-highlight-box {
    background-color: var(--base-grey-50);
    border-left: 4px solid var(--text-primary);
    padding: var(--space-4);
}

/* Lists & Grids */
.doc-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-6);
}

.doc-list {
    padding-left: 1.2rem;
    margin-top: var(--space-2);
}
.doc-list li { margin-bottom: var(--space-2); line-height: 1.4; }

.doc-features {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: var(--space-4);
    margin-top: var(--space-4);
}

.doc-feature-item {
    background: var(--base-grey-50);
    padding: var(--space-3);
    border: 1px solid var(--base-grey-200);
    border-radius: 4px;
}
.doc-feature-item strong { display: block; margin-bottom: 4px; font-size: 0.9rem; }
.doc-feature-item span { font-size: 0.85rem; line-height: 1.4; display: block; color: var(--base-grey-800); }

/* ROI Cards */
.doc-roi-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
}
.doc-roi-card { border: 1px solid black; padding: var(--space-4); }
.doc-roi-title { display: block; font-weight: 800; text-transform: uppercase; margin-bottom: var(--space-2); font-size: 0.8rem; }
.doc-roi-card p { font-size: 0.9rem; line-height: 1.4; color: black; margin: 0; }

/* Investment Section */
.doc-invest-section {
    background: var(--bg-subtle);
    color: var(--text-primary);
    padding: var(--space-6);
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-radius: 4px;
    border: 1px solid var(--border-light);
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

.doc-invest-left .doc-h2 {
    border: none;
    color: var(--text-primary);
    padding: 0;
    margin: 0;
}
.doc-invest-left p { color: var(--text-secondary); margin: 0; }

.doc-invest-right { text-align: right; }
.doc-price { display: block; font-size: 2rem; font-weight: 800; line-height: 1; }
.doc-vat { display: block; font-size: 0.8rem; opacity: 0.8; }

/* Footer */
.doc-footer {
    margin-top: var(--space-12);
    padding-top: var(--space-8);
    padding-bottom: var(--space-4);
    padding-left: var(--space-6);
    padding-right: var(--space-6);
    border-top: 1px solid var(--border-dark);
    background: var(--base-white);
  
    font-size: 0.8rem;
    color: var(--text-secondary);
}
.doc-footer-cols { display: flex; justify-content: space-between; }

/* --- PRINT OPTIMIZATION --- */
@media print {
    @page {
        margin: 0;
        size: A4;
    }
    
    body, .doc-body {
        background: white;
        margin: 0;
        padding: 0;
    }

    .no-print { display: none !important; }

    .doc-wrapper {
        padding: 0;
        margin: 0;
        width: 100%;
    }

    .doc-sheet {
        box-shadow: none;
        max-width: 100%;
        width: 100%;
        padding: 20mm; /* Druckränder sicherstellen */
        margin: 0;
    }

    /* Erzwinge Hintergrundfarben im Druck */
    .doc-highlight-box {
        background-color: #f5f5f5 !important;
        border-left: 4px solid black !important;
        -webkit-print-color-adjust: exact;
    }

    .doc-feature-item {
        border: 1px solid #ccc !important;
    }
    
    /* Investment Box in s/w aber deutlich */
    .doc-invest-section {
        background: #000 !important;
        color: #fff !important;
    }
    
    a { text-decoration: none; color: black; }
}

/* Mobile Tweaks für Screen View */
@media (max-width: 768px) {
    .doc-sheet { padding: var(--space-4); }
    .doc-grid-2, .doc-features, .doc-roi-grid { grid-template-columns: 1fr; }
    .doc-invest-section { flex-direction: column; gap: var(--space-4); text-align: center; }
    .doc-invest-right { text-align: center; }
}

/* Contextual Button Overrides (Dark Sections) */
#zielgruppe .btn-primary,
footer .btn-primary {
	background: var(--text-inverted);
	color: var(--bg-contrast);
	border-color: var(--text-inverted);
}

#zielgruppe .btn-primary:hover,
footer .btn-primary:hover {
	background: transparent;
	color: var(--text-inverted);
}

#zielgruppe .btn-primary .btn-arrow,
footer .btn-primary .btn-arrow {
	color: var(--bg-contrast);
}

#zielgruppe .btn-primary:hover .btn-arrow,
footer .btn-primary:hover .btn-arrow {
	color: var(--text-inverted);
}

/* --- 3. UTILITIES & LAYOUT --- */
.container,
.container-nav {
	max-width: var(--container-width);
	margin-inline: auto;
	padding-inline: var(--container-padding);
	width: 100%;
}

/* Unified Grid System */
.grid-2,
.grid-3,
.grid-4 {
	display: grid;
	width: 100%;
	gap: var(--space-8);
}

/* Grid Specifics */
.grid-2 {
	grid-template-columns: 1fr;
}

.grid-3 {
	grid-template-columns: 1fr;
	margin-top: var(--space-16);
}

.grid-4 {
	grid-template-columns: 1fr;
	gap: var(--space-16);
}

/* Tablet Grid: 2 Spalten für sanfteren Übergang */
@media(min-width: 600px) and (max-width: 1023px) {
	.grid-3 {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--space-6);
	}
}

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

	.grid-3 {
		grid-template-columns: repeat(3, 1fr);
		gap: var(--space-4);
	}

	.grid-4 {
		grid-template-columns: 0.9fr 1.1fr;
	}
}

@media(max-width: 767px) {
	.container {
		padding-bottom: var(--space-16);
	}

	.grid-4 {
		gap: var(--space-8);
	}
}

/* --- HERO SECTION --- */

/* Wrapper für Full-Width Backgrounds */
.hero-wrapper {
	width: 100%;
	background: linear-gradient(to bottom, var(--base-white) 0%, var(--base-grey-200) 100%);
}

.hero-wrapper .container {
	padding-top: 0;
}

.hero {
	padding-block: var(--space-16) var(--space-32);
	min-height: 50vh;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

@media(max-width: 767px) {
	.hero {
		padding: 2rem 0 3rem 0 !important;
		min-height: auto;
	}

	.hero h1 {
		margin-bottom: 1rem !important;
	}

	.hero-text {
		margin-bottom: 1.5rem !important;
	}

	.hero-meta {
		margin-bottom: var(--space-4) !important;
	}

	.hero-signature {
		margin-block: var(--space-4) !important;
	}

	.hero-btn-wrapper {
		margin-top: var(--space-4) !important;
		flex-direction: column !important;
	}

	/* Button Styles - Überschreibt alle anderen Regeln */
	.hero-btn-wrapper .btn,
	.hero-btn-wrapper .btn-primary,
	.hero-content-overlay .hero-btn-wrapper .btn,
	.hero-content-overlay .hero-btn-wrapper .btn-primary {
		background: var(--text-primary) !important;
		color: var(--bg-subtle) !important;
		border: 1px solid var(--text-primary) !important;
		width: 100% !important;
	}

	.hero-btn-wrapper .btn-secondary,
	.hero-content-overlay .hero-btn-wrapper .btn-secondary {
		background: transparent !important;
		color: var(--base-white) !important;
		border: 1px solid var(--base-white) !important;
		width: 100% !important;
	}

	.hero-btn-wrapper .btn .btn-arrow,
	.hero-btn-wrapper .btn-primary .btn-arrow,
	.hero-content-overlay .hero-btn-wrapper .btn .btn-arrow,
	.hero-content-overlay .hero-btn-wrapper .btn-primary .btn-arrow {
		color: var(--bg-subtle) !important;
	}

	.hero-btn-wrapper .btn-secondary .btn-arrow,
	.hero-content-overlay .hero-btn-wrapper .btn-secondary .btn-arrow {
		color: var(--base-white) !important;
	}

	.hero-btn-wrapper .btn:hover,
	.hero-btn-wrapper .btn-primary:hover,
	.hero-content-overlay .hero-btn-wrapper .btn:hover,
	.hero-content-overlay .hero-btn-wrapper .btn-primary:hover {
		background: var(--base-grey-800) !important;
		border-color: var(--base-grey-800) !important;
		color: var(--bg-subtle) !important;
	}

	.hero-btn-wrapper .btn-secondary:hover,
	.hero-content-overlay .hero-btn-wrapper .btn-secondary:hover {
		background: var(--base-white) !important;
		border-color: var(--base-white) !important;
		color: var(--base-black) !important;
	}

	.hero-btn-wrapper .btn:hover .btn-arrow,
	.hero-btn-wrapper .btn-primary:hover .btn-arrow,
	.hero-content-overlay .hero-btn-wrapper .btn:hover .btn-arrow,
	.hero-content-overlay .hero-btn-wrapper .btn-primary:hover .btn-arrow {
		color: var(--bg-subtle) !important;
	}

	.hero-btn-wrapper .btn-secondary:hover .btn-arrow,
	.hero-content-overlay .hero-btn-wrapper .btn-secondary:hover .btn-arrow {
		color: var(--base-black) !important;
	}
}

/* Hero Text Elements */
.hero-meta {
	color: var(--text-secondary);
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	display: block;
	margin-bottom: var(--space-8);
}

.hero-text {
	font-size: var(--text-xl);
	line-height: 1.6;
	color: var(--text-secondary);
	display: block;
	max-width: 550px;
	margin-bottom: var(--space-8);
}

@media(max-width: 1023px) {
	.hero-text {
		max-width: 100%;
	}
}

@media(max-width: 767px) {
	.hero-text {
		font-size: var(--text-base);
	}
}

/* Signature Block */
.hero-signature {
	margin-block: var(--space-8);
}

.hero-signature-divider {
	width: 60px;
	height: 1px;
	background: var(--border-dark);
	margin-bottom: var(--space-4);
}

.hero-signature-content {
	display: flex;
	align-items: center;
	gap: var(--space-4);
}

.hero-signature-avatar {
	display: none;
	flex-shrink: 0;
}

.hero-signature-avatar img {
	width: 60px;
	height: 60px;
	border-radius: var(--radius-base);
	object-fit: cover;
}

.hero-signature-author {
	font-size: var(--text-base);
	color: var(--text-secondary);
	line-height: 1.6;
}

.hero-signature-author strong {
	color: var(--base-white);
	font-weight: 600;
	display: block;
}

@media(max-width: 767px) {
	.hero-signature-content {
		align-items: flex-start;
	}

	.hero-signature-avatar {
		display: block;
	}

	.hero-signature-avatar img {
		width: 75px;
		height: 75px;
	}
}

/* Hero Grid Layout */
.hero-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-8);
	width: 100%;
}

.hero-content-wrapper {
	width: 100%;
	display: flex;
	flex-direction: column;
}

.hero-grid-item {
	display: flex;
	flex-direction: column;
}

/* Desktop Grid Logic */
@media(min-width: 1024px) {
	.hero-grid-alt {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto auto;
		gap: var(--space-16);
	}

	.hero-grid-alt .hero-content-overlay {
		grid-column: 1 / -1;
		grid-row: 1;
		padding: var(--space-32);
		min-height: 500px;
	}

	.hero-grid-alt .hero-grid-item {
		grid-column: 1;
		grid-row: 2;
		padding-top: var(--space-8);
	}

	.hero-grid-alt .hero-stats-wrapper {
		grid-column: 2;
		grid-row: 2;
		margin-top: var(--space-8);
	}
}

/* Content Overlay Card (Das Bild mit Text) */
.hero-content-overlay {
	position: relative;
	overflow: hidden;
	border-radius: var(--radius-base);
	isolation: isolate;
}

/* Neue Klasse für das HTML-Bild */
.hero-bg-image-element {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; /* Verhält sich exakt wie background-size: cover */
    z-index: -2;       /* Liegt ganz hinten */
    will-change: transform;
    transform: translateZ(0); /* Hardware-Beschleunigung für iOS */
}

@media(max-width: 768px) {
	.hero-bg-image-element {
		object-position: center 20%; /* Gesicht von Charles bleibt sichtbar */
	}
}

.hero-content-overlay .hero-overlay {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(to right, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.4) 50%, transparent 100%);
}

/* Colors on Dark Background */
.hero-content-overlay h1,
.hero-content-overlay .hero-text,
.hero-content-overlay .hero-meta,
.hero-content-overlay .hero-signature-author {
	color: var(--base-white);
}

.hero-content-overlay .teaser-title {
	color: var(--base-grey-200);
}

.hero-content-overlay .hero-signature-divider {
	background-color: rgba(255, 255, 255, 0.3);
}

/* Overlay Button */
.hero-content-overlay .btn-primary {
	background: var(--base-white);
	color: var(--base-black);
	border-color: var(--base-white);
}

.hero-content-overlay .btn-primary:hover {
	background: var(--base-black);
	color: var(--base-white);
	border-color: var(--base-black);
}

.hero-content-overlay .btn-primary .btn-arrow {
	color: var(--base-black);
}

.hero-content-overlay .btn-primary:hover .btn-arrow {
	color: var(--base-white);
}

/* Hero Secondary Button (Weißer Text, Border, Transparenter Hintergrund) */
.hero-content-overlay .btn-secondary {
	background: transparent;
	color: var(--base-white);
	border-color: var(--base-white);
}

.hero-content-overlay .btn-secondary:hover {
	background: var(--base-white);
	color: var(--base-black);
	border-color: var(--base-white);
}

.hero-content-overlay .btn-secondary .btn-arrow {
	color: var(--base-white);
}

.hero-content-overlay .btn-secondary:hover .btn-arrow {
	color: var(--base-black);
}

/* Hero Button Wrapper - Flexbox für beide Buttons */
.hero-btn-wrapper {
	display: flex;
	gap: var(--space-4);
	flex-wrap: wrap;
}

@media(max-width: 767px) {
	.hero-wrapper {
		background: linear-gradient(to bottom, #ffffff 0%, #f4f4f4 100%);
		margin-top: -60px;
		position: relative;
		z-index: 1;
	}

	.hero {
		padding-top: calc(2rem + 60px) !important;
	}

	.hero-bg-image-element {
		display: none;
	}

	.hero-overlay {
		display: none;
	}

	.hero-content-overlay {
		padding: 0 !important;
		min-height: auto !important;
	}

	.hero-content-wrapper {
		gap: var(--space-4) !important;
	}

	/* Textfarben auf dunkel ändern für hellem Hintergrund */
	.hero-content-overlay h1,
	.hero-content-overlay .hero-text,
	.hero-content-overlay .hero-meta,
	.hero-content-overlay .hero-signature-author {
		color: var(--text-primary);
	}

	/* Typografie-Optimierung für bessere Zeilenumbrüche */
	.hero-content-overlay h1,
	.hero-content-overlay .hero-text {
		hyphens: manual;
	}

	.hero-content-overlay .hero-signature-author strong {
		color: var(--text-primary);
	}

	.hero-content-overlay .teaser-title {
		color: var(--text-secondary);
	}

	.hero-content-overlay .hero-signature-divider {
		background-color: var(--border-dark);
	}
}

/* Tablet: Hero Content Padding */
@media(min-width: 768px) and (max-width: 1023px) {
	.hero-content-wrapper {
		padding: var(--space-8) var(--container-padding);
	}
}

/* Stats */
.hero-stats-wrapper .stats-grid-large {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-8);
}

.hero-stats-wrapper .stat-item-large {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: var(--space-4) 0;
	border-top: 2px solid var(--base-grey-400);
}

.hero-stats-wrapper .stat-number-large {
	font-size: var(--text-2xl);
	font-weight: 600;
	line-height: 1;
	color: var(--text-primary);
	letter-spacing: -0.05em;
	margin-bottom: 0.25rem;
}

.hero-stats-wrapper .stat-label-large {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--text-secondary);
}

@media(max-width: 767px) {
	.hero-stats-wrapper {
		margin-top: var(--space-8);
		padding-top: var(--space-8);
	}

	.hero-stats-wrapper .stats-grid-large {
		gap: var(--space-4);
	}
}

/* Hero Testimonial Item */
.hero-grid-item.log-item {
	align-items: flex-start;
	justify-content: flex-start;
	align-self: start;
}


/* --- 5. NAVIGATION --- */

/* Wrapper & Sticky Logic */
.nav-wrapper {
	width: 100%;
	position: sticky;
	top: 0;
	z-index: 1000;
	background-color: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-bottom: 1px solid transparent;
	transition: all var(--transition-base);
	padding-top: env(safe-area-inset-top);
}

.nav-wrapper.scrolled {
	border-bottom-color: var(--border-light);
	box-shadow: var(--shadow-sm);
}

.nav-bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: var(--space-4) 0;
	transition: padding var(--transition-base);
}

.nav-wrapper.scrolled .nav-bar {
	padding: var(--space-3) 0;
}

.nav-logo {
	display: flex;
	align-items: center;
	transition: opacity var(--transition-base);
}

.nav-logo:hover {
	opacity: 0.7;
}

.nav-logo img {
	height: 24px;
	width: auto;
}

/* Desktop Navigation Links */
.nav-links {
	display: flex;
	align-items: center;
	gap: var(--space-8);
	list-style: none;
}

.nav-link {
	font-family: var(--font-sans);
	font-size: var(--text-sm);
	font-weight: 500;
	color: var(--text-primary);
	position: relative;
	padding: var(--space-2) 0;
	transition: font-weight var(--transition-base);
}

.nav-link.active {
	font-weight: 700;
}

.nav-link:not(.nav-cta):not(.nav-btn-impulse):hover {
	color: var(--text-secondary);
}

/* Underline Effect (Desktop only) */
@media(min-width: 1024px) {
	.nav-link:not(.nav-cta):not(.nav-btn-impulse)::after {
		content: '';
		position: absolute;
		bottom: 0;
		left: 0;
		width: 0;
		height: 1px;
		background-color: var(--text-primary);
		transition: width var(--transition-base);
	}

	.nav-link:hover::after {
		width: 100%;
	}
}

/* Nav Actions (Buttons rechts) */
.nav-actions {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	margin-left: var(--space-4);
	padding-left: var(--space-8);
	border-left: 1px solid var(--border-light);
}

/* Impulse Button */
.nav-link.nav-btn-impulse {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	padding: var(--space-2) var(--space-4);
	border-radius: var(--radius-base);
	font-size: var(--text-xs);
	text-transform: uppercase;
	border: 1px solid var(--border-light);
	background-color: var(--bg-subtle);
	color: var(--text-secondary);
	transition: all var(--transition-base);
}

.nav-link.nav-btn-impulse:hover {
	background: var(--text-primary);
	color: var(--bg-subtle);
	border-color: var(--text-primary);
}

/* CTA Button */
.nav-link.nav-cta {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	padding: var(--space-2) var(--space-4);
	border-radius: var(--radius-base);
	font-size: var(--text-xs);
	text-transform: uppercase;
	font-weight: 600;
	border: 1px solid var(--text-primary);
	color: var(--text-primary);
}

.nav-link.nav-cta:hover {
	background: var(--text-primary);
	color: var(--bg-subtle);
}

.nav-link.nav-cta .btn-arrow {
	transition: transform var(--transition-base);
}

.nav-link.nav-cta:hover .btn-arrow {
	transform: rotate(-45deg);
	color: var(--bg-subtle);
}

/* MOBILE MENU LOGIC */
.nav-toggle {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	padding: var(--space-2);
	z-index: 1001;
}

@media (max-width: 1023px) {
	.nav-toggle {
		display: block;
		position: relative;
		width: 44px;
		height: 44px;
		min-height: 44px;
		padding: var(--space-3);
	}

	/* Icons Toggle */
	.nav-toggle-icon,
	.nav-toggle-close {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: 24px;
		transition: opacity var(--transition-base);
	}

	.nav-toggle-close {
		opacity: 0;
	}

	.nav-toggle[aria-expanded="true"] .nav-toggle-icon {
		opacity: 0;
	}

	.nav-toggle[aria-expanded="true"] .nav-toggle-close {
		opacity: 1;
	}

	/* Drawer Styles */
	.nav-links {
		position: fixed;
		top: 0;
		right: -100%;
		width: 85%;
		max-width: 320px;
		height: 100vh;
		background-color: var(--bg-surface);
		flex-direction: column;
		align-items: flex-start;
		padding: calc(var(--space-16) + 20px) var(--space-8) var(--space-8);
		gap: var(--space-6);
		border-left: 1px solid var(--border-light);
		transition: right 0.3s ease;
		z-index: 1000;
		box-shadow: -4px 0 20px var(--shadow-md);
		overflow-y: auto;
	}

	.nav-links.active,
	.nav-links[aria-expanded="true"] {
		right: 0;
	}

	.nav-link {
		font-size: var(--text-lg);
		width: 100%;
		border-bottom: 1px solid var(--border-light);
		padding-bottom: var(--space-2);
	}

	.nav-actions {
		border-left: none;
		border-top: 1px solid var(--border-light);
		padding-left: 0;
		margin-left: 0;
		padding-top: var(--space-8);
		width: 100%;
		flex-direction: column;
		align-items: flex-start;
		gap: var(--space-4);
	}

	.nav-link.nav-btn-impulse,
	.nav-link.nav-cta {
		width: 100%;
		justify-content: center;
		text-align: center;
	}

	/* Primary Button - Solid Style */
	.nav-link.nav-cta {
		background-color: var(--text-primary);
		color: var(--bg-subtle);
		border: 1px solid var(--text-primary);
		padding-block: var(--space-4);
		font-weight: 600;
	}

	.nav-link.nav-cta .btn-arrow {
		color: var(--bg-subtle);
	}

	.nav-link.nav-cta:hover {
		background-color: var(--base-grey-800);
		border-color: var(--base-grey-800);
	}

	.nav-link.nav-cta:hover .btn-arrow {
		color: var(--bg-subtle);
	}

	/* Secondary Button - Subtle Style */
	.nav-link.nav-btn-impulse {
		background-color: var(--base-grey-100);
		color: var(--text-primary);
		border: 1px solid transparent;
		padding-block: var(--space-4);
	}

	.nav-link.nav-btn-impulse:hover {
		background-color: var(--base-grey-200);
		border-color: transparent;
		color: var(--text-primary);
	}

	/* Dark Overlay */
	.nav-overlay {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: rgba(0, 0, 0, 0.4);
		z-index: 999;
		opacity: 0;
		pointer-events: none;
		transition: opacity var(--transition-base);
		backdrop-filter: blur(2px);
	}

	.nav-links.active~.nav-overlay {
		opacity: 1;
		pointer-events: auto;
	}
}

@media (max-width: 767px) {
	.nav-bar {
		padding: 0.75rem 0;
		transition: none;
	}

	.nav-wrapper.scrolled .nav-bar {
		padding: 0.75rem 0;
	}

	.nav-logo {
		margin: 0;
		padding: 0;
	}

	.nav-logo img {
		height: 22px;
		width: auto;
		margin: 0;
		padding: 0;
	}

	.nav-toggle {
		width: 40px;
		height: 40px;
		min-height: 40px;
		padding: 0.5rem;
		margin: 0;
	}

	.container-nav {
		padding-inline: 1rem;
		padding-top: 0;
		padding-bottom: 0;
		margin-top: 0;
		margin-bottom: 0;
	}

	/* Immersive Header - Transparent initial */
	.nav-wrapper {
		background-color: transparent;
		border-bottom-color: transparent;
		transition: background-color 0.3s ease, border-bottom-color 0.3s ease, box-shadow 0.3s ease;
	}

	/* Beim Scrollen: Opak mit Hintergrund */
	.nav-wrapper.scrolled {
		background-color: rgba(255, 255, 255, 0.95);
		border-bottom: 1px solid var(--border-light);
		box-shadow: var(--shadow-sm);
	}
}

/* Breadcrumb (Optional, falls Unterseiten genutzt werden) */
.breadcrumb {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	background-color: var(--text-primary);
	color: var(--base-white);
	padding: var(--space-2) 0;
	position: sticky;
	top: 64px;
	z-index: 998;
}

.breadcrumb-list {
	display: flex;
	list-style: none;
	gap: var(--space-2);
	text-transform: uppercase;
}

.breadcrumb-item:not(:last-child)::after {
	content: '/';
	margin-left: var(--space-2);
	opacity: 0.6;
}

.breadcrumb-link {
	color: rgba(255, 255, 255, 0.8);
}

.breadcrumb-link:hover,
.breadcrumb-item[aria-current="page"] {
	color: var(--base-white);
}


/* Gemeinsame Basisklasse für alle Teaser-Titel */
.teaser-title,
.hero-meta,
.section-meta,
.pillar-header,
.spec-type {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	color: var(--text-secondary);
	display: block;
	margin-bottom: var(--space-4);
}


/* TESTIMONIALS */

.log-item-jonas,
.log-item-beate,
.log-item-waqas {
	padding: var(--space-4) 0;
}

.log-content-wrapper {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
}

.log-stars {
	display: flex;
	gap: var(--space-1);
	margin-bottom: var(--space-4);
}

.log-stars .star {
	color: var(--text-primary);
	font-size: var(--text-xl);
	line-height: 1;
}

.log-text {
	display: flex;
	flex-direction: column;
}

.log-quote {
	font-size: var(--text-base);
	margin-bottom: 20px;
	color: var(--text-primary);
}

.log-author-wrapper {
	display: flex;
	align-items: center;
	gap: var(--space-4);
}

.log-avatar {
	width: var(--avatar-size-md);
	height: var(--avatar-size-md);
	max-width: var(--avatar-size-md);
	max-height: var(--avatar-size-md);
	object-fit: cover;
	border-radius: var(--radius-base);
	flex-shrink: 0;
	display: block;
}

.log-meta {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	line-height: 1.4;
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
}

.log-name {
	color: var(--text-primary);
	font-weight: 600;
}

.log-position {
	color: var(--text-secondary);
	font-weight: 400;
}


@media(max-width: 767px) {
	.log-avatar {
		width: var(--avatar-size-sm);
		height: var(--avatar-size-sm);
		max-width: var(--avatar-size-sm);
		max-height: var(--avatar-size-sm);
	}

	.log-quote {
		font-size: var(--text-base);
	}

	.log-meta {
		font-size: var(--text-xs);
		gap: var(--space-1);
	}

	.log-name {
		font-size: var(--text-xs);
	}

	.log-position {
		font-size: var(--text-xs);
	}
}

/* --- SECTION 1: DIAGNOSTIC GRID (#zielgruppe) --- */

#zielgruppe {
	background-color: var(--bg-contrast);
	color: var(--text-inverted);
	padding-block: var(--space-32);
	position: relative;
}

@media(max-width: 767px) {
	#zielgruppe {
		padding-block: 4rem;
	}
}

/* Header Anpassungen für Dark Mode */
#zielgruppe .section-header {
	border-bottom-color: var(--border-dark);
}

#zielgruppe h2 {
	color: var(--text-inverted);
}

#zielgruppe p {
	color: var(--base-grey-400);
}

#zielgruppe .teaser-title {
	color: var(--base-grey-400);
}

/* Layout Grid */
.problem-grid-2col {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-8);
	width: 100%;
	margin-top: var(--space-16);
}

@media(min-width: 1024px) {
	.problem-grid-2col {
		grid-template-columns: 1.2fr 0.8fr;
		/* Linke Seite etwas breiter für Textfluss */
		align-items: center;
		/* Vertikal zentriert */
	}
}

/* --- Linke Spalte (Symptome) --- */
.problem-card-left {
	padding-right: var(--space-8);
}

@media(max-width: 1023px) {
	.problem-card-left {
		padding-right: 0;
	}
}

.problem-list-left {
	list-style: none;
	padding: 0;
	margin: 0;
}

.problem-list-left li {
	display: flex;
	align-items: flex-start;
	gap: var(--space-4);
	margin-bottom: var(--space-12);
}

.problem-list-left li:last-child {
	margin-bottom: 0;
}

/* Icon Styling (Links) */
.problem-arrow-icon {
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	margin-top: 4px;
	/* Optische Ausrichtung zur ersten Textzeile */
	filter: invert(1) opacity(0.8);
	/* Macht schwarze Icons weiß */
}

.diag-title {
	font-size: var(--text-xl);
	font-weight: 700;
	color: var(--text-inverted);
	margin-bottom: var(--space-2);
	line-height: 1.2;
}

/* --- Rechte Spalte (Lösungskarte) --- */
.problem-card-right {
	background: linear-gradient(145deg, #1e1e1e 0%, #111111 100%);
	border: 1px solid var(--border-dark);
	border-radius: var(--radius-base);
	padding: var(--space-8);
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}

/* Label oben in der Karte */
.diag-label-sub {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	color: var(--brand-accent);
	/* Akzentfarbe für "WAS SIE BRAUCHEN" */
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 600;
	margin-bottom: var(--space-6);
	display: block;
	padding-bottom: var(--space-4);
	border-bottom: 1px solid var(--border-dark);
}

/* Check-Liste in der rechten Karte */
.problem-list-right {
	list-style: none;
	padding: 0;
	margin: 0 0 var(--space-8) 0;
}

.problem-list-right li {
	display: flex;
	align-items: flex-start;
	gap: var(--space-3);
	margin-bottom: var(--space-4);
	color: var(--base-grey-200);
	font-size: var(--text-base);
	line-height: 1.5;
}

.problem-list-right li:last-child {
	margin-bottom: 0;
}

/* Häkchen Icon Anpassung */
.problem-list-right li img {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	margin-top: 3px;
	filter: brightness(0) invert(1);
}

/* Footer-Text in der Karte (Pfeil + Mentor Text) */
.problem-card-right .problem-text {
	color: var(--text-inverted);
	font-weight: 600;
	display: flex;
	gap: var(--space-3);
	align-items: flex-start;
	padding-top: var(--space-6);
	border-top: 1px solid var(--border-dark);
}

.problem-card-right .problem-text-icon {
	flex-shrink: 0;
	width: 20px;
	margin-top: 3px;
	filter: brightness(0) invert(1);
}

/* --- SECTION 2: SYSTEM VISUALISIERUNG (#system-visual) --- */

#system-visual {
	background-color: var(--base-grey-100);
	/* Leichtes Grau als Kontrast zu Section 1 */
	padding-block: var(--space-32);
	position: relative;
	overflow: hidden;
	/* Damit Connector-Linien nicht rausragen */
}

@media(max-width: 767px) {
	#system-visual {
		padding-block: 4rem;
	}
}

.system-visual-wrapper {
	width: 100%;
	padding-top: var(--space-16);
}

/* 1. Das Grid Layout (Mobile First: Untereinander) */
.system-visual-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-16);
	align-items: center;
	position: relative;
}

/* Desktop: 3 Spalten (Links - Mitte - Rechts) */
@media(min-width: 1024px) {
	.system-visual-grid {
		grid-template-columns: 1fr 300px 1fr;
		/* Mitte fix, Seiten flexibel */
		gap: var(--space-8);
	}
}

/* 2. Die Äußeren Säulen (Pillars) */
.system-pillar {
	background-color: var(--bg-surface);
	border: 1px solid var(--border-light);
	border-radius: var(--radius-base);
	padding: var(--space-8);
	box-shadow: var(--shadow-sm);
	height: 100%;
	/* Damit beide gleich hoch wirken */
	transition: transform var(--transition-base);
}

.system-pillar:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-md);
}

.pillar-header {
	display: block;
	margin-bottom: var(--space-2);
	color: var(--text-secondary);
	font-size: var(--text-xs);
	font-family: var(--font-mono);
}

.pillar-title {
	font-size: var(--text-2xl);
	font-weight: 800;
	margin-bottom: var(--space-6);
	padding-bottom: var(--space-4);
	border-bottom: 1px solid var(--border-light);
	color: var(--text-primary);
}

/* Pillar Listen Styling */
.pillar-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.pillar-list li {
	position: relative;
	padding-left: 1.5rem;
	margin-bottom: var(--space-6);
	font-size: var(--text-base);
	line-height: 1.6;
	color: var(--text-secondary);
	line-height: 1.6;
}

.pillar-list li:last-child {
	margin-bottom: 0;
}

/* Custom Bullet Points (Pfeil) */
.pillar-list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.3em;
	width: 14px;
	height: 14px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	opacity: 0.6;
}

.pillar-list strong {
	display: block;
	color: var(--text-primary);
	margin-bottom: 2px;
}

.highlight {
	color: var(--text-primary);
	font-weight: 500;
}

/* Optional für Hervorhebungen */


/* 3. Das Herzstück (Mitte) */
.system-engine-core {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: var(--space-4) 0;
}

/* Die Linien im Hintergrund (Nur Desktop) */
.connector-line {
	display: none;
}

@media(min-width: 1024px) {
	.connector-line {
		display: block;
		position: absolute;
		top: 50%;
		height: 2px;
		z-index: 0;
	}

	.connector-left {
		left: -20%;
		right: 50%;
		/* Reicht von linker Säule bis zur Mitte */
		background: linear-gradient(90deg, transparent, var(--border-dark));
		opacity: 0.2;
	}

	.connector-right {
		left: 50%;
		right: -20%;
		background: linear-gradient(90deg, var(--border-dark), transparent);
		opacity: 0.2;
	}
}

/* Die Box selbst */
.sync-box {
	position: relative;
	z-index: 2;
	background: var(--bg-contrast);
	color: var(--text-inverted);
	padding: var(--space-8);
	border-radius: var(--radius-base);
	text-align: center;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
	width: 100%;
	max-width: 320px;
}

/* Dekorativer gestrichelter Rahmen innen */
.sync-box::after {
	content: '';
	position: absolute;
	inset: 6px;
	border: 1px dashed rgba(255, 255, 255, 0.2);
	border-radius: 6px;
	pointer-events: none;
}

/* Icon Animation */
.sync-icon {
	display: flex;
	justify-content: center;
	align-items: center;
}

.sync-icon img {
	width: 48px;
	height: 48px;
	animation: spin-reverse 12s linear infinite;
	margin-bottom: var(--space-4);
	display: block;
	will-change: transform;
	transform: translateZ(0); /* Hardware-Beschleunigung für iOS */
}

@keyframes spin {
	100% {
		transform: rotate(360deg);
	}
}

@keyframes spin-reverse {
	100% {
		transform: rotate(-360deg);
	}
}

/* Text in der Box */
.sync-label {
	display: block;
	text-transform: uppercase;
	font-weight: 700;
	margin-bottom: var(--space-6);
	line-height: 1.2;
}

.sync-list {
	text-align: left;
	list-style: none;
	margin-bottom: var(--space-8);
	padding-left: var(--space-2);
}

.sync-list li {
	position: relative;
	padding-left: 2rem;
	margin-bottom: var(--space-2);
	font-size: var(--text-sm);
	opacity: 0.9;
	display: flex;
	align-items: center;
	min-height: 20px;
}

/* Sync List Icons (Häkchen) */
.sync-list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	background-image: url("../images/icons/check-double-line.svg");
	background-size: contain;
	background-repeat: no-repeat;
	filter: brightness(0) invert(1);
	/* Icons weiß machen */
}

/* Button in der schwarzen Box */
.sync-cta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	background: var(--text-inverted);
	color: var(--bg-contrast);
	padding: var(--space-3) var(--space-4);
	border-radius: var(--radius-base);
	font-weight: 700;
	font-size: var(--text-xs);
	text-transform: uppercase;
	position: relative;
	z-index: 5;
	transition: all var(--transition-base);
}

.sync-cta:hover {
	background: var(--brand-accent);
	color: var(--bg-contrast);
}

.sync-cta svg {
	width: 14px;
	height: 14px;
}

/* --- SECTION 3: KOMPETENZ & TESTIMONIALS (#kompetenz) --- */

#kompetenz {
	background-color: var(--bg-surface);
	padding-block: var(--space-32);
}

@media(max-width: 767px) {
	#kompetenz {
		padding-block: 4rem;
	}
}

/* 1. Kompetenz-Karten (Grid Layout) */
.specs-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-8);
	margin-top: var(--space-16);
}

/* Tablet Grid: 2 Spalten für sanfteren Übergang */
@media(min-width: 600px) and (max-width: 1023px) {
	.specs-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--space-6);
	}
}

@media(min-width: 1024px) {

	/* Explizit 3 Spalten erzwingen wenn angefordert */
	.specs-grid.grid-layout-3 {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* Die einzelne Karte */
.spec-card {
	background-color: var(--bg-subtle);
	border: 1px solid var(--border-light);
	border-radius: var(--radius-base);
	padding: var(--space-8);
	display: flex;
	flex-direction: column;
	transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
}

.spec-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-md);
	border-color: var(--text-primary);
}

/* Inhalte der Karte */
.spec-header h3 {
	font-size: var(--text-xl);
	margin-bottom: var(--space-4);
}

.spec-header p {
	font-size: var(--text-sm);
	color: var(--text-secondary);
	margin-bottom: var(--space-6);
}

/* Trennlinie & Label "WIE ICH HELFE" */
.spec-label-sub {
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	color: var(--text-secondary);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 600;
	margin-top: auto;
	/* Schiebt das Label nach unten, falls oben wenig Text ist */
	margin-bottom: var(--space-4);
	padding-bottom: var(--space-2);
	border-bottom: 1px solid var(--border-light);
	display: flex;
	width: 100%;
}

/* Die Listen in den Karten */
.spec-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.spec-list li {
	position: relative;
	padding-left: 1.5rem;
	margin-bottom: var(--space-2);
	font-size: var(--text-base);
	color: var(--text-secondary);
}

/* Kleiner Pfeil als Icon */
.spec-list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.4em;
	width: 12px;
	height: 12px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	opacity: 0.5;
}


/* 2. Testimonials (Kundenstimmen) */
.testimonial-wrapper {
	margin-top: var(--space-16);
	padding-top: var(--space-16);
	border-top: 1px solid var(--border-light);
}

.profil-testimonials {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-8);
	margin-top: var(--space-16);
}

/* Tablet Grid: 2 Spalten für sanfteren Übergang */
@media(min-width: 600px) and (max-width: 1023px) {
	.profil-testimonials {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--space-6);
	}
}

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

/* Einzelne Testimonial Karte (nutzt .log-item Klasse aus HTML) */
.log-item {
	background-color: var(--bg-subtle);
	border: 1px solid var(--border-light);
	border-radius: var(--radius-base);
	padding: var(--space-8);
	display: flex;
	flex-direction: column;
	height: 100%;
	/* Wichtig für gleiche Höhe im Grid */
}

.log-content-wrapper {
	display: flex;
	flex-direction: column;
	height: 100%;
}

/* Sterne */
.log-stars {
	color: var(--text-primary);
	margin-bottom: var(--space-4);
	font-size: 1rem;
	letter-spacing: 2px;
}

/* Zitat */
.log-quote {
	
	font-size: var(--text-base);
	color: var(--text-secondary);
	line-height: 1.6;
	margin-bottom: var(--space-8);
	flex: 1;
	/* Drückt den Autor nach unten */
}

/* Autor Info (Unten) */
.log-author-wrapper {
	display: flex;
	align-items: center;
	gap: var(--space-4);
	padding-top: var(--space-4);
	border-top: 1px solid var(--border-light);
}

.log-avatar {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	object-fit: cover;
	background: var(--base-grey-200);
}

.log-meta {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.log-name {
	font-weight: 700;
	font-size: var(--text-sm);
	color: var(--text-primary);
	text-transform: uppercase;
}

.log-position {
	font-size: 0.7rem;
	color: var(--text-secondary);
	font-family: var(--font-mono);
	text-transform: uppercase;
	margin-top: 2px;
}

/* Mobile Anpassung */
@media(max-width: 767px) {
	.testimonial-wrapper {
		margin-top: var(--space-16);
	}

	.specs-grid,
	.profil-testimonials {
		gap: var(--space-8);
	}
}
/* --- SECTION 4: PRICING / ZUSAMMENARBEIT (#zusammenarbeit-details) --- */

#zusammenarbeit-details {
    background-color: var(--bg-surface);
    color: var(--text-primary);
    padding-block: var(--space-32);
}

@media(max-width: 767px) {
	#zusammenarbeit-details {
		padding-block: 4rem;
	}

	/* Preis verkleinern für bessere Hierarchie */
	.spec-card-price-amount {
		font-size: 1.75rem;
		margin-bottom: 0.25rem;
	}

	/* Headlines stärken */
	.offer-card h3,
	.pricing-content-card h3 {
		font-size: 1.5rem;
		font-weight: 800;
	}

	/* Feature-Liste kompakter machen */
	.pricing-phase-boxes {
		gap: var(--space-4);
		padding: 1rem 0;
		margin: var(--space-4) 0;
	}

	.pricing-phase-item-title {
		margin-bottom: 0;
	}

	.pricing-phase-boxes p,
	.pricing-phase-boxes .pricing-phase-item-description,
	.pricing-content-card .pricing-phase-item-description {
		font-size: var(--text-sm);
		margin-top: var(--space-1);
		line-height: 1.5;
	}
}

/* Light Mode Overrides */
#zusammenarbeit-details .section-header { border-bottom-color: var(--border-light); }
#zusammenarbeit-details h2 { color: var(--text-primary); }
#zusammenarbeit-details p, 
#zusammenarbeit-details .teaser-title { color: var(--text-secondary); }

/* Grid Layout */
.specs-grid.grid-layout-20-80 {
    display: grid; grid-template-columns: 1fr; gap: var(--space-8);
    margin-top: var(--space-16);
}

@media(min-width: 1024px) {
    .specs-grid.grid-layout-20-80 {
        grid-template-columns: 320px 1fr;
        align-items: stretch;
    }
}

/* 1. Die linke Karte (Container) */
.offer-card {
    background: var(--bg-subtle);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-base);
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: var(--space-8);
}
.offer-card.featured { border-color: var(--base-grey-600); position: relative; overflow: hidden; }
.offer-card.featured::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
    background: var(--brand-accent);
}

/* 2. Der Inhalt der linken Karte */
.offer-card-body {
    padding: 0;
    display: flex;
    flex-direction: column;
    height: auto;
}

.offer-card-footer {
    padding: 0 var(--space-8) var(--space-8) var(--space-8);
}

/* --- PRICING CREDIT BADGE (Risk Reversal) --- */

.pricing-credit-badge {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    margin-top: var(--space-6);
    padding: var(--space-3);
    background: var(--bg-subtle); 
    border: 1px solid var(--border-light);
    border-radius: var(--radius-base);
    font-size: var(--text-sm);
    line-height: 1.4;
    color: var(--text-secondary);
}

.pricing-credit-badge svg,
.pricing-credit-badge img {
    color: black; 
    flex-shrink: 0;
    margin-top: 2px; 
    display: block;
}

.pricing-credit-badge span {
    font-weight: 500;
}

/* --- PRICING FOOTER AREA (Für Symmetrie) --- */

.pricing-footer-area {
    margin-top: var(--space-6);   
    padding-top: var(--space-4);   
    border-top: 1px solid var(--border-light); 
}

.pricing-footer-area .pricing-credit-badge {
    margin-top: 0; 
    background: transparent; 
    border: none;
    padding: 0;
}


/* --- Rechte Karte (Programm) --- */
.pricing-content-card {
    background-color: transparent;
    border: 1px solid var(--border-light);
    border-radius: var(--radius-base);
    padding: var(--space-8);
    display: flex; flex-direction: column;
}

/* --- INTERNAL SALES NUDGE (Budget Freigabe) --- */

.internal-sales-nudge {
    margin-top: var(--space-6);
    padding-top: var(--space-4);
    border-top: 1px solid var(--border-light); /* Dezente Linie auf hellem Grund */
}

.nudge-text {
    font-size: 0.9rem; /* Etwas kleiner als Standardtext */
    color: var(--text-secondary);
    margin-bottom: var(--space-2);
}

.nudge-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-primary); /* Dunkler Text */
    text-decoration: underline;
    text-underline-offset: 4px;
    transition: color var(--transition-base);
}

.nudge-link svg {
    flex-shrink: 0;
    opacity: 0.8;
}

.nudge-link:hover {
    color: var(--text-primary); /* Dein Akzent-Gelb beim Hover */
    text-decoration-color: var(--text-primary);
}

/* --- Gemeinsame Elemente & Typo --- */
.offer-card h3, .pricing-content-card h3 { color: var(--text-primary); margin-bottom: var(--space-6); }
.offer-card p { color: var(--text-secondary); font-size: var(--text-sm); }
.pricing-content-card p { color: var(--text-secondary); font-size: var(--text-sm); }

/* Bottom Wrapper (Schiebt Preis nach unten) */
.pricing-bottom-wrapper {
    margin-top: auto; 
    padding: 0; 
    padding-top: var(--space-8); 
    width: 100%;
}

.pricing-bottom-wrapper .btn {
    margin-top: var(--space-6); 
    width: 100%;
}
/* Preis-Darstellung */
.spec-card-price-section {
    margin-top: auto; padding-top: var(--space-8);
    border-top: 1px solid var(--border-light);
}

/* Variante ohne Border (weil im Wrapper schon Abstand ist) */
.price-section-clean {
    border-top: none;
    padding-top: 0;
}

.spec-card-price-amount {
    font-size: 2.5rem; font-weight: 800; color: var(--text-primary);
    line-height: 1; margin-bottom: var(--space-1);
}
.spec-card-price-note { font-size: 0.8rem; color: var(--text-secondary); display: block; }

/* Kleiner Hinweistext */
.pricing-finance-note {
    font-size: 0.85rem;
    color: var(--text-secondary);
    margin-bottom: 2rem;
    margin-top: 0.5rem;
}

/* Phasen Boxen */
.pricing-phase-boxes {
    display: grid; grid-template-columns: 1fr; gap: var(--space-8);
    margin: var(--space-8) 0;
    padding: var(--space-8) 0;
    border-top: 1px solid var(--border-light);
    border-bottom: 1px solid var(--border-light);
}
@media(min-width: 768px) { .pricing-phase-boxes { grid-template-columns: repeat(3, 1fr); } }

.pricing-phase-item-title {
    color: var(--text-primary); font-weight: 700; font-size: var(--text-base);
    margin-bottom: var(--space-2); display: flex; align-items: center; gap: var(--space-2);
}
.pricing-phase-bullet { 
    color: black; 
    flex-shrink: 0; 
    display: block;
}

.pricing-phase-bullet img {
    width: 16px;
    height: 16px;
    display: block;
}

/* Buttons */
#zusammenarbeit-details .btn-primary {
    background: var(--bg-contrast); color: var(--text-inverted); border-color: var(--bg-contrast);
}
#zusammenarbeit-details .btn-primary:hover {
    background: transparent; color: var(--bg-contrast);
}
#zusammenarbeit-details .btn-primary .btn-arrow { color: var(--text-inverted); }
#zusammenarbeit-details .btn-primary:hover .btn-arrow { color: var(--bg-contrast); }

/* Button Modifiers */
.btn-full-width { width: 100%; }
.btn-pricing-program { align-self: flex-start; width: auto; padding-inline: 3rem; }


/* --- SECTION 5: PROFIL (#profil) --- */

#profil {
	background-color: var(--bg-contrast);
	/* Dunkel */
	color: var(--text-inverted);
	padding-block: var(--space-32);
	border-top: 1px solid var(--border-dark);
}

@media(max-width: 767px) {
	#profil {
		padding-block: 4rem;
	}

	#profil .profil-image-wrapper {
		margin-bottom: var(--space-4);
	}

	#profil .profil-image-wrapper img {
		width: 100% !important;
		height: 220px !important;
		object-fit: cover !important;
		object-position: top center !important;
		border-radius: var(--radius-base);
	}
}

/* Tablet: Profil-Bild "Cinema Cut" (Standard für alle Seiten außer index.html) */
@media(min-width: 768px) and (max-width: 1023px) {
	#profil .profil-image-wrapper {
		max-height: 400px;
		overflow: hidden;
	}

	#profil .profil-image-wrapper img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center 20%;
		border-radius: var(--radius-base);
	}
}

/* Tablet: Profil-Bild als Quadrat linksbündig (nur index.html) */
/* Überschreibt die obige Regel für die index.html */
@media(min-width: 768px) and (max-width: 1023px) {
	body:not(.druckpunkt-page) #profil .profil-image-wrapper {
		max-height: none;
		overflow: visible;
		width: 300px;
		margin-left: 0;
		margin-right: auto;
	}

	body:not(.druckpunkt-page) #profil .profil-image-wrapper img {
		width: 300px;
		height: 300px;
		object-fit: cover;
		object-position: center;
		border-radius: var(--radius-base);
		aspect-ratio: 1 / 1;
	}
}

#profil .grid-4 {
	align-items: center;
}

.profil-image-wrapper img {
	width: 100%;
	height: auto;
	border-radius: var(--radius-base);
}

.profil-content-wrapper h2 {
	color: var(--text-inverted);
	margin-top: 0;
}

.profil-content-wrapper p {
	color: var(--base-grey-200);
	margin-bottom: var(--space-4);
}

#profil .teaser-title {
	color: var(--base-grey-400);
}

.profil-linkedin-link {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	color: var(--text-inverted);
	text-decoration: underline;
	text-underline-offset: 4px;
	margin-bottom: 0;
	font-size: var(--text-sm);
}

.profil-linkedin-link img {
	width: 16px;
	transition: transform 0.2s;
	filter: brightness(0) invert(1);
	/* Icon weiß machen */
}

.profil-linkedin-link:hover {
	color: var(--brand-accent);
}

.profil-linkedin-link:hover img {
	transform: translate(2px, -2px);
}

/* --- IMPULSGEBER PAGE SPECIFICS --- */

/* 1. Ticker mit Fade-Out Effekt */
.ticker-wrapper {
    background: var(--base-black);
    color: rgba(255, 255, 255, 0.7); /* Etwas grauer */
    padding: var(--space-2) 0;
    overflow: hidden;
    white-space: nowrap;
    position: relative; /* Wichtig für die Gradients */
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid var(--border-dark);
}

.ticker-wrapper .container {
    overflow: hidden;
    position: relative;
}

/* Die Gradients links und rechts */
.ticker-wrapper .container::before,
.ticker-wrapper .container::after {
    content: '';
    position: absolute;
    top: 0; bottom: 0;
    width: 100px; /* Breite des Fades */
    z-index: 2;
    pointer-events: none;
}

.ticker-wrapper .container::before {
    left: 0;
    background: linear-gradient(to right, var(--base-black), transparent);
}

.ticker-wrapper .container::after {
    right: 0;
    background: linear-gradient(to left, var(--base-black), transparent);
}

.ticker-content {
    display: inline-block;
    padding-left: 50%; /* Startet in der Mitte */
    animation: ticker 45s linear infinite; /* Unendlich laufend */
    white-space: nowrap;
}
.ticker-content:hover { animation-play-state: paused; }

.ticker-item { margin-right: var(--space-8); }
.ticker-item a { 
    color: rgba(255, 255, 255, 0.5); 
    text-decoration: none;
    transition: color var(--transition-base);
}
.ticker-item a:hover {
    color: var(--brand-accent);
}

@media(max-width: 767px) {
	/* Ticker Schriftgröße auf Mobile reduzieren */
	.ticker-wrapper {
		font-size: 0.55rem; /* Noch kleiner für bessere Lesbarkeit auf kleinen Screens */
	}
}

@keyframes ticker {
    0% { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(-50%, 0, 0); } /* Bewegt sich um 50% (Hälfte des duplizierten Contents) */
}

/* 2. Newsletter Formular (Header) */
.impulsgeber-hero .newsletter-box {
	margin-top: var(--space-16);
}

.form-group { margin-bottom: var(--space-4); }

/* Newsletter Form: E-Mail und Button nebeneinander */
.impulsgeber-hero .form-group-email-button {
	display: flex;
	gap: var(--space-3);
	align-items: stretch;
	margin-left: 0;
	padding-left: 0;
}

.impulsgeber-hero .form-group-email-button .input-clean {
	flex: 1;
	margin-bottom: 0;
	margin-left: 0;
}

.impulsgeber-hero .form-group-email-button .btn-primary {
	flex-shrink: 0;
	white-space: nowrap;
	display: inline-flex;
	align-items: center;
	padding: 16px 2rem;
}

@media(max-width: 767px) {
	.impulsgeber-hero .form-group-email-button {
		flex-direction: column;
	}
	
	.impulsgeber-hero .form-group-email-button .btn-primary {
		width: 100%;
	}
}
.form-label { display: block; font-size: var(--text-sm); font-weight: 600; margin-bottom: var(--space-2); }

.form-row {
    display: flex; gap: var(--space-2);
    flex-wrap: wrap;
}

.form-input {
    flex: 1;
    min-width: 200px;
    padding: 1rem;
    border: 1px solid var(--border-dark); /* Harter Kontrast wie Buttons */
    border-radius: var(--radius-base);
    font-family: var(--font-sans);
    font-size: var(--text-base);
    background: var(--bg-surface);
    color: var(--text-primary);
}
.form-input:focus { outline: 2px solid var(--text-primary); border-color: transparent; }

.checkbox-wrapper {
    display: flex; align-items: flex-start; gap: var(--space-2);
    font-size: var(--text-sm); color: var(--text-secondary);
    margin-top: var(--space-4);
}
.checkbox-wrapper input { margin-top: 3px; }

/* 3. Blog Categories & Cards */
.category-header {
    text-align: center; max-width: 700px; margin-inline: auto;
    margin-bottom: var(--space-12);
    padding-top: var(--space-16);
}

.category-header p {
    margin-inline: auto;
}

/* Erste Kategorie braucht keinen Border oben */
.category-section:first-of-type .category-header { border-top: none; padding-top: 0; }

.blog-grid {
    display: grid; grid-template-columns: 1fr; gap: var(--space-6);
}
@media(max-width: 767px) {
	/* Horizontal scrollbarer Container für Blog-Cards auf Mobile */
	.blog-grid {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none; /* Firefox */
		-ms-overflow-style: none; /* IE/Edge */
		gap: var(--space-4);
		padding-bottom: var(--space-2);
	}
	
	.blog-grid::-webkit-scrollbar {
		display: none; /* Chrome/Safari */
	}
	
	.blog-card {
		flex: 0 0 80vw;
		max-width: 80vw;
		min-width: 260px;
		scroll-snap-align: start;
	}
}

/* Tablet: Horizontal scrollbarer Container für Blog-Cards */
@media(min-width: 768px) and (max-width: 1023px) {
	.blog-grid {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none; /* Firefox */
		-ms-overflow-style: none; /* IE/Edge */
		gap: var(--space-6);
		padding-bottom: var(--space-2);
	}
	
	.blog-grid::-webkit-scrollbar {
		display: none; /* Chrome/Safari */
	}
	
	.blog-card {
		flex: 0 0 60vw;
		max-width: 60vw;
		min-width: 320px;
		scroll-snap-align: start;
	}
}

@media(min-width: 1024px) { .blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media(min-width: 1200px) { .blog-grid { grid-template-columns: repeat(4, 1fr); } }

/* Zentrierte Grids für 3 Karten */
.blog-grid-centered {
    max-width: 900px;
    margin-inline: auto;
}

/* Tablet: Horizontal scrollbarer Container auch für zentrierte Grids */
@media(min-width: 768px) and (max-width: 1023px) {
    .blog-grid-centered {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -ms-overflow-style: none;
        gap: var(--space-6);
        padding-bottom: var(--space-2);
        max-width: 100%;
    }
    
    .blog-grid-centered::-webkit-scrollbar {
        display: none;
    }
    
    .blog-grid-centered .blog-card {
        flex: 0 0 60vw;
        max-width: 60vw;
        min-width: 320px;
        scroll-snap-align: start;
    }
}

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

.blog-card {
    background: var(--bg-surface);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-base);
    overflow: hidden;
    display: flex; flex-direction: column;
    transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
    text-decoration: none; color: inherit;
    height: 100%;
}

.blog-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    border-color: var(--text-primary);
}

.blog-card-image {
    position: relative;
    padding-top: 56.25%; /* 16:9 Aspect Ratio */
    background: var(--bg-subtle);
    overflow: hidden;
    border-bottom: 1px solid var(--border-light);
}

.blog-card-image img {
    position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    object-fit: cover; transition: transform 0.5s ease;
    will-change: transform;
    transform: translateZ(0); /* Hardware-Beschleunigung für iOS */
}
.blog-card:hover .blog-card-image img { transform: scale(1.05) translateZ(0); }

/* --- MEDIA CARD TRANSFORMATION (Blog zu Mediathek) --- */

/* 1. Play Button Overlay auf dem Bild */
.blog-card-image::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(1);
    width: 56px;
    height: 56px;
    
    /* Play Icon (SVG Data URI) - Weiß */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 28px;
    
    /* Glassmorphism Circle */
    background-color: rgba(0, 0, 0, 0.4);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    backdrop-filter: blur(4px);
    z-index: 2;
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

/* 2. Badge Anpassung (für "Video • 30 Min") */
.blog-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.7rem;
    letter-spacing: 0.05em;
    background: var(--bg-subtle);
    color: var(--text-primary);
    border: 1px solid var(--border-light);
    font-family: var(--font-mono);
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-base);
}

/* Blog Badge Wrapper für 100% Breite und ausgegrauten Look */
.blog-card-content .blog-badge {
    width: 100%;
    justify-content: center;
    background: var(--base-grey-100);
    color: var(--text-secondary);
    border-color: var(--base-grey-200);
    opacity: 0.7;
    display: flex;
}

.blog-card-content {
    padding: var(--space-6);
    display: flex; flex-direction: column; flex: 1;
}

.blog-card-title {
    font-size: var(--text-base); font-weight: 700;
    margin-bottom: var(--space-4); line-height: 1.3;
}

.blog-card-excerpt {
    font-size: var(--text-sm); color: var(--text-secondary);
    margin-bottom: var(--space-6);
    display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}



/* 4. Pulse Animation für Header */
.pulse-text { color: var(--text-primary); animation: pulse 3s infinite; display: inline-block; }
@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}

/* --- IMPULSGEBER HERO (Dark Background) --- */
.impulsgeber-hero {
    background-color: var(--bg-contrast) !important;
    color: var(--text-inverted) !important;
    padding-block: var(--space-32);
}

@media(max-width: 767px) {
	.impulsgeber-hero {
		padding-block: 3rem 3rem;
	}
	
	/* Bild im Hero komplett ausblenden auf Mobile */
	.impulsgeber-hero .grid-2 > div:nth-child(2) {
		display: none !important;
	}
}

/* Tablet: Bild im Hero ausblenden */
@media(min-width: 768px) and (max-width: 1023px) {
	.impulsgeber-hero .grid-2 > div:nth-child(2) {
		display: none !important;
	}
}

.impulsgeber-hero h1 {
    color: var(--text-inverted) !important;
}

.impulsgeber-hero .pulse-text {
    color: var(--text-inverted) !important;
}

.impulsgeber-hero p {
    color: var(--base-grey-400) !important;
}

.impulsgeber-hero .meta-label {
    color: var(--brand-accent) !important;
}



.impulsgeber-hero .form-label {
    color: var(--text-inverted) !important;
}

.impulsgeber-hero .form-input {
    background: rgba(255, 255, 255, 0.1) !important;
    border-color: rgba(255, 255, 255, 0.2) !important;
    color: var(--text-inverted) !important;
}

.impulsgeber-hero .form-input::placeholder {
    color: var(--base-grey-400) !important;
}

.impulsgeber-hero .premium-checkbox-wrapper {
    margin-left: 0;
    padding-left: 0;
}

.impulsgeber-hero .premium-checkbox-wrapper label {
    color: rgba(255, 255, 255, 0.85) !important;
}

.impulsgeber-hero .premium-checkbox-wrapper a {
    color: var(--text-inverted) !important;
}

/* Button weiß im Impulsletter Hero */
.impulsgeber-hero .btn-primary {
    background: var(--text-inverted) !important;
    color: var(--bg-contrast) !important;
    border-color: var(--text-inverted) !important;
}

.impulsgeber-hero .btn-primary:hover {
    background: transparent !important;
    color: var(--text-inverted) !important;
    border-color: var(--text-inverted) !important;
}

.impulsgeber-hero .btn-primary .btn-arrow {
    color: var(--bg-contrast) !important;
}

.impulsgeber-hero .btn-primary:hover .btn-arrow {
    color: var(--text-inverted) !important;
}

/* --- IMPULSGEBER CONTENT --- */
.impulsgeber-content {
    padding-block: var(--space-32);
    background-color: var(--bg-surface);
}

@media(max-width: 767px) {
	.impulsgeber-content {
		padding-block: 3rem;
	}
}

/* --- DRUCKPUNKT / FORM STYLES --- */

/* --- SECTION: DRUCKPUNKT TEASER (Homepage) --- */

#druckpunkt-teaser {
    background-color: var(--bg-contrast);
    color: var(--text-inverted);
    padding-block: var(--space-32);
    overflow: hidden; /* Für Chat Bubbles Animation */
}

@media(max-width: 767px) {
	#druckpunkt-teaser {
		padding-block: 4rem;
	}
}

/* Text Anpassungen für Dark Mode */
#druckpunkt-teaser h2 { color: var(--text-inverted); }
#druckpunkt-teaser p { color: var(--base-grey-400); }
#druckpunkt-teaser .teaser-title { color: var(--base-grey-400); }

/* CTA Area */
.druckpunkt-cta-wrapper {
    margin-top: var(--space-8);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    align-items: flex-start;
}

/* Button hell mit dunklem Text */
#druckpunkt-teaser .btn-primary {
    background: var(--text-inverted);
    color: var(--bg-contrast);
    border-color: var(--text-inverted);
}

#druckpunkt-teaser .btn-primary:hover {
    background: transparent;
    color: var(--text-inverted);
    border-color: var(--text-inverted);
}

#druckpunkt-teaser .btn-primary .btn-arrow {
    color: var(--bg-contrast);
}

#druckpunkt-teaser .btn-primary:hover .btn-arrow {
    color: var(--text-inverted);
}

.druckpunkt-meta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--base-grey-400);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.pulsing-dot {
    width: 8px; height: 8px;
    background-color: var(--brand-error); /* Rot für "Live/Busy" oder Grün für "Online" */
    border-radius: 50%;
    box-shadow: 0 0 0 0 rgba(255, 107, 107, 0.7);
    animation: pulse-red 2s infinite;
}

@keyframes pulse-red {
    0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 107, 107, 0.7); }
    70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(255, 107, 107, 0); }
    100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 107, 107, 0); }
}

/* Chat Visualisierung */
.druckpunkt-visual {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    padding-left: var(--space-8); /* Platz für Versatz */
}

.chat-bubble {
    padding: var(--space-6);
    border-radius: var(--radius-base);
    max-width: 90%;
    position: relative;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    font-size: var(--text-sm);
    line-height: 1.6;
}

.chat-label {
    display: block;
    font-family: var(--font-mono);
    font-size: 0.65rem;
    margin-bottom: var(--space-2);
    text-transform: uppercase;
    opacity: 0.7;
    letter-spacing: 0.1em;
}

/* User Bubble (Frage) */
.chat-bubble.user {
    background: var(--base-grey-800);
    color: var(--text-inverted);
    align-self: flex-start;
    border-bottom-left-radius: 0;
    border: 1px solid var(--border-dark);
}

/* Mentor Bubble (Antwort) */
.chat-bubble.mentor {
	background: var(--text-inverted);
	color: var(--base-grey-900);
	align-self: flex-end;
	border-bottom-right-radius: 0;
	display: flex;
	gap: var(--space-4);
	/* Leichte Animation, als würde sie gerade reinkommen */
	animation: slideInUp 0.6s ease-out backwards;
	animation-delay: 0.2s;
}

.chat-bubble.mentor p {
	color: var(--base-grey-900);
}

.chat-bubble.mentor strong {
	color: var(--text-primary);
}

.chat-avatar {
    flex-shrink: 0;
}

.chat-avatar img {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-base);
    object-fit: cover;
    aspect-ratio: 1 / 1;
}

@keyframes slideInUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Mobile Tweaks */
@media(max-width: 767px) {
    .druckpunkt-visual {
        padding-left: 0;
        margin-top: var(--space-8);
        display: flex;
        flex-direction: column;
    }

    /* User Bubble (Grau - Links) */
    .chat-bubble.user {
        align-self: flex-start;
        max-width: 85%;
        border-bottom-left-radius: 4px;
        margin-right: auto;
    }

    /* Mentor Bubble (Weiß - Rechts) */
    .chat-bubble.mentor {
        align-self: flex-end;
        max-width: 85%;
        border-bottom-right-radius: 4px;
        margin-left: auto;
        margin-top: -15px;
        box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
    }
}

/* Zentrierter Wrapper für die Druckpunkt-Seite */
.druckpunkt-wrapper {
    padding-block: var(--space-16);
    background-color: var(--bg-subtle);
    min-height: 60vh; /* Damit der Footer nicht hochrutscht */
}

/* Das Formular selbst */
.druckpunkt-form {
    max-width: 700px;
    margin: 0 auto;
    background: var(--bg-surface);
    padding: var(--space-8);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-base);
    box-shadow: var(--shadow-sm);
}

.form-group { margin-bottom: var(--space-6); }

/* Labels */
.form-label {
    display: block;
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: var(--space-2);
}
.form-label-required::after { content: ' *'; color: var(--text-secondary); }

/* Inputs & Textarea */
.form-input, .form-textarea {
    width: 100%;
    padding: 1rem;
    font-family: var(--font-sans);
    font-size: var(--text-base);
    color: var(--text-primary);
    background-color: var(--bg-surface);
    border: 1px solid var(--border-dark); /* Harter Kontrast */
    border-radius: var(--radius-base);
    transition: all var(--transition-base);
}

.form-input:focus, .form-textarea:focus {
    outline: none;
    border-color: var(--text-primary);
    border-width: 2px;
    box-shadow: 0 0 0 3px rgba(0,0,0,0.1);
}

/* Verbesserte Fokus-Hervorhebung für iOS */
.form-group:focus-within .form-label {
    color: var(--text-primary);
    font-weight: 700;
}

.form-group:focus-within .form-input,
.form-group:focus-within .form-textarea {
    border-color: var(--text-primary);
    border-width: 2px;
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);
}

.form-textarea {
    min-height: 180px;
    resize: vertical;
    line-height: 1.6;
}

/* iOS Safari: Verhindere automatischen Zoom bei Input-Fokus (mindestens 16px) */
@media(max-width: 767px) {
    .form-input,
    .form-textarea,
    .input-prem,
    .textarea-prem,
    .input-clean,
    .textarea-clean,
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="number"],
    input[type="date"],
    input[type="time"],
    input[type="search"],
    input[type="url"],
    input[type="password"],
    textarea,
    select {
        font-size: 16px !important;
    }
}

/* Hint Text (unter Input) */
.form-hint {
    display: block;
    font-size: var(--text-xs);
    color: var(--text-secondary);
    margin-top: var(--space-2);
}

/* Checkboxen */
.form-checkbox-group {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-2) 0;
    cursor: pointer;
}

.form-checkbox {
    width: 20px; height: 20px;
    margin-top: 2px;
    flex-shrink: 0;
    accent-color: var(--text-primary);
    border: 1px solid var(--border-dark);
}

.form-checkbox-label p {
    font-size: var(--text-sm);
    color: var(--text-secondary);
    margin: 0;
    line-height: 1.5;
}

/* Messages (Success/Error) */
.form-message {
    display: none; /* JS toggelt dies */
    padding: var(--space-4);
    border-radius: var(--radius-base);
    font-size: var(--text-sm);
    margin-bottom: var(--space-6);
    align-items: center; gap: var(--space-2);
}
.form-message--error { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5; }
.form-message--success { background: #dcfce7; color: #166534; border: 1px solid #86efac; }
.form-message svg { width: 20px; height: 20px; }

/* Submit Button Override */
.druckpunkt-form .form-submit {
    width: 100%;
    margin-top: var(--space-4);
    justify-content: center;
}

/* Honeypot (Anti-Spam) */
.form-honeypot { position: absolute; left: -9999px; opacity: 0; }

@media(max-width: 767px) {
    .druckpunkt-form { padding: var(--space-6); border: none; background: transparent; box-shadow: none; }
    .form-textarea { min-height: 150px; }
}

/* --- BOOKING PAGE / MULTI-STEP FORM --- */

.booking-section {
    padding-block: var(--space-16);
    background-color: var(--bg-surface);
}

.booking-wrapper {
    max-width: 800px;
    margin: 0 auto;
    background: var(--bg-surface);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-base);
    overflow: hidden; /* Für Border-Radius */
    box-shadow: var(--shadow-sm);
}

/* Header innerhalb des Formulars */
.booking-header {
    background: var(--bg-subtle);
    padding: var(--space-8);
    border-bottom: 1px solid var(--border-light);
}

.booking-progress {
    display: flex; gap: var(--space-2); margin-bottom: var(--space-4);
}
.progress-bar {
    height: 4px; flex: 1; background: var(--border-light); border-radius: 2px;
    transition: background 0.3s ease;
}
.progress-bar.active { background: var(--text-primary); }

.booking-step-title {
    font-size: var(--text-2xl); font-weight: 800; margin-bottom: var(--space-2);
}
.booking-step-subtitle { color: var(--text-secondary); font-size: var(--text-sm); }

/* Form Content */
.booking-content { padding: var(--space-8); }

/* Die einzelnen Schritte (JS toggelt .active) */
.booking-step { display: none; animation: fadeIn 0.4s ease-out; }
.booking-step.active { display: block; }

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Radio Cards (Step 1) */
.booking-radio-group { display: flex; flex-direction: column; gap: var(--space-4); }

.booking-radio-label {
    display: flex; align-items: flex-start; gap: var(--space-4);
    padding: var(--space-6);
    border: 1px solid var(--border-light);
    border-radius: var(--radius-base);
    cursor: pointer; transition: all 0.2s;
}
.booking-radio-label:hover { border-color: var(--border-dark); background: var(--bg-subtle); }
/* Wenn Radio gecheckt ist (via JS Klasse oder :has) */
.booking-radio-label:has(input:checked) { 
    border-color: var(--text-primary); 
    background: var(--bg-subtle);
    box-shadow: 0 0 0 1px var(--text-primary); 
}

.booking-radio-label input { margin-top: 4px; accent-color: var(--text-primary); width: 18px; height: 18px; }
.booking-radio-text strong { display: block; color: var(--text-primary); margin-bottom: 4px; }
.booking-radio-text span { font-size: var(--text-sm); color: var(--text-secondary); }

/* Form Inputs (Wiederverwendung der bestehenden Klassen, kleine Anpassungen) */
.booking-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
@media(max-width: 600px) { .booking-row { grid-template-columns: 1fr; } }

/* Footer Actions (Buttons) */
.booking-actions {
    display: flex; justify-content: space-between; align-items: center;
    padding-top: var(--space-8); margin-top: var(--space-8);
    border-top: 1px solid var(--border-light);
}

.btn-back {
    background: none; border: none; color: var(--text-secondary);
    font-size: var(--text-sm); font-weight: 600; cursor: pointer;
    text-transform: uppercase; letter-spacing: 0.05em;
    padding: var(--space-4);
    visibility: hidden; /* Standardmäßig unsichtbar auf Step 1 */
}
.btn-back:hover { color: var(--text-primary); }
.btn-back.visible { visibility: visible; }

/* Success & Error States */
.booking-success, .booking-error {
    text-align: center; padding: var(--space-8); display: none;
}
.booking-success.active, .booking-error.active { display: block; }

.success-icon {
    width: 64px; height: 64px; margin: 0 auto var(--space-6);
    color: var(--brand-accent); /* Oder Success Grün */
}

/* --- DRUCKPUNKT INTERFACE STYLES (Version 2: Warm & Integrated) --- */

.druckpunkt-interface-grid {
    display: grid;
    grid-template-columns: 1fr;
    background: var(--bg-surface);
    border-radius: var(--radius-base);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--border-light);
}

@media(min-width: 900px) {
    .druckpunkt-interface-grid {
        grid-template-columns: 40% 60%; /* Mehr Platz für das Video links */
        min-height: 550px;
    }
}

/* Sidebar Visual (Links: Video + Overlay) */
.interface-sidebar-visual {
    position: relative;
    background-color: var(--base-grey-900);
    overflow: hidden;
    height: 100%;
    min-height: 100%;
}

/* Gradient-Overlay für bessere Lesbarkeit des weißen Textes */
.interface-sidebar-visual::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.2) 50%, transparent 100%);
    z-index: 1;
    pointer-events: none;
}

.sidebar-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    will-change: transform;
    transform: translateZ(0); /* Hardware-Beschleunigung für iOS */
}

.sidebar-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.6;
    transition: opacity 0.5s ease;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    will-change: transform;
    transform: translateZ(0); /* Hardware-Beschleunigung für iOS */
}

/* Fallback wenn Video nicht geladen */
.interface-sidebar-visual:not(:has(video[src])) .sidebar-image {
    display: block;
}

/* Portrait-Foto Styles */
.sidebar-image-full {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    will-change: transform;
    transform: translateZ(0); /* Hardware-Beschleunigung für iOS */
}

.sidebar-overlay-content {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: var(--space-8);
    z-index: 2; /* Über dem Gradient-Overlay */
}

/* Main Area (Rechts: Formular) */
.interface-main {
    padding: var(--space-8) var(--space-8);
    display: flex;
    flex-direction: column;
    justify-content: center;
    background-color: var(--bg-surface);
}

.druckpunkt-form-clean {
    width: 100%;
}

@media(max-width: 767px) {
	.druckpunkt-form-clean {
		padding: 0;
	}
}

.form-group-clean {
    margin-bottom: var(--space-6);
}

.form-group-with-hint {
    margin-bottom: var(--space-8);
}

.label-clean {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 8px;
    color: var(--text-primary);
}

@media(max-width: 899px) {
	.label-clean {
		color: var(--base-grey-800);
	}
}

.input-clean {
    width: 100%;
    padding: 16px;
    font-size: 1rem;
    font-family: var(--font-sans);
    border: none;
    border-radius: 8px;
    background: #F3F4F6;
    transition: all 0.2s ease;
    color: var(--text-primary);
}

.input-clean::placeholder,
.textarea-clean::placeholder {
    color: var(--text-secondary);
    opacity: 0.6;
    font-family: var(--font-sans);
}

@media(max-width: 899px) {
	.input-clean::placeholder,
	.textarea-clean::placeholder {
		color: var(--text-secondary);
		opacity: 0.6;
		font-family: var(--font-sans);
	}
}

.input-clean:focus,
.textarea-clean:focus {
    background: white;
    border: 2px solid #000;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);
}

/* Verbesserte Fokus-Hervorhebung für iOS */
.form-group-clean:focus-within .label-clean {
    color: var(--text-primary);
    font-weight: 700;
}

.form-group-clean:focus-within .input-clean,
.form-group-clean:focus-within .textarea-clean {
    background: white;
    border: 2px solid #000;
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);
}

.textarea-clean {
    width: 100%;
    padding: 16px;
    font-size: 1rem;
    font-family: var(--font-sans);
    border: none;
    border-radius: 8px;
    background: #F3F4F6;
    transition: all 0.2s ease;
    color: var(--text-primary);
    min-height: 140px;
    resize: vertical;
    line-height: 1.5;
}

.checkbox-clean {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    font-size: 0.85rem;
    color: var(--text-secondary);
    margin-top: var(--space-4);
    cursor: pointer;
    line-height: 1.5;
}

.checkbox-clean input {
    width: 20px;
    height: 20px;
    margin-top: 2px;
    flex-shrink: 0;
    accent-color: var(--text-primary);
    cursor: pointer;
}

.checkbox-clean label {
    line-height: 1.5;
    margin: 0;
}

.checkbox-clean a {
    color: var(--text-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Button-Styling an Premium-Formular angleichen */
.druckpunkt-form-clean .btn-primary {
    background: var(--text-primary);
    color: white;
    border-color: var(--text-primary);
    width: 100%;
    padding: var(--space-4) var(--space-8);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 12px;
    transition: all 0.2s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.druckpunkt-form-clean .btn-primary:hover {
    background: var(--base-grey-800);
    border-color: var(--base-grey-800);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0,0,0,0.2);
}

/* Mobile Adjustments */
/* Utility-Klassen für Mobile */
.mobile-only {
    display: none !important;
}

/* Sicherstellen, dass mobile-only Elemente auf Desktop ausgeblendet sind */
.sidebar-title.mobile-only {
    display: none !important;
}

.sidebar-text.mobile-only {
    display: none !important;
}

@media(max-width: 899px) {
    /* Utility-Klassen aktivieren */
    .mobile-only {
        display: block !important;
    }
    
    .sidebar-title.mobile-only {
        display: block !important;
    }
    
    .sidebar-text.mobile-only {
        display: block !important;
    }
    
    .mobile-hidden {
        display: none !important;
    }
    
    /* Original Header komplett ausblenden */
    .druckpunkt-hero {
        display: none;
    }
    
    /* Abstand zwischen Headline und Bild */
    .druckpunkt-interface-grid {
        margin-top: var(--space-6);
    }
    
    .interface-sidebar-visual {
        height: 420px;
        min-height: 420px;
        order: -1; /* Bild immer oben */
    }
    
    /* Gradient: Dunkel oben für Headline, Dunkel unten für Text */
    .interface-sidebar-visual::after {
        background: linear-gradient(to bottom, rgba(0,0,0,0.4) 0%, transparent 30%, transparent 60%, rgba(0,0,0,0.95) 100%);
    }
    
    /* Portrait-Foto auf Mobile: Gesicht zentriert */
    .sidebar-image-full {
        object-position: center 20%;
    }
    
    /* Overlay-Content als Flex-Container */
    .sidebar-overlay-content {
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        height: 100%;
        padding: var(--space-4) var(--space-4);
        bottom: 0;
        z-index: 2;
    }
    
    /* Mobile Headline oben im Bild ausblenden (wird jetzt unten angezeigt) */
    .sidebar-mobile-title {
        display: none;
    }
    
    /* Typografie Fein-Tuning für Mobile */
    .sidebar-title {
        font-size: 1.5rem;
        text-shadow: 0 2px 4px rgba(0,0,0,0.5);
        color: var(--base-white);
        margin-bottom: var(--space-2);
    }
    
    /* Subtext auf Mobile sichtbar machen */
    .sidebar-text.mobile-only {
        color: rgba(255, 255, 255, 0.9);
        font-size: 0.9rem;
        line-height: 1.5;
        margin-top: var(--space-2);
        text-shadow: 0 1px 3px rgba(0,0,0,0.5);
    }
    
    /* Formular als sauberer Block unter dem Bild */
    .interface-main {
        position: relative;
        background-color: var(--bg-surface);
        margin-top: 0;
        padding: 1.5rem var(--space-4) var(--space-4) var(--space-4);
        padding-top: 1.5rem;
        border-radius: 0;
        box-shadow: none;
    }
}

/* --- DRUCKPUNKT PAGE STYLES (Light Layout) --- */

.druckpunkt-page {
    background-color: var(--bg-subtle);
    color: var(--text-primary);
}

.druckpunkt-header {
    padding: var(--space-4) 0;
    border-bottom: 1px solid var(--border-light);
}

.druckpunkt-header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    /* Container-Klasse wird bereits Padding/Margin setzen */
    padding-top: var(--space-2) !important;
    padding-bottom: var(--space-2) !important;
    margin-top: 0;
    margin-bottom: 0;
}

.druckpunkt-header-container.container {
    padding-top: var(--space-2) !important;
    padding-bottom: var(--space-2) !important;
}

.druckpunkt-logo-link {
    justify-self: start;
}


.druckpunkt-logo-link:hover {
    opacity: 0.7;
}

.druckpunkt-logo-link img {
    height: 24px;
    width: auto;
}

.druckpunkt-back-link {
    display: flex;
    align-items: center;
}

.druckpunkt-back-link {
    font-size: var(--text-sm);
    font-family: var(--font-mono);
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    gap: var(--space-2);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-decoration: none;
}

.druckpunkt-back-text {
    display: none;
}

@media(min-width: 600px) {
    .druckpunkt-back-text {
        display: inline;
    }
}

.druckpunkt-back-icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 1px solid var(--border-light);
    display: flex;
    align-items: center;
    justify-content: center;
}

@media(max-width: 767px) {
	.druckpunkt-header {
		padding: 0.75rem 0;
	}
	
	.druckpunkt-header-container.container {
		padding-inline: 1rem;
		padding-top: var(--space-2) !important;
		padding-bottom: var(--space-2) !important;
		margin-top: 0;
		margin-bottom: 0;
	}
	
	.druckpunkt-logo-link img {
		height: 22px;
		width: auto;
	}
}

.druckpunkt-hero {
    padding-top: var(--space-16);
    padding-bottom: var(--space-12);
    text-align: center;
}

.druckpunkt-hero-container {
    max-width: 700px;
}

.druckpunkt-hero-teaser {
    color: var(--text-secondary);
    margin-bottom: var(--space-4);
}

.druckpunkt-hero-title {
    color: var(--text-primary);
    font-size: clamp(2rem, 4vw, 3.5rem);
    margin-bottom: var(--space-6);
    line-height: 1.1;
}

.druckpunkt-hero-text {
    color: var(--text-secondary);
    font-size: var(--text-lg);
    line-height: 1.6;
}

.druckpunkt-form-section {
    padding-top: var(--space-4);
    padding-bottom: var(--space-32);
}

.druckpunkt-form-container {
    max-width: 1000px;
}

/* Sidebar Overlay Content Styles */
.sidebar-badge-wrapper {
    margin-bottom: var(--space-4);
}

.sidebar-badge {
    background: var(--brand-accent);
    color: var(--base-black);
    font-size: var(--text-xs);
    font-weight: 700;
    padding: 2px var(--space-2);
    border-radius: 2px;
    text-transform: uppercase;
}

.sidebar-title {
    color: var(--base-white);
    display: block;
    font-size: var(--text-lg);
    margin-bottom: var(--space-2);
}

.sidebar-text {
    font-size: var(--text-sm);
    color: rgba(255, 255, 255, 0.85);
    line-height: 1.5;
    margin: 0;
    margin-bottom: var(--space-6);
}

.sidebar-signature {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    margin-top: var(--space-6);
    padding-top: var(--space-6);
    border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.sidebar-avatar {
    width: 50px;
    height: 50px;
    border-radius: var(--radius-base);
    object-fit: cover;
    flex-shrink: 0;
    border: 2px solid rgba(255, 255, 255, 0.2);
}

.sidebar-signature-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sidebar-name {
    color: var(--base-white);
    display: block;
    font-size: var(--text-base);
    font-weight: 700;
}

.sidebar-role {
    font-size: var(--text-xs);
    color: rgba(255, 255, 255, 0.7);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

/* Form Styles */
.label-required {
    color: var(--text-primary);
}

.form-hint-text {
    font-size: var(--text-xs);
    color: var(--base-grey-800);
    margin-top: var(--space-2);
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    padding: 0;
    line-height: 1.5;
    opacity: 1;
    width: 100%;
    max-width: 100%;
    display: block;
}

@media(max-width: 899px) {
	.form-hint-text {
		color: var(--base-grey-800);
		opacity: 0.9;
	}
}

.checkbox-wrapper-section {
    margin-top: var(--space-6);
    padding-top: var(--space-6);
    border-top: 1px solid var(--border-light);
}

.druckpunkt-submit-btn {
    margin-top: var(--space-6);
    justify-content: center;
}

.druckpunkt-badges {
    text-align: center;
    margin-top: var(--space-8);
    display: flex;
    justify-content: center;
    gap: var(--space-8);
    opacity: 0.7;
}

.druckpunkt-badge-item {
    font-size: var(--text-xs);
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

/* --- PREMIUM BOOKING PAGE (Overlapping Layout) --- */

.booking-hero-bg {
    background-color: var(--bg-subtle); /* Hell wie Wrapper */
    color: var(--text-primary);
    padding-top: var(--space-8);
    padding-bottom: 12rem; /* Viel Platz unten für den Overlap */
    clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%); /* Leichte Schräge unten für Dynamik? Optional. Lassen wir erstmal gerade. */
    /* Reset clip-path wenn gerade gewünscht: */
    clip-path: none;
}

@media(max-width: 767px) {
	.booking-hero-bg {
		padding-top: var(--space-2);
	}
}

.booking-card-wrapper {
    margin-top: -8rem; /* Zieht die Karte nach oben in den dunklen Bereich */
    position: relative;
    z-index: 10;
    padding-bottom: var(--space-32);
}

.booking-card-premium {
    background: var(--base-grey-900);
    border-radius: 24px;
    box-shadow: 0 30px 60px rgba(0,0,0,0.12);
    display: grid;
    grid-template-columns: 1fr;
    overflow: hidden;
}

@media(min-width: 900px) {
    .booking-card-premium {
        grid-template-columns: 50% 50%;
        min-height: 550px;
    }
}

@media(max-width: 899px) {
    .booking-card-premium {
        grid-template-columns: 1fr;
        display: flex;
        flex-direction: column-reverse;
    }
    
    .split-brand-panel {
        order: 0;
    }
    
    .booking-main {
        order: -1;
    }
}

/* --- SIDEBAR REDESIGN: THE "LETTER" LAYOUT --- */

/* Der Container wird zur Flex-Spalte mit voller Höhe */
.split-brand-panel {
    background-color: #1a1a1a;
    padding: var(--space-8);
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* Verteilt Header, Body und Footer */
    position: relative;
    /* Muster im Hintergrund für etwas Textur (Optional, wirkt sehr premium) */
    background-image: radial-gradient(circle at top right, rgba(255,255,255,0.03) 0%, transparent 40%);
}

@media(min-width: 900px) {
    .split-brand-panel {
        padding: var(--space-12);
        min-height: 600px; /* Mindesthöhe der Karte */
    }
}

.brand-panel-logo {
    display: inline-block;
}

.brand-panel-logo img {
    filter: brightness(0) invert(1);
    opacity: 0.9;
}

/* 1. Header Area */
.brand-panel-title {
    font-size: 3rem;
    line-height: 1.1;
    color: white;
    letter-spacing: -0.02em;
    font-weight: 800;
    margin: 0;
}

/* 2. Body Area (Der Text) */
.brand-panel-body {
    margin-block: var(--space-8);
    max-width: 400px; /* Damit die Zeilen nicht zu lang werden */
}

.brand-narrative {
    font-size: 1.1rem;
    line-height: 1.6;
    color: var(--base-grey-400);
    margin-bottom: 1.5rem;
    margin-top: 0;
}

/* 3. Footer Area (Signature) */
.brand-panel-footer {
    border-top: 1px solid rgba(255,255,255,0.1);
    padding-top: var(--space-6);
    margin-top: auto; /* Drückt es nach unten, falls Flex nicht greift */
}

.brand-signature-row {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.brand-avatar {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,0.1); /* Feiner Ring */
    object-fit: cover;
}

.brand-signature-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* Mobile Tweaks */
@media(max-width: 899px) {
    .brand-panel-title { font-size: 2.2rem; }
    .brand-narrative { font-size: 1rem; }
    .split-brand-panel { gap: 2rem; } /* Fallback für Mobile Layout */
}

@media(max-width: 767px) {
	/* Spacing zwischen Headline und Text reduzieren */
	.brand-panel-body {
		margin-block: var(--space-4);
	}
	
	/* Spacing zwischen Text und Author reduzieren */
	.brand-panel-footer {
		padding-top: var(--space-4);
	}
}

.booking-sidebar .teaser-title {
    color: var(--brand-accent);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: var(--space-4);
}

.booking-sidebar-heading {
    color: white;
    font-size: clamp(2.5rem, 4vw + 1rem, 3.5rem);
    font-weight: 800;
    margin-bottom: var(--space-4);
    margin-top: var(--space-2);
    line-height: 1.2;
}

.booking-sidebar-text {
    color: rgba(255, 255, 255, 0.8);
    margin-bottom: var(--space-8);
    font-size: var(--text-base);
    line-height: 1.6;
}

.booking-process-steps {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    margin-bottom: var(--space-8);
    padding-bottom: var(--space-8);
    border-bottom: 1px solid rgba(230, 236, 74, 0.2);
}

.process-step {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
}

.process-step-number {
    font-family: var(--font-mono);
    font-size: var(--text-base);
    color: var(--brand-accent);
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 2px;
    margin-bottom: var(--space-2);
}

.process-step-content {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.process-step-label {
    font-size: var(--text-base);
    color: white;
    font-weight: 700;
}

.process-step-desc {
    font-size: var(--text-sm);
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.5;
}

.booking-sidebar-quote {
    margin-bottom: var(--space-8);
    padding-top: var(--space-8);
    border-top: 1px solid rgba(230, 236, 74, 0.2);
}

.booking-quote-text {
    font-style: italic;
    color: white;
    font-size: var(--text-base);
    line-height: 1.6;
    margin: 0;
}

.booking-sidebar-author {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    margin-top: auto;
    padding-top: var(--space-12);
    border-top: 1px solid rgba(230, 236, 74, 0.2);
}

.booking-author-avatar {
    width: 80px;
    height: 80px;
    border-radius: var(--radius-base);
    object-fit: cover;
    flex-shrink: 0;
    border: 2px solid rgba(230, 236, 74, 0.3);
}

.booking-author-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.booking-author-name {
    font-size: var(--text-base);
    color: white;
    font-weight: 700;
    display: block;
}

.booking-author-role {
    font-size: var(--text-sm);
    color: rgba(255, 255, 255, 0.7);
    display: block;
}

/* Main Form Area */
.booking-main {
    padding: var(--space-8);
    background: white;
    margin: var(--space-4);
    border-radius: var(--radius-base);
    border: 1px solid var(--border-light);
}

.form-header-internal {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    margin-bottom: var(--space-4);
}

.steps-indicator {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--text-secondary);
    text-transform: uppercase;
}

/* Custom Progress Bar */
.progress-bar-wrapper {
    height: 4px;
    background: var(--base-grey-100);
    border-radius: 2px;
    margin-bottom: var(--space-8);
    overflow: hidden;
}

.progress-bar-fill {
    height: 100%;
    background: var(--text-primary);
    transition: width 0.3s ease;
}

/* Form Styles Premium */
.form-label-premium {
    display: block;
    font-weight: 700;
    margin-bottom: var(--space-4);
    font-size: 1.1rem;
}

/* Radio Cards */
.premium-radio-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4);
    margin-bottom: var(--space-8);
    padding: var(--space-4);
    background: #fafafa;
    border-radius: var(--radius-base);
}

@media(max-width: 600px) {
    .premium-radio-group {
        grid-template-columns: 1fr;
    }
}

.premium-radio-card {
    border: 1px solid var(--border-light);
    padding: 1.25rem;
    border-radius: 12px;
    min-height: 100px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    cursor: pointer;
    transition: all 0.2s ease;
    background: white;
    position: relative;
}

.premium-radio-card .radio-check {
    align-self: flex-end;
    margin-top: auto;
}

.premium-radio-card:hover {
    border-color: var(--text-primary);
    background: white;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.premium-radio-card:has(input:checked) {
    border: 2px solid var(--text-primary);
    background-color: #fafafa;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.premium-radio-card input { display: none; }

.radio-content { 
    display: flex; 
    flex-direction: column; 
    flex: 1;
}
.radio-title { 
    font-weight: 700; 
    color: var(--text-primary);
    margin-bottom: 4px;
}
.radio-desc { 
    font-size: 0.85rem; 
    color: var(--text-secondary);
    line-height: 1.4;
}

.radio-check {
    width: 18px;
    height: 18px;
    border: 2px solid #e5e5e5;
    border-radius: 50%;
    position: relative;
    transition: all 0.2s ease;
    flex-shrink: 0;
}

.premium-radio-card:hover .radio-check {
    border-color: var(--text-primary);
}

.premium-radio-card:has(input:checked) .radio-check {
    border-color: #000;
    background: white;
}

.premium-radio-card:has(input:checked) .radio-check::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
    background: #000;
    border-radius: 50%;
}

/* Inputs Premium */
.form-group-prem { margin-bottom: var(--space-6); }
.form-group-prem:last-of-type { margin-bottom: 0; }
.form-group-prem label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 8px; color: var(--text-primary); }

.input-prem, .textarea-prem {
    width: 100%;
    padding: 16px;
    border: none;
    border-radius: 8px;
    background: #F3F4F6;
    font-size: 1rem;
    font-family: var(--font-sans);
    transition: all 0.2s ease;
    color: var(--text-primary);
}

.input-prem:focus, .textarea-prem:focus {
    background: white;
    border: 2px solid #000;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);
}

/* Verbesserte Fokus-Hervorhebung für iOS */
.form-group-prem:focus-within label {
    color: var(--text-primary);
    font-weight: 700;
}

.form-group-prem:focus-within .input-prem,
.form-group-prem:focus-within .textarea-prem {
    border: 2px solid #000;
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);
}

.input-prem::placeholder, .textarea-prem::placeholder {
    color: var(--text-secondary);
    opacity: 0.6;
    font-family: var(--font-sans);
}

.premium-row {
    display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4);
}
@media(max-width: 600px) { .premium-row { grid-template-columns: 1fr; } }

/* Footer Actions */
.premium-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: var(--space-8);
    padding-top: var(--space-8);
    border-top: 1px solid var(--border-light);
}

.booking-form-premium .btn-primary {
    background: var(--text-primary);
    color: white;
    border-color: var(--text-primary);
    width: 100%;
    padding: var(--space-4) var(--space-8);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 12px;
    transition: all 0.2s ease;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.booking-form-premium .btn-primary:hover {
    background: var(--base-grey-800);
    border-color: var(--base-grey-800);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0,0,0,0.2);
}

.premium-checkbox-wrapper {
    display: flex; 
    gap: 12px; 
    font-size: 0.85rem; 
    color: var(--text-secondary); 
    margin-top: var(--space-4);
    align-items: flex-start;
}

.premium-checkbox-wrapper input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin-top: 2px;
    flex-shrink: 0;
    accent-color: var(--text-primary);
    cursor: pointer;
}

.premium-checkbox-wrapper label {
    line-height: 1.5;
    margin: 0;
}

.premium-checkbox-wrapper a {
    color: var(--text-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

@media(max-width: 899px) {
    .booking-sidebar { order: -1; padding: var(--space-6); background: white; border-bottom: 1px solid var(--border-light); }
    .booking-avatar-large { width: 80px; float: left; margin-right: 1rem; margin-bottom: 0; }
    .booking-quote-box { clear: none; }
    .booking-trust-list { display: none; } /* Hide on mobile to save space */
}
/* --- FOOTER --- */

footer {
	background-color: var(--base-black);
	color: var(--base-grey-400);
	padding-top: var(--space-16);
	padding-bottom: calc(var(--space-16) + env(safe-area-inset-bottom));
	border-top: 1px solid var(--border-dark);
	font-size: var(--text-sm);
}

.footer-content {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--space-16);
	padding-bottom: var(--space-16);
}

.footer-logo img {
	filter: brightness(0) invert(1);
	opacity: 0.8;
	margin-bottom: var(--space-4);
}

.footer-description {
	max-width: 400px;
	line-height: 1.6;
	color: var(--base-grey-400);
}

/* Social Icons */
.footer-social-icons {
	display: flex;
	gap: var(--space-4);
}

.social-icon img {
	width: 24px;
	height: 24px;
	filter: invert(1);
	opacity: 0.6;
	transition: opacity 0.2s, transform 0.2s;
}

.social-icon:hover img {
	opacity: 1;
	transform: scale(1.1);
}

/* Footer Bottom (Links & Copyright) */
.footer-bottom {
	border-top: 1px solid var(--border-dark);
	padding-block: var(--space-8);
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--space-4);
}

.footer-links {
	display: flex;
	gap: var(--space-6);
}

.footer-links a {
	text-transform: uppercase;
	font-size: var(--text-xs);
	letter-spacing: 0.05em;
	transition: color 0.2s;
	display: inline-block;
    padding: 10px 0;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

.footer-links a:hover {
	color: var(--text-inverted);
}

@media(max-width: 767px) {
	.footer-content {
		flex-direction: column;
		gap: var(--space-8);
	}

	.footer-bottom {
		flex-direction: column;
		align-items: flex-start;
		justify-content: flex-start;
	}

	.footer-links {
		flex-direction: row;
		flex-wrap: wrap;
		gap: var(--space-4) var(--space-6);
	}
	
	.footer-links a {
		min-height: 44px;
		padding: var(--space-1) 0;
	}
}

/* --- EXTRAS: TO TOP BUTTON --- */
.to-top-btn {
	position: fixed;
	bottom: calc(var(--space-8) + env(safe-area-inset-bottom));
	right: calc(var(--space-8) + env(safe-area-inset-right));
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background-color: var(--bg-contrast);
	color: var(--text-inverted);
	border: 1px solid var(--border-dark);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	z-index: 900;
	opacity: 0;
	pointer-events: none;
	transition: all 0.3s ease;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.to-top-btn.visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.to-top-btn:hover {
	background-color: var(--text-inverted);
	color: var(--base-black);
	transform: translateY(-3px);
}

.to-top-btn svg {
	width: 20px;
	height: 20px;
}

/* --- iOS SAFE AREA INSETS: STICKY OFFER POP-UP --- */
/* Für zukünftige Verwendung: Sticky Offer Pop-up mit Safe-Area-Unterstützung */
#sticky-offer,
.sticky-offer-wrapper {
	position: fixed;
	bottom: calc(16px + env(safe-area-inset-bottom));
	left: env(safe-area-inset-left);
	right: env(safe-area-inset-right);
	z-index: 999;
}

@media(max-width: 767px) {
	/* Sticky Offer auf Mobile komplett ausblenden */
	#sticky-offer,
	.sticky-offer-wrapper {
		display: none !important;
	}
}

@media(max-width: 480px) {
	#sticky-offer,
	.sticky-offer-wrapper {
		bottom: calc(16px + env(safe-area-inset-bottom));
		left: calc(16px + env(safe-area-inset-left));
		right: calc(16px + env(safe-area-inset-right));
	}
}