/* ============================================
   MUNICH EVENT PLANNER - Extension Styles
   MOBILE-FIRST: Base = Mobile, then scale up
   ============================================ */


/* ============================================
   WHATSAPP FLOATING BUTTON
   ============================================ */
.whatsapp-float {
  position: fixed;
  bottom: 16px;
  right: 16px;
  width: 56px;
  height: 56px;
  background: #25D366;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 4px 20px rgba(37, 211, 102, 0.4);
  z-index: 999;
  transition: var(--transition);
  -webkit-tap-highlight-color: transparent;
}

.whatsapp-float:hover {
  transform: scale(1.08);
  box-shadow: 0 6px 28px rgba(37, 211, 102, 0.55);
}

/* Override scroll-top position when WhatsApp button is present */
body:has(.whatsapp-float) .scroll-top {
  bottom: 82px;
  right: 16px;
}


/* ============================================
   BREADCRUMBS
   ============================================ */
.category-breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  color: rgba(255,255,255,0.5);
  margin-bottom: 20px;
  flex-wrap: wrap;
}

.category-breadcrumb a {
  color: rgba(255,255,255,0.6);
  transition: var(--transition);
}

.category-breadcrumb a:hover { color: var(--neon); }
.category-breadcrumb span { color: rgba(255,255,255,0.3); }
.category-breadcrumb .current { color: var(--neon); }


/* ============================================
   CATEGORY ITEMS GRID
   ============================================ */
.category-items-section { background: var(--bg); }

.category-items-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-top: 36px;
}

.category-item-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 24px 20px;
  text-align: center;
  transition: var(--transition);
  box-shadow: var(--shadow-card);
}

.category-item-card:hover {
  border-color: rgba(241, 148, 49, 0.3);
  transform: translateY(-3px);
  box-shadow: var(--shadow-card-hover);
}

.category-item-icon { font-size: 2.2rem; margin-bottom: 10px; }
.category-item-card h3 { font-size: 1rem; margin-bottom: 6px; }
.category-item-card p { font-size: 0.85rem; color: var(--text-muted); line-height: 1.5; }


/* ============================================
   RELATED CATEGORIES
   ============================================ */
.related-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 32px;
  justify-content: center;
}

.related-cat-card {
  display: inline-block;
  padding: 10px 20px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 50px;
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--text);
  transition: var(--transition);
  box-shadow: var(--shadow-card);
  -webkit-tap-highlight-color: transparent;
}

.related-cat-card:hover {
  border-color: var(--green);
  color: var(--akzent);
  transform: translateY(-2px);
}


/* ============================================
   PRICE HINT BOX
   ============================================ */
.price-hint-box {
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: var(--bg-card);
  border: 1px solid rgba(241, 148, 49, 0.2);
  border-radius: var(--radius);
  padding: 24px;
  max-width: 700px;
  margin: 0 auto;
  box-shadow: var(--shadow-card);
}

.price-hint-icon { color: var(--akzent); flex-shrink: 0; }
.price-hint-icon svg { width: 24px; height: 24px; }
.price-hint-box h3 { font-size: 1.05rem; margin-bottom: 4px; }
.price-hint-box p { font-size: 0.9rem; color: var(--text-muted); line-height: 1.6; }


/* ============================================
   CONTENT BODY (parsed WP content)
   ============================================ */
.content-body p { color: var(--text-muted); font-size: 1rem; line-height: 1.8; margin-bottom: 16px; }
.content-body ul, .content-body ol { color: var(--text-muted); padding-left: 24px; margin-bottom: 16px; }
.content-body li { margin-bottom: 8px; line-height: 1.6; }
.content-body strong { color: var(--text); }
.content-body a { color: var(--akzent); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(241,148,49,0.3); transition: var(--transition); }
.content-body a:hover { color: var(--blue); text-decoration-color: var(--blue); }

/* Gleiche Link-Optik für Service-Template-Content (service-text-content + Listen-Intros) */
.service-text-content a,
.section-subtitle a { color: var(--akzent); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(241,148,49,0.3); transition: var(--transition); }
.service-text-content a:hover,
.section-subtitle a:hover { color: var(--blue); text-decoration-color: var(--blue); }


/* ============================================
   KOORDINATOR — 5-Step Form
   Mobile-First: Starts as single column
   ============================================ */
/* --- Koordinator Hero (compact) --- */
.koor-hero {
  min-height: auto !important;
  padding: 110px 0 40px !important;
}

.koor-hero-content {
  padding-top: 0 !important;
  text-align: center;
  max-width: 700px;
  margin: 0 auto;
}

.koor-hero h1 {
  font-size: clamp(1.8rem, 5vw, 3.5rem);
}

.koor-hero p {
  margin: 0 auto;
  font-size: 1rem;
}

.koordinator-section {
  background: var(--bg);
  padding-top: 40px !important;
}

.koor-form {
  max-width: 820px;
  margin: 0 auto;
}

