[x-cloak] { display: none !important; }

/* ==========================================================================
   PRENZEL COACHING - Design System
   Alexandra Prenzel | Supervision, Coaching, Mediation | Hamburg
   ==========================================================================

   Design-Principles:
   - Warm, vertrauensvoll, professionell
   - Ruhe und Kompetenz ausstrahlen
   - Klare Hierarchie, grosszuegiger Weissraum
   - Nicht kuehl/corporate, nicht zu bunt
   - Burgundy = Staerke & Tiefe, Teal = Balance & Klarheit

   Tech: WordPress Custom Theme + Tailwind CSS 4 (CDN) + Alpine.js
   GDPR: Keine Google Fonts - nur System Font Stack
   ========================================================================== */


/* ==========================================================================
   0. TAILWIND CDN FALLBACK - SVG & Layout Sizing
   Defensive Styles die greifen wenn Tailwind CDN nicht/spät lädt.
   Tailwind überschreibt diese sobald es geladen ist.
   ========================================================================== */

/* SVG Fallback-Größen */
svg.w-3 { width: 0.75rem; height: 0.75rem; }
svg.w-4 { width: 1rem; height: 1rem; }
svg.w-5 { width: 1.25rem; height: 1.25rem; }
svg.w-6 { width: 1.5rem; height: 1.5rem; }
svg.w-7 { width: 1.75rem; height: 1.75rem; }
svg.w-8 { width: 2rem; height: 2rem; }
svg.w-10 { width: 2.5rem; height: 2.5rem; }
svg.w-12 { width: 3rem; height: 3rem; }
svg.w-16 { width: 4rem; height: 4rem; }
svg.w-20 { width: 5rem; height: 5rem; }

/* Flex Fallback */
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.items-center { align-items: center; }
.justify-center { justify-content: center; }
.gap-2 { gap: 0.5rem; }
.gap-4 { gap: 1rem; }
.hidden { display: none; }

/* Spacing Fallback */
.mb-4 { margin-bottom: 1rem; }
.mb-6 { margin-bottom: 1.5rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }

/* Text Fallback */
.text-white { color: #ffffff; }
.text-center { text-align: center; }
.text-sm { font-size: 0.875rem; }
.text-lg { font-size: 1.125rem; }
.font-bold { font-weight: 700; }
.font-semibold { font-weight: 600; }

/* Layout Fallback */
.mx-auto { margin-left: auto; margin-right: auto; }
.max-w-4xl { max-width: 56rem; }
.max-w-7xl { max-width: 80rem; }
.w-full { width: 100%; }
.relative { position: relative; }
.absolute { position: absolute; }
.inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
.overflow-hidden { overflow: hidden; }
.rounded-xl { border-radius: 0.75rem; }
.rounded-full { border-radius: 9999px; }

/* Grid Fallback */
.grid { display: grid; }
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }

/* Flex-shrink Fallback */
.flex-shrink-0 { flex-shrink: 0; }

/* Object Fallback */
.object-cover { object-fit: cover; }


/* ==========================================================================
   1. COLOR TOKENS
   ========================================================================== */

