/* ═══════════════════════════════════════════════════════════
   AIM WebEngine — Design System v2
   Tokens, Typography, Reset, Fonts, Themes
   ═══════════════════════════════════════════════════════════ */

@layer reset, tokens, base, components, animations, utilities;

/* ── Font Faces (Self-hosted, DSGVO-konform) ─────────── */

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300 700;
  font-display: optional;
  src: url('../fonts/open-sans/open-sans-variable.woff2') format('woff2');
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 900;
  font-display: optional;
  src: url('../fonts/playfair-display/playfair-display-variable.woff2') format('woff2');
}

/* ── CSS Reset ───────────────────────────────────────── */

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

  html {
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    text-size-adjust: 100%;
    /* scroll-behavior: smooth — entfernt, Lenis übernimmt Smooth Scrolling */
  }

  body {
    min-height: 100dvh;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
  }

  img, picture, video, canvas, svg {
    display: block;
    max-width: 100%;
    height: auto;
  }

  input, button, textarea, select {
    font: inherit;
  }

  p, h1, h2, h3, h4, h5, h6 {
    overflow-wrap: break-word;
  }

  a {
    color: inherit;
    text-decoration: none;
  }

  ul, ol {
    list-style: none;
  }
}

/* ── Design Tokens ───────────────────────────────────── */