/* --- Progress Bar --- */
.koor-progress {
  position: relative;
  margin-bottom: 36px;
  padding: 0 4px;
}

.koor-progress-track {
  position: absolute;
  top: 16px;
  left: 24px;
  right: 24px;
  height: 3px;
  background: var(--border);
  border-radius: 2px;
  z-index: 0;
}

.koor-progress-bar {
  position: absolute;
  top: 16px;
  left: 24px;
  height: 3px;
  background: var(--gradient);
  border-radius: 2px;
  width: 0%;
  transition: width 0.4s ease;
  z-index: 1;
}

.koor-steps-indicator {
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 2;
}

.koor-step-dot {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  font-size: 0;  /* Hide text labels on mobile */
  font-weight: 600;
  color: var(--text-muted);
  transition: var(--transition);
}

.koor-step-dot span {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--bg-card);
  border: 2px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Anton', sans-serif;
  font-size: 0.95rem;
  transition: var(--transition);
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.koor-step-dot.active span {
  background: var(--gradient);
  border-color: var(--green);
  color: #12100e;
  box-shadow: 0 4px 16px rgba(252, 201, 0, 0.3);
}

.koor-step-dot.active { color: var(--akzent); }

.koor-step-dot.done span {
  background: var(--green);
  border-color: var(--green);
  color: #12100e;
}

.koor-step-dot.done { color: var(--akzent); }

/* --- Step Content --- */
.koor-step-title {
  font-size: 1.5rem;
  margin-bottom: 28px;
  text-align: center;
  line-height: 1.2;
}

.koor-section { margin-bottom: 28px; }

.koor-label {
  font-size: 0.95rem;
  font-weight: 700;
  margin-bottom: 14px;
  font-family: 'Titillium Web', sans-serif;
  color: var(--text);
}

.koor-optional {
  font-weight: 400;
  color: var(--text-muted);
  font-size: 0.8rem;
}

