.elementor-12866 .elementor-element.elementor-element-40316d1{--display:flex;--min-height:677px;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}@media(max-width:767px){.elementor-12866 .elementor-element.elementor-element-40316d1{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:10px;--padding-bottom:10px;--padding-left:10px;--padding-right:10px;}}@media(min-width:2400px){.elementor-12866 .elementor-element.elementor-element-40316d1{--min-height:400px;}}/* Start custom CSS for html, class: .elementor-element-8d5bc96 *//* =========================================================
   GM / CSOB RESULTS – CLEANUP + LAYOUT
   Nur Ergebnisseite, ohne Bookingbar anzufassen
   ========================================================= */

.gm-csob--resultsOnly{
  --gm-red:#e30613;
  --gm-red-hover:#b8050f;
  --gm-text:#111;
  --gm-muted:rgba(17,17,17,.65);
  --gm-border:rgba(0,0,0,.10);
  --gm-radius:0px;
}

.gm-csob--resultsOnly #csobResultListWrapper{
  margin-top: 10px;
}

.gm-csob--resultsOnly #csobErrorsWrapper{
  margin: 10px 0;
}

.gm-csob--resultsOnly #csobCartWrapper{
  margin-top: 18px;
}

/* Elementor Global Styles entschärfen – nur innerhalb CSOB */
.gm-csob--resultsOnly :where(button, .button, a.button, input[type="button"], input[type="submit"]){
  border-radius: var(--gm-radius) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  box-shadow: none !important;
}

/* Mobile spacing */
@media (max-width: 768px){
  .gm-csob--resultsOnly{
    padding: 0;
  }
}

/* =========================================================
   FIX: Elementor Global Styles vs PhotoSwipe (Lightbox)
   Nur innerhalb der CSOB-Ergebnisse!
   ========================================================= */

.gm-csob--resultsOnly .pswp{ z-index: 999999 !important; }

/* Elementor setzt teils global button background etc. -> härter resetten */
.gm-csob--resultsOnly .pswp__button,
.gm-csob--resultsOnly .pswp__button:focus,
.gm-csob--resultsOnly .pswp__button:active,
.gm-csob--resultsOnly .pswp__button:hover{
  background: rgba(0,0,0,.25) !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  min-width: 44px !important;
  min-height: 44px !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 6px !important;
  color: inherit !important;
}

.gm-csob--resultsOnly .pswp__button:hover{
  background: rgba(0,0,0,.40) !important;
}

.gm-csob--resultsOnly .pswp__top-bar{
  background: linear-gradient(rgba(0,0,0,.45), rgba(0,0,0,0)) !important;
}

/* =========================================================
   PHOTOSWIPE (Elementor Lightbox) – Transparente Controls + Reset
   ========================================================= */

/* z-index sicher über Bookingbar/Widgets */
.pswp{ z-index: 999999 !important; }