@layer tokens {
:root {
  /* Spacing (8pt Grid) */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 2.5rem;
  --space-8: 3rem;
  --space-9: 4rem;
  --space-10: 5rem;
  --space-11: 6rem;
  --space-12: 8rem;

  /* Typography Scale */
  --text-xs:   clamp(0.6875rem, 0.65rem + 0.12vw, 0.75rem);
  --text-sm:   clamp(0.8125rem, 0.76rem + 0.2vw, 0.9375rem);
  --text-base: clamp(0.9375rem, 0.88rem + 0.25vw, 1.0625rem);
  --text-lg:   clamp(1.0625rem, 0.97rem + 0.4vw, 1.25rem);
  --text-xl:   clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
  --text-2xl:  clamp(1.5rem, 1.2rem + 1.2vw, 2.125rem);
  --text-3xl:  clamp(1.875rem, 1.4rem + 1.8vw, 2.75rem);
  --text-4xl:  clamp(2.25rem, 1.5rem + 2.8vw, 3.5rem);
  --text-5xl:  clamp(2.75rem, 1.8rem + 3.5vw, 4.5rem);
  --text-6xl:  clamp(3.25rem, 2rem + 4.8vw, 5.5rem);

  /* Font Families */
  --font-heading: 'Playfair Display', Georgia, serif;
  --font-body: 'Open Sans', 'Helvetica Neue', Arial, sans-serif;

  /* Font Weights */
  --weight-light: 300;
  --weight-normal: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;

  /* Line Heights */
  --leading-tight: 1.1;
  --leading-snug: 1.25;
  --leading-normal: 1.6;
  --leading-relaxed: 1.75;

  /* Letter Spacing */
  --tracking-tight: -0.025em;
  --tracking-normal: 0;
  --tracking-wide: 0.04em;
  --tracking-wider: 0.08em;

  /* Border Radius */
  --radius-sm: 0.25rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;
  --radius-2xl: 1.25rem;
  --radius-full: 9999px;

  /* Layered Shadow System */
  --shadow-sm:  0 1px 2px rgba(0, 0, 0, 0.06);
  --shadow-md:  0 2px 4px rgba(0, 0, 0, 0.04),
                0 6px 12px rgba(0, 0, 0, 0.06);
  --shadow-lg:  0 2px 4px rgba(0, 0, 0, 0.02),
                0 8px 16px rgba(0, 0, 0, 0.06),
                0 24px 48px rgba(0, 0, 0, 0.06);
  --shadow-xl:  0 2px 4px rgba(0, 0, 0, 0.02),
                0 12px 24px rgba(0, 0, 0, 0.06),
                0 48px 80px rgba(0, 0, 0, 0.08);
  --shadow-2xl: 0 4px 8px rgba(0, 0, 0, 0.02),
                0 16px 32px rgba(0, 0, 0, 0.08),
                0 64px 100px rgba(0, 0, 0, 0.1);

  /* Glassmorphism */
  --glass-bg: rgba(255, 255, 255, 0.06);
  --glass-border: rgba(255, 255, 255, 0.08);
  --glass-blur: blur(20px);

  /* Premium Easing */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-smooth: cubic-bezier(0.25, 0.1, 0.25, 1);
  --duration-fast: 150ms;
  --duration-normal: 300ms;
  --duration-slow: 500ms;
  --duration-slower: 800ms;

  /* Container */
  --container-max: 1200px;
  --container-padding: clamp(1.25rem, 4vw, 2.5rem);

  /* Z-Index Scale */
  --z-base: 0;
  --z-above: 10;
  --z-nav: 100;
  --z-overlay: 200;
  --z-modal: 300;

  /* Neutral Colors */
  --gray-50: #fafafa;
  --gray-100: #f5f5f5;
  --gray-200: #e5e5e5;
  --gray-300: #d4d4d4;
  --gray-400: #a3a3a3;
  --gray-500: #737373;
  --gray-600: #525252;
  --gray-700: #404040;
  --gray-800: #262626;
  --gray-900: #171717;
  --gray-950: #0a0a0a;

  /* Formsprache — Theme-steuerbare Form-Variablen
     Jeder Theme kann diese überschreiben, um die visuelle
     Identität zu steuern, ohne Komponenten-CSS zu ändern. */
  --btn-radius: var(--radius-full);
  --card-radius: var(--radius-xl);
  --card-shadow: var(--shadow-md);
  --section-gap: var(--space-12);
  --hero-min-height: 90dvh;
  --img-radius: var(--radius-lg);
}

/* ── Theme: AIM Beratung (Light, Standard — passend zum CI) ── */

[data-theme="aim-beratung"] {
  --color-primary: #DE8419;
  --color-primary-rgb: 222, 132, 25;
  --color-primary-light: #f0a04e;
  --color-primary-dark: #b86a10;

  --color-secondary: #1D4E89;
  --color-secondary-rgb: 29, 78, 137;
  --color-secondary-light: #2a6bb5;
  --color-secondary-dark: #153a66;

  --color-accent: #DE8419;

  --color-bg: #fafafa;
  --color-bg-alt: #f5f5f5;
  --color-bg-card: #ffffff;
  --color-surface: #f0f0f2;

  --color-text: #171717;
  --color-text-muted: #525252;
  --color-text-subtle: #737373;

  --color-border: rgba(0, 0, 0, 0.08);

  --gradient-primary: linear-gradient(135deg, #DE8419, #f0a04e);
  --gradient-hero: linear-gradient(160deg, #fafafa 0%, #f0ece4 45%, #eef2f7 70%, #fafafa 100%);
  --gradient-mesh: radial-gradient(ellipse at 25% 40%, rgba(29, 78, 137, 0.06) 0%, transparent 55%),
                   radial-gradient(ellipse at 75% 25%, rgba(222, 132, 25, 0.05) 0%, transparent 50%),
                   radial-gradient(ellipse at 50% 85%, rgba(29, 78, 137, 0.04) 0%, transparent 45%);

  --shadow-glow-sm: 0 0 20px rgba(222, 132, 25, 0.06);
  --shadow-glow-md: 0 0 40px rgba(222, 132, 25, 0.08);
  --shadow-glow-lg: 0 0 60px rgba(222, 132, 25, 0.1);

  --glass-bg: rgba(255, 255, 255, 0.85);
  --glass-border: rgba(0, 0, 0, 0.06);

  --card-bg: var(--color-bg-card);
  --card-border: rgba(0, 0, 0, 0.06);
  --card-border-hover: rgba(0, 0, 0, 0.12);
  --card-shine: linear-gradient(135deg, rgba(255,255,255,0.6) 0%, transparent 50%);

  color-scheme: light;
}

/* ── Theme: AIM Beratung — Dark Mode Override ────────── */

[data-theme="aim-beratung"][data-mode="dark"] {
  --color-bg: #0c0c0e;
  --color-bg-alt: #121214;
  --color-bg-card: #18181b;
  --color-surface: #1c1c20;

  --color-text: #ededef;
  --color-text-muted: #9a9a9f;
  --color-text-subtle: #636368;

  --color-border: rgba(255, 255, 255, 0.07);

  --gradient-hero: linear-gradient(160deg, #0c0c0e 0%, #111528 45%, #0f1a2e 70%, #0c0c0e 100%);
  --gradient-mesh: radial-gradient(ellipse at 25% 40%, rgba(29, 78, 137, 0.18) 0%, transparent 55%),
                   radial-gradient(ellipse at 75% 25%, rgba(222, 132, 25, 0.08) 0%, transparent 50%),
                   radial-gradient(ellipse at 50% 85%, rgba(29, 78, 137, 0.12) 0%, transparent 45%);

  --shadow-glow-sm: 0 0 20px rgba(222, 132, 25, 0.08);
  --shadow-glow-md: 0 0 40px rgba(222, 132, 25, 0.12);
  --shadow-glow-lg: 0 0 60px rgba(222, 132, 25, 0.15),
                    0 0 120px rgba(29, 78, 137, 0.08);

  --glass-bg: rgba(12, 12, 14, 0.8);
  --glass-border: rgba(255, 255, 255, 0.06);

  --card-bg: var(--color-bg-card);
  --card-border: rgba(255, 255, 255, 0.06);
  --card-border-hover: rgba(255, 255, 255, 0.12);
  --card-shine: linear-gradient(135deg, rgba(255,255,255,0.04) 0%, transparent 50%);

  color-scheme: dark;
}

/* ── Theme: Handwerker Demo (Light, Warm) ────────────── */

[data-theme="handwerker"] {
  --color-primary: #1e3a5f;
  --color-primary-rgb: 30, 58, 95;
  --color-primary-light: #2a5490;
  --color-primary-dark: #142840;

  --color-secondary: #d4a843;
  --color-secondary-rgb: 212, 168, 67;
  --color-secondary-light: #e0be6a;
  --color-secondary-dark: #b08d30;

  --color-accent: #d4a843;

  --color-bg: #fdfcfa;
  --color-bg-alt: #f5f3ef;
  --color-bg-card: #ffffff;
  --color-surface: #f0ede8;

  --color-text: #1a1a1f;
  --color-text-muted: #4a4a52;
  --color-text-subtle: #7a7a85;

  --color-border: rgba(0, 0, 0, 0.08);

  --gradient-primary: linear-gradient(135deg, #1e3a5f, #2a5490);
  --gradient-hero: linear-gradient(160deg, #1e3a5f 0%, #2a5490 50%, #1e3a5f 100%);
  --gradient-mesh: radial-gradient(ellipse at 30% 50%, rgba(30, 58, 95, 0.06) 0%, transparent 50%),
                   radial-gradient(ellipse at 70% 20%, rgba(212, 168, 67, 0.04) 0%, transparent 50%);
  --gradient-gold: linear-gradient(135deg, #d4a843, #e0be6a);

  --shadow-glow-sm: 0 0 20px rgba(30, 58, 95, 0.06);
  --shadow-glow-md: 0 0 40px rgba(30, 58, 95, 0.08);
  --shadow-glow-lg: 0 0 60px rgba(30, 58, 95, 0.1);

  --glass-bg: rgba(255, 255, 255, 0.85);
  --glass-border: rgba(0, 0, 0, 0.06);

  --card-bg: var(--color-bg-card);
  --card-border: rgba(0, 0, 0, 0.06);
  --card-border-hover: rgba(0, 0, 0, 0.12);
  --card-shine: linear-gradient(135deg, rgba(255,255,255,0.6) 0%, transparent 50%);

  /* Formsprache: Handwerker — eckig, kräftig */
  --btn-radius: var(--radius-sm);
  --card-shadow: var(--shadow-lg);
  --img-radius: var(--radius-sm);

  color-scheme: light;
}

/* ── Theme: Naturstein (Light, Earthy Warm) ──────────── */

[data-theme="naturstein"] {
  --color-primary: #3d3426;
  --color-primary-rgb: 61, 52, 38;
  --color-primary-light: #5a4d3a;
  --color-primary-dark: #2a231a;

  --color-secondary: #6b7c5e;
  --color-secondary-rgb: 107, 124, 94;
  --color-secondary-light: #8a9e7a;
  --color-secondary-dark: #4f5c46;

  --color-accent: #c4a265;
  --color-accent-rgb: 196, 162, 101;

  --color-bg: #faf6f0;
  --color-bg-alt: #f0ebe2;
  --color-bg-card: #ffffff;
  --color-surface: #ebe5da;

  --color-text: #2d2d2d;
  --color-text-muted: #7a7267;
  --color-text-subtle: #9a9288;

  --color-border: rgba(61, 52, 38, 0.1);

  --gradient-primary: linear-gradient(135deg, #3d3426, #5a4d3a);
  --gradient-hero: linear-gradient(160deg, #3d3426 0%, #5a4d3a 50%, #3d3426 100%);
  --gradient-mesh: radial-gradient(ellipse at 30% 50%, rgba(61, 52, 38, 0.05) 0%, transparent 50%),
                   radial-gradient(ellipse at 70% 20%, rgba(107, 124, 94, 0.04) 0%, transparent 50%);
  --gradient-accent: linear-gradient(135deg, #c4a265, #d4b87a);

  --shadow-glow-sm: 0 0 20px rgba(61, 52, 38, 0.06);
  --shadow-glow-md: 0 0 40px rgba(61, 52, 38, 0.08);
  --shadow-glow-lg: 0 0 60px rgba(61, 52, 38, 0.1);

  --glass-bg: rgba(250, 246, 240, 0.9);
  --glass-border: rgba(61, 52, 38, 0.08);

  --card-bg: var(--color-bg-card);
  --card-border: rgba(61, 52, 38, 0.08);
  --card-border-hover: rgba(61, 52, 38, 0.15);
  --card-shine: linear-gradient(135deg, rgba(255,255,255,0.5) 0%, transparent 50%);

  color-scheme: light;
}
/* ── Theme: Gastro (Editorial, Bay.Chi-inspired) ─────── */

[data-theme="gastro"] {
  --color-primary: #5C2018;
  --color-primary-rgb: 92, 32, 24;
  --color-primary-light: #7A3428;
  --color-primary-dark: #3E1510;

  --color-secondary: #C4956A;
  --color-secondary-rgb: 196, 149, 106;
  --color-secondary-light: #D4AB85;
  --color-secondary-dark: #A07A52;

  --color-accent: #8B2500;

  --color-bg: #FDF8F3;
  --color-bg-alt: #F5EDE4;
  --color-bg-card: #ffffff;
  --color-surface: #EDE5DA;

  --color-text: #2D1F14;
  --color-text-muted: #7A6B5D;
  --color-text-subtle: #9A8E82;

  --color-border: rgba(92, 32, 24, 0.1);

  --gradient-primary: linear-gradient(135deg, #5C2018, #7A3428);
  --gradient-hero: linear-gradient(160deg, #FDF8F3 0%, #F5EDE4 50%, #FDF8F3 100%);
  --gradient-mesh: radial-gradient(ellipse at 30% 50%, rgba(92, 32, 24, 0.04) 0%, transparent 50%),
                   radial-gradient(ellipse at 70% 20%, rgba(196, 149, 106, 0.04) 0%, transparent 50%);
  --gradient-accent: linear-gradient(135deg, #C4956A, #D4AB85);

  --shadow-glow-sm: 0 0 20px rgba(92, 32, 24, 0.06);
  --shadow-glow-md: 0 0 40px rgba(92, 32, 24, 0.08);
  --shadow-glow-lg: 0 0 60px rgba(92, 32, 24, 0.1);

  --glass-bg: rgba(253, 248, 243, 0.9);
  --glass-border: rgba(92, 32, 24, 0.08);

  --card-bg: var(--color-bg-card);
  --card-border: rgba(92, 32, 24, 0.08);
  --card-border-hover: rgba(92, 32, 24, 0.15);
  --card-shine: linear-gradient(135deg, rgba(255,255,255,0.5) 0%, transparent 50%);

  /* Formsprache: Gastro — kantig, flach, editorial */
  --btn-radius: 2px;
  --card-radius: 0;
  --card-shadow: none;
  --img-radius: 0;
  --hero-min-height: 100dvh;
  --section-gap: var(--space-10);

  color-scheme: light;
}

/* ── Theme: THE SWEAT SET (Modern, Energetic) ────────── */

[data-theme="thesweatset"] {
  --color-primary: #F79238;
  --color-primary-rgb: 247, 146, 56;
  --color-primary-light: #FFB066;
  --color-primary-dark: #D97B1F;

  --color-secondary: #24B8C2;
  --color-secondary-rgb: 36, 184, 194;
  --color-secondary-light: #4DCCD4;
  --color-secondary-dark: #1A9AA3;

  --color-accent: #F79238;

  --color-bg: #FAFAFA;
  --color-bg-alt: #F5F5F5;
  --color-bg-card: #FFFFFF;
  --color-surface: #F0F0F0;

  --color-text: #414546;
  --color-text-muted: #4B5563;
  --color-text-subtle: #9CA3AF;

  --color-border: rgba(0, 0, 0, 0.05);

  --gradient-primary: linear-gradient(135deg, #F79238 0%, #24B8C2 100%);
  --gradient-hero: linear-gradient(160deg, #FAFAFA 0%, #FFF5EB 45%, #F0FAFB 70%, #FAFAFA 100%);
  --gradient-mesh: radial-gradient(ellipse at 25% 40%, rgba(36, 184, 194, 0.06) 0%, transparent 55%),
                   radial-gradient(ellipse at 75% 25%, rgba(247, 146, 56, 0.05) 0%, transparent 50%),
                   radial-gradient(ellipse at 50% 85%, rgba(36, 184, 194, 0.04) 0%, transparent 45%);

  --shadow-glow-sm: 0 0 20px rgba(247, 146, 56, 0.06);
  --shadow-glow-md: 0 0 40px rgba(247, 146, 56, 0.08);
  --shadow-glow-lg: 0 0 60px rgba(247, 146, 56, 0.1);

  --glass-bg: rgba(255, 255, 255, 0.85);
  --glass-border: rgba(0, 0, 0, 0.06);

  --card-bg: var(--color-bg-card);
  --card-border: rgba(0, 0, 0, 0.05);
  --card-border-hover: rgba(0, 0, 0, 0.12);
  --card-shine: linear-gradient(135deg, rgba(255,255,255,0.6) 0%, transparent 50%);

  /* Formsprache: Modern, rund, weich */
  --btn-radius: var(--radius-full);
  --card-radius: 24px;
  --card-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);
  --img-radius: 24px;
  --hero-min-height: 100dvh;
  --section-gap: var(--space-12);

  /* TheSweatSet uses Rubik from Google Fonts */
  --font-heading: 'Rubik', system-ui, -apple-system, sans-serif;
  --font-body: 'Rubik', system-ui, -apple-system, sans-serif;

  color-scheme: light;
}

/* ── Theme: KREATIVAGENTUR (Dark, Bold, Neon-Lime) ─── */
[data-theme="kreativagentur"] {
  --color-primary: #c8ff00;
  --color-primary-rgb: 200, 255, 0;
  --color-primary-light: #d4ff33;
  --color-primary-dark: #a0cc00;

  --color-secondary: #f5f5f0;
  --color-secondary-rgb: 245, 245, 240;
  --color-secondary-light: #ffffff;
  --color-secondary-dark: #cccccc;

  --color-accent: #c8ff00;

  --color-bg: #0a0a0a;
  --color-bg-alt: #111111;
  --color-bg-card: #141414;
  --color-surface: #1a1a1a;

  --color-text: #f5f5f0;
  --color-text-muted: #888888;
  --color-text-subtle: #666666;

  --color-border: rgba(200, 255, 0, 0.1);

  --gradient-primary: linear-gradient(135deg, #c8ff00, #a0cc00);
  --gradient-hero: linear-gradient(160deg, #0a0a0a 0%, #111111 50%, #0a0a0a 100%);
  --gradient-mesh: radial-gradient(ellipse at 30% 50%, rgba(200, 255, 0, 0.03) 0%, transparent 50%),
                   radial-gradient(ellipse at 70% 20%, rgba(200, 255, 0, 0.02) 0%, transparent 50%);
  --gradient-accent: linear-gradient(135deg, #c8ff00, #d4ff33);

  --shadow-glow-sm: 0 0 20px rgba(200, 255, 0, 0.05);
  --shadow-glow-md: 0 0 40px rgba(200, 255, 0, 0.08);
  --shadow-glow-lg: 0 0 60px rgba(200, 255, 0, 0.1);

  --glass-bg: rgba(10, 10, 10, 0.9);
  --glass-border: rgba(200, 255, 0, 0.08);

  --card-bg: var(--color-bg-card);
  --card-border: rgba(200, 255, 0, 0.08);
  --card-border-hover: rgba(200, 255, 0, 0.2);
  --card-shine: linear-gradient(135deg, rgba(200, 255, 0, 0.05) 0%, transparent 50%);

  /* Formsprache: Kreativagentur — kantig, bold, dunkel */
  --btn-radius: 0;
  --card-radius: 0;
  --card-shadow: none;
  --img-radius: 0;
  --hero-min-height: 100dvh;
  --section-gap: 0;

  color-scheme: dark;
}

/* ── Theme: PRODUKTSEITE (Premium, Dark, Kupfer) ──── */
[data-theme="produktseite"] {
  --color-primary: #c87850;
  --color-primary-rgb: 200, 120, 80;
  --color-primary-light: #d99070;
  --color-primary-dark: #a06040;

  --color-secondary: #ffffff;
  --color-secondary-rgb: 255, 255, 255;
  --color-secondary-light: #ffffff;
  --color-secondary-dark: #cccccc;

  --color-accent: #c87850;

  --color-bg: #000000;
  --color-bg-alt: #0a0a0a;
  --color-bg-card: #0d0d0d;
  --color-surface: #111111;

  --color-text: #ffffff;
  --color-text-muted: #888888;
  --color-text-subtle: #555555;

  --color-border: rgba(200, 120, 80, 0.1);

  --gradient-primary: linear-gradient(135deg, #c87850, #a06040);
  --gradient-hero: linear-gradient(160deg, #000000 0%, #0a0a0a 50%, #000000 100%);
  --gradient-mesh: radial-gradient(ellipse at 30% 50%, rgba(200, 120, 80, 0.03) 0%, transparent 50%),
                   radial-gradient(ellipse at 70% 20%, rgba(200, 120, 80, 0.02) 0%, transparent 50%);
  --gradient-accent: linear-gradient(135deg, #c87850, #d99070);

  --shadow-glow-sm: 0 0 20px rgba(200, 120, 80, 0.05);
  --shadow-glow-md: 0 0 40px rgba(200, 120, 80, 0.08);
  --shadow-glow-lg: 0 0 60px rgba(200, 120, 80, 0.1);

  --glass-bg: rgba(0, 0, 0, 0.9);
  --glass-border: rgba(200, 120, 80, 0.08);

  --card-bg: var(--color-bg-card);
  --card-border: rgba(200, 120, 80, 0.08);
  --card-border-hover: rgba(200, 120, 80, 0.2);
  --card-shine: linear-gradient(135deg, rgba(200, 120, 80, 0.05) 0%, transparent 50%);

  --btn-radius: 0;
  --card-radius: 0;
  --card-shadow: none;
  --img-radius: 0;
  --hero-min-height: 100dvh;
  --section-gap: 0;

  color-scheme: dark;
}

/* ── Theme: ARCHITEKTUR (Brutalist Minimal, Light, Kantig) ──── */
[data-theme="architektur"] {
  --color-primary: #8c7a6b;
  --color-primary-rgb: 140, 122, 107;
  --color-primary-light: #a6947f;
  --color-primary-dark: #6e5f52;

  --color-secondary: #1a1a1a;
  --color-secondary-rgb: 26, 26, 26;
  --color-secondary-light: #333333;
  --color-secondary-dark: #000000;

  --color-accent: #8c7a6b;

  --color-bg: #f2f0ed;
  --color-bg-alt: #ebe8e4;
  --color-bg-card: #e8e5e0;
  --color-surface: #e8e5e0;

  --color-text: #1a1a1a;
  --color-text-muted: #666666;
  --color-text-subtle: #999999;

  --color-border: rgba(140, 122, 107, 0.2);

  --gradient-primary: linear-gradient(135deg, #8c7a6b, #6e5f52);
  --gradient-hero: linear-gradient(160deg, #f2f0ed 0%, #e8e5e0 50%, #f2f0ed 100%);
  --gradient-mesh: radial-gradient(ellipse at 30% 50%, rgba(140, 122, 107, 0.05) 0%, transparent 50%),
                   radial-gradient(ellipse at 70% 20%, rgba(140, 122, 107, 0.03) 0%, transparent 50%);
  --gradient-accent: linear-gradient(135deg, #8c7a6b, #a6947f);

  --shadow-glow-sm: none;
  --shadow-glow-md: none;
  --shadow-glow-lg: none;

  --glass-bg: rgba(242, 240, 237, 0.95);
  --glass-border: rgba(140, 122, 107, 0.15);

  --card-bg: var(--color-bg-card);
  --card-border: rgba(140, 122, 107, 0.15);
  --card-border-hover: rgba(140, 122, 107, 0.3);
  --card-shine: none;

  --btn-radius: 0;
  --card-radius: 0;
  --card-shadow: none;
  --img-radius: 0;
  --hero-min-height: 100dvh;
  --section-gap: 0;

  color-scheme: light;
}

/* ── Theme: CONSUMER-PRODUCT (Premium Dark, Copper Accent) ──── */
[data-theme="consumer-product"] {
  --color-primary: #c87850;
  --color-primary-rgb: 200, 120, 80;
  --color-primary-light: #d99070;
  --color-primary-dark: #a06040;

  --color-secondary: #ffffff;
  --color-secondary-rgb: 255, 255, 255;
  --color-secondary-light: #ffffff;
  --color-secondary-dark: #cccccc;

  --color-accent: #c87850;

  --color-bg: #0a0a0a;
  --color-bg-alt: #0d0d0d;
  --color-bg-card: #111111;
  --color-surface: #141414;

  --color-text: #ffffff;
  --color-text-muted: #888888;
  --color-text-subtle: #555555;

  --color-border: rgba(200, 120, 80, 0.1);

  --gradient-primary: linear-gradient(135deg, #c87850, #a06040);
  --gradient-hero: linear-gradient(160deg, #0a0a0a 0%, #0d0d0d 50%, #0a0a0a 100%);
  --gradient-mesh: radial-gradient(ellipse at 30% 50%, rgba(200, 120, 80, 0.03) 0%, transparent 50%),
                   radial-gradient(ellipse at 70% 20%, rgba(200, 120, 80, 0.02) 0%, transparent 50%);
  --gradient-accent: linear-gradient(135deg, #c87850, #d99070);

  --shadow-glow-sm: 0 0 20px rgba(200, 120, 80, 0.05);
  --shadow-glow-md: 0 0 40px rgba(200, 120, 80, 0.08);
  --shadow-glow-lg: 0 0 60px rgba(200, 120, 80, 0.1);

  --glass-bg: rgba(10, 10, 10, 0.9);
  --glass-border: rgba(200, 120, 80, 0.08);

  --card-bg: var(--color-bg-card);
  --card-border: rgba(200, 120, 80, 0.08);
  --card-border-hover: rgba(200, 120, 80, 0.2);
  --card-shine: linear-gradient(135deg, rgba(200, 120, 80, 0.05) 0%, transparent 50%);

  --btn-radius: 0;
  --card-radius: 0;
  --card-shadow: none;
  --img-radius: 0;
  --hero-min-height: 100dvh;
  --section-gap: 0;

  color-scheme: dark;
}

/* ─── Fisch-Lang: Maritime Tradition ───────────────── */
[data-theme="fisch-lang"] {
  --color-primary: #1a365d;
  --color-primary-rgb: 26, 54, 93;
  --color-primary-light: #2a4a7f;
  --color-primary-dark: #0f2440;

  --color-secondary: #c9a84c;
  --color-secondary-rgb: 201, 168, 76;
  --color-secondary-light: #d4b96a;
  --color-secondary-dark: #a88a3a;

  --color-accent: #c9a84c;

  --color-bg: #faf8f5;
  --color-bg-alt: #f0ece4;
  --color-bg-card: #ffffff;
  --color-surface: #ede8df;

  --color-text: #2d3748;
  --color-text-muted: #5a6577;
  --color-text-subtle: #8b95a5;

  --color-border: rgba(0, 0, 0, 0.08);

  --gradient-primary: linear-gradient(135deg, #1a365d, #2a4a7f);
  --gradient-hero: linear-gradient(160deg, #1a365d 0%, #2a4a7f 50%, #1a365d 100%);
  --gradient-mesh: radial-gradient(ellipse at 30% 50%, rgba(26, 54, 93, 0.06) 0%, transparent 50%),
                   radial-gradient(ellipse at 70% 20%, rgba(201, 168, 76, 0.04) 0%, transparent 50%);
  --gradient-gold: linear-gradient(135deg, #c9a84c, #d4b96a);

  --shadow-glow-sm: 0 0 20px rgba(201, 168, 76, 0.08);
  --shadow-glow-md: 0 0 40px rgba(201, 168, 76, 0.12);
  --shadow-glow-lg: 0 0 60px rgba(201, 168, 76, 0.16);

  --glass-bg: rgba(255, 255, 255, 0.85);
  --glass-border: rgba(0, 0, 0, 0.06);

  --card-bg: var(--color-bg-card);
  --card-border: rgba(0, 0, 0, 0.06);
  --card-border-hover: rgba(0, 0, 0, 0.12);
  --card-shine: linear-gradient(135deg, rgba(255,255,255,0.6) 0%, transparent 50%);

  /* Formsprache: Traditionell, leicht gerundet, warm */
  --btn-radius: var(--radius-sm);
  --card-radius: var(--radius-md);
  --card-shadow: var(--shadow-lg);
  --img-radius: var(--radius-sm);
  --section-gap: var(--space-12);

  color-scheme: light;
}

} /* end @layer tokens */

/* ── Base Typography ─────────────────────────────────── */

@layer base {
body {
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--weight-normal);
  color: var(--color-text);
  background-color: var(--color-bg);
  font-optical-sizing: auto;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-weight: var(--weight-bold);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
}

h1, h2, h3 {
  text-wrap: balance;
}

h1 {
  font-size: var(--text-6xl);
  line-height: 1.05;
  letter-spacing: -0.03em;
}

h2 {
  font-size: var(--text-4xl);
  line-height: 1.1;
}

h3 {
  font-size: var(--text-2xl);
  line-height: var(--leading-snug);
  letter-spacing: -0.015em;
}

h4 { font-size: var(--text-xl); }
h5 { font-size: var(--text-lg); }
h6 { font-size: var(--text-base); }

p {
  line-height: var(--leading-normal);
  max-width: 60ch;
  text-wrap: pretty;
}

.lead {
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
  color: var(--color-text-muted);
  font-weight: var(--weight-light);
  text-wrap: pretty;
}

.label {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--color-accent);
}

.accent-text {
  color: var(--color-primary);
}

/* ── Container ───────────────────────────────────────── */

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

.container--narrow {
  max-width: 860px;
}

.container--wide {
  max-width: 1400px;
}

/* ── Section ─────────────────────────────────────────── */

.section {
  padding-block: clamp(var(--space-9), 8vw, var(--space-12));
}

.section--tight {
  padding-block: clamp(var(--space-7), 5vw, var(--space-9));
}

/* ── Scroll Progress ─────────────────────────────────── */

.scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 0%;
  height: 2px;
  background: var(--color-primary);
  z-index: calc(var(--z-nav) + 1);
  transition: width 50ms linear;
}

/* ── Selection ───────────────────────────────────────── */

::selection {
  background-color: rgba(var(--color-primary-rgb), 0.25);
  color: var(--color-text);
}

/* ── Focus Visible ───────────────────────────────────── */

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

/* ── Reduced Motion ──────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
} /* end @layer base */
/* ═══════════════════════════════════════════════════════════
   AIM WebEngine — Animations v2
   Scroll Reveals, Stagger, Keyframes
   ═══════════════════════════════════════════════════════════ */

@layer animations {

/* ── Scroll Animation Base ───────────────────────────── */

[data-animate] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--duration-slower) var(--ease-smooth),
              transform var(--duration-slower) var(--ease-out);
}

[data-animate].is-visible {
  opacity: 1;
  transform: none;
}

/* ── Animation Variants ──────────────────────────────── */

[data-animate="fade-up"] {
  opacity: 0;
  transform: translateY(24px);
}

[data-animate="fade-down"] {
  opacity: 0;
  transform: translateY(-24px);
}

[data-animate="fade-left"] {
  opacity: 0;
  transform: translateX(-24px);
}

[data-animate="fade-right"] {
  opacity: 0;
  transform: translateX(24px);
}

[data-animate="fade-in"] {
  opacity: 0;
  transform: none;
}

[data-animate="scale-up"] {
  opacity: 0;
  transform: scale(0.95);
}

[data-animate="clip-reveal"] {
  clip-path: inset(0 100% 0 0);
  opacity: 1;
  transform: none;
  transition: clip-path 1s var(--ease-out);
}

[data-animate="clip-reveal"].is-visible {
  clip-path: inset(0 0 0 0);
}

[data-animate="clip-reveal-up"] {
  clip-path: inset(100% 0 0 0);
  opacity: 1;
  transform: none;
  transition: clip-path 1s var(--ease-out);
}

[data-animate="clip-reveal-up"].is-visible {
  clip-path: inset(0 0 0 0);
}

/* Visible States für alle transform-basierten */
[data-animate="fade-up"].is-visible,
[data-animate="fade-down"].is-visible,
[data-animate="fade-left"].is-visible,
[data-animate="fade-right"].is-visible,
[data-animate="fade-in"].is-visible,
[data-animate="scale-up"].is-visible {
  opacity: 1;
  transform: none;
}

/* ── Fibonacci Stagger Delays ────────────────────────── */
/* 80, 130, 210, 340, 450, 580, 720, 900ms            */

[data-stagger="1"] { transition-delay: 80ms; }
[data-stagger="2"] { transition-delay: 130ms; }
[data-stagger="3"] { transition-delay: 210ms; }
[data-stagger="4"] { transition-delay: 340ms; }
[data-stagger="5"] { transition-delay: 450ms; }
[data-stagger="6"] { transition-delay: 580ms; }
[data-stagger="7"] { transition-delay: 720ms; }
[data-stagger="8"] { transition-delay: 900ms; }

/* ── Text Reveal ─────────────────────────────────────── */

.text-reveal .word {
  display: inline-block;
  opacity: 0;
  transform: translateY(80%);
  transition: opacity 0.5s var(--ease-smooth),
              transform 0.6s var(--ease-out);
}

.text-reveal.is-visible .word {
  opacity: 1;
  transform: translateY(0);
}

/* ── Accent Text — statisch, keine Animation ─────────── */

.gradient-text {
  color: var(--color-primary);
}

/* ── Keyframe Animations ─────────────────────────────── */

@keyframes pulse-glow {
  0%, 100% {
    box-shadow: 0 0 8px rgba(var(--color-primary-rgb), 0.2);
  }
  50% {
    box-shadow: 0 0 24px rgba(var(--color-primary-rgb), 0.4),
                0 0 48px rgba(var(--color-primary-rgb), 0.1);
  }
}

@keyframes pulse-border {
  0%, 100% {
    border-color: rgba(var(--color-secondary-rgb), 0.2);
  }
  50% {
    border-color: rgba(var(--color-secondary-rgb), 0.6);
  }
}

@keyframes counter-pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.03); }
  100% { transform: scale(1); }
}

@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

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

@keyframes dash-draw {
  to { stroke-dashoffset: 0; }
}

@keyframes fade-in-up {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes shimmer {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* Hero Blob Float Animations — organic, slow, non-repeating feel */
@keyframes float-blob-1 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(30px, -20px) scale(1.05); }
  50% { transform: translate(-10px, 15px) scale(0.97); }
  75% { transform: translate(20px, 10px) scale(1.02); }
}

@keyframes float-blob-2 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  30% { transform: translate(-25px, 15px) scale(1.03); }
  60% { transform: translate(15px, -20px) scale(0.98); }
  80% { transform: translate(-10px, -5px) scale(1.01); }
}

@keyframes float-blob-3 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  20% { transform: translate(15px, 20px) scale(1.06); }
  45% { transform: translate(-20px, -10px) scale(0.96); }
  70% { transform: translate(10px, -15px) scale(1.04); }
}

/* ── CSS Scroll-driven Animations (Progressive) ────── */

@supports (animation-timeline: view()) {
  .scroll-reveal {
    animation: fade-in-up linear both;
    animation-timeline: view();
    animation-range: entry 0% entry 30%;
    will-change: transform, opacity;
  }
}

/* ── Logo Marquee ────────────────────────────────────── */

.marquee-track {
  display: flex;
  width: max-content;
  animation: marquee 35s linear infinite;
  will-change: transform;
}

.marquee-track:hover {
  animation-play-state: paused;
}

/* ── Timeline Animation ──────────────────────────────── */

.timeline-line {
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 1.5s var(--ease-out);
}

.timeline-line.is-visible {
  transform: scaleY(1);
}

.timeline-node {
  opacity: 0;
  transform: scale(0);
  transition: opacity 0.5s var(--ease-smooth),
              transform 0.6s var(--ease-spring);
}

.timeline-node.is-visible {
  opacity: 1;
  transform: scale(1);
}

/* ── Glow Effects ────────────────────────────────────── */

.glow-pulse {
  animation: pulse-glow 3s ease-in-out infinite;
}

/* ── Reduced Motion ──────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  [data-animate] {
    opacity: 1;
    transform: none;
    transition: none;
    clip-path: none;
  }

  .text-reveal .word {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .marquee-track {
    animation: none;
  }

  .glow-pulse {
    animation: none;
  }

  .hero__blob {
    animation: none;
  }

  .scroll-progress {
    display: none;
  }
}

/* ── Motion Profile: Subtle (dezent, professionell) ───── */

[data-motion="subtle"] [data-animate] {
  transform: translateY(12px);
  transition-duration: 400ms;
}
[data-motion="subtle"] [data-animate="fade-up"] {
  transform: translateY(12px);
}
[data-motion="subtle"] [data-animate="fade-down"] {
  transform: translateY(-12px);
}
[data-motion="subtle"] [data-animate="fade-left"] {
  transform: translateX(-12px);
}
[data-motion="subtle"] [data-animate="fade-right"] {
  transform: translateX(12px);
}

/* ── Motion Profile: Bold (auffällig, dynamisch) ──────── */

[data-motion="bold"] [data-animate] {
  transform: translateY(40px);
  transition-duration: 1s;
}
[data-motion="bold"] [data-animate="fade-up"] {
  transform: translateY(40px);
}
[data-motion="bold"] [data-animate="fade-down"] {
  transform: translateY(-40px);
}
[data-motion="bold"] [data-animate="fade-left"] {
  transform: translateX(-40px);
}
[data-motion="bold"] [data-animate="fade-right"] {
  transform: translateX(40px);
}

/* ── Motion Profile: Minimal (fast keine Bewegung) ────── */

[data-motion="minimal"] [data-animate] {
  transform: none !important;
  transition: opacity 300ms ease;
}

} /* end @layer animations */
/* ═══════════════════════════════════════════════════════════
   AIM WebEngine — Components v2
   Buttons, Cards, Navigation, UI Elements
   ═══════════════════════════════════════════════════════════ */

@layer components {

/* ── Buttons ─────────────────────────────────────────── */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: 0.75em 1.75em;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  letter-spacing: var(--tracking-wide);
  border: 1.5px solid transparent;
  border-radius: var(--btn-radius);
  cursor: pointer;
  transition: transform var(--duration-normal) var(--ease-spring),
              box-shadow var(--duration-normal) var(--ease-out),
              background-color var(--duration-normal) var(--ease-out),
              border-color var(--duration-normal) var(--ease-out);
  position: relative;
  overflow: hidden;
  white-space: nowrap;
}

.btn--primary {
  background: var(--color-primary);
  color: #fff;
}

.btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg), var(--shadow-glow-sm);
  background: var(--color-primary-light);
}

.btn--primary:active {
  transform: translateY(0) scale(0.97);
}

.btn:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
  box-shadow: 0 0 0 4px rgba(var(--color-primary-rgb), 0.2);
}

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

.btn--secondary:hover {
  border-color: var(--color-text-muted);
  color: var(--color-text);
}

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

.btn--outline:hover {
  background: rgba(var(--color-primary-rgb), 0.08);
  border-color: var(--color-primary);
}

/* White Button — für dunkle Hintergründe (Hero) */
.btn--white {
  background: #fff;
  color: var(--color-secondary);
  border-color: #fff;
}

.btn--white:hover {
  background: rgba(255, 255, 255, 0.9);
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
}

.btn--gold {
  background: var(--color-secondary);
  color: var(--color-bg, #1a1a1a);
  border: none;
}

.btn--gold:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
  background: var(--color-secondary-light);
}

.btn--lg {
  padding: 1em 2.25em;
  font-size: var(--text-base);
}

.btn--sm {
  padding: 0.5em 1.25em;
  font-size: var(--text-xs);
}

/* Magnetic button wrapper */
.magnetic-wrap {
  display: inline-block;
  position: relative;
}

/* ── Card — Solide Oberfläche mit Top-Edge-Shine ─────── */

.card {
  background: var(--card-bg, var(--color-bg-card));
  border: 1px solid var(--card-border, var(--color-border));
  border-radius: var(--card-radius);
  padding: var(--space-6);
  position: relative;
  transition: transform var(--duration-normal) var(--ease-spring),
              box-shadow var(--duration-slow) var(--ease-out),
              border-color var(--duration-normal) var(--ease-out);
}

/* Top-Edge Shine ("Frosted Edge") */
.card::before {
  content: '';
  position: absolute;
  top: 0;
  left: var(--space-6);
  right: var(--space-6);
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(var(--color-primary-rgb), 0.2) 30%,
    rgba(var(--color-primary-rgb), 0.3) 50%,
    rgba(var(--color-primary-rgb), 0.2) 70%,
    transparent
  );
  opacity: 0;
  transition: opacity var(--duration-slow) var(--ease-out);
}

.card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-lg);
  border-color: var(--card-border-hover, rgba(255, 255, 255, 0.12));
}

.card:hover::before {
  opacity: 1;
}

.card:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.card__icon {
  width: 2.75rem;
  height: 2.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-md);
  background: rgba(var(--color-primary-rgb), 0.08);
  color: var(--color-primary);
  margin-bottom: var(--space-4);
}

.card__icon svg {
  width: 1.25rem;
  height: 1.25rem;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.card__icon--round {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: rgba(var(--color-primary-rgb), 0.06);
}

.card__icon--secondary {
  background: rgba(var(--color-secondary-rgb), 0.08);
  color: var(--color-secondary);
}

.card__title {
  font-family: var(--font-heading);
  font-size: var(--text-xl);
  margin-bottom: var(--space-2);
  letter-spacing: var(--tracking-tight);
}

.card__text {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  text-wrap: pretty;
}

/* Featured Card Variante */
.card--featured {
  background: var(--color-surface);
  border-color: rgba(var(--color-primary-rgb), 0.15);
}

.card--featured::before {
  opacity: 0.6;
}

.card--featured:hover::before {
  opacity: 1;
}

/* Card mit animiertem Border — nur für Handwerker */
.card--border-animate {
  position: relative;
}

.card--border-animate::after {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    var(--color-primary) 60deg,
    transparent 120deg
  );
  opacity: 0;
  transition: opacity var(--duration-normal) var(--ease-out);
  z-index: -1;
}

.card--border-animate:hover::after {
  opacity: 1;
  animation: spin-slow 4s linear infinite;
}

/* Centered card variant for service cards */
.card--centered {
  text-align: center;
}

/* Padded card variant for forms */
.card--padded {
  padding: var(--space-8);
}

/* Notdienst card with gold accent border */
.card--notdienst {
  border-color: rgba(var(--color-secondary-rgb), 0.3);
}

.card__title--lg {
  font-size: var(--text-2xl);
}

.card__title--sm {
  font-size: var(--text-lg);
}

/* Glass Card — NUR für Overlays, CTA-Sections, Popups */
.glass-card {
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-xl);
  padding: var(--space-6);
}

/* ── Bento Grid ──────────────────────────────────────── */

.bento-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
  container-type: inline-size;
}

.bento-grid__item--wide {
  grid-column: span 2;
}

.bento-grid__item--tall {
  grid-row: span 2;
}

.bento-grid__item--featured {
  grid-column: span 2;
  grid-row: span 2;
}

@media (max-width: 1024px) {
  .bento-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bento-grid__item--featured {
    grid-column: span 2;
    grid-row: span 1;
  }
}

@media (max-width: 640px) {
  .bento-grid {
    grid-template-columns: 1fr;
  }

  .bento-grid__item--wide,
  .bento-grid__item--tall,
  .bento-grid__item--featured {
    grid-column: span 1;
    grid-row: span 1;
  }
}

/* ── Card Grid (Container Query Host) ────────────────── */

.card-grid {
  container-type: inline-size;
}

/* ── Container Queries for Cards ─────────────────────── */

@container (max-width: 500px) {
  .card {
    padding: var(--space-4);
  }

  .card__icon {
    width: 2.25rem;
    height: 2.25rem;
    margin-bottom: var(--space-3);
  }

  .card__icon svg {
    width: 1rem;
    height: 1rem;
  }

  .card__title {
    font-size: var(--text-lg);
  }

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

@container (max-width: 320px) {
  .card__icon--round {
    width: 2.75rem;
    height: 2.75rem;
  }

  .card__title--lg {
    font-size: var(--text-xl);
  }
}

/* ── Badge ───────────────────────────────────────────── */

.badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  padding: 0.3em 0.8em;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-wide);
  border-radius: var(--radius-full);
  background: rgba(var(--color-primary-rgb), 0.1);
  color: var(--color-primary-light, var(--color-primary));
  border: 1px solid rgba(var(--color-primary-rgb), 0.12);
}

.badge--pulse {
  position: relative;
}

.badge--pulse::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: inherit;
  animation: pulse-glow 2.5s ease-in-out infinite;
  z-index: -1;
}

.badge--success {
  background: rgba(34, 197, 94, 0.08);
  color: #16a34a;
  border-color: rgba(34, 197, 94, 0.15);
}

.badge--gold {
  background: rgba(var(--color-secondary-rgb), 0.15);
  color: var(--color-secondary);
  border-color: rgba(var(--color-secondary-rgb), 0.2);
}

/* ── Logo Bar ────────────────────────────────────────── */

.logo-bar {
  overflow: hidden;
  padding-block: var(--space-6);
  border-block: 1px solid var(--color-border);
}

.logo-bar__item {
  flex-shrink: 0;
  padding-inline: var(--space-8);
  opacity: 0.35;
  transition: opacity var(--duration-normal) var(--ease-out);
}

.logo-bar__item:hover {
  opacity: 0.8;
}

.logo-bar__item img {
  height: 40px;
  width: auto;
  object-fit: contain;
}

/* ── Navigation ──────────────────────────────────────── */

.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--z-nav);
  padding-block: var(--space-4);
  transition: all var(--duration-normal) var(--ease-out);
}

.nav.is-scrolled {
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border-bottom: 1px solid var(--glass-border);
  padding-block: var(--space-3);
}

.nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.nav__logo {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-heading);
  font-size: var(--text-xl);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-tight);
}

.nav__logo .logo-accent {
  color: var(--color-primary);
}

.nav__logo-icon {
  height: 36px;
  width: auto;
}

.nav__logo-img {
  height: auto;
  max-width: 160px;
}

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

.nav__link {
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  color: var(--color-text-muted);
  background-image: linear-gradient(var(--color-primary), var(--color-primary));
  background-size: 0% 1.5px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: color var(--duration-fast) var(--ease-out),
              background-size var(--duration-normal) var(--ease-out);
  position: relative;
}

.nav__link:hover,
.nav__link.is-active {
  color: var(--color-text);
  background-size: 100% 1.5px;
}

.nav__link:focus-visible {
  background-size: 100% 1.5px;
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
}

/* Mobile Menu Toggle */
.nav__toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: var(--space-2);
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
}

.nav__toggle span {
  display: block;
  width: 22px;
  height: 1.5px;
  background: var(--color-text);
  transition: all var(--duration-normal) var(--ease-out);
}

.nav__toggle.is-active span:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}

.nav__toggle.is-active span:nth-child(2) {
  opacity: 0;
}

.nav__toggle.is-active span:nth-child(3) {
  transform: rotate(-45deg) translate(5px, -5px);
}

@media (max-width: 768px) {
  .nav__toggle {
    display: flex;
  }

  .nav__links {
    position: fixed;
    top: 0;
    right: -100%;
    width: 80%;
    max-width: 320px;
    height: 100dvh;
    flex-direction: column;
    justify-content: center;
    gap: var(--space-7);
    background: var(--color-bg);
    padding: var(--space-8);
    transition: right var(--duration-normal) var(--ease-out);
    border-left: 1px solid var(--color-border);
  }

  .nav__links.is-open {
    right: 0;
  }

  .nav__link {
    font-size: var(--text-lg);
  }
}

/* ── Noise Overlay — subtiler, höhere Frequenz ───────── */

.noise-overlay {
  position: absolute;
  inset: -50%;
  width: 200%;
  height: 200%;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
  pointer-events: none;
  z-index: 1;
}

/* ── Hero Visual Clip ───────────────────────────────── */

.hero-visual-clip {
  clip-path: polygon(10% 0, 100% 0, 100% 100%, 0% 100%);
}

.hero-visual-clip__icon {
  opacity: 0.12;
}

/* ── About Visual Block ─────────────────────────────── */

.about-visual {
  aspect-ratio: 4/3;
  background: var(--color-surface);
  border-radius: var(--radius-xl);
  overflow: hidden;
  position: relative;
}

.about-visual__placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.about-badge {
  bottom: -1rem;
  right: -1rem;
  padding: var(--space-4);
  text-align: center;
}

/* ── Noise Overlay Variant ──────────────────────────── */

.noise-overlay--subtle {
  opacity: 0.02;
}

/* ── Label Uppercase Utility ────────────────────────── */

.label--uppercase {
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
}

/* ── Section Header ──────────────────────────────────── */

.section-header {
  max-width: 640px;
  margin-bottom: var(--space-9);
}

.section-header--center {
  text-align: center;
  margin-inline: auto;
}

.section-header--center p {
  margin-inline: auto;
}

.section-header--tight {
  margin-bottom: var(--space-6);
}

.section-header__label {
  display: block;
  margin-bottom: var(--space-3);
}

.section-header__title {
  margin-bottom: var(--space-4);
}

.section-header__text {
  color: var(--color-text-muted);
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
}

/* ── Footer ──────────────────────────────────────────── */

.footer {
  padding-block: var(--space-9);
  border-top: 1px solid var(--color-border);
}

.footer--primary {
  background: var(--color-primary);
  color: #fff;
  border-top: none;
}

.footer--primary .footer__title {
  color: rgba(255, 255, 255, 0.75);
}

.footer--primary .footer__link {
  color: rgba(255, 255, 255, 0.8);
}

.footer--primary .footer__link:hover {
  color: #fff;
}

.footer--primary .footer__bottom {
  border-color: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.65);
}

.footer--primary .nav__logo {
  color: #fff;
}

.footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: var(--space-8);
}