:root {

  /* --------------------------------------------------------------------------
     1a. PRIMARY - Burgundy/Weinrot
     Basis: #a21836
     Wirkung: Staerke, Tiefe, Leidenschaft, Professionalitaet
     Einsatz: Headlines, Buttons (primary), Links, Akzente
     -------------------------------------------------------------------------- */
  --color-primary-50:  #fdf2f4;
  --color-primary-100: #fae6ea;
  --color-primary-200: #f4c7d0;
  --color-primary-300: #eba2b0;
  --color-primary-400: #dc6b81;
  --color-primary-500: #c93a56;
  --color-primary-600: #a21836;  /* BASE - die festgelegte Markenfarbe */
  --color-primary-700: #8b142e;
  --color-primary-800: #741228;
  --color-primary-900: #5e0f22;
  --color-primary-950: #3a0714;

  /* --------------------------------------------------------------------------
     1b. SECONDARY - Teal/Petrol
     Basis: #346568
     Wirkung: Balance, Vertrauen, Klarheit, Ruhe
     Einsatz: Sekundäre Elemente, Badges, Subheadlines, Links (hover)
     -------------------------------------------------------------------------- */
  --color-secondary-50:  #f0f7f7;
  --color-secondary-100: #d9ecec;
  --color-secondary-200: #b5d8d9;
  --color-secondary-300: #88bdbf;
  --color-secondary-400: #5d9a9d;
  --color-secondary-500: #437b7e;
  --color-secondary-600: #346568;  /* BASE - die festgelegte Markenfarbe */
  --color-secondary-700: #2d5557;
  --color-secondary-800: #274648;
  --color-secondary-900: #213a3c;
  --color-secondary-950: #142526;

  /* --------------------------------------------------------------------------
     1c. ACCENT - Warmes Gold/Amber
     Basis: #c4883d
     Wirkung: Wärme, Wertschätzung, Einladung, Optimismus
     Einsatz: CTAs, Highlights, Badges, Sterne/Ratings
     -------------------------------------------------------------------------- */
  --color-accent-50:  #fdf8ef;
  --color-accent-100: #faeed6;
  --color-accent-200: #f4d9ab;
  --color-accent-300: #ecbf76;
  --color-accent-400: #e2a04a;
  --color-accent-500: #c4883d;  /* BASE */
  --color-accent-600: #a86d2e;
  --color-accent-700: #8c5528;
  --color-accent-800: #744526;
  --color-accent-900: #613a23;
  --color-accent-950: #371d11;

  /* --------------------------------------------------------------------------
     1d. NEUTRAL - Warme Grautone
     Leichter Rotbraun-Unterton passend zu Burgundy
     Einsatz: Body Text, Borders, Hintergruende, Schatten
     -------------------------------------------------------------------------- */
  --color-neutral-50:  #faf9f7;
  --color-neutral-100: #f3f1ed;
  --color-neutral-200: #e8e4de;
  --color-neutral-300: #d5cfc6;
  --color-neutral-400: #b8b0a4;
  --color-neutral-500: #9a9185;
  --color-neutral-600: #7d756a;
  --color-neutral-700: #665f56;
  --color-neutral-800: #4d4841;
  --color-neutral-900: #3a3632;
  --color-neutral-950: #252220;

  /* --------------------------------------------------------------------------
     1e. BACKGROUND & SURFACE
     Warmes Off-White: nicht steril, sondern einladend
     -------------------------------------------------------------------------- */
  --color-bg-body:      #faf8f5;  /* Warmes Off-White, Haupthintergrund */
  --color-bg-surface:   #ffffff;  /* Cards, Modals, Content-Bereiche */
  --color-bg-muted:     #f3f1ed;  /* Hervorgehobene Sektionen (= neutral-100) */
  --color-bg-subtle:    #e8e4de;  /* Dezente Abgrenzung (= neutral-200) */
  --color-bg-dark:      #3a3632;  /* Dunkle Sektionen, Footer (= neutral-900) */
  --color-bg-primary:   #a21836;  /* CTA-Banner, Burgundy-Sektionen */
  --color-bg-secondary: #346568;  /* Teal-Sektionen, Feature-Highlights */

  /* --------------------------------------------------------------------------
     1f. TEXT COLORS
     -------------------------------------------------------------------------- */
  --color-text-primary:   #3a3632;  /* Haupttext - warm, nicht hartes Schwarz */
  --color-text-secondary: #665f56;  /* Untertitel, Meta-Info */
  --color-text-muted:     #9a9185;  /* Platzhalter, deaktiviert */
  --color-text-inverse:   #faf8f5;  /* Text auf dunklem Hintergrund */
  --color-text-link:      #a21836;  /* Links = Primary */
  --color-text-link-hover:#8b142e;  /* Links hover = Primary-700 */

  /* --------------------------------------------------------------------------
     1g. BORDER COLORS
     -------------------------------------------------------------------------- */
  --color-border-default: #e8e4de;  /* Standard Borders */
  --color-border-strong:  #d5cfc6;  /* Betonte Borders */
  --color-border-focus:   #a21836;  /* Focus-Ring */

  /* --------------------------------------------------------------------------
     1h. FEEDBACK / STATUS COLORS
     Abgestimmt auf den warmen Gesamtton
     -------------------------------------------------------------------------- */
  --color-success-50:  #f0faf4;
  --color-success-100: #d1f0dc;
  --color-success-500: #2d8a54;
  --color-success-600: #247043;
  --color-success-700: #1d5a36;

  --color-warning-50:  #fffbeb;
  --color-warning-100: #fef2c7;
  --color-warning-500: #d29b09;
  --color-warning-600: #a87b07;
  --color-warning-700: #7e5d06;

  --color-error-50:  #fef2f2;
  --color-error-100: #fde6e6;
  --color-error-500: #d93025;
  --color-error-600: #b3261e;
  --color-error-700: #8c1d18;


  /* ========================================================================
     2. TYPOGRAPHY
     ========================================================================
     GDPR-konform: Nur System Fonts, keine externen Requests.
     Primär: Serifenlose für Body (modern, klar)
     Display: Serif für Headlines (Kompetenz, Wärme)
     ======================================================================== */

  /* Font Stacks */
  --font-sans:    "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
  --font-serif:   "Georgia", "Palatino Linotype", "Book Antiqua", Palatino, "Times New Roman", serif;
  --font-mono:    "SF Mono", "Cascadia Code", "Segoe UI Mono", "Roboto Mono", Menlo, Consolas, monospace;

  /* Body = Sans-Serif (klar, modern, gut lesbar) */
  --font-body:    var(--font-sans);

  /* Headlines = Serif (vertrauensvoll, kompetent, warm)
     Georgia ist auf allen Systemen verfuegbar und hat einen warmen Charakter */
  --font-display: var(--font-serif);

  /* Font Sizes - orientiert an Tailwind 4, 8px-Grid-kompatibel */
  --text-xs:   0.75rem;    /* 12px */
  --text-sm:   0.875rem;   /* 14px */
  --text-base: 1rem;       /* 16px */
  --text-lg:   1.125rem;   /* 18px */
  --text-xl:   1.25rem;    /* 20px */
  --text-2xl:  1.5rem;     /* 24px */
  --text-3xl:  1.875rem;   /* 30px */
  --text-4xl:  2.25rem;    /* 36px */
  --text-5xl:  3rem;       /* 48px - Hero Headlines */

  /* Line Heights */
  --leading-none:    1;
  --leading-tight:   1.25;
  --leading-snug:    1.375;
  --leading-normal:  1.5;
  --leading-relaxed: 1.625;
  --leading-loose:   2;

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

  /* Letter Spacing */
  --tracking-tight:  -0.025em;
  --tracking-normal: 0;
  --tracking-wide:   0.025em;
  --tracking-wider:  0.05em;
  --tracking-widest: 0.1em;


  /* ========================================================================
     3. SPACING SYSTEM (8px Grid)
     ======================================================================== */

  --space-0:   0;
  --space-1:   0.25rem;   /*  4px */
  --space-2:   0.5rem;    /*  8px */
  --space-3:   0.75rem;   /* 12px */
  --space-4:   1rem;      /* 16px */
  --space-5:   1.25rem;   /* 20px */
  --space-6:   1.5rem;    /* 24px */
  --space-8:   2rem;      /* 32px */
  --space-10:  2.5rem;    /* 40px */
  --space-12:  3rem;      /* 48px */
  --space-16:  4rem;      /* 64px */
  --space-20:  5rem;      /* 80px */
  --space-24:  6rem;      /* 96px */
  --space-32:  8rem;      /* 128px */

  /* Section Spacing */
  --section-py-mobile:  3rem;     /* 48px */
  --section-py-desktop: 5rem;     /* 80px */
  --section-px-mobile:  1rem;     /* 16px */
  --section-px-desktop: 2rem;     /* 32px */

  /* Container */
  --container-max:     75rem;     /* 1200px */
  --container-narrow:  48rem;     /* 768px - für Textinhalte */
  --container-wide:    90rem;     /* 1440px - Full-width Sektionen */


  /* ========================================================================
     4. COMPONENT DESIGN TOKENS
     ======================================================================== */

  /* Border Radius */
  --radius-none: 0;
  --radius-sm:   0.25rem;   /* 4px - Inputs, kleine Elemente */
  --radius-md:   0.5rem;    /* 8px - Buttons, Badges */
  --radius-lg:   0.75rem;   /* 12px - Cards */
  --radius-xl:   1rem;      /* 16px - Grosse Cards, Modale */
  --radius-2xl:  1.5rem;    /* 24px - Hero-Elemente */
  --radius-full: 9999px;    /* Pills, Avatare */

  /* Shadows - warm getont, nicht blau-grau */
  --shadow-sm:   0 1px 2px 0 rgba(58, 54, 50, 0.05);
  --shadow-md:   0 4px 6px -1px rgba(58, 54, 50, 0.07),
                 0 2px 4px -2px rgba(58, 54, 50, 0.05);
  --shadow-lg:   0 10px 15px -3px rgba(58, 54, 50, 0.08),
                 0 4px 6px -4px rgba(58, 54, 50, 0.04);
  --shadow-xl:   0 20px 25px -5px rgba(58, 54, 50, 0.08),
                 0 8px 10px -6px rgba(58, 54, 50, 0.04);
  --shadow-card: 0 1px 3px rgba(58, 54, 50, 0.06),
                 0 1px 2px rgba(58, 54, 50, 0.04);
  --shadow-card-hover: 0 10px 20px -5px rgba(58, 54, 50, 0.1),
                       0 4px 8px -4px rgba(58, 54, 50, 0.06);

  /* Transitions */
  --transition-fast:   150ms ease;
  --transition-normal: 250ms ease;
  --transition-slow:   350ms ease;

  /* Focus Ring */
  --focus-ring: 0 0 0 3px rgba(162, 24, 54, 0.3);
  --focus-ring-secondary: 0 0 0 3px rgba(52, 101, 104, 0.3);

  /* Z-Index Scale */
  --z-dropdown:  10;
  --z-sticky:    20;
  --z-fixed:     30;
  --z-overlay:   40;
  --z-modal:     50;
  --z-toast:     60;
}


/* ==========================================================================
   5. BASE STYLES
   ========================================================================== */

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

/* Globaler Image-Reset - verhindert Überlauf */
img {
    max-width: 100%;
    height: auto;
}

/* iOS Safari Reset - verhindert native Overrides */
button,
input,
select,
textarea {
    -webkit-appearance: none;
    appearance: none;
    font: inherit;
    color: inherit;
    -webkit-tap-highlight-color: transparent;
}

/* Select Dropdown-Pfeil wiederherstellen */
select:not([multiple]) {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    padding-right: 2.5rem;
}

/* Touch-Optimierung - keine 300ms Tap-Verzögerung */
a, button, [role="button"], label, input, select, textarea {
    touch-action: manipulation;
}

html {
  font-size: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--font-normal);
  line-height: var(--leading-relaxed);
  color: var(--color-text-primary);
  background-color: var(--color-bg-body);
}


/* ==========================================================================
   6. TYPOGRAPHY STYLES
   ========================================================================== */

/* Headlines: Serif, warm, autoritativ */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--font-display);
  font-weight: var(--font-bold);
  line-height: var(--leading-tight);
  color: var(--color-text-primary);
  letter-spacing: var(--tracking-tight);
}

h1, .h1 {
  font-size: clamp(var(--text-3xl), 5vw, var(--text-5xl));
  margin-bottom: var(--space-6);
}

h2, .h2 {
  font-size: clamp(var(--text-2xl), 4vw, var(--text-4xl));
  margin-bottom: var(--space-5);
}

h3, .h3 {
  font-size: clamp(var(--text-xl), 3vw, var(--text-2xl));
  margin-bottom: var(--space-4);
}

h4, .h4 {
  font-size: var(--text-xl);
  margin-bottom: var(--space-3);
}

h5, .h5 {
  font-size: var(--text-lg);
  font-weight: var(--font-semibold);
  margin-bottom: var(--space-2);
}

h6, .h6 {
  font-size: var(--text-base);
  font-weight: var(--font-semibold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-2);
}

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

/* Lead/Intro Text */
.text-lead {
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
  color: var(--color-text-secondary);
}

/* Small/Fine Print */
.text-small {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
}

/* Kicker/Eyebrow - Über Headlines */
.text-kicker {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: var(--font-semibold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-widest);
  color: var(--color-primary-600);
  margin-bottom: var(--space-2);
}

