.elementor-kit-3{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-color-ea61a19:#23B786;--e-global-color-1df8e86:#0B1220;--e-global-color-398bc3f:#020617;--e-global-color-906fef6:#E6C462;--e-global-color-b00b763:#0A2922;--e-global-color-0bb9ae5:#FFFFFF;--e-global-typography-primary-font-family:"Cormorant Garamond";--e-global-typography-primary-font-size:38px;--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-3 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:1.25rem;}.elementor-element{--widgets-spacing:1.25rem 1.25rem;--widgets-spacing-row:1.25rem;--widgets-spacing-column:1.25rem;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS */:root {
  --emerald-500: #10b981;
  --gold-100: #faf5e6;
  --gold-200: #f0e1b8;
  --gold-300: #e6c462;
  --gold-400: #d4a017;
  --ink: #f8fafc;
  --muted: #cfe9df;
  --glass: rgba(255, 255, 255, 0.08);
  --radius-xl: 22px;
  --radius-hero: 32px;
  --shadow-1: 0 10px 30px rgba(0, 0, 0, 0.25);
  --shadow-2: 0 20px 60px rgba(0, 0, 0, 0.45);
}
/* Layout Helpers */
.container-narrow {
  max-width: 1180px;
  margin-inline: auto;
  padding-inline: 20px;
}

/* Buttons (füge Klassen in Elementor unter "Erweitert → CSS-Klassen" hinzu) */
.btn-primary,
.btn-outline,
.btn-reservix,
.btn-ticket,
.btn-nav {
  transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease,
    background 0.25s ease, border-color 0.25s ease;
  will-change: transform;
}
.btn-primary {
  background: var(--emerald-500);
  color: #052b1f;
  border-radius: 999px;
  font-weight: 800;
  box-shadow: 0 8px 22px rgba(16, 185, 129, 0.35);
}
.btn-outline {
  background: transparent;
  color: var(--gold-100);
  border: 1px solid var(--gold-300);
  border-radius: 999px;
  font-weight: 700;
}
.btn-primary:hover,
.btn-outline:hover,
.btn-reservix:hover,
.btn-ticket:hover,
.btn-nav:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25),
    0 8px 22px rgba(212, 160, 23, 0.2);
}
.btn-primary:active,
.btn-outline:active,
.btn-reservix:active,
.btn-ticket:active,
.btn-nav:active {
  transform: translateY(0) scale(0.985);
}
.btn-primary:focus-visible,
.btn-outline:focus-visible,
.btn-reservix:focus-visible,
.btn-ticket:focus-visible,
.btn-nav:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(212, 160, 23, 0.45), 0 8px 22px rgba(0, 0, 0, 0.25);
  border-color: rgba(230, 196, 98, 0.65);
}
@media (prefers-reduced-motion: reduce) {
  .btn-primary,
  .btn-outline,
  .btn-reservix,
  .btn-ticket,
  .btn-nav {
    transition: none;
  }
}

/* Video-Karte */
.video-card {
  position: relative;
  aspect-ratio: 16/9;
  border-radius: var(--radius-hero);
  overflow: hidden;
  border: 1px solid rgba(230, 196, 98, 0.35);
  box-shadow: var(--shadow-2);
}
.video-card iframe,
.video-card .elementor-video {
  width: 100%;
  height: 100%;
  aspect-ratio: 16/9;
}


.video-glow {
  position: absolute;
  inset: -20%;
  background: radial-gradient(
    60% 60% at 70% 30%,
    rgba(230, 196, 98, 0.25),
    transparent 60%
  );
  pointer-events: none;
}

/* Eyebrow-Tag */
.eyebrow {
  display: inline-flex;
  gap: 0.5rem;
  align-items: center;
  padding: 0.35rem 0.7rem;
  border: 1px solid rgba(230, 196, 98, 0.35);
  border-radius: 999px;
  background: linear-gradient(
    180deg,
    rgba(246, 248, 246, 0.08),
    rgba(255, 255, 255, 0.02)
  );
  color: var(--gold-200);
  font-size: 0.95rem;
}

/* --- Elementor Button Mappings & Resets --- */