.footer__title {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-4);
  color: var(--color-text);
}

.footer__link {
  display: block;
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  padding-block: var(--space-1);
  transition: color var(--duration-fast) var(--ease-out);
}

.footer__link:hover {
  color: var(--color-text);
}

.footer__bottom {
  margin-top: var(--space-8);
  padding-top: var(--space-6);
  border-top: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-4);
  font-size: var(--text-xs);
  color: var(--color-text-subtle);
}

.footer__bottom a {
  color: inherit;
  display: inline;
}

.footer__bottom a:hover {
  color: var(--color-text-muted);
}

@media (max-width: 768px) {
  .footer__grid {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }
}

/* ── Hero ────────────────────────────────────────────── */

.hero {
  position: relative;
  min-height: 100dvh;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.hero--light {
  background: var(--color-bg);
  min-height: var(--hero-min-height);
}

/* Cinematic Hero — immer dunkel, unabhängig vom Page-Theme */
.hero--cinematic {
  background: #070a12;
  color: #fff;
}

.hero--cinematic .hero__subtitle {
  color: rgba(255, 255, 255, 0.75);
}

/* Gradient Hero — Dark gradient with animated blobs */
.hero--gradient {
  background: linear-gradient(160deg, #1D4E89 0%, #0E2643 50%, #0a1a30 100%);
  color: #fff;
}

.hero--gradient .hero__subtitle {
  color: rgba(255, 255, 255, 0.75);
}

.hero__bg--gradient-dark {
  background: linear-gradient(160deg, #1D4E89 0%, #0E2643 50%, #0a1a30 100%);
}

/* Decorative Blobs */
.hero__blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  pointer-events: none;
  will-change: transform;
}

.hero__blob--primary {
  width: 36rem;
  height: 36rem;
  left: -8rem;
  top: -10rem;
  background: radial-gradient(circle, #4A7BB3 0%, transparent 70%);
  opacity: 0.5;
  animation: float-blob-1 20s ease-in-out infinite;
}

.hero__blob--accent {
  width: 28rem;
  height: 28rem;
  right: -6rem;
  bottom: -8rem;
  background: radial-gradient(circle, #DE8419 0%, transparent 70%);
  opacity: 0.2;
  animation: float-blob-2 25s ease-in-out infinite;
}

.hero__blob--subtle {
  width: 20rem;
  height: 20rem;
  left: 40%;
  top: 20%;
  background: radial-gradient(circle, #F9AB49 0%, transparent 70%);
  opacity: 0.1;
  animation: float-blob-3 18s ease-in-out infinite;
}

.hero__bg-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
}

.hero__bg-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(7, 10, 18, 0.5) 0%,
    rgba(7, 10, 18, 0.35) 40%,
    rgba(7, 10, 18, 0.7) 80%,
    rgba(7, 10, 18, 0.95) 100%
  );
  z-index: 1;
}

.hero__title-accent {
  background: linear-gradient(135deg, #DE8419, #F9AB49);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Trust Pillars im Hero */
.hero__trust {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-6);
  margin-top: var(--space-9);
  padding-top: var(--space-6);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* Inline Trust-Variant (mit Pipe-Separatoren, ohne Border) */
.hero__trust--inline {
  border-top: none;
  padding-top: 0;
  margin-top: var(--space-6);
  gap: var(--space-3);
  align-items: center;
  margin-bottom: var(--space-8);
}

.hero__trust-separator {
  color: rgba(255, 255, 255, 0.25);
  font-size: var(--text-sm);
  user-select: none;
}

.hero__trust-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  color: rgba(255, 255, 255, 0.7);
}

.hero__trust-item svg {
  color: #DE8419;
  flex-shrink: 0;
}

/* Hero Visual Frame — Bild rechts mit abgerundeten Ecken */
.hero__visual-frame {
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-2xl);
  max-width: 520px;
  width: 100%;
}

.hero__visual-image {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 4/3;
  object-fit: cover;
}

@media (max-width: 768px) {
  .hero__visual-frame {
    max-width: 360px;
    margin-inline: auto;
    margin-top: var(--space-8);
  }
}

/* Badge Light — für dunkle Hintergründe */
.badge--light {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.85);
  border-color: rgba(255, 255, 255, 0.12);
}

/* Outline Button Light — für dunkle Hintergründe */
.btn--outline-light {
  background: transparent;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.25);
}