/* Links */
a {
  color: var(--color-text-link);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color var(--transition-fast),
              text-decoration-color var(--transition-fast);
}

a:hover {
  color: var(--color-text-link-hover);
  text-decoration-thickness: 2px;
}

a:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
  border-radius: var(--radius-sm);
}


/* ==========================================================================
   7. BUTTON STYLES
   ========================================================================== */

/* Base Button */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-6);
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--font-semibold);
  line-height: var(--leading-normal);
  text-decoration: none;
  border: 2px solid transparent;
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: all var(--transition-normal);
  white-space: normal;
  text-align: center;
}

.btn:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
}

/* Primary Button - Burgundy, volle Kraft */
.btn-primary {
  background-color: var(--color-primary-600, #a21836);
  color: var(--color-text-inverse, #ffffff);
  border-color: var(--color-primary-600, #a21836);
}

.btn-primary:hover {
  background-color: var(--color-primary-700);
  border-color: var(--color-primary-700);
  color: var(--color-text-inverse);
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}

.btn-primary:active {
  background-color: var(--color-primary-800);
  transform: translateY(0);
}

/* Secondary Button - Teal, ruhig und klar */
.btn-secondary {
  background-color: var(--color-secondary-600);
  color: var(--color-text-inverse);
  border-color: var(--color-secondary-600);
}

.btn-secondary:hover {
  background-color: var(--color-secondary-700);
  border-color: var(--color-secondary-700);
  color: var(--color-text-inverse);
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}

.btn-secondary:active {
  background-color: var(--color-secondary-800);
  transform: translateY(0);
}

/* Ghost Button - Outline, dezent */
.btn-ghost {
  background-color: transparent;
  color: var(--color-primary-600);
  border-color: var(--color-primary-600);
}

.btn-ghost:hover {
  background-color: var(--color-primary-600);
  color: var(--color-text-inverse);
}

/* Ghost Teal Variant */
.btn-ghost-teal {
  background-color: transparent;
  color: var(--color-secondary-600);
  border-color: var(--color-secondary-600);
}

.btn-ghost-teal:hover {
  background-color: var(--color-secondary-600);
  color: var(--color-text-inverse);
}

/* Accent Button - Gold, für besondere CTAs */
.btn-accent {
  background-color: var(--color-accent-500, #8b7a3a);
  color: #ffffff;
  border-color: var(--color-accent-500, #8b7a3a);
}

.btn-accent:hover {
  background-color: var(--color-accent-600);
  border-color: var(--color-accent-600);
  color: #ffffff;
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}

/* Button auf dunklem Hintergrund */
.btn-inverse {
  background-color: #ffffff;
  color: var(--color-primary-600);
  border-color: #ffffff;
}

.btn-inverse:hover {
  background-color: var(--color-primary-50);
  border-color: var(--color-primary-50);
  color: var(--color-primary-700);
}

/* Button Sizes */
.btn-sm {
  padding: var(--space-2) var(--space-4);
  font-size: var(--text-sm);
}

.btn-lg {
  padding: var(--space-4) var(--space-8);
  font-size: var(--text-lg);
}


/* ==========================================================================
   8. CARD STYLES
   ========================================================================== */

/* Base Card */
.card {
  background-color: var(--color-bg-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition: box-shadow var(--transition-normal),
              transform var(--transition-normal);
}

.card:hover {
  box-shadow: var(--shadow-card-hover);
}

.card-body {
  padding: var(--space-6);
}

/* Service Card - Für Supervision, Coaching, Mediation */
.card-service {
  background-color: var(--color-bg-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: var(--space-8);
  text-align: center;
  border-top: 4px solid transparent;
  transition: all var(--transition-normal);
}

@media (hover: hover) {
  .card-service:hover {
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-4px);
  }
}

/* Service Card Varianten - Jeder Service bekommt seine Farbe */
.card-service--supervision {
  border-top-color: var(--color-primary-600);
}

.card-service--coaching {
  border-top-color: var(--color-secondary-600);
}

.card-service--mediation {
  border-top-color: var(--color-accent-500);
}

.card-service__icon {
  width: 4rem;
  height: 4rem;
  margin: 0 auto var(--space-4);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  font-size: var(--text-2xl);
}

.card-service--supervision .card-service__icon {
  background-color: var(--color-primary-50);
  color: var(--color-primary-600);
}

.card-service--coaching .card-service__icon {
  background-color: var(--color-secondary-50);
  color: var(--color-secondary-600);
}

.card-service--mediation .card-service__icon {
  background-color: var(--color-accent-50);
  color: var(--color-accent-500);
}

.card-service__title {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--font-bold);
  margin-bottom: var(--space-3);
}

.card-service__text {
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

/* Testimonial Card */
.card-testimonial {
  background-color: var(--color-bg-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: var(--space-8);
  position: relative;
}

.card-testimonial::before {
  content: "\201E";  /* Anfuehrungszeichen unten */
  font-family: var(--font-display);
  font-size: 4rem;
  line-height: 1;
  color: var(--color-primary-200);
  position: absolute;
  top: var(--space-4);
  left: var(--space-6);
}

.card-testimonial__text {
  font-style: italic;
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
  color: var(--color-text-secondary);
  padding-top: var(--space-6);
}

.card-testimonial__author {
  margin-top: var(--space-4);
  font-weight: var(--font-semibold);
  color: var(--color-text-primary);
}

.card-testimonial__role {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

/* FAQ Card / Accordion */
.card-faq {
  background-color: var(--color-bg-surface);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border-default);
  overflow: hidden;
  margin-bottom: var(--space-3);
}

.card-faq__question {
  -webkit-appearance: none;
  appearance: none;
  background: none;
  border: none;
  width: 100%;
  text-align: left;
  color: inherit;
  -webkit-tap-highlight-color: transparent;
  padding: var(--space-5) var(--space-6);
  font-family: var(--font-display);
  font-weight: var(--font-semibold);
  font-size: var(--text-lg);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: background-color var(--transition-fast);
}

.card-faq__question:hover {
  background-color: var(--color-bg-muted);
}

.card-faq__answer {
  padding: 0 var(--space-6) var(--space-5);
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}


/* ==========================================================================
   9. CTA / BANNER
   ========================================================================== */

/* CTA Banner - Burgundy */
.cta-banner {
  background-color: var(--color-bg-primary);
  color: var(--color-text-inverse);
  padding: var(--section-py-mobile) var(--section-px-mobile);
  text-align: center;
  border-radius: var(--radius-xl);
}

@media (min-width: 768px) {
  .cta-banner {
    padding: var(--section-py-desktop) var(--section-px-desktop);
  }
}

.cta-banner h2,
.cta-banner .h2 {
  color: var(--color-text-inverse);
}

.cta-banner p {
  color: rgba(250, 248, 245, 0.85);
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
}

/* CTA Banner - Teal Variant */
.cta-banner--teal {
  background-color: var(--color-bg-secondary);
}

/* CTA Banner - Subtle (heller Hintergrund) */
.cta-banner--subtle {
  background-color: var(--color-bg-muted);
  color: var(--color-text-primary);
}

.cta-banner--subtle h2,
.cta-banner--subtle .h2 {
  color: var(--color-text-primary);
}

.cta-banner--subtle p {
  color: var(--color-text-secondary);
}


/* ==========================================================================
   10. SECTION STYLES
   ========================================================================== */

.section {
  padding: var(--section-py-mobile) var(--section-px-mobile);
}

@media (min-width: 768px) {
  .section {
    padding: var(--section-py-desktop) var(--section-px-desktop);
  }
}

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

.section--dark {
  background-color: var(--color-bg-dark);
  color: var(--color-text-inverse);
}

.section--dark h2,
.section--dark h3 {
  color: var(--color-text-inverse);
}

.section--dark p {
  color: rgba(250, 248, 245, 0.8);
}

/* Container */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--section-px-mobile);
  padding-right: var(--section-px-mobile);
}

@media (min-width: 768px) {
  .container {
    padding-left: var(--section-px-desktop);
    padding-right: var(--section-px-desktop);
  }
}

.container--narrow {
  max-width: var(--container-narrow);
}

.container--wide {
  max-width: var(--container-wide);
}


/* ==========================================================================
   11. LAYOUT UTILITIES (Tailwind-Ergaenzungen)
   ========================================================================== */

/* Section Header Pattern - zentrierte Ueberschrift mit Kicker */
.section-header {
  text-align: center;
  max-width: var(--container-narrow);
  margin-left: auto;
  margin-right: auto;
  margin-bottom: var(--space-12);
}

/* Decorative Divider - feiner Strich mit Punkt */
.divider {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin: var(--space-8) 0;
}

.divider::before,
.divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background-color: var(--color-border-default);
}

.divider::before {
  background: linear-gradient(to right, transparent, var(--color-border-default));
}

.divider::after {
  background: linear-gradient(to left, transparent, var(--color-border-default));
}

.divider__dot {
  width: 8px;
  height: 8px;
  background-color: var(--color-primary-600);
  border-radius: var(--radius-full);
  flex-shrink: 0;
}


/* ==========================================================================
   12. NAVIGATION
   ========================================================================== */

.nav-link {
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--font-medium);
  color: var(--color-text-primary);
  text-decoration: none;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  transition: color var(--transition-fast),
              background-color var(--transition-fast);
}

.nav-link:hover {
  color: var(--color-primary-600);
  text-decoration: none;
}

.nav-link--active {
  color: var(--color-primary-600);
  font-weight: var(--font-semibold);
}


/* ==========================================================================
   13. FORM ELEMENTS
   ========================================================================== */

.form-input,
.form-textarea,
.form-select {
  width: 100%;
  padding: var(--space-3) var(--space-4);
  font-family: var(--font-body);
  font-size: max(var(--text-base), 16px);
  line-height: var(--leading-normal);
  color: var(--color-text-primary);
  background-color: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-sm);
  transition: border-color var(--transition-fast),
              box-shadow var(--transition-fast);
}

.form-input:hover,
.form-textarea:hover,
.form-select:hover {
  border-color: var(--color-border-strong);
}

.form-input:focus,
.form-textarea:focus,
.form-select:focus {
  outline: none;
  border-color: var(--color-primary-600);
  box-shadow: var(--focus-ring);
}

.form-input::placeholder,
.form-textarea::placeholder {
  color: var(--color-text-muted);
}

.form-label {
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--font-semibold);
  color: var(--color-text-primary);
  margin-bottom: var(--space-2);
}

.form-textarea {
  min-height: 8rem;
  resize: vertical;
}

.form-error {
  font-size: var(--text-sm);
  color: var(--color-error-600);
  margin-top: var(--space-1);
}


/* ==========================================================================
   14. BADGE / TAG
   ========================================================================== */

.badge {
  display: inline-flex;
  align-items: center;
  padding: var(--space-1) var(--space-3);
  font-size: var(--text-xs);
  font-weight: var(--font-semibold);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  border-radius: var(--radius-full);
}

.badge--primary {
  background-color: var(--color-primary-50);
  color: var(--color-primary-700);
}

.badge--secondary {
  background-color: var(--color-secondary-50);
  color: var(--color-secondary-700);
}

.badge--accent {
  background-color: var(--color-accent-50);
  color: var(--color-accent-700);
}


/* ==========================================================================
   15. FOOTER
   ========================================================================== */

.footer {
  background-color: var(--color-bg-dark);
  color: rgba(250, 248, 245, 0.7);
  padding: var(--space-16) var(--section-px-mobile) var(--space-8);
}

@media (min-width: 768px) {
  .footer {
    padding-left: var(--section-px-desktop);
    padding-right: var(--section-px-desktop);
  }
}

.footer a {
  color: rgba(250, 248, 245, 0.7);
  text-decoration: none;
}

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

.footer h3,
.footer h4 {
  color: var(--color-text-inverse);
  font-size: var(--text-base);
  font-family: var(--font-body);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  margin-bottom: var(--space-4);
}


/* ==========================================================================
   16. ACCESSIBILITY
   ========================================================================== */

/* Skip to content */
.skip-link {
  position: absolute;
  top: -100%;
  left: var(--space-4);
  background-color: var(--color-primary-600);
  color: var(--color-text-inverse);
  padding: var(--space-3) var(--space-6);
  border-radius: 0 0 var(--radius-md) var(--radius-md);
  z-index: var(--z-toast);
  text-decoration: none;
  font-weight: var(--font-semibold);
}

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

/* 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;
  }
}

/* Focus Visible - nur bei Tastatur-Navigation sichtbar */
:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}

:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
  border-radius: var(--radius-sm);
}


/* ==========================================================================
   17. PRINT STYLES
   ========================================================================== */

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

  .btn,
  .skip-link,
  nav,
  .footer {
    display: none !important;
  }

  a {
    color: #000;
    text-decoration: underline;
  }

  h1, h2, h3 {
    page-break-after: avoid;
  }

  .card,
  .card-service {
    box-shadow: none;
    border: 1px solid #ccc;
  }
}


/* ==========================================================================
   18. WORDPRESS CORE COMPATIBILITY
   ========================================================================== */

/* Alpine.js x-cloak: Elemente verstecken bis Alpine initialisiert ist */
[x-cloak] {
  display: none !important;
}

/* WordPress Alignment-Klassen */
.alignleft {
  float: left;
  margin-right: 1.5rem;
  margin-bottom: 1rem;
}

.alignright {
  float: right;
  margin-left: 1.5rem;
  margin-bottom: 1rem;
}

.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1rem;
}

.alignwide {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

.alignfull {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

/* WordPress Caption */
.wp-caption {
  max-width: 100%;
  margin-bottom: 1rem;
}

.wp-caption-text {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin-top: var(--space-2);
  text-align: center;
}

/* WordPress Gallery */
.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--space-4);
  margin-bottom: var(--space-6);
}

.gallery-item {
  overflow: hidden;
  border-radius: var(--radius-md);
}

.gallery-item img {
  width: 100%;
  height: auto;
  display: block;
}

/* WordPress Pagination */
.nav-links {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  justify-content: center;
}

.nav-links .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 var(--space-3);
  font-size: var(--text-sm);
  font-weight: var(--font-medium);
  color: var(--color-text-primary);
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  transition: all var(--transition-fast);
}

.nav-links .page-numbers:hover {
  color: var(--color-primary-600);
  border-color: var(--color-primary-600);
  text-decoration: none;
}

.nav-links .page-numbers.current {
  color: var(--color-text-inverse);
  background: var(--color-primary-600);
  border-color: var(--color-primary-600);
}

.nav-links .prev,
.nav-links .next {
  padding: 0;
}

/* Screen Reader Text (WordPress Accessibility) */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background-color: var(--color-bg-surface);
  border-radius: var(--radius-sm);
  box-shadow: var(--focus-ring);
  clip: auto !important;
  clip-path: none;
  color: var(--color-primary-600);
  display: block;
  font-size: var(--text-sm);
  font-weight: var(--font-bold);
  height: auto;
  left: 5px;
  line-height: var(--leading-normal);
  padding: var(--space-4) var(--space-6);
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}


/* ==========================================================================
   19. SCROLL ANIMATIONS
   ==========================================================================
   Getriggert via Alpine.js x-intersect Plugin oder IntersectionObserver.
   Elemente starten unsichtbar und animieren rein wenn sichtbar.

   Usage (Alpine.js):
   <div class="fade-in-up" x-data x-intersect.once="$el.classList.add('is-visible')">

   Usage (Vanilla JS fallback):
   document.querySelectorAll('.fade-in-up').forEach(el => {
     new IntersectionObserver(([e]) => {
       if (e.isIntersecting) { el.classList.add('is-visible'); }
     }, { threshold: 0.1 }).observe(el);
   });
   ========================================================================== */