/* Primär */
.elementor-element.btn-primary .elementor-button,
.elementor-element .elementor-button.btn-primary,
a.btn-primary {
  background: var(--emerald-500) !important;
  background-image: none !important;
  color: #052b1f !important;
  border: none !important;
  border-radius: 999px !important;
  box-shadow: 0 8px 22px rgba(16, 185, 129, 0.35);
  font-weight: 800;
  width: auto !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.9rem 1.2rem;
  transition: transform 0.25s, box-shadow 0.25s, filter 0.25s,
    border-color 0.25s, background 0.25s;
}
.elementor-element.btn-primary .elementor-button:hover,
.elementor-element .elementor-button.btn-primary:hover,
a.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25),
    0 8px 22px rgba(212, 160, 23, 0.2);
}
.elementor-element.btn-primary .elementor-button:focus-visible,
.elementor-element .elementor-button.btn-primary:focus-visible,
a.btn-primary:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(212, 160, 23, 0.45), 0 8px 22px rgba(0, 0, 0, 0.25);
}

/* Outline */
.elementor-element.btn-outline .elementor-button,
.elementor-element .elementor-button.btn-outline,
a.btn-outline {
  background: transparent !important;
  background-image: none !important;
  color: var(--gold-100) !important;
  border: 1px solid var(--gold-300) !important;
  border-radius: 999px !important;
  font-weight: 700;
  width: auto !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.9rem 1.2rem;
  transition: transform 0.25s, box-shadow 0.25s, filter 0.25s,
    border-color 0.25s, background 0.25s;
}
.elementor-element.btn-outline .elementor-button:hover,
.elementor-element .elementor-button.btn-outline:hover,
a.btn-outline:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25),
    0 8px 22px rgba(212, 160, 23, 0.2);
}

/* Text in Button erbt Farbe */
.elementor-element.btn-primary .elementor-button .elementor-button-text,
.elementor-element .elementor-button.btn-primary .elementor-button-text,
.elementor-element.btn-outline .elementor-button .elementor-button-text,
.elementor-element .elementor-button.btn-outline .elementor-button-text {
  color: inherit !important;
}

/* Optional: Sheen-Glanz nur für Primär (wie Tour-Buttons, bleibt im Button) */
.elementor-element.btn-primary .elementor-button,
.elementor-element .elementor-button.btn-primary {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.elementor-element.btn-primary .elementor-button::before,
.elementor-element .elementor-button.btn-primary::before {
  content: "";
  position: absolute;
  top: 0;
  left: -45%;
  width: 40%;
  height: 100%;
  border-radius: inherit;
  pointer-events: none;
  z-index: 0;
  background: linear-gradient(
    120deg,
    transparent 0%,
    rgba(255, 255, 255, 0.55) 50%,
    transparent 100%
  );
  transform: translateX(0);
  transition: transform 0.6s ease;
}
.elementor-element.btn-primary .elementor-button:hover::before,
.elementor-element .elementor-button.btn-primary:hover::before {
  transform: translateX(250%);
}

/* Wrapper auf Inline-Breite normalisieren */
.elementor-element.btn-primary .elementor-button-wrapper,
.elementor-element.btn-outline .elementor-button-wrapper {
  display: inline-flex !important;
  width: auto !important;
}

/* Falls das Theme den Button trotzdem streckt */
.elementor-element.btn-primary,
.elementor-element.btn-outline {
  width: auto !important;
}

/* Button selbst sicher auf Inline-Breite halten */
.elementor-element.btn-primary .elementor-button,
.elementor-element .elementor-button.btn-primary,
.elementor-element.btn-outline .elementor-button,
.elementor-element .elementor-button.btn-outline {
  width: auto !important;
  min-width: unset !important;
  background-image: none !important; /* Theme-Gradient killen */
  box-shadow: none; /* Basis, unser Hover setzt eigenen Shadow */
}

/* Für Fälle, wo Theme ein :before-Overlay nutzt */
.elementor-element.btn-primary .elementor-button::after,
.elementor-element .elementor-button.btn-primary::after,
.elementor-element.btn-outline .elementor-button::after,
.elementor-element .elementor-button.btn-outline::after {
  content: none !important;
}

/* CTA-Row als Flexzeile */
.elementor-element.cta-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
}

/* Wrapper normalisieren, keine 100%-Breite */
.elementor-element.cta-row .elementor-button-wrapper {
  display: inline-flex !important;
  width: auto !important;
  margin: 0 !important;
}