.btn--outline-light:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.5);
}

.hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero__bg--gradient-hero {
  background: var(--gradient-hero);
}

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

.hero__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 90dvh;
  width: 100%;
}

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

.hero__grid-content {
  display: flex;
  align-items: center;
  padding: var(--space-9) var(--container-padding) var(--space-9) calc(var(--container-padding) + 5vw);
}

/* Gradient Hero — kompaktere Proportionen für Zwei-Spalten-Layout */
.hero--gradient .hero__title {
  font-size: var(--text-4xl);
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.hero--gradient .hero__grid {
  grid-template-columns: 55fr 45fr;
}

.hero--gradient .hero__grid-content {
  padding-right: var(--space-8);
}

.hero--gradient .hero__grid-visual {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-9) calc(var(--container-padding) + 2vw) var(--space-9) 0;
}

@media (max-width: 768px) {
  .hero--gradient .hero__title {
    font-size: var(--text-3xl);
  }
  .hero--gradient .hero__grid {
    grid-template-columns: 1fr;
  }
  .hero--gradient .hero__grid-visual {
    padding: 0 var(--container-padding) var(--space-9);
  }
}

.hero__grid-visual {
  position: relative;
  overflow: hidden;
}

.hero__grid-visual--autoreveal {
  clip-path: inset(0 100% 0 0);
  animation: hero-clip-reveal 1s var(--ease-out) 0.3s both;
}

@keyframes hero-clip-reveal {
  to { clip-path: inset(0 0 0 0); }
}

.hero__title {
  margin-bottom: var(--space-5);
}

.hero__subtitle {
  font-size: var(--text-lg);
  color: var(--color-text-muted);
  margin-bottom: var(--space-8);
  max-width: 48ch;
  font-weight: var(--weight-light);
  line-height: var(--leading-relaxed);
}

