/*
 * 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'],
.offer-modal[data-box='woody'] {
  --acc: #b8895a;
  --acc-soft: rgba(184, 137, 90, 0.3);
}
.booking-root[data-box='pinky'],
.offer-modal[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,
.gift-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,
.gift-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;
  /* Mitte der ersten Textzeile (3px Abstand + halbe Zeilenhöhe) – passt bei jeder Schriftgröße */
  top: calc(3px + 0.725em - 3.5px);
  top: calc(3px + 0.5lh - 3.5px);
  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; }

/* Eigenes Video (statt YouTube): Vorschaubild mit Play-Knopf, danach Browser-Steuerung */
.master_container .wp-video { position: relative; background: #000; border: 1px solid #262626; line-height: 0; }
.master_container .wp-video video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; background: #000; }
.master_container .wp-video-play {
  all: unset; position: absolute; inset: 0; cursor: pointer; display: flex; flex-direction: row; align-items: flex-end; justify-content: flex-start; gap: 16px;
  color: #fff; font-family: Hind, sans-serif; font-size: 13px; letter-spacing: 2px; text-transform: uppercase; line-height: 1.4;
  background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.45) 100%);
}
html body .master_container .wp-video button.wp-video-play:not(#_):not(#__) {
  border: 0 !important; padding: 0 !important; margin: 0 !important; width: auto !important; height: auto !important; border-radius: 0 !important; box-shadow: none !important;
  padding: 0 0 24px 24px !important; box-sizing: border-box !important;
  background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.7) 100%) !important;
}
.master_container .wp-video-play .wp-yt-label { padding-bottom: 22px; text-shadow: 0 1px 3px rgba(0,0,0,.6); }
@media (max-width: 480px) {
  html body .master_container .wp-video button.wp-video-play:not(#_):not(#__) { padding: 0 0 16px 16px !important; }
  .master_container .wp-video-play .wp-yt-icon { width: 56px; height: 56px; }
  .master_container .wp-video-play .wp-yt-icon::after { left: 22px; top: 16px; border-width: 11px 0 11px 17px; }
  .master_container .wp-video-play .wp-yt-label { padding-bottom: 17px; }
}
.master_container .wp-video-play[hidden] { display: none !important; }
.master_container .wp-video-play .wp-yt-icon { flex: none; box-sizing: border-box; border-width: 2px; background: rgba(0,0,0,.4); backdrop-filter: blur(3px); }
.master_container .wp-video-play .wp-yt-icon::after { left: 26px; top: 21px; }
.master_container .wp-video-play:is(:hover, :focus-visible) .wp-yt-icon { background: var(--acc); transform: scale(1.06); }
.master_container .wp-video-play:focus-visible { outline: 2px solid var(--acc); outline-offset: -6px; }

/* Hörproben (Audio-Gästebuch): runder Play-Knopf wie beim Video, Wellenform aus der echten Aufnahme */
.master_container .wp-audio-samples { margin-top: 34px; }
.master_container .wp-audio-samples > h4 { margin-bottom: 16px !important; }
.master_container .wp-audio-samples.in-faq { margin: 18px 0 4px; }
.master_container .wp-audio-samples.in-faq .wp-audio:last-child { margin-bottom: 0; }
.master_container .wp-audio {
  display: flex; align-items: center; gap: 18px; padding: 18px 20px; margin-bottom: 12px;
  background: radial-gradient(140% 120% at 0% 50%, #222 0%, #141414 70%); border: 1px solid #262626; transition: border-color .3s;
}
.master_container .wp-audio.is-playing { border-color: var(--acc); }
.master_container .wp-audio-play { all: unset; cursor: pointer; flex: none; border-radius: 50%; }
html body .master_container .wp-audio button.wp-audio-play:not(#_):not(#__) {
  border: 0 !important; padding: 0 !important; margin: 0 !important; background: none !important; box-shadow: none !important;
  width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; line-height: 0 !important; border-radius: 50% !important;
}
.master_container .wp-audio-play:focus-visible { outline: 2px solid var(--acc); outline-offset: 4px; }
.master_container .wp-audio-icon {
  display: block; width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--acc); position: relative; box-sizing: border-box;
  transition: background-color .3s, transform .3s;
}
.master_container .wp-audio-icon::before, .master_container .wp-audio-icon::after { content: ''; position: absolute; }
.master_container .wp-audio-icon::after {
  left: 21px; top: 16px; border-style: solid; border-width: 9px 0 9px 14px; border-color: transparent transparent transparent #fff;
}
.master_container .wp-audio.is-playing .wp-audio-icon::after,
.master_container .wp-audio.is-playing .wp-audio-icon::before { border: 0; top: 17px; width: 5px; height: 17px; background: #fff; }
.master_container .wp-audio.is-playing .wp-audio-icon::before { left: 18px; }
.master_container .wp-audio.is-playing .wp-audio-icon::after { left: 27px; }
.master_container .wp-audio-play:hover .wp-audio-icon, .master_container .wp-audio.is-playing .wp-audio-icon { background: var(--acc); }
.master_container .wp-audio-play:hover .wp-audio-icon { transform: scale(1.06); }
.master_container .wp-audio-body { flex: 1; min-width: 0; }
.master_container .wp-audio-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.master_container .wp-audio-title { color: #fff; font-weight: 700; font-size: 16px; line-height: 1.35; }
.master_container .wp-audio-time { flex: none; color: #8a8a8a; font-size: 13px; font-variant-numeric: tabular-nums; }
.master_container .wp-audio.is-playing .wp-audio-time { color: var(--acc); }
.master_container .wp-audio-sub { color: #9a9a9a; font-size: 14px; line-height: 1.45; margin: 2px 0 10px; }
.master_container .wp-audio-wave {
  display: flex; align-items: center; gap: 2px; height: 34px; cursor: pointer; border-radius: 2px;
}
.master_container .wp-audio-wave:focus-visible { outline: 2px solid var(--acc); outline-offset: 4px; }
.master_container .wp-audio-wave > span {
  flex: 1 1 0; min-width: 1px; height: var(--h); background: #3d3d3d; border-radius: 1px; transition: background-color .15s;
}
.master_container .wp-audio-wave:hover > span { background: #4c4c4c; }
.master_container .wp-audio-wave > span.on { background: var(--acc); }
@media (max-width: 480px) {
  .master_container .wp-audio { gap: 14px; padding: 14px; }
  .master_container .wp-audio-icon { width: 44px; height: 44px; }
  .master_container .wp-audio-icon::after { left: 17px; top: 12px; }
  .master_container .wp-audio.is-playing .wp-audio-icon::after, .master_container .wp-audio.is-playing .wp-audio-icon::before { top: 13px; }
  .master_container .wp-audio.is-playing .wp-audio-icon::before { left: 14px; }
  .master_container .wp-audio.is-playing .wp-audio-icon::after { left: 23px; }
  .master_container .wp-audio-wave { gap: 1px; }
}

/* 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; }
/* Leeres Überblend-Bild nie zeichnen (Safari zeigt sonst einen grauen Rahmen); gedrehte Karten dauerhaft auf
   eigener Ebene, damit die Kanten beim Überblenden nicht neu (und kurz unsauber) gerendert werden */
.master_container .srg-img-next:not([src]) { visibility: hidden !important; }
/* Alle Karten im gleichen Seitenverhältnis (3:2) und beide Bildebenen deckungsgleich: einzelne Overlays sind ein
   paar Pixel höher – sonst schaut beim Überblenden der Rand des darunterliegenden Bildes hervor. */
html body .master_container .srg-gallery .srg-item { aspect-ratio: 3 / 2; }
html body .master_container .srg-gallery .srg-item img.srg-img-current,
html body .master_container .srg-gallery .srg-item img.srg-img-next {
  position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; object-fit: cover;
}
/* Karte schneidet beide Ebenen gemeinsam ab: die (gedrehte) Kante wird nur einmal geglättet, darunter scheint nichts durch.
   Beide Ebenen bleiben exakt gleich groß – sonst „springt“ das Bild nach dem Wechsel. */
html body .master_container .srg-gallery .srg-item { overflow: hidden !important; }
.master_container .srg-item { backface-visibility: hidden; will-change: transform; }
@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; }
/* … und nie hinter dem Footer verschwinden (der liegt im Theme eine Ebene höher) */
html body:has(.select.open, .dp-pop, .addr-list) #big_footer { z-index: 0 !important; }
: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;
  }
}

/* Login: beide Knöpfe gleich (Schrift, Gewicht, Farbe) */
html body .dfb-actions-row :is(a, button).dfb-login-gate-btn,
html body .dfb-login-gate-form button[type='submit'] {
  opacity: 1 !important;
  color: #fff !important;
  font-weight: 500 !important;
  font-family: Hind, sans-serif !important;
  font-size: 13px !important;
  letter-spacing: 2px !important;
  border: 1px solid var(--acc) !important;
}
html body .dfb-actions-row :is(a, button).dfb-login-gate-btn:is(:hover, :focus-visible) {
  color: var(--acc-ink) !important;
}

/* „Nach oben“ rechts unten */
html body button.dfb-totop {
  position: fixed;
  right: 26px;
  bottom: 26px;
  z-index: 900;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  min-width: 0;
  margin: 0;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50%;
  background: rgba(16, 16, 16, 0.82) !important;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  color: #fff !important;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
  cursor: pointer;
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: opacity 0.3s ease, transform 0.3s ease, background-color 0.25s ease, color 0.25s ease;
}
html body button.dfb-totop > svg { grid-area: 1 / 1; }
html body button.dfb-totop .dfb-totop-ring { width: 48px; height: 48px; transform: rotate(-90deg); }
html body button.dfb-totop .dfb-totop-ring circle { fill: none; stroke-width: 1.5; }
html body button.dfb-totop .dfb-totop-ring .track { stroke: rgba(255, 255, 255, 0.14); }
html body button.dfb-totop .dfb-totop-ring .bar { stroke: var(--acc, #b48759); stroke-linecap: round; transition: stroke-dashoffset 0.15s linear; }
html body button.dfb-totop .dfb-totop-arrow { transition: transform 0.25s ease; }
html body button.dfb-totop.on { opacity: 1; transform: none; pointer-events: auto; }
html body button.dfb-totop:is(:hover, :focus-visible) { background: var(--acc, #b48759) !important; color: #101010 !important; outline: none; }
html body button.dfb-totop:is(:hover, :focus-visible) .dfb-totop-arrow { transform: translateY(-2px); }
html body button.dfb-totop:is(:hover, :focus-visible) .dfb-totop-ring .bar { stroke: #101010; }
html body button.dfb-totop:focus-visible { box-shadow: 0 0 0 2px #101010, 0 0 0 4px var(--acc, #b48759); }
/* auf dem Handy nicht anzeigen */
@media (max-width: 767px) {
  html body button.dfb-totop { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  html body button.dfb-totop, html body button.dfb-totop .dfb-totop-arrow, html body button.dfb-totop .dfb-totop-ring .bar { transition: opacity 0.2s; transform: none; }
}

/* Buchung: Kostenübersicht – Hinweise klein wie die km-Angabe, Bezahlknopf in der Box */
html body .booking-root .summary-box .sum-note,
html body .gift-root .summary-box .sum-note {
  margin: 10px 0 0 !important;
  font-size: 12.5px !important;
  line-height: 1.45 !important;
  color: var(--muted, #8a8a8a) !important;
}
html body .booking-root .summary-box .sum-note.center,
html body .gift-root .summary-box .sum-note.center {
  text-align: center;
}
html body .booking-root .summary-box .sum-pay,
html body .gift-root .summary-box .sum-pay {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid #2a2a2a;
}
html body .booking-root .summary-box .sum-pay .pay-btn,
html body .gift-root .summary-box .sum-pay .pay-btn {
  width: 100% !important;
}
/* Buchung: mehr Luft zwischen den Abschnitten (Welche Fotobox?, Welches Paket?, Stell dir … zusammen) */
html body .booking-root .sub-title {
  margin-top: 52px !important;
  margin-bottom: 18px !important;
}
html body .booking-root .step-head + .sub-title {
  margin-top: 30px !important;
}

/* Fußzeile immer am Seitenende: kurze Seiten (z. B. Login) füllen das Fenster, die Fußzeile rückt nach unten */
html body .main.main_design {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}
html body .main.main_design > * {
  flex-shrink: 0;
}
html body .main.main_design > #big_footer {
  margin-top: auto;
}

/* =====================================================================
   Handy-Feinschliff (nur Mobilansicht)
   ===================================================================== */
/* YouTube-Platzhalter: kein heller Kasten um den Abspiel-Knopf (Theme-Buttonstil) */
html body .master_container button.wp-yt-play {
  border: 0 !important; padding: 0 !important; background: none !important; box-shadow: none !important; min-width: 0 !important;
}
/* Links im Fließtext: gleiche Schrift wie der Text, nur weiß */
html body .master_container :is(p, li):not(.wp-yt-note) a:not([class*="btn"]):not([class*="button"]) {
  font-family: Mulish, sans-serif !important;
  font-size: inherit !important;
  letter-spacing: inherit !important;
  color: #fff !important;
  transition: color 0.25s ease;
}
/* App-weit: Links im Text werden beim Darüberfahren Eiche */
html body :is(.master_container, .wp-theme) :is(p, li, td, strong, em, span, label, .sum-line, .small, .tiny) a:not([class*="btn"]):not([class*="button"]):not(.chip) {
  transition: color 0.25s ease;
}
html body :is(.master_container, .wp-theme) :is(p, li, td, strong, em, span, label, .sum-line, .small, .tiny) a:not([class*="btn"]):not([class*="button"]):not(.chip):is(:hover, :focus-visible) {
  color: var(--acc, #b8895a) !important;
}
@media (max-width: 767px) {
  /* weniger Luft zwischen Logo und Seitentitel */
  html body .page_content .wpb-content-wrapper > .vc_row:first-child { padding-top: 44px !important; }
  html body .page_content .wpb-content-wrapper > .vc_row:first-child .ult-animation > .ult-spacer:first-child { display: none !important; }

  /* Menü: alle Punkte in Blockschrift, Fließtextschrift in Weiß */
  html body .dl-menuwrapper .dl-menu li > a,
  html body .dl-menuwrapper .dl-menu li.dl-back > a {
    text-transform: uppercase !important;
    font-family: Mulish, sans-serif !important;
    letter-spacing: 1.5px !important;
    color: #fff !important;
  }
  /* „zurück“: Pfeil auf Texthöhe */
  html body .dl-menuwrapper li.dl-back::after {
    top: 0 !important; bottom: 0 !important; margin: auto 0 !important;
    left: 10px !important; right: auto !important;
    width: 12px !important; height: 12px !important; line-height: 12px !important;
    vertical-align: middle;
  }

  /* YouTube: Fläche wächst mit Knopf + Hinweis, nichts ragt hinaus */
  html body .master_container .wpb_video_widget .wpb_video_wrapper { padding-top: 0 !important; }
  html body .master_container .wpb_video_widget .wpb_video_wrapper > .wp-yt:not(.is-playing) {
    position: relative !important; inset: auto; min-height: 240px !important; padding: 32px 20px !important;
  }
  html body .master_container .wpb_video_widget .wpb_video_wrapper > .wp-yt.is-playing {
    position: relative !important; aspect-ratio: 16 / 9 !important;
  }

  /* Bild und Text untereinander: Abstand wie auf der Overlay-Seite */
  html body .page_content .vc_row > .wpb_column:not(.vc_col-sm-3):not(.vc_col-sm-4):has(img, .wpb_video_widget, .wp-yt) + .wpb_column,
  html body .page_content .vc_row > .wpb_column + .wpb_column:not(.vc_col-sm-3):not(.vc_col-sm-4):has(img, .wpb_video_widget, .wp-yt) {
    margin-top: 44px;
  }
}

/* Admin → Overlays: Hinweis der Texterkennung */
html body .wp-admin .ov-upload .ov-reading { margin: -12px 0 18px !important; font-style: italic; }
html body .wp-admin .overlay-grid .ov-detect { font-size: 12px !important; white-space: nowrap; margin: 0 !important; padding: 0 !important; }
html body .wp-admin .overlay-grid .ov-meta { flex-wrap: nowrap !important; gap: 8px; }
html body .wp-admin .overlay-grid .ov-meta-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
html body .wp-admin .ov-credit { margin: -6px 0 22px !important; }
html body .wp-admin .ov-credit strong.warn { color: #e0a060; }

/* Admin → E-Mail */
html body .wp-admin .mail-head { align-items: center; margin-bottom: 8px; }
html body .wp-admin .mail-head h1 { margin: 0 !important; }
html body .wp-admin .mail-label-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
html body .wp-admin .mail-label-row label, html body .wp-admin .mail-label-row .label { margin: 0 !important; }
html body .wp-admin .mail-section { margin: 22px 0 0; padding-top: 18px; border-top: 1px solid var(--line, #2a2a2a); }
html body .wp-admin .mail-section .check { display: flex; margin: 0 0 8px !important; }
html body .wp-admin .mail-link-row { display: grid; grid-template-columns: 1fr 1.4fr auto; gap: 10px; align-items: center; margin-bottom: 10px; }
html body .wp-admin .mail-file { display: flex; align-items: center; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--line, #2a2a2a); }
html body .wp-admin .mail-file > span:first-child { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html body .wp-admin .mail-section .warn, html body .wp-admin .mail-composer .warn { color: #e0a060; }
html body .wp-admin .mail-actions { margin-top: 24px; gap: 12px; }
html body .wp-admin .mail-composer textarea { min-height: 260px; line-height: 1.6; }
html body .wp-admin .mail-booking { margin: 0 0 14px !important; }
html body .wp-admin .mail-who { min-height: 1.4em; margin-top: 4px; }
html body .wp-admin .mail-composer .mail-preview { margin-top: 24px; }
html body .wp-admin .mail-frame { display: block; width: 100%; height: 900px; border: 0; border-radius: 12px; background: #fff; }
html body .wp-admin .mail-status { display: inline-flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
html body .wp-admin .mail-smtp { margin: 10px 0 0 !important; word-break: break-word; }
html body .wp-admin .mail-new-row { margin-top: 18px; }
html body .wp-admin .mail-track-note { margin: 14px 0 0 !important; }
@media (max-width: 767px) {
  html body .wp-admin .mail-link-row { grid-template-columns: 1fr; }
  html body .wp-admin .mail-frame { height: 640px; }
}
html body .wp-admin .mail-files-sum { margin-top: 8px; }

/* Logo: beim Darüberfahren wandern die Eck-Klammern sanft nach außen.
   Vom Bild wird nur der Schriftzug gezeigt; die Klammern sind feine Linien (::before/::after)
   in der Logo-Farbe – oben und unten gleich kräftig. */
html body header .navbar-brand { position: relative; overflow: visible; }
html body header .navbar-brand img { clip-path: inset(5% 5%); }
html body header .navbar-brand::before,
html body header .navbar-brand::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 10.5%;
  border: 1px solid #b88b5f;
  box-sizing: border-box;
  pointer-events: none;
  /* left/right statt transform: so landen die Linien immer auf ganzen Pixeln und bleiben gleich hell */
  transition: left 0.5s cubic-bezier(0.22, 1, 0.36, 1), right 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
html body header .navbar-brand::before { left: 0; border-right: 0; }
html body header .navbar-brand::after { right: 0; border-left: 0; }
html body header .navbar-brand:is(:hover, :focus-visible)::before { left: -7px; }
html body header .navbar-brand:is(:hover, :focus-visible)::after { right: -7px; }
@media (max-width: 767px) {
  html body header .navbar-brand:is(:hover, :focus-visible)::before { left: -4px; }
  html body header .navbar-brand:is(:hover, :focus-visible)::after { right: -4px; }
}
@media (prefers-reduced-motion: reduce) {
  html body header .navbar-brand::before, html body header .navbar-brand::after { transition: none; }
}

/* 404-Seite */
html body .dfb-404 { max-width: 760px; }
html body .dfb-404 .dfb-404-lead { margin: 0 0 30px !important; }
html body .dfb-404 .dfb-404-links { margin-top: 56px; padding-top: 28px; border-top: 1px solid rgba(255, 255, 255, 0.1); }
html body .dfb-404 .dfb-404-label { font-family: Hind, sans-serif; font-size: 13px; letter-spacing: 2px; text-transform: uppercase; color: #a1a1a1; margin-bottom: 14px; }
html body .dfb-404 .dfb-404-links ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 4px 28px; }
html body .dfb-404 .dfb-404-links li { margin: 0 !important; padding: 0 !important; }
html body .dfb-404 .dfb-404-links li::before { display: none !important; }
html body .dfb-404 .dfb-404-links a { display: inline-block; padding: 8px 0; color: #fff !important; font-family: Mulish, sans-serif !important; font-size: 17px; text-decoration: none; border-bottom: 1px solid transparent; transition: border-color 0.25s, color 0.25s; }
html body .dfb-404 .dfb-404-links a:is(:hover, :focus-visible) { border-bottom-color: var(--acc, #b48759); color: var(--acc, #b48759) !important; }
html body .dfb-404 .dfb-404-links ul, html body .dfb-404 .dfb-404-links li { list-style: none !important; }
html body .dfb-404 .dfb-404-links li::marker { content: ''; }
@media (max-width: 767px) {
  html body .dfb-404 .dfb-actions-row { flex-direction: column; align-items: stretch; }
  html body .dfb-404 .dfb-actions-row .dfb-login-gate-btn { justify-content: center; white-space: nowrap; }
  html body .dfb-404 .dfb-404-links { margin-top: 44px; }
}

/* Hauptmenü: Strich unter dem Menüpunkt (beim Darüberfahren und bei der aktuellen Seite) in Eiche */
html body header.navbar-default .navbar-collapse ul.navbar-nav > li::before,
html body header.navbar-default.hazel-underlining .navbar-nav > li:hover::before,
html body header.navbar-default .navbar-collapse ul.navbar-nav > li:is(.current-menu-item, .current-menu-ancestor)::before,
html body header.navbar-default .navbar-collapse ul.navbar-nav > li:has(a.selected)::before,
html body header.navbar-default.hazel-underlining .navbar-nav > li > a::before,
html body header.navbar-default.hazel-underlining .navbar-nav > li > a::after {
  background: var(--acc, #b88b5f) !important;
  background-color: var(--acc, #b88b5f) !important;
}
/* … auch nach dem Scrollen (Kopfzeile ohne Telefon/E-Mail-Leiste) Eiche,
   und in beiden Zuständen derselbe (größere) Abstand zwischen Text und Strich */
html body header.navbar-default.header_after_scroll .navbar-collapse ul.navbar-nav > li:is(.current-menu-item, .current-menu-ancestor)::before,
html body header.navbar-default.header_after_scroll .navbar-nav > li:hover::before,
html body header.navbar-default.header_after_scroll .navbar-collapse ul.navbar-nav > li:has(a.selected)::before {
  background: var(--acc, #b8895a) !important;
}
html body header.navbar-default.hazel-underlining .navbar-nav > li::before,
html body header.navbar-default.hazel-underlining.header_after_scroll .navbar-nav > li::before {
  bottom: 17px;
}

/* Hauptmenü auffälliger: größere, hellere Schrift (auf schmaleren Bildschirmen etwas kleiner, damit nichts kollidiert) */
html body header:not(.wp-admin-header) .navbar-collapse ul.navbar-nav > li > a {
  font-size: 15px !important;
  letter-spacing: 3px !important;
  color: #d8d8d8 !important;
}
html body header .navbar-collapse ul.navbar-nav > li:is(:hover, .current-menu-item, .current-menu-ancestor) > a {
  color: #fff !important;
}
@media (max-width: 1279px) {
  html body header:not(.wp-admin-header) .navbar-collapse ul.navbar-nav > li > a { font-size: 14px !important; letter-spacing: 2px !important; }
}
@media (max-width: 1150px) {
  html body header:not(.wp-admin-header) .navbar-collapse ul.navbar-nav > li > a { font-size: 13px !important; letter-spacing: 1.5px !important; }
}

/* Untermenü (Desktop): dunkle Karte mit Eiche-Kante, ruhige Einträge, sanftes Aufklappen */
html body header.navbar .navbar-collapse li:not(.hazel_mega_menu) > .dropdown-menu {
  min-width: 230px;
  width: max-content;
  max-width: 340px;
  padding: 10px 0 !important;
  margin-top: 0 !important;
  background: rgba(20, 20, 20, 0.97) !important;
  border: 1px solid rgba(255, 255, 255, 0.07) !important;
  border-top: 2px solid var(--acc, #b8895a) !important;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45) !important;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  transform: translateY(8px);
  transition: opacity 0.25s ease, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.25s !important;
}
html body header.navbar .navbar-collapse ul li:hover > ul.dropdown-menu { transform: none; }
html body header.navbar .navbar-collapse .dropdown-menu > li > a {
  position: relative;
  padding: 11px 30px 11px 26px !important;
  border-bottom: 0 !important;
  background: none !important;
  white-space: nowrap;
  font-family: Mulish, sans-serif !important;
  font-size: 15px !important;
  letter-spacing: 0.2px !important;
  color: #c9c9c9 !important;
  transition: color 0.2s ease, padding 0.25s ease, background-color 0.2s ease !important;
}
/* feiner Eiche-Strich links, der beim Darüberfahren einfährt */
html body header.navbar .navbar-collapse .dropdown-menu > li > a::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 0;
  height: 1px;
  background: var(--acc, #b8895a);
  transition: width 0.25s ease;
}
html body header.navbar .navbar-collapse .dropdown-menu > li > a:is(:hover, :focus-visible) {
  color: #fff !important;
  padding-left: 34px !important;
  padding-right: 22px !important; /* gleiche Gesamtbreite → die Karte bleibt ruhig */
  background-color: rgba(255, 255, 255, 0.035) !important;
}
html body header.navbar .navbar-collapse .dropdown-menu > li > a:is(:hover, :focus-visible)::before { width: 18px; }
/* aktuelle Seite im Untermenü */
html body header.navbar .navbar-collapse .dropdown-menu > li.current-menu-item > a { color: var(--acc, #b8895a) !important; }
html body header.navbar .navbar-collapse .dropdown-menu > li.current-menu-item > a::before { width: 10px; }
html body header.navbar .navbar-collapse .dropdown-menu > li.current-menu-item > a:is(:hover, :focus-visible)::before { width: 18px; }
@media (prefers-reduced-motion: reduce) {
  html body header.navbar .navbar-collapse li > .dropdown-menu { transform: none; transition: opacity 0.15s, visibility 0.15s !important; }
}
html body header.navbar .navbar-collapse .dropdown-menu > li { background: transparent !important; border: 0 !important; margin: 0 !important; }
html body header .navbar-collapse li:not(.hazel_mega_menu) ul.menu-depth-1 li:not(:first-child) { border-top: 0 !important; }

/* =====================================================================
   Admin → SEO
   ===================================================================== */
html body .wp-admin .seo-head { align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 6px; }
html body .wp-admin .seo-head h1 { margin: 0 !important; }
html body .wp-admin .seo-range { margin: 0 !important; }
html body .wp-admin .seo-status { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; margin: 0 0 26px; }
html body .wp-admin .seo-status form { margin-left: auto; }
html body .wp-admin .seo-status code, html body .wp-admin .seo-setup code { font-size: 12px; padding: 1px 6px; background: rgba(255, 255, 255, 0.06); border-radius: 4px; }
html body .wp-admin .seo-setup ol { padding-left: 20px; line-height: 1.7; }
html body .wp-admin .seo-setup li { margin-bottom: 8px; }
html body .wp-admin .seo-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 18px; }
html body .wp-admin .seo-tile { padding: 18px 20px; border: 1px solid var(--line, #2a2a2a); background: rgba(255, 255, 255, 0.02); }
html body .wp-admin .seo-tile-label { font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: #a1a1a1; }
html body .wp-admin .seo-tile-value { font-size: 32px; font-weight: 300; color: #fff; line-height: 1.2; margin: 6px 0 4px; font-variant-numeric: tabular-nums; }
html body .wp-admin .seo-tile-foot { font-size: 12.5px; }
html body .wp-admin .seo-delta { font-size: 12.5px; color: #a1a1a1; white-space: nowrap; font-variant-numeric: tabular-nums; }
html body .wp-admin .seo-delta.up { color: #7fc79a; }
html body .wp-admin .seo-delta.down { color: #e08a7a; }
html body .wp-admin .seo-charts { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 18px; }
html body .wp-admin .seo-chart { margin: 0; padding: 16px 18px 10px; border: 1px solid var(--line, #2a2a2a); background: rgba(255, 255, 255, 0.02); }
html body .wp-admin .seo-chart-title { font-size: 13px; color: #d8d8d8; margin-bottom: 6px; }
html body .wp-admin .seo-chart-box { position: relative; }
html body .wp-admin .seo-chart svg { display: block; width: 100%; height: auto; overflow: visible; touch-action: pan-y; }
html body .wp-admin .seo-chart .grid { stroke: rgba(255, 255, 255, 0.07); stroke-width: 1; }
html body .wp-admin .seo-chart .axis { fill: #8a8a8a; font-size: 11px; font-family: Mulish, sans-serif; }
html body .wp-admin .seo-chart .line { fill: none; stroke: var(--acc, #b8895a); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
html body .wp-admin .seo-chart .area { fill: var(--acc, #b8895a); opacity: 0.1; }
html body .wp-admin .seo-chart .cross { stroke: rgba(255, 255, 255, 0.35); stroke-width: 1; }
html body .wp-admin .seo-chart .dot { fill: var(--acc, #b8895a); stroke: #141414; stroke-width: 2; }
html body .wp-admin .seo-tip { position: absolute; top: -6px; transform: translateX(-50%); pointer-events: none; padding: 5px 9px; background: #1f1f1f; border: 1px solid rgba(255, 255, 255, 0.12); font-size: 12px; white-space: nowrap; display: flex; gap: 8px; align-items: baseline; }
html body .wp-admin .seo-tip .d { color: #a1a1a1; }
html body .wp-admin .seo-tip strong { color: #fff; font-variant-numeric: tabular-nums; }
html body .wp-admin .seo-lead { margin: -4px 0 14px !important; }
html body .wp-admin .seo-table td, html body .wp-admin .seo-table th { vertical-align: top; }
html body .wp-admin .seo-table .num { font-variant-numeric: tabular-nums; white-space: nowrap; }
html body .wp-admin .seo-q { color: #fff; }
html body .wp-admin .seo-scroll { max-height: 560px; overflow: auto; }
html body .wp-admin .seo-cols { gap: 24px; align-items: start; }
html body .wp-admin .seo-badge { margin-left: 8px; color: var(--acc, #b8895a) !important; border-color: var(--acc, #b8895a) !important; }
html body .wp-admin .seo-note { margin: 12px 0 0 !important; }
html body .wp-admin .seo-change { padding: 14px 0; border-top: 1px solid var(--line, #2a2a2a); }
html body .wp-admin .seo-change:first-of-type { border-top: 0; padding-top: 4px; }
html body .wp-admin .seo-change-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; margin-bottom: 8px; }
html body .wp-admin .seo-change-grid { display: grid; grid-template-columns: auto auto auto auto; justify-content: start; gap: 4px 14px; font-variant-numeric: tabular-nums; }
html body .wp-admin .seo-change-span { grid-column: 1 / -1; margin-top: 2px; }
/* Editor + Google-Vorschau */
html body .wp-admin .seo-editor-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 18px; }
html body .wp-admin .seo-serp { background: #fff; color: #202124; padding: 16px 18px; border-radius: 10px; margin-bottom: 22px; font-family: Arial, sans-serif; }
html body .wp-admin .seo-serp-site { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
html body .wp-admin .seo-serp-fav { width: 26px; height: 26px; border-radius: 50%; background: #f1f3f4; display: grid; place-items: center; font-size: 13px; color: #b8895a; font-weight: bold; }
html body .wp-admin .seo-serp-name { display: block; font-size: 14px; color: #202124; line-height: 1.2; }
html body .wp-admin .seo-serp-url { display: block; font-size: 12px; color: #4d5156; line-height: 1.3; }
html body .wp-admin .seo-serp-title { font-size: 20px; line-height: 1.3; color: #1a0dab; margin-bottom: 4px; }
html body .wp-admin .seo-serp-desc { font-size: 14px; line-height: 1.58; color: #4d5156; }
html body .wp-admin .seo-editor .warn { color: #e0a060; }
html body .wp-admin .seo-editor textarea { min-height: 90px; }
html body .wp-admin .seo-sug { margin: 6px 0 18px; padding: 14px 16px; border-left: 2px solid var(--acc, #b8895a); background: rgba(184, 137, 90, 0.06); }
html body .wp-admin .seo-sug p { margin: 4px 0 10px !important; }
html body .wp-admin .seo-sug ul { margin: 4px 0 0; padding-left: 18px; }
html body .wp-admin .seo-sug-label { letter-spacing: 1px; text-transform: uppercase; color: var(--acc, #b8895a); }
html body .wp-admin .seo-editor-actions { gap: 16px; align-items: center; margin-top: 6px; }
html body .wp-admin .seo-orig { margin: 14px 0 0 !important; }
html body .wp-admin .seo-reset { margin: -8px 0 22px; }
@media (max-width: 900px) {
  html body .wp-admin .seo-tiles { grid-template-columns: 1fr 1fr; }
  html body .wp-admin .seo-charts { grid-template-columns: 1fr; }
}
html body .wp-admin .seo-page-meta { margin: -4px 0 24px; }
html body .wp-admin .review-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid var(--line, #2a2a2a); }
/* SEO: Abstand zwischen den Bereichen (keine zusammenstoßenden Rahmen) */
html body .wp-admin .seo-cols { margin: 28px 0 !important; }
html body .wp-admin .seo-cols > .panel, html body .wp-admin .seo-cols > div > .panel { margin: 0 !important; }
html body .wp-admin .seo-cols > div > .panel + .panel, html body .wp-admin .seo-cols > div > .seo-chart + .panel { margin-top: 24px !important; }
html body .wp-admin .seo-charts + .panel, html body .wp-admin .seo-cols + .panel { margin-top: 28px !important; }
html body .wp-admin .seo-focus { margin: -6px 0 16px; padding: 10px 14px; border-left: 2px solid var(--acc, #b8895a); background: rgba(184, 137, 90, 0.06); }
html body .wp-admin .seo-focus-row td { background: rgba(184, 137, 90, 0.08); }
/* SEO-Übersicht: „Suchbegriffe“ nutzt die volle Höhe neben „Seiten“ (scrollt erst, wenn sie länger ist) */
html body .wp-admin .seo-cols-equal { align-items: stretch !important; }
html body .wp-admin .seo-cols-equal > .panel { display: flex; flex-direction: column; }
html body .wp-admin .seo-cols-equal .seo-scroll { flex: 1 1 0; min-height: 320px; max-height: none; }

/* ---------- Kundenbewertungen (Startseite, Pakete & Preise) ---------- */
html body .dfb-reviews { padding: 30px 0 90px; }
html body .dfb-reviews-head { display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; flex-wrap: wrap; margin-bottom: 34px; }
html body .dfb-reviews-head h2 { margin: 0 !important; }
html body .dfb-reviews-sum { display: inline-flex; align-items: center; gap: 14px; text-decoration: none !important; color: #d8d8d8 !important; }
html body .dfb-reviews-score { font-family: Mulish, sans-serif; font-weight: 300; font-size: 46px; line-height: 1; color: #fff; letter-spacing: 1px; }
html body .dfb-reviews-sum-body { display: grid; gap: 6px; }
html body .dfb-reviews-sum-note { font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase; color: #9a9a9a; transition: color .2s; }
html body .dfb-reviews-sum:hover .dfb-reviews-sum-note { color: var(--acc, #b88b5f); }
html body .dfb-stars { display: inline-flex; gap: 2px; line-height: 0; }
html body .dfb-stars svg { color: #3a3a3a; }
html body .dfb-stars svg.on { color: var(--acc, #b88b5f); }
/* Masonry: Karten so hoch wie ihr Inhalt, in Spalten gestapelt */
html body .dfb-reviews-list { --masonry-gap: 24px; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: start; }
/* mit Masonry: 4-px-Zeilen, Abstand steckt in der Zeilenzahl */
html body .dfb-reviews-list.is-masonry { grid-auto-rows: 4px; row-gap: 0; }
html body .dfb-reviews-list > li { margin: 0 !important; padding: 0 !important; }
html body .dfb-review { display: block; box-sizing: border-box; margin: 0 !important; padding: 24px 26px 26px !important;
  background: #161616; border: 1px solid #242424; border-top: 2px solid var(--acc, #b88b5f); }
html body .dfb-review.no-text { padding-bottom: 22px !important; }
html body .dfb-review-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
html body .dfb-review-by { display: grid; gap: 4px; min-width: 0; }
html body .dfb-review-by strong { font-weight: 700; font-size: 13px; letter-spacing: 2px; text-transform: uppercase; color: #fff; }
html body .dfb-review-by span { font-size: 13px; color: #8a8a8a; }
html body .dfb-review .dfb-stars { flex: none; padding-top: 2px; }
html body .dfb-review blockquote { margin: 18px 0 0; padding: 18px 0 0; border: 0; border-top: 1px solid #262626; }
html body .dfb-review blockquote p { white-space: pre-line; margin: 0 0 12px !important; font-size: 15px !important; line-height: 1.75 !important; color: #c9c9c9 !important; text-align: left !important; }
html body .dfb-review blockquote p:last-child { margin-bottom: 0 !important; }
html body .dfb-reviews-more { margin-top: 36px; }
html body .dfb-reviews-more a { font-size: 13px !important; letter-spacing: 2px !important; text-transform: uppercase; color: #d8d8d8 !important; text-decoration: none !important; border-bottom: 1px solid var(--acc, #b88b5f); padding-bottom: 4px; transition: color .2s; }
html body .dfb-reviews-more a:hover { color: var(--acc, #b88b5f) !important; }
@media (max-width: 991px) {
  html body .dfb-reviews-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  html body .dfb-reviews { padding: 10px 0 60px; }
  html body .dfb-reviews-score { font-size: 38px; }
  html body .dfb-reviews-list { --masonry-gap: 14px; grid-template-columns: 1fr; gap: 14px; }
  html body .dfb-review { padding: 20px 20px 22px !important; }
}

/* Admin: Bewertungen */
html body .wp-admin .review-admin-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
html body .wp-admin .review-admin-text { white-space: pre-line; color: var(--muted, #aaa); display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
html body .wp-admin .review-admin-card.off .review-admin-text, html body .wp-admin .review-admin-card.off .dfb-stars { opacity: .45; }
html body .wp-admin .review-admin-count { margin: 0 0 10px; }
html body .wp-admin .partner-admin > div > .panel + .panel { margin-top: 24px; }
html body .wp-admin .partner-admin .panel > .tiny.muted { margin-bottom: 22px; }
html body .wp-admin #sicherung .backup-intro { margin-bottom: 16px; }
html body .wp-admin #sicherung .backup-actions { margin: 18px 0 14px; }
html body .wp-admin #sicherung code { font-size: 12px; word-break: break-all; }
html body .wp-admin #sicherung .sum-line .btn { flex: none; }

html body .dfb-reviews-list > li::before { content: none !important; display: none !important; }
html body .dfb-reviews-list > li { list-style: none !important; }
/* Gutscheincode (Online-Galerie) */
html body .voucher-code { font-family: Menlo, Consolas, monospace; letter-spacing: 1.5px; font-size: 15px; }
/* Gesendete E-Mails: Umschalter persönlich / automatisch */
html body .wp-admin .mail-tabs { display: flex; gap: 26px; margin: 4px 0 22px; border-bottom: 1px solid #2a2a2a; }
html body .wp-admin .mail-tabs a { padding: 0 0 12px; margin-bottom: -1px; font-size: 13px; letter-spacing: 2px; text-transform: uppercase; color: #9a9a9a !important; text-decoration: none !important; border-bottom: 2px solid transparent; }
html body .wp-admin .mail-tabs a:hover { color: #fff !important; }
html body .wp-admin .mail-tabs a.on { color: #fff !important; border-bottom-color: var(--acc, #b88b5f); }
html body .dfb-reviews .dfb-review blockquote a.dfb-review-more-btn { display: inline-block; margin-top: 14px; font-size: 12px !important; line-height: 1.4 !important; letter-spacing: 2px !important; text-transform: uppercase; color: #d8d8d8 !important; text-decoration: none !important; border-bottom: 1px solid var(--acc, #b88b5f) !important; padding-bottom: 3px; transition: color .2s; }
html body .dfb-reviews .dfb-review blockquote a.dfb-review-more-btn:hover { color: var(--acc, #b88b5f) !important; }

/* ---------- Kontakt: Formular links, Karte + Adresse rechts ---------- */
html body .dfb-contact { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); gap: 50px; align-items: start; }
html body .dfb-contact-info { padding-top: 6px; }
html body .dfb-contact-details { display: grid; grid-template-columns: 1fr; gap: 0; margin-top: 26px; padding-top: 26px; border-top: 1px solid var(--acc, #b88b5f); }
html body .dfb-contact-map { position: relative; display: block; line-height: 0; max-width: 340px; margin: 0; }
@media (min-width: 992px) and (max-width: 1199px) { html body .dfb-contact { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); } }
html body .dfb-contact-map img { display: block; width: 100%; height: auto; }
html body .dfb-contact-dot {
  position: absolute; left: 58.83%; top: 75.17%; 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);
}
html body .dfb-contact-dot::before,
html body .dfb-contact-dot::after { content: ''; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--acc, #b8895a); opacity: 0; }
@media (prefers-reduced-motion: no-preference) {
  html body .dfb-contact-dot::before { animation: map-pulse 2.4s cubic-bezier(.2,.7,.2,1) infinite; }
  html body .dfb-contact-dot::after { animation: map-pulse 2.4s cubic-bezier(.2,.7,.2,1) 1.2s infinite; }
}
html body .dfb-contact-address { display: grid; gap: 2px; margin: 0; padding: 0; font-style: normal; font-size: 16px; line-height: 1.7; color: #c9c9c9; }
html body .dfb-contact-address strong { font-weight: 700; font-size: 13px; letter-spacing: 2px; text-transform: uppercase; color: #fff; margin-bottom: 6px; }
html body .dfb-contact-lines { display: grid; gap: 8px; align-content: start; margin: 0; padding-top: 20px; }
html body .dfb-contact-lines a { font-size: 16px !important; line-height: 1.7 !important; letter-spacing: 0 !important; color: #c9c9c9 !important; text-decoration: none !important; transition: color .2s; justify-self: start; }
html body .dfb-contact-lines a:hover { color: var(--acc, #b88b5f) !important; }
@media (max-width: 991px) {
  html body .dfb-contact { grid-template-columns: 1fr; gap: 50px; }
  html body .dfb-contact-info { max-width: 620px; }
}
@media (max-width: 520px) {

}
html body .dfb-contact-lines a { display: inline-flex; align-items: center; gap: 12px; }
html body .dfb-contact-lines a svg { flex: none; color: var(--acc, #b88b5f); }
/* Fehlerprotokoll */
html body .wp-admin .error-message { font-size: 16px; line-height: 1.6; color: #fff; margin: 0 0 16px; word-break: break-word; }
html body .wp-admin .error-actions { gap: 12px; margin: 18px 0 12px; }
html body .wp-admin .error-stack { margin: 0; padding: 14px 16px; background: #0c0c0c; border: 1px solid #262626; border-radius: 10px; font-family: Menlo, Consolas, monospace; font-size: 12px; line-height: 1.55; color: #bdbdbd; white-space: pre-wrap; word-break: break-all; }
/* Zähler offener Fehler: am Konto-Symbol und im Konto-Menü */
html body .menu-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; margin-left: 8px; border-radius: 9px; background: var(--acc, #b88b5f); color: #111 !important; font-family: Mulish, sans-serif; font-size: 11px; font-weight: 700; line-height: 1; letter-spacing: 0; vertical-align: 1px; }
html body header.wp-admin-header .admin-account > button.wp-admin-account { position: relative; }
html body header.wp-admin-header .admin-account > button.wp-admin-account .account-badge { position: absolute; top: 3px; right: 1px; margin: 0; min-width: 16px; height: 16px; padding: 0 4px; font-size: 10px; box-shadow: 0 0 0 2px #101010; pointer-events: none; }

/* ---------- Admin: Rückmeldung beim Absenden + Hinweis unten rechts ---------- */
html body .wp-admin-shell .is-busy { position: relative; pointer-events: none; cursor: progress; color: transparent !important; }
html body .wp-admin-shell .is-busy > * { visibility: hidden; }
html body .wp-admin-shell .is-busy::after {
  content: ''; position: absolute; left: 50%; top: 50%; width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%;
  border: 2px solid var(--acc, #b88b5f); border-right-color: transparent; animation: dfb-spin .7s linear infinite; visibility: visible;
}
@keyframes dfb-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { html body .wp-admin-shell .is-busy::after { animation-duration: 2s; } }
html body .admin-toast {
  position: fixed; right: 24px; bottom: 24px; z-index: 10000; display: flex; align-items: flex-start; gap: 12px; max-width: min(440px, calc(100vw - 32px));
  padding: 14px 14px 14px 16px; background: #1b1b1b; border: 1px solid #2c2c2c; border-left: 3px solid var(--acc, #b88b5f);
  box-shadow: 0 18px 40px -12px rgba(0, 0, 0, .7); color: #e6e6e6; font-family: Mulish, sans-serif; font-size: 14.5px; line-height: 1.5;
  animation: dfb-toast-in .25s ease-out;
}
html body .admin-toast.bad { border-left-color: #d86a5b; }
html body .admin-toast-icon { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--acc, #b88b5f); color: #111; margin-top: 1px; }
html body .admin-toast.bad .admin-toast-icon { background: #d86a5b; }
html body .admin-toast-text { flex: 1; }
html body .admin-toast-close { flex: none; background: none !important; border: 0 !important; color: #8a8a8a !important; font-size: 20px; line-height: 1; padding: 0 2px !important; cursor: pointer; min-width: 0 !important; height: auto !important; box-shadow: none !important; }
html body .admin-toast-close:hover { color: #fff !important; }
@keyframes dfb-toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) { html body .admin-toast { right: 16px; left: 16px; bottom: 16px; max-width: none; } }
html body .wp-admin-shell .is-busy, html body .wp-admin-shell .is-busy * { -webkit-text-fill-color: transparent !important; }

/* ---------- Systemcheck ---------- */
html body .wp-admin .syscheck-sum { margin: -4px 0 14px; }
html body .wp-admin .syscheck-row { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: start; gap: 14px; padding: 14px 0; border-bottom: 1px solid #242424; }
html body .wp-admin .syscheck-row:last-of-type { border-bottom: 0; }
html body .wp-admin .syscheck-dot { width: 8px; height: 8px; margin-top: 7px; border-radius: 50%; background: #6fae7c; box-shadow: 0 0 0 3px rgba(111, 174, 124, .14); }
html body .wp-admin .syscheck-row.warn .syscheck-dot { background: #d8935b; box-shadow: 0 0 0 3px rgba(216, 147, 91, .16); }
html body .wp-admin .syscheck-text { display: grid; gap: 3px; min-width: 0; }
html body .wp-admin .syscheck-text .n { font-weight: 700; color: #fff; font-size: 14.5px; }
html body .wp-admin .syscheck-text .d { font-size: 13px; line-height: 1.5; color: #8f8f8f; overflow-wrap: anywhere; }
html body .wp-admin .syscheck-status { align-self: start; margin-top: 1px; padding: 3px 10px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; line-height: 1.5; white-space: nowrap; }
html body .wp-admin .syscheck-status.ok { color: #8fcb9b; background: rgba(111, 174, 124, .12); }
html body .wp-admin .syscheck-status.warn { color: #e3a575; background: rgba(216, 147, 91, .14); }
html body .wp-admin .syscheck form { margin-top: 18px !important; }

/* Links im Fließtext: gleiche Schrift und Größe wie der Text drumherum (das Theme setzt Links am Handy auf 15 px).
   :not(#_):not(#__) hebt die Gewichtung über die lange :not()-Regel des Themes. */
html body .master_container :is(p, li, td) a:not(#_):not(#__):not([class*="btn"]):not([class*="button"]):not(.vc_general) {
  font-family: inherit !important; font-size: inherit !important; letter-spacing: inherit !important; line-height: inherit !important;
}

/* =====================================================================
   Handy: Kopfzeile + Menü
   ===================================================================== */
@media (max-width: 767px) {
  /* Topbar (Telefon + E-Mail) beim Scrollen weich ausblenden */
  /* (das Theme setzt die Höhe beim Scrollen schlagartig auf 0 – hier wird sie stattdessen weich auf 0 gefahren) */
  html body header.navbar:not(.wp-admin-header) .top-bar {
    margin-top: 0 !important; overflow: hidden; max-height: var(--dfb-topbar-h, 48px) !important; transform: none !important; opacity: 1 !important;
    transition: max-height .4s cubic-bezier(.4,0,.2,1), opacity .25s ease, transform .4s cubic-bezier(.4,0,.2,1) !important;
  }
  html body header.navbar.header_after_scroll:not(.wp-admin-header) .top-bar {
    max-height: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; border-width: 0 !important; opacity: 0 !important; transform: translateY(-8px) !important; pointer-events: none;
  }
  /* Logo immer in der größeren Variante (vorher wechselte es beim Scrollen von 30 auf 37 px) */
  html body header a.navbar-brand img,
  html body header.header_after_scroll a.navbar-brand img { max-height: 37px !important; }
  html body header .nav-container .navbar-header { height: 37px !important; margin-top: 16px !important; margin-bottom: 16px !important; }
  html body header .nav-container .dl-menuwrapper,
  html body header.header_after_scroll .nav-container .dl-menuwrapper { margin-top: 15px !important; } /* Menüknopf auf Logo-Mitte */
}

@media (max-width: 993px) {
  /* Menü als dunkle Karte mit Eiche-Linie oben – wie das Untermenü am Computer */
  html body header #dl-menu ul.dl-menu,
  html body header.header_after_scroll #dl-menu ul.dl-menu {
    background: #151515 !important; border-top: 2px solid var(--acc, #b88b5f);
    box-shadow: 0 26px 44px -18px rgba(0, 0, 0, .85) !important; padding: 10px 0 12px !important;
  }
  html body header #dl-menu ul.dl-menu ul,
  html body header.header_after_scroll #dl-menu ul.dl-menu ul { background: transparent !important; box-shadow: none !important; border: 0 !important; padding: 0 !important; }
  html body header #dl-menu li,
  html body header #dl-menu li:hover { background: transparent !important; border: 0 !important; }
  html body header #dl-menu .dl-menu li > a,
  html body header #dl-menu .dl-menu li:not(.hazel_mega_hide_link):hover > a {
    background: transparent !important; padding: 15px 60px 15px 26px !important;
    font-size: 14px !important; line-height: 1.4 !important; letter-spacing: 2.5px !important; font-weight: 400 !important;
    color: #d8d8d8 !important; transition: color .2s, padding-left .25s cubic-bezier(.2,.7,.2,1) !important;
  }
  /* aktueller Bereich: Eiche mit kleinem Strich davor (bleibt auch beim Berühren stehen) */
  html body header #dl-menu .dl-menu li > a::before {
    content: ''; position: absolute; left: 26px; top: 50%; width: 0; height: 1px; background: var(--acc, #b88b5f); transition: width .25s cubic-bezier(.2,.7,.2,1);
  }
  html body header #dl-menu .dl-menu li:is(.current-menu-item, .current-menu-ancestor):not(#_):not(#__) > a,
  html body header #dl-menu .dl-menu li:not(#_):not(#__) > a[aria-current="page"] { color: var(--acc, #b88b5f) !important; padding-left: 46px !important; }
  html body header #dl-menu .dl-menu li:is(.current-menu-item, .current-menu-ancestor) > a::before,
  html body header #dl-menu .dl-menu li > a[aria-current="page"]::before { width: 12px; }
  /* Berühren/Hover: nur Farbe, nichts verschiebt sich */
  html body header #dl-menu .dl-menu li:not(.dl-back) > a:is(:hover, :focus-visible) { color: var(--acc, #b88b5f) !important; }
  /* Pfeil zum Untermenü */
  html body header #dl-menu .gosubmenu { color: var(--acc, #b88b5f) !important; top: 0 !important; height: 51px !important; line-height: 51px !important; width: 60px !important; font-size: 12px !important; text-align: center; }
  /* feine Trennlinie vor „Login“ */
  html body header #dl-menu .dl-menu > li.wp-mobile-account { margin-top: 8px !important; padding-top: 8px !important; border-top: 1px solid #2b2b2b !important; }
  /* Untermenü: „zurück“ kleiner, darunter feine Trennlinie */
  html body header #dl-menu .dl-menu li.dl-back { margin-bottom: 8px !important; padding-bottom: 6px !important; border-bottom: 1px solid #2b2b2b !important; }
  html body header #dl-menu .dl-menu li.dl-back > a { font-size: 12px !important; letter-spacing: 2px !important; color: #9a9a9a !important; padding-left: 48px !important; }
  html body header #dl-menu .dl-menu li.dl-back > a::before { display: none; }
  html body header #dl-menu .dl-menu li.dl-back::after { left: 24px !important; bottom: 6px !important; color: var(--acc, #b88b5f) !important; }
  html body header #dl-menu .dl-menu li.dl-back > a:hover { color: #fff !important; padding-left: 48px !important; }
}

/* Handy-Menü + Untermenü: immer alle Punkte zeigen, kein eigener Scrollbalken (das Theme begrenzte auf 230 px) */
@media (max-width: 993px) {
  html body header .dl-menuwrapper .dl-menu.dl-menuopen,
  html body header .dl-menuwrapper .dl-menu.dl-menuopen ul,
  html body header .dl-menuwrapper .dl-menu.dl-menuopen li.dl-subviewopen > ul {
    max-height: none !important; overflow: visible !important;
  }
  /* nur falls das Handy sehr niedrig ist (quer): dann scrollt die ganze Karte, ohne sichtbaren Balken */
  html body header .dl-menuwrapper .dl-menu.dl-menuopen { max-height: calc(100dvh - 110px) !important; overflow-y: auto !important; scrollbar-width: none; }
  html body header .dl-menuwrapper .dl-menu.dl-menuopen::-webkit-scrollbar { display: none; }
}

/* ---------- Admin → Statistik ---------- */
html body .wp-admin .stats-years { display: flex; gap: 6px; flex-wrap: wrap; }
html body .wp-admin .stats-years a { padding: 6px 12px; border: 1px solid #2c2c2c; color: #a8a8a8 !important; font-size: 13px; letter-spacing: 1px; text-decoration: none !important; }
html body .wp-admin .stats-years a:hover { color: #fff !important; border-color: #444; }
html body .wp-admin .stats-years a.on { border-color: var(--acc, #b8895a); color: #fff !important; }
html body .wp-admin .stats-kpis .stat { display: flex; flex-direction: column; gap: 2px; }
html body .wp-admin .stats-delta { margin-top: 6px; font-size: 12.5px; line-height: 1.45; color: #8a8a8a; }
html body .wp-admin .stats-delta.up { color: #8fcb9b; }
html body .wp-admin .stats-delta.down { color: #e3a575; }
html body .wp-admin .stats-legend { display: flex; gap: 18px; font-size: 13px; color: #a8a8a8; margin: -4px 0 8px; }
html body .wp-admin .stats-legend i { display: inline-block; width: 12px; height: 12px; border-radius: 2px; vertical-align: -1px; margin-right: 6px; }
html body .wp-admin .stats-legend i.now, html body .wp-admin .stats-chart .now { background: var(--acc, #b8895a); fill: var(--acc, #b8895a); }
html body .wp-admin .stats-legend i.prev, html body .wp-admin .stats-chart .prev { background: #4a4a4a; fill: #4a4a4a; }
html body .wp-admin .stats-chart { display: block; width: 100%; height: auto; overflow: visible; }
html body .wp-admin .stats-chart .grid { stroke: #262626; stroke-width: 1; }
html body .wp-admin .stats-chart .base { stroke: #3a3a3a; stroke-width: 1; }
html body .wp-admin .stats-chart .tick { fill: #8a8a8a; font-size: 11px; font-family: Mulish, sans-serif; }
html body .wp-admin .stats-chart .hit { fill: transparent; }
html body .wp-admin .stats-chart .stats-month:hover .hit { fill: rgba(255, 255, 255, .035); }
html body .wp-admin .stats-chart .stats-month:hover .now { fill: #d1a679; }
html body .wp-admin .stats-table { margin-top: 14px; }
html body .wp-admin .stats-table summary { cursor: pointer; font-size: 13px; color: #a8a8a8; }
html body .wp-admin .stats-table[open] summary { margin-bottom: 10px; }
html body .wp-admin .stats-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: start; }
@media (max-width: 1100px) { html body .wp-admin .stats-cols { grid-template-columns: minmax(0, 1fr); } }
html body .wp-admin .stats-rank { display: grid; gap: 14px; }
html body .wp-admin .stats-rank-head { display: flex; justify-content: space-between; gap: 12px; font-size: 14.5px; }
html body .wp-admin .stats-rank-head .n { color: #e6e6e6; min-width: 0; overflow-wrap: anywhere; }
html body .wp-admin .stats-rank-head .v { color: #fff; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
html body .wp-admin .stats-rank-bar { height: 4px; background: #222; border-radius: 2px; margin: 7px 0 5px; overflow: hidden; }
html body .wp-admin .stats-rank-bar span { display: block; height: 100%; background: var(--acc, #b8895a); border-radius: 2px; }
html body .wp-admin .stats-rank-meta { font-size: 12.5px; color: #8a8a8a; }
html body .wp-admin .stats-cols { margin-top: 24px; }
html body .wp-admin .stats-cols > .panel { margin: 0 !important; }
/* Wie Kunden auf uns aufmerksam wurden: zwei Spalten (Rangliste + Freitexte) */
html body .wp-admin #aufmerksam { margin-top: 24px; }
html body .wp-admin .stats-cols.stats-cols-2 { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); margin-top: 0; }
@media (max-width: 1100px) { html body .wp-admin .stats-cols.stats-cols-2 { grid-template-columns: minmax(0, 1fr); } }
html body .wp-admin .stats-others { list-style: none; margin: 0; padding: 0; max-height: 320px; overflow: auto; }
html body .wp-admin ul.stats-others:not(#_):not(#__) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
html body .wp-admin ul.stats-others:not(#_):not(#__) > li { list-style: none !important; margin: 0 !important; padding: 7px 0 !important; border-bottom: 1px solid #262626; font-size: 14px !important; line-height: 1.4 !important; }
html body .wp-admin ul.stats-others:not(#_):not(#__) > li::before { content: none !important; display: none !important; }
html body .wp-admin .stats-kpis { margin-top: 18px; }

/* ---------- Kundenbereich: Layout nach eigener Einladung + Freigabe ---------- */
html body .invite-box { margin-top: 4px; }
html body .invite-files { list-style: none; margin: 4px 0 16px !important; padding: 0 !important; display: grid; gap: 6px; }
html body .invite-files li { display: flex; align-items: center; gap: 14px; padding: 10px 14px !important; border: 1px solid #2c2c2c; font-size: 15px; }
html body .invite-files li::before { display: none !important; }
html body .invite-files li a { flex: 1; min-width: 0; overflow-wrap: anywhere; }
html body .invite-offer { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 18px; align-items: center; margin-top: 22px; padding: 16px 18px; border: 1px solid #2c2c2c; border-left: 2px solid var(--acc, #b8895a); }
html body .invite-offer strong { color: #fff; font-weight: 700; }
html body .invite-offer .muted { grid-column: 1; }
html body .invite-offer .btn { grid-column: 2; grid-row: 1 / span 2; }
@media (max-width: 600px) { html body .invite-offer { grid-template-columns: minmax(0, 1fr); } html body .invite-offer .btn { grid-column: 1; grid-row: auto; justify-self: start; margin-top: 8px; } }
html body .layout-feedback { margin-top: 18px; padding-top: 16px; border-top: 1px solid #2c2c2c; }
html body .invite-files li { margin: 0 !important; }
html body .master_container .invite-files { padding-left: 0 !important; margin-left: 0 !important; }
html body .invite-box .check { display: inline-flex !important; align-items: center; gap: 9px; }
html body .invite-box .check input { margin: 0 !important; }
html body .invite-box .field:first-of-type { margin-bottom: 18px; }

/* Paket-Preistabellen aus dem Admin (gleiche Größen wie die übernommenen WordPress-Tabellen) */
[id^="price-table-wrap-p"] .cust-headformat { font-size: 40px; }
[id^="price-table-wrap-q"] .ult_price_term { font-size: 15px; }
html body .wp-admin .stats-import { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 22px 0 8px; padding-top: 18px; border-top: 1px solid #262626; }
html body .wp-admin .stats-sub { margin: 40px 0 6px; font-weight: 300; letter-spacing: 3px; font-size: 20px; }

/* Admin → E-Mail: Vorlagen */
html body .wp-admin .mail-tpl-row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid #262626; }
html body .wp-admin .mail-tpl-row .mail-tpl-select { flex: 1 1 260px; max-width: 420px; }
html body .wp-admin .tpl-links { display: grid; gap: 8px; margin-top: 4px; }
html body .wp-admin .tpl-delete { margin-top: 14px; padding-top: 14px; border-top: 1px solid #262626; }
html body .wp-admin .tpl-help code { font-size: 12px; }

/* ---------- Startseite: Einsatzkarte „Schon dabei gewesen“ ---------- */
html body .dfb-spots { padding: 70px 0 90px; }
html body .dfb-spots-grid { display: grid; grid-template-columns: minmax(0, 330px) minmax(0, 1fr); gap: 56px; align-items: center; }
html body .dfb-spots-text p { font-size: 16px !important; line-height: 1.7 !important; color: #a1a1a1 !important; margin: 0 0 26px; }
html body .dfb-spots-num { display: flex; gap: 34px; margin-bottom: 28px; }
html body .dfb-spots-num b { display: block; font-size: 44px; font-weight: 300; color: #fff; line-height: 1.1; }
html body .dfb-spots-num span { font-size: 12px; letter-spacing: 3px; color: #8a8a8a; text-transform: uppercase; }
html body .dfb-spots-lh { font-size: 12px; letter-spacing: 3px; color: var(--acc, #b88b5f); text-transform: uppercase; padding-top: 22px; margin-bottom: 10px; border-top: 1px solid #2a2a2a; }
html body .dfb-spots-locs { list-style: none !important; margin: 0 !important; padding: 0 !important; }
html body .dfb-spots-locs li { font-size: 15px !important; line-height: 2 !important; color: #d9d3cb !important; padding: 0 !important; margin: 0 !important; }
html body .dfb-spots-locs li::before { content: '' !important; display: inline-block; width: 6px; height: 6px; background: var(--acc, #b88b5f); margin-right: 12px; vertical-align: 2px; position: static !important; }
html body .dfb-spots-map { position: relative; width: 100%; aspect-ratio: 1234 / 588; }
html body .dfb-spots-map > img, html body .dfb-spots-map > svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
html body .dfb-spots-map > img { opacity: .9; }
html body .dfb-spot { cursor: default; outline: none; }
html body .dfb-spot .halo { fill: var(--acc, #b88b5f); opacity: .14; transition: opacity .2s; }
html body .dfb-spot .dot { fill: var(--acc, #b88b5f); opacity: .92; transition: fill .2s; }
html body .dfb-spot text { font-family: Mulish, sans-serif; font-size: 27px; fill: #e6e1da; letter-spacing: 1px; paint-order: stroke; stroke: #111; stroke-width: 7px; stroke-linejoin: round; opacity: 0; transition: opacity .2s; pointer-events: none; }
html body .dfb-spot text .cnt { fill: #a1a1a1; font-size: 22px; }
html body .dfb-spot.named text { opacity: 1; }
html body .dfb-spot.named text .cnt { display: none; }
html body .dfb-spot:is(:hover, :focus-visible) text { opacity: 1; }
html body .dfb-spot:is(:hover, :focus-visible) text .cnt { display: inline; }
html body .dfb-spot:is(:hover, :focus-visible) .dot { fill: #d1a679; }
html body .dfb-spot:is(:hover, :focus-visible) .halo { opacity: .28; }
@media (max-width: 900px) {
  html body .dfb-spots-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  html body .dfb-spot text { font-size: 38px; }
}
html body .wp-admin .spots-toggle { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
html body .wp-admin .spots-toggle .tiny { flex: 1 1 260px; }
html body .wp-admin .booking-spot .row { gap: 12px; }
html body .dfb-spots-locs li { list-style: none !important; }
html body .dfb-spots-locs li::marker { content: none; }
html body .dfb-spot:is(:hover, :focus-visible, :focus) text { opacity: 1; }
html body .dfb-spot:is(:hover, :focus-visible, :focus) text .cnt { display: inline; }
/* Einsatzkarte: Bezirkshauptstädte zur Orientierung */
html body .dfb-cities circle { fill: #fff; stroke: #111; stroke-width: 2; }
html body .dfb-cities text { font-family: Mulish, sans-serif; font-size: 24px; letter-spacing: 1px; fill: #e6e1da; paint-order: stroke; stroke: #111; stroke-width: 6px; stroke-linejoin: round; pointer-events: none; }
html body .dfb-cities { pointer-events: none; }
@media (max-width: 900px) { html body .dfb-cities text { font-size: 34px; } html body .dfb-cities circle { r: 8px; } }

/* Startseite: Bewertungen (links) und Einsatzkarte (rechts) in einer Zeile */
html body .dfb-split { padding: 30px 0 90px; }
html body .dfb-split-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px; align-items: start; } /* wie die zwei Spalten darüber (je 50 %, 30 px Abstand) */
html body .dfb-reviews.dfb-reviews--split { padding: 0 !important; }
html body .dfb-reviews--split .dfb-reviews-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
html body .dfb-spots-block > h2 { margin: 0 0 14px !important; }
html body .dfb-spots-block > p { font-size: 15px !important; line-height: 1.7 !important; color: #a1a1a1 !important; margin: 0 0 22px !important; }
html body .dfb-spots-block .dfb-spots-lh { margin-top: 26px; }
html body .dfb-spots-block .dfb-spots-locs { columns: 2; column-gap: 24px; }
html body .dfb-spots-block .dfb-spots-locs li { break-inside: avoid; }
html body .dfb-spots .dfb-spots-block { max-width: 760px; }
@media (max-width: 1100px) {
  html body .dfb-split-grid { grid-template-columns: minmax(0, 1fr); gap: 60px; }
}
@media (max-width: 600px) {
  html body .dfb-reviews--split .dfb-reviews-list { grid-template-columns: minmax(0, 1fr); }
  html body .dfb-spots-block .dfb-spots-locs { columns: 1; }
}
/* Einsatzkarte: Ortsname nur beim Darüberfahren/Antippen, über allem anderen */
html body .dfb-spot:is(:hover, :focus, :focus-visible) { position: relative; z-index: 2; }
html body .dfb-spot text .cnt { display: none !important; }
html body .dfb-spot-labels { pointer-events: none; }
html body .dfb-spot-labels text { font-family: Mulish, sans-serif; font-size: 27px; fill: #fff; letter-spacing: 1px; paint-order: stroke; stroke: #111; stroke-width: 8px; stroke-linejoin: round; opacity: 0; transition: opacity .15s; }
@media (max-width: 900px) { html body .dfb-spot-labels text { font-size: 38px; } }
html body .dfb-reviews--split .dfb-reviews-more { margin-top: 28px; }
html body .wp-admin .spots-toggle .spots-sync { white-space: nowrap; }

/* Admin → Unverbindliche Angebote */
html body .wp-admin .offer-filter { display: flex; align-items: center; gap: 8px 22px; flex-wrap: wrap; margin: 0 0 18px; }
html body .wp-admin .offer-filter a { color: #a1a1a1; text-decoration: none; padding: 4px 0; border-bottom: 1px solid transparent; }
html body .wp-admin .offer-filter a:hover { color: #fff; }
html body .wp-admin .offer-filter a.on { color: #fff; border-bottom-color: #b8895a; }
html body .wp-admin .offer-filter .tiny { margin-left: auto; }
html body .wp-admin .offers-table td { vertical-align: top; }
/* Übersicht: klickbare Kachel (offene Angebote) */
html body .wp-admin a.stat-link { display: block; text-decoration: none !important; color: inherit; transition: border-color 0.2s; }
html body .wp-admin a.stat-link:hover { border-color: var(--acc, #b8895a) !important; }
html body .wp-admin .stat .stat-sub { display: block; font-size: 12px; opacity: 0.8; margin-top: 2px; }
/* Zähler im Admin-Menü */
html body .nav-badge { margin-left: 6px; vertical-align: 2px; }
html body .dropdown-menu .nav-badge { margin-left: 8px; }
html body .main-menu-link .nav-badge { height: 16px; min-width: 16px; padding: 0 4px; font-size: 10px; margin: -8px 0 -8px 6px; vertical-align: middle; }
html body .mega-panel li::marker { color: var(--acc, #b8895a); }
/* Admin → Gutscheine & Codes */
html body .wp-admin .gift-admin-tabs { display: flex; gap: 26px; margin: 0 0 6px; }
html body .wp-admin .gift-admin-tabs a { color: #a1a1a1; text-decoration: none; padding: 4px 0; border-bottom: 1px solid transparent; }
html body .wp-admin .gift-admin-tabs a:hover { color: #fff; border-bottom-color: #b8895a; }
html body .wp-admin h2.stats-sub[id] { scroll-margin-top: 110px; }
/* Gutschein: Symbol in der Kopfzeile (neben dem Konto), Eintrag im mobilen Menü, Karte im Seitenmenü */
.wp-gift-icon + .wp-account-icon { margin-left: 6px; }
.wp-tip-icon { position: relative; }
.wp-tip-icon::after {
  content: attr(data-tip);
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  transform: translate(-50%, -4px);
  padding: 6px 10px;
  background: #101010;
  border: 1px solid #2a2a2a;
  color: #fff;
  font: 400 12px/1.2 Mulish, sans-serif;
  letter-spacing: 0.5px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s, transform 0.15s;
}
.wp-tip-icon:is(:hover, :focus-visible)::after { opacity: 1; transform: translate(-50%, 0); }
html body .wp-tip-icon:is(:hover, :focus-visible) svg { color: var(--acc, #b8895a); }
html body header #dl-menu .dl-menu > li.wp-mobile-gift { margin-top: 8px !important; padding-top: 8px !important; border-top: 1px solid #2b2b2b !important; }
html body header #dl-menu .dl-menu > li.wp-mobile-gift + li.wp-mobile-account { margin-top: 0 !important; padding-top: 0 !important; border-top: 0 !important; }
html body .gift-root .summary-box ul.gift-facts-list { list-style: none !important; padding: 0 !important; }
html body .gift-root .summary-box ul.gift-facts-list li:not(#_):not(#__) { position: relative; margin: 0 0 3px !important; padding-left: 14px !important; list-style: none !important; font-size: 13.5px !important; line-height: 1.5 !important; color: var(--muted, #8a8a8a) !important; }
html body .gift-root .summary-box ul.gift-facts-list li::marker { content: none; }
html body .gift-root .summary-box ul.gift-facts-list li::before { content: ''; position: absolute; left: 0; top: calc(0.5lh - 2.5px); width: 5px; height: 5px; background: var(--acc, #b8895a); }
html body .wp-admin .mail-back-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 26px; }
/* Admin → Bewertungen: Abgleich mit Google */
html body .wp-admin .google-sync-nums { display: flex; gap: 40px; margin: 4px 0 12px; }
html body .wp-admin .google-sync-nums div { display: flex; flex-direction: column; }
html body .wp-admin .google-sync-nums strong { color: #fff; font-size: 34px; font-weight: 700; line-height: 1.1; }
html body .wp-admin .google-sync-nums span { font-size: 13px; color: #8a8a8a; }
html body .wp-admin .google-sync-hint { color: var(--acc, #b8895a); margin: 0 0 12px; line-height: 1.5; }
html body .wp-admin .google-sync-hint a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
html body .wp-admin .google-sync-id { margin: 4px 0 14px; }
html body .wp-admin .google-sync-id summary { cursor: pointer; color: #a1a1a1; }

/* KI-Kennzeichnung (AI Act Art. 50): Label direkt am Bild + kurzer Hinweis in Klartext */
.master_container .srg-item, .overlay-grid.ki-tiles .overlay-tile { position: relative; }
.master_container .srg-item::after, .overlay-grid.ki-tiles .overlay-tile::after {
  content: 'KI-generiert'; position: absolute; top: 8px; right: 8px; z-index: 3; pointer-events: none;
  padding: 3px 9px; border-radius: 999px; background: rgba(10, 10, 10, .6); color: #fff;
  font: 600 11px/1.3 Mulish, sans-serif; letter-spacing: .3px;
}
html body .master_container p.ki-note:not(#_):not(#__), html body p.ki-note:not(#_):not(#__) {
  margin: 10px 0 0 !important; font-size: 13px !important; line-height: 1.5 !important; color: #8a8a8a !important; text-align: left;
}
html body .overlay-grid.ki-tiles { margin-top: 8px; }

/* Einstellungen: zwei Spalten (links Geschäft, rechts System), Panels untereinander ohne Lücke */
html body .wp-admin .settings-cols { align-items: start; }
html body .wp-admin .settings-col { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
html body .wp-admin .settings-col > .panel { margin: 0 !important; }
html body .wp-admin .rules-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 18px; }
@media (max-width: 1300px) { html body .wp-admin .rules-grid { grid-template-columns: minmax(0, 1fr); } }
html body .wp-admin .settings-col p.tiny:not(#_):not(#__) { font-size: 12px !important; line-height: 1.55 !important; }
html body .wp-admin .settings-col .field > label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: calc(100% - 24px); }
