/*
 * Feinschliff am übernommenen WordPress-Design (nach dem 1:1-Umzug).
 * Bewusst getrennt von wp.css (Original) und wp-app.css (App-Teile).
 */

/* ---------- Breiterer Block (appweit) ---------- */
@media (min-width: 1300px) {
  .container {
    width: clamp(1250px, calc(100vw - 100px), 1560px) !important;
  }
}

/* ---------- 1. Kein Blocksatz: linksbündig liest sich ruhiger ---------- */
.master_container [style*='justify'],
.master_container p,
.master_container li,
.master_container .wpb_text_column {
  text-align: left !important;
  text-align-last: auto !important;
  hyphens: manual;
}
.master_container [style*='text-align: center'],
.master_container [style*='text-align:center'],
.master_container .vc_align_center,
.master_container .ult-new-ib-content,
.master_container .ult-new-ib-content p,
.master_container .ult_pricing_table,
.master_container .ult_pricing_table p,
.master_container .ult_pricing_table li {
  text-align: center !important;
}


/* ---------- 7. Alle Überschriften in Blockschrift (Versalien) – app-weit ---------- */
.master_container :is(h1, h2, h3, h4, h5, h6),
.wp-theme :is(h1, h2, h3, h4, h5, h6),
.hazel-push-sidebar :is(h1, h2, h3, h4, h5, h6),
#big_footer :is(h1, h2, h3, h4, h5, h6) {
  text-transform: uppercase !important;
}
.master_container h2.custom_h2,
.master_container h3.vc_custom_heading,
.master_container h4.vc_custom_heading {
  letter-spacing: 2px !important;
}
.master_container h3.ac-style {
  letter-spacing: 1px !important;
}
.master_container h2.custom_h2 {
  font-size: 28px !important;
  line-height: 1.25 !important;
  color: #fff;
}
.master_container h4.vc_custom_heading {
  font-size: 24px !important;
  line-height: 1.3 !important;
}
.master_container h3.ac-style {
  font-size: 19px !important;
  line-height: 1.35 !important;
}

/* ---------- 2. Große Überschriften am Handy: weniger Sperrung ---------- */
@media (max-width: 767px) {
  .master_container h2.vc_custom_heading:not(.custom_h2),
  .master_container .hero-title {
    font-size: 22px !important;
    letter-spacing: 2px !important;
    line-height: 1.3 !important;
  }
  .master_container h1.vc_custom_heading {
    font-size: 13px !important;
    letter-spacing: 2px !important;
    line-height: 1.5 !important;
  }
  .master_container h2.custom_h2 {
    font-size: 22px !important;
  }
  .master_container h4.vc_custom_heading {
    font-size: 20px !important;
  }
}

/* ---------- 6. Menü etwas größer ---------- */
header .navbar-nav > li > a {
  font-size: 13px !important;
}
header .navbar-nav .dropdown-menu a {
  font-size: 15px !important;
}

/* ---------- 3. Kopfzeile: Termin-Button + Konto-Symbol ---------- */
.hazel_right_header_icons .header_social_icons {
  display: flex;
  align-items: center;
}
.wp-account-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-left: 22px;
  color: #a1a1a1 !important;
  border: 1px solid transparent;
  transition: color 0.2s, border-color 0.2s;
}
.wp-account-icon:hover,
.wp-account-icon:focus-visible {
  color: #fff !important;
  border-color: #a1a1a1;
}
.hazel-header-button .nav-to {
  white-space: nowrap;
}
@media (max-width: 1024px) {
  .wp-account-icon {
    display: none;
  }
}

/* ---------- 5. Social-Leiste im Schwarz-Weiß der Seite ---------- */
.socialbox ul li a,
.socialbox.sb-theme-color ul li a {
  background: #101010 !important;
  color: #fff !important;
  border: 1px solid #3a3a3a !important;
  border-right: 0 !important;
  margin-bottom: -1px;
}
.socialbox ul li a:hover,
.socialbox ul li a:focus-visible {
  background: #fff !important;
  color: #101010 !important;
  border-color: #fff !important;
}
.socialbox ul li a i {
  color: inherit !important;
}

/* ---------- 4. Startseite: Titel mit den zwei wichtigsten Wegen (ohne Bild) ---------- */
.wp-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin: 28px 0 34px;
}
.wp-hero-actions .vc_btn3 {
  margin: 0 !important;
}

/* ---------- Buchung: Kostenkarte rechts außerhalb des Blocks ----------
   Der Block (Titel, Text, Kalender) behält seine linke Kante wie auf allen Seiten;
   rechts daneben, außerhalb des Blocks, hängt die Karte und scrollt mit. */
@media (min-width: 1200px) {
  .page_content .container:has(.wp-booking) {
    --blk: clamp(1150px, calc(100vw - 100px), 1560px);
    --side: calc((100vw - var(--blk)) / 2);
    margin-left: var(--side) !important;
    margin-right: 0 !important;
    width: min(var(--blk), calc(100vw - var(--side) - 450px)) !important;
  }
  .wp-booking .booking-layout {
    grid-template-columns: minmax(0, 1fr) 330px !important;
    column-gap: 50px !important;
    margin-right: -380px;
  }
  .wp-booking .summary {
    position: sticky !important;
    top: 120px !important;
    align-self: start;
  }
}
.wp-booking .stepper .lbl {
  white-space: nowrap;
}
@media (max-width: 1500px) {
  .wp-booking .stepper .lbl {
    letter-spacing: 2px !important;
  }
}
@media (min-width: 768px) {
  .wp-booking .stepper {
    display: flex !important;
    justify-content: space-between !important;
    gap: 18px !important;
    grid-template-columns: none !important;
  }
  .wp-booking .stepper li {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0;
  }
}
@media (max-width: 1350px) {
  .wp-booking .stepper .lbl {
    letter-spacing: 1px !important;
  }
}
/* Auswahlkarten eckig wie Buttons und Felder der Seite */
.wp-booking .choice,
.wp-booking .choice img {
  border-radius: 0 !important;
}
/* overflow-x: hidden auf html/body macht body zum Scroll-Container und schaltet
   position: sticky ab – clip schneidet genauso ab, ohne diesen Nebeneffekt */
html,
body {
  overflow-x: clip !important;
  overflow-y: visible !important;
}

/* ---------- Gleicher Freiraum unten auf allen Seiten ----------
   Die Abstände am Ende der letzten Zeile (Leerräume, Ränder) waren je Seite verschieden;
   sie fallen weg, der Abstand kommt einheitlich von .page_content. */
.page_content .wpb-content-wrapper > .vc_row:last-child,
.page_content .wpb-content-wrapper > .vc_row:last-child > .wpb_column > .vc_column-inner {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}
.page_content .wpb-content-wrapper > .vc_row:last-child .wpb_wrapper > .vc_empty_space:last-child,
.page_content .wpb-content-wrapper > .vc_row:last-child .wpb_wrapper > .ult-spacer:last-child {
  display: none !important;
}
.page_content .wpb-content-wrapper > .vc_row:last-child .wpb_wrapper > :last-child,
.page_content .wpb-content-wrapper > .vc_row:last-child .wpb_wrapper > :last-child > :last-child,
.page_content .wpb-content-wrapper > .vc_row:last-child .wpb_text_column > .wpb_wrapper > p:last-child {
  margin-bottom: 0 !important;
}
.page_content {
  padding-bottom: 110px !important;
}
.wp-booking .step-actions {
  margin-bottom: 0 !important;
}
@media (max-width: 767px) {
  .page_content {
    padding-bottom: 72px !important;
  }
}
.wp-app > :last-child,
.wp-app > :last-child > :last-child,
.wp-app > :last-child > :last-child > :last-child,
.wp-app p:last-child {
  margin-bottom: 0 !important;
}
.wp-theme .area.wp-area {
  padding-bottom: 0 !important;
}
.wp-theme .area.wp-area {
  min-height: 0 !important;
}