.hero__actions {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  flex-wrap: wrap;
}

/* ── Section Backgrounds ─────────────────────────────── */

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

.section--bg-primary {
  background: var(--gradient-primary);
  position: relative;
  overflow: hidden;
}

.section--bg-primary-solid {
  background: var(--color-primary);
  position: relative;
  overflow: hidden;
}

.section--ambient {
  position: relative;
  overflow: hidden;
}

.section__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.section__bg--gradient {
  background: var(--gradient-primary);
}

.section__bg--mesh {
  background: var(--gradient-mesh);
}

.pattern-overlay {
  position: absolute;
  inset: 0;
  opacity: 0.04;
  background-image: repeating-linear-gradient(
    45deg,
    transparent,
    transparent 35px,
    rgba(255, 255, 255, 0.1) 35px,
    rgba(255, 255, 255, 0.1) 70px
  );
  z-index: 1;
}

/* ── Testimonial Card ────────────────────────────────── */

.testimonial-card {
  padding: var(--space-6);
  border-radius: var(--radius-xl);
  background: var(--card-bg, var(--color-bg-card));
  border: 1px solid var(--card-border, var(--color-border));
}

.testimonial-card__stars {
  color: var(--color-secondary);
  font-size: var(--text-lg);
  margin-bottom: var(--space-4);
  letter-spacing: 0.1em;
}

.testimonial-card__text {
  font-style: italic;
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-5);
  color: var(--color-text);
  font-size: var(--text-base);
  hanging-punctuation: first;
  text-wrap: pretty;
}

.testimonial-card__author {
  font-weight: var(--weight-semibold);
  font-size: var(--text-sm);
}

.testimonial-card__role {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}

/* ── Scroll Snap Slider ──────────────────────────────── */

.snap-slider {
  display: flex;
  gap: var(--space-4);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--container-padding);
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.snap-slider::-webkit-scrollbar {
  display: none;
}

.snap-slider > * {
  flex-shrink: 0;
  scroll-snap-align: start;
  width: min(380px, 85vw);
}

/* ── Counter ─────────────────────────────────────────── */

.counter {
  font-family: var(--font-heading);
  font-size: var(--text-5xl);
  font-weight: var(--weight-bold);
  line-height: 1;
  letter-spacing: var(--tracking-tight);
}

.counter.is-counting {
  animation: counter-pulse 0.3s ease-out;
}

/* ── Gallery Masonry ─────────────────────────────────── */

.masonry-grid {
  columns: 3;
  column-gap: var(--space-4);
}

.masonry-grid__item {
  break-inside: avoid;
  margin-bottom: var(--space-4);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

@media (max-width: 768px) {
  .masonry-grid {
    columns: 2;
  }
}

@media (max-width: 480px) {
  .masonry-grid {
    columns: 1;
  }
}

/* ── Gallery Placeholder ─────────────────────────────── */

.gallery-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
}