/* Button selbst nicht strecken */
.elementor-element.cta-row .elementor-button {
  width: auto !important;
  min-width: unset !important;
  background-image: none !important; /* Theme-Gradient killen */
}

/* Falls die Buttons in getrennten Containern liegen: diese nicht strecken */
.elementor-element.btn-primary,
.elementor-element.btn-outline {
  width: auto !important;
}
/*  A) Einmal zentral definieren  */
:root {
  --bg-top: #032015;
  --bg-mid: #053824;
  --bg-bot: #084231;
}

/* Body behält den Verlauf (du hast das schon) */
body {
  background: radial-gradient(
      1200px 600px at 80% -10%,
      rgba(212, 160, 23, 0.25),
      transparent 60%
    ),
    linear-gradient(
      180deg,
      var(--bg-top),
      var(--bg-mid) 45%,
      var(--bg-bot) 100%
    );
}

/*  B) Standard-Elementor-Container durchsichtig halten  */
.elementor-section,
.e-con,
.elementor-container,
.elementor-widget-wrap {
  background: transparent !important;
  box-shadow: none; /* gegen versehentliche Shadows */
  border: none; /* gegen feine Linien */
}

/*  C) Weicher Übergang unter dem Hero (ohne Klick-Blockade) */
/* Addiere der HERO-Section in Elementor die CSS-ID: hero */
#hero {
  position: relative;
  overflow: visible;
}
#hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -40px;
  height: 120px;
  pointer-events: none; /* NICHT klick-blockend */
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.14) 55%,
    rgba(0, 0, 0, 0) 100%
  );
  filter: blur(0.3px); /* feine Weichheit */
}

/*  D) (Optional) Für alle „nahtlosen“ Sections eine Klasse nutzen */
.seamless-section {
  background: transparent !important;
  position: relative;
}

/* Optionale Hero-Wave für Live (unabhängig vom Canvas) */
/* Hero muss Bezugspunkt sein */
#hero {
  position: relative;
}

/* Content liegt über der Wave */
#hero > .elementor-container,
#hero .e-con-inner,
#hero .elementor-widget-wrap {
  position: relative;
  z-index: 1;
}

/* Goldene Wellenlinie (SVG als BG) */
#hero .hero-wave {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  /* <- HÖHE/ABSTAND hier feinjustieren */
  top: var(--wave-top, 6px);
  width: min(1200px, 92vw);
  height: 120px;
  pointer-events: none;
  z-index: 0;
  opacity: 0.55;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="120" viewBox="0 0 1200 120"><defs><linearGradient id="wg" x1="0" x2="1" y1="0" y2="0"><stop offset="0%" stop-color="%23e6c462"/><stop offset="100%" stop-color="%23b3860f"/></linearGradient></defs><path d="M0 80 C 150 20, 300 20, 450 80 S 750 140, 900 80 1050 20, 1200 80" fill="none" stroke="url(%23wg)" stroke-width="2" opacity="0.45" stroke-linecap="round"/></svg>')
    center / contain no-repeat;
}

/* Presets für schnelle Feineinstellung (eins aktivieren oder Wert oben setzen) */
/* :root{ --wave-top: 28px; }   // höher */
/* :root{ --wave-top: 36px; }   // normal */
/* :root{ --wave-top: 48px; }   // tiefer */

/* Tablet/Mobile ggf. leicht anheben, damit sie nicht ins Video läuft */
@media (max-width: 1280px) {
  #hero .hero-wave {
    top: 16px;
  }
}
@media (max-width: 767px) {
  #hero .hero-wave {
    top: 24px;
    width: 95vw;
  }
}

/* Im Elementor-Editor liegt oft etwas Extra-Spacing an – kompensieren: */
body.elementor-editor-active #hero .hero-wave {
  top: 40px;
}

/* Section & Grid */
.section-usps {
  background: transparent !important;
}
.usps-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

/* USP-Card – Glaslook, Goldkante, Lichtkehle */
.usp-card {
  position: relative;
  overflow: hidden;
  flex: 1 1 0;
  min-width: 260px;
  background: var(--glass);
  border: 1px solid rgba(230, 196, 98, 0.28);
  border-radius: var(--radius-xl);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
  transition: transform 0.25s ease, box-shadow 0.25s ease,
    border-color 0.25s ease;
  will-change: transform;
}
/* sanfte Lichtkehle oben rechts */
.usp-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(
    400px 200px at 120% -20%,
    rgba(230, 196, 98, 0.18),
    transparent 60%
  );
}
/* Hover */
.usp-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.25);
  border-color: rgba(230, 196, 98, 0.42);
}

