/* ============================================================
   ePA L4Y – Zentrales Design-System
   ============================================================
   EINBINDEN: Design → Customizer → Zusätzliches CSS

   STRUKTUR:
   01. Design Tokens (Variablen)
   02. Globaler Reset & Basis
   03. Typografie
   04. Navigation & Mega-Menü
   05. Badges & Labels
   06. Cards & Grids
   07. Buttons & Links
   08. Notice / Warnboxen
   09. FAQ / Accordion
   10. Hero / Slider (Startseite)
   11. Timeline (horizontal & vertikal)
   12. Pull Quotes
   13. Formulare
   14. Sidebar
   15. Seiten-spezifisch (Wissen, Leistungen, Über Uns, Newsletter)
   16. CTA-Banner
   17. Responsive / Mobile
   ============================================================ */


/* ============================================================
   01. DESIGN TOKENS
   ============================================================ */
:root {
  /* Markenfarbe BLAU — für alle UI-Elemente (Badges, Buttons, Icons, Dots, Timeline etc.) */
  --epal-red:          #0d19a3;   /* Primärblau */
  --epal-red-dark:     #0a1482;   /* Hover / aktiv */
  --epal-red-light:    #eaecfb;   /* Helle Fläche, Icon-Hintergrund */
  --epal-red-border:   #b0b8ee;   /* Rahmen */
  --epal-orange:       #f5a623;   /* Akzent (unverändert) */

  /* Signal ROT — NUR für Links & wichtige Hinweise */
  --epal-signal:       #e03a2e;
  --epal-signal-dark:  #c52e22;
  --epal-signal-light: #fdf0ef;
  --epal-signal-border:#f5ccc9;

  /* Neutrale Farben */
  --epal-bg:           #f8f7f4;
  --epal-white:        #ffffff;
  --epal-border:       #e8e6e0;
  --epal-border-light: #f0eeea;

  /* Text */
  --epal-text-dark:    #1a1a1a;
  --epal-text-mid:     #555555;
  --epal-text-muted:   #888888;
  --epal-text-hint:    #aaaaaa;

  /* Kategorie-Farben */
  --epal-blue-bg:      #eef3fb;
  --epal-blue-text:    #2a5fa5;
  --epal-green-bg:     #eef7f0;
  --epal-green-text:   #2a7a3a;
  --epal-teal-bg:      #e8f5f3;
  --epal-teal-text:    #1a7a6e;

  /* Layout */
  --epal-radius-sm:    6px;
  --epal-radius-md:    8px;
  --epal-radius-lg:    10px;
  --epal-radius-xl:    12px;

  /* Schrift — Aptos (Microsoft 365 Systemschrift) */
  --epal-font:         'Aptos', 'Aptos Display', Calibri, 'Segoe UI', system-ui, sans-serif;
  --epal-font-serif:   Georgia, 'Times New Roman', serif;

  /* Layout */
  --epal-max-width:    1200px;
}


/* ============================================================
   02. GLOBALER RESET & BASIS
   ============================================================ */

/* Title-Case Fix — wichtigster globaler Fix */
body, body p, body li, body h1, body h2, body h3,
body h4, body h5, body h6, body a, body span,
body div, body td, body th, body label, body button {
  text-transform: none !important;
}

/* Schriftart global */
body {
  font-family: var(--epal-font) !important;
  color: var(--epal-text-dark);
  line-height: 1.6;
  background-color: #e8e8e8 !important; /* Außenbereich Boxed-Layout */
}

/* Boxed Layout — zentriert, max. 1200px */
#page,
.site {
  max-width: var(--epal-max-width) !important;
  margin: 0 auto !important;
  background: var(--epal-bg) !important;
  box-shadow: 0 0 40px rgba(0,0,0,0.08);
}

/* Innere Content-Breite */
.site-content,
.content-area,
main {
  background-color: var(--epal-bg) !important;
}

/* Kadence Container auf max-width begrenzen */
.kadence-inner-column-inner,
.wp-block-kadence-column,
.alignwide,
.alignfull {
  max-width: 100% !important;
}

/* Seitenhintergrund — nur außerhalb der Box */
html {
  background-color: #e8e8e8 !important;
}

/* Tabellen Title-Case Fix */
table td,
table td p,
table th,
.wp-block-table td,
.wp-block-table th,
.epal-lst-optionen td,
.epal-lst-optionen th,
.epal-lst-vergleich td,
.epal-lst-vergleich th {
  text-transform: none !important;
}

/* Alle epal-Wrapper: Box-sizing & Reset */
.epal-home *, .epal-about *, .epal-kt *,
.epal-nl *, .epal-lst *, .epal-wissen *,
.epal-faq-wrap * {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* Basis-Wrapper: Schrift & max-width */
.epal-home, .epal-about, .epal-kt,
.epal-nl, .epal-lst, .epal-wissen {
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  max-width: 900px;
  margin: 0 auto;
  padding: 0 24px;
}


/* ============================================================
   03. TYPOGRAFIE
   ============================================================ */

/* Seiten-Überschriften (Serif) */
.epal-home-hero h1,
.epal-about-hero h1,
.epal-kt-hero h1,
.epal-nl-hero h1,
.epal-lst-hero h1,
.epal-wissen-hero h1 {
  font-family: var(--epal-font-serif);
  font-size: 32px;
  font-weight: 700;
  color: var(--epal-text-dark);
  margin-bottom: 12px;
  line-height: 1.2;
  text-transform: none !important;
}

/* Abschnitts-Überschriften */
.epal-about h2,
.epal-kt h2,
.epal-nl h2,
.epal-lst h2,
.epal-wissen h2 {
  font-size: 22px;
  font-weight: 700;
  color: var(--epal-text-dark);
  margin-bottom: 10px;
}

/* Body-Text */
.epal-home p, .epal-about p, .epal-kt p,
.epal-nl p, .epal-lst p, .epal-wissen p {
  font-size: 14px;
  color: var(--epal-text-mid);
  line-height: 1.75;
  text-transform: none !important;
}

/* Section-Label (roter Kategorie-Text oben) */
.epal-section-label,
.epal-wissen-label,
.epal-nl-label,
.epal-lst-label,
.epal-home-story-label,
.epal-about-story-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--epal-red);
  text-transform: uppercase !important;
  letter-spacing: 1px;
  margin-bottom: 8px;
  display: block;
}

/* Untertitel unter Hero */
.epal-about-hero .epal-about-subtitle,
.epal-kt-hero .epal-kt-subtitle,
.epal-nl-hero .epal-nl-subtitle,
.epal-lst-hero .epal-lst-subtitle,
.epal-wissen-hero .subtitle {
  font-size: 15px;
  color: var(--epal-text-muted);
  line-height: 1.65;
  max-width: 580px;
}


/* ============================================================
   04. NAVIGATION & MEGA-MENÜ
   ============================================================ */

/* Kadence eigene Nav ausblenden — Desktop UND Mobile */
.kadence-navigation .nav-menu,
.kadence-navigation ul.menu,
.kadence-navigation ul.nav-menu,
#site-navigation ul,
.primary-menu-container,
/* Kadence Mobile Nav komplett */
.kadence-mobile-trigger-wrap,
.kadence-mobile-trigger,
.kadence-mobile-trigger-bar,
button.menu-toggle,
.mobile-navigation,
#mobile-navigation,
.kadence-mobile-navigation,
.kadence-header-mobile-nav,
#masthead .kadence-mobile-nav,
.site-mobile-header-wrap .kadence-navigation,
#site-mobile-navigation,
.kadence-mobile-header-wrap,
.mobile-header-wrap,
.site-mobile-header {
  display: none !important;
}

/* Kadence Mobile Header Zeile komplett ausblenden */
#mobile-header,
.site-mobile-header-inner-wrap,
div[id*="mobile-header"],
div[class*="mobile-header"] {
  display: none !important;
}

/* Suche zentrieren */
.kadence-top-header-row {
  justify-content: center !important;
}

/* Nav-Wrapper */
#epal-nav {
  display: flex;
  align-items: center;
  position: relative;
  z-index: 9999;
  font-family: var(--epal-font);
  margin-left: auto;
  padding-right: 8px;
}

/* Klickbarkeit */
#epal-nav,
#epal-nav * {
  pointer-events: auto !important;
}
#epal-nav a,
#epal-nav button {
  position: relative;
  z-index: 10000 !important;
  cursor: pointer !important;
}
.site-header-focus-item,
.site-header-item,
.site-header-section {
  pointer-events: auto !important;
}

/* Dropdown über allem */
.epal-mega,
.epal-dropdown {
  z-index: 99999 !important;
  pointer-events: auto !important;
}
.epal-mega a,
.epal-mega-item,
.epal-dropdown a {
  position: relative;
  z-index: 100000 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  display: flex !important;
}

/* Overflow fix für Kadence */
#masthead,
.site-header,
.kadence-header,
.site-header-wrap,
.site-header-inner,
.site-header-row-container,
.site-header-row-container-inner,
.site-main-header-inner-wrap {
  overflow: visible !important;
  z-index: auto !important;
}

/* Fallback: Nav sticky */
body > #epal-nav {
  position: fixed;
  top: 60px;
  right: 0;
  background: var(--epal-white);
  border-bottom: 0.5px solid var(--epal-border);
  padding: 0 20px;
  height: 64px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}