.gallery-placeholder--warm    { background: linear-gradient(135deg, #e8e0d4, #d4c5b0); }
.gallery-placeholder--cool    { background: linear-gradient(135deg, #d4dde8, #b0c5d4); }
.gallery-placeholder--green   { background: linear-gradient(135deg, #e0e8d4, #c5d4b0); }
.gallery-placeholder--rose    { background: linear-gradient(135deg, #e8d4d4, #d4b0b0); }
.gallery-placeholder--indigo  { background: linear-gradient(135deg, #d4d8e8, #b0b5d4); }
.gallery-placeholder--sand    { background: linear-gradient(135deg, #e8e4d4, #d4ceb0); }

.gallery-placeholder__inner {
  text-align: center;
  opacity: 0.4;
}

/* ── Gallery Image (Real Photo) ────────────────────────── */

.gallery-image {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.gallery-image__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.gallery-image:hover .gallery-image__img {
  transform: scale(1.05);
}

.gallery-image__caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: var(--space-3) var(--space-4);
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.6));
  color: #fff;
  font-size: var(--text-sm);
  font-weight: 600;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.gallery-image:hover .gallery-image__caption {
  opacity: 1;
  transform: translateY(0);
}

/* ── Project Blog — Zig-Zag Rows ─────────────────────── */

.project-blog__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
}

.project-blog__item {
  display: grid;
  grid-template-columns: 55fr 45fr;
  gap: var(--space-8);
  align-items: center;
}

.project-blog__item--reverse {
  direction: rtl;
}

.project-blog__item--reverse > * {
  direction: ltr;
}

.project-blog__item--hidden {
  display: none;
}

.project-blog__image {
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.project-blog__image-wrap {
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.project-blog__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s var(--ease-out);
}

.project-blog__item:hover .project-blog__img {
  transform: scale(1.03);
}

.project-blog__image .gallery-placeholder {
  transition: transform 0.4s var(--ease-out);
}

.project-blog__item:hover .project-blog__image .gallery-placeholder {
  transform: scale(1.03);
}

.project-blog__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}

.project-blog__text,
.project-blog__meta {
  align-self: stretch;
}

.project-blog__title {
  font-family: var(--font-heading);
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.3;
}

.project-blog__text {
  font-size: var(--text-base);
  color: var(--color-text-muted);
  line-height: 1.7;
}

.project-blog__meta {
  display: flex;
  gap: var(--space-4);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  opacity: 0.7;
}

.project-blog__meta span::before {
  margin-right: 0.35em;
}

.project-blog__meta span:first-child::before {
  content: "\1F4CD";
}

.project-blog__meta span:last-child::before {
  content: "\1F4C5";
}

.project-blog__more {
  text-align: center;
  margin-top: var(--space-8);
}

/* Responsive: Stack on mobile */
@media (max-width: 768px) {
  .project-blog__item {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .project-blog__item--reverse {
    direction: ltr;
  }

  .project-blog__image {
    order: -1;
  }
}

/* ── Form (Floating Labels) ──────────────────────────── */

.form-group {
  position: relative;
  margin-bottom: var(--space-5);
}

.form-group__input,
.form-group__textarea {
  width: 100%;
  padding: var(--space-4) var(--space-4) var(--space-2);
  font-size: var(--text-base);
  color: var(--color-text);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition: border-color var(--duration-fast) var(--ease-out),
              box-shadow var(--duration-fast) var(--ease-out);
}

.form-group__input:focus,
.form-group__textarea:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.12);
  outline: 2px solid transparent;
}

.form-group__input:focus-visible,
.form-group__textarea:focus-visible {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.12);
  outline: 2px solid var(--color-primary);
  outline-offset: 1px;
}

.form-group__label {
  position: absolute;
  top: 50%;
  left: var(--space-4);
  transform: translateY(-50%);
  font-size: var(--text-base);
  color: var(--color-text-subtle);
  pointer-events: none;
  transition: all var(--duration-fast) var(--ease-out);
}

.form-group__textarea ~ .form-group__label {
  top: var(--space-4);
  transform: none;
}

.form-group__input:focus ~ .form-group__label,
.form-group__input:not(:placeholder-shown) ~ .form-group__label,
.form-group__textarea:focus ~ .form-group__label,
.form-group__textarea:not(:placeholder-shown) ~ .form-group__label {
  top: var(--space-2);
  font-size: var(--text-xs);
  color: var(--color-primary);
  transform: none;
}

.form-group__textarea {
  min-height: 120px;
  resize: vertical;
}

/* Honeypot field (hidden from real users) */
.form-honeypot {
  position: absolute;
  left: -9999px;
  opacity: 0;
  height: 0;
  width: 0;
  overflow: hidden;
}

/* ── Divider ─────────────────────────────────────────── */

.section-divider {
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--color-border) 30%,
    var(--color-border) 70%,
    transparent
  );
  border: none;
  margin: 0;
}

/* ── Timeline ────────────────────────────────────────── */

.timeline-line-bg {
  position: absolute;
  left: 24px;
  top: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(to bottom, var(--color-primary), var(--color-secondary));
}

.timeline-node {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: var(--weight-bold);
  color: #fff;
  position: relative;
  z-index: 2;
  font-size: var(--text-sm);
}

/* ── CTA Icon Circle ─────────────────────────────────── */

.cta-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--color-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* ── Status Dot (for badges) ─────────────────────────── */

.status-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #22c55e;
}

/* ── Logo Bar Item Sizing ────────────────────────────── */

.logo-bar__item--placeholder {
  min-width: 180px;
  height: 40px;
}

/* ── Performance: Content-Visibility ─────────────────── */

.section {
  content-visibility: auto;
  contain-intrinsic-size: auto 500px;
}

.hero {
  content-visibility: visible;
  contain-intrinsic-size: none;
}

/* ── Performance: CSS Containment ────────────────────── */

.card {
  contain: layout style;
}

.bento-grid__item--featured,
.bento-grid__item--wide,
.bento-grid__item--tall {
  contain: layout style;
}

.masonry-grid__item {
  contain: layout;
}

/* .nav — kein contain! Bricht position:fixed auf Mobile */

/* ── Theme Toggle ────────────────────────────────────── */

.theme-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  background: var(--color-surface);
  color: var(--color-text-muted);
  cursor: pointer;
  transition: color var(--duration-fast) var(--ease-out),
              border-color var(--duration-fast) var(--ease-out),
              background-color var(--duration-fast) var(--ease-out);
}

.theme-toggle:hover {
  color: var(--color-text);
  border-color: var(--color-text-subtle);
}

/* Light mode: show moon (to switch to dark) */
.theme-toggle__icon--sun { display: none; }
.theme-toggle__icon--moon { display: block; }

/* Dark mode: show sun (to switch to light) */
[data-mode="dark"] .theme-toggle__icon--sun { display: block; }
[data-mode="dark"] .theme-toggle__icon--moon { display: none; }

/* ── Saison Banner ─────────────────────────────────────── */

.saison-banner {
  padding: var(--space-3) 0;
  text-align: center;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: calc(var(--z-nav) + 1);
}

.saison-banner .container {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-4);
}

.saison-banner--warnung {
  background: var(--color-accent, #c4a265);
  color: var(--color-text, #2d2d2d);
}

.saison-banner--info {
  background: var(--color-secondary, #6b7c5e);
  color: #fff;
}

.saison-banner--hinweis {
  background: var(--color-bg-alt, #f0ebe2);
  color: var(--color-text);
}

.saison-banner__text {
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
}

.saison-banner__text a {
  text-decoration: underline;
  font-weight: var(--weight-bold);
}

.saison-banner__close {
  background: none;
  border: none;
  font-size: 1.25rem;
  cursor: pointer;
  opacity: 0.7;
  padding: var(--space-1);
  line-height: 1;
  color: inherit;
}

.saison-banner__close:hover { opacity: 1; }

/* ── Intro Grid (Geschäftsbereiche) ────────────────────── */

.intro-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-6);
}

.intro-card {
  padding: var(--space-8);
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: var(--radius-lg);
  transition: border-color var(--duration-normal) var(--ease-out),
              box-shadow var(--duration-normal) var(--ease-out);
}

.intro-card:hover {
  border-color: var(--card-border-hover);
  box-shadow: var(--shadow-glow-md);
}

.intro-card__icon { font-size: 2.5rem; margin-bottom: var(--space-4); }
.intro-card__title { font-family: var(--font-heading); font-size: var(--text-2xl); color: var(--color-primary); margin-bottom: var(--space-3); }
.intro-card__text { color: var(--color-text-muted); margin-bottom: var(--space-6); line-height: 1.7; }
.intro-card__link { font-weight: var(--weight-semibold); color: var(--color-secondary); }
.intro-card__link:hover { color: var(--color-secondary-dark); }

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

/* ── Leistung Split ────────────────────────────────────── */

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

.leistung-split--reverse { direction: rtl; }
.leistung-split--reverse > * { direction: ltr; }

.leistung-split__image { border-radius: var(--radius-lg); overflow: hidden; }
.leistung-split__image img { width: 100%; height: 100%; object-fit: cover; }

.leistung-split__list {
  list-style: none;
  padding: 0;
  margin: var(--space-4) 0 0;
}

.leistung-split__list li {
  padding: var(--space-2) 0;
  padding-left: var(--space-6);
  position: relative;
  color: var(--color-text-muted);
}

.leistung-split__list li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  color: var(--color-secondary);
  font-weight: var(--weight-bold);
}

@media (max-width: 768px) {
  .leistung-split,
  .leistung-split--reverse { grid-template-columns: 1fr; direction: ltr; }
}

/* ── Sortiment Grid ────────────────────────────────────── */

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

.sortiment-card {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: border-color var(--duration-normal), box-shadow var(--duration-normal);
}

.sortiment-card:hover {
  border-color: var(--card-border-hover);
  box-shadow: var(--shadow-glow-md);
}

.sortiment-card__image { aspect-ratio: 4/3; }
.sortiment-card__image img { width: 100%; height: 100%; object-fit: cover; }

.sortiment-card__body { padding: var(--space-5); }
.sortiment-card__title { font-family: var(--font-heading); font-size: var(--text-lg); color: var(--color-primary); margin-bottom: var(--space-2); }
.sortiment-card__text { font-size: var(--text-sm); color: var(--color-text-muted); margin-bottom: var(--space-3); }
.sortiment-card__tags { display: flex; flex-wrap: wrap; gap: var(--space-1); }

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

/* ── Hint Box ──────────────────────────────────────────── */

.hint-box {
  text-align: center;
  padding: var(--space-8);
  background: var(--color-bg-alt);
  border-radius: var(--radius-lg);
  margin-top: var(--space-8);
}

.hint-box__title { font-family: var(--font-heading); font-size: var(--text-xl); color: var(--color-primary); margin-bottom: var(--space-2); }
.hint-box__text { color: var(--color-text-muted); margin-bottom: var(--space-5); margin-inline: auto; }

/* ── Maps Embed ────────────────────────────────────────── */

.maps-embed {
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 16/9;
}

.maps-embed iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.maps-tour-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-4);
  font-weight: var(--weight-semibold);
  color: var(--color-secondary);
}

.maps-tour-link:hover { color: var(--color-secondary-dark); }

/* ── Additional Placeholder Colors (Naturstein) ───────── */

.gallery-placeholder--moss   { background: linear-gradient(135deg, #d4ddc8, #b5c4a0); }
.gallery-placeholder--slate  { background: linear-gradient(135deg, #c8cdd4, #a0a8b5); }

/* ── Projekte Preview Grid ─────────────────────────────── */

.projekte-preview-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
}

.projekte-preview-card {
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: border-color var(--duration-normal), box-shadow var(--duration-normal), transform var(--duration-normal);
}

.projekte-preview-card:hover {
  border-color: var(--card-border-hover);
  box-shadow: var(--shadow-glow-md);
  transform: translateY(-2px);
}

.projekte-preview-card__image { aspect-ratio: 4/3; overflow: hidden; }
.projekte-preview-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.projekte-preview-card:hover .projekte-preview-card__image img { transform: scale(1.05); }

.projekte-preview-card__body { padding: var(--space-4); }
.projekte-preview-card__badge { margin-bottom: var(--space-2); }
.projekte-preview-card__title { font-family: var(--font-heading); font-size: var(--text-base); color: var(--color-primary); }

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

/* ── CTA Band ──────────────────────────────────────────── */

.cta-band {
  background: var(--gradient-accent, linear-gradient(135deg, #c4a265, #d4b87a));
  padding: var(--space-8) 0;
}

.cta-band .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-4);
}

.cta-band__text {
  font-family: var(--font-heading);
  font-size: var(--text-xl);
  color: var(--color-text, #2d2d2d);
}

.cta-band__actions {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

.cta-band__phone {
  font-weight: var(--weight-bold);
  color: var(--color-text, #2d2d2d);
}

@media (max-width: 768px) {
  .cta-band .container { flex-direction: column; text-align: center; }
}

/* ── Hero-Varianten (Formsprache) ─────────────────────── */

/* hero--centered: Text zentriert, kein visuelles Grid */
.hero--centered .hero__grid {
  grid-template-columns: 1fr;
  text-align: center;
  max-width: 800px;
  margin-inline: auto;
}
.hero--centered .hero__grid-visual { display: none; }
.hero--centered .hero__actions { justify-content: center; }
.hero--centered .hero__subtitle { margin-inline: auto; }

/* hero--fullbleed: Vollbild-Foto mit Text-Overlay */
.hero--fullbleed {
  min-height: 100dvh;
}
.hero--fullbleed .hero__grid {
  grid-template-columns: 1fr;
  position: relative;
  z-index: 2;
  text-align: center;
  align-items: center;
  justify-items: center;
}
.hero--fullbleed .hero__grid-visual {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.hero--fullbleed .hero__grid-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero--fullbleed .hero__title {
  color: #fff;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
}
.hero--fullbleed .hero__subtitle {
  color: rgba(255, 255, 255, 0.85);
  margin-inline: auto;
}
.hero--fullbleed .hero__grid-content {
  padding: var(--space-12) var(--container-padding);
}

/* hero--split-reverse: Bild links, Text rechts */
.hero--split-reverse .hero__grid {
  direction: rtl;
}
.hero--split-reverse .hero__grid > * {
  direction: ltr;
}

/* hero--minimal: Nur Text, maximal reduziert */
.hero--minimal {
  min-height: 60dvh;
}
.hero--minimal .hero__grid {
  grid-template-columns: 1fr;
  text-align: center;
  max-width: 700px;
  margin-inline: auto;
  min-height: 60dvh;
}
.hero--minimal .hero__grid-visual { display: none; }
.hero--minimal .hero__subtitle { display: none; }
.hero--minimal .hero__actions { justify-content: center; }

/* ── Card-Stil-Varianten (Formsprache) ────────────────── */

.card--flat {
  box-shadow: none;
  border: none;
}
.card--flat::before { display: none; }

.card--bordered {
  box-shadow: none;
  border: 1px solid var(--color-border);
}
.card--bordered::before { display: none; }
.card--bordered:hover {
  border-color: var(--color-primary);
  box-shadow: none;
}

.card--glass {
  background: var(--glass-bg);
  backdrop-filter: var(--glass-blur);
  -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-border);
  box-shadow: none;
}
.card--glass::before { display: none; }

.card--outlined {
  background: transparent;
  box-shadow: none;
  border: 1px solid var(--color-border);
}
.card--outlined::before { display: none; }
.card--outlined:hover {
  background: var(--color-bg-card);
}

/* ── Section-Hintergrund-Varianten ────────────────────── */

.section--diagonal {
  clip-path: polygon(0 4%, 100% 0, 100% 96%, 0 100%);
  padding-top: calc(var(--section-gap) + 2rem);
  padding-bottom: calc(var(--section-gap) + 2rem);
}

.section--wave-top {
  position: relative;
}
.section--wave-top::before {
  content: '';
  position: absolute;
  top: -40px;
  left: 0;
  right: 0;
  height: 80px;
  background: inherit;
  clip-path: ellipse(60% 100% at 50% 100%);
}

.section--overlap {
  margin-top: calc(-1 * var(--space-10));
  position: relative;
  z-index: 2;
}

/* ── Nav zentriert — Logo oben, Links darunter ────────── */

.nav--centered .nav__inner {
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
}

.nav--centered .nav__logo {
  font-size: var(--text-2xl);
}

.nav--centered .nav__links {
  gap: var(--space-8);
}

.nav--centered.is-scrolled .nav__inner {
  flex-direction: row;
}

.nav--centered.is-scrolled .nav__logo {
  font-size: var(--text-xl);
}

/* ── Image Divider — Atmosphärisches Vollbild-Trennbild ── */

.image-divider {
  width: 100%;
  height: 50vh;
  overflow: hidden;
  position: relative;
}

.image-divider img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--divider-focus, 50% 50%);
}

.image-divider--tall {
  height: 70vh;
}

.image-divider--short {
  height: 30vh;
}

/* Responsive Divider — Mobile braucht weniger Höhe */
@media (max-width: 768px) {
  .image-divider {
    height: 30vh;
  }
  .image-divider--tall {
    height: 40vh;
  }
  .image-divider--short {
    height: 20vh;
  }
}

@media (max-width: 480px) {
  .image-divider {
    height: 25vh;
  }
  .image-divider--tall {
    height: 30vh;
  }
  .image-divider--short {
    height: 15vh;
  }
}

/* ── Photo Gallery Grid (erweitert) ───────────────────── */

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

.photo-gallery--dense {
  grid-template-columns: repeat(6, 1fr);
}

.photo-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 1;
  transition: transform 0.4s var(--ease-out);
}

.photo-gallery img:hover {
  transform: scale(1.05);
}

.photo-gallery__item {
  overflow: hidden;
  border-radius: var(--img-radius);
}

.photo-gallery__item--wide {
  grid-column: span 2;
}

@media (max-width: 768px) {
  .photo-gallery {
    grid-template-columns: repeat(2, 1fr);
  }
  .photo-gallery--dense {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ── Lightbox (opt-in via lightbox.js) ────────────────── */

.lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0, 0, 0, 0.92);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.lightbox--open {
  opacity: 1;
  pointer-events: auto;
}
.lightbox__img {
  max-width: 90vw;
  max-height: 85vh;
  object-fit: contain;
  border-radius: 4px;
  user-select: none;
}
.lightbox__close {
  position: absolute;
  top: 1rem;
  right: 1.25rem;
  background: none;
  border: none;
  color: rgba(255,255,255,0.8);
  font-size: 2.5rem;
  cursor: pointer;
  line-height: 1;
  padding: 0.25rem;
  transition: color 0.15s;
}
.lightbox__close:hover { color: #fff; }
.lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: rgba(255,255,255,0.7);
  font-size: 3.5rem;
  cursor: pointer;
  padding: 1rem;
  line-height: 1;
  transition: color 0.15s;
}
.lightbox__nav:hover { color: #fff; }
.lightbox__nav--prev { left: 0.5rem; }
.lightbox__nav--next { right: 0.5rem; }
.lightbox__counter {
  position: absolute;
  bottom: 1.25rem;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,0.6);
  font-size: 0.85rem;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 768px) {
  .lightbox__nav { font-size: 2.5rem; padding: 0.5rem; }
  .lightbox__img { max-width: 95vw; max-height: 80vh; }
}

/* ── Menu Card (Speisekarte-Darstellung) ──────────────── */

.menu-card {
  padding: var(--space-6);
  border-bottom: 1px solid var(--color-border);
}

.menu-card:last-child {
  border-bottom: none;
}

.menu-card__title {
  font-family: var(--font-heading);
  font-size: var(--text-xl);
  color: var(--color-primary);
  margin-bottom: var(--space-2);
}

.menu-card__text {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
}

.menu-card__price {
  font-weight: var(--weight-semibold);
  color: var(--color-secondary-dark);
  margin-top: var(--space-2);
}

/* ── Skip-Link (Barrierefreiheit) ────────────────────── */

.skip-link {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
  z-index: 10000;
}

.skip-link:focus {
  position: fixed;
  top: 0;
  left: 0;
  width: auto;
  height: auto;
  padding: 0.75rem 1.5rem;
  background: var(--color-primary);
  color: #fff;
  font-size: 1rem;
  font-weight: bold;
  text-decoration: none;
  z-index: 10000;
}

/* ── Footer-Links Focus ─────────────────────────────── */

.footer__link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.footer__social:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

.footer__bottom a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* ── Fullscreen Scroll Snap ──────────────────── */
.snap-container {
  height: 100dvh;
  overflow-y: auto;
  scroll-snap-type: y mandatory;
  overscroll-behavior-y: contain;
}

.snap-section {
  min-height: 100dvh;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

/* Dot navigation (right edge) */
.snap-nav {
  position: fixed;
  right: var(--space-4, 1.5rem);
  top: 50%;
  transform: translateY(-50%);
  z-index: 90;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.snap-nav__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1.5px solid var(--color-text, #fff);
  background: transparent;
  cursor: pointer;
  transition: background 300ms var(--ease-out), transform 300ms var(--ease-out);
  padding: 0;
}

.snap-nav__dot[aria-current="true"] {
  background: var(--color-primary);
  border-color: var(--color-primary);
  transform: scale(1.3);
}

.snap-nav__dot:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
}

/* Hide snap-nav on mobile (too small) */
@media (max-width: 768px) {
  .snap-nav { display: none; }
}

/* Scroll indicator arrow */
.snap-scroll-hint {
  position: absolute;
  bottom: var(--space-6, 2rem);
  left: 50%;
  transform: translateX(-50%);
  opacity: 1;
  transition: opacity 600ms var(--ease-out);
  z-index: 10;
}

.snap-scroll-hint[hidden] {
  opacity: 0;
  pointer-events: none;
}

.snap-scroll-hint__arrow {
  width: 24px;
  height: 24px;
  border-right: 2px solid var(--color-primary, currentColor);
  border-bottom: 2px solid var(--color-primary, currentColor);
  transform: rotate(45deg);
  animation: snap-bounce 2s var(--ease-out) infinite;
}

@keyframes snap-bounce {
  0%, 100% { transform: rotate(45deg) translateY(0); opacity: 1; }
  50% { transform: rotate(45deg) translateY(8px); opacity: 0.5; }
}

@media (prefers-reduced-motion: reduce) {
  .snap-scroll-hint__arrow { animation: none; }
}

/* ── Frame Scroll (Sticky Crossfade) ─────────── */
.frame-scroll {
  position: sticky;
  top: 0;
  height: 100vh;
  width: 100%;
  z-index: 1;
}

.frame-scroll__stack {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.frame-scroll__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  opacity: 0;
  transition: opacity 800ms var(--ease-out, ease);
  will-change: opacity;
  padding: 10vh 10vw;
}

.frame-scroll__image.is-active {
  opacity: 1;
}

.frame-scroll__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  pointer-events: none;
}

.frame-scroll__overlay > * {
  pointer-events: auto;
}

/* Feature trigger sections (scroll height) */
.frame-trigger {
  min-height: 100vh;
  display: flex;
  align-items: center;
  position: relative;
  z-index: 2;
}

.frame-trigger__content {
  max-width: 480px;
  padding: var(--space-6, 2rem);
}

/* Alternate left/right positioning */
.frame-trigger:nth-child(odd) .frame-trigger__content {
  margin-left: auto;
  margin-right: 8%;
  text-align: right;
}

.frame-trigger:nth-child(even) .frame-trigger__content {
  margin-left: 8%;
  margin-right: auto;
  text-align: left;
}

@media (max-width: 768px) {
  .frame-trigger__content {
    max-width: 100%;
    margin: 0 !important;
    text-align: center !important;
    padding: var(--space-4);
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(8px);
  }

  .frame-scroll__image {
    padding: 15vh 5vw;
  }
}

/* ═══════════════════════════════════════════════════════
   HORIZONTAL SCROLL (Vertical-to-Horizontal)
   ═══════════════════════════════════════════════════════ */

.hscroll-wrapper {
  position: relative;
}

.hscroll {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
}

.hscroll__track {
  display: flex;
  height: 100%;
  will-change: transform;
}

.hscroll__panel {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
}

.hscroll__progress {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--color-primary);
  transform-origin: left;
  transform: scaleX(0);
  z-index: 50;
  pointer-events: none;
}

} /* end @layer components */
/* ═══════════════════════════════════════════════════════════
   AIM WebEngine — Utilities
   Grid, Flex, Spacing, Display
   ═══════════════════════════════════════════════════════════ */

@layer utilities {

/* ── Display ─────────────────────────────────────────── */

.hidden { display: none; }
.block { display: block; }
.inline-block { display: inline-block; }
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.grid { display: grid; }

/* ── Flex Utilities ──────────────────────────────────── */

.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.items-end { align-items: flex-end; }
.items-stretch { align-items: stretch; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.justify-end { justify-content: flex-end; }
.flex-1 { flex: 1; }
.flex-shrink-0 { flex-shrink: 0; }

/* ── Gap ─────────────────────────────────────────────── */

.gap-1 { gap: var(--space-1); }
.gap-2 { gap: var(--space-2); }
.gap-3 { gap: var(--space-3); }
.gap-4 { gap: var(--space-4); }
.gap-5 { gap: var(--space-5); }
.gap-6 { gap: var(--space-6); }
.gap-7 { gap: var(--space-7); }
.gap-8 { gap: var(--space-8); }

/* ── Grid Utilities ──────────────────────────────────── */

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

@media (max-width: 1024px) {
  .lg\:grid-cols-1 { grid-template-columns: 1fr; }
  .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
  .md\:grid-cols-1 { grid-template-columns: 1fr; }
  .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .md\:flex-col { flex-direction: column; }
  .md\:hidden { display: none; }
  .md\:block { display: block; }
  .md\:text-center { text-align: center; }
}

@media (max-width: 480px) {
  .sm\:grid-cols-1 { grid-template-columns: 1fr; }
  .sm\:hidden { display: none; }
}

/* ── Spacing (Margin) ────────────────────────────────── */

.mt-0 { margin-top: 0; }
.mt-2 { margin-top: var(--space-2); }
.mt-4 { margin-top: var(--space-4); }
.mt-6 { margin-top: var(--space-6); }
.mt-8 { margin-top: var(--space-8); }
.mt-10 { margin-top: var(--space-10); }

.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: var(--space-1); }
.mb-2 { margin-bottom: var(--space-2); }
.mb-4 { margin-bottom: var(--space-4); }
.mb-5 { margin-bottom: var(--space-5); }
.mb-6 { margin-bottom: var(--space-6); }
.mb-8 { margin-bottom: var(--space-8); }

.mx-auto { margin-inline: auto; }

/* ── Spacing (Padding) ───────────────────────────────── */

.p-4 { padding: var(--space-4); }
.p-6 { padding: var(--space-6); }
.p-8 { padding: var(--space-8); }

.px-2 { padding-inline: var(--space-2); }
.px-4 { padding-inline: var(--space-4); }
.px-6 { padding-inline: var(--space-6); }

.py-4 { padding-block: var(--space-4); }
.py-6 { padding-block: var(--space-6); }
.py-8 { padding-block: var(--space-8); }

/* ── Text ────────────────────────────────────────────── */

.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.text-xs { font-size: var(--text-xs); }
.text-sm { font-size: var(--text-sm); }
.text-base { font-size: var(--text-base); }
.text-lg { font-size: var(--text-lg); }
.text-xl { font-size: var(--text-xl); }
.text-2xl { font-size: var(--text-2xl); }

.font-heading { font-family: var(--font-heading); }
.font-body { font-family: var(--font-body); }

.font-bold { font-weight: var(--weight-bold); }
.font-semibold { font-weight: var(--weight-semibold); }

.text-muted { color: var(--color-text-muted); }
.text-subtle { color: var(--color-text-subtle); }
.text-primary { color: var(--color-primary); }
.text-secondary { color: var(--color-secondary); }
.text-white { color: #fff; }
.text-white-85 { color: rgba(255, 255, 255, 0.85); }
.text-white-65 { color: rgba(255, 255, 255, 0.65); }
.text-white-40 { color: rgba(255, 255, 255, 0.4); }
.text-white-75 { color: rgba(255, 255, 255, 0.75); }

/* ── Width / Height ──────────────────────────────────── */

.w-full { width: 100%; }
.max-w-prose { max-width: 65ch; }
.max-w-lg { max-width: 800px; }
.max-w-xl { max-width: 1024px; }
.max-w-sm { max-width: 600px; }
.max-w-md { max-width: 700px; }
.max-w-narrow { max-width: 380px; }
.max-w-32ch { max-width: 32ch; }

/* ── Position ────────────────────────────────────────── */

.relative { position: relative; }
.absolute { position: absolute; }
.fixed { position: fixed; }
.sticky { position: sticky; }

.inset-0 { inset: 0; }
.z-0 { z-index: var(--z-base); }
.z-1 { z-index: 1; }
.z-2 { z-index: 2; }
.z-10 { z-index: var(--z-above); }
.z-50 { z-index: var(--z-nav); }

/* ── Opacity ────────────────────────────────────────── */

.opacity-75 { opacity: 0.75; }

/* ── Aspect Ratio ───────────────────────────────────── */

.aspect-4-3 { aspect-ratio: 4/3; }
.aspect-3-4 { aspect-ratio: 3/4; }
.aspect-16-9 { aspect-ratio: 16/9; }
.aspect-1-1 { aspect-ratio: 1/1; }

/* ── Overflow ────────────────────────────────────────── */

.overflow-hidden { overflow: hidden; }
.overflow-x-hidden { overflow-x: hidden; }

/* ── Visibility ──────────────────────────────────────── */

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

/* ── Pointer ─────────────────────────────────────────── */

.pointer-events-none { pointer-events: none; }
.cursor-pointer { cursor: pointer; }

} /* end @layer utilities */
/* ── VEG Container Theme ────────────────────────────── */
/* Theme-spezifisches CSS — engine/ bleibt unberührt    */
/* VEG Verwertung Entsorgung Gilch GmbH & Co. KG       */

/* ══════════════════════════════════════════════════════
   0. Self-hosted Fonts (DSGVO-konform)
   ══════════════════════════════════════════════════════ */

@font-face {
  font-family: 'Outfit';
  src: url('data:font/woff2;base64,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') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Source Sans 3';
  src: url('data:font/woff2;base64,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') format('woff2');
  font-weight: 200 900;
  font-style: normal;
  font-display: swap;
}

/* ══════════════════════════════════════════════════════
   1. Theme Custom Properties
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] {
  /* Primär: Dunkelgrün — Umwelt/Recycling */
  --color-primary: oklch(45% 0.12 155);
  --color-primary-hover: oklch(40% 0.12 155);
  --color-primary-light: oklch(92% 0.04 155);

  /* Sekundär: Anthrazit — Industrie */
  --color-secondary: oklch(25% 0.01 250);
  --color-secondary-light: oklch(35% 0.01 250);

  /* Akzent: Signalgelb — Warnung/Container */
  --color-accent: oklch(82% 0.15 90);
  --color-accent-dark: oklch(72% 0.15 90);

  /* Hintergründe */
  --color-bg: #f8f9fa;
  --color-bg-alt: #f0f2f0;
  --color-bg-dark: oklch(22% 0.01 250);

  /* Text */
  --color-text: #333333;
  --color-text-subtle: #5a5a65;
  --color-text-on-dark: #f0f2f0;

  /* Borders */
  --color-border: #d4d8d4;

  /* Gold override for badges */
  --color-gold: oklch(82% 0.15 90);

  /* Fonts: Outfit + Source Sans 3 */
  --font-heading: 'Outfit', 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
}

/* ══════════════════════════════════════════════════════
   2. Navigation
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] header {
  position: sticky;
  top: 0;
  z-index: 100;
}

[data-theme="veg-container"] .nav {
  background: var(--color-bg-dark);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  transition: padding 0.4s ease, background-color 0.4s ease, box-shadow 0.4s ease;
}

[data-theme="veg-container"] .nav.is-scrolled {
  padding-block: var(--space-2);
  background: rgba(30, 32, 38, 0.97);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
}

[data-theme="veg-container"] .nav__logo {
  color: #fff;
}

[data-theme="veg-container"] .nav__logo-img {
  max-width: 180px;
  height: auto;
  filter: brightness(0) invert(1);
}

[data-theme="veg-container"] .nav__link {
  color: rgba(255, 255, 255, 0.8);
}

[data-theme="veg-container"] .nav__link:hover {
  color: var(--color-accent);
}

/* Mobile nav */
@media (max-width: 768px) {
  [data-theme="veg-container"] .nav__toggle {
    position: relative;
    z-index: 2;
  }

  [data-theme="veg-container"] .nav__links {
    background: var(--color-bg-dark);
    z-index: 1;
  }

  [data-theme="veg-container"] .nav__links .nav__link {
    color: rgba(255, 255, 255, 0.85);
  }
}

/* ══════════════════════════════════════════════════════
   3. Hero — Dunkler industrieller Look
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .hero--fullbleed .hero__grid {
  min-height: 100dvh;
}

[data-theme="veg-container"] .hero--fullbleed .hero__grid-content {
  position: relative;
  z-index: 3;
  padding: var(--space-16) var(--container-padding) calc(var(--space-16) + 2rem);
}

[data-theme="veg-container"] .hero--fullbleed .hero__title {
  color: #fff;
  text-shadow: 0 2px 30px rgba(0, 0, 0, 0.6),
               0 1px 3px rgba(0, 0, 0, 0.4);
}

[data-theme="veg-container"] .hero--fullbleed .hero__subtitle {
  color: rgba(255, 255, 255, 0.9);
  font-weight: var(--weight-medium, 500);
  text-shadow: 0 1px 20px rgba(0, 0, 0, 0.5);
}

/* Badge: Glasmorphism with accent color */
[data-theme="veg-container"] .hero--fullbleed .badge {
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--color-accent);
}

/* Outline-Button on dark background */
[data-theme="veg-container"] .hero--fullbleed .btn--outline {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.5);
}

[data-theme="veg-container"] .hero--fullbleed .btn--outline:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.8);
}