.fade-in-up {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-in-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.fade-in-left {
  opacity: 0;
  transform: translateX(-20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-in-left.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.fade-in-right {
  opacity: 0;
  transform: translateX(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.fade-in-right.is-visible {
  opacity: 1;
  transform: translateX(0);
}

.fade-in {
  opacity: 0;
  transition: opacity 0.6s ease;
}

.fade-in.is-visible {
  opacity: 1;
}

/* Staggered delays for sequential reveals */
.fade-delay-1 { transition-delay: 0.1s; }
.fade-delay-2 { transition-delay: 0.2s; }
.fade-delay-3 { transition-delay: 0.3s; }
.fade-delay-4 { transition-delay: 0.4s; }


/* ==========================================================================
   20. HERO SECTION
   ========================================================================== */

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

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

/* Gradient Overlay: Mobile = komplett, Desktop = links nach rechts */
.hero__overlay {
  position: absolute;
  inset: 0;
  background: rgba(94, 15, 34, 0.7); /* burgundy-900 */
  z-index: 1;
}

@media (min-width: 768px) {
  .hero__overlay {
    background: linear-gradient(
      to right,
      rgba(94, 15, 34, 0.8) 0%,
      rgba(94, 15, 34, 0.6) 40%,
      rgba(94, 15, 34, 0.2) 70%,
      transparent 100%
    );
  }
}

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


/* ==========================================================================
   21. CTA BUTTON ENHANCEMENTS
   ==========================================================================
   Ergaenzt die bestehenden .btn Styles aus Section 7 um:
   - Accent/Gold Glow-Effekt
   - Verbesserte focus-visible Rings
   ========================================================================== */

/* Accent Button - Gold Glow on Hover */
.btn-accent:hover {
  box-shadow: 0 0 20px rgba(196, 136, 61, 0.4),
              var(--shadow-md);
}

/* Focus-visible Rings für alle Button-Varianten */
.btn-secondary:focus-visible {
  box-shadow: var(--focus-ring-secondary);
}

.btn-accent:focus-visible {
  box-shadow: 0 0 0 3px rgba(196, 136, 61, 0.3);
}

.btn-ghost:focus-visible {
  box-shadow: var(--focus-ring);
}

.btn-ghost-teal:focus-visible {
  box-shadow: var(--focus-ring-secondary);
}

.btn-inverse:focus-visible {
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.4);
}


/* ==========================================================================
   22. FAQ ACCORDION TRANSITIONS
   ==========================================================================
   Nutzt Alpine.js x-collapse Plugin für smooth Height-Animation.
   Chevron rotiert bei open/close.

   Usage:
   <div class="card-faq" x-data="{ open: false }">
     <button class="card-faq__question" @click="open = !open">
       <span>Frage?</span>
       <span class="faq-chevron" :class="{ 'is-open': open }">&#9660;</span>
     </button>
     <div x-show="open" x-collapse>
       <div class="card-faq__answer">Antwort.</div>
     </div>
   </div>
   ========================================================================== */

.faq-chevron {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  transition: transform var(--transition-normal);
  flex-shrink: 0;
}

.faq-chevron.is-open {
  transform: rotate(180deg);
}

/* Alpine x-collapse übernimmt Height-Animation automatisch.
   Fallback für manuelles Toggle ohne Plugin: */
.card-faq__body {
  overflow: hidden;
  transition: max-height 0.35s ease;
}

.card-faq__body[aria-hidden="true"] {
  max-height: 0;
}

.card-faq__body[aria-hidden="false"] {
  max-height: 500px; /* Grosszuegig, wird nur als Obergrenze gebraucht */
}

/* Aktiver FAQ-State */
.card-faq.is-active {
  border-color: var(--color-primary-200);
}

.card-faq.is-active .card-faq__question {
  background-color: var(--color-primary-50);
  color: var(--color-primary-700);
}


/* ==========================================================================
   23. SERVICE CARD ENHANCEMENTS
   ==========================================================================
   Ergaenzt die bestehenden .card-service Styles aus Section 8 um:
   - Breiterer Top-Border bei Hover
   ========================================================================== */

.card-service {
  border-top-width: 4px;
  border-top-style: solid;
}

@media (hover: hover) {
  .card-service:hover {
    border-top-width: 6px;
  }
}


/* ==========================================================================
   24. BLOG CARD
   ========================================================================== */

.card-blog {
  background-color: var(--color-bg-surface);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition: box-shadow var(--transition-normal),
              transform var(--transition-normal);
}

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

.card-blog__image-wrap {
  overflow: hidden;
  aspect-ratio: 16 / 9;
}

.card-blog__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}

.card-blog:hover .card-blog__image {
  transform: scale(1.05);
}

.card-blog__body {
  padding: var(--space-6);
}

.card-blog__meta {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin-bottom: var(--space-2);
}

.card-blog__title {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--font-bold);
  line-height: var(--leading-snug);
  margin-bottom: var(--space-3);
}

.card-blog__title a {
  color: var(--color-text-primary);
  text-decoration: none;
}

.card-blog__title a:hover {
  color: var(--color-primary-600);
}

.card-blog__excerpt {
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
  margin-bottom: var(--space-4);
}

.card-blog__read-more {
  font-size: var(--text-sm);
  font-weight: var(--font-semibold);
  color: var(--color-primary-600);
  text-decoration: none;
}

.card-blog__read-more:hover {
  color: var(--color-primary-700);
  text-decoration: underline;
}


/* ==========================================================================
   25. NAVIGATION DROPDOWN
   ==========================================================================
   Desktop: Dropdown erscheint mit Fade + Slide.
   Gesteuert via Alpine.js x-show/x-transition oder CSS.

   Usage:
   <li class="nav-item-has-children" x-data="{ open: false }"
       @mouseenter="open = true" @mouseleave="open = false">
     <a class="nav-link">Services</a>
     <ul class="nav-dropdown" x-show="open"
         x-transition:enter="dropdown-enter"
         x-transition:enter-start="dropdown-enter-start"
         x-transition:enter-end="dropdown-enter-end"
         x-transition:leave="dropdown-leave"
         x-transition:leave-start="dropdown-leave-start"
         x-transition:leave-end="dropdown-leave-end">
       ...
     </ul>
   </li>
   ========================================================================== */

.nav-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  background-color: var(--color-bg-surface);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  padding: var(--space-2) 0;
  z-index: var(--z-dropdown);
  list-style: none;
}

/* Alpine x-transition Klassen */
.dropdown-enter {
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.dropdown-enter-start {
  opacity: 0;
  transform: translateY(-8px);
}

.dropdown-enter-end {
  opacity: 1;
  transform: translateY(0);
}

.dropdown-leave {
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.dropdown-leave-start {
  opacity: 1;
  transform: translateY(0);
}

.dropdown-leave-end {
  opacity: 0;
  transform: translateY(-8px);
}

.nav-dropdown__item {
  display: block;
}

.nav-dropdown__link {
  display: block;
  padding: var(--space-2) var(--space-5);
  font-size: var(--text-sm);
  color: var(--color-text-primary);
  text-decoration: none;
  transition: background-color var(--transition-fast),
              color var(--transition-fast);
}

.nav-dropdown__link:hover {
  background-color: var(--color-bg-muted);
  color: var(--color-primary-600);
  text-decoration: none;
}

.nav-dropdown__link--active {
  color: var(--color-primary-600);
  font-weight: var(--font-semibold);
}


/* ==========================================================================
   26. SELF-CHECK TOOL (Phase 3)
   ==========================================================================
   Interaktiver Selbst-Check mit Custom Radio Buttons, Progress Bar
   und farbcodierten Ergebnis-Karten.
   ========================================================================== */

/* Custom Radio Buttons - native verstecken */
.self-check__option input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.self-check__option label {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  min-height: 44px;  /* Touch-Target */
  padding: var(--space-3) var(--space-4);
  background-color: var(--color-bg-surface);
  border: 2px solid var(--color-border-default);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: border-color var(--transition-fast),
              background-color var(--transition-fast);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
}

.self-check__option label:hover {
  border-color: var(--color-border-strong);
  background-color: var(--color-bg-muted);
}

/* Radio-Kreis versteckt - Cards übernehmen die Interaktion */
.self-check__radio {
  display: none;
}

/* Selected State */
.self-check__option input[type="radio"]:checked + label {
  border-color: var(--color-primary-600);
  background-color: var(--color-primary-50);
}

.self-check__option input[type="radio"]:checked + label .self-check__radio {
  border-color: var(--color-primary-600);
  background-color: var(--color-primary-600);
  box-shadow: inset 0 0 0 3px var(--color-bg-surface);
}

/* Focus State */
.self-check__option input[type="radio"]:focus-visible + label {
  box-shadow: var(--focus-ring);
}

/* Progress Bar */
.self-check__progress {
  width: 100%;
  height: 8px;
  background-color: var(--color-bg-subtle);
  border-radius: var(--radius-full);
  overflow: hidden;
  margin-bottom: var(--space-6);
}

.self-check__progress-bar {
  height: 100%;
  background-color: var(--color-primary-600);
  border-radius: var(--radius-full);
  transition: width 0.5s ease;
}

.self-check__progress-text {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin-bottom: var(--space-2);
}

/* Ergebnis-Karten: Farbcodiert */
.self-check__result {
  padding: var(--space-6);
  border-radius: var(--radius-lg);
  border-left: 4px solid transparent;
}

.self-check__result--positive {
  background-color: var(--color-success-50);
  border-left-color: var(--color-success-500);
}

.self-check__result--positive .self-check__result-title {
  color: var(--color-success-700);
}

.self-check__result--neutral {
  background-color: var(--color-warning-50);
  border-left-color: var(--color-warning-500);
}

.self-check__result--neutral .self-check__result-title {
  color: var(--color-warning-700);
}

.self-check__result--negative {
  background-color: var(--color-error-50);
  border-left-color: var(--color-error-500);
}

.self-check__result--negative .self-check__result-title {
  color: var(--color-error-700);
}

.self-check__result-title {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--font-bold);
  margin-bottom: var(--space-3);
}

.self-check__result-text {
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}


/* ==========================================================================
   27. PRINT STYLES (Erweitert)
   ==========================================================================
   Ergaenzt die bestehenden Print-Styles aus Section 17.
   ========================================================================== */

@media print {
  /* Zusaetzliche Elemente verstecken */
  .cta-banner,
  .cta-section,
  .self-check,
  header,
  footer,
  .hero__overlay {
    display: none !important;
  }

  /* Links mit URL anzeigen */
  a[href^="http"]:after {
    content: " (" attr(href) ")";
    font-size: 0.8em;
    color: #555;
  }

  /* Interne Links ohne URL */
  a[href^="#"]:after,
  a[href^="/"]:after {
    content: "";
  }

  /* Hero-Bild nicht drucken, Platz sparen */
  .hero {
    min-height: auto;
    background: none !important;
  }

  .hero__image {
    display: none !important;
  }

  /* Seitenumbrueche vermeiden */
  .card,
  .card-service,
  .card-testimonial,
  .card-blog {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  img {
    max-width: 100% !important;
  }
}


/* ==========================================================================
   28. RESPONSIVE FEINTUNING
   ========================================================================== */

/* Fluid Headlines - ergänzt die clamp() aus Section 6 für Sub-Headlines */
.text-fluid-lg {
  font-size: clamp(var(--text-lg), 2vw + 0.5rem, var(--text-xl));
}

.text-fluid-xl {
  font-size: clamp(var(--text-xl), 2.5vw + 0.5rem, var(--text-2xl));
}

/* Section Spacing: Tighter auf kleinen Screens */
@media (max-width: 639px) {
  .section--compact {
    padding-top: var(--space-8);
    padding-bottom: var(--space-8);
  }

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

/* Image Aspect Ratios */
.aspect-hero {
  aspect-ratio: 21 / 9;
}

.aspect-portrait {
  aspect-ratio: 3 / 4;
}

.aspect-square {
  aspect-ratio: 1 / 1;
}

@media (max-width: 639px) {
  .aspect-hero {
    aspect-ratio: 16 / 9;
  }
}


/* ==========================================================================
   29. WORDPRESS CONTENT STYLES (Erweitert)
   ==========================================================================
   Ergaenzt die bestehenden WP-Styles aus Section 18.
   ========================================================================== */

/* Block Images */
.wp-block-image {
  margin-bottom: var(--space-6);
}

.wp-block-image img {
  border-radius: var(--radius-md);
  height: auto;
  max-width: 100%;
}

.wp-block-image figcaption {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  text-align: center;
  margin-top: var(--space-2);
}

/* Gallery Enhancements */
.gallery-item img {
  transition: transform var(--transition-slow);
}

.gallery-item:hover img {
  transform: scale(1.03);
}

/* Comments */
.comment-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.comment-list .comment {
  padding: var(--space-6);
  border-bottom: 1px solid var(--color-border-default);
}

.comment-list .comment:last-child {
  border-bottom: none;
}

.comment-list .children {
  list-style: none;
  padding-left: var(--space-8);
  margin-top: var(--space-4);
  border-left: 2px solid var(--color-border-default);
}

.comment-author {
  font-weight: var(--font-semibold);
  color: var(--color-text-primary);
}

.comment-meta {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  margin-bottom: var(--space-2);
}

.comment-content {
  color: var(--color-text-secondary);
  line-height: var(--leading-relaxed);
}

.comment-content p:last-child {
  margin-bottom: 0;
}

.comment-reply-link {
  font-size: var(--text-sm);
  font-weight: var(--font-semibold);
  color: var(--color-primary-600);
  text-decoration: none;
  margin-top: var(--space-2);
  display: inline-block;
}

.comment-reply-link:hover {
  color: var(--color-primary-700);
  text-decoration: underline;
}

/* Post Navigation (Einzelbeitrag) */
.post-navigation {
  display: flex;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-6) 0;
  border-top: 1px solid var(--color-border-default);
  margin-top: var(--space-8);
}

.post-navigation a {
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
  text-decoration: none;
}

.post-navigation a:hover {
  color: var(--color-primary-600);
}


/* ===================================
 * SECTION 30: LAYOUT EXCITEMENT
 * Asymmetrische Layouts, Bewegung, Persönlichkeit
 * =================================== */

/* Schräge Sektions-Trenner */
.section--skewed {
    position: relative;
    margin-top: -3rem;
    padding-top: 6rem;
}
.section--skewed::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5rem;
    background: inherit;
    clip-path: polygon(0 60%, 100% 0%, 100% 100%, 0 100%);
}

/* Große Zitat-Blöcke */
.quote-block {
    position: relative;
    padding: 2rem 0 2rem 2rem;
    border-left: 4px solid var(--color-primary-500);
    font-family: var(--font-display);
    font-size: 1.25rem;
    line-height: 1.6;
    color: var(--color-text-secondary);
    font-style: italic;
}
.quote-block::before {
    content: '\00BB';
    position: absolute;
    top: -0.5rem;
    left: -0.5rem;
    font-size: 4rem;
    color: var(--color-primary-200);
    font-style: normal;
    line-height: 1;
}

/* Asymmetrisches 2-Spalten Layout */
.layout-split {
    display: grid;
    gap: 3rem;
    align-items: center;
}
@media (min-width: 768px) {
    .layout-split { grid-template-columns: 1.2fr 0.8fr; }
    .layout-split--reverse { grid-template-columns: 0.8fr 1.2fr; }
}

/* Farbige Akzent-Streifen (volle Breite) */
.accent-stripe {
    position: relative;
}
.accent-stripe::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--color-primary-500), var(--color-accent-500), var(--color-secondary-500));
}