/* Desktop Links */
.epal-nav-links {
  display: flex;
  align-items: center;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.epal-nav-links > li { position: relative; }
.epal-nav-links > li > a,
.epal-nav-links > li > button {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 9px 16px;
  font-size: 14px;
  font-weight: 500;
  font-family: var(--epal-font);
  color: #444;
  text-decoration: none;
  border-radius: var(--epal-radius-md);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  white-space: nowrap;
  border: none;
  background: none;
  line-height: 1;
  text-transform: none !important;
}
.epal-nav-links > li > a:hover,
.epal-nav-links > li > button:hover,
.epal-nav-links > li.active > a,
.epal-nav-links > li.open > button {
  background: var(--epal-red-light);
  color: var(--epal-red);
}
.epal-nav-chevron {
  width: 13px;
  height: 13px;
  transition: transform 0.2s;
  flex-shrink: 0;
}
.epal-nav-links > li.open .epal-nav-chevron {
  transform: rotate(180deg);
}

/* Mega Dropdown */
.epal-mega {
  position: absolute;
  top: calc(100% + 12px);
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  background: var(--epal-white);
  border: 0.5px solid var(--epal-border);
  border-radius: 14px;
  box-shadow: 0 8px 40px rgba(0,0,0,0.12);
  padding: 24px;
  min-width: 520px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.18s, transform 0.18s, visibility 0.18s;
}
.epal-nav-links > li.open .epal-mega {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.epal-mega::before {
  content: '';
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 12px;
  height: 6px;
  background: var(--epal-white);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}
.epal-mega-grid {
  display: grid;
  grid-template-columns: 160px 1fr;
}
.epal-mega-left {
  border-right: 0.5px solid var(--epal-border-light);
  padding-right: 20px;
  margin-right: 20px;
}
.epal-mega-left-title {
  font-size: 10px;
  font-weight: 700;
  color: var(--epal-red);
  text-transform: uppercase !important;
  letter-spacing: 1px;
  margin-bottom: 12px;
  display: block;
  font-family: var(--epal-font);
}
.epal-mega-left-links { list-style: none; padding: 0; margin: 0; }
.epal-mega-left-links li a {
  display: block;
  font-size: 13px;
  font-family: var(--epal-font);
  color: #666;
  text-decoration: none;
  padding: 5px 0;
  transition: color 0.15s;
  text-transform: none !important;
}
.epal-mega-left-links li a:hover { color: var(--epal-red); }
.epal-mega-right { display: flex; flex-direction: column; gap: 4px; }
.epal-mega-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 12px;
  border-radius: var(--epal-radius-md);
  text-decoration: none;
  transition: background 0.15s;
}
.epal-mega-item:hover { background: var(--epal-red-light); }
.epal-mega-icon {
  width: 34px;
  height: 34px;
  background: var(--epal-red-light);
  border-radius: var(--epal-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.15s;
}
.epal-mega-item:hover .epal-mega-icon { background: var(--epal-red-border); }
.epal-mega-text h4 {
  font-size: 13px;
  font-weight: 600;
  color: var(--epal-text-dark);
  margin: 0 0 2px;
  font-family: var(--epal-font);
  text-transform: none !important;
}
.epal-mega-text p {
  font-size: 12px;
  color: var(--epal-text-muted);
  margin: 0;
  line-height: 1.45;
  font-family: var(--epal-font);
  text-transform: none !important;
}

/* Einfaches Dropdown */
.epal-dropdown {
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  background: var(--epal-white);
  border: 0.5px solid var(--epal-border);
  border-radius: var(--epal-radius-lg);
  box-shadow: 0 8px 32px rgba(0,0,0,0.1);
  padding: 8px;
  min-width: 210px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.18s, transform 0.18s, visibility 0.18s;
  transform: translateY(-6px);
}
.epal-nav-links > li.open .epal-dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.epal-dropdown a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  font-size: 14px;
  font-family: var(--epal-font);
  color: #444;
  text-decoration: none;
  border-radius: var(--epal-radius-md);
  transition: background 0.15s, color 0.15s;
  text-transform: none !important;
}
.epal-dropdown a:hover { background: var(--epal-red-light); color: var(--epal-red); }
.epal-dropdown-icon {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--epal-red);
  flex-shrink: 0;
}

/* Hamburger */
.epal-hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 8px;
  border: none;
  background: none;
  margin-left: 8px;
}
.epal-hamburger span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--epal-text-dark);
  border-radius: 2px;
  transition: transform 0.25s, opacity 0.2s;
}
.epal-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.epal-hamburger.open span:nth-child(2) { opacity: 0; }
.epal-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile Menü */
.epal-mobile-menu {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: var(--epal-white);
  z-index: 99999;
  overflow-y: auto;
  padding: 24px 24px 40px;
}
.epal-mobile-menu.open { display: block; }
.epal-mobile-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 0.5px solid var(--epal-border-light);
}
.epal-mobile-close {
  width: 32px; height: 32px;
  border: 0.5px solid var(--epal-border);
  border-radius: var(--epal-radius-md);
  background: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.epal-mobile-item { border-bottom: 0.5px solid #f5f4f1; }
.epal-mobile-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 0;
  font-size: 15px;
  font-weight: 500;
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  text-decoration: none;
  cursor: pointer;
  background: none;
  border: none;
  width: 100%;
  text-align: left;
  text-transform: none !important;
}
.epal-mobile-trigger svg { transition: transform 0.2s; flex-shrink: 0; }
.epal-mobile-item.open .epal-mobile-trigger svg { transform: rotate(180deg); }
.epal-mobile-sub { display: none; padding: 0 0 12px 16px; }
.epal-mobile-item.open .epal-mobile-sub { display: block; }
.epal-mobile-sub a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 0;
  font-size: 14px;
  font-family: var(--epal-font);
  color: var(--epal-text-mid);
  text-decoration: none;
  border-bottom: 0.5px solid #f9f8f6;
  text-transform: none !important;
}
.epal-mobile-sub a:last-child { border-bottom: none; }
.epal-mobile-sub a:hover { color: var(--epal-red); }
.epal-mobile-sub .mob-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--epal-red);
  flex-shrink: 0;
}
.epal-nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9990;
}
.epal-nav-overlay.active { display: block; }


/* ============================================================
   05. BADGES & LABELS
   ============================================================ */