/* ══════════════════════════════════════════════════════
   3b. Service Cards (Image-based)
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .service-card {
  background: #fff;
  border: 1px solid var(--color-border);
  overflow: hidden;
  text-align: left;
}

[data-theme="veg-container"] .service-card__image {
  aspect-ratio: 4/3;
  overflow: hidden;
}

[data-theme="veg-container"] .service-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

[data-theme="veg-container"] .service-card:hover .service-card__image img {
  transform: scale(1.05);
}

[data-theme="veg-container"] .service-card__body {
  padding: var(--space-5) var(--space-5) var(--space-6);
}

/* ══════════════════════════════════════════════════════
   4. Cards
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .card {
  transition: transform 0.4s var(--ease-smooth, ease),
              box-shadow 0.5s var(--ease-out, ease),
              border-color 0.3s var(--ease-out, ease);
  border: 1px solid var(--color-border);
}

[data-theme="veg-container"] .card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  border-color: var(--color-primary);
}

[data-theme="veg-container"] .card__icon--round {
  background: var(--color-primary-light);
  color: var(--color-primary);
}

/* Services: 5 cards, 3+2 layout — Flexbox zentriert letzte Reihe */
[data-theme="veg-container"] .veg-services-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-6);
}

[data-theme="veg-container"] .veg-services-grid > * {
  flex: 0 1 calc((100% - 2 * var(--space-6)) / 3);
}

[data-theme="veg-container"] .service-card .card__title {
  hyphens: auto;
}

@media (max-width: 1024px) {
  [data-theme="veg-container"] .veg-services-grid > * {
    flex: 0 1 calc((100% - var(--space-6)) / 2);
  }
}

@media (max-width: 640px) {
  [data-theme="veg-container"] .veg-services-grid > * {
    flex: 0 1 100%;
  }
}

/* Contact section: icon layout fix */
[data-theme="veg-container"] #kontakt .card__icon {
  margin-bottom: 0;
}

/* ══════════════════════════════════════════════════════
   5. Container Sizes Section
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .container-sizes-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
}

@media (max-width: 1024px) {
  [data-theme="veg-container"] .container-sizes-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  [data-theme="veg-container"] .container-sizes-grid {
    grid-template-columns: 1fr;
  }
}

[data-theme="veg-container"] .container-size-card {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg, 12px);
  padding: var(--space-6);
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  position: relative;
  overflow: hidden;
}

[data-theme="veg-container"] .container-size-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

/* Visual container icon — scales with size */
[data-theme="veg-container"] .container-size-visual {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  margin-bottom: var(--space-4);
  height: 100px;
}

[data-theme="veg-container"] .container-size-box {
  background: linear-gradient(135deg, var(--color-accent), var(--color-accent-dark));
  border-radius: 4px 4px 0 0;
  width: 80%;
  transition: height 0.3s ease;
  position: relative;
}

/* Size indicators via data attribute */
[data-theme="veg-container"] .container-size-box[data-scale="1"] { height: 30px; }
[data-theme="veg-container"] .container-size-box[data-scale="2"] { height: 40px; }
[data-theme="veg-container"] .container-size-box[data-scale="3"] { height: 50px; }
[data-theme="veg-container"] .container-size-box[data-scale="4"] { height: 65px; }
[data-theme="veg-container"] .container-size-box[data-scale="5"] { height: 80px; }
[data-theme="veg-container"] .container-size-box[data-scale="6"] { height: 95px; }

/* Container-Bild wenn vorhanden */
[data-theme="veg-container"] .container-size-visual--photo {
  height: auto;
  border-radius: var(--radius-sm, 6px);
  overflow: hidden;
}
[data-theme="veg-container"] .container-size-visual--photo img {
  width: 100%;
  height: 140px;
  object-fit: cover;
  border-radius: var(--radius-sm, 6px);
}

[data-theme="veg-container"] .container-size-label {
  font-size: var(--text-2xl, 1.5rem);
  font-weight: var(--weight-bold, 700);
  color: var(--color-primary);
  margin-bottom: var(--space-1);
}

[data-theme="veg-container"] .container-size-desc {
  font-size: var(--text-sm, 0.875rem);
  color: var(--color-text-subtle);
  margin-bottom: var(--space-2);
}

[data-theme="veg-container"] .container-size-area {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm, 0.875rem);
  color: var(--color-primary);
  font-weight: var(--weight-medium, 500);
  margin-bottom: var(--space-2);
}

[data-theme="veg-container"] .container-size-suitable {
  font-size: var(--text-xs, 0.75rem);
  color: var(--color-text-subtle);
  background: var(--color-bg-alt);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm, 6px);
  margin-top: var(--space-3);
}

/* ══════════════════════════════════════════════════════
   6. Abfallarten / Waste Types — Pill Grid
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .waste-category {
  display: flex;
  flex-direction: column;
  align-items: center;
}

[data-theme="veg-container"] .waste-category__label {
  font-size: var(--text-sm, 0.875rem);
  font-weight: var(--weight-bold, 700);
  color: var(--color-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: var(--space-4);
}

[data-theme="veg-container"] .waste-pills {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  justify-content: center;
}

[data-theme="veg-container"] .waste-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  border-radius: 999px;
  font-size: var(--text-sm, 0.875rem);
  font-weight: var(--weight-medium, 500);
  border: 1px solid transparent;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  min-height: 44px; /* Touch target */
}

[data-theme="veg-container"] .waste-pill:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* Kategorie-Farben */
[data-theme="veg-container"] .waste-pill--baustoffe {
  background: oklch(92% 0.04 155);
  color: oklch(35% 0.12 155);
  border-color: oklch(85% 0.06 155);
}

[data-theme="veg-container"] .waste-pill--holz {
  background: oklch(90% 0.06 70);
  color: oklch(35% 0.08 70);
  border-color: oklch(82% 0.08 70);
}

[data-theme="veg-container"] .waste-pill--metalle {
  background: oklch(92% 0.02 250);
  color: oklch(30% 0.02 250);
  border-color: oklch(85% 0.02 250);
}

[data-theme="veg-container"] .waste-pill--garten {
  background: oklch(92% 0.08 140);
  color: oklch(30% 0.08 140);
  border-color: oklch(85% 0.08 140);
}