/* Elementor-Rot / Outline / Shadow killen */
.pswp__button,
.pswp__button:focus,
.pswp__button:active,
.pswp__button:hover{
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Buttons kompakt + transparent */
.pswp__button{
  padding: 0 !important;
  min-width: 44px !important;
  min-height: 44px !important;
  width: 44px !important;
  height: 44px !important;
  line-height: 44px !important;

  background-color: #000 !important;
  border-radius: 50px !important;

  opacity: .9;
  transition: background-color .2s ease, opacity .2s ease;
}

/* Hover/Fokus */
.pswp__button:hover,
.pswp__button:focus{
  background-color: #000 !important;
  opacity: 1;
}

/* Icons heller */
.pswp__button::before{
  filter: brightness(1.35);
}

/* Close stärker sichtbar */
.pswp__button--close{
  background-color: #000!important;
}

/* Pfeile */
.pswp__button--arrow--left,
.pswp__button--arrow--right{
  display:none!important;
}

/* Top-Bar leicht transparent */
.pswp__top-bar{
  background: linear-gradient(rgba(0,0,0,.45), rgba(0,0,0,0)) !important;
}

/* Fokus-Ring weg */
.pswp__button:focus-visible{
  outline: none !important;
}

.gm-bb__item.is-active{
  background: rgba(227,6,19,.10);
  outline: 1px solid rgba(227,6,19,.25);
}

/* =========================================================
   CSOB – RESULTS/DEALS/CART FULL WIDTH
   ========================================================= */

.gm-csob__results,
.gm-csob__deals,
.gm-csob__cart{
  width: 100%;
}

/* Modals: Breite begrenzen & Umbrüche erlauben */
.gm-csob :where([role="dialog"], .modal, .csob-modal, [class*="Modal"], [class*="modal"]){
  width: min(980px, 96vw) !important;
  max-width: 96vw !important;
}

.gm-csob :where([role="dialog"], .modal, .csob-modal, [class*="Modal"], [class*="modal"])
:where(button, [role="button"], a, input[type="button"], input[type="submit"]){
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  line-height: 1.15 !important;
}

/* Gallery/Lightbox/Carousel Buttons: Elementor “dominierung” entschärfen */
.gm-csob :where([class*="gallery"], [class*="lightbox"], [class*="carousel"])
:where(button,[role="button"]){
  min-height: auto !important;
  min-width: auto !important;
  border-radius: 50% !important;
}
.gm-csob :where([class*="gallery"], [class*="lightbox"], [class*="carousel"]) *{
  pointer-events: auto;
}

/* CSOB Buttons (falls farbig überschrieben) */
.deleteBookingButton{ color:#000 !important; }
.editCustomerButton{ color:#000 !important; }
.editBookingButton{ color:#000 !important; }

/* =========================================================
   MOBILE – FIX: Buttons fliegen nicht raus + 1 Spalte
   ========================================================= */

@media (max-width: 900px){
  .gm-bookingbar__form{
    grid-template-columns: 1fr;
  }

  .gm-bb__cell{
    border-right: 0;
    border-bottom: 1px solid var(--gm-line);

    /* verhindert, dass Button/Text rausdrücken */
    flex-wrap: wrap;
    align-items: center;
  }

  .gm-bb__text{
    flex: 1 1 160px;
    min-width: 0;
  }

  /* Dropdown Button volle Breite */
  .gm-bb__dropdownBtn{
    flex: 1 1 100%;
    width: 100%;
    min-width: 0 !important;
    white-space: normal !important;
  }

  /* Submit volle Breite */
  .gm-bb__submit{
    display: block;
    width: 100%;
    white-space: normal;
  }

  /* Menü an die Zelle koppeln */
  .gm-bb__menu{
    left: 0;
    right: 0;
    width: auto !important;
    max-width: none !important;
  }
}

@media (max-width: 480px){
  .gm-bb__cell{
    padding: 10px 12px;
    gap: 10px;
  }

  .gm-bookingbar .gm-bb__title{ font-size: 15px; }

  .gm-bb__dropdownBtn,
  .gm-bb__submit{
    font-size: 15px;
    min-height: 48px;
    height: auto;
    padding: 10px 12px;
  }
}

/* =========================================================
   GM / CSOB Datebar (neu – Datepicker-Leiste auf Ergebnisseite)
   ========================================================= */

.gm-csob--resultsOnly .gm-csob__datebar{
  margin: 0 0 12px 0;
  padding: 12px 12px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.02);
}

.gm-csob--resultsOnly .gm-csob__datebarInner{
  display: grid;
  grid-template-columns: 110px 1fr auto;
  gap: 10px;
  align-items: center;
}

.gm-csob--resultsOnly .gm-csob__dateLabel{
  font-weight: 600;
  color: rgba(17,17,17,.75);
  margin: 0;
}

.gm-csob--resultsOnly .gm-csob__dateInput{
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid rgba(0,0,0,.12);
  background: #fff;
  cursor: pointer;
}

.gm-csob--resultsOnly .gm-csob__dateBtn{
  min-height: 44px;
  padding: 10px 14px;
  border: 0;
  background: #e30613;
  color: #fff;
  cursor: pointer;
}

.gm-csob--resultsOnly .gm-csob__dateBtn:hover{
  background: #b8050f;
}

.gm-csob--resultsOnly .gm-csob__dateHint{
  margin-top: 8px;
  font-size: 13px;
  color: rgba(17,17,17,.65);
}

@media (max-width: 767px){
  .gm-csob--resultsOnly .gm-csob__datebarInner{
    grid-template-columns: 1fr;
  }
}


/* =========================================================
   BASIS DESIGN (DESKTOP + ALLGEMEIN)
========================================================= */
.flatpickr-calendar { font-size: 13px !important; }

/* =========================================================
   HEADER FARBE (DESKTOP + MOBILE gleich)
========================================================= */
.flatpickr-calendar .flatpickr-months,
.flatpickr-calendar .flatpickr-month {
  background: #e30613 !important;
}

/* Monat + Jahr grundsätzlich weiß */
.flatpickr-calendar .flatpickr-current-month,
.flatpickr-calendar .flatpickr-current-month .cur-month,
.flatpickr-calendar .flatpickr-current-month input.cur-year {
  color: #fff !important;
}

/* Pfeile weiß */
.flatpickr-calendar .flatpickr-prev-month svg,
.flatpickr-calendar .flatpickr-next-month svg {
  fill: #fff !important;
}

/* =========================================================
   DESKTOP: JAHR OPTISCH IDENTISCH ZUM MONAT
========================================================= */
.flatpickr-calendar .flatpickr-current-month .numInputWrapper {
  background: #e30613 !important;
  border: none !important;
  padding-left: 6px !important;
}

.flatpickr-calendar .flatpickr-current-month input.cur-year {
  font-size: 18px !important;
  font-weight: 600 !important;
  font-family: inherit !important;
  line-height: 1 !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  pointer-events: none !important;
}

/* Spinner / Pfeile am Jahr AUS */
.flatpickr-calendar .numInputWrapper span.arrowUp,
.flatpickr-calendar .numInputWrapper span.arrowDown {
  display: none !important;
}

/* Browser-Spinner aus */
.flatpickr-calendar input.cur-year::-webkit-outer-spin-button,
.flatpickr-calendar input.cur-year::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}
.flatpickr-calendar input.cur-year {
  -moz-appearance: textfield !important;
}

/* Mehrere Monate nebeneinander (Desktop) */
.flatpickr-months { flex-wrap: wrap !important; }
.flatpickr-rContainer { flex-wrap: wrap; gap: 10px; }

/* Monatstext */
.flatpickr-current-month span.cur-month {
  font-size: 18px !important;
  font-weight: 600 !important;
}

/* =========================================================
   WEEKDAYS (DESKTOP): JEDE ZELLE einfärben
========================================================= */
@media (min-width: 768px) {
  .flatpickr-weekdays {
    width: 100% !important;
    background: transparent !important;
    border-bottom: 1px solid rgba(0,0,0,0.12) !important;
  }

  .flatpickr-weekdaycontainer {
    width: 100% !important;
    display: flex !important;
    background: transparent !important;
  }

  .flatpickr-weekday {
    flex: 1 1 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #333 !important;
    border-right: 1px solid rgba(0,0,0,0.06) !important;
    box-sizing: border-box !important;
  }
  .flatpickr-weekday:last-child { border-right: none !important; }

  .flatpickr-weekday:nth-child(-n+5) { background: rgba(0,0,0,0.06) !important; }
  .flatpickr-weekday:nth-child(6),
  .flatpickr-weekday:nth-child(7) { background: rgba(0,0,0,0.12) !important; }
}

/* =========================================================
   AUSWAHLFARBEN
========================================================= */
.flatpickr-day.today,
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
  background-color: #e30613 !important;
  border-color: #e30613 !important;
  color: #fff !important;
}
.flatpickr-day:hover {
  background-color: #f75a66 !important;
  border-color: #f75a66 !important;
  color: #fff !important;
}

/* =========================================================
   CURSOR FIX (nur Input selbst)
   (altInput = true -> sichtbares Feld ist input.flatpickr-input)
========================================================= */
input.flatpickr-input,
input.flatpickr-input[readonly],
#form-field-datum,
#form-field-datum[readonly] {
  cursor: pointer !important;
  caret-color: transparent !important;
}