/* Typo in der Karte */
.usp-card h3 {
  margin: 0.25rem 0 0.35rem;
  font-family: "Cormorant Garamond", serif;
  font-weight: 700;
  font-size: 1.25rem;
  color: var(--gold-200);
}
.usp-card p {
  margin: 0;
  color: var(--muted);
}

/* Optional: kleiner Stern ✦ rechts zentriert */
.usp-card .elementor-widget-html:last-child {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--gold-200);
  opacity: 0.7;
  pointer-events: none;
}
.usp-card:hover .elementor-widget-html:last-child {
  opacity: 1;
}

/* Responsiv – 3/2/1 Spalten */
@media (max-width: 900px) {
  .usps-grid .usp-card {
    flex: 1 1 calc(50% - 8px);
  }
}
@media (max-width: 600px) {
  .usps-grid .usp-card {
    flex: 1 1 100%;
  }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .usp-card {
    transition: none;
  }
}

/* Section & Titel */
.section-termine {
  background: transparent !important;
}
.termine-title {
  font-family: "Cormorant Garamond", serif;
  font-weight: 700;
  font-size: clamp(1.6rem, 3.2vw, 2.4rem);
  color: var(--gold-200);
  text-align: center;
  margin: 0 0 1.5rem 0;
}

/* Grid */
.shows {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.shows > .elementor-element {
  flex: 1 1 calc(33.333% - 11px);
} /* 3 Spalten */
@media (max-width: 1000px) {
  .shows > .elementor-element {
    flex: 1 1 calc(50% - 8px);
  }
} /* 2 */
@media (max-width: 640px) {
  .shows > .elementor-element {
    flex: 1 1 100%;
  }
} /* 1 */

/* Karte */
.show {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding: 16px;
  border-radius: 18px;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.06),
    rgba(255, 255, 255, 0.02)
  );
  border: 1px solid rgba(230, 196, 98, 0.22);
}
.show .row {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  color: var(--muted);
  font-weight: 600;
}
.show h4 {
  margin: 0.1rem 0;
  color: #fff;
  font-size: 1.15rem;
}
.show .venue {
  color: var(--muted);
}
.show .cta {
  margin-top: 0.25rem;
}

/* Button (mit Sheen, im Button geclippt) */
.btn-ticket {
  background: var(--gold-300) !important;
  color: #053021 !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 0.7rem 1rem !important;
  font-weight: 800 !important;
  width: 100% !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease;
}
.btn-ticket::before {
  content: "";
  position: absolute;
  top: 0;
  left: -45%;
  width: 40%;
  height: 100%;
  border-radius: inherit;
  pointer-events: none;
  z-index: 0;
  background: linear-gradient(
    120deg,
    transparent 0%,
    rgba(255, 255, 255, 0.55) 50%,
    transparent 100%
  );
  transform: translateX(0);
  transition: transform 0.6s ease;
}
.btn-ticket:hover {
  filter: brightness(1.05);
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.2),
    0 8px 22px rgba(212, 160, 23, 0.15);
}
.btn-ticket:hover::before {
  transform: translateX(250%);
}
@media (prefers-reduced-motion: reduce) {
  .btn-ticket {
    transition: none;
  }
  .btn-ticket::before {
    transition: none;
  }
}

/* Section & Grid bleiben transparent */
.section-termine,
.shows {
  background: transparent !important;
}

/* GRID-Spalten (3/2/1) – nur wenn du kein eigenes Grid nutzt */
.shows {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.shows > .elementor-element {
  flex: 1 1 calc(33.333% - 11px);
}
@media (max-width: 1000px) {
  .shows > .elementor-element {
    flex: 1 1 calc(50% - 8px);
  }
}
@media (max-width: 640px) {
  .shows > .elementor-element {
    flex: 1 1 100%;
  }
}

/* ========== KARTENLOOK wie im Canvas ========== */
.elementor-element.show {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  padding: 16px; /* Falls Padding im Builder fehlt, bleibt’s trotzdem */
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.06),
    rgba(255, 255, 255, 0.02)
  );
  border: 1px solid rgba(230, 196, 98, 0.22);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
}