/* ══════════════════════════════════════════════════════
   7. Entsorgungsfachbetrieb Badge
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .efb-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-5);
  background: var(--color-primary-light);
  border: 2px solid var(--color-primary);
  border-radius: var(--radius-lg, 12px);
  font-weight: var(--weight-semibold, 600);
  color: var(--color-primary);
  font-size: var(--text-sm, 0.875rem);
}

[data-theme="veg-container"] .efb-badge svg {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

/* ══════════════════════════════════════════════════════
   8. CTA Band
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .cta-band {
  background: var(--color-primary);
  color: #fff;
}

[data-theme="veg-container"] .cta-band .btn--white {
  background: #fff;
  color: var(--color-primary);
}

[data-theme="veg-container"] .cta-band .btn--white:hover {
  background: var(--color-accent);
  color: var(--color-secondary);
}

/* ══════════════════════════════════════════════════════
   9. About Section (dark)
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .section--bg-primary {
  background: var(--color-bg-dark);
  color: var(--color-text-on-dark);
}

[data-theme="veg-container"] .section--bg-primary .label {
  color: var(--color-accent);
}

/* Badges auf dunklem Hintergrund — helle Farben */
[data-theme="veg-container"] .section--bg-primary .badge--gold {
  background: rgba(255, 255, 255, 0.1);
  color: var(--color-accent);
  border-color: rgba(255, 255, 255, 0.2);
}

/* ══════════════════════════════════════════════════════
   10. Image Divider — Bildhöhe statt feste vh
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .image-divider {
  background: var(--color-bg-dark);
  height: auto;
  max-height: 70vh;
}

[data-theme="veg-container"] .image-divider img {
  height: auto;
  max-height: 70vh;
}

/* ══════════════════════════════════════════════════════
   11. Footer
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .footer--primary {
  background: var(--color-bg-dark);
  color: var(--color-text-on-dark);
}

[data-theme="veg-container"] .footer__title {
  color: var(--color-accent);
}

[data-theme="veg-container"] .footer__link {
  color: rgba(240, 242, 240, 0.7);
}

[data-theme="veg-container"] .footer__link:hover {
  color: #fff;
}

[data-theme="veg-container"] .footer__bottom {
  border-top-color: rgba(255, 255, 255, 0.1);
  color: rgba(240, 242, 240, 0.65);
}

[data-theme="veg-container"] .footer__text {
  color: rgba(240, 242, 240, 0.65);
  font-size: var(--text-sm, 0.875rem);
  line-height: 1.5;
  display: block;
  margin-bottom: 0.25rem;
}

[data-theme="veg-container"] .footer__bottom a {
  color: #618c6f;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

[data-theme="veg-container"] .footer__bottom a:hover {
  color: #fff;
}

/* Gilch Unternehmensgruppe */
[data-theme="veg-container"] .footer__group-links {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

[data-theme="veg-container"] .footer__group-links a {
  color: rgba(255, 255, 255, 0.7);
  transition: color 0.2s ease;
  font-size: var(--text-sm);
}

[data-theme="veg-container"] .footer__group-links a:hover {
  color: var(--color-accent);
}

/* ══════════════════════════════════════════════════════
   11b. Polypane Contrast Fixes (exakte Hex-Werte)
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .section--bg-alt .label,
[data-theme="veg-container"] .contact-section .label {
  color: #3a6650;
}

[data-theme="veg-container"] .contact-section h2,
[data-theme="veg-container"] #kontakt-heading {
  color: #898c8c;
}

[data-theme="veg-container"] .contact-section .text-muted {
  color: #6d6f6d;
}

[data-theme="veg-container"] .contact-section .font-bold.text-sm {
  color: #6e6e6e;
}

[data-theme="veg-container"] .form-group__input,
[data-theme="veg-container"] .form-group__textarea {
  color: #6e6e6e;
  border-color: #888;
}

[data-theme="veg-container"] .form-group__label {
  color: #6d6d76;
}

/* Kontaktformular-Card weiß: Labels/Inputs landen auf #fff statt section--bg-alt
   (#f0f2f0) → Kontrast steigt von ~4.3:1 auf ~5:1 (WCAG AA, Mobile-axe-Fail behoben) */
[data-theme="veg-container"] #contactForm {
  background: #fff;
}

/* Datenschutz-Link im Formular (heller Hintergrund) */
[data-theme="veg-container"] .contact-section a[href="/datenschutz"] {
  color: #407a55;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Datenschutz-Link im Footer (dunkler Hintergrund) */
[data-theme="veg-container"] .footer__bottom a[href="/datenschutz"] {
  color: #618c6f;
}

[data-theme="veg-container"] .contact-section .contact-link {
  color: #417a55;
}

/* ══════════════════════════════════════════════════════
   12. Focus & Accessibility
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] :focus-visible {
  outline: 3px solid oklch(45% 0.12 155);
  outline-offset: 2px;
}

[data-theme="veg-container"] .btn:focus-visible {
  outline: 3px solid oklch(45% 0.12 155);
  outline-offset: 3px;
}

/* ══════════════════════════════════════════════════════
   13. Button Variants
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .btn--primary {
  background: var(--color-primary);
  color: #fff;
}

[data-theme="veg-container"] .btn--primary:hover {
  background: var(--color-primary-hover);
}

[data-theme="veg-container"] .btn--accent {
  background: var(--color-accent);
  color: var(--color-secondary);
  font-weight: var(--weight-semibold, 600);
}

[data-theme="veg-container"] .btn--accent:hover {
  background: var(--color-accent-dark);
}

/* ══════════════════════════════════════════════════════
   14. Scroll Progress
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .scroll-progress {
  background: var(--color-primary);
}

/* ══════════════════════════════════════════════════════
   15. Section Headers
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .section-header__label {
  color: #3a6650;
}

[data-theme="veg-container"] .section-header__title {
  color: var(--color-secondary);
}

/* Kontrast-Fix: Labels/Titles/Text auf --bg-alt (#f0f2f0) */
[data-theme="veg-container"] .section--bg-alt .section-header__label {
  color: #3a6650;
}

[data-theme="veg-container"] .section--bg-alt .section-header__title {
  color: #1a1a2e;
}

[data-theme="veg-container"] .section--bg-alt .section-header__text {
  color: #4a4a5a;
}

/* ══════════════════════════════════════════════════════
   16. Nav Toggle (Hamburger) on dark bg
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .nav__toggle span {
  background: #fff;
}

/* ══════════════════════════════════════════════════════
   17. Responsive — Mobile Fixes
   ══════════════════════════════════════════════════════ */

@media (max-width: 768px) {
  /* Hero-Titel auf Mobile verkleinern */
  [data-theme="veg-container"] .hero--fullbleed .hero__title {
    font-size: var(--text-4xl);
  }

  /* Hero-Buttons umbrechen */
  [data-theme="veg-container"] .hero__actions {
    flex-wrap: wrap;
  }

  /* Nav-Logo auf Mobile kleiner */
  [data-theme="veg-container"] .nav__logo-img {
    max-width: 140px;
  }

  /* EFB-Badge auf Mobile: Text umbrechen */
  [data-theme="veg-container"] .efb-badge {
    font-size: var(--text-xs, 0.75rem);
  }
}

@media (max-width: 480px) {
  [data-theme="veg-container"] .hero--fullbleed .hero__title {
    font-size: var(--text-3xl);
  }

  /* Hero-Buttons volle Breite */
  [data-theme="veg-container"] .hero__actions {
    flex-direction: column;
    width: 100%;
  }

  [data-theme="veg-container"] .hero__actions .btn {
    width: 100%;
    text-align: center;
    justify-content: center;
  }

  /* Waste Pills: kleinerer Text auf sehr kleinen Screens */
  [data-theme="veg-container"] .waste-pill {
    font-size: var(--text-xs, 0.75rem);
    padding: var(--space-2) var(--space-3);
  }
}

/* ══════════════════════════════════════════════════════
   18. Touch Targets — min 44px auf Mobile (WCAG 2.5.8)
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .nav__link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

[data-theme="veg-container"] .footer__link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

[data-theme="veg-container"] .footer__group-links a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

[data-theme="veg-container"] #kontakt a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

/* CTA-Band + Nav Buttons: Touch Target */
[data-theme="veg-container"] .cta-band .btn {
  min-height: 44px;
}

[data-theme="veg-container"] .nav .btn--sm {
  min-height: 44px;
}

/* ── Prose Styles (Legal Pages) ─────────────────────── */

.prose {
  font-size: var(--text-base, 1rem);
  line-height: 1.75;
  color: var(--color-text);
}

.prose h2 {
  font-family: var(--font-heading);
  font-size: var(--text-2xl, 1.5rem);
  font-weight: 700;
  color: var(--color-primary, currentColor);
  margin-top: 2.5rem;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--color-border, rgba(0,0,0,0.08));
}

.prose h2:first-child {
  margin-top: 0;
}

.prose h3 {
  font-family: var(--font-heading);
  font-size: var(--text-xl, 1.25rem);
  font-weight: 600;
  color: var(--color-text);
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}

.prose p {
  margin-bottom: 1rem;
}

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

.prose strong {
  font-weight: 600;
  color: var(--color-text);
}

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

.prose a:hover {
  text-decoration-thickness: 2px;
}

.prose ul, .prose ol {
  margin-bottom: 1rem;
  padding-left: 1.5rem;
}

.prose li {
  margin-bottom: 0.5rem;
}

.prose li::marker {
  color: var(--color-primary);
}


/* ══════════════════════════════════════════════════════
   20. Downloads Grid
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .downloads-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
  margin-bottom: var(--space-12);
}

@media (max-width: 768px) {
  [data-theme="veg-container"] .downloads-grid {
    grid-template-columns: 1fr;
  }
}

[data-theme="veg-container"] .download-card {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg, 12px);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

[data-theme="veg-container"] .download-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  border-color: var(--color-primary);
}

/* Preview Image Button */
[data-theme="veg-container"] .download-card__preview-btn {
  display: block;
  width: 100%;
  padding: 0;
  border: none;
  background: var(--color-bg-alt);
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

[data-theme="veg-container"] .download-card__preview-btn img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  object-position: top;
  transition: transform 0.4s ease;
}

[data-theme="veg-container"] .download-card__preview-btn:hover img {
  transform: scale(1.03);
}

[data-theme="veg-container"] .download-card__zoom {
  position: absolute;
  bottom: var(--space-3);
  right: var(--space-3);
  width: 36px;
  height: 36px;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(4px);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  transition: background 0.2s ease;
}

[data-theme="veg-container"] .download-card__preview-btn:hover .download-card__zoom {
  background: #fff;
}

/* Fallback Icon (no preview) */
[data-theme="veg-container"] .download-card__icon {
  height: 120px;
  background: var(--color-primary-light);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
}

/* Card Body */
[data-theme="veg-container"] .download-card__body {
  padding: var(--space-4) var(--space-5) var(--space-5);
}

[data-theme="veg-container"] .download-card__title {
  font-weight: var(--weight-semibold, 600);
  font-size: var(--text-base, 1rem);
  margin-bottom: var(--space-1);
}

[data-theme="veg-container"] .download-card__desc {
  font-size: var(--text-sm, 0.875rem);
  color: var(--color-text-subtle);
  margin-bottom: var(--space-3);
}

[data-theme="veg-container"] .download-card__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm, 0.875rem);
  color: var(--color-primary);
  font-weight: var(--weight-medium, 500);
  text-decoration: none;
  min-height: 44px;
}

[data-theme="veg-container"] .download-card__link:hover {
  text-decoration: underline;
}

/* ── PDF Lightbox ────────────────────────────── */

.pdf-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-6);
}

.pdf-lightbox[hidden] {
  display: none;
}

.pdf-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
  backdrop-filter: blur(4px);
}

.pdf-lightbox__content {
  position: relative;
  max-width: 700px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
}

.pdf-lightbox__img {
  max-width: 100%;
  max-height: 75vh;
  border-radius: var(--radius-lg, 12px);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
}

.pdf-lightbox__actions {
  display: flex;
  gap: var(--space-3);
}

.pdf-lightbox__close.btn--outline {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.4);
}

.pdf-lightbox__close.btn--outline:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.7);
}

/* ══════════════════════════════════════════════════════
   21. FAQ Accordion
   ══════════════════════════════════════════════════════ */

[data-theme="veg-container"] .faq-section__title {
  font-family: var(--font-heading);
  font-size: var(--text-2xl, 1.5rem);
  font-weight: 700;
  color: var(--color-secondary);
  margin-bottom: var(--space-6);
  text-align: center;
}

[data-theme="veg-container"] .faq-list {
  max-width: 800px;
  margin: 0 auto;
}

[data-theme="veg-container"] .faq-item {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg, 12px);
  margin-bottom: var(--space-3);
  background: #fff;
  overflow: hidden;
}

[data-theme="veg-container"] .faq-item[open] {
  border-color: var(--color-primary);
}

[data-theme="veg-container"] .faq-item__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  font-weight: var(--weight-semibold, 600);
  font-size: var(--text-base, 1rem);
  cursor: pointer;
  list-style: none;
  min-height: 44px;
  color: var(--color-text);
  transition: color 0.2s ease;
}

[data-theme="veg-container"] .faq-item__question::-webkit-details-marker {
  display: none;
}

[data-theme="veg-container"] .faq-item__question:hover {
  color: var(--color-primary);
}

[data-theme="veg-container"] .faq-item__chevron {
  flex-shrink: 0;
  transition: transform 0.3s ease;
  color: var(--color-text-subtle);
}

[data-theme="veg-container"] .faq-item[open] .faq-item__chevron {
  transform: rotate(180deg);
  color: var(--color-primary);
}

[data-theme="veg-container"] .faq-item__answer {
  padding: 0 var(--space-5) var(--space-5);
  font-size: var(--text-sm, 0.875rem);
  color: var(--color-text-subtle);
  line-height: 1.7;
}

[data-theme="veg-container"] .faq-item__answer p {
  margin-bottom: var(--space-2);
}

[data-theme="veg-container"] .faq-item__answer p:last-child {
  margin-bottom: 0;
}

/* ── Legal Pages: Kompaktere Überschrift ────────────── */

/* Seiten ohne Hero (Impressum, Datenschutz) */
body:not(:has(.hero)) .section-header__title {
  font-size: var(--text-3xl);
  text-wrap: balance;
}

/* Prose H2 nicht zu groß, mit Silbentrennung */
.prose h2 {
  text-wrap: balance;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* ══════════════════════════════════════════════════════
   19. Reduced Motion — WCAG 2.3.3
   ══════════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
  [data-animate] {
    transition: none !important;
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .scroll-progress {
    transition: none !important;
  }

  .card,
  .service-card__image img,
  .waste-pill,
  .container-size-card,
  .nav {
    transition: none !important;
  }

  /* Lenis Smooth Scroll deaktivieren */
  html.lenis, html.lenis body {
    scroll-behavior: auto !important;
  }
}