/* --- Tiles: Large (with icon) --- */
.koor-tiles {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.koor-tile {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.koor-tile input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.koor-tile span {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 16px 10px;
  min-height: 80px;
  background: var(--bg-card);
  border: 2px solid var(--border);
  border-radius: var(--radius-sm);
  text-align: center;
  font-weight: 700;
  font-size: 0.8rem;
  transition: var(--transition);
  box-shadow: var(--shadow-card);
  justify-content: center;
}

.koor-tile span svg {
  width: 24px;
  height: 24px;
  stroke-width: 1.75;
  color: var(--akzent);
}

.koor-tile:active span {
  transform: scale(0.97);
}

.koor-tile:hover span {
  border-color: rgba(241, 148, 49, 0.4);
}

.koor-tile input:checked + span {
  border-color: var(--green);
  background: rgba(241, 148, 49, 0.06);
  box-shadow: 0 0 0 1px var(--green), 0 4px 16px rgba(252, 201, 0, 0.15);
}

/* --- Tiles: Small (text only, pills) --- */
.koor-tiles-sm {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.koor-tile-sm {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.koor-tile-sm input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.koor-tile-sm span {
  display: block;
  padding: 10px 16px;
  background: var(--bg-card);
  border: 2px solid var(--border);
  border-radius: 50px;
  text-align: center;
  font-weight: 700;
  font-size: 0.8rem;
  transition: var(--transition);
  white-space: nowrap;
}

.koor-tile-sm:active span {
  transform: scale(0.97);
}

.koor-tile-sm:hover span {
  border-color: rgba(241, 148, 49, 0.4);
}

.koor-tile-sm input:checked + span {
  border-color: var(--green);
  background: rgba(241, 148, 49, 0.06);
  color: var(--akzent);
}

/* --- Navigation Buttons --- */
.koor-nav {
  display: flex;
  flex-direction: column-reverse;
  gap: 12px;
  margin-top: 36px;
  padding-top: 24px;
  border-top: 1px solid var(--border);
}

.koor-nav .btn {
  width: 100%;
  justify-content: center;
}

/* --- Contact Grid (Schritt 5) --- */
.koor-contact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

/* --- Date Row --- */
.koor-date-row {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.koor-date-row .form-control {
  width: 100%;
}

.koor-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9rem;
  color: var(--text-muted);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.koor-checkbox input {
  accent-color: var(--green);
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

/* --- Note --- */
.koor-note {
  text-align: center;
  margin-top: 16px;
  font-size: 0.8rem;
  color: var(--text-muted);
  line-height: 1.5;
}

/* --- Success Screen --- */
.koor-success-content {
  text-align: center;
  padding: 40px 16px;
}

.koor-success-icon { color: var(--akzent); margin-bottom: 20px; }
.koor-success-content h2 { font-size: 1.6rem; margin-bottom: 12px; }
.koor-success-content p { color: var(--text-muted); font-size: 1rem; max-width: 500px; margin: 0 auto 28px; line-height: 1.6; }
.koor-success-actions { display: flex; flex-direction: column; gap: 12px; }
.koor-success-actions .btn { width: 100%; justify-content: center; }

/* --- Form Validation --- */
.form-error {
  border-color: #b3123c !important;
  animation: shakeInput 0.4s ease;
}

@keyframes shakeInput {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-6px); }
  40% { transform: translateX(6px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(4px); }
}

.shake {
  animation: shakeInput 0.4s ease;
  border-color: rgba(179, 18, 60, 0.5) !important;
}


/* ============================================
   5-COL FOOTER GRID (Mobile: Stack)
   ============================================ */
.footer-grid-5 {
  grid-template-columns: 1fr;
  gap: 28px;
}


/* ============================================
   TABLET (min-width: 640px)
   ============================================ */
@media (min-width: 640px) {
  .category-items-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .koor-tiles {
    grid-template-columns: repeat(3, 1fr);
  }

  .koor-tile span {
    padding: 18px 14px;
    font-size: 0.85rem;
    min-height: 88px;
  }

  .koor-tile span svg {
    width: 26px;
    height: 26px;
  }

  .koor-tile-sm span {
    font-size: 0.85rem;
    padding: 11px 18px;
  }

  .koor-contact-grid {
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }

  .koor-nav {
    flex-direction: row;
    justify-content: space-between;
  }

  .koor-nav .btn {
    width: auto;
  }

  .koor-date-row {
    flex-direction: row;
    align-items: center;
  }

  .koor-date-row .form-control {
    width: auto;
    max-width: 280px;
  }

  .koor-success-actions {
    flex-direction: row;
    justify-content: center;
  }

  .koor-success-actions .btn {
    width: auto;
  }

  .price-hint-box {
    flex-direction: row;
    gap: 20px;
    padding: 28px 32px;
  }

  .footer-grid-5 {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
}


/* ============================================
   TABLET-LANDSCAPE / SMALL DESKTOP (min-width: 768px)
   ============================================ */
@media (min-width: 768px) {
  .whatsapp-float {
    bottom: 24px;
    right: 24px;
    width: 60px;
    height: 60px;
  }

  body:has(.whatsapp-float) .scroll-top {
    bottom: 96px;
    right: 24px;
  }

  .koor-step-dot {
    font-size: 0.75rem;  /* Show text labels */
  }

  .koor-step-title {
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    margin-bottom: 32px;
  }

  .koor-tiles {
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }

  .koor-tile span {
    padding: 20px 14px;
    font-size: 0.88rem;
    min-height: 92px;
  }

  .category-items-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }

  .related-categories {
    justify-content: flex-start;
  }

  .koor-section {
    margin-bottom: 32px;
  }
}


/* ============================================
   DESKTOP (min-width: 1024px)
   ============================================ */
@media (min-width: 1024px) {
  .koor-step-dot {
    font-size: 0.8rem;
  }

  .koor-step-dot span {
    width: 38px;
    height: 38px;
    font-size: 1rem;
  }

  .koor-tiles {
    grid-template-columns: repeat(4, 1fr);
  }

  .koor-tile span {
    padding: 22px 16px;
    font-size: 0.9rem;
  }

  .koor-tile span svg {
    width: 28px;
    height: 28px;
  }

  .category-items-grid {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  }

  .footer-grid-5 {
    grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr;
    gap: 48px;
  }

  .koor-success-content {
    padding: 60px 20px;
  }

  .koor-success-content h2 {
    font-size: 2rem;
  }
}


/* ============================================
   LARGE DESKTOP (min-width: 1280px)
   ============================================ */
@media (min-width: 1280px) {
  .koor-tiles {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  }
}


/* ============================================
   MEP MOTION PACK — sitewide Animationen (2026-07)
   ============================================ */

/* --- Keyframes --- */
@keyframes mepBlobA { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(60px,-40px) scale(1.15); } }
@keyframes mepBlobB { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-70px,50px) scale(1.1); } }
@keyframes mepShine { 0%,100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
@keyframes mepFloatY { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes mepGlow { 0%,100% { box-shadow: 0 0 0 0 rgba(252,201,0,.45); } 50% { box-shadow: 0 0 0 8px rgba(252,201,0,0); } }

/* --- Hero: schwebende Gradient-Blobs (alle Seiten mit Hero) --- */
.hero-bg { overflow: hidden; }
.hero-bg::before,
.hero-bg::after {
  content: "";
  position: absolute;
  width: 480px; height: 480px;
  border-radius: 50%;
  filter: blur(70px);
  opacity: .35;
  pointer-events: none;
}
.hero-bg::before {
  background: radial-gradient(circle, #f19431, transparent 65%);
  top: -140px; right: -100px;
  animation: mepBlobA 14s ease-in-out infinite;
}
.hero-bg::after {
  background: radial-gradient(circle, #c7321f, transparent 65%);
  bottom: -160px; left: -120px;
  animation: mepBlobB 18s ease-in-out infinite;
}

/* --- Gradient-Text: sanfter Schimmer --- */
.gradient-text {
  background-size: 200% auto;
  animation: mepShine 7s ease-in-out infinite;
}

/* --- Fade-in: hochwertigeres Easing + leichte Skalierung --- */
.fade-in {
  transform: translateY(30px) scale(.985);
  transition: opacity .75s cubic-bezier(.16,1,.3,1), transform .75s cubic-bezier(.16,1,.3,1);
}
.fade-in.visible { transform: translateY(0) scale(1); }

/* --- Einheitlicher Karten-Hover (Lift + Tiefe) --- */
.party-card, .leistung-card, .step-card, .usp-card, .blog-card,
.service-list-item, .trust-bar-item, .koor-tile {
  transition: transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease, border-color .35s ease;
}
.party-card:hover, .leistung-card:hover, .blog-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 22px 48px rgba(21,18,16,.16);
}
.step-card:hover, .usp-card:hover, .service-list-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 14px 34px rgba(21,18,16,.12);
}

/* Gradient-Linie, die beim Hover über die Karte waechst */
.leistung-card, .step-card, .usp-card, .blog-card { position: relative; overflow: hidden; }
.leistung-card::before, .step-card::before, .usp-card::before, .blog-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, #c7321f, #f19431, #fcc900);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .45s cubic-bezier(.16,1,.3,1);
  z-index: 1;
}
.leistung-card:hover::before, .step-card:hover::before,
.usp-card:hover::before, .blog-card:hover::before { transform: scaleX(1); }

/* --- Motto-/Party-Karten: Emoji schwebt, Badge pulsiert, Bild-Zoom verfeinert --- */
.party-card-img { transition: transform .8s cubic-bezier(.16,1,.3,1), opacity .4s ease; }
.party-card:hover .party-card-img { transform: scale(1.1) rotate(.6deg); opacity: .85; }
.party-card-emoji { animation: mepFloatY 4.5s ease-in-out infinite; }
.party-card:nth-child(2n) .party-card-emoji { animation-delay: 1.1s; }
.party-card:nth-child(3n) .party-card-emoji { animation-delay: 2.2s; }
.party-card-badge { animation: mepGlow 2.8s ease-in-out infinite; }
.party-card-tag { transition: background .3s ease, color .3s ease, transform .3s ease; }
.party-card:hover .party-card-tag { transform: translateY(-1px); }

/* --- Icons in Karten: kleiner Kick beim Hover --- */
.leistung-card-icon, .trust-bar-icon, .contact-detail-icon {
  transition: transform .4s cubic-bezier(.34,1.56,.64,1), background .3s ease;
}
.leistung-card:hover .leistung-card-icon,
.trust-bar-item:hover .trust-bar-icon { transform: translateY(-4px) rotate(-6deg) scale(1.08); }

/* --- Buttons: Licht-Sweep beim Hover --- */
.btn-primary { position: relative; overflow: hidden; }
.btn-primary::after {
  content: "";
  position: absolute;
  top: 0; left: -80%;
  width: 55%; height: 100%;
  background: linear-gradient(115deg, transparent, rgba(255,255,255,.4), transparent);
  transform: skewX(-22deg);
}
.btn-primary:hover::after { left: 130%; transition: left .65s ease; }
.btn { transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease; }
.btn:hover { transform: translateY(-2px); }

/* --- Section-Titles: Gradient-Unterstrich faehrt ein --- */
.section-title::after {
  content: "";
  display: block;
  width: 68px; height: 4px;
  border-radius: 2px;
  margin-top: 12px;
  background: linear-gradient(90deg, #f19431, #fcc900);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .8s cubic-bezier(.16,1,.3,1) .15s;
}
.section-title.mep-inview::after { transform: scaleX(1); }
.cta-section .section-title::after, .cta-section h2::after { margin-left: auto; margin-right: auto; transform-origin: center; }

/* --- Hero-Stats: Zahlen leicht schimmern --- */
.hero-stat-number {
  background: linear-gradient(90deg, #fede15, #fcc900, #f19431);
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: mepShine 6s ease-in-out infinite;
}

/* --- Step-Numbers: Puls-Ring --- */
.step-number { animation: mepGlow 3.2s ease-in-out infinite; }

/* --- Barrierefreiheit --- */
@media (prefers-reduced-motion: reduce) {
  .hero-bg::before, .hero-bg::after, .gradient-text, .party-card-emoji,
  .party-card-badge, .hero-stat-number, .step-number { animation: none !important; }
  .fade-in { transition-duration: .01s; }
}

/* --- Motion Pack v2: mehr Leben in Unterseiten --- */
/* Kategorie-Emojis (Bar- und Essensseiten) schweben sanft */
.category-item-icon { display: inline-block; animation: mepFloatY 5s ease-in-out infinite; }
.category-item-card:nth-child(2n) .category-item-icon { animation-delay: 1.2s; }
.category-item-card:nth-child(3n) .category-item-icon { animation-delay: 2.4s; }
.category-item-card:hover .category-item-icon { animation-play-state: paused; transform: scale(1.25) rotate(-6deg); transition: transform .35s cubic-bezier(.34,1.56,.64,1); }
.category-item-card { transition: transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease, border-color .35s ease; }
.category-item-card:hover { transform: translateY(-6px); }

/* Konfigurator-Kacheln (Event planen) */
.koor-tile { transition: transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease, border-color .3s ease; }
.koor-tile:hover { transform: translateY(-4px) scale(1.02); box-shadow: 0 12px 28px rgba(21,18,16,.14); }

/* Motto-Karten: Licht-Sweep über das Bild beim Hover */
.party-card-visual::after {
  content: "";
  position: absolute;
  top: 0; left: -80%;
  width: 55%; height: 100%;
  background: linear-gradient(115deg, transparent, rgba(255,255,255,.28), transparent);
  transform: skewX(-22deg);
  z-index: 3;
  pointer-events: none;
}
.party-card:hover .party-card-visual::after { left: 130%; transition: left .8s ease; }

/* Blog-Karten (nutzen party-card im Blog-Grid): Icon schwebt */
.party-card-emoji i, .party-card-emoji svg { display: inline-block; }

/* Trust-Bar: gestaffeltes Einblenden übernimmt JS; Icons pulsieren dezent */
.trust-bar-icon { animation: mepGlow 4s ease-in-out infinite; }
.trust-bar-item:nth-child(2) .trust-bar-icon { animation-delay: 1s; }
.trust-bar-item:nth-child(3) .trust-bar-icon { animation-delay: 2s; }
.trust-bar-item:nth-child(4) .trust-bar-icon { animation-delay: 3s; }

@media (prefers-reduced-motion: reduce) {
  .category-item-icon, .trust-bar-icon { animation: none !important; }
}


/* ===== MEP HS-Design System v1 (2026-07-06) — Basis: Heimspiel/Wiesn ===== */
.hs-bleed{width:100vw;position:relative;left:50%;margin-left:-50vw;box-sizing:border-box}.hs-wrap{max-width:1140px;margin:0 auto;padding:0 22px}.hs-grad{background:linear-gradient(90deg,#c7321f,#e8731a);-webkit-background-clip:text;background-clip:text;color:transparent}.hs-lead{font-size:1.06rem;line-height:1.8;color:var(--text-muted,#6b6156);max-width:800px}.hs-lead strong{color:var(--text,#231f1c)}@keyframes hsFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes hsPulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.9);opacity:0}}@keyframes hsBar{from{transform:scaleY(.1)}to{transform:scaleY(1)}}@keyframes hsConfetti{0%{transform:translateY(-16px) rotate(0);opacity:0}12%{opacity:1}100%{transform:translateY(150px) rotate(320deg);opacity:0}}@keyframes hsBubble{0%{transform:translateY(0);opacity:0}25%{opacity:.9}100%{transform:translateY(-46px);opacity:0}}@keyframes hsSnow{0%{transform:translateY(-10px);opacity:0}20%{opacity:1}100%{transform:translateY(120px);opacity:0}}@keyframes hsTicker{from{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes hsScan{0%,100%{transform:translateY(0)}50%{transform:translateY(34px)}}@keyframes hsSheen{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.hs-two{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center}@media(max-width:820px){.hs-two{grid-template-columns:1fr}}.hs-illu{display:flex;justify-content:center}.hs-illu svg{max-width:100%;height:auto}.hs-float{animation:hsFloat 5s ease-in-out infinite}.hs-ticker{overflow:hidden;background:linear-gradient(90deg,#c7321f,#151210 55%,#a8410f);border-radius:16px;padding:14px 0;margin:34px 0 6px}.hs-ticker-track{display:flex;gap:0;white-space:nowrap;animation:hsTicker 36s linear infinite;width:max-content}.hs-ticker span{font-family:Anton,sans-serif;letter-spacing:1px;color:#fff;font-size:1.05rem;padding:0 18px;opacity:.92}.hs-ticker span:nth-child(even){color:#fcc900}.hs-cats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:10px}@media(max-width:1000px){.hs-cats{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.hs-cats{grid-template-columns:1fr}}.hs-cat{position:relative;background:#fff;border-radius:16px;padding:20px 16px;box-shadow:0 8px 26px rgba(21,18,16,.08);overflow:hidden;transition:transform .3s,box-shadow .3s}.hs-cat:hover{transform:translateY(-6px) rotate(-.4deg);box-shadow:0 16px 38px rgba(21,18,16,.16)}.hs-cat::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,#c7321f,#f19431,#fcc900)}.hs-cat .ico{font-size:1.7rem;line-height:1}.hs-cat b{display:block;margin:10px 0 4px;font-size:.98rem;color:var(--text,#231f1c)}.hs-cat p{font-size:.84rem;line-height:1.5;margin:0}.hs-dark{background:radial-gradient(900px 420px at 82% 8%,rgba(241,148,49,.28),transparent 60%),radial-gradient(700px 420px at 8% 92%,rgba(199,50,31,.5),transparent 60%),linear-gradient(135deg,#151210,#2b211a);border-radius:26px;padding:52px 30px;color:#fff}.hs-dark .hs-lead{color:#d9cbb0}.hs-dark h4{color:#fff}.hs-orte{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:8px}@media(max-width:1000px){.hs-orte{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.hs-orte{grid-template-columns:1fr}}.hs-ort{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#c7321f,#fcc900) border-box;border:2px solid transparent;border-radius:18px;padding:20px 16px;text-align:center;transition:transform .3s}.hs-ort:hover{transform:translateY(-6px)}.hs-ort svg{height:74px;margin-bottom:8px}.hs-ort b{display:block;font-size:1rem;color:var(--text,#231f1c)}.hs-ort p{font-size:.84rem;line-height:1.5;margin:6px 0 0}.hs-ed{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px}@media(max-width:820px){.hs-ed{grid-template-columns:1fr}}.hs-edcard{border-radius:20px;padding:28px 24px;color:#fff;position:relative;overflow:hidden;display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center}.hs-edcard.wiesn{background:linear-gradient(135deg,#c7321f 0%,#151210 55%,#a8410f 100%);background-size:180% 180%;animation:hsSheen 9s ease infinite}.hs-edcard.winter{background:linear-gradient(135deg,#151210 0%,#3b2c1f 60%,#c7321f 100%);background-size:180% 180%;animation:hsSheen 11s ease infinite}.hs-edcard b{font-family:Anton,sans-serif;font-size:1.3rem;letter-spacing:.5px;display:block;margin-bottom:8px}.hs-edcard p{font-size:.92rem;line-height:1.6;color:#e2d5bd;margin:0}.hs-edcard .tag{display:inline-block;background:rgba(252,201,0,.18);color:#fede15;border:1px solid rgba(252,201,0,.4);border-radius:999px;padding:3px 12px;font-size:.75rem;font-weight:700;margin-bottom:10px}.hs-preise{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:10px;align-items:stretch}@media(max-width:900px){.hs-preise{grid-template-columns:1fr}}.hs-preis{background:#fff;border-radius:20px;padding:26px 22px;box-shadow:0 10px 30px rgba(21,18,16,.09);position:relative;display:flex;flex-direction:column;transition:transform .3s}.hs-preis:hover{transform:translateY(-6px)}.hs-preis.mid{background:linear-gradient(#ffffff,#ffffff) padding-box,linear-gradient(135deg,#f19431,#fcc900,#c7321f) border-box;border:3px solid transparent;box-shadow:0 18px 44px rgba(241,148,49,.22)}.hs-preis .badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:linear-gradient(90deg,#fcc900,#f19431);color:#12100e;font-size:.72rem;font-weight:700;letter-spacing:1.5px;border-radius:999px;padding:5px 16px;text-transform:uppercase}.hs-preis h4{font-family:Anton,sans-serif;font-size:1.05rem;letter-spacing:1px;margin:0 0 2px;color:var(--text,#231f1c)}.hs-preis .p{font-family:Anton,sans-serif;font-size:2.4rem;line-height:1.15;color:var(--text,#231f1c)}.hs-preis .p small{font-size:.95rem;color:#6b6156;font-family:'Titillium Web',sans-serif}.hs-preis ul{list-style:none;margin:14px 0 0;padding:0;flex:1}.hs-preis li{font-size:.88rem;padding:6px 0 6px 26px;position:relative;border-bottom:1px dashed #f2e8d6}.hs-preis li::before{content:"✓";position:absolute;left:2px;color:var(--akzent);font-weight:700}.hs-preis .cta{margin-top:18px;display:block;text-align:center;background:linear-gradient(90deg,#f8b414,#e84f2f);color:#12100e!important;border-radius:12px;padding:12px;font-weight:700;text-decoration:none!important}.hs-note{background:#fdf6e3;border:1px solid #f0dcb0;border-radius:14px;padding:14px 18px;font-size:.88rem;margin-top:16px}.hs-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.hs-chips a{background:#fff;border:1.5px solid #e8dcc6;border-radius:999px;padding:9px 18px;font-size:.9rem;font-weight:700;color:#c7321f!important;text-decoration:none!important;transition:all .25s}.hs-chips a:hover{border-color:var(--akzent);background:#f19431;color:#12100e!important;transform:translateY(-2px)}.hs-faq details{background:#fff;border-radius:14px;box-shadow:0 6px 20px rgba(21,18,16,.07);margin-bottom:10px;overflow:hidden}.hs-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 20px;font-weight:700;font-size:.98rem;color:var(--text,#231f1c)}.hs-faq summary::-webkit-details-marker{display:none}.hs-faq summary::after{content:"+";font-family:Anton,sans-serif;font-size:1.4rem;color:var(--akzent);transition:transform .3s;flex-shrink:0}.hs-faq details[open] summary::after{transform:rotate(45deg)}.hs-faq details p{padding:0 20px 18px;margin:0;font-size:.93rem;line-height:1.65}@media(prefers-reduced-motion:reduce){.hs-ticker-track,.hs-float,[class*=hs-]{animation:none!important}}
.hs-vs{margin-top:26px;background:radial-gradient(700px 300px at 80% 0%,rgba(230,168,23,.22),transparent 60%),#151210;border-radius:20px;padding:30px 24px;color:#fff}
.hs-vs h4{color:#fff;font-family:Anton,sans-serif;font-size:1.35rem;letter-spacing:.5px;margin-bottom:8px;text-align:center}
.hs-vs .hs-lead{color:#d9cbb0;text-align:center;margin:0 auto 20px;max-width:640px}
.hs-vs-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:760px;margin:0 auto}
@media(max-width:620px){.hs-vs-grid{grid-template-columns:1fr}}
.hs-vs-col{border-radius:14px;padding:18px 20px}
.hs-vs-col b{display:block;font-family:Anton,sans-serif;letter-spacing:.5px;margin-bottom:12px;font-size:1.02rem}
.hs-vs-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.hs-vs-col li{font-size:.86rem;padding-left:24px;position:relative;line-height:1.4}
.hs-vs-col.them{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.hs-vs-col.them b{color:#a89a8a}.hs-vs-col.them li{color:#b9ab99}
.hs-vs-col.them li::before{content:"•";position:absolute;left:4px;color:#a89a8a}
.hs-vs-col.them li.x::before{content:"✕";left:2px;color:#ff5f7a;font-weight:700}
.hs-vs-col.us{background:linear-gradient(135deg,rgba(241,148,49,.2),rgba(230,168,23,.22));border:1px solid rgba(252,201,0,.45)}
.hs-vs-col.us b{color:#fede15}.hs-vs-col.us li{color:#fdf6e3}
.hs-vs-col.us li.ok::before{content:"✓";position:absolute;left:2px;color:#fede15;font-weight:700}

/* -- Layout-Fixes (Template zentriert Content-Spalten nicht) -- */
.content-block{margin-left:auto;margin-right:auto}
.service-text-content{margin-left:auto;margin-right:auto}
body{overflow-x:hidden}
/* -- Kontrast auf dunklen Panels -- */
.hs-dark .hs-lead strong{color:#fff}
.hs-dark .hs-lead{color:#d9cbb0}
.hs-dark h4,.hs-dark h5{color:#fff}
/* -- Div-basierte Checkliste (kses-sicher fuer template-service.php, ohne <ul>) -- */
.hs-check-d{display:flex;flex-direction:column;gap:10px;margin:18px 0}
.hs-check-d>div{position:relative;padding:10px 0 10px 34px;color:#fdf6e3;font-size:.95rem;line-height:1.5;border-bottom:1px dashed rgba(255,255,255,.12)}
.hs-check-d>div::before{content:"✓";position:absolute;left:0;top:8px;width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#f19431,#fcc900);color:#0f0d0b;font-weight:700;font-size:.8rem;display:flex;align-items:center;justify-content:center}
.hs-light .hs-check-d>div,.hs-check-d.light>div{color:var(--text-muted,#6b6156);border-bottom-color:rgba(199,50,31,.12)}
/* -- Helles Panel als Gegenstueck zu hs-dark -- */
.hs-light{background:linear-gradient(135deg,rgba(241,148,49,.07),rgba(199,50,31,.07));border:1px solid rgba(199,50,31,.1);border-radius:20px;padding:30px 26px}
/* -- Stat-Chips (Zahlen-Highlights) -- */
.hs-stats{display:flex;flex-wrap:wrap;gap:14px;margin:22px 0}
.hs-stat{flex:1 1 140px;min-width:130px;text-align:center;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:16px 12px}
.hs-stat b{display:block;font-family:Anton,sans-serif;font-size:1.7rem;letter-spacing:.5px;background:linear-gradient(90deg,#f19431,#fcc900);-webkit-background-clip:text;background-clip:text;color:transparent}
.hs-stat span{font-size:.78rem;color:#b9ab99;line-height:1.35;display:block;margin-top:4px}
.hs-light .hs-stat,.hs-stats.light .hs-stat{background:#fff;border-color:rgba(199,50,31,.1)}
.hs-light .hs-stat span,.hs-stats.light .hs-stat span{color:var(--text-muted,#6b6156)}
/* -- Emoji-Icon-Kachel (kses-sicherer SVG-Ersatz) -- */
.hs-emoji{font-size:2rem;line-height:1;margin-bottom:10px;display:block}
/* -- Reveal-Stagger generalisiert (stadt: .content-block, service/category: section.fade-in) -- */
@media (prefers-reduced-motion:no-preference){
.fade-in.visible .hs-check li,.fade-in.visible .hs-check-d>div{opacity:0;animation:hsRise .45s ease forwards}
.fade-in.visible .hs-check li:nth-child(1),.fade-in.visible .hs-check-d>div:nth-child(1){animation-delay:.05s}
.fade-in.visible .hs-check li:nth-child(2),.fade-in.visible .hs-check-d>div:nth-child(2){animation-delay:.15s}
.fade-in.visible .hs-check li:nth-child(3),.fade-in.visible .hs-check-d>div:nth-child(3){animation-delay:.25s}
.fade-in.visible .hs-check li:nth-child(4),.fade-in.visible .hs-check-d>div:nth-child(4){animation-delay:.35s}
.fade-in.visible .hs-check li:nth-child(5),.fade-in.visible .hs-check-d>div:nth-child(5){animation-delay:.45s}
.fade-in.visible .hs-check li:nth-child(6),.fade-in.visible .hs-check-d>div:nth-child(6){animation-delay:.55s}
.fade-in.visible .hs-illu svg{animation:hsFloat 6s ease-in-out infinite}
.fade-in.visible .hs-stat{opacity:0;animation:hsRise .5s ease forwards}
.fade-in.visible .hs-stat:nth-child(2){animation-delay:.12s}
.fade-in.visible .hs-stat:nth-child(3){animation-delay:.24s}
.fade-in.visible .hs-stat:nth-child(4){animation-delay:.36s}
.hs-cat,.hs-edcard,.hs-ort,.hs-preis,.hs-vs-col,.hs-stat{transition:transform .3s ease,box-shadow .3s ease}
.hs-cat:hover,.hs-edcard:hover,.hs-ort:hover,.hs-preis:hover,.hs-vs-col:hover{transform:translateY(-4px)}
}
@keyframes hsRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes hsGlow{0%,100%{box-shadow:0 0 0 0 rgba(252,201,0,.4)}50%{box-shadow:0 0 0 14px rgba(252,201,0,0)}}

/* -- Failsafe: .fade-in blendet auch ohne IntersectionObserver ein -- */
@keyframes hsFadeFailsafe{to{opacity:1;transform:none}}
.fade-in{animation:hsFadeFailsafe .4s ease 2.5s forwards}
.fade-in.visible{animation:none}
@media (prefers-reduced-motion:reduce){.fade-in{opacity:1;transform:none;animation:none}}
/* ===== Ende HS-Design System v1 ===== */

/* ===== Design-Korrekturen v1.3 (2026-08-03) ===== */
/* 1) Panel-/Karten-Ueberschriften: h4 hatte keinerlei Styling -> 16px Browser-Default.
      Das Template splittet an h2/h3, deshalb sind Karten-Titel h4 und brauchen eigenes Styling. */
.hs-wrap h4,.hs-dark h4,.hs-light h4,.hs-cat h4,.hs-preis h4,.hs-ort h4,
.hs-step h4,.hs-edcard h4,.hs-vs h4,.hs-note h4{
  font-family:Anton,sans-serif;font-weight:400;letter-spacing:.4px;line-height:1.25;
  font-size:1.32rem;margin:0 0 10px}
.hs-cat h4,.hs-preis h4,.hs-ort h4,.hs-step h4,.hs-edcard h4{font-size:1.16rem}
.hs-dark h4,.hs-vs h4{color:#fff}
.hs-light h4,.hs-cat h4,.hs-preis h4,.hs-ort h4,.hs-step h4{color:var(--text,#231f1c)}
.hs-wrap h5{font-family:Anton,sans-serif;font-weight:400;font-size:.98rem;letter-spacing:.3px;margin:0 0 6px}
.hs-dark h5{color:#fdf6e3}

/* 2) Illustrations-Spalte: bei kses-Templates wurden SVGs entfernt, es blieb ein
      winziges Emoji in einer ~450px breiten Grid-Spalte stehen (viel Leerraum). */
.hs-illu{display:flex;align-items:center;justify-content:center;min-height:0}
.hs-illu>.hs-emoji{font-size:clamp(2.4rem,4.5vw,3.6rem);line-height:1;margin:0;
  opacity:.92;filter:drop-shadow(0 8px 24px rgba(0,0,0,.25))}
.hs-illu>.hs-emoji:only-child{font-size:clamp(3.2rem,7vw,5.2rem)}
.hs-illu{gap:14px;flex-wrap:wrap}
.hs-dark .hs-illu>.hs-emoji:only-child{opacity:.95}
/* zweispaltiges Panel: wenn rechts nur ein Emoji steht, Textspalte mehr Raum geben */
@media(min-width:821px){
  .hs-two:has(.hs-illu .hs-emoji):not(:has(.hs-illu svg)){grid-template-columns:1.55fr .45fr}
}

/* 3) Lauftext-Band: harte Kanten sahen nach abgeschnittenem Text aus -> weich ausblenden */
.hs-ticker{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%)}
/* ===== Ende Design-Korrekturen v1.3 ===== */