/* =========================================================
   CURSOR FIX – komplette Feldfläche (grün markiert)
   ✅ nur Datum + Unterkunft, NICHT global für alle Felder
========================================================= */

/* 1) Wrapper vom Datum-Feld (Elementor Field Group) */
.elementor-field-group:has(#form-field-datum),
/* 2) Wrapper vom Typ-Feld */
.elementor-field-group:has(#form-field-typ) {
  cursor: pointer !important;
}

/* alles darin soll auch Pointer sein (Label, Innenabstände, etc.) */
.elementor-field-group:has(#form-field-datum) *,
.elementor-field-group:has(#form-field-typ) * {
  cursor: pointer !important;
}

/* Flatpickr altInput liegt direkt nach dem Original-Input */
#form-field-datum + input.flatpickr-input,
#form-field-datum + input.flatpickr-input[readonly] {
  cursor: pointer !important;
  caret-color: transparent !important;
}

/* Elementor Submit ausblenden */
.elementor-form button[type="submit"] { display: none !important; }

/* =========================================================
   MOBILE OPTIMIERUNG
========================================================= */
@media (max-width: 767px) {

  .flatpickr-calendar {
    width: 100% !important;
    max-width: 100vw !important;
    left: 0 !important;
    right: 0 !important;
  }

  .flatpickr-innerContainer,
  .flatpickr-rContainer,
  .flatpickr-days,
  .flatpickr-weekdays,
  .flatpickr-weekdaycontainer,
  .dayContainer {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
  }

  .flatpickr-month { width: 100% !important; }

  .flatpickr-calendar .flatpickr-months .flatpickr-month:not(:first-child),
  .flatpickr-calendar .dayContainer:not(:first-child),
  .flatpickr-calendar .flatpickr-weekdaycontainer:not(:first-child) {
    display: none !important;
  }

  .flatpickr-calendar .flatpickr-months {
    position: relative !important;
    min-height: 56px !important;
    display: flex !important;
    align-items: center !important;
  }

  /* Interne Month-Anzeige auf iOS kann "leer" wirken -> wir lassen sie, aber legen unseren Titel drüber */
  .flatpickr-calendar .flatpickr-current-month {
    opacity: 0 !important;         /* damit sie nicht stört */
    visibility: hidden !important;  /* und sicher weg */
  }

  /* ✅ Unser eigener, zuverlässiger Titel im Header */
  .fp-mobile-title {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 80 !important;
    color: #fff !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
    pointer-events: none !important;
  }

  .flatpickr-calendar .flatpickr-prev-month,
  .flatpickr-calendar .flatpickr-next-month {
    width: 44px !important;
    height: 44px !important;
    top: 6px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 90 !important;
  }

  .flatpickr-calendar .flatpickr-prev-month { left: 6px !important; }
  .flatpickr-calendar .flatpickr-next-month { right: 6px !important; }

  .flatpickr-weekdays {
    background: #f0f0f0 !important;
    border-bottom: 1px solid rgba(0,0,0,0.12) !important;
  }

  .flatpickr-weekdaycontainer { display: flex !important; }

  .flatpickr-weekday {
    flex: 1 1 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 28px !important;
    font-size: 12px !important;
    color: #666 !important;
    background: transparent !important;
  }

  .flatpickr-weekday:nth-child(-n+5) { background: rgba(0,0,0,0.04) !important; }
  .flatpickr-weekday:nth-child(6),
  .flatpickr-weekday:nth-child(7) { background: rgba(0,0,0,0.09) !important; }

  .dayContainer { display: flex !important; flex-wrap: wrap !important; }

  .flatpickr-day {
    flex: 1 1 14.2857% !important;
    max-width: 14.2857% !important;
    box-sizing: border-box !important;
  }

  .flatpickr-calendar::after { display: none !important; }
}/* End custom CSS */