.epal-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  font-family: var(--epal-font);
  text-transform: uppercase !important;
  letter-spacing: 0.6px;
  padding: 2px 9px;
  border-radius: var(--epal-radius-sm);
  white-space: nowrap;
  flex-shrink: 0;
}
.epal-badge-red   { background: var(--epal-red-light); color: var(--epal-red); }
.epal-badge-white { background: var(--epal-red); color: var(--epal-white); }
.epal-badge-blue  { background: var(--epal-blue-bg);  color: var(--epal-blue-text); }
.epal-badge-green { background: var(--epal-green-bg); color: var(--epal-green-text); }
.epal-badge-teal  { background: var(--epal-teal-bg);  color: var(--epal-teal-text); }
.epal-badge-gray  { background: #f0eeea; color: #666; }

/* V-Nummern Badge (Leistungen) */
.epal-v-badge {
  font-size: 11px;
  font-weight: 700;
  font-family: monospace;
  background: var(--epal-red-light);
  color: var(--epal-red);
  border-radius: 5px;
  padding: 3px 9px;
  flex-shrink: 0;
}
.epal-v-badge.mixed { background: #f0eeea; color: #888; }

/* Seiten-Badge (z.B. Patientenstimmen auf Startseite) */
.epal-home-badge {
  display: inline-block;
  background: var(--epal-red);
  color: var(--epal-white);
  font-size: 10px;
  font-weight: 700;
  font-family: var(--epal-font);
  text-transform: uppercase !important;
  letter-spacing: 1.2px;
  padding: 4px 14px;
  border-radius: var(--epal-radius-sm);
  margin-bottom: 24px;
}


/* ============================================================
   06. CARDS & GRIDS
   ============================================================ */

/* Basis-Card */
.epal-card,
.epal-nl-sidebar-card,
.epal-kt-sidebar-card,
.epal-info-card,
.epal-nl-benefit,
.epal-kt-info-card {
  background: var(--epal-white);
  border: 0.5px solid var(--epal-border);
  border-radius: var(--epal-radius-lg);
  padding: 18px;
}

/* Card Icon */
.epal-card-icon,
.epal-nl-benefit-icon,
.epal-kt-info-card-icon,
.epal-nl-sidebar-icon,
.epal-kt-sidebar-icon,
.epal-story-card-icon {
  width: 32px;
  height: 32px;
  background: var(--epal-red-light);
  border-radius: var(--epal-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
  flex-shrink: 0;
}

/* Card Titel */
.epal-card h4,
.epal-nl-sidebar-card h4,
.epal-kt-sidebar-card h4,
.epal-nl-benefit h4,
.epal-kt-info-card h4 {
  font-size: 14px;
  font-weight: 600;
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  margin-bottom: 6px;
  text-transform: none !important;
}

/* Card Text */
.epal-card p,
.epal-nl-sidebar-card p,
.epal-kt-sidebar-card p,
.epal-nl-benefit p,
.epal-kt-info-card p {
  font-size: 13px;
  color: var(--epal-text-muted);
  line-height: 1.6;
  margin: 0;
  font-family: var(--epal-font);
}

/* Card Links */
.epal-card a,
.epal-nl-sidebar-card a,
.epal-kt-sidebar-card a {
  color: var(--epal-red);
  text-decoration: none;
  font-weight: 500;
  font-size: 13px;
}
.epal-card a:hover,
.epal-nl-sidebar-card a:hover,
.epal-kt-sidebar-card a:hover {
  text-decoration: underline;
}

/* Dark Card */
.epal-nl-sidebar-card.dark,
.epal-kt-sidebar-card.dark,
.epal-about-cta {
  background: var(--epal-text-dark);
  border-color: var(--epal-text-dark);
}
.epal-nl-sidebar-card.dark h4,
.epal-kt-sidebar-card.dark h4 { color: var(--epal-white); }
.epal-nl-sidebar-card.dark p,
.epal-kt-sidebar-card.dark p  { color: var(--epal-text-muted); }
.epal-nl-sidebar-card.dark a,
.epal-kt-sidebar-card.dark a {
  display: inline-block;
  margin-top: 12px;
  background: var(--epal-red);
  color: var(--epal-white);
  padding: 8px 16px;
  border-radius: var(--epal-radius-md);
  font-size: 13px;
}
.epal-nl-sidebar-card.dark a:hover,
.epal-kt-sidebar-card.dark a:hover {
  background: var(--epal-red-dark);
  text-decoration: none;
}

/* 2-Spalten Grid */
.epal-cards-2,
.epal-nl-benefits,
.epal-kt-info-cards,
.epal-persons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

/* 3-Spalten Grid */
.epal-cards-3,
.epal-lst-features,
.epal-home-three {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}


/* ============================================================
   07. BUTTONS & LINKS
   ============================================================ */

/* Primär-Button (rot) */
.epal-btn,
.epal-home-cta-btn,
.epal-lst-cta a,
.epal-about-cta a {
  display: inline-block;
  background: var(--epal-red);
  color: var(--epal-white) !important;
  padding: 13px 28px;
  border-radius: var(--epal-radius-md);
  font-size: 14px;
  font-weight: 600;
  font-family: var(--epal-font);
  text-decoration: none;
  white-space: nowrap;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
  text-transform: none !important;
}
.epal-btn:hover,
.epal-home-cta-btn:hover,
.epal-lst-cta a:hover { background: var(--epal-red-dark); }

/* Submit-Buttons (Formulare) */
.epal-nl-submit,
.epal-kt-submit {
  width: 100%;
  padding: 13px;
  background: var(--epal-red);
  color: var(--epal-white);
  border: none;
  border-radius: var(--epal-radius-md);
  font-size: 14px;
  font-weight: 600;
  font-family: var(--epal-font);
  cursor: pointer;
  transition: background 0.2s, opacity 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 4px;
  text-transform: none !important;
}
.epal-nl-submit:hover:not(:disabled),
.epal-kt-submit:hover:not(:disabled) { background: var(--epal-red-dark); }
.epal-nl-submit:disabled,
.epal-kt-submit:disabled { opacity: 0.65; cursor: not-allowed; }

/* Text-Link (Signal ROT — als Absprung erkennbar) */
.epal-home-story-link,
.epal-story-cta,
.epal-faq-body-inner a,
.epal-intern-link,
.epal-copy-btn,
.epal-mega-left-links li a:hover,
.epal-dropdown a:hover,
.epal-mobile-sub a:hover,
.epal-kt-sidebar-card a,
.epal-nl-sidebar-card a,
.epal-nl-dsgvo-text a,
.epal-wissen-filter.active {
  color: var(--epal-signal);
}

/* Interne Anker-Links (Signal ROT) — einfacher Textlink */
.epal-intern-link {
  display: inline;
  color: var(--epal-signal);
  font-weight: 500;
  text-decoration: underline;
  text-decoration-color: rgba(224,58,46,0.3);
  text-underline-offset: 2px;
  font-family: var(--epal-font);
  font-size: inherit;
  line-height: inherit;
  vertical-align: baseline;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: color 0.15s, text-decoration-color 0.15s;
}
.epal-intern-link:hover {
  color: var(--epal-signal-dark);
  text-decoration-color: var(--epal-signal);
}
.epal-copy-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-family: var(--epal-font);
  color: var(--epal-text-hint);
  background: none;
  border: 0.5px solid #eee;
  border-radius: var(--epal-radius-md);
  padding: 4px 10px;
  cursor: pointer;
  transition: all 0.15s;
}
.epal-copy-btn:hover  { color: var(--epal-signal); border-color: var(--epal-signal); }
.epal-copy-btn.copied { color: var(--epal-green-text); border-color: var(--epal-green-text); }
.epal-copy-row {
  display: flex;
  align-items: center;
  margin-top: 16px;
  padding-top: 12px;
  border-top: 0.5px solid #f5f4f1;
}


/* ============================================================
   08. NOTICE / WARNBOXEN
   ============================================================ */

/* Notice — Signal ROT (wichtige Hinweise) */
.epal-notice,
.epal-lst-notice,
.epal-kt-notice {
  background: var(--epal-signal-light);
  border: 0.5px solid var(--epal-signal-border);
  border-left: 3px solid var(--epal-signal);
  border-radius: var(--epal-radius-md);
  padding: 16px 20px;
  margin: 20px 0;
}
.epal-notice-label,
.epal-lst-notice-label,
.epal-kt-notice-label {
  font-size: 11px;
  font-weight: 700;
  font-family: var(--epal-font);
  color: var(--epal-signal);
  text-transform: uppercase !important;
  letter-spacing: 0.8px;
  margin-bottom: 8px;
  display: block;
}
.epal-notice p,
.epal-lst-notice p,
.epal-kt-notice p {
  font-size: 14px;
  color: var(--epal-text-mid);
  line-height: 1.65;
  margin: 0;
  font-family: var(--epal-font);
}

/* Info-Variante (blau) */
.epal-notice-blue {
  background: var(--epal-blue-bg);
  border-color: #c5d8f5;
  border-left-color: var(--epal-blue-text);
}
.epal-notice-blue .epal-notice-label { color: var(--epal-blue-text); }

/* Feedback Boxen (Formulare) */
.epal-nl-feedback,
.epal-kt-feedback {
  border-radius: var(--epal-radius-md);
  padding: 16px 20px;
  margin-bottom: 20px;
  display: none;
}
.epal-nl-feedback.success,
.epal-kt-feedback.success {
  background: var(--epal-green-bg);
  border: 0.5px solid #a8d5b5;
  border-left: 3px solid var(--epal-green-text);
}
.epal-nl-feedback.error,
.epal-kt-feedback.error {
  background: var(--epal-signal-light);
  border: 0.5px solid var(--epal-signal-border);
  border-left: 3px solid var(--epal-signal);
}
.epal-nl-feedback-title,
.epal-kt-feedback-title {
  font-size: 14px;
  font-weight: 600;
  font-family: var(--epal-font);
  margin-bottom: 4px;
}
.epal-nl-feedback.success .epal-nl-feedback-title,
.epal-kt-feedback.success .epal-kt-feedback-title { color: var(--epal-green-text); }
.epal-nl-feedback.error   .epal-nl-feedback-title,
.epal-kt-feedback.error   .epal-kt-feedback-title { color: var(--epal-signal); }


/* ============================================================
   09. FAQ / ACCORDION
   ============================================================ */

.epal-faq-item {
  background: var(--epal-white);
  border: 0.5px solid var(--epal-border);
  border-radius: var(--epal-radius-lg);
  margin-bottom: 6px;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
  scroll-margin-top: 80px;
}
.epal-faq-item.open {
  border-color: var(--epal-red);
  box-shadow: 0 2px 16px rgba(224,58,46,0.08);
}
.epal-faq-item[hidden] { display: none; }

.epal-faq-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  cursor: pointer;
  user-select: none;
  gap: 12px;
}
.epal-faq-trigger-left {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
}
.epal-faq-title {
  font-size: 15px;
  font-weight: 600;
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  text-transform: none !important;
}
.epal-anchor-hint,
.epal-faq-anchor-hint {
  font-size: 11px;
  color: #ddd;
  font-family: monospace;
  white-space: nowrap;
  flex-shrink: 0;
}
.epal-chevron {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #f5f4f1;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform 0.25s, background 0.2s;
}
.epal-faq-item.open .epal-chevron {
  transform: rotate(180deg);
  background: var(--epal-red-light);
}
.epal-faq-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
.epal-faq-item.open .epal-faq-body { max-height: 800px; }
.epal-faq-body-inner {
  padding: 16px 20px 20px;
  border-top: 0.5px solid var(--epal-border-light);
}
.epal-faq-body-inner p {
  font-size: 14px;
  font-family: var(--epal-font);
  color: var(--epal-text-mid);
  line-height: 1.75;
  margin-bottom: 10px;
  text-transform: none !important;
}
.epal-faq-body-inner p:last-of-type { margin-bottom: 0; }
.epal-faq-body-inner strong { color: var(--epal-text-dark); }
.epal-faq-body-inner a {
  color: var(--epal-signal);
  text-decoration: none;
  font-weight: 500;
}
.epal-faq-body-inner a:hover { text-decoration: underline; }

/* Geplante Items (Leistungen V4-V6) */
.epal-faq-item.planned {
  background: #fafaf9;
  border-style: dashed;
}
.epal-faq-item.planned .epal-faq-title { color: var(--epal-text-hint); }
.epal-faq-item.planned .epal-badge-planned {
  font-size: 10px;
  font-weight: 600;
  font-family: var(--epal-font);
  color: #bbb;
  background: #f0eeea;
  border-radius: var(--epal-radius-sm);
  padding: 2px 8px;
  flex-shrink: 0;
}

/* Filter Pills (Wissen) */
.epal-wissen-filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}
.epal-wissen-filter {
  padding: 5px 14px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 500;
  font-family: var(--epal-font);
  border: 0.5px solid var(--epal-border);
  background: var(--epal-white);
  color: #666;
  cursor: pointer;
  transition: all 0.15s;
}
.epal-wissen-filter:hover { border-color: var(--epal-red); color: var(--epal-red); }
.epal-wissen-filter.active { background: var(--epal-red); color: var(--epal-white); border-color: var(--epal-red); }