/* ---------- Rechtstexte: Inhaltsverzeichnis links außerhalb des Blocks ---------- */
html {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
.wp-legal h3[id] {
  scroll-margin-top: 130px;
}
.wp-legal {
  position: relative;
}
/* Der WP-Inhalt ist gefloatet; Clearfix gibt dem Rahmen seine Höhe (für das mitlaufende Verzeichnis) */
.wp-legal::after {
  content: '';
  display: table;
  clear: both;
}
.wp-toc {
  display: none;
}
@media (min-width: 1200px) {
  .wp-legal {
    --blk: clamp(1150px, calc(100vw - 100px), 1560px);
    --side: calc((100vw - var(--blk)) / 2);
    --toc: 250px;
    --ml: max(var(--side), calc(50px + var(--toc) + 56px - 25px));
  }
  .wp-legal .page_content .container {
    margin-left: var(--ml) !important;
    margin-right: 0 !important;
    width: calc(100vw - var(--side) - var(--ml)) !important;
    max-width: var(--blk);
  }
  .wp-toc {
    display: block;
    position: absolute;
    z-index: 3;
    top: 0;
    bottom: 110px;
    left: calc(var(--ml) + 25px - 56px - var(--toc));
    width: var(--toc);
    padding-top: 190px;
  }
  .wp-toc-inner {
    position: sticky;
    top: 130px;
    max-height: calc(100vh - 160px);
    overflow-y: auto;
    padding-right: 6px;
    scrollbar-width: thin;
  }
}
.wp-toc-title {
  margin: 0 0 14px !important;
  font-family: 'Hind', sans-serif;
  font-size: 13px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #fff;
}
.wp-toc ol {
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
  border-left: 1px solid #2a2a2a;
}
.wp-toc li {
  margin: 0 !important;
  padding: 0 !important;
}
.wp-toc li::before {
  content: none !important;
}
.wp-toc a {
  display: block;
  margin-left: -1px;
  padding: 6px 0 6px 16px;
  border-left: 1px solid transparent;
  font-family: 'Mulish', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
  color: #a1a1a1 !important;
  text-decoration: none;
  transition: color 0.2s, border-color 0.2s;
}
.wp-toc a:hover {
  color: #fff !important;
}
.wp-toc a.on {
  color: #fff !important;
  border-left-color: #fff;
}
@media (max-width: 600px) {
  .wp-booking .day-note {
    display: none !important;
  }
}
/* Handy: nur die Schritt-Punkte; „Schritt x von 5" und die Überschrift sagen, wo man ist */
@media (max-width: 767px) {
  .wp-booking .stepper .lbl {
    display: none !important;
  }
}

/* Admin: Kopfzeile über die volle Breite wie auf der Seite, Inhalt im breiteren Block */
.wp-admin-bar .bar-inner {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 30px !important;
  min-height: 90px;
}
.wp-admin-bar .logo img {
  height: 55px !important;
}
.wp-admin .wrap {
  max-width: clamp(1150px, calc(100vw - 100px), 1560px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* =====================================================================
   Dezente Farbe: Eiche (#b8895a, aus dem Logo-Zeichen) als Akzent.
   Bei der Buchung übernimmt die gewählte Fotobox den Akzent:
   Woody = Holz, Pinky = Pink.
   ===================================================================== */
:root {
  --acc: #b8895a;
  --acc-ink: #101010;
  --acc-soft: rgba(184, 137, 90, 0.28);
  --ctl-h: 48px;
}
.booking-root[data-box='woody'] {
  --acc: #b8895a;
  --acc-soft: rgba(184, 137, 90, 0.3);
}
.booking-root[data-box='pinky'] {
  --acc: #e0428a;
  --acc-ink: #fff;
  --acc-soft: rgba(224, 66, 138, 0.3);
}

/* ---------- Buttons: Rahmen im Akzent, beim Darüberfahren gefüllt ---------- */
html body :is(.vc_btn3, .wpcf7-submit, .dfb-login-gate-btn, .wp-theme .btn, .wp-theme .pay-btn, .hazel-header-button .nav-to, .wp-booking-btn) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px;
  height: var(--ctl-h) !important;
  min-height: var(--ctl-h) !important;
  padding: 0 26px !important;
  box-sizing: border-box !important;
  border: 1px solid var(--acc) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #fff !important;
  font-family: Hind, sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 2px !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: background-color 0.25s, border-color 0.25s, color 0.25s !important;
}
html body :is(.vc_btn3, .wpcf7-submit, .dfb-login-gate-btn, .wp-theme .btn, .wp-theme .pay-btn, .hazel-header-button .nav-to) {
  background: linear-gradient(var(--acc), var(--acc)) no-repeat 0 0 / 0% 100% transparent !important;
  transition: background-size 0.45s cubic-bezier(0.65, 0, 0.35, 1), border-color 0.25s, color 0.2s 0.18s !important;
}
html body :is(.vc_btn3, .wpcf7-submit, .dfb-login-gate-btn, .wp-theme .btn, .wp-theme .pay-btn, .hazel-header-button .nav-to):is(:hover, :focus-visible):not(:disabled) {
  background-size: 100% 100% !important;
  border-color: var(--acc) !important;
  color: var(--acc-ink) !important;
}
html body .wp-theme .btn.ghost:not(:hover):not(:focus-visible) {
  border-color: #555 !important;
  color: #a1a1a1 !important;
}
html body .wp-theme .btn:disabled {
  opacity: 0.4 !important;
  cursor: not-allowed !important;
}
/* Kopfzeile: gleich hoch wie alle anderen */
.hazel-header-button .nav-to i {
  display: none;
}
/* Bild-/Symbolknöpfe im Admin bleiben rund und klein */
html body .wp-theme :is(.icon-btn, .icon-action, .link-btn) {
  height: auto !important;
  min-height: 0 !important;
}

/* ---------- Eingabefelder und Auswahllisten: gleiche Höhe ---------- */
html body :is(.main, .wp-theme)
  :is(input:is([type='text'], [type='email'], [type='tel'], [type='number'], [type='password'], [type='search'], [type='url'], [type='date'], :not([type])), select, .select-trigger) {
  height: var(--ctl-h) !important;
  min-height: var(--ctl-h) !important;
  box-sizing: border-box !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  font-size: 16px !important;
  line-height: 1.2 !important;
}
html body :is(.main, .wp-theme) :is(input, select, textarea, .select-trigger):focus-visible {
  outline: none !important;
  border-color: var(--acc) !important;
  box-shadow: 0 0 0 1px var(--acc) !important;
}
/* Login-Code: großzügige Schrift bleibt, Höhe wie alle */
html body .dfb-login-gate-form .dfb-code {
  font-size: 22px !important;
}

/* ---------- Häkchen: größer, im Akzent gefüllt mit echtem Haken ---------- */
html body :is(.main, .wp-theme) input[type='checkbox'],
html body .wp-theme input.toggle {
  appearance: none !important;
  -webkit-appearance: none !important;
  position: relative !important;
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  margin: 0 12px 0 0 !important;
  border: 2px solid var(--acc) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  cursor: pointer;
  vertical-align: -6px;
  transition: background-color 0.2s, box-shadow 0.2s;
}
html body .wp-theme input.toggle {
  margin: 0 !important;
}
html body :is(.main, .wp-theme) input[type='checkbox']:hover,
html body .wp-theme input.toggle:hover {
  box-shadow: 0 0 0 4px var(--acc-soft) !important;
}
html body :is(.main, .wp-theme) input[type='checkbox']:checked,
html body .wp-theme input.toggle:checked {
  background: var(--acc) !important;
}
html body :is(.main, .wp-theme) input[type='checkbox']::after,
html body .wp-theme input.toggle::after {
  content: none !important;
}
html body :is(.main, .wp-theme) input[type='checkbox']:checked::after,
html body .wp-theme input.toggle:checked::after {
  content: '' !important;
  position: absolute !important;
  inset: auto !important;
  left: 6px !important;
  top: 1px !important;
  width: 7px !important;
  height: 13px !important;
  border: solid var(--acc-ink) !important;
  border-width: 0 2.5px 2.5px 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  transform: rotate(45deg) !important;
  display: block !important;
}
html body :is(.main, .wp-theme) input[type='checkbox']:focus-visible {
  outline: none !important;
  box-shadow: 0 0 0 4px var(--acc-soft) !important;
}

/* ---------- Weitere dezente Akzente ---------- */
header .navbar-nav > li.current-menu-item > a::after,
header .navbar-nav > li.current-menu-ancestor > a::after,
header .navbar-nav > li > a:hover::after {
  background-color: var(--acc) !important;
}
.wp-toc a.on {
  border-left-color: var(--acc) !important;
}
.wp-theme .subnav a.active,
.wp-theme .subnav .subnav-trigger.active {
  border-bottom-color: var(--acc) !important;
}
.wp-account-icon:hover,
.wp-account-icon:focus-visible {
  border-color: var(--acc) !important;
}
.socialbox ul li a:hover,
.socialbox ul li a:focus-visible {
  background: var(--acc) !important;
  border-color: var(--acc) !important;
  color: var(--acc-ink) !important;
}
.master_container .vc_sep_line {
  border-color: #2a2a2a !important;
}
::selection {
  background: var(--acc);
  color: #101010;
}

/* ---------- Buchung: gewählte Box färbt Auswahl, Schritte und Karte ---------- */
.booking-root .choice.selected {
  border-color: var(--acc) !important;
  box-shadow: 0 0 0 1px var(--acc), 0 18px 40px -22px var(--acc) !important;
}
.booking-root .choice:not(.selected):hover {
  border-color: var(--acc-soft) !important;
}
.booking-root .choice.selected .check,
.booking-root .choice.selected .tick {
  border-color: var(--acc) !important;
  background: var(--acc) !important;
  color: var(--acc-ink) !important;
}
.booking-root .stepper li.current .dot {
  background: var(--acc) !important;
  border-color: var(--acc) !important;
  color: var(--acc-ink) !important;
}
.booking-root .stepper li.current .lbl {
  border-bottom-color: var(--acc) !important;
}
.booking-root .stepper li.done .dot {
  border-color: var(--acc) !important;
  color: var(--acc) !important;
}
.booking-root .summary-box {
  border-color: var(--acc) !important;
  box-shadow: 0 24px 50px -30px var(--acc) !important;
  transition: border-color 0.3s, box-shadow 0.3s;
}
.booking-root .summary-box .sum-total {
  border-top-color: var(--acc) !important;
}
.booking-root .cal-day.selected,
.booking-root .cal-day[aria-pressed='true'] {
  border-color: var(--acc) !important;
  box-shadow: inset 0 0 0 1px var(--acc) !important;
}
.booking-root .module-opt.on,
.booking-root .module-opt[aria-pressed='true'] {
  border-color: var(--acc) !important;
  background: var(--acc) !important;
  color: var(--acc-ink) !important;
}
.booking-root .variant.selected {
  border-color: var(--acc) !important;
  box-shadow: 0 0 0 1px var(--acc) !important;
}
.booking-root .extra-card.on {
  border-color: var(--acc) !important;
  box-shadow: 0 0 0 1px var(--acc), 0 18px 40px -24px var(--acc) !important;
}
.booking-root .variant {
  border-radius: 0 !important;
}
.booking-root .variant img {
  border-radius: 0 !important;
}
.booking-root .variant.selected {
  background: var(--acc-soft) !important;
}

/* Häkchen auf Höhe des Textes */
.booking-root .extra-card .price {
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  min-height: 27px;
  line-height: 27px !important;
}
.booking-root .extra-card .extra-toggle {
  display: flex;
  margin: 2px 0 0 !important;
}
/* einzeilig: mittig zum Text; mehrzeilig (is-multi, siehe CheckAlign): oben bündig mit der Schrift */
html body :is(.main, .wp-theme) label.check {
  align-items: center !important;
}
html body :is(.main, .wp-theme) label.check > input[type='checkbox'] {
  margin: 0 2px 0 0 !important;
}
html body :is(.main, .wp-theme) label.check.is-multi {
  align-items: flex-start !important;
}
html body :is(.main, .wp-theme) label.check.is-multi > input[type='checkbox'] {
  margin-top: 8px !important;
}

/* ---------- Pflichtfelder: rot umrandet statt Meldung oben ----------
   Rahmen so breit wie der normale (1 px, Häkchen 2 px); beim Fehlversuch pulsiert er kurz. */
:root {
  --bad-line: #e5484d;
}
@keyframes bad-pulse-a {
  0% { box-shadow: 0 0 0 0 rgba(229, 72, 77, 0.6); }
  70% { box-shadow: 0 0 0 9px rgba(229, 72, 77, 0); }
  100% { box-shadow: 0 0 0 0 rgba(229, 72, 77, 0); }
}
@keyframes bad-pulse-b {
  0% { box-shadow: 0 0 0 0 rgba(229, 72, 77, 0.6); }
  70% { box-shadow: 0 0 0 9px rgba(229, 72, 77, 0); }
  100% { box-shadow: 0 0 0 0 rgba(229, 72, 77, 0); }
}
html body :is(.main, .wp-theme) :is(
    .field.is-invalid :is(input, select, textarea, .select-trigger, .dp-trigger),
    :is(input, textarea, select).is-invalid:not([type='checkbox']):not([type='radio']),
    .check.is-invalid > input[type='checkbox'],
    input[type='checkbox'].is-invalid,
    .cal-wrap.is-invalid :is(.cal, .calendar),
    :is(.box-pick, .pkg-pick, .choice-grid).is-invalid .choice:not(:disabled),
    .variants.is-invalid .variant:not(:disabled),
    .panel.is-invalid
  ) {
  border-color: var(--bad-line) !important;
  box-shadow: none !important;
  animation: bad-pulse-a 1.1s ease-out 3;
}
html body [data-pulse='1'] :is(
    .field.is-invalid :is(input, select, textarea, .select-trigger, .dp-trigger),
    .check.is-invalid > input[type='checkbox'],
    .cal-wrap.is-invalid :is(.cal, .calendar),
    :is(.box-pick, .pkg-pick, .choice-grid).is-invalid .choice:not(:disabled),
    .variants.is-invalid .variant:not(:disabled),
    .panel.is-invalid
  ) {
  animation-name: bad-pulse-b;
}
html body :is(.main, .wp-theme) .field.is-invalid > label,
html body :is(.main, .wp-theme) .wpcf7-form-control-wrap.is-invalid::after,
html body :is(.main, .wp-theme) .dfb-field-wrap.is-invalid::after {
  color: var(--bad-line) !important;
}
@media (prefers-reduced-motion: reduce) {
  html body :is(.main, .wp-theme) .is-invalid,
  html body :is(.main, .wp-theme) .is-invalid * {
    animation: none !important;
  }
}

/* ---------- Eingaben: Inhalt weiß, Platzhalter grau – auch ohne Fokus ---------- */
html body :is(.main, .wp-theme) :is(input:not([type='checkbox']):not([type='radio']):not([type='file']), textarea, select) {
  color: #fff !important;
}
html body :is(.main, .wp-theme) :is(input, textarea)::placeholder {
  color: #6f6f6f !important;
  opacity: 1;
}
html body :is(.main, .wp-theme) :is(.select-trigger, .dp-trigger) {
  color: #fff !important;
}
html body :is(.main, .wp-theme) :is(.select-trigger, .dp-trigger).empty {
  color: #6f6f6f !important;
}

/* ---------- Buchung: Fotoboxen ganz sichtbar (quadratisches Foto links), Ausstattung rechts ---------- */
.booking-root .box-pick .row-choice {
  display: grid !important;
  grid-template-columns: minmax(150px, 42%) minmax(0, 1fr);
  align-items: stretch !important;
  padding: 0 !important;
  overflow: hidden;
  text-align: left;
}
.booking-root .box-pick .row-choice img {
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 1;
  object-fit: cover;
  object-position: 50% 50%;
  border-radius: 0 !important;
  transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.booking-root .box-pick .row-choice:not(:disabled):hover img {
  transform: scale(1.035);
}
.booking-root .box-pick .row-choice .body {
  padding: 22px 22px 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.booking-root .box-pick .row-choice .tick {
  z-index: 2;
}
.booking-root .box-features {
  list-style: none;
  margin: 8px 0 12px !important;
  padding: 0 !important;
}
html body .booking-root .box-features li {
  position: relative;
  list-style: none !important;
  padding: 3px 0 3px 18px !important;
  margin: 0 !important;
  font-size: 15px !important;
  line-height: 1.45 !important;
  color: #a1a1a1 !important;
}
.booking-root .box-features li::marker {
  content: none;
}
.booking-root .box-features li::before {
  content: '';
  position: absolute;
  left: 2px;
  top: 11px;
  width: 7px;
  height: 7px;
  background: var(--acc);
}
@media (max-width: 1250px) and (min-width: 761px) {
  .booking-root .box-pick .row-choice {
    grid-template-columns: minmax(0, 1fr);
  }
  .booking-root .box-pick .row-choice img {
    aspect-ratio: 16 / 10;
  }
}
@media (max-width: 600px) {
  .booking-root .box-pick .row-choice {
    grid-template-columns: 120px minmax(0, 1fr);
  }
  .booking-root .box-pick .row-choice .body {
    padding: 14px;
  }
}

/* ---------- Extras: Modelle und Hintergründe als Bildkacheln ---------- */
.booking-root .extra-card .variants {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
  gap: 10px !important;
  margin-top: 14px;
}
.booking-root .extra-card .variant {
  display: flex !important;
  flex-direction: column;
  align-items: stretch !important;
  gap: 6px !important;
  padding: 0 0 9px !important;
  overflow: hidden;
  background: transparent !important;
  border: 1px solid #3a3a3a !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-align: center;
  line-height: 1.3;
  transition: border-color 0.2s, transform 0.2s;
}
.booking-root .extra-card .variant:not(:disabled):hover {
  border-color: var(--acc) !important;
  transform: translateY(-2px);
}
.booking-root .extra-card .variant img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 0 !important;
  background: #fff;
}
.booking-root .extra-card .variant.selected {
  border-color: var(--acc) !important;
  box-shadow: 0 0 0 1px var(--acc) !important;
  background: var(--acc-soft) !important;
}
.booking-root .extra-card .variant:disabled {
  opacity: 0.35;
}
.booking-root .extra-card a.tiny {
  display: inline-block;
  margin-top: 12px;
}


/* =====================================================================
   Bewegung – dezent und im Stil der Seite. Alles entfällt bei
   „Bewegung reduzieren“ im Betriebssystem.
   ===================================================================== */
@media (prefers-reduced-motion: no-preference) {
  /* Seitentitel bleibt ruhig; Untertitel, Buttons und Trennlinie kommen sanft dazu */
  @keyframes fade-up {
    from {
      opacity: 0;
      transform: translateY(14px);
    }
  }
  @keyframes line-draw {
    from {
      transform: scaleX(0);
    }
  }
  .page_content .wpb-content-wrapper > .vc_row:first-child h1.vc_custom_heading,
  .wp-frame-head h1.vc_custom_heading,
  .wp-hero-actions {
    animation: fade-up 0.9s 0.45s cubic-bezier(0.2, 0.7, 0.2, 1) both;
  }
  .page_content .wpb-content-wrapper > .vc_row:first-child .vc_sep_line,
  .wp-frame-head .vc_sep_line {
    transform-origin: left center;
    animation: line-draw 1.2s 0.6s cubic-bezier(0.65, 0, 0.35, 1) both;
  }
  .page_content .wpb-content-wrapper > .vc_row:first-child .vc_sep_holder_r .vc_sep_line {
    animation-delay: 0.9s;
  }

  /* Social-Leiste fährt kurz nach dem Laden herein */
  @keyframes slide-in-right {
    from {
      transform: translateX(100%);
    }
  }
  .socialbox ul li {
    animation: slide-in-right 0.5s cubic-bezier(0.2, 0.7, 0.2, 1) both;
  }
  .socialbox ul li:nth-child(1) { animation-delay: 1s; }
  .socialbox ul li:nth-child(2) { animation-delay: 1.1s; }
  .socialbox ul li:nth-child(3) { animation-delay: 1.2s; }

  /* Bilder auf den Seiten: leichtes Heranzoomen beim Darüberfahren */
  .master_container .vc_single_image-wrapper,
  .master_container .ult-new-ib {
    overflow: hidden;
  }
  .master_container .vc_single_image-wrapper img,
  .master_container .ult-new-ib img {
    transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) !important;
  }
  .master_container .vc_single_image-wrapper:hover img,
  .master_container .ult-new-ib:hover img {
    transform: scale(1.04);
  }

  /* Buchung: jeder Schritt blendet weich ein */
  .booking-root .step-head,
  .booking-root .step-head ~ * {
    animation: fade-up 0.5s cubic-bezier(0.2, 0.7, 0.2, 1) both;
  }
  .booking-root .step-head ~ * {
    animation-delay: 0.08s;
  }
  .booking-root .step-head ~ * ~ * {
    animation-delay: 0.16s;
  }
  .booking-root .step-head ~ * ~ * ~ * {
    animation-delay: 0.24s;
  }
  /* Karten heben sich beim Darüberfahren */
  .booking-root .choice:not(:disabled),
  .booking-root .extra-card {
    transition: transform 0.25s cubic-bezier(0.2, 0.7, 0.2, 1), border-color 0.25s, box-shadow 0.3s !important;
  }
  .booking-root .choice:not(:disabled):hover {
    transform: translateY(-3px);
  }
  /* Häkchen springt beim Auswählen auf */
  @keyframes pop {
    0% { transform: scale(0.4); opacity: 0; }
    60% { transform: scale(1.15); opacity: 1; }
  }
  .booking-root .choice.selected .tick,
  .booking-root input[type='checkbox']:checked::after {
    animation: pop 0.35s cubic-bezier(0.2, 0.7, 0.2, 1);
  }
  .booking-root input[type='checkbox']:checked::after {
    animation-name: pop-check;
  }
  @keyframes pop-check {
    0% { opacity: 0; transform: rotate(45deg) scale(0.3); }
    60% { opacity: 1; transform: rotate(45deg) scale(1.2); }
  }
  /* Gesamtpreis: kurzer Akzent, wenn er sich ändert */
  @keyframes amount-in {
    0% { opacity: 0; transform: translateY(-8px); color: var(--acc); }
    60% { opacity: 1; transform: none; color: var(--acc); }
  }
  .booking-root .sum-amount {
    display: inline-block;
    animation: amount-in 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
  }
  /* Kalender: gewählter Tag federt */
  .booking-root .cal-day.selected {
    animation: pop 0.35s cubic-bezier(0.2, 0.7, 0.2, 1);
  }
}

/* ---------- Extras: größere Bilder ---------- */
.booking-root .extra-card {
  grid-template-columns: 200px minmax(0, 1fr) auto !important;
  gap: 22px !important;
  align-items: start;
}
.booking-root .extra-card > img {
  width: 200px !important;
  height: auto !important;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 0 !important;
}
.booking-root .extra-card .variants {
  grid-template-columns: repeat(auto-fill, minmax(124px, 1fr)) !important;
}
@media (max-width: 760px) {
  .booking-root .extra-card {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 14px !important;
  }
  .booking-root .extra-card > * {
    grid-column: 1 !important;
  }
  .booking-root .extra-card .price {
    justify-content: flex-start;
  }
  .booking-root .extra-card > img {
    width: 100% !important;
    aspect-ratio: 16 / 9;
  }
  .booking-root .extra-card > div:empty {
    display: none;
  }
  .booking-root .extra-card .variants {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

/* Inhalte sind immer sichtbar – das Einblenden beim Scrollen setzt das Skript nur für Blöcke weiter unten
   (vorher blieb die Seite leer, wenn das Skript nach einem Neuladen des Inhalts nicht erneut lief) */
.master_container .ult-animation {
  opacity: 1;
}

/* Admin: Spalten oben bündig, Häkchen mit Luft zum nächsten Feld */
.wp-admin :is(.cols, .grid2, .grid3) > .panel {
  margin-top: 0 !important;
}
.wp-admin :is(.cols, .grid2, .grid3) {
  align-items: start;
}
.wp-admin label.check {
  margin: 12px 0 20px !important;
}

/* ===== Seitenmenü: Bewertungs- & Partnerkarte ===== */
.hazel-push-sidebar .dfb-card{
  display:block; width:100%; min-width:0; box-sizing:border-box;
  background:linear-gradient(160deg,#1d1d1d 0%,#141414 100%);
  border:1px solid rgba(255,255,255,.09); border-radius:14px;
  padding:16px 18px; color:#fff; font-family:inherit; text-decoration:none;
  transition:transform .35s cubic-bezier(.2,.7,.2,1), border-color .35s, box-shadow .35s;
}
.hazel-push-sidebar .dfb-card:hover{
  transform:translateY(-3px);
  border-color:color-mix(in srgb, var(--acc,#b8895a) 55%, transparent);
  box-shadow:0 14px 30px -18px color-mix(in srgb, var(--acc,#b8895a) 60%, transparent);
}
.hazel-push-sidebar .dfb-card:focus-visible{outline:2px solid var(--acc,#b8895a); outline-offset:3px}
.hazel-push-sidebar .grb-card .grb-row{grid-template-columns:52px 1fr; column-gap:16px}
.hazel-push-sidebar .grb-google-logo img{width:46px; height:auto; display:block; transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.hazel-push-sidebar .grb-card:hover .grb-google-logo img{transform:rotate(-8deg) scale(1.06)}
.hazel-push-sidebar .grb-note{font-size:15px; font-weight:600; letter-spacing:.01em; margin-bottom:6px; color:#fff}
.hazel-push-sidebar .grb-rating-number{font-size:26px}
.hazel-push-sidebar .grb-based-on{color:#8d8d8d; transition:color .3s}
.hazel-push-sidebar .grb-card:hover .grb-based-on{color:#d6d6d6}

.hazel-push-sidebar .spb-card{padding:10px 10px 12px}
.hazel-push-sidebar .spb-stage{display:block; background:#f4f2ef; border-radius:9px; padding:14px 16px; cursor:pointer}
.hazel-push-sidebar span.spb-stage{cursor:default}
.hazel-push-sidebar .spb-rotator{display:block; position:relative; width:100%; height:78px}
.hazel-push-sidebar .spb-img{transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1); transform:scale(.96)}
.hazel-push-sidebar .spb-img.spb-visible{transform:none}
.hazel-push-sidebar .spb-foot{display:flex; align-items:center; justify-content:center; gap:12px; padding:10px 6px 0}
.hazel-push-sidebar .spb-name{font-size:13px; color:#bdbdbd; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; animation:spb-name .6s ease both}
@keyframes spb-name{from{opacity:0; transform:translateY(4px)}to{opacity:1; transform:none}}
.hazel-push-sidebar .spb-dots{display:flex; gap:6px; flex:none}
.hazel-push-sidebar .spb-dots button{
  all:unset; box-sizing:border-box; display:block; flex:none;
  width:6px !important; height:6px !important; min-width:0 !important; min-height:0 !important; padding:0 !important;
  border:0 !important; border-radius:3px !important; cursor:pointer; box-shadow:none !important;
  background:rgba(255,255,255,.25) !important; transition:width .35s cubic-bezier(.2,.7,.2,1), background .35s;
}
.hazel-push-sidebar .spb-dots button::before,.hazel-push-sidebar .spb-dots button::after{content:none !important}
.hazel-push-sidebar .spb-dots button:hover{background:rgba(255,255,255,.6) !important}
.hazel-push-sidebar .spb-dots button.on{width:18px !important; background:var(--acc,#b8895a) !important}
.hazel-push-sidebar .spb-dots button:focus-visible{outline:2px solid var(--acc,#b8895a); outline-offset:2px}
.hazel-push-sidebar a.grb-card, .hazel-push-sidebar a.grb-card:hover{color:#fff !important}
.hazel-push-sidebar .custom-html-widget{display:block; width:100%}
.hazel-push-sidebar .grb-rating-number{color:#fff}

/* Schließen-X: dreht sich beim Hover an Ort und Stelle (Drehpunkt = Mitte des X) und wird holzfarben */
.hazel-push-sidebar .sliderbar-menu-controller .hamburguer-trigger-menu-icon{
  transform-origin:50% 50%; transition:transform .45s cubic-bezier(.2,.7,.2,1);
}
.hazel-push-sidebar .sliderbar-menu-controller:hover .hamburguer-trigger-menu-icon,
.hazel-push-sidebar .sliderbar-menu-controller:focus-visible .hamburguer-trigger-menu-icon{transform:translateY(-.625px) rotate(90deg) scale(1.12)}
.hazel-push-sidebar .sliderbar-menu-controller .hamburguer-line{transition:background-color .3s}
.hazel-push-sidebar .sliderbar-menu-controller:hover .hamburguer-line{background-color:var(--acc,#b8895a) !important}
@media (prefers-reduced-motion: reduce){
  .hazel-push-sidebar .dfb-card,.hazel-push-sidebar .sliderbar-menu-controller .hamburguer-trigger-menu-icon{transition:none}
  .hazel-push-sidebar .dfb-card:hover{transform:none}
}

/* Admin-Menü: Aufklappliste nicht in Großbuchstaben der Leiste, sondern ruhig lesbar */
.wp-theme .admin-nav .menu-pop{min-width:260px; padding:6px !important}
.wp-theme .admin-nav .menu-pop a{
  display:block !important; text-transform:none !important; letter-spacing:.01em !important;
  font-size:15px !important; line-height:1.35 !important; padding:10px 12px !important;
  color:#d6d6d6 !important; border:0 !important; white-space:normal;
  transition:background .2s, color .2s;
}
.wp-theme .admin-nav .menu-pop a:hover,.wp-theme .admin-nav .menu-pop a:focus-visible{background:#1e1e1e !important; color:#fff !important}
.wp-theme .admin-nav .menu-pop a.on{color:#fff !important; box-shadow:inset 2px 0 0 var(--acc,#b8895a)}
.wp-theme .admin-nav .menu-pop a span{display:block}
.wp-theme .admin-nav .menu-pop a small{
  display:block; margin-top:2px; font-size:12px !important; letter-spacing:0 !important;
  text-transform:none !important; color:#8a8a8a !important;
}
.hazel-push-sidebar .spb-foot:empty{display:none}

/* Admin: dieselbe Kopfzeile wie die Webseite (WpHeader mit Admin-Menü) */
.wp-admin-shell .wp-admin{padding-top:150px !important}
.wp-admin-header .admin-account{position:relative; display:inline-block; vertical-align:middle}
header.wp-admin-header .admin-account > button.wp-admin-account{
  box-sizing:border-box !important; cursor:pointer; background:none !important; box-shadow:none !important;
  display:inline-flex !important; align-items:center; justify-content:center;
  width:40px !important; min-width:0 !important; height:40px !important; padding:0 !important; margin:0 0 0 22px !important;
  color:#a1a1a1 !important; border:1px solid transparent !important; border-radius:0 !important;
  transition:color .25s, border-color .25s;
}
header.wp-admin-header .admin-account > button.wp-admin-account svg{display:block; width:20px; height:20px; flex:none}
header.wp-admin-header .admin-account > button.wp-admin-account:hover,
header.wp-admin-header .admin-account.open > button.wp-admin-account{color:#fff !important; border-color:var(--acc,#b8895a) !important}
.wp-admin-header .admin-account .menu-pop{top:calc(100% + 10px) !important; right:0; left:auto; min-width:240px; text-align:left}
.wp-admin-header .admin-account .menu-pop a,.wp-admin-header .admin-account .menu-pop button{text-transform:none; letter-spacing:.01em; font-size:15px}
@media (max-width:767px){ .wp-admin-shell .wp-admin{padding-top:110px !important} }
@media (max-width:767px){ header.wp-admin-header .admin-account > button.wp-admin-account{margin:0 14px 0 0 !important} }

/* Admin: alle Seiten- und Abschnittsüberschriften außerhalb der Karten wie auf der Webseite
   (klein, grau, weit gesperrt – wie „Fotobox reservieren“) */
.wp-admin .wrap > h1,
.wp-admin .wrap > h2,
.wp-admin .wrap > .area-head h1,
.wp-admin .wrap > .area-head h2{
  font-family:'Hind',sans-serif !important; font-size:17px !important; font-weight:300 !important;
  letter-spacing:5px !important; text-transform:uppercase !important; color:#a1a1a1 !important;
  line-height:1.4 !important; margin:0 0 22px !important;
}
.wp-admin .wrap > h2:not(:first-child){margin-top:56px !important}
.wp-admin .wrap > .area-head{margin-bottom:22px}
.wp-admin .wrap > .area-head h1,.wp-admin .wrap > .area-head h2{margin:0 !important}

/* Admin Fotoboxen: Bild neben Name + Kurzbeschreibung (untereinander), danach genug Abstand */
.wp-admin .admin-card-head{align-items:stretch !important; gap:22px; margin-bottom:26px}
.wp-admin .admin-card-head .admin-thumb{width:118px; height:auto; min-height:118px; object-fit:contain; background:#0b0b0b; border:1px solid #222; border-radius:0}
.wp-admin .admin-card-fields{display:grid; gap:18px}
.wp-admin .admin-card-fields .field{margin:0 !important}

/* Aufzählungspunkte der Fotobox-Karten behalten immer die Farbe IHRER Box
   (nicht die der gerade gewählten): Woody = Holz, Pinky = Pink */
.booking-root .box-pick [data-box-card] .box-features li::before{background:var(--card-acc, #b8895a)}
.booking-root .box-pick [data-box-card='woody']{--card-acc:#b8895a}
.booking-root .box-pick [data-box-card='pinky']{--card-acc:#e0428a}

/* Basisumfang-Kacheln: Titel immer auf gleicher Höhe – der (beim Hover eingeblendete) Text
   reserviert stets Platz für 3 Zeilen, egal wie lang er ist (vorher saß „Lieferung“ höher) */
.ult-new-ib .ult-new-ib-content{min-height:90px}

/* Extras & Zubehör: Abstand Text → Preis = Abstand Überschrift → Text */
.master_container .wpb_text_column + h4.vc_custom_heading{margin-top:10px !important}

/* ===== Fragen & Antworten: jede Frage als Karte, offene Karte hervorgehoben ===== */
.master_container .mega-accordion .ui-accordion-header{
  position:relative; display:block; margin:10px 0 0 !important;
  padding:17px 56px 17px 22px !important; line-height:1.45 !important;
  background:#141414 !important; border:1px solid #262626 !important; border-radius:0 !important;
  color:#d8d8d8 !important; cursor:pointer; outline:none;
  transition:border-color .3s, background-color .3s, color .3s;
}
.master_container .mega-accordion .ui-accordion-header:first-child{margin-top:0 !important}
.master_container .mega-accordion .ui-accordion-header:hover{border-color:#3a3a3a !important; color:#fff !important}
.master_container .mega-accordion .ui-accordion-header:focus-visible{border-color:var(--acc) !important}
/* Plus rechts, dreht sich beim Öffnen zum × */
.master_container .mega-accordion .ui-accordion-header .ui-accordion-header-icon{
  position:absolute !important; right:22px; top:50%; left:auto !important; margin:-8px 0 0 !important;
  width:16px; height:16px; line-height:16px; text-align:center; font-size:14px !important;
  color:#8a8a8a; transition:transform .35s cubic-bezier(.2,.7,.2,1), color .3s;
}
.master_container .mega-accordion .ui-accordion-header.ui-state-active{
  background:#181818 !important; border-color:var(--acc) !important; border-bottom-color:transparent !important; color:#fff !important;
}
.master_container .mega-accordion .ui-accordion-header.ui-state-active .ui-accordion-header-icon{transform:rotate(45deg); color:var(--acc)}
.master_container .mega-accordion .mega-panel{
  background:#181818 !important; border:1px solid var(--acc) !important; border-top:0 !important; border-radius:0 !important;
  margin:0 !important;
}
/* Innenabstand ohne !important – sonst kann die Schließ-Animation ihn nicht verkleinern (Ruckeln am Ende) */
html body .master_container .mega-accordion .mega-panel.ui-accordion-content { padding: 0 22px 20px; }
.master_container .mega-accordion .mega-panel p{margin:0 0 10px !important}
.master_container .mega-accordion .mega-panel p:last-child{margin-bottom:0 !important}
.master_container .mega-accordion .mega-panel::before{
  content:''; display:block; height:1px; margin:0 0 16px; background:linear-gradient(90deg, color-mix(in srgb, var(--acc) 45%, transparent), transparent);
}

/* Buchung: Hinweistexte unter den Schritt-Überschriften über die volle Breite (kein Umbruch nach 640px) */
.booking-root .step-head p{max-width:none !important}

/* ===== Paketkarten (Pakete & Preise, Audio-Gästebuch Modelle & Preis) =====
   Dunkle Karte im Stil der Seite: Name + Preis oben, Leistungen als Liste mit Akzent-Punkten,
   Button unten in der Karte. Karten einer Reihe sind gleich hoch, Buttons auf einer Linie. */
@media (min-width: 768px) {
  .master_container .vc_row:has(> .wpb_column > .vc_column-inner > .wpb_wrapper > .ult_pricing_table_wrap) { display: flex; flex-wrap: wrap; }
  .master_container .vc_row:has(> .wpb_column > .vc_column-inner > .wpb_wrapper > .ult_pricing_table_wrap)::before,
  .master_container .vc_row:has(> .wpb_column > .vc_column-inner > .wpb_wrapper > .ult_pricing_table_wrap)::after { display: none; }
  .master_container .vc_row:has(> .wpb_column > .vc_column-inner > .wpb_wrapper > .ult_pricing_table_wrap) > .wpb_column { float: none; display: flex; box-sizing: border-box; }
  .master_container .vc_row:has(> .wpb_column > .vc_column-inner > .wpb_wrapper > .ult_pricing_table_wrap) > .vc_col-sm-3 { flex: 0 0 25%; max-width: 25%; }
  .master_container .vc_row:has(> .wpb_column > .vc_column-inner > .wpb_wrapper > .ult_pricing_table_wrap) > .vc_col-sm-4 { flex: 0 0 33.3333%; max-width: 33.3333%; }
  .master_container .vc_row:has(> .wpb_column > .vc_column-inner > .wpb_wrapper > .ult_pricing_table_wrap) > .vc_col-sm-6 { flex: 0 0 50%; max-width: 50%; }
  .master_container .vc_row:has(> .wpb_column > .vc_column-inner > .wpb_wrapper > .ult_pricing_table_wrap) > .wpb_column > .vc_column-inner { flex: 1; display: flex; }
}
.master_container .wpb_wrapper:has(> .ult_pricing_table_wrap) {
  flex: 1; display: flex; flex-direction: column; height: 100%;
  background: linear-gradient(170deg, #1a1a1a 0%, #121212 100%);
  border: 1px solid #262626; padding: 0 0 30px; margin-bottom: 30px;
  transition: transform .35s cubic-bezier(.2,.7,.2,1), border-color .35s, box-shadow .35s;
}
.master_container .wpb_wrapper:has(> .ult_pricing_table_wrap):hover {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--acc) 60%, transparent);
  box-shadow: 0 22px 40px -28px color-mix(in srgb, var(--acc) 70%, transparent);
}
.master_container .ult_pricing_table_wrap { flex: 1; margin: 0 !important; }
.master_container .ult_design_5 .ult_pricing_table { background: transparent !important; border: 0 !important; padding: 0 !important; color: #bdbdbd !important; }
.master_container .ult_design_5 .ult_pricing_table .ult_pricing_heading,
.master_container .ult_design_5 .ult_pricing_table .ult_price_body_block { background: transparent !important; top: 0 !important; }
.master_container .ult_design_5 .ult_pricing_heading { padding: 38px 30px 6px !important; }
.master_container .ult_design_5 .ult_pricing_heading h3 { font-size: 26px !important; letter-spacing: 5px !important; color: #fff !important; margin: 0 !important; }
.master_container .ult_design_5 .ult_pricing_heading,
.master_container .ult_design_5 .ult_price_body_block,
.master_container .ult_design_5 .ult_price_features { float: none !important; }
.master_container .ult_design_5 .ult_price_body_block { display: block !important; width: auto !important; padding: 0 0 26px !important; margin: 0 30px !important; border-bottom: 1px solid #2a2a2a; left: 0 !important; }
.master_container .ult_design_5 .ult_price_body { margin: 0 auto !important; width: 100% !important; display: block !important; }
.master_container .ult_design_5 .ult_price { display: block !important; text-align: center !important; }
.master_container .ult_design_5 .ult_price { padding: 0 !important; margin: 0 !important; }
.master_container .ult_design_5 .ult_price_figure { font-size: 56px !important; font-weight: 300 !important; color: #fff !important; letter-spacing: 1px; }
.master_container .ult_design_5 .ult_price_term { display: block; margin-top: 2px; font-size: 13px !important; font-weight: 400 !important; letter-spacing: 1.5px; text-transform: uppercase; color: #8a8a8a !important; }
.master_container .ult_design_5 .ult_price_features { padding: 18px 30px 6px !important; text-align: left !important; }
.master_container .ult_design_5 .ult_price_features ul { margin: 0 !important; padding: 0 !important; list-style: none !important; }
html body .master_container .ult_design_5 .ult_price_features ul li {
  position: relative; list-style: none !important; margin: 0 !important; padding: 9px 0 9px 22px !important;
  border-bottom: 1px solid #1f1f1f !important; line-height: 1.5 !important; text-align: left !important;
  color: #c4c4c4 !important; font-size: 16px !important;
}
.master_container .ult_design_5 .ult_price_features ul li:last-child { border-bottom: 0 !important; }
.master_container .ult_design_5 .ult_price_features ul li::before {
  content: ''; position: absolute; left: 2px; top: calc(9px + .75em - 3px); width: 6px; height: 6px; background: var(--acc);
}
.master_container .ult_design_5 .ult_clr { display: none; }
/* Button als Kartenfuß */
.master_container .wpb_wrapper:has(> .ult_pricing_table_wrap) > .vc_btn3-container { margin: 20px 30px 0 !important; text-align: center; }
.master_container .wpb_wrapper:has(> .ult_pricing_table_wrap) > .vc_btn3-container .vc_btn3 {
  display: flex !important; align-items: center; justify-content: center; width: 100%; box-sizing: border-box;
  min-height: 48px; padding: 0 18px !important; line-height: 1.2 !important; text-align: center;
}
/* Kein heller Schatten/Strich des alten Themes beim Hover */
.master_container .ult_pricing_table:hover { box-shadow: none !important; }
@media (prefers-reduced-motion: reduce) {
  .master_container .wpb_wrapper:has(> .ult_pricing_table_wrap):hover { transform: none; }
}

/* Buttons: Rahmen bleibt beim Hover 1px (das alte Theme machte ihn 2px dick → Text rutschte) */
html body .vc_btn3.vc_btn3.vc_btn3-style-outline-custom,
html body .vc_btn3.vc_btn3.vc_btn3-style-outline-custom:is(:hover, :focus, :focus-visible, :active),
html body :is(.vc_btn3, .wpcf7-submit, .dfb-login-gate-btn, .wp-theme .btn, .wp-theme .pay-btn, .hazel-header-button .nav-to):is(:hover, :focus, :focus-visible, :active) {
  border-width: 1px !important;
  border-style: solid !important;
  transform: none !important;
}

/* Social-Leiste: vertikal mittig am rechten Rand, Hover in den echten Markenfarben */
html body .socialbox.sb-sidebar-fixed.sb-pos-right {
  top: 50% !important; bottom: auto !important; right: 0 !important;
  transform: translateY(-50%) !important;
}
html body .socialbox ul li a.sb-facebook:is(:hover, :focus-visible) { background: #1877f2 !important; border-color: #1877f2 !important; color: #fff !important; }
html body .socialbox ul li a.sb-whatsapp:is(:hover, :focus-visible) { background: #25d366 !important; border-color: #25d366 !important; color: #fff !important; }
html body .socialbox ul li a.sb-email:is(:hover, :focus-visible) { background: var(--acc) !important; border-color: var(--acc) !important; color: #fff !important; }

/* Weiches Scrollen app-weit (Anker, Inhaltsverzeichnis, „nach oben“) – nicht bei reduzierter Bewegung */
@media (prefers-reduced-motion: no-preference) {
  html, html:root, body { scroll-behavior: smooth !important; }
}

/* Fragen & Antworten: beim Schließen bleibt die Karte bis zum Ende der Animation „offen“ gestaltet */
.master_container .mega-accordion .ui-accordion-header.is-closing {
  background: #181818 !important; border-color: var(--acc) !important; border-bottom-color: transparent !important; color: #fff !important;
}

/* YouTube erst nach Klick (Datenschutz) */
.master_container .wp-yt {
  position: relative; aspect-ratio: 16 / 9; width: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 24px; box-sizing: border-box;
  background: radial-gradient(120% 90% at 50% 40%, #232323 0%, #121212 70%); border: 1px solid #262626; text-align: center;
}
.master_container .wp-yt.is-playing { padding: 0; border: 0; background: #000; }
.master_container .wp-yt iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.master_container .wp-yt-play {
  all: unset; cursor: pointer; display: inline-flex; flex-direction: column; align-items: center; gap: 12px;
  color: #fff; font-family: Hind, sans-serif; font-size: 13px; letter-spacing: 2px; text-transform: uppercase;
}
.master_container .wp-yt-icon {
  width: 68px; height: 68px; border-radius: 50%; border: 1px solid var(--acc); position: relative;
  transition: background-color .3s, transform .3s;
}
.master_container .wp-yt-icon::after {
  content: ''; position: absolute; left: 27px; top: 22px; border-style: solid; border-width: 12px 0 12px 19px; border-color: transparent transparent transparent #fff;
}
.master_container .wp-yt-play:is(:hover, :focus-visible) .wp-yt-icon { background: var(--acc); transform: scale(1.06); }
.master_container .wp-yt-play:focus-visible { outline: 2px solid var(--acc); outline-offset: 6px; }
.master_container p.wp-yt-note { margin: 0 !important; max-width: 380px; font-size: 13px !important; line-height: 1.5; color: #8a8a8a !important; }
.master_container p.wp-yt-note a { color: #bdbdbd !important; text-decoration: underline; }

/* Overlay-Galerie: leicht gedreht wie hingelegte Fotoabzüge, mit Schatten; gerade beim Darüberfahren */
.master_container .srg-gallery { --srg-gap: 26px !important; column-gap: 26px !important; row-gap: 30px !important; padding: 14px 10px !important; }
.master_container .srg-item {
  overflow: visible !important;
  transform: rotate(var(--tilt, 0deg));
  transition: transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s, z-index 0s .5s;
  box-shadow: 0 18px 34px -16px rgba(0, 0, 0, .75), 0 2px 6px rgba(0, 0, 0, .35);
}
.master_container .srg-item:nth-child(6n + 1) { --tilt: -2.2deg; }
.master_container .srg-item:nth-child(6n + 2) { --tilt: 1.6deg; }
.master_container .srg-item:nth-child(6n + 3) { --tilt: -1deg; }
.master_container .srg-item:nth-child(6n + 4) { --tilt: 2.4deg; }
.master_container .srg-item:nth-child(6n + 5) { --tilt: -1.6deg; }
.master_container .srg-item:nth-child(6n + 6) { --tilt: 1.1deg; }
.master_container .srg-item:hover { transform: rotate(0deg) scale(1.03); z-index: 3; transition-delay: 0s; box-shadow: 0 26px 46px -18px rgba(0, 0, 0, .85); }
.master_container .srg-item img { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .master_container .srg-item { transition: none; } }

/* Seitenmenü: Kärnten-Karte mit pulsierendem Standortpunkt statt Marker */
.hazel-push-sidebar .wp-map { position: relative; display: block; line-height: 0; }
.hazel-push-sidebar .wp-map-dot {
  position: absolute; left: 59.4%; top: 75.5%; width: 10px; height: 10px; margin: -5px 0 0 -5px;
  border-radius: 50%; background: var(--acc, #b8895a); box-shadow: 0 0 0 2px rgba(16, 16, 16, .9);
}
.hazel-push-sidebar .wp-map-dot::before,
.hazel-push-sidebar .wp-map-dot::after {
  content: ''; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--acc, #b8895a); opacity: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .hazel-push-sidebar .wp-map-dot::before { animation: map-pulse 2.4s cubic-bezier(.2,.7,.2,1) infinite; }
  .hazel-push-sidebar .wp-map-dot::after { animation: map-pulse 2.4s cubic-bezier(.2,.7,.2,1) 1.2s infinite; }
}
@keyframes map-pulse {
  0% { transform: scale(1); opacity: .9; }
  100% { transform: scale(4.2); opacity: 0; }
}

/* Aufklapplisten (Anrede, Land, Art der Veranstaltung, Datum …) liegen immer über den folgenden Abschnitten:
   Der Abschnitt mit der offenen Liste wird nach vorne geholt (Animationen/Schatten erzeugen sonst eigene Ebenen) */
:is(.wp-theme, .booking-root) :is(fieldset, .form-card, .panel, .field, .grid2, .grid3, .row, .module-row, .cal-wrap, section, form):has(.select-list, .dp-pop, .addr-list) {
  position: relative;
  z-index: 60;
}
:is(.wp-theme, .booking-root) .select.open { position: relative; z-index: 61; }
:is(.wp-theme, .booking-root) .select-list,
:is(.wp-theme, .booking-root) .dp-pop,
:is(.wp-theme, .booking-root) .addr-list { z-index: 80 !important; }

/* Buchung – Schritt „Rechtliches“ */
.booking-root .legal-docs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-bottom: 20px; }
.booking-root .legal-doc { display: flex; flex-direction: column; margin: 0 !important; }
.booking-root .legal-doc p { flex: 1; }
.booking-root .legal-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.booking-root .legal-actions .btn { flex: 1 1 auto; }
.booking-root .legal-ok { margin: 4px 0 18px; }
@media (max-width: 760px) { .booking-root .legal-docs { grid-template-columns: 1fr; } }

/* Login-/Konto-Symbol in der Kopfzeile: kein Rahmen beim Hover, stattdessen eine kleine Animation
   (Kopf hebt sich, Schultern werden breiter) – passend zum animierten Seitenmenü-Symbol daneben */
html body .wp-account-icon,
html body header.wp-admin-header .admin-account > button.wp-admin-account { border-color: transparent !important; }
html body .wp-account-icon:is(:hover, :focus-visible),
html body header.wp-admin-header .admin-account > button.wp-admin-account:is(:hover, :focus-visible),
html body header.wp-admin-header .admin-account.open > button.wp-admin-account {
  border-color: transparent !important; color: #fff !important;
}
.wp-account-icon svg circle,
.wp-account-icon svg path,
button.wp-admin-account svg circle,
button.wp-admin-account svg path {
  transform-box: fill-box; transform-origin: 50% 100%;
  transition: transform .35s cubic-bezier(.2,.7,.2,1), stroke .3s;
}
.wp-account-icon:is(:hover, :focus-visible) svg circle,
button.wp-admin-account:is(:hover, :focus-visible) svg circle { transform: translateY(-2px); stroke: var(--acc, #b8895a); }
.wp-account-icon:is(:hover, :focus-visible) svg path,
button.wp-admin-account:is(:hover, :focus-visible) svg path { transform: scaleX(1.18); stroke: var(--acc, #b8895a); }
@media (prefers-reduced-motion: reduce) {
  .wp-account-icon svg *, button.wp-admin-account svg * { transition: none; }
}

/* =====================================================================
   Symbole als kleine SVG-Grafiken statt Icon-Schriften
   (Font Awesome + Ionicons = ~340 KB Download für 8 Symbole). Die Schriften
   werden dadurch gar nicht mehr geladen – schnellerer Seitenaufbau, v. a. am Handy.
   ===================================================================== */
:is(.fa, .fas, .fab, .far)[class*="fa-"],
.gosubmenu.ion-chevron-right,
.dl-menuwrapper li.dl-back { font-family: inherit !important; }
:is(.fa, .fas, .fab, .far)[class*="fa-"]::before,
.gosubmenu.ion-chevron-right::before,
.dl-menuwrapper li.dl-back::after {
  content: '' !important;
  font-family: sans-serif !important;
  display: inline-block;
  width: 1em;
  height: 1em;
  vertical-align: -0.14em;
  background-color: currentColor;
  -webkit-mask: var(--ico) center / contain no-repeat;
  mask: var(--ico) center / contain no-repeat;
}
.fa-plus { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v16M4 12h16'/%3E%3C/svg%3E"); }
.fa-minus { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16'/%3E%3C/svg%3E"); }
.fa-phone { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); }
.fa-envelope { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='1'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E"); }
.fa-facebook-f { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M14.5 8H17V4h-2.5C11.7 4 10 5.8 10 8.6V11H7v4h3v9h4v-9h3l.6-4H14V8.9c0-.6.3-.9.5-.9z'/%3E%3C/svg%3E"); }
.fa-whatsapp { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M17.47 14.38c-.3-.15-1.76-.87-2.03-.97-.27-.1-.47-.15-.67.15-.2.3-.77.97-.94 1.16-.17.2-.35.22-.64.07-.3-.15-1.26-.46-2.39-1.47-.88-.79-1.48-1.76-1.65-2.06-.17-.3-.02-.46.13-.61.13-.13.3-.35.45-.52.15-.17.2-.3.3-.5.1-.2.05-.37-.03-.52-.07-.15-.67-1.61-.92-2.21-.24-.58-.49-.5-.67-.51h-.57c-.2 0-.52.07-.79.37-.27.3-1.04 1.02-1.04 2.48s1.07 2.88 1.21 3.07c.15.2 2.1 3.2 5.08 4.49.71.31 1.26.49 1.7.63.71.23 1.36.2 1.87.12.57-.09 1.76-.72 2-1.41.25-.7.25-1.29.17-1.41-.07-.13-.27-.2-.57-.35zM12.05 21.79h-.01a9.87 9.87 0 0 1-5.03-1.38l-.36-.21-3.74.98 1-3.65-.24-.37a9.86 9.86 0 0 1-1.51-5.26c0-5.45 4.44-9.88 9.89-9.88 2.64 0 5.12 1.03 6.99 2.9a9.83 9.83 0 0 1 2.89 6.99c0 5.45-4.44 9.88-9.89 9.88zm8.41-18.3A11.82 11.82 0 0 0 12.05 0C5.5 0 .16 5.34.16 11.89c0 2.1.55 4.14 1.59 5.95L.06 24l6.3-1.65a11.88 11.88 0 0 0 5.68 1.45h.01c6.55 0 11.89-5.34 11.89-11.89a11.82 11.82 0 0 0-3.48-8.42z'/%3E%3C/svg%3E"); }
.gosubmenu.ion-chevron-right { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5l7 7-7 7'/%3E%3C/svg%3E"); }
.dl-menuwrapper li.dl-back { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 5l-7 7 7 7'/%3E%3C/svg%3E"); }

/* Schritt „Zubehör & Extras“: zwei Gruppen untereinander */
.booking-root .extra-group + .extra-group {
  margin-top: 8px;
}
.booking-root .extra-group > .sub-title {
  margin: 28px 0 14px !important;
}
.booking-root .extra-group:first-of-type > .sub-title {
  margin-top: 8px !important;
}
/* Eintrag ohne Bild: ruhige Fläche statt Lücke (Bild im Admin hochladbar) */
.booking-root .extra-card .extra-noimg {
  width: 200px;
  aspect-ratio: 4 / 3;
  background: rgba(127, 127, 127, 0.12);
  position: relative;
}
@media (max-width: 760px) {
  .booking-root .extra-card .extra-noimg {
    display: none;
  }
}
.booking-root .extra-card .extra-noimg::after {
  content: '';
  position: absolute;
  inset: 0;
  margin: auto;
  width: 30px;
  height: 30px;
  background: currentColor;
  opacity: 0.35;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Crect x='3' y='5' width='18' height='14' rx='1'/%3E%3Ccircle cx='9' cy='10' r='2'/%3E%3Cpath d='M21 16l-5-5-8 8'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Crect x='3' y='5' width='18' height='14' rx='1'/%3E%3Ccircle cx='9' cy='10' r='2'/%3E%3Cpath d='M21 16l-5-5-8 8'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Admin: Bild-Upload für Zubehör & Extras */
.wp-admin .extra-img-edit {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-bottom: 8px;
}
.wp-admin .extra-img-edit > img,
.wp-admin .extra-img-edit > .extra-img-empty {
  width: 96px;
  height: 72px;
  flex: none;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  opacity: 0.8;
}
.wp-admin .extra-img-edit.small > img,
.wp-admin .extra-img-edit.small > .extra-img-empty {
  width: 64px;
  height: 48px;
}
.wp-admin .extra-img-edit input[type='file'] {
  display: block;
  margin: 4px 0;
  max-width: 100%;
}
.wp-admin .variant-img-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.wp-admin .upload-block {
  margin: 8px 0 22px;
}
.wp-admin .upload-title {
  font-size: 12px;
  opacity: 0.75;
  margin: 0 0 10px;
}
.wp-admin .extra-img-edit {
  align-items: flex-start !important;
}
.wp-admin .extra-img-edit > div {
  flex: 1;
  min-width: 0;
}
.wp-admin details summary {
  cursor: pointer;
  margin: 4px 0;
}

/* Pakete & Preise: Zubehör/Extra ohne Bild */
.wp-extra-row .wp-extra-noimg {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  background: rgba(127, 127, 127, 0.12);
}
.wp-extra-row .vc_single_image-img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}
.wp-extra-row + .wp-extra-row {
  margin-top: 30px !important;
}
.wp-extra-row .vc_figure {
  display: block !important;
  width: 100%;
}

/* Buchung erfolgreich: Häkchen im Akzent-Ring (statt weißem Punkt) */
html body .wp-theme .success-mark,
html body .success-mark {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: transparent !important;
  border: 1px solid var(--acc, #b48759);
  color: var(--acc, #b48759) !important;
  display: grid;
  place-items: center;
  box-shadow: 0 0 0 8px rgba(180, 135, 89, 0.08) !important;
  margin: 0 auto 28px;
}
html body .next-steps {
  margin-top: 56px !important;
}

/* Kundenbereich: Karten nebeneinander beginnen auf derselben Höhe */
html body .cols.two > .panel,
html body .cols.two > .panel + .panel {
  margin-top: 0 !important;
  align-self: stretch;
}

/* Kundenbereich: fertiges Layout */
.final-layout {
  margin-bottom: 22px;
}
.final-layout-head {
  margin: 0 0 12px;
}

/* Admin: fertiges Layout hochladen */
.wp-admin .layout-admin {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.wp-admin .layout-admin-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
  margin-bottom: 12px;
}
.wp-admin .layout-admin-item img {
  width: 100%;
  display: block;
  margin-bottom: 8px;
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.wp-admin .layout-admin-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  margin: 6px 0 8px;
}

/* Kundenbereich: Erfolgsmeldung grün (z. B. nach dem Absenden von Overlay & Zeiten) */
html body .wp-area .notice.ok {
  background: rgba(95, 208, 143, 0.1) !important;
  border: 1px solid rgba(95, 208, 143, 0.45) !important;
  border-left: 4px solid #5fd08f !important;
  color: #7fe0a8 !important;
  border-radius: 0 !important;
}
html body .wp-area .notice.bad {
  background: rgba(240, 110, 110, 0.1) !important;
  border: 1px solid rgba(240, 110, 110, 0.45) !important;
  border-left: 4px solid #f06e6e !important;
  color: #f59a9a !important;
  border-radius: 0 !important;
}
/* Abmelden auf einer Linie mit den Reitern */
html body .wp-area-head {
  align-items: center !important;
}
html body .wp-area-head > .row {
  margin: 0 !important;
  align-items: center;
}
html body .wp-area-head > .subnav {
  margin: 0 !important;
}
html body .wp-area-head {
  margin-bottom: 40px !important;
}

/* Kundenbereich: Fotos & Audio-Aufnahmen */
.event-media-wrap {
  margin-top: 40px;
}
.event-media-wrap .event-media + .event-media {
  margin-top: 24px;
}
.event-media-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  flex-wrap: wrap;
}
.event-media-head .panel-title {
  margin-bottom: 6px !important;
}
.event-media-frame {
  display: block;
  width: 100%;
  height: 460px;
  border: 0;
  margin-top: 20px;
  background: #fff;
}
.event-media-frame.tall {
  height: 720px;
  background: transparent;
}
@media (max-width: 760px) {
  .event-media-frame.tall {
    height: 560px;
  }
}

/* Offene Aufklappliste: Beschriftung (z. B. „Anrede“) bleibt über dem Rahmen, sonst läuft die Linie durch den Text */
:is(.wp-theme, .booking-root) .field:has(.select.open, .dp-pop, .addr-list) > label {
  z-index: 62 !important;
}

/* Zurück-Knopf („Alle Kunden“, „Alle Buchungen“ …) – deutlich als Knopf erkennbar */
html body .back-row {
  margin: 0 0 22px !important;
}
html body :is(.wp-theme, .wp-admin, .main) a.btn.back-btn {
  display: inline-flex !important;
  align-items: center;
  gap: 10px;
  padding-left: 16px !important;
  border-color: var(--acc, #b48759) !important;
}
html body :is(.wp-theme, .wp-admin, .main) a.btn.back-btn svg {
  flex: none;
  transition: transform 0.2s ease;
}
html body :is(.wp-theme, .wp-admin, .main) a.btn.back-btn:hover svg {
  transform: translateX(-3px);
}
@media (prefers-reduced-motion: reduce) {
  html body a.btn.back-btn:hover svg { transform: none; }
}

/* Social-Leiste: auf ganze Pixel zentriert (translateY(-50%) konnte halbe Pixel und damit fehlende Rahmenlinien erzeugen),
   jedes Symbol mit vollständigem Rahmen und etwas Abstand zueinander */
html body .socialbox.sb-sidebar-fixed.sb-pos-right {
  top: 50% !important;
  transform: none !important;
  margin-top: -71px !important; /* (3 × 42 px + 2 × 8 px) / 2 */
}
html body .socialbox > ul > li + li {
  margin-top: 8px;
}
html body .socialbox > ul > li > a,
html body .socialbox.sb-theme-color > ul > li > a {
  width: 42px !important;
  height: 42px !important;
  line-height: 42px !important;
  margin: 0 !important;
  border: 1px solid #3a3a3a !important;
  border-right: 0 !important;
  box-sizing: border-box !important;
}

/* Fußzeile: Impressum, Datenschutz, AGB immer direkt erreichbar (§ 5 ECG) */
.dfb-legal-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 26px;
  padding: 34px 16px 40px;
  border-top: 1px solid #262626;
  font-size: 13px;
  letter-spacing: 0.06em;
  color: #8a8a8a;
}
.dfb-legal-footer a {
  color: #bdbdbd !important;
  text-decoration: none;
}
.dfb-legal-footer a:hover,
.dfb-legal-footer a:focus-visible {
  color: #fff !important;
  text-decoration: underline;
}

/* FAQ: Plus exakt mittig im Kästchen – dreht sich so auf der Stelle zum × (statt seitlich wegzurollen) */
.master_container .mega-accordion .ui-accordion-header .ui-accordion-header-icon {
  display: flex !important;
  align-items: center;
  justify-content: center;
  transform-origin: 50% 50%;
}
.master_container .mega-accordion .ui-accordion-header .ui-accordion-header-icon::before {
  display: block !important;
  flex: 0 0 14px !important;
  min-width: 14px !important;
  width: 14px !important;
  height: 14px !important;
  vertical-align: 0 !important;
  margin: 0 !important;
}

/* Social-Leiste: beim Darüberfahren fährt das Kästchen ein Stück heraus (nach links), die anderen bleiben stehen */
html body .socialbox > ul > li {
  display: flex;
  justify-content: flex-end;
}
html body .socialbox > ul > li > a,
html body .socialbox.sb-theme-color > ul > li > a {
  transition: width 0.25s cubic-bezier(0.2, 0.7, 0.2, 1), background-color 0.2s, border-color 0.2s, color 0.2s !important;
}
html body .socialbox > ul > li > a:is(:hover, :focus-visible) {
  width: 56px !important;
}
@media (prefers-reduced-motion: reduce) {
  html body .socialbox > ul > li > a { transition: none !important; }
}

/* YouTube (Klick zum Laden): Platzhalter füllt die 16:9-Fläche des WordPress-Videorahmens,
   statt darunter zu stehen – das Video beginnt so auf Höhe der Überschrift */
.master_container .wpb_video_widget .wpb_video_wrapper > .wp-yt {
  position: absolute !important;
  inset: 0;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  box-sizing: border-box;
}

/* Admin → Overlays: Formular mit Luft, Karten bündig in einer Reihe */
html body .wp-admin .ov-upload > summary {
  margin-bottom: 0 !important;
}
html body .wp-admin .ov-upload[open] > summary {
  margin-bottom: 18px !important;
}
html body .wp-admin .ov-upload .ov-upload-hint {
  margin: 0 0 30px !important;
}
html body .wp-admin .ov-upload .ov-upload-grid {
  row-gap: 30px !important;
  column-gap: 24px !important;
  margin-bottom: 28px;
}
html body .wp-admin .ov-upload .ov-upload-grid > .field {
  margin: 0 !important;
}
html body .wp-admin .ov-upload + datalist + .chips,
html body .wp-admin .ov-upload ~ .chips {
  margin: 30px 0 24px !important;
}
html body .wp-admin .overlay-grid {
  align-items: start;
}
html body .wp-admin .overlay-grid > .panel,
html body .wp-admin .overlay-grid > .panel + .panel {
  margin: 0 !important;
}

/* FAQ: Plus dreht sich browserübergreifend (auch Safari) exakt auf der Stelle zum ×.
   Die alte jQuery-UI-Klasse .ui-icon verschiebt Inhalt mit text-indent:-99999px – das neutralisieren,
   das Symbol absolut in die Mitte setzen und von rotate(0) aus drehen (nicht von „none“). */
html body .master_container .mega-accordion .ui-accordion-header .ui-accordion-header-icon {
  display: block !important;
  text-indent: 0 !important;
  overflow: visible !important;
  background: none !important;
  vertical-align: 0 !important;
  transform: rotate(0deg);
  transform-origin: 50% 50% !important;
  transform-box: border-box;
  will-change: transform;
}
html body .master_container .mega-accordion .ui-accordion-header .ui-accordion-header-icon::before {
  position: absolute !important;
  inset: 0 !important;
  margin: auto !important;
  width: 14px !important;
  height: 14px !important;
  -webkit-mask-position: center !important;
  mask-position: center !important;
}
html body .master_container .mega-accordion .ui-accordion-header.ui-state-active .ui-accordion-header-icon {
  transform: rotate(45deg);
}

/* ---------- Fußzeile ---------- */
.dfb-footer {
  --f-acc: var(--acc, #b48759);
  background: #0c0c0c;
  border-top: 1px solid #1f1f1f;
  color: #9a9a9a;
  font-size: 15px;
  line-height: 1.7;
}
.dfb-footer-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 72px 24px 0;
}
/* Band mit den Ecken aus dem Logo */
.dfb-footer-cta {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px 40px;
  flex-wrap: wrap;
  padding: 38px 44px;
  margin-bottom: 64px;
}
.dfb-footer-cta::before,
.dfb-footer-cta::after {
  content: '';
  position: absolute;
  width: 64px;
  height: 46px;
  border: 0 solid var(--f-acc);
  pointer-events: none;
}
.dfb-footer-cta::before {
  left: 0;
  top: 0;
  border-left-width: 1px;
  border-top-width: 1px;
}
.dfb-footer-cta::after {
  right: 0;
  bottom: 0;
  border-right-width: 1px;
  border-bottom-width: 1px;
}
.dfb-footer-cta-text {
  margin: 0 !important;
  color: #fff;
  font-size: clamp(22px, 2.6vw, 30px);
  line-height: 1.3;
  font-weight: 300;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.dfb-footer-cta-text span {
  display: block;
  margin-top: 10px;
  color: #9a9a9a;
  font-size: 15px;
  letter-spacing: 0;
  text-transform: none;
}
html body .dfb-footer a.dfb-footer-btn {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 28px;
  border: 1px solid var(--f-acc) !important;
  color: #fff !important;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: background-color 0.25s, color 0.25s;
}
html body .dfb-footer a.dfb-footer-btn:is(:hover, :focus-visible) {
  background: var(--f-acc);
  color: #0c0c0c !important;
}
/* Spalten */
.dfb-footer-cols {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1.2fr 1.1fr;
  gap: 40px 48px;
  padding-bottom: 56px;
}
.dfb-footer-col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  min-width: 0;
}
html body .dfb-footer h4 {
  margin: 0 0 12px !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  line-height: 1.4 !important;
}
.dfb-footer-brand img {
  width: 200px;
  height: auto;
  margin-bottom: 18px;
}
.dfb-footer-brand p {
  margin: 0 !important;
  max-width: 34ch;
}
html body .dfb-footer-col a {
  color: #bdbdbd !important;
  text-decoration: none !important;
  transition: color 0.2s;
}
html body .dfb-footer-col a:is(:hover, :focus-visible) {
  color: #fff !important;
}
.dfb-footer-contact > a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.dfb-footer-contact > a i {
  width: 15px;
  height: 15px;
  color: var(--f-acc);
  flex: none;
}
.dfb-footer-contact address {
  font-style: normal;
  margin: 6px 0 0;
}
.dfb-footer-social {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
html body .dfb-footer-social a.sb-facebook,
html body .dfb-footer-social a.sb-whatsapp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid #333;
  color: #fff !important;
  transition: background-color 0.2s, border-color 0.2s;
}
.dfb-footer-social a i {
  width: 16px;
  height: 16px;
}
html body .dfb-footer-social a.sb-facebook:is(:hover, :focus-visible) { background: #1877f2; border-color: #1877f2; }
html body .dfb-footer-social a.sb-whatsapp:is(:hover, :focus-visible) { background: #25d366; border-color: #25d366; }
html body .dfb-footer-social a.dfb-footer-review {
  margin-left: 6px;
  font-size: 14px;
  border-bottom: 1px solid #444;
}
/* Unterste Zeile */
.dfb-footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 24px;
  padding: 22px 0 30px;
  border-top: 1px solid #1f1f1f;
  font-size: 13px;
  color: #777;
}
.dfb-footer-bottom nav {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
}
html body .dfb-footer-bottom a {
  color: #9a9a9a !important;
  text-decoration: none !important;
}
html body .dfb-footer-bottom a:is(:hover, :focus-visible) {
  color: #fff !important;
  text-decoration: underline !important;
}
@media (max-width: 1000px) {
  .dfb-footer-cols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .dfb-footer-inner { padding-top: 48px; }
  .dfb-footer-cta { padding: 30px 24px; margin-bottom: 44px; }
  .dfb-footer-cols { grid-template-columns: 1fr; gap: 34px; }
  .dfb-footer-bottom { flex-direction: column; align-items: flex-start; }
}
html body .dfb-footer p.dfb-footer-cta-text {
  color: #fff !important;
  font-size: clamp(22px, 2.6vw, 30px) !important;
  line-height: 1.3 !important;
  font-weight: 300 !important;
  letter-spacing: 0.14em !important;
}
html body .dfb-footer p.dfb-footer-cta-text span {
  color: #9a9a9a !important;
  font-size: 15px !important;
  letter-spacing: 0 !important;
  line-height: 1.6 !important;
}
html body .dfb-footer .dfb-footer-brand p {
  font-size: 15px !important;
  line-height: 1.7 !important;
  color: #9a9a9a !important;
}
/* Theme setzt Schriftgröße mit sehr spezifischem Selektor – in der Fußzeile per ID überstimmen */
html body #big_footer .dfb-footer p,
html body #big_footer .dfb-footer address,
html body #big_footer .dfb-footer a,
html body #big_footer .dfb-footer span {
  font-size: 15px !important;
  line-height: 1.7 !important;
}
html body #big_footer .dfb-footer p.dfb-footer-cta-text {
  font-size: clamp(22px, 2.6vw, 30px) !important;
  line-height: 1.3 !important;
}
html body #big_footer .dfb-footer .dfb-footer-bottom,
html body #big_footer .dfb-footer .dfb-footer-bottom a,
html body #big_footer .dfb-footer .dfb-footer-bottom span,
html body #big_footer .dfb-footer a.dfb-footer-btn {
  font-size: 13px !important;
}
html body #big_footer .dfb-footer .dfb-footer-social a.dfb-footer-review {
  font-size: 14px !important;
}
/* Fußzeile ohne Band: Spalten beginnen direkt; am Handy keine Fußzeile (rechtliche Seiten im Seitenmenü) */
.dfb-footer-inner {
  padding-top: 64px;
}
@media (max-width: 767px) {
  html body #big_footer .dfb-footer {
    display: none !important;
  }
}
/* Schlanke Rechtliches-Zeile nur am Handy */
html body #big_footer .dfb-legal-mobile {
  display: none !important;
}
@media (max-width: 767px) {
  html body #big_footer .dfb-legal-mobile {
    display: flex !important;
  }
  html body #big_footer .dfb-legal-mobile,
  html body #big_footer .dfb-legal-mobile a,
  html body #big_footer .dfb-legal-mobile span {
    font-size: 13px !important;
    line-height: 1.6 !important;
  }
}
@media (max-width: 767px) {
  html body #big_footer .dfb-legal-mobile > span {
    flex-basis: 100%;
    text-align: center;
    order: 2;
    color: #6f6f6f;
  }
}