/* Hover-Glow für Service Cards */
@media (hover: hover) {
    .card-service:hover {
        box-shadow: 0 20px 40px -12px rgba(162, 24, 54, 0.15);
    }
}

/* Übergroße Nummern für Steps */
.step-number {
    font-size: 5rem;
    font-weight: 800;
    line-height: 1;
    color: var(--color-primary-100);
    font-family: var(--font-display);
}

/* Text-Highlight (markierter Text) */
.text-highlight {
    background: linear-gradient(transparent 60%, var(--color-accent-200) 60%);
    padding: 0 4px;
}

/* Floating Shapes (dezente Deko-Elemente) */
.deco-circle {
    position: absolute;
    border-radius: 50%;
    opacity: 0.05;
    pointer-events: none;
}

/* Referenzen-Marquee */
.referenzen-scroll {
    display: flex;
    gap: 3rem;
    padding: 1rem 0;
    color: var(--color-text-muted);
    font-size: 0.875rem;
    letter-spacing: 0.05em;
}
.referenzen-scroll span::after {
    content: ' \00B7 ';
}
.referenzen-scroll span:last-child::after {
    content: '';
}

/* Page Content Styling (für Angebotsseiten) */
.page-content p {
    font-size: 1.0625rem;
    line-height: 1.8;
    margin-bottom: 1.5rem;
    color: var(--color-text-secondary);
}
.page-content p:first-of-type {
    font-size: 1.1875rem;
    color: var(--color-text-primary);
}
.page-content h2 {
    font-family: var(--font-display);
    font-size: 1.625rem;
    font-weight: 600;
    color: var(--color-text-primary);
    margin-top: 3rem;
    margin-bottom: 1rem;
    border-left: 4px solid var(--color-primary-500);
    padding-left: 1rem;
}

