/* cas-booking-switch - Stylesheet aufgeraeumt am 2026-07-29.
   Die Datei war ueber viele Runden auf mehrere Schichten angewachsen, die
   sich gegenseitig ueberschrieben haben. Entfernt wurde ausschliesslich, was
   nie gewirkt hat: Deklarationen, die weiter unten fuer denselben Selektor
   ohnehin neu gesetzt werden. Die Reihenfolge ist unveraendert - bei gleicher
   Spezifitaet entscheidet sie, deshalb wird bewusst nichts verschoben.
   Geprueft per Computed-Style-Vergleich gegen die alte Fassung, Desktop wie
   mobil, in allen Zustaenden: keine Verhaltensaenderung. */

.cas-bs-portal {
  --ink: #333333;
  --muted: #706f68;
  --paper: #ffffff;
  --line: #e5dfd4;
  --gold: #f89a34;
  --gold-dark: #d87912;
  --gold-soft: #eadfc7;
  --gold-bg: #fff2e3;
  box-sizing: border-box;
  color: var(--ink);
  font-family: "Helvetica Neue", Helvetica, -apple-system, "Segoe UI", Arial, sans-serif;
  letter-spacing: 0;
}

.cas-bs-portal *, .cas-bs-portal *::before, .cas-bs-portal *::after {
  box-sizing: border-box;
}

.cas-booking-switch {
  --ink: #333333;
  --muted: #706f68;
  --paper: #ffffff;
  --line: #e5dfd4;
  --gold: #f89a34;
  --gold-dark: #d87912;
  --gold-soft: #eadfc7;
  --gold-bg: #fff2e3;
  box-sizing: border-box;
  color: var(--ink);
  font-family: "Helvetica Neue", Helvetica, -apple-system, "Segoe UI", Arial, sans-serif;
  letter-spacing: 0;
  margin: 0 auto 18px;
  position: relative;
  width: calc(100% - 32px);
  z-index: 20;
}

.cas-booking-switch *, .cas-booking-switch *::before, .cas-booking-switch *::after {
  box-sizing: border-box;
}

.cas-booking-switch.cas-bs-attached {
  left: 50%;
  margin: 0;
  padding: 0;
  position: absolute;
  top: var(--cas-bs-top, 220px);
  transform: translateX(-50%);
}

.cas-bs-searchbar {
  align-items: stretch;
  background: var(--paper);
  border: 2px solid var(--gold);
  display: flex;
  overflow: hidden;
}

.cas-bs-seg, .cas-bs-search, .cas-bs-chip, .cas-bs-day, .cas-bs-nav, .cas-bs-close, .cas-bs-step, .cas-bs-apply, .cas-bs-kind {
  appearance: none;
  cursor: pointer;
  font: inherit;
  letter-spacing: 0;
  touch-action: manipulation;
}

.cas-bs-seg {
  background: var(--paper);
  border: 0;
  color: var(--ink);
  flex: 1 1 0;
  min-width: 0;
  text-align: left;
  transition: background 0.12s ease;
}

.cas-bs-seg:hover, .cas-bs-seg.is-open {
  background: #fbf6ed;
}

.cas-bs-label {
  color: var(--muted);
  display: block;
  font-weight: 800;
  line-height: 1.15;
  text-transform: uppercase;
}