/* Abschnitts-Trennlinie */
.epal-wissen-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 24px 0 14px;
}
.epal-wissen-divider-line { flex: 1; height: 0.5px; background: var(--epal-border); }
.epal-wissen-divider-label {
  font-size: 11px;
  color: var(--epal-text-hint);
  font-weight: 600;
  font-family: var(--epal-font);
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Keine Ergebnisse */
.epal-no-results {
  text-align: center;
  padding: 40px 20px;
  color: var(--epal-text-hint);
  font-size: 14px;
  font-family: var(--epal-font);
  display: none;
}

/* Interne Anker-Links — einfacher Textlink */
.epal-intern-link {
  display: inline;
  color: var(--epal-signal);
  font-weight: 500;
  text-decoration: underline;
  text-decoration-color: rgba(224,58,46,0.3);
  text-underline-offset: 2px;
  font-family: var(--epal-font);
  font-size: inherit;
  line-height: inherit;
  vertical-align: baseline;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: color 0.15s, text-decoration-color 0.15s;
}
.epal-intern-link:hover {
  color: var(--epal-signal-dark);
  text-decoration-color: var(--epal-signal);
}


/* ============================================================
   10. HERO / SLIDER (Startseite)
   ============================================================ */

.epal-home-hero {
  background: var(--epal-white);
  text-align: center;
  border-bottom: none;
  position: relative;
  overflow: hidden;
}
.epal-home-hero::before {
  content: "\201C";
  font-family: var(--epal-font-serif);
  font-size: 200px;
  color: var(--epal-red);
  opacity: 0.05;
  position: absolute;
  top: -20px;
  left: 20px;
  line-height: 1;
  pointer-events: none;
  z-index: 0;
}

/* Slides */
.epal-qs-slide {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 56px 48px;
  text-align: center;
}
.epal-qs-slide.epal-qs-active { display: flex; }

/* Zitat-Text */
.epal-home-quote {
  font-family: var(--epal-font-serif);
  font-size: 22px;
  font-style: italic;
  line-height: 1.65;
  color: var(--epal-text-dark);
  max-width: 620px;
  margin: 0 auto;
}
.epal-home-quote em {
  font-style: normal;
  color: var(--epal-red);
  font-weight: 700;
}

/* Trennlinie */
.epal-home-divider {
  width: 40px;
  height: 2px;
  background: var(--epal-red);
  margin: 0 auto 22px;
  border-radius: 2px;
}

/* Lade-Animation */
.epal-home-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 13px;
  font-family: var(--epal-font);
  color: var(--epal-text-hint);
}
.epal-home-load-dots { display: flex; gap: 5px; }
.epal-home-load-dots span {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--epal-red);
  animation: epalLoadDot 1.4s ease-in-out infinite;
}
.epal-home-load-dots span:nth-child(2) { animation-delay: 0.2s; }
.epal-home-load-dots span:nth-child(3) { animation-delay: 0.4s; }
@keyframes epalLoadDot {
  0%,80%,100% { opacity:.2; transform:scale(1); }
  40%         { opacity:1;  transform:scale(1.25); }
}

/* Slider Dots */
.epal-qs-dots {
  display: flex;
  gap: 7px;
  align-items: center;
  justify-content: center;
  padding: 12px 0 20px;
  background: var(--epal-white);
}
.epal-qs-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--epal-red);
  opacity: 0.2;
  cursor: pointer;
  border: none;
  padding: 0;
  transition: opacity 0.3s, transform 0.3s;
}
.epal-qs-dot.epal-qs-dot-active { opacity: 0.75; transform: scale(1.3); }

/* Fortschrittsbalken */
.epal-qs-progress {
  position: absolute;
  bottom: 0; left: 0;
  height: 2px;
  background: var(--epal-red);
  opacity: 0.3;
  width: 0%;
  border-radius: 0 2px 2px 0;
}

/* 3 Kernaussagen */
.epal-home-three {
  background: var(--epal-white);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-bottom: 0.5px solid var(--epal-border-light);
}
.epal-home-three-item {
  padding: 32px 26px;
  border-right: 0.5px solid var(--epal-border-light);
}
.epal-home-three-item:last-child { border-right: none; }
.epal-home-three-icon {
  width: 36px; height: 36px;
  background: var(--epal-red-light);
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
}
.epal-home-three-item h3 {
  font-size: 15px;
  font-weight: 700;
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  margin-bottom: 6px;
  text-transform: none !important;
}
.epal-home-three-item p {
  font-size: 13px;
  font-family: var(--epal-font);
  color: var(--epal-text-muted);
  line-height: 1.65;
  margin: 0;
}

/* Story-Sektion */
.epal-home-story {
  background: var(--epal-bg);
  padding: 52px 48px;
  border-bottom: 0.5px solid var(--epal-border-light);
}
.epal-home-story-link {
  font-size: 14px;
  font-weight: 600;
  font-family: var(--epal-font);
  color: var(--epal-red);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: gap 0.2s;
}
.epal-home-story-link:hover { gap: 8px; }


/* ============================================================
   11. TIMELINE (horizontal & vertikal)
   ============================================================ */

/* Horizontal (Leistungen) */
.epal-timeline { margin-bottom: 32px; overflow-x: auto; padding-bottom: 8px; }
.epal-timeline-track {
  display: flex;
  align-items: flex-start;
  position: relative;
  min-width: 560px;
}
.epal-timeline-step {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}
.epal-timeline-step::before {
  content: '';
  position: absolute;
  top: 20px;
  left: 50%;
  right: -50%;
  height: 1px;
  background: var(--epal-border);
  z-index: 0;
}
.epal-timeline-step:last-child::before { display: none; }
.epal-timeline-step.done::before { background: var(--epal-red); }
.epal-timeline-dot {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--epal-white);
  border: 1.5px solid var(--epal-border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  font-family: var(--epal-font);
  color: #bbb;
  position: relative;
  z-index: 1;
  flex-shrink: 0;
}
.epal-timeline-step.active .epal-timeline-dot {
  background: var(--epal-red);
  border-color: var(--epal-red);
  color: var(--epal-white);
  box-shadow: 0 0 0 4px rgba(224,58,46,0.12);
}
.epal-timeline-step.done .epal-timeline-dot {
  background: var(--epal-red-light);
  border-color: var(--epal-red);
  color: var(--epal-red);
}
.epal-timeline-content { margin-top: 14px; text-align: center; padding: 0 6px; }
.epal-timeline-title {
  font-size: 13px;
  font-weight: 600;
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  margin-bottom: 5px;
  line-height: 1.3;
  text-transform: none !important;
}
.epal-timeline-desc {
  font-size: 12px;
  font-family: var(--epal-font);
  color: var(--epal-text-muted);
  line-height: 1.55;
}
.epal-timeline-step.active .epal-timeline-title { color: var(--epal-red); }

/* Vertikal (Über Uns / Leistungen) */
.epal-story {
  display: flex;
  gap: 24px;
  margin-bottom: 28px;
}
.epal-story-line {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
}
.epal-story-dot {
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--epal-red);
  flex-shrink: 0;
  margin-top: 4px;
}
.epal-story-connector {
  width: 1px;
  background: var(--epal-border);
  flex: 1;
  margin-top: 6px;
  min-height: 24px;
}
.epal-story-body h3 {
  font-size: 11px;
  font-weight: 700;
  font-family: var(--epal-font);
  color: var(--epal-red);
  text-transform: uppercase !important;
  letter-spacing: 0.8px;
  margin-bottom: 8px;
}
.epal-story-body p {
  font-size: 14px;
  font-family: var(--epal-font);
  color: var(--epal-text-mid);
  line-height: 1.75;
  text-transform: none !important;
}


/* ============================================================
   12. PULL QUOTES
   ============================================================ */

.epal-pull-quote,
.epal-home-pull,
.epal-nl-quote,
.epal-home-story .epal-home-pull {
  background: var(--epal-white);
  border-left: 3px solid var(--epal-red);
  border-radius: 0 var(--epal-radius-lg) var(--epal-radius-lg) 0;
  padding: 20px 24px;
  margin-bottom: 20px;
}
.epal-pull-quote p,
.epal-home-pull p,
.epal-nl-quote p {
  font-family: var(--epal-font-serif);
  font-size: 16px;
  font-style: italic;
  color: var(--epal-text-dark);
  line-height: 1.65;
  margin: 0 0 10px;
  text-transform: none !important;
}
.epal-pull-quote .epal-quote-source,
.epal-home-pull .pull-source {
  font-size: 12px;
  color: var(--epal-text-hint);
  font-style: normal;
  font-family: var(--epal-font);
}
.epal-pull-quote em,
.epal-nl-quote em {
  font-style: normal;
  color: var(--epal-red);
  font-weight: 700;
}


/* ============================================================
   13. FORMULARE
   ============================================================ */

/* Felder */
.epal-nl-field,
.epal-kt-field { margin-bottom: 14px; }