/* sanfte „Lichtkehle“ oben rechts */
.elementor-element.show::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(
    400px 200px at 120% -20%,
    rgba(230, 196, 98, 0.18),
    transparent 60%
  );
}

/* Zeile: Datum links – Preis rechts */
.elementor-element.show .row {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  color: var(--muted);
  font-weight: 600;
}

/* City & Venue wie im Canvas */
.elementor-element.show .city {
  margin: 0.1rem 0;
  font-size: 1.15rem;
  color: #fff;
  font-family: inherit;
  line-height: 1.25;
}
.elementor-element.show .venue {
  margin: 0;
  color: var(--muted);
}

/* CTA unten */
.elementor-element.show .elementor-button.btn-ticket,
.elementor-element.show .btn-ticket.elementor-button,
.elementor-element.btn-ticket .elementor-button {
  background: var(--gold-300) !important;
  color: #053021 !important;
  border: none !important;
  border-radius: 999px !important;
  width: 100% !important;
  padding: 0.9rem 1.2rem !important;
  font-weight: 800 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease;
}

/* Sheen-Glanz nur im Button – sauber geclippt */
.elementor-element.show .elementor-button.btn-ticket::before,
.elementor-element.show .btn-ticket.elementor-button::before,
.elementor-element.btn-ticket .elementor-button::before {
  content: "";
  position: absolute;
  top: 0;
  left: -45%;
  width: 40%;
  height: 100%;
  border-radius: inherit;
  pointer-events: none;
  z-index: 0;
  background: linear-gradient(
    120deg,
    transparent 0%,
    rgba(255, 255, 255, 0.55) 50%,
    transparent 100%
  );
  transform: translateX(0);
  transition: transform 0.6s ease;
}
.elementor-element.show .elementor-button.btn-ticket:hover::before,
.elementor-element.show .btn-ticket.elementor-button:hover::before,
.elementor-element.btn-ticket .elementor-button:hover::before {
  transform: translateX(250%);
}
.elementor-element.show .elementor-button.btn-ticket:hover,
.elementor-element.show .btn-ticket.elementor-button:hover,
.elementor-element.btn-ticket .elementor-button:hover {
  filter: brightness(1.05);
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.2),
    0 8px 22px rgba(212, 160, 23, 0.15);
}

/* Sicherheit: Theme-Überlagerungen neutralisieren */
.elementor-element.show .elementor-button::after {
  content: none !important;
}
.elementor-element.show .elementor-widget-wrap {
  background: transparent !important;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .elementor-element.show .elementor-button.btn-ticket {
    transition: none;
  }
  .elementor-element.show .elementor-button.btn-ticket::before {
    transition: none;
  }
}

/* Galerie: 3/2/1 Spalten mit Elementor-Spalten */
.gallery .elementor-container {
  gap: 1rem;
} /* Zwischenraum zwischen Spalten */
@media (max-width: 900px) {
  .gallery .elementor-container {
    flex-wrap: wrap;
  }
}
@media (max-width: 900px) {
  .gallery .elementor-column {
    width: 50% !important;
  }
}
@media (max-width: 580px) {
  .gallery .elementor-column {
    width: 100% !important;
  }
}

/* Canvas-Look auf das Image-Widget (Figure/Img/Caption) */
.gallery .elementor-widget-image figure {
  margin: 0;
  border: 1px solid rgba(230, 196, 98, 0.28); /* 1px Gold-Rand */
  border-radius: 22px;
  overflow: hidden;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.06),
    rgba(255, 255, 255, 0.02)
  );
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
  position: relative;
  transform: translateZ(0);
}
.gallery .elementor-widget-image a {
  display: block;
  overflow: hidden;
}
.gallery .elementor-widget-image img {
  width: 100%;
  display: block;
  aspect-ratio: 4/3;
  object-fit: cover;
  transition: transform 0.6s ease, filter 0.6s ease;
}

/* Hover-Glow + Zoom-in (wie im Canvas) */
.gallery .elementor-widget-image figure:after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.4s ease;
  box-shadow: inset 0 0 0 2px rgba(230, 196, 98, 0.35),
    inset 0 -80px 120px rgba(212, 160, 23, 0.12);
}
.gallery .elementor-widget-image:hover img {
  transform: scale(1.06) translateY(-2px);
}
.gallery .elementor-widget-image:hover figure:after {
  opacity: 1;
}