.cas-bs-value {
  color: var(--ink);
  display: block;
  font-weight: 850;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cas-bs-placeholder {
  color: #bdb6a7;
  font-weight: 700;
}

.cas-bs-seg small {
  color: var(--muted);
  display: block;
  line-height: 1.15;
  margin-top: 1px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cas-bs-divider {
  background: var(--line);
  flex: 0 0 1px;
}

.cas-bs-search {
  align-self: stretch;
  background: var(--gold-soft);
  border: 0;
  border-radius: 0;
  color: #fff;
  flex: 0 0 122px;
  font-weight: 850;
}

.cas-bs-search:not(:disabled) {
  background: var(--gold);
}

.cas-bs-search:disabled {
  cursor: not-allowed;
}

.cas-bs-route {
  color: var(--muted);
  display: block;
  font-size: 12px;
  line-height: 1.4;
  margin: 8px auto 0;
  max-width: 620px;
  text-align: center;
}

.cas-bs-route[hidden] {
  display: none;
}

.cas-bs-route.is-old {
  color: #8a6a2f;
}

.cas-bs-warn {
  color: #9a3b2f;
  font-size: 12px;
  line-height: 1.4;
  margin: 10px auto 0;
  max-width: 560px;
}

.cas-bs-sheet {
  background: var(--paper);
  border: 1px solid var(--line);
  display: none;
  margin-top: 8px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  position: relative;
  touch-action: pan-y;
  width: 100%;
  z-index: 100001;
}

.cas-bs-sheet.cas-bs-open, .cas-booking-switch.cas-bs-open .cas-bs-sheet {
  display: block;
}

.cas-bs-backdrop {
  background: rgba(28, 26, 22, 0.55);
  inset: 0;
  position: fixed;
  z-index: 100000;
}

.cas-bs-backdrop[hidden] {
  display: none;
}

body.cas-bs-lock {
  overflow: hidden;
}

.cas-bs-sheet.cas-bs-open, .cas-booking-switch.cas-bs-open .cas-bs-sheet {
  border-radius: 18px;
  box-shadow: 0 24px 70px -20px rgba(0, 0, 0, 0.45);
  left: 50%;
  margin: 0;
  max-height: min(94vh, 900px);
  max-width: min(720px, calc(100vw - 32px));
  padding: 20px 24px 0;
  position: fixed;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(720px, calc(100vw - 32px));
  z-index: 100001;
}

.cas-bs-guests-grid .cas-bs-counter {
  align-items: center;
}

.cas-bs-flexrow {
  display: grid;
  gap: 4px 22px;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

@media (max-width: 700px) {
  .cas-bs-sheet.cas-bs-open, .cas-booking-switch.cas-bs-open .cas-bs-sheet {
    border-radius: 14px;
    max-height: calc(100vh - 24px);
    max-width: calc(100vw - 20px);
    padding: 16px 16px 0;
    width: calc(100vw - 20px);
  }

  .cas-bs-sheet.cas-bs-open .cas-bs-title strong {
    font-size: 18px;
  }

  .cas-bs-guests-grid {
    grid-template-columns: 1fr 1fr;
  }

}

.cas-bs-grip {
  display: none;
}

.cas-bs-close {
  align-items: center;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  display: flex;
  justify-content: center;
  line-height: 0;
  position: absolute;
}

.cas-bs-title strong {
  color: var(--ink);
  display: block;
  font-weight: 850;
  line-height: 1.18;
}

.cas-bs-title span {
  color: var(--muted);
  display: block;
  margin-top: 3px;
}

.cas-bs-tabs {
  display: flex;
  margin: 0 0 10px;
}

.cas-bs-mode-tabs {
  border-bottom: 1px solid var(--line);
  gap: 0;
  margin-left: -12px;
  margin-right: -12px;
}

.cas-bs-mode-tabs .cas-bs-chip {
  background: var(--paper);
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  color: var(--ink);
  flex: 1 1 0;
}

.cas-bs-mode-tabs .cas-bs-chip.is-active {
  background: var(--paper);
  border-bottom-color: var(--gold);
  color: var(--gold-dark);
}

.cas-bs-dprange {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 10px 0 8px;
}

.cas-bs-dpbox {
  appearance: none;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 9px;
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  min-width: 0;
  padding: 7px 10px;
  text-align: left;
  touch-action: manipulation;
}

.cas-bs-dpbox.is-active {
  border-color: var(--gold);
}

.cas-bs-dpbox span {
  color: var(--muted);
  display: block;
  font-size: 8.5px;
  font-weight: 800;
  line-height: 1.15;
  text-transform: uppercase;
}

.cas-bs-dpbox strong {
  display: block;
  font-size: 13px;
  line-height: 1.2;
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cas-bs-chip {
  background: var(--paper);
  border: 1px solid var(--line);
  color: var(--ink);
  font-weight: 800;
}

.cas-bs-chip.is-active {
  background: var(--gold-bg);
  border-color: var(--gold);
  color: var(--gold-dark);
}

.cas-bs-cal-head {
  align-items: center;
  display: grid;
  gap: 10px;
}

.cas-bs-cal-head strong {
  color: var(--ink);
  font-weight: 850;
  text-align: center;
}

.cas-bs-nav {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
}

.cas-bs-week, .cas-bs-grid {
  display: grid;
  gap: 2px;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  margin-left: auto;
  margin-right: auto;
}

.cas-bs-months-view {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0 auto;
  max-width: 620px;
}

.cas-bs-month {
  min-width: 0;
}

.cas-bs-month-title {
  color: var(--ink);
  font-size: 13px;
  font-weight: 850;
  margin: 0 0 6px;
  text-align: center;
}

.cas-bs-week span {
  color: #aaa397;
  font-weight: 800;
  padding: 1px 0;
  text-align: center;
}

.cas-bs-grid {
  margin-top: 4px;
}

.cas-bs-day {
  align-items: center;
  aspect-ratio: 1 / 1;
  background: var(--paper);
  border: 0;
  border-radius: 8px;
  color: var(--ink);
  display: flex;
  justify-content: center;
  min-width: 0;
  padding: 0;
  position: relative;
  user-select: none;
}

.cas-bs-day:not(:disabled):hover {
  background: var(--gold-bg);
}

.cas-bs-day:disabled {
  background: #f7f5f0;
  color: #d6d0c2;
  cursor: not-allowed;
}

.cas-bs-day.is-range {
  background: #f7dcb8;
  border-radius: 0;
}

.cas-bs-day.is-edge {
  background: var(--gold);
  border-radius: 8px;
  color: #fff;
  font-weight: 850;
}

.cas-bs-note {
  color: var(--muted);
  line-height: 1.35;
  margin: 10px auto 4px;
}

.cas-bs-flex, .cas-bs-months {
  display: flex;
  flex-wrap: wrap;
}

.cas-bs-sheet > .cas-bs-label {
  color: var(--muted);
  display: inline-block;
  font-weight: 800;
  margin: 8px 8px 0 0;
}

.cas-bs-sticky {
  background: rgba(255, 255, 255, 0.96);
  border-top: 1px solid var(--line);
  bottom: 0;
  box-shadow: 0 -8px 18px rgba(37, 37, 49, 0.06);
  position: sticky;
  text-align: center;
  z-index: 3;
}

.cas-bs-apply {
  background: var(--gold);
  border: 0;
  border-radius: 8px;
  color: #fff;
  font-weight: 850;
  width: 100%;
}

.cas-bs-kind-list {
  display: grid;
  padding-bottom: 4px;
}

.cas-bs-kind {
  align-items: center;
  background: var(--paper);
  border: 1px solid var(--line);
  color: var(--ink);
  display: flex;
  flex-direction: column;
  font-weight: 800;
  gap: 3px;
  justify-content: center;
  line-height: 1.12;
  min-width: 0;
  overflow: hidden;
  text-align: center;
  width: 100%;
}

.cas-bs-kind svg {
  color: var(--ink);
  flex-shrink: 0;
}

.cas-bs-kind span {
  display: block;
  max-width: 100%;
  overflow-wrap: break-word;
  white-space: normal;
  width: 100%;
  word-break: normal;
}

.cas-bs-kind small {
  color: var(--muted);
  display: block;
  font-weight: 700;
  margin-top: 1px;
  max-width: 100%;
  overflow-wrap: break-word;
  white-space: normal;
  width: 100%;
  word-break: normal;
}

.cas-bs-kind.is-active {
  background: var(--gold-bg);
  border-color: var(--gold);
  color: var(--gold-dark);
}

.cas-bs-kind.is-active svg {
  color: var(--gold-dark);
}

.cas-bs-counter {
  align-items: center;
  border-bottom: 1px solid #f0ece4;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(140px, 1fr) auto;
}

.cas-bs-counter strong, .cas-bs-counter small {
  display: block;
}

.cas-bs-counter strong {
  font-weight: 850;
  line-height: 1.2;
}

.cas-bs-counter small {
  color: var(--muted);
  font-weight: 600;
  margin-top: 1px;
}

.cas-bs-stepper {
  align-items: center;
  display: grid;
  gap: 8px;
}

.cas-bs-step {
  background: var(--paper);
  border: 1px solid var(--gold);
  border-radius: 7px;
  color: var(--gold-dark);
  line-height: 1;
}

.cas-bs-stepper span {
  font-weight: 850;
  text-align: center;
}

@media (max-width: 600px) {
  #home-slider.cas-bs-mobile-between .slide-description {
    margin-top: var(--cas-bs-mobile-widget-gap, 66px);
  }

  body.cas-bs-lock {
    overflow: hidden;
    overscroll-behavior: contain;
  }

  .cas-booking-switch, .cas-booking-switch.cas-bs-attached {
    max-width: none;
    padding: 0;
    position: absolute;
    top: var(--cas-bs-top, 150px);
  }

  .cas-booking-switch.cas-bs-attached.cas-bs-mobile-between {
    margin: 0;
    top: var(--cas-bs-top, 150px);
  }

  .cas-bs-seg {
    flex: 1 1 0;
    min-width: 0;
  }

  .cas-bs-divider {
    display: none;
  }

  .cas-bs-search {
    flex: 0 0 82px;
  }

  .cas-bs-seg small {
    display: none;
  }

  .cas-bs-guests {
    flex: 0 0 72px;
  }

  .cas-bs-sheet {
    border: 0;
    box-shadow: 0 -16px 36px rgba(0, 0, 0, 0.18);
    margin: 0;
    -webkit-overflow-scrolling: touch;
  }

  .cas-bs-grip {
    background: #ded6c8;
    border-radius: 999px;
    display: block;
    height: 4px;
    left: 50%;
    position: sticky;
    top: 2px;
    transform: translateX(-50%);
    width: 42px;
    z-index: 5;
  }

  .cas-bs-tabs {
    gap: 6px;
  }

  .cas-bs-chip {
    min-height: 34px;
    padding: 7px 9px;
  }

  .cas-bs-cal-head {
    margin-top: 7px;
  }

  .cas-bs-nav {
    height: 32px;
  }

  .cas-bs-kind span {
    font-size: 10.5px;
    line-height: 1.12;
  }

  .cas-bs-kind small {
    font-size: 9px;
    line-height: 1.12;
  }

}

@media (max-width: 430px) {
  .cas-bs-seg {
    padding-left: 7px;
    padding-right: 7px;
  }

}

.cas-booking-switch {
  max-width: 780px;
}

.cas-booking-switch.cas-bs-attached {
  max-width: 760px;
  width: min(760px, calc(100% - 96px));
}

.cas-bs-searchbar {
  border-width: 1.5px;
  border-radius: 12px;
  box-shadow: 0 9px 22px rgba(0, 0, 0, 0.12);
  min-height: 48px;
}

.cas-bs-seg {
  padding: 7px 12px;
}

.cas-bs-label {
  font-size: 8.5px;
}

.cas-bs-value {
  font-size: 13px;
  margin-top: 2px;
}

.cas-bs-seg small {
  font-size: 9.5px;
}

.cas-bs-divider {
  margin: 7px 0;
}

.cas-bs-search {
  flex-basis: 108px;
  font-size: 13px;
  padding: 0 14px;
}

.cas-bs-sheet {
  border-radius: 10px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.13);
  max-height: min(52vh, 360px);
  padding: 12px;
}

.cas-bs-close {
  font-size: 18px;
  height: 30px;
  right: 10px;
  top: 10px;
  width: 30px;
}

.cas-bs-title {
  margin: 0 40px 10px 0;
}

.cas-bs-title strong {
  font-size: 16px;
}

.cas-bs-title span {
  font-size: 11.5px;
}

.cas-bs-tabs {
  gap: 6px;
  margin-bottom: 8px;
}

.cas-bs-chip {
  border-radius: 8px;
  min-height: 31px;
  padding: 6px 10px;
}

.cas-bs-cal-head {
  grid-template-columns: 30px 1fr 30px;
  margin: 6px auto 8px;
}

.cas-bs-cal-head strong {
  font-size: 14px;
}

.cas-bs-nav {
  font-size: 18px;
  height: 30px;
}

.cas-bs-week, .cas-bs-grid {
  max-width: none;
}

.cas-bs-week span {
  font-size: 9px;
}

.cas-bs-day {
  font-size: 11.5px;
}

.cas-bs-note {
  font-size: 10.5px;
  margin-top: 8px;
  max-width: 420px;
}

.cas-bs-flex, .cas-bs-months {
  gap: 5px;
  margin: 6px 0 8px;
}

.cas-bs-flex .cas-bs-chip, .cas-bs-months .cas-bs-chip {
  min-height: 29px;
  padding: 5px 9px;
}

.cas-bs-sheet > .cas-bs-label {
  font-size: 10.5px;
  margin-top: 6px;
}

.cas-bs-sticky {
  margin: 10px -12px -12px;
  padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
}

.cas-bs-apply {
  font-size: 13px;
  min-height: 36px;
}

.cas-bs-kind-list {
  gap: 7px;
  grid-template-columns: repeat(auto-fit, minmax(146px, 1fr));
}

.cas-bs-kind {
  border-radius: 8px;
  min-height: 52px;
  padding: 5px;
}

.cas-bs-kind svg {
  height: 15px;
  width: 19px;
}

.cas-bs-kind span {
  font-size: 9.8px;
}

.cas-bs-kind small {
  font-size: 8.5px;
}

.cas-bs-counter {
  padding: 9px 0;
}

.cas-bs-counter strong {
  font-size: 13px;
}

.cas-bs-counter small {
  font-size: 11px;
}

.cas-bs-stepper {
  grid-template-columns: 30px 30px 30px;
}

.cas-bs-step {
  font-size: 19px;
  height: 30px;
  width: 30px;
}

.cas-bs-stepper span {
  font-size: 13px;
}

@media (max-width: 600px) {
  .cas-booking-switch, .cas-booking-switch.cas-bs-attached {
    left: 9px;
    right: 9px;
    transform: none;
    width: auto;
  }

  .cas-bs-searchbar {
    border-radius: 12px;
    min-height: 48px;
  }

  .cas-bs-seg {
    padding: 6px 7px;
  }

  .cas-bs-search {
    flex-basis: 72px;
    font-size: 12px;
    min-height: 48px;
    padding: 0 7px;
  }

  .cas-bs-label {
    font-size: 8px;
  }

  .cas-bs-value {
    font-size: 12px;
  }

  .cas-bs-guests {
    flex-basis: 62px;
  }

  .cas-bs-sheet {
    border-radius: 16px 16px 0 0;
    bottom: 0;
    left: 0;
    max-height: calc(100dvh - 112px);
    padding: 9px 12px calc(14px + env(safe-area-inset-bottom));
    position: fixed;
    right: 0;
    top: auto;
    width: 100%;
  }

  .cas-bs-sticky {
    bottom: auto;
    position: relative;
  }

  .cas-bs-close {
    height: 30px;
    right: 12px;
    top: 9px;
    width: 30px;
  }

  .cas-bs-title {
    margin-top: 16px;
  }

  .cas-bs-title strong {
    font-size: 16px;
  }

  .cas-bs-months-view {
    max-width: 300px;
    grid-template-columns: 1fr;
  }

  .cas-bs-months-view .cas-bs-month + .cas-bs-month {
    display: none;
  }

  .cas-bs-week, .cas-bs-grid {
    max-width: none;
  }

  .cas-bs-kind-list {
    gap: 7px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cas-bs-kind {
    min-height: 58px;
    padding: 6px 5px;
  }

}

@media (max-width: 430px) {
  .cas-booking-switch, .cas-booking-switch.cas-bs-attached {
    left: 7px;
    right: 7px;
    width: auto;
  }

  .cas-bs-search {
    flex-basis: 66px;
  }

}

.cas-bs-cal-head {
  max-width: none;
  width: 100%;
}

.cas-bs-cal-head .cas-bs-nav:first-child {
  justify-self: start;
}

.cas-bs-cal-head .cas-bs-nav:last-child {
  justify-self: end;
}

@media (max-width: 600px) {
  .cas-bs-cal-head {
    grid-template-columns: 40px minmax(0, 1fr) 40px;
    margin: 8px auto 10px;
    max-width: 300px;
    width: 100%;
  }

}

@media (min-width: 769px) {
  .cas-booking-switch {
    max-width: 1080px;
  }

  .cas-booking-switch.cas-bs-attached {
    max-width: 1040px;
    width: min(1040px, calc(100% - 140px));
  }

  .cas-bs-searchbar {
    border-width: 2px;
    border-radius: 15px;
    box-shadow: 0 15px 36px rgba(0, 0, 0, 0.18);
    min-height: 64px;
  }

  .cas-bs-seg {
    padding: 11px 18px;
  }

  .cas-bs-label {
    font-size: 10px;
  }

  .cas-bs-value {
    font-size: 16px;
    margin-top: 4px;
  }

  .cas-bs-seg small {
    font-size: 11px;
  }

  .cas-bs-search {
    flex-basis: 150px;
    font-size: 16px;
    padding: 0 22px;
  }

}

.cas-bs-sheet.cas-bs-open {
  --cas-orange: #d9541f;
  --cas-orange-soft: #fbe9df;
}

.cas-bs-sheet.cas-bs-open .cas-bs-title strong {
  display: block;
  font-size: 20px;
  letter-spacing: -0.01em;
}

.cas-bs-sheet.cas-bs-open .cas-bs-title span {
  display: block;
  font-size: 13px;
  line-height: 1.45;
  margin-top: 3px;
}

.cas-bs-sheet.cas-bs-open .cas-bs-mode-tabs {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 0;
  grid-template-columns: 1fr 1fr;
  margin: 10px 0 0;
}

.cas-bs-modetab {
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  color: var(--muted);
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  margin-bottom: -1px;
  padding: 9px 4px 7px;
}

.cas-bs-modetab.is-active {
  border-bottom-color: var(--cas-orange);
  color: var(--cas-orange);
}

.cas-bs-sheet.cas-bs-open .cas-bs-cal-head {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin: 14px 0 6px;
}

.cas-bs-sheet.cas-bs-open .cas-bs-cal-head strong {
  font-size: 14px;
  font-weight: 700;
}

.cas-bs-sheet.cas-bs-open .cas-bs-nav {
  border-radius: 11px;
  height: 40px;
  width: 40px;
}

.cas-bs-sheet.cas-bs-open .cas-bs-months-view {
  gap: 24px;
  justify-content: center;
  grid-template-columns: repeat(2, minmax(0, 300px));
  max-width: 100%;
}

.cas-bs-sheet.cas-bs-open .cas-bs-month-title {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 8px;
}

.cas-bs-sheet.cas-bs-open .cas-bs-grid {
  gap: 2px;
}

.cas-bs-sheet.cas-bs-open .cas-bs-week span {
  font-size: 11px;
}

.cas-bs-sheet.cas-bs-open .cas-bs-day {
  aspect-ratio: auto;
  border-radius: 9px;
  font-size: 13.5px;
  height: 36px;
}

.cas-bs-sheet.cas-bs-open .cas-bs-day[disabled] {
  background: transparent;
  color: #b9b3a8;
  text-decoration: line-through;
}

.cas-bs-sheet.cas-bs-open .cas-bs-day.is-range {
  background: var(--cas-orange-soft);
  border-radius: 0;
  color: var(--ink);
}

.cas-bs-sheet.cas-bs-open .cas-bs-day.is-edge {
  background: var(--cas-orange);
  border-radius: 9px;
  color: #fff;
  font-weight: 700;
}

.cas-bs-sheet.cas-bs-open .cas-bs-flexrow {
  display: grid;
  gap: 2px 24px;
  grid-template-columns: 1fr 1fr;
  margin-top: 10px;
}

.cas-bs-flexgroup {
  align-items: center;
  display: flex;
  gap: 8px;
}

.cas-bs-flexgroup .cas-bs-label {
  flex: 0 0 auto;
  font-size: 10px;
  margin: 0;
  white-space: nowrap;
}

.cas-bs-flexgroup .cas-bs-flex {
  flex: 1 1 auto;
  gap: 5px;
  margin: 0;
}

.cas-bs-flexgroup .cas-bs-chip {
  font-size: 12px;
  padding: 4px 8px;
}

.cas-bs-flexblock {
  margin-top: 12px;
}

.cas-bs-guests-grid {
  border-top: 1px solid var(--line);
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 12px;
  padding-top: 12px;
}

.cas-bs-guests-grid .cas-bs-counter {
  background: #f7f5f2;
  border: 0;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  padding: 10px 10px 9px;
}

.cas-bs-guests-grid .cas-bs-counter > div:first-child {
  min-width: 0;
}

.cas-bs-guests-grid .cas-bs-counter strong {
  display: block;
  font-size: 12px;
  line-height: 1.2;
  overflow-wrap: normal;
  white-space: normal;
}

.cas-bs-guests-grid .cas-bs-counter small {
  color: var(--muted);
  display: block;
  font-size: 11px;
  line-height: 1.3;
  margin-top: 1px;
  overflow-wrap: anywhere;
}

.cas-bs-guests-grid .cas-bs-stepper {
  background: #fff;
  border: 1px solid #e2ddd4;
  border-radius: 9px;
  display: flex;
  height: 32px;
  overflow: hidden;
  width: 100%;
}

.cas-bs-guests-grid .cas-bs-step {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 0;
  color: var(--ink);
  display: flex;
  flex: 1 1 0;
  font-size: 17px;
  height: 100%;
  justify-content: center;
  line-height: 1;
  padding: 0;
  width: auto;
}

.cas-bs-guests-grid .cas-bs-step:first-child {
  border-right: 1px solid #e2ddd4;
}

.cas-bs-guests-grid .cas-bs-step:last-child {
  border-left: 1px solid #e2ddd4;
}

.cas-bs-guests-grid .cas-bs-step:disabled {
  color: #c9c3b6;
}

.cas-bs-guests-grid .cas-bs-stepper span {
  align-items: center;
  display: flex;
  flex: 0 0 36px;
  font-size: 15px;
  font-weight: 850;
  justify-content: center;
}

.cas-bs-sheet.cas-bs-open .cas-bs-sticky {
  margin-top: 14px;
}

.cas-bs-sheet.cas-bs-open .cas-bs-apply {
  background: var(--cas-orange);
  border-radius: 10px;
  font-size: 16px;
  min-height: 48px;
}

.cas-bs-sheet.cas-bs-open .cas-bs-note {
  font-size: 11.5px;
  margin: 8px auto 0;
}

@media (max-width: 760px) {
  .cas-bs-sheet.cas-bs-open {
    border-radius: 18px 18px 0 0;
    bottom: 0;
    height: auto;
    left: 0;
    max-height: 90dvh;
    max-width: 100%;
    padding: 16px 16px 0;
    top: auto;
    transform: none;
    width: 100%;
  }

  .cas-bs-sheet.cas-bs-open .cas-bs-months-view {
    grid-template-columns: 1fr;
  }

  .cas-bs-guests-grid {
    grid-template-columns: 1fr 1fr;
  }

  .cas-bs-sheet.cas-bs-open .cas-bs-flexrow {
    grid-template-columns: 1fr;
  }

  .cas-bs-sheet.cas-bs-open .cas-bs-title strong {
    font-size: 18px;
  }

}


/* ---------------------------------------------------------------------------
   Monatspfeile im Kalender - eigene Zustaende (E-A183, 11.08.2026)

   Das Theme sixtyone faerbt JEDEN Knopf der Seite beim Ueberfahren goldbraun:
   `button:hover{background:#ab8236;color:#FFF}` in colors/default.css.
   `button:hover` (0,1,1) ist spezifischer als `.cas-bs-nav` (0,1,0) - also
   gewann das Theme. Auf dem Handy bleibt dieser Zustand nach dem Antippen
   kleben; der Pfeil sah aus wie dauerhaft ausgewaehlt (Roberts Screenshot).

   Deshalb hier eigene Zustaende mit ausreichender Spezifitaet. `.cas-bs-portal`
   sitzt auf dem Sheet selbst (siehe JS), `.cas-booking-switch` auf der Sektion -
   beide Wege muessen abgedeckt sein.
   --------------------------------------------------------------------------- */

.cas-bs-portal .cas-bs-nav,
.cas-booking-switch .cas-bs-nav {
  align-items: center;
  background: var(--paper);
  border: 1px solid var(--line);
  color: var(--ink);
  display: inline-flex;
  justify-content: center;
  padding: 0;
  transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease;
  -webkit-tap-highlight-color: transparent;
}

.cas-bs-portal .cas-bs-nav svg,
.cas-booking-switch .cas-bs-nav svg {
  display: block;
  height: 18px;
  width: 18px;
}

/* Nur echte Zeigergeraete. Auf dem Handy gibt es kein Ueberfahren - dort wuerde
   der Zustand nach dem Tippen haengenbleiben, genau der gemeldete Fehler. */
@media (hover: hover) and (pointer: fine) {
  .cas-bs-portal .cas-bs-nav:hover:not([disabled]),
  .cas-booking-switch .cas-bs-nav:hover:not([disabled]) {
    background: var(--gold-bg);
    border-color: var(--gold);
    color: var(--gold-dark);
  }
}

/* Rueckmeldung beim Druecken. Auf dem Handy der einzige sichtbare Zustand -
   er verschwindet beim Loslassen von selbst und kann nicht kleben. */
.cas-bs-portal .cas-bs-nav:active:not([disabled]),
.cas-booking-switch .cas-bs-nav:active:not([disabled]) {
  background: var(--gold-bg);
  border-color: var(--gold);
  color: var(--gold-dark);
}

/* Tastatur sichtbar, Maus nicht - :focus-visible statt :focus. */
.cas-bs-portal .cas-bs-nav:focus,
.cas-booking-switch .cas-bs-nav:focus {
  outline: none;
}

.cas-bs-portal .cas-bs-nav:focus-visible,
.cas-booking-switch .cas-bs-nav:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}

/* Am Saisonrand: erkennbar aus statt nur wirkungslos. */
.cas-bs-portal .cas-bs-nav[disabled],
.cas-booking-switch .cas-bs-nav[disabled] {
  background: var(--paper);
  border-color: var(--line);
  color: #cac5bb;
  cursor: default;
}


/* ---- Monatspfeile: Position im Kalenderkopf (E-A183, 11.08.2026) -------
   Der Kopf ist ein Dreispalten-Raster `30px 1fr 30px` und darf seit einer
   frueheren Runde die volle Dialogbreite nutzen (`max-width: none`). Das
   `1fr` in der Mitte drueckte die Pfeile an die Aussenraender — auf dem
   Desktop standen sie handbreit vom Titel weg und sahen verloren aus
   (Robert, 11.08.2026). Jetzt bestimmt der Titel die Mittelspalte und die
   ganze Gruppe steht mittig beieinander.

   Nur ab 601 px: darunter begrenzt eine bestehende Regel den Kopf schon auf
   300 px, dort stehen sie ohnehin dicht. */
@media (min-width: 601px) {
  .cas-bs-portal .cas-bs-cal-head,
  .cas-booking-switch .cas-bs-cal-head {
    grid-template-columns: 40px auto 40px;
    justify-content: center;
    gap: 16px;
  }
  .cas-bs-portal .cas-bs-cal-head .cas-bs-nav:first-child,
  .cas-bs-portal .cas-bs-cal-head .cas-bs-nav:last-child,
  .cas-booking-switch .cas-bs-cal-head .cas-bs-nav:first-child,
  .cas-booking-switch .cas-bs-cal-head .cas-bs-nav:last-child {
    justify-self: center;
  }
  /* Der Titel traegt die Breite - er darf dabei nicht umbrechen. */
  .cas-bs-portal .cas-bs-cal-head strong,
  .cas-booking-switch .cas-bs-cal-head strong {
    white-space: nowrap;
  }
}