.epal-nl-field label,
.epal-kt-field label {
  display: block;
  font-size: 12px;
  font-weight: 500;
  font-family: var(--epal-font);
  color: var(--epal-text-mid);
  margin-bottom: 5px;
  text-transform: none !important;
}
.epal-nl-field input,
.epal-nl-field textarea,
.epal-kt-field input,
.epal-kt-field select,
.epal-kt-field textarea {
  width: 100%;
  padding: 10px 13px;
  border: 0.5px solid #ddd;
  border-radius: var(--epal-radius-md);
  font-size: 13px;
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  background: #fafaf9;
  outline: none;
  transition: border-color 0.2s, background 0.2s;
}
.epal-nl-field input:focus,
.epal-nl-field textarea:focus,
.epal-kt-field input:focus,
.epal-kt-field select:focus,
.epal-kt-field textarea:focus {
  border-color: var(--epal-red);
  background: var(--epal-white);
}
.epal-nl-field input.invalid,
.epal-kt-field input.invalid,
.epal-kt-field select.invalid,
.epal-kt-field textarea.invalid {
  border-color: var(--epal-red);
  background: #fff8f7;
}
.epal-kt-field textarea { height: 120px; resize: vertical; }

/* Fehlertext */
.epal-nl-field-err,
.epal-kt-field-err {
  font-size: 11px;
  font-family: var(--epal-font);
  color: var(--epal-red);
  margin-top: 5px;
  display: none;
}
.epal-nl-field.has-error .epal-nl-field-err,
.epal-kt-field.has-error .epal-kt-field-err { display: block; }

/* Datenschutz-Checkbox */
.epal-nl-dsgvo {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 4px 0 6px;
  padding: 12px 14px;
  background: #fafaf9;
  border-radius: var(--epal-radius-md);
  border: 0.5px solid var(--epal-border-light);
  transition: border-color 0.2s;
}
.epal-nl-dsgvo.invalid { border-color: var(--epal-red); background: #fff8f7; }
.epal-nl-dsgvo input[type="checkbox"] {
  accent-color: var(--epal-red);
  width: 15px; height: 15px;
  flex-shrink: 0;
  margin-top: 1px;
  cursor: pointer;
}
.epal-nl-dsgvo-text {
  font-size: 12px;
  font-family: var(--epal-font);
  color: #666;
  line-height: 1.6;
}
.epal-nl-dsgvo-text a { color: var(--epal-red); text-decoration: none; font-weight: 500; }
.epal-nl-dsgvo-err {
  font-size: 11px;
  font-family: var(--epal-font);
  color: var(--epal-red);
  margin-bottom: 12px;
  display: none;
}
.epal-nl-dsgvo-err.visible { display: block; }

/* Formular-Card */
.epal-nl-form-card,
.epal-kt-form-card {
  background: var(--epal-white);
  border: 0.5px solid var(--epal-border);
  border-radius: var(--epal-radius-xl);
  padding: 28px;
}
.epal-nl-form-card h3,
.epal-kt-form-card h3 {
  font-size: 17px;
  font-weight: 700;
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  margin-bottom: 6px;
  text-transform: none !important;
}
.epal-nl-form-card .form-desc,
.epal-kt-form-card .form-desc {
  font-size: 13px;
  font-family: var(--epal-font);
  color: var(--epal-text-hint);
  margin-bottom: 22px;
}

/* Spinner */
@keyframes epalSpin { to { transform: rotate(360deg); } }
.epal-nl-spinner,
.epal-kt-spinner {
  width: 15px; height: 15px;
  border: 2px solid rgba(255,255,255,0.3);
  border-top-color: var(--epal-white);
  border-radius: 50%;
  animation: epalSpin 0.7s linear infinite;
  display: none;
  flex-shrink: 0;
}

/* Frequenz-Badge (Newsletter) */
.epal-nl-freq {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--epal-red-light);
  border: 0.5px solid var(--epal-red-border);
  border-radius: 20px;
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 600;
  font-family: var(--epal-font);
  color: var(--epal-red);
  margin-bottom: 24px;
}
.epal-nl-freq-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--epal-red);
  animation: nlPulse 2s ease-in-out infinite;
}
@keyframes nlPulse {
  0%,100% { opacity:1; transform:scale(1); }
  50%     { opacity:.4; transform:scale(0.85); }
}


/* ============================================================
   14. SIDEBAR
   ============================================================ */