/* Drop Cap für ersten Absatz */
.page-content > p:first-of-type::first-letter {
    font-family: var(--font-display);
    font-size: 3.5em;
    float: left;
    line-height: 0.8;
    margin-right: 0.1em;
    margin-top: 0.05em;
    color: var(--color-primary-600);
    font-weight: 700;
}

/* Jedes zweite H2 mit Hintergrund */
.page-content > h2:nth-of-type(even) {
    background: var(--color-bg-muted);
    padding: 1rem 1.5rem;
    border-radius: var(--radius-md);
    margin-left: -1.5rem;
    margin-right: -1.5rem;
}

/* Blockquotes elegant */
.page-content > blockquote {
    font-size: 1.25rem;
    line-height: 1.6;
    padding: 2rem 2.5rem;
    margin: 2.5rem -1rem;
    background: linear-gradient(135deg, var(--color-bg-muted), rgba(var(--color-primary-500-rgb, 0, 128, 128), 0.05));
    border-left: 4px solid var(--color-accent-500);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    font-style: italic;
    color: var(--color-text-primary);
}

/* Strong/Bold mit Gold-Highlight */
.page-content p strong {
    background: linear-gradient(180deg, transparent 60%, rgba(var(--color-accent-500-rgb, 198, 163, 80), 0.3) 60%);
    padding: 0 2px;
    font-weight: 600;
}

/* HR als Gradient-Linie */
.page-content > hr {
    border: none;
    height: 2px;
    background: linear-gradient(90deg, var(--color-primary-500), var(--color-accent-500), transparent);
    margin: 3rem 0;
}

/* Bilder mit border-radius und shadow */
.page-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-md);
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    margin: 1.5rem 0;
}

/* Alignwide - aus Container ausbrechen */
.page-content .alignwide {
    margin-left: -4rem;
    margin-right: -4rem;
    max-width: calc(100% + 8rem);
}

/* Responsive */
@media (max-width: 768px) {
    .page-content .alignwide {
        margin-left: -1rem;
        margin-right: -1rem;
        max-width: calc(100% + 2rem);
    }
    .page-content > h2:nth-of-type(even) {
        margin-left: -0.5rem;
        margin-right: -0.5rem;
    }
}

/* Sanfte Reveal-Animation für Sektionen */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered Reveal für page-content Kinder */
.page-content > * {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}
.page-content > *.is-visible {
    opacity: 1;
    transform: translateY(0);
}


/* ==========================================================================
   31. SELF-CHECK VISUAL ENHANCEMENTS
   ==========================================================================
   Card-Style Radio Buttons, Slide-Transitions, emotionalere Ergebnisse.
   ========================================================================== */

/* Self-Check Card-Style Radio Buttons */
.self-check-option {
    display: block;
    padding: 1rem 1.5rem;
    border: 2px solid var(--color-border-default, #e5e7eb);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all 0.2s ease;
    background: white;
}
.self-check-option:hover {
    border-color: var(--color-primary-500);
    background: rgba(162, 24, 54, 0.05);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.self-check-option input[type="radio"] {
    display: none;
}
.self-check-option input[type="radio"]:checked + span,
.self-check-option:has(input[type="radio"]:checked) {
    border-color: var(--color-primary-600);
    background: rgba(162, 24, 54, 0.1);
    font-weight: 600;
}

/* Self-Check Question Slides */
.self-check-slide {
    opacity: 0;
    transform: translateX(30px);
    transition: all 0.4s ease;
    display: none;
}
.self-check-slide.active {
    opacity: 1;
    transform: translateX(0);
    display: block;
}

/* Self-Check Progress Bar (enhanced) */
.self-check-progress {
    height: 4px;
    background: var(--color-bg-muted);
    border-radius: 2px;
    overflow: hidden;
}
.self-check-progress-bar {
    height: 100%;
    background: linear-gradient(90deg, var(--color-primary-500), var(--color-accent-500));
    transition: width 0.4s ease;
    border-radius: 2px;
}

/* Self-Check Result (emotionaler) */
.self-check-result {
    text-align: center;
    padding: 3rem 2rem;
    background: linear-gradient(135deg, var(--color-bg-muted), white);
    border-radius: var(--radius-lg, 1rem);
    border: 2px solid var(--color-primary-500);
}
.self-check-result .score {
    font-size: 4rem;
    font-weight: 700;
    font-family: var(--font-display);
    color: var(--color-primary-600);
    line-height: 1;
    margin-bottom: 1rem;
}

/* Enhanced: Option Label hover mit vollem Card-Effekt */
.self-check__option label {
    border: 2px solid var(--color-border-default);
    border-radius: var(--radius-md);
    transition: all 0.2s ease;
}
.self-check__option label:hover {
    border-color: var(--color-primary-400);
    background-color: rgba(162, 24, 54, 0.03);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(58, 54, 50, 0.08);
}
.self-check__option input[type="radio"]:checked + label {
    border-color: var(--color-primary-600);
    background-color: var(--color-primary-50);
    box-shadow: 0 0 0 1px var(--color-primary-600), 0 2px 8px rgba(162, 24, 54, 0.12);
}

/* Emotionalere Ergebnis-Karten */
.self-check__result {
    padding: var(--space-8) var(--space-6);
    border-radius: var(--radius-xl);
    border-left-width: 6px;
    position: relative;
    overflow: hidden;
}
.self-check__result::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0.03;
    pointer-events: none;
}
.self-check__result--positive::before {
    background: radial-gradient(circle at 80% 20%, var(--color-success-500), transparent 60%);
}
.self-check__result--neutral::before {
    background: radial-gradient(circle at 80% 20%, var(--color-warning-500), transparent 60%);
}
.self-check__result--negative::before {
    background: radial-gradient(circle at 80% 20%, var(--color-error-500), transparent 60%);
}
.self-check__result-title {
    font-family: var(--font-display);
    font-size: var(--text-2xl);
    font-weight: var(--font-bold);
    margin-bottom: var(--space-4);
}


/* ==========================================================================
   32. SERVICE CARD FARBCODIERUNG
   ==========================================================================
   Jede Service-Card bekommt eine eigene Leitfarbe via data-service Attribut.
   ========================================================================== */

/* Supervision für Kita-Leitungen */
.service-card[data-service="supervision-kita"] {
    border-top: 4px solid #2a6b6b;
}
.service-card[data-service="supervision-kita"]:hover {
    box-shadow: 0 8px 25px rgba(42, 107, 107, 0.15);
}

/* Teamsupervision & Teamentwicklung */
.service-card[data-service="supervision-teams"] {
    border-top: 4px solid #6b2a3a;
}
.service-card[data-service="supervision-teams"]:hover {
    box-shadow: 0 8px 25px rgba(107, 42, 58, 0.15);
}

/* Einzelcoaching */
.service-card[data-service="einzelcoaching"] {
    border-top: 4px solid #8b7a3a;
}
.service-card[data-service="einzelcoaching"]:hover {
    box-shadow: 0 8px 25px rgba(139, 122, 58, 0.15);
}

/* Mediation & Konfliktmanagement */
.service-card[data-service="mediation"] {
    border-top: 4px solid #5a7a6b;
}
.service-card[data-service="mediation"]:hover {
    box-shadow: 0 8px 25px rgba(90, 122, 107, 0.15);
}

/* ==========================================================================
   33. INNENSEITEN CONTENT STYLING
   ========================================================================== */

/* 33a: UL mit Gradient-Rauten statt Bullet Points */
.page-content ul {
    list-style: none;
    padding-left: 0;
}
.page-content ul li {
    position: relative;
    padding-left: 1.75rem;
    margin-bottom: 0.75rem;
}
.page-content ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.5rem;
    width: 10px;
    height: 10px;
    background: linear-gradient(135deg, var(--color-primary-500), var(--color-accent-500));
    transform: rotate(45deg);
}

/* 33b: OL mit farbigen Nummern-Kreisen */
.page-content ol {
    list-style: none;
    padding-left: 0;
    counter-reset: ol-counter;
}
.page-content ol li {
    position: relative;
    padding-left: 2.5rem;
    margin-bottom: 0.75rem;
    counter-increment: ol-counter;
}
.page-content ol li::before {
    content: counter(ol-counter);
    position: absolute;
    left: 0;
    top: 0.1rem;
    width: 1.75rem;
    height: 1.75rem;
    background: var(--color-primary-600);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 600;
}