/* Caption */
.gallery .elementor-widget-image figcaption {
  padding: 0.6rem 0.8rem;
  color: var(--muted);
  font-size: 0.9rem;
}

/* === Tour-Termine · Canvas-Look (Hard Patch) === */
/* Karte */
.section-termine .elementor-element.show {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding: 16px !important;
  border-radius: 18px !important;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.06),
    rgba(255, 255, 255, 0.02)
  ) !important;
  border: 1px solid rgba(230, 196, 98, 0.22) !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15) !important;
  overflow: hidden; /* Sheen wird im Button geclippt */
}

/* sanfte „Lichtkehle“ oben rechts */
.section-termine .elementor-element.show::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(
    400px 200px at 120% -20%,
    rgba(230, 196, 98, 0.18),
    transparent 60%
  );
}

/* Kopfzeile + Typo */
.section-termine .elementor-element.show .row {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  color: var(--muted);
  font-weight: 600;
}
.section-termine .elementor-element.show h4 {
  margin: 0.1rem 0;
  color: #fff;
  font-size: 1.15rem;
  line-height: 1.25;
}
.section-termine .elementor-element.show .venue {
  margin: 0;
  color: var(--muted);
}

/* CTA-Button – schlanke, volle Pill + Sheen */
.section-termine .elementor-element.show .elementor-button,
.section-termine .elementor-element.show .btn-ticket.elementor-button,
.section-termine .elementor-element.show a.btn-ticket {
  width: 100% !important;
  padding: 0.9rem 1.2rem !important; /* Höhe wie im Canvas */
  line-height: 1.2 !important;
  background: var(--gold-300) !important;
  color: #053021 !important;
  border: none !important;
  border-radius: 999px !important;
  background-image: none !important;
  box-shadow: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.25s, box-shadow 0.25s, filter 0.25s;
}
/* killt Theme-Overlays / Doppelrahmen */
.section-termine .elementor-element.show .elementor-button::after,
.section-termine
  .elementor-element.show
  .elementor-button
  .elementor-button-content-wrapper::before,
.section-termine
  .elementor-element.show
  .elementor-button
  .elementor-button-content-wrapper::after {
  content: none !important;
}
.section-termine
  .elementor-element.show
  .elementor-button
  .elementor-button-content-wrapper {
  padding: 0 !important;
  background: none !important;
  border: none !important;
  border-radius: inherit !important;
}
/* Sheen im Button */
.section-termine .elementor-element.show .elementor-button::before {
  content: "";
  position: absolute;
  top: 0;
  left: -45%;
  width: 40%;
  height: 100%;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(
    120deg,
    transparent 0%,
    rgba(255, 255, 255, 0.55) 50%,
    transparent 100%
  );
  transform: translateX(0);
  transition: transform 0.6s ease;
}
.section-termine .elementor-element.show .elementor-button:hover::before {
  transform: translateX(250%);
}
.section-termine .elementor-element.show .elementor-button:hover {
  filter: brightness(1.05);
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.2),
    0 8px 22px rgba(212, 160, 23, 0.15);
}

/* Sicherheit: Container/Wrappers transparent lassen */
.section-termine .elementor-element.show .elementor-widget-wrap {
  background: transparent !important;
}

/* -- Aufräum-/Sicherheits-Patch -- */

/* 1) Schnee: über Content, aber respektiert "reduce motion" */
.snowflake {
  z-index: 25;
} /* lag bei 5 */
@media (prefers-reduced-motion: reduce) {
  .snowflake {
    display: none !important;
  }
}

/* 2) Einmalige .shows-Definition erzwingen (redundante Blöcke können raus) */
.shows {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.shows > .elementor-element {
  flex: 1 1 calc(33.333% - 11px);
}
@media (max-width: 1000px) {
  .shows > .elementor-element {
    flex: 1 1 calc(50% - 8px);
  }
}
@media (max-width: 640px) {
  .shows > .elementor-element {
    flex: 1 1 100%;
  }
}

/* 3) Falls Elementor + Theme Buttons mobil strecken: narrow fix */
.section-termine .elementor-element.show .elementor-button-wrapper {
  width: 100% !important;
}
.section-termine .elementor-element.show .elementor-button {
  width: 100% !important;
}/* End custom CSS */