.epal-nl-sidebar,
.epal-kt-sidebar {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Sprechstunden-Card (orange) */
.epal-kt-sidebar-card.sprechstunde {
  background: var(--epal-red-light);
  border-color: var(--epal-red-border);
}
.epal-kt-sidebar-card.sprechstunde h4 { color: var(--epal-red); }

/* Layout: Formular + Sidebar */
.epal-nl-layout,
.epal-kt-layout {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 24px;
  align-items: start;
}


/* ============================================================
   15. SEITEN-SPEZIFISCH
   ============================================================ */

/* Hero-Sektionen */
.epal-about-hero,
.epal-kt-hero,
.epal-nl-hero,
.epal-lst-hero,
.epal-wissen-hero {
  padding: 48px 0 40px;
  border-bottom: 0.5px solid var(--epal-border-light);
  margin-bottom: 40px;
}

/* Personen (Über Uns) */
.epal-persons { margin-top: 32px; }
.epal-person-card {
  background: var(--epal-white);
  border: 0.5px solid var(--epal-border);
  border-radius: var(--epal-radius-lg);
  padding: 20px;
}
.epal-person-avatar {
  width: 46px; height: 46px;
  border-radius: 50%;
  background: var(--epal-red-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 700;
  font-family: var(--epal-font);
  color: var(--epal-red);
  margin-bottom: 14px;
}
.epal-person-card h4 {
  font-size: 15px;
  font-weight: 600;
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  margin-bottom: 4px;
  text-transform: none !important;
}
.epal-person-card .epal-person-role {
  font-size: 12px;
  font-family: var(--epal-font);
  color: var(--epal-text-hint);
  margin-bottom: 10px;
}
.epal-person-card p {
  font-size: 13px;
  font-family: var(--epal-font);
  color: #666;
  line-height: 1.65;
  text-transform: none !important;
}

/* Ergebnis-Box (Über Uns) */
.epal-result-box {
  background: var(--epal-white);
  border-radius: var(--epal-radius-lg);
  border: 0.5px solid var(--epal-border);
  padding: 24px;
  margin: 32px 0;
  display: flex;
  gap: 20px;
  align-items: flex-start;
}
.epal-result-icon {
  width: 42px; height: 42px;
  background: var(--epal-red-light);
  border-radius: var(--epal-radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.epal-result-box h4 {
  font-size: 15px;
  font-weight: 600;
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  margin-bottom: 8px;
  text-transform: none !important;
}
.epal-result-box p {
  font-size: 14px;
  font-family: var(--epal-font);
  color: #666;
  line-height: 1.7;
  text-transform: none !important;
}

/* Über Uns CTA */
.epal-about-cta {
  border-radius: var(--epal-radius-lg);
  padding: 28px 32px;
  margin-top: 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.epal-about-cta h4 {
  font-size: 16px;
  font-weight: 600;
  font-family: var(--epal-font);
  color: var(--epal-white);
  margin-bottom: 6px;
  text-transform: none !important;
}
.epal-about-cta p {
  font-size: 13px;
  font-family: var(--epal-font);
  color: var(--epal-text-muted);
  text-transform: none !important;
}


/* Fusszeile Formular */
.epal-nl-footnote {
  font-size: 11px;
  font-family: var(--epal-font);
  color: var(--epal-text-hint);
  line-height: 1.55;
  margin-top: 12px;
}

/* Kontakt Label */
.epal-kt-label {
  font-size: 11px;
  font-weight: 700;
  font-family: var(--epal-font);
  color: var(--epal-red);
  text-transform: uppercase !important;
  letter-spacing: 1px;
  margin-bottom: 8px;
  display: block;
}

/* Vertikale Timeline Leistungen */
.epal-lst-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 40px;
}

/* Preis Währung */
.price-currency {
  font-size: 14px;
  font-weight: 600;
  font-family: var(--epal-font);
  color: var(--epal-text-muted);
}
.epal-lst-paket.highlight .price-currency { color: rgba(255,255,255,0.75); }

/* Story Text Startseite */
.epal-home-story-text {
  font-size: 14px;
  font-family: var(--epal-font);
  color: var(--epal-text-mid);
  line-height: 1.75;
  max-width: 580px;
  margin-bottom: 20px;
  text-transform: none !important;
}


/* ============================================================
   15b. LEISTUNGEN — Seiten-spezifische Komponenten
   ============================================================ */

/* Abschnitts-Wrapper */
.epal-lst-section {
  margin-bottom: 40px;
}
.epal-lst-section h2 {
  font-size: 22px;
  font-weight: 700;
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  margin-bottom: 14px;
  text-transform: none !important;
}

/* Vertikale Timeline (Leistungen Hintergrund-Story) */
.epal-lst-titem {
  display: flex;
  gap: 20px;
  margin-bottom: 0;
}
.epal-lst-tline {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  width: 20px;
}
.epal-lst-tdot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--epal-red);
  flex-shrink: 0;
  margin-top: 4px;
}
.epal-lst-tconn {
  width: 1px;
  background: var(--epal-border);
  flex: 1;
  margin-top: 6px;
  min-height: 20px;
}
.epal-lst-tbody {
  flex: 1;
  padding-bottom: 28px;
}
.epal-lst-tbody h3 {
  font-size: 11px;
  font-weight: 700;
  font-family: var(--epal-font);
  color: var(--epal-red);
  text-transform: uppercase !important;
  letter-spacing: 0.8px;
  margin-bottom: 8px;
}
.epal-lst-tbody p {
  font-size: 14px;
  font-family: var(--epal-font);
  color: var(--epal-text-mid);
  line-height: 1.75;
  margin-bottom: 8px;
  text-transform: none !important;
}
.epal-lst-tbody a {
  color: var(--epal-signal);
  text-decoration: none;
  font-weight: 500;
}

/* Feature Cards (3er Grid) */
.epal-lst-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 40px;
}
.epal-lst-feature {
  background: var(--epal-white);
  border: 0.5px solid var(--epal-border);
  border-radius: var(--epal-radius-lg);
  padding: 18px;
}
.epal-lst-feature-icon {
  width: 32px;
  height: 32px;
  background: var(--epal-red-light);
  border-radius: var(--epal-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}
.epal-lst-feature h4 {
  font-size: 14px;
  font-weight: 600;
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  margin-bottom: 6px;
  text-transform: none !important;
}
.epal-lst-feature p {
  font-size: 13px;
  font-family: var(--epal-font);
  color: var(--epal-text-muted);
  line-height: 1.6;
  margin: 0;
}

/* Pakete S / M / L */
.epal-lst-pakete {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 16px;
}
.epal-lst-paket {
  background: var(--epal-white);
  border: 0.5px solid var(--epal-border);
  border-radius: var(--epal-radius-xl);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.epal-lst-paket.highlight {
  border-color: var(--epal-red);
  box-shadow: 0 4px 20px rgba(13,25,163,0.1);
}
.epal-lst-paket-header {
  padding: 20px 20px 16px;
  border-bottom: 0.5px solid var(--epal-border-light);
}
.epal-lst-paket.highlight .epal-lst-paket-header {
  background: var(--epal-red);
}
.epal-lst-paket-label {
  font-size: 10px;
  font-weight: 700;
  font-family: var(--epal-font);
  text-transform: uppercase !important;
  letter-spacing: 0.8px;
  color: var(--epal-red);
  margin-bottom: 6px;
}
.epal-lst-paket.highlight .epal-lst-paket-label {
  color: rgba(255,255,255,0.75);
}
.epal-lst-paket-name {
  font-size: 22px;
  font-weight: 700;
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  margin-bottom: 2px;
}
.epal-lst-paket.highlight .epal-lst-paket-name { color: #fff; }
.epal-lst-paket-sub {
  font-size: 12px;
  font-family: var(--epal-font);
  color: var(--epal-text-hint);
  margin-bottom: 14px;
}
.epal-lst-paket.highlight .epal-lst-paket-sub { color: rgba(255,255,255,0.65); }

/* Paket Preis */
.epal-lst-paket-price {
  display: flex;
  align-items: baseline;
  gap: 4px;
  margin-top: 4px;
}
.epal-lst-paket-price .price-amount {
  font-size: 28px;
  font-weight: 700;
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  line-height: 1;
}
.epal-lst-paket.highlight .price-amount { color: #fff; }
.price-placeholder {
  font-size: 22px;
  font-weight: 700;
  font-family: var(--epal-font);
  color: #ffff !important;
  letter-spacing: 1px;
}
.epal-lst-paket.highlight .price-placeholder { color: rgba(255,255,255,0.4); }

/* Paket Body */
.epal-lst-paket-body {
  padding: 16px 20px 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.epal-lst-paket-body ul {
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
  flex: 1;
}
.epal-lst-paket-body li {
  font-size: 13px;
  font-family: var(--epal-font);
  color: var(--epal-text-mid);
  line-height: 1.6;
  padding: 6px 0;
  border-bottom: 0.5px solid #f5f4f1;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  text-transform: none !important;
}
.epal-lst-paket-body li:last-child { border-bottom: none; }
.epal-lst-paket-body li .check {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  margin-top: 2px;
}
.epal-lst-paket-body .paket-btn {
  display: block;
  text-align: center;
  padding: 10px;
  border-radius: var(--epal-radius-md);
  font-size: 13px;
  font-weight: 600;
  font-family: var(--epal-font);
  text-decoration: none;
  border: 0.5px solid var(--epal-red);
  color: var(--epal-red);
  transition: all 0.2s;
  margin-top: auto;
  text-transform: none !important;
}
.epal-lst-paket-body .paket-btn:hover {
  background: var(--epal-red);
  color: #fff;
}
.epal-lst-paket.highlight .paket-btn {
  background: var(--epal-red);
  color: #fff;
  border-color: #fff;
}
.epal-lst-paket.highlight .paket-btn:hover {
  background: #fff;
  color: var(--epal-red);
}

/* Vergleichstabelle */
.epal-lst-vergleich {
  background: var(--epal-white);
  border: 0.5px solid var(--epal-border);
  border-radius: var(--epal-radius-xl);
  overflow: hidden;
  margin-bottom: 14px;
}
.epal-lst-vergleich table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  font-family: var(--epal-font);
}
.epal-lst-vergleich thead th {
  padding: 12px 16px;
  text-align: left;
  font-weight: 600;
  font-size: 12px;
  font-family: var(--epal-font);
  color: var(--epal-text-muted);
  border-bottom: 0.5px solid var(--epal-border-light);
  background: #fafaf9;
  text-transform: none !important;
}
.epal-lst-vergleich thead th.highlight-col {
  background: var(--epal-red-light);
  color: var(--epal-red);
}
.epal-lst-vergleich tbody td {
  padding: 11px 16px;
  border-bottom: 0.5px solid #f5f4f1;
  color: var(--epal-text-mid);
  font-family: var(--epal-font);
  vertical-align: middle;
  text-transform: none !important;
}
.epal-lst-vergleich tbody tr:last-child td { border-bottom: none; }
.epal-lst-vergleich tbody td:first-child {
  font-weight: 500;
  color: var(--epal-text-dark);
}
.epal-lst-vergleich tbody td.highlight-col { background: #fafafe; }
.epal-lst-vergleich .chk { color: var(--epal-green-text); font-size: 15px; }
.epal-lst-vergleich .dash { color: #ddd; font-size: 15px; }
.epal-lst-vergleich .opt { color: var(--epal-orange); font-size: 12px; font-weight: 500; }

/* Optionen-Tabelle */
.epal-lst-optionen {
  background: var(--epal-white);
  border: 0.5px solid var(--epal-border);
  border-radius: var(--epal-radius-xl);
  overflow: hidden;
  margin-bottom: 40px;
}
.epal-lst-optionen-header {
  padding: 16px 20px;
  border-bottom: 0.5px solid var(--epal-border-light);
  background: #fafaf9;
}
.epal-lst-optionen-header h4 {
  font-size: 14px;
  font-weight: 600;
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  margin-bottom: 4px;
  text-transform: none !important;
}
.epal-lst-optionen-header p {
  font-size: 12px;
  font-family: var(--epal-font);
  color: var(--epal-text-hint);
  margin: 0;
}
.epal-lst-optionen table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  font-family: var(--epal-font);
}
.epal-lst-optionen thead th {
  padding: 10px 16px;
  text-align: left;
  font-weight: 600;
  font-size: 11px;
  font-family: var(--epal-font);
  color: var(--epal-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-bottom: 0.5px solid var(--epal-border-light);
  background: #fafaf9;
}
.epal-lst-optionen tbody td {
  padding: 10px 16px;
  border-bottom: 0.5px solid #f5f4f1;
  color: var(--epal-text-mid);
  font-family: var(--epal-font);
  vertical-align: top;
  text-transform: none !important;
}
.epal-lst-optionen tbody tr:last-child td { border-bottom: none; }
.epal-lst-optionen tbody td:first-child { font-weight: 500; color: var(--epal-text-dark); }
.epal-lst-optionen .price-ph {
  font-weight: 700;
  font-family: var(--epal-font);
  color: #ddd;
  font-size: 13px;
  letter-spacing: 0.5px;
}

@media (max-width: 620px) {
  .epal-lst-pakete  { grid-template-columns: 1fr; }
  .epal-lst-features { grid-template-columns: 1fr; }
}


/* ============================================================
   16. CTA-BANNER
   ============================================================ */

.epal-home-cta,
.epal-lst-cta,
.epal-kt-cta {
  background: var(--epal-text-dark);
  padding: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-top: 40px;
}
.epal-home-cta h2,
.epal-lst-cta h4,
.epal-kt-cta h4 {
  font-size: 20px;
  font-weight: 700;
  font-family: var(--epal-font);
  color: var(--epal-white);
  margin-bottom: 6px;
  text-transform: none !important;
}
.epal-home-cta p,
.epal-lst-cta p,
.epal-kt-cta p {
  font-size: 13px;
  font-family: var(--epal-font);
  color: var(--epal-text-muted);
  text-transform: none !important;
}


/* FAQ Suche (epal4y-faq-glossar.html) */
.epal-faq-search-wrap {
  position: relative;
  margin-bottom: 20px;
}
.epal-faq-search-wrap svg {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}
.epal-faq-search {
  width: 100%;
  padding: 11px 16px 11px 42px;
  border: 0.5px solid #ddd;
  border-radius: var(--epal-radius-md);
  font-size: 14px;
  font-family: var(--epal-font);
  color: var(--epal-text-dark);
  background: var(--epal-white);
  outline: none;
  transition: border-color 0.2s;
}
.epal-faq-search:focus { border-color: var(--epal-red); }
.epal-faq-filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}
.epal-faq-filter {
  padding: 5px 14px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 500;
  font-family: var(--epal-font);
  border: 0.5px solid var(--epal-border);
  background: var(--epal-white);
  color: #666;
  cursor: pointer;
  transition: all 0.15s;
}
.epal-faq-filter:hover { border-color: var(--epal-red); color: var(--epal-red); }
.epal-faq-filter.active { background: var(--epal-red); color: var(--epal-white); border-color: var(--epal-red); }


/* ============================================================
   17. RESPONSIVE / MOBILE
   ============================================================ */

/* Mobile Nav Bar — eigenständig, unabhängig von Kadence */
#epal-nav.epal-nav-mobile-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 56px;
  background: var(--epal-white);
  border-bottom: 0.5px solid var(--epal-border);
  border-top: 3px solid var(--epal-red);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  z-index: 99999;
  margin-left: 0 !important;
}

@media (max-width: 900px) {
  .epal-nav-links { display: none; }
  .epal-hamburger { display: flex; }
}
@media (min-width: 901px) {
  .epal-mobile-menu { display: none !important; }
  .epal-hamburger { display: none !important; }
}

@media (max-width: 680px) {
  .epal-nl-layout,
  .epal-kt-layout { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .epal-cards-2,
  .epal-nl-benefits,
  .epal-kt-info-cards,
  .epal-persons { grid-template-columns: 1fr; }

  .epal-cards-3,
  .epal-lst-features,
  .epal-home-three { grid-template-columns: 1fr; }

  .epal-home-three-item {
    border-right: none;
    border-bottom: 0.5px solid var(--epal-border-light);
  }
  .epal-home-three-item:last-child { border-bottom: none; }

  .epal-qs-slide { padding: 40px 24px; }
  .epal-home-quote { font-size: 17px; }

  .epal-home-cta,
  .epal-lst-cta { padding: 32px 24px; }

  .epal-about-hero,
  .epal-kt-hero,
  .epal-nl-hero,
  .epal-lst-hero { padding: 32px 0 24px; }
}

@media (max-width: 580px) {
  .epal-timeline-track {
    flex-direction: column;
    align-items: flex-start;
    min-width: unset;
    padding-left: 20px;
  }
  .epal-timeline-step {
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
    padding-bottom: 24px;
    width: 100%;
  }
  .epal-timeline-step::before {
    top: 40px;
    left: 19px;
    right: unset;
    width: 1px;
    height: 100%;
  }
  .epal-timeline-content { margin-top: 8px; text-align: left; padding: 0; }
}


/* ============================================================
   18. BLOG — Übersicht & Einzelartikel
   ============================================================ */

/* Seitenhintergrund Blog */
.blog .site-content,
.archive .site-content,
.single .site-content {
  background-color: var(--epal-bg) !important;
}

/* Blog-Header komplett ausblenden */
.blog .page-header,
.archive .page-header,
.blog .entry-header.page-header {
  display: none !important;
}

/* Blog-Karten Container */
.blog .content-area,
.archive .content-area {
  max-width: 860px;
  margin: 0 auto;
  padding: 40px 24px;
}

/* Einzelne Blog-Karte */
.blog article.post,
.archive article.post,
.blog article,
.archive article {
  background: var(--epal-white) !important;
  border: 0.5px solid var(--epal-border) !important;
  border-radius: var(--epal-radius-xl) !important;
  padding: 28px !important;
  margin-bottom: 20px !important;
  box-shadow: none !important;
  transition: border-color 0.2s;
}
.blog article.post:hover,
.archive article.post:hover {
  border-color: var(--epal-red) !important;
}

/* Kategorie-Label (war orange → jetzt Markenblau) */
.blog .entry-meta .cat-links a,
.archive .entry-meta .cat-links a,
.blog .posted-in a,
.archive .posted-in a,
.blog .entry-categories a,
.archive .entry-categories a,
.blog .wp-block-post-terms a,
.archive .wp-block-post-terms a {
  font-family: var(--epal-font) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  color: var(--epal-red) !important;
  text-decoration: none !important;
  background: var(--epal-red-light) !important;
  padding: 3px 10px !important;
  border-radius: 4px !important;
}

/* Post-Titel */
.blog .entry-title,
.archive .entry-title,
.blog h2.entry-title,
.archive h2.entry-title {
  font-family: var(--epal-font) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--epal-text-dark) !important;
  margin: 10px 0 8px !important;
  line-height: 1.3 !important;
  text-transform: none !important;
}
.blog .entry-title a,
.archive .entry-title a {
  color: var(--epal-text-dark) !important;
  text-decoration: none !important;
  font-family: var(--epal-font) !important;
}
.blog .entry-title a:hover,
.archive .entry-title a:hover {
  color: var(--epal-red) !important;
}

/* Meta (Autor, Datum) */
.blog .entry-meta,
.archive .entry-meta,
.blog .posted-on,
.archive .posted-on,
.blog .byline,
.archive .byline {
  font-family: var(--epal-font) !important;
  font-size: 12px !important;
  color: var(--epal-text-hint) !important;
  margin-bottom: 14px !important;
}
.blog .entry-meta a,
.archive .entry-meta a {
  color: var(--epal-text-muted) !important;
  text-decoration: none !important;
  font-family: var(--epal-font) !important;
}

/* Teaser-Text */
.blog .entry-summary,
.archive .entry-summary,
.blog .entry-content p,
.archive .entry-content p {
  font-family: var(--epal-font) !important;
  font-size: 14px !important;
  color: var(--epal-text-mid) !important;
  line-height: 1.75 !important;
  text-transform: none !important;
}

/* "Weiterlesen" Link → Signal-Rot */
.blog .more-link,
.archive .more-link,
.blog a.more-link,
.archive a.more-link,
.blog .read-more a,
.archive .read-more a {
  font-family: var(--epal-font) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--epal-signal) !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  margin-top: 12px !important;
}
.blog .more-link:hover,
.archive .more-link:hover { text-decoration: underline !important; }

/* Pagination */
.blog .pagination,
.archive .pagination,
.blog .nav-links,
.archive .nav-links {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 32px;
  font-family: var(--epal-font);
}
.blog .page-numbers,
.archive .page-numbers {
  padding: 7px 14px;
  border-radius: var(--epal-radius-md);
  font-size: 13px;
  font-family: var(--epal-font);
  color: var(--epal-text-mid);
  border: 0.5px solid var(--epal-border);
  text-decoration: none;
  transition: all 0.15s;
}
.blog .page-numbers.current,
.archive .page-numbers.current {
  background: var(--epal-red);
  color: var(--epal-white);
  border-color: var(--epal-red);
}
.blog .page-numbers:hover,
.archive .page-numbers:hover {
  border-color: var(--epal-red);
  color: var(--epal-red);
}

/* Einzelartikel */
.single .entry-title {
  font-family: var(--epal-font) !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  color: var(--epal-text-dark) !important;
  text-transform: none !important;
  margin-bottom: 16px !important;
}
.single .entry-content {
  font-family: var(--epal-font) !important;
  font-size: 15px !important;
  color: var(--epal-text-mid) !important;
  line-height: 1.8 !important;
}
.single .entry-content h2,
.single .entry-content h3 {
  font-family: var(--epal-font) !important;
  color: var(--epal-text-dark) !important;
  text-transform: none !important;
}
.single .entry-content a {
  color: var(--epal-signal) !important;
  text-decoration: none !important;
  font-weight: 500 !important;
}
.single .entry-content a:hover { text-decoration: underline !important; }



/* ============================================================
   19. INLINE-STYLE KLASSEN
   Ersetzt alle style="" Attribute auf den Seiten
   ============================================================ */

/* Allgemein */
.epal-ta-center   { text-align: center; }
.epal-mb-14       { margin-bottom: 14px; }
.epal-mb-24       { margin-bottom: 24px; }
.epal-mb-32       { margin-bottom: 32px; }
.epal-mt-10       { margin-top: 10px; }
.epal-mt-12       { margin-top: 12px; }
.epal-mt-32       { margin-top: 32px; }
.epal-color-dark  { color: var(--epal-text-dark); }
.epal-color-muted { color: var(--epal-text-muted); }
.epal-color-hint  { color: var(--epal-text-hint); }
.epal-color-ddd   { color: #ddd; }
.epal-fw-700      { font-weight: 700; }
.epal-fw-500      { font-weight: 500; }
.epal-fs-11       { font-size: 11px; }
.epal-fs-12       { font-size: 12px; }
.epal-fs-13       { font-size: 13px; }

/* Flex Hilfklassen */
.epal-flex-center {
  display: flex;
  align-items: center;
  gap: 10px;
}
.epal-flex-gap-12 {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 20px 0 12px;
}
.epal-flex-gap-7 {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  color: var(--epal-text-muted);
}
.epal-flex-wrap {
  display: flex;
  gap: 20px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.epal-flex-between {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

/* Grid 2 Spalten */
.epal-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 580px) {
  .epal-grid-2 { grid-template-columns: 1fr; }
}

/* Trennlinie */
.epal-hr {
  flex: 1;
  height: 0.5px;
  background: var(--epal-border);
}
.epal-hr-label {
  font-size: 12px;
  color: var(--epal-text-hint);
  white-space: nowrap;
  font-weight: 500;
  font-family: var(--epal-font);
}

/* Timeline Dots (Vergleich) */
.epal-dot-blue {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--epal-red);
  flex-shrink: 0;
}
.epal-dot-empty {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--epal-white);
  border: 1.5px solid var(--epal-border);
  flex-shrink: 0;
}
.epal-dot-light {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--epal-red-light);
  border: 1.5px solid var(--epal-red);
  flex-shrink: 0;
}

/* Tabellen Spaltenbreiten */
.epal-col-40 { width: 40%; }
.epal-col-20 { width: 20%; }
.epal-col-18 { width: 18%; text-align: center; }

/* Tabellen Zellen */
.epal-td-center-bold-blue {
  text-align: center;
  font-weight: 700;
  color: var(--epal-red);
}
.epal-td-center-bold-gray {
  text-align: center;
  font-weight: 700;
  color: #ddd;
}
.epal-td-center-gray {
  text-align: center;
  color: #ddd;
}

/* Optionaler Text (grau) */
.epal-optional {
  color: var(--epal-text-hint);
  font-weight: 400;
  font-size: 13px;
}

/* Inline Hinweis-Box (Leistungen) */
.epal-inline-notice {
  background: var(--epal-signal-light);
  border: 0.5px solid var(--epal-signal-border);
  border-left: 3px solid var(--epal-signal);
  border-radius: var(--epal-radius-md);
  padding: 12px 18px;
  margin-bottom: 20px;
  font-size: 13px;
  color: var(--epal-text-muted);
}

/* Kontakt: CTA Banner am Ende */
.epal-kt-bottom-cta {
  margin-top: 32px;
  background: var(--epal-white);
  border: 0.5px solid var(--epal-border);
  border-radius: var(--epal-radius-lg);
  padding: 20px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.epal-kt-bottom-cta-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--epal-text-dark);
  margin-bottom: 4px;
  font-family: var(--epal-font);
}
.epal-kt-bottom-cta-sub {
  font-size: 13px;
  color: var(--epal-text-muted);
  font-family: var(--epal-font);
}
.epal-kt-bottom-cta-btn {
  display: inline-block;
  padding: 10px 20px;
  background: var(--epal-red);
  color: var(--epal-white);
  border-radius: var(--epal-radius-md);
  font-size: 13px;
  font-weight: 600;
  font-family: var(--epal-font);
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
}
.epal-kt-bottom-cta-btn:hover { background: var(--epal-red-dark); }

/* Kontakt: Fußnote Formular */
.epal-form-footnote {
  font-size: 11px;
  color: var(--epal-text-hint);
  line-height: 1.55;
  margin-top: 12px;
  font-family: var(--epal-font);
}

/* Wissen: interne Link-Variante */
.epal-signal-link {
  color: var(--epal-signal);
  font-weight: 500;
  text-decoration: none;
  font-family: var(--epal-font);
}
.epal-signal-link:hover { text-decoration: underline; }

.epal-home-loader-wrap {
  background: var(--epal-white);
  padding: 0 48px 40px;
  text-align: center;
  border-bottom: 0.5px solid var(--epal-border-light);
}
@media (max-width: 580px) {
  .epal-home-loader-wrap { padding: 0 24px 32px; }
}


/* ============================================================
   20. SPRECHSTUNDEN — Terminliste
   ============================================================ */

.epal-sprechstunden-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 8px;
}

.epal-sh-card {
  background: var(--epal-white);
  border: 0.5px solid var(--epal-border);
  border-radius: var(--epal-radius-xl);
  display: flex !important;
  flex-direction: row !important;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
  margin-bottom: 0 !important;
}
.epal-sh-card:hover {
  border-color: var(--epal-red);
  box-shadow: 0 4px 20px rgba(13,25,163,0.07);
}
.epal-sh-card.booked {
  background: #fafaf9;
  border-color: var(--epal-border-light);
  opacity: 0.75;
}
.epal-sh-card.booked:hover {
  border-color: var(--epal-border);
  box-shadow: none;
}

/* Datum-Spalte */
.epal-sh-date-col {
  width: 80px !important;
  min-width: 80px !important;
  flex-shrink: 0 !important;
  background: var(--epal-red-light);
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 20px 12px !important;
  border-right: 0.5px solid var(--epal-red-border);
  border-bottom: none !important;
  text-align: center;
}
.epal-sh-card.booked .epal-sh-date-col {
  background: #f0eeea;
  border-right-color: var(--epal-border-light);
}
.epal-sh-month {
  font-family: var(--epal-font);
  font-size: 11px !important;
  font-weight: 600;
  text-transform: uppercase !important;
  letter-spacing: 0.8px;
  color: var(--epal-red);
  margin-bottom: 2px !important;
  display: block;
}
.epal-sh-card.booked .epal-sh-month { color: var(--epal-text-hint); }
.epal-sh-day {
  font-family: var(--epal-font);
  font-size: 32px !important;
  font-weight: 700;
  color: var(--epal-red);
  line-height: 1 !important;
  margin-bottom: 2px !important;
  display: block;
}
.epal-sh-card.booked .epal-sh-day { color: var(--epal-text-hint); }
.epal-sh-year {
  font-family: var(--epal-font);
  font-size: 11px !important;
  color: var(--epal-text-hint);
  display: block;
}

/* Body */
.epal-sh-body {
  flex: 1 !important;
  padding: 20px 24px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px;
}
.epal-sh-meta {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.epal-sh-time,
.epal-sh-format {
  font-family: var(--epal-font);
  font-size: 12px;
  font-weight: 500;
  color: var(--epal-text-muted);
  display: flex;
  align-items: center;
  gap: 5px;
}
.epal-sh-card.booked .epal-sh-time,
.epal-sh-card.booked .epal-sh-format { color: var(--epal-text-hint); }

.epal-sh-badge {
  font-family: var(--epal-font);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  padding: 3px 10px;
  border-radius: 4px;
}
.epal-sh-badge.available {
  background: var(--epal-green-bg);
  color: var(--epal-green-text);
}
.epal-sh-badge.booked {
  background: #f0eeea;
  color: var(--epal-text-hint);
}

.epal-sh-title {
  font-family: var(--epal-font);
  font-size: 16px;
  font-weight: 700;
  color: var(--epal-text-dark);
  text-transform: none !important;
  margin: 0;
  line-height: 1.3;
}
.epal-sh-card.booked .epal-sh-title { color: var(--epal-text-muted); }

.epal-sh-desc {
  font-family: var(--epal-font);
  font-size: 13px;
  color: var(--epal-text-muted);
  line-height: 1.65;
  margin: 0;
  text-transform: none !important;
}

.epal-sh-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 4px;
  padding-top: 12px;
  border-top: 0.5px solid var(--epal-border-light);
  flex-wrap: wrap;
}
.epal-sh-duration {
  font-family: var(--epal-font);
  font-size: 12px;
  color: var(--epal-text-hint);
}
.epal-sh-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--epal-font);
  font-size: 13px;
  font-weight: 600;
  color: var(--epal-white);
  background: var(--epal-red);
  padding: 8px 18px;
  border-radius: var(--epal-radius-md);
  text-decoration: none;
  transition: background 0.2s;
  white-space: nowrap;
}
.epal-sh-btn:hover { background: var(--epal-red-dark); }
.epal-sh-btn-disabled {
  display: inline-flex;
  align-items: center;
  font-family: var(--epal-font);
  font-size: 13px;
  font-weight: 500;
  color: var(--epal-text-hint);
  background: #f0eeea;
  padding: 8px 18px;
  border-radius: var(--epal-radius-md);
  cursor: not-allowed;
}