/* 33c: H3 mit Accent-Border links (gold) */
.page-content h3 {
    border-left: 3px solid var(--color-accent-500);
    padding-left: 1rem;
    margin-top: 2.5rem;
}

/* 33d: Highlight-Box für Absätze die mit strong beginnen */
.page-content p:has(> strong:first-child) {
    background: var(--color-bg-muted);
    padding: 1.25rem 1.5rem;
    border-radius: var(--radius-md);
    border-left: 3px solid var(--color-secondary-500);
}

/* 33e: Links mit animiertem Underline */
.page-content a:not(.btn) {
    text-decoration: none;
    background-image: linear-gradient(var(--color-primary-500), var(--color-primary-500));
    background-size: 100% 2px;
    background-position: 0 100%;
    background-repeat: no-repeat;
    transition: background-size 0.3s ease;
    padding-bottom: 2px;
}
.page-content a:not(.btn):hover {
    background-size: 100% 8px;
}

/* 33f: Table-Styling */
.page-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 2rem 0;
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}
.page-content table thead th {
    background: var(--color-primary-600);
    color: white;
    padding: 0.75rem 1rem;
    text-align: left;
    font-weight: 600;
    font-size: 0.875rem;
}
.page-content table tbody td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--color-border-default);
}
.page-content table tbody tr:nth-child(even) {
    background: var(--color-bg-muted);
}
.page-content table tbody tr:hover {
    background: var(--color-primary-50);
}

/* 33g: Auto-Divider nach jedem 3. Absatz */
.page-content > p:nth-of-type(3n)::after {
    content: '';
    display: block;
    width: 60%;
    max-width: 200px;
    height: 2px;
    background: linear-gradient(90deg, var(--color-primary-500), var(--color-accent-500), transparent);
    margin: 2rem auto 0;
}

/* ==========================================================================
   34. CONTACT FORM 7 THEME STYLING
   ========================================================================== */

/* CF7 Eingabefelder */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 textarea,
.wpcf7 select {
    width: 100%;
    padding: 0.75rem 1rem;
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--color-text-primary);
    background: var(--color-bg-surface);
    border: 1px solid var(--color-border-default);
    border-radius: var(--radius-sm);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.wpcf7 input:hover, .wpcf7 textarea:hover, .wpcf7 select:hover {
    border-color: var(--color-border-strong);
}
.wpcf7 input:focus, .wpcf7 textarea:focus, .wpcf7 select:focus {
    outline: none;
    border-color: var(--color-primary-600);
    box-shadow: var(--focus-ring);
}
.wpcf7 textarea { min-height: 8rem; resize: vertical; }
.wpcf7 input::placeholder, .wpcf7 textarea::placeholder { color: var(--color-text-muted); }

/* CF7 Submit Button - Burgundy */
.wpcf7 input[type="submit"],
.wpcf7 .wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.5rem;
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 600;
    color: white;
    background: var(--color-primary-600);
    border: 2px solid var(--color-primary-600);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all 0.25s ease;
}
.wpcf7 input[type="submit"]:hover,
.wpcf7 .wpcf7-submit:hover {
    background: var(--color-primary-700);
    border-color: var(--color-primary-700);
    box-shadow: var(--shadow-md);
    transform: translateY(-1px);
}

/* CF7 Nachrichten */
.wpcf7-response-output {
    padding: 1rem 1.25rem !important;
    border-radius: var(--radius-md) !important;
    font-size: 0.875rem;
    margin-top: 1rem !important;
}
.wpcf7 form.sent .wpcf7-response-output {
    border-color: var(--color-success-500) !important;
    background: var(--color-success-50) !important;
    color: var(--color-success-700) !important;
}
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output {
    border-color: var(--color-error-500) !important;
    background: var(--color-error-50) !important;
    color: var(--color-error-700) !important;
}
.wpcf7-not-valid-tip {
    color: var(--color-error-600);
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

/* CF7 Labels */
.wpcf7 label {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-primary);
    margin-bottom: 0.5rem;
}
.wpcf7 p { margin-bottom: 1.25rem; }

/* ==========================================================================
   35. MICRO-DETAILS & PERSÖNLICHKEIT
   ========================================================================== */

/* 35a: Wellenform-Separator SVG */
.wave-separator {
    position: relative;
    height: 60px;
    overflow: hidden;
}
.wave-separator::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 60px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60'%3E%3Cpath d='M0,30 C360,60 720,0 1080,30 C1260,45 1350,35 1440,30 L1440,60 L0,60 Z' fill='%23f3f1ed'/%3E%3C/svg%3E") no-repeat center;
    background-size: cover;
}
.wave-separator--primary::before {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60'%3E%3Cpath d='M0,30 C360,60 720,0 1080,30 C1260,45 1350,35 1440,30 L1440,60 L0,60 Z' fill='%23a21836'/%3E%3C/svg%3E") no-repeat center;
    background-size: cover;
}
.wave-separator--white::before {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60'%3E%3Cpath d='M0,30 C360,60 720,0 1080,30 C1260,45 1350,35 1440,30 L1440,60 L0,60 Z' fill='%23ffffff'/%3E%3C/svg%3E") no-repeat center;
    background-size: cover;
}

/* 35b: Dekorativer Punkt-Kreis hinter Bildern */
.deco-dots {
    position: relative;
}
.deco-dots::after {
    content: '';
    position: absolute;
    width: 120px;
    height: 120px;
    top: -20px;
    right: -20px;
    background-image: radial-gradient(var(--color-primary-300) 2px, transparent 2px);
    background-size: 12px 12px;
    border-radius: 50%;
    z-index: -1;
    opacity: 0.5;
}

/* 35c: Gradient Text für Headlines */
.text-gradient {
    background: linear-gradient(135deg, var(--color-primary-600), var(--color-secondary-600));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* 35d: Pulsierender CTA Ring */
.btn-pulse {
    position: relative;
}
.btn-pulse::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: inherit;
    border: 2px solid var(--color-accent-500);
    animation: pulse-ring 2s ease-out infinite;
    pointer-events: none;
}
@keyframes pulse-ring {
    0% { opacity: 0.6; transform: scale(1); }
    100% { opacity: 0; transform: scale(1.15); }
}

/* 35e: Card Image Zoom bei Hover */
.card-image-zoom {
    overflow: hidden;
}
.card-image-zoom img {
    transition: transform 0.5s ease;
}
.card-image-zoom:hover img {
    transform: scale(1.08);
}

/* 35f: Dot-Pattern Background */
.bg-dots {
    background-image: radial-gradient(var(--color-neutral-300) 1px, transparent 1px);
    background-size: 20px 20px;
}

/* 35g: Dekorativer Divider */
.divider-deco {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 3rem 0;
}
.divider-deco::before,
.divider-deco::after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--color-border-default), transparent);
}
.divider-deco__icon {
    width: 12px;
    height: 12px;
    background: linear-gradient(135deg, var(--color-primary-500), var(--color-accent-500));
    transform: rotate(45deg);
    flex-shrink: 0;
}

/* ==========================================================================
   36. SELF-CHECK RADIO FIX - TAILWIND OVERRIDE
   ========================================================================== */

.self-check .self-check__option input[type="radio"] {
    position: absolute !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}
.self-check .self-check__option label {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    min-height: 48px !important;
    padding: 0.875rem 1.25rem !important;
    background: var(--color-bg-surface) !important;
    border: 2px solid var(--color-border-default) !important;
    border-radius: var(--radius-md) !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    font-size: 1rem !important;
}
.self-check .self-check__option label:hover {
    border-color: var(--color-primary-400) !important;
    background: rgba(162, 24, 54, 0.03) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 12px rgba(58, 54, 50, 0.1) !important;
}
.self-check .self-check__option input[type="radio"]:checked + label {
    border-color: var(--color-primary-600) !important;
    background: var(--color-primary-50) !important;
    box-shadow: 0 0 0 1px var(--color-primary-600), 0 4px 12px rgba(162, 24, 54, 0.15) !important;
}
/* Radio-Kreis versteckt - Cards übernehmen die Interaktion */
.self-check .self-check__radio {
    display: none !important;
}
.self-check .self-check__option input[type="radio"]:checked + label .self-check__radio {
    display: none !important;
}