@media (max-width: 580px) {
  .epal-sh-card { flex-direction: column; }
  .epal-sh-date-col {
    width: 100%;
    flex-direction: row;
    justify-content: flex-start;
    gap: 8px;
    padding: 12px 16px;
    border-right: none;
    border-bottom: 0.5px solid var(--epal-red-border);
  }
  .epal-sh-day { font-size: 22px; }
  .epal-sh-body { padding: 16px; }
  .epal-sh-footer { flex-direction: column; align-items: flex-start; }
  .epal-sh-btn, .epal-sh-btn-disabled { width: 100%; justify-content: center; }
}
Nur dieser Block kommt neu hinzu — einfach ans Ende deiner bestehenden `epa4y-main.css` anfügen:

```css
/* ============================================================
   21. DATENSCHUTZ / RECHTLICHE SEITEN
   ============================================================ */

.epal-dsgvo-section {
  background: var(--epal-white);
  border: 0.5px solid var(--epal-border);
  border-radius: var(--epal-radius-xl);
  padding: 28px 32px;
  margin-bottom: 16px;
}
.epal-dsgvo-h2 {
  font-family: var(--epal-font);
  font-size: 18px;
  font-weight: 700;
  color: var(--epal-text-dark);
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 0.5px solid var(--epal-border-light);
  text-transform: none !important;
}
.epal-dsgvo-h3 {
  font-family: var(--epal-font);
  font-size: 14px;
  font-weight: 700;
  color: var(--epal-red);
  margin-top: 20px;
  margin-bottom: 8px;
  text-transform: none !important;
}
.epal-dsgvo-section p {
  font-family: var(--epal-font);
  font-size: 14px;
  color: var(--epal-text-mid);
  line-height: 1.75;
  margin-bottom: 12px;
  text-transform: none !important;
}
.epal-dsgvo-section p:last-child { margin-bottom: 0; }
.epal-dsgvo-section strong { color: var(--epal-text-dark); }

.epal-dsgvo-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--epal-font);
  font-size: 13px;
  margin-top: 8px;
}
.epal-dsgvo-table thead th {
  background: var(--epal-red-light);
  color: var(--epal-red);
  font-weight: 600;
  font-size: 12px;
  padding: 10px 16px;
  text-align: left;
  border-bottom: 0.5px solid var(--epal-red-border);
  text-transform: none !important;
}
.epal-dsgvo-table tbody td {
  padding: 10px 16px;
  border-bottom: 0.5px solid var(--epal-border-light);
  color: var(--epal-text-mid);
  vertical-align: top;
  text-transform: none !important;
}
.epal-dsgvo-table tbody tr:last-child td { border-bottom: none; }
.epal-dsgvo-table tbody td:first-child {
  font-weight: 500;
  color: var(--epal-text-dark);
  white-space: nowrap;
}
