/* Casa Strela – VikBooking-Frontend an das Design angleichen (Schrift, Farben, Pill-Buttons, Karten). */
body .vbo-results-wrapper, body .vbcontdivtot, body #vbselectroomform, body .vbdivsearch, body .vbo-search-inpblock, body .vblistroomblock, body .vbo-info-room, body .vbmodalframe,
body .vbo-stepbar, body .vbo-results-head, body .vbo-searchresults-classic-wrap, body .vbo-roomdetails, body .vborderslist, body .vboperators, body .vbo-booking-details, body .vbo-orderdetails, body .vbo-checkout {
  font-family: var(--st-font-body, 'Work Sans'), sans-serif; color: var(--st-text, #514846); }
body .vbo-results-wrapper h1, body .vbo-results-wrapper h2, body .vbo-results-wrapper h3, body .vbcontdivtot h1, body .vbcontdivtot h2, body .vbcontdivtot h3, body .vbdialogrname, body .vbrowcname { font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-weight: 600; color: var(--st-brand, #70231d); }
body .vbo-pref-color-btn, body .vbo-pref-color-btn-secondary, body .vbsearchmainsbmt, body .vbo-search-submit .button, body button.vbo-pref-color-btn, body .vbo-search-submit button, body .vbcontinuebtn, body .vbo-checkout-btn {
  border-radius: 999px !important; border: 1px solid transparent !important; min-height: 44px; padding: 11px 20px !important; font-family: var(--st-font-body, 'Work Sans'), sans-serif !important; font-weight: 700 !important; font-size: 15px !important; line-height: 1.2 !important; letter-spacing: .01em; cursor: pointer; box-shadow: none !important; text-transform: none !important; }
body .vbo-pref-color-btn, body .vbsearchmainsbmt, body .vbo-search-submit .button, body .vbo-search-submit button { background: var(--st-brand, #70231d) !important; color: #fff !important; }
body .vbo-pref-color-btn:hover, body .vbsearchmainsbmt:hover, body .vbo-search-submit .button:hover { background: var(--st-accent, #f2971a) !important; color: var(--st-accent-ink, #3A1B06) !important; }
body .vbo-pref-color-btn-secondary { background: var(--st-accent, #f2971a) !important; color: var(--st-accent-ink, #3A1B06) !important; }
body .vbo-pref-color-btn-secondary:hover { background: var(--st-accent-hover, #ffa733) !important; }
body .vblistroomblock, body .vbo-info-room, body .vbo-results-head, body .vbo-booking-details, body .vbo-orderdetails { background: #fff; border: 1px solid var(--st-line, #E3DACD); border-radius: var(--st-radius, 8px); }
body .vbo-stepbar .vbo-step { font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-weight: 600; letter-spacing: .04em; }
body .vbo_price, body .vbsrowprice { font-family: var(--st-font-head, 'Baloo Thambi 2'), sans-serif; font-weight: 700; color: var(--st-ink, #241512); }
body .vbo-results-wrapper input[type="text"], body .vbo-results-wrapper select, body .vbcontdivtot input[type="text"], body .vbcontdivtot input[type="email"], body .vbcontdivtot select, body .vbcontdivtot textarea, body .vbdivsearch input[type="text"], body .vbdivsearch select {
  font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-size: 15px; border: 1px solid var(--st-line, #E3DACD); border-radius: 8px; padding: 10px 12px; background: #fff; box-shadow: none; }
body .vbo-goback-link, body .vbo-results-wrapper a, body .vbcontdivtot a { color: var(--st-brand, #70231d); }

/* Ergebnisliste: Bilder-Slider darf nicht über den Rand laufen; mobil Bild oben, Text darunter */
body .vblistroomblock, body .vbo-searchresults-classic-wrap, body .vbo-results-wrapper { max-width: 100%; overflow: hidden; }
body .vik-dots-slider, body .vbimglistdiv, body .vbo-dots-slider-selector { max-width: 100%; overflow: hidden; }
body .vik-dots-slider-slide img, body .vblistimg, body .vbimglistdiv img { max-width: 100%; height: auto; }
@media (max-width: 767px) {
  body .vblistroomblock { display: flex; flex-direction: column; }
  body .vblistroomblock > div, body .vbimglistdiv, body .vbdescrlistdiv, body .vbsrowpricediv { width: 100% !important; max-width: 100% !important; float: none !important; box-sizing: border-box; }
  body .vbsrowpricediv { border-left: 0 !important; border-top: 1px solid var(--st-line, #E3DACD); padding: 14px 16px !important; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
  body .vbo-results-head { flex-wrap: wrap; }
}
/* Mobil: Ergebniskarte sauber gestapelt (Bild, Text, Preis), Schrittbalken einzeilig, Zusammenfassung ohne Überlauf */
@media (max-width: 767px) {
  body .vblistroomblock { display: flex !important; flex-direction: column !important; height: auto !important; }
  body .vblistroomblock > * { position: relative !important; float: none !important; width: 100% !important; max-width: 100% !important; height: auto !important; min-height: 0 !important; left: auto !important; top: auto !important; }
  body .vblistroomblock .vbimglistdiv { z-index: 0; }
  body .vblistroomblock .vbo-info-room { z-index: 1; padding: 16px !important; }
  body .vblistroomblock .vbdescrlistdiv { width: 100% !important; height: auto !important; overflow: visible !important; }
  body .vbo-stepbar { display: flex !important; flex-wrap: nowrap !important; padding: 0; }
  body .vbo-stepbar .vbo-step { width: 25% !important; flex: 1 1 25%; float: none !important; font-size: 12px !important; }
  body .vbo-showprc-head-wrapper, body .vbo-showprc-head-wrapper form, body .vbo-results-head { max-width: 100%; box-sizing: border-box; overflow-x: hidden; }
  body .vbo-showprc-head-wrapper *, body .vbo-results-head * { max-width: 100%; box-sizing: border-box; white-space: normal; }
}
@media (max-width: 767px) {
  body .vbstepsbarcont { max-width: 100%; overflow: hidden; }
  body .vbo-stepbar { width: 100% !important; margin: 0 0 14px !important; padding: 0 !important; list-style: none; box-sizing: border-box; }
  body .vbo-stepbar .vbo-step { min-width: 0 !important; width: auto !important; flex: 1 1 0 !important; padding: 0 !important; text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
@media (max-width: 767px) {
  /* Bildblock braucht eine feste Höhe, weil der Bilder-Slider absolut positioniert ist; Textblock darf nicht mitwachsen */
  body .vblistroomblock { height: auto !important; min-height: 0 !important; }
  body .vblistroomblock .vbimglistdiv { height: 240px !important; min-height: 240px !important; flex: 0 0 auto !important; overflow: hidden; }
  body .vblistroomblock .vbimglistdiv .vik-dots-slider, body .vblistroomblock .vbimglistdiv .vik-dots-slider-slide { height: 100% !important; max-height: 100%; }
  body .vblistroomblock .vbimglistdiv img { width: 100% !important; height: 100% !important; object-fit: cover; }
  body .vblistroomblock .vbo-info-room { flex: 0 0 auto !important; height: auto !important; }
  body .vblistroomblock .vbo-info-room > * { position: static !important; }
}

/* ===================== Buchungsablauf durchgehend im Design (Optionen, Buchungsformular, Bestätigung, Buchungs-Login) ===================== */
body .vbo-showprc-wrapper, body .vbo-oconfirm-wrapper, body .vbo-booking-details-topcontainer, body .vbo-booking-details-midcontainer, body .vbo-booking-details-head, body .vbo-booking-details-intro, body .vbcontdivtot, body .vbsearchorderdiv, body .vbo-bookings-list-container, body .vbo-results-head, body .vbo-showprc-head-wrapper { font-family: var(--st-font-body, 'Work Sans'), sans-serif; color: var(--st-text, #514846); }
body .vbo-showprc-wrapper h3, body .vbo-showprc-wrapper h4, body .vbo-oconfirm-wrapper h3, body .vbo-oconfirm-wrapper h4, body .vbcontdivtot h3, body .vbcontdivtot h4, body .vbo-booking-details-head h3, body .vbvordcoststitle, body .vbvordroominfotitle, body .vbvordudatatitle, body .vbsearchordertitle { font-family: var(--st-font-head, 'Baloo Thambi 2'), sans-serif; font-weight: 700; line-height: 1.2; color: var(--st-ink, #241512); }
body .vbo-showprc-wrapper h4, body .vbo-oconfirm-wrapper h4 { font-size: 22px; margin: 28px 0 12px; }
body .vbo-showprc-wrapper h3, body .vbo-showprc-roomname h3 { font-size: 26px; margin: 0 0 12px; color: var(--st-brand, #70231d); }
body .vbo-booking-details-head h3 { font-size: 28px; margin: 0 0 14px; }
/* Buttons: Hauptaktion orange, Zurück/Ändern als Bordeaux-Ghost, kleine Apply-Buttons kompakt */
body .vbo-pref-color-btn, body .vbsearchmainsbmt, body .vbo-search-submit .button, body .vbo-search-submit button, body .vbsearchordersubmit, body .vbo-pincode-sbmt, body .vbsubmitcoupon, body .vbo-booking-details-actions a.vbo-pref-color-btn { background: var(--st-accent, #f2971a) !important; color: var(--st-accent-ink, #3A1B06) !important; border: 1px solid transparent !important; }
body .vbo-pref-color-btn:hover, body .vbsearchmainsbmt:hover, body .vbo-search-submit .button:hover, body .vbsearchordersubmit:hover, body .vbo-pincode-sbmt:hover, body .vbsubmitcoupon:hover { background: var(--st-accent-hover, #ffa733) !important; color: var(--st-accent-ink, #3A1B06) !important; }
body .vbo-pref-color-btn-secondary { background: transparent !important; color: var(--st-brand, #70231d) !important; border: 1px solid rgba(112,35,29,.34) !important; }
body .vbo-pref-color-btn-secondary:hover { background: var(--st-brand, #70231d) !important; color: #fff !important; border-color: var(--st-brand, #70231d) !important; }
body .vbo-pincode-sbmt, body .vbsubmitcoupon, body .vbsearchordersubmit { min-height: 40px !important; padding: 8px 16px !important; font-size: 14px !important; border-radius: 999px !important; font-family: var(--st-font-body, 'Work Sans'), sans-serif !important; font-weight: 700 !important; cursor: pointer; }
body .vbo-goback-link { color: var(--st-brand, #70231d); font-weight: 600; }
/* Zusammenfassungsleiste (Nächte, Gäste, Check-in/-out) */
body .vbo-results-head { background: #fff; border: 1px solid var(--st-line, #E3DACD); border-radius: 8px; margin: 18px 0 22px; }
body .vbo-results-head-det-lbl { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--st-kicker, #8f5717); font-weight: 600; }
body .vbo-results-head-det-val { font-weight: 600; color: var(--st-ink, #241512); }
/* Schritt Optionen */
body .vbo-showprc-room-block { background: #fff; border: 1px solid var(--st-line, #E3DACD); border-radius: 8px; padding: 24px; margin-bottom: 20px; }
body .vbo-showprc-staydetails { font-size: 14px; color: var(--st-meta, #5A4A45); margin-bottom: 8px; background: transparent; border: 0; padding: 0; }
body .vbo-showprc-wrapper .vbroomimgdesc img, body .vbo-showprc-wrapper img.vblistimg { border-radius: 8px; }
body .room_carats .vbo-room-carat { display: inline-flex; width: 38px; height: 38px; margin: 0 6px 6px 0; border-radius: 999px; background: var(--st-peach, #FDEDE5); align-items: center; justify-content: center; }
body .room_carats .vbo-room-carat i, body .room_carats .vbo-room-carat img { color: var(--st-brand, #70231d); font-size: 15px; margin: 0; max-height: 18px; }
body .vbo-showprc-price-entry { display: flex; align-items: center; gap: 16px; padding: 16px 18px !important; margin: 0 0 10px !important; border: 1px solid var(--st-line, #E3DACD) !important; border-radius: 8px; background: var(--st-bg, #FBFCF8); cursor: pointer; }
body .vbo-showprc-price-entry:has(input:checked) { border-color: var(--st-accent, #f2971a) !important; box-shadow: 0 0 0 2px rgba(242,151,26,.25); background: #fff; }
body .vbo-showprc-price-entry-radio input, body .vbo-radio input { accent-color: var(--st-brand, #70231d); width: 18px; height: 18px; margin: 0; }
body .vbo-showprc-price-entry-rateplan { flex: 1 1 auto; }
body .vbo-showprc-price-entry-rateplan > span:first-child, body .vbpricedetails { font-weight: 600; color: var(--st-ink, #241512); }
body .vbprice_breakfast, body .vbprice_freecanc, body .vbprice_freecanc_no { display: inline-block; margin: 6px 6px 0 0; padding: 3px 9px; border-radius: 999px; background: var(--st-paper, #F3EDE3); font-size: 12px; line-height: 1.4; color: var(--st-meta, #5A4A45); border: 0 !important; }
body .vbprice_freecanc { background: #E4EFE4; color: #235C34; }
body .vbo-showprc-price-entry-cost { font-family: var(--st-font-head, 'Baloo Thambi 2'), sans-serif; font-weight: 700; font-size: 22px; color: var(--st-ink, #241512); white-space: nowrap; }
body .vbo-showprc-optionstable { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 12px; }
body .vbo-showprc-option-entry { border: 1px solid var(--st-line, #E3DACD) !important; border-radius: 8px; background: var(--st-bg, #FBFCF8); padding: 16px !important; margin: 0 !important; width: auto !important; max-width: none !important; float: none !important; box-sizing: border-box; }
body .vbo-showprc-option-entry-name { font-weight: 600; color: var(--st-ink, #241512); }
body .vbo-showprc-option-entry-cost { font-family: var(--st-font-head, 'Baloo Thambi 2'), sans-serif; font-weight: 700; font-size: 18px; color: var(--st-ink, #241512); }
body .vbo-showprc-option-entry-input input[type=checkbox] { accent-color: var(--st-brand, #70231d); width: 18px; height: 18px; }
body .room_buttons_box { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 16px; }
/* Schritt Buchungsformular */
body .vbo-oconfirm-summary-container { background: #fff; border: 1px solid var(--st-line, #E3DACD); border-radius: 8px; padding: 10px 20px 14px; }
body .vbo-oconfirm-summary-room-head-cell { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--st-kicker, #8f5717); font-weight: 600; }
body .vbo-oconfirm-roomname { font-weight: 600; color: var(--st-brand, #70231d); }
body .vbo-oconfirm-total-block { background: var(--st-paper, #F3EDE3); border: 0 !important; border-radius: 8px; padding: 16px 20px !important; margin: 14px 0 24px; }
body .vbo-oconfirm-total-block .vbo_price, body .vbo-oconfirm-total-block .vbprice, body .vbo-oconfirm-total-block .vbo_currency { font-family: var(--st-font-head, 'Baloo Thambi 2'), sans-serif; font-weight: 700; font-size: 22px; color: var(--st-ink, #241512); }
body .vbo-coupon-outer, body .vbo-enterpin-block { background: var(--st-bg, #FBFCF8) !important; border: 1px solid var(--st-line, #E3DACD) !important; border-radius: 8px; padding: 18px 20px !important; box-shadow: none !important; }
body .vbentercoupon, body .vbhaveacoupon, body .vbo-enterpin-top { color: var(--st-text, #514846); font-size: 14.5px; }
body .vbo-enterpin-top h4 { margin: 0 0 4px; font-size: 20px; }
body .vbinputcoupon, body .vbo-enterpin-inner input[type=text] { min-height: 40px; padding: 8px 12px; border: 1px solid var(--st-line, #E3DACD); border-radius: 8px; font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-size: 14px; }
body .vbcustomfields { background: #fff; border: 1px solid var(--st-line, #E3DACD); border-radius: 8px; padding: 26px 28px; margin-top: 24px; box-shadow: none; }
body .vbo-oconfirm-cfield-label, body .vbcustomfields label { font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-size: 14px; font-weight: 500; color: var(--st-nav, #3A2A26); }
body .vbcustomfields input[type=text], body .vbcustomfields input[type=email], body .vbcustomfields input[type=tel], body .vbcustomfields select, body .vbcustomfields textarea { width: 100%; box-sizing: border-box; min-height: 46px; padding: 10px 14px; border: 1px solid var(--st-line, #E3DACD); border-radius: 8px; background: #fff; font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-size: 15px; color: var(--st-ink, #241512); box-shadow: none; }
body .vbcustomfields input:focus, body .vbcustomfields select:focus, body .vbcustomfields textarea:focus { outline: 2px solid var(--st-accent, #f2971a); outline-offset: 1px; border-color: var(--st-accent, #f2971a); }
body .vbrequired { color: var(--st-accent, #f2971a); }
body .vbo-oconfirm-cfield-entry-checkbox label { display: flex; align-items: center; gap: 10px; font-size: 15px; cursor: pointer; }
body .vbo-oconfirm-cfield-entry-checkbox input { accent-color: var(--st-brand, #70231d); width: 18px; height: 18px; }
body .vbo-oconfirm-paymethods-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 12px; }
body .vbo-oconfirm-paymethod-item { margin: 0 !important; float: none !important; width: auto !important; border: 1px solid var(--st-line, #E3DACD) !important; border-radius: 8px; background: var(--st-bg, #FBFCF8); padding: 14px 16px !important; box-sizing: border-box; }
body .vbo-oconfirm-paymethod-item:has(input:checked) { border-color: var(--st-accent, #f2971a) !important; box-shadow: 0 0 0 2px rgba(242,151,26,.25); background: #fff; }
body .vbo-oconfirm-paymethod-item label { display: flex; align-items: center; gap: 10px; font-weight: 600; color: var(--st-ink, #241512); cursor: pointer; }
body .vbo-oconfirm-paymethod-item input { accent-color: var(--st-brand, #70231d); }
body .vboconfirmbottom { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--st-line-soft, #EFE8E1); }
body .vbo-alert-container-confirm { border-radius: 8px; }
/* Bestätigungsseite */
body .vbo-booking-details-head-confirmed, body .vbo-booking-details-head > div[class*="head-"] { display: inline-block; background: #E4EFE4; color: #235C34; border-radius: 999px; padding: 8px 16px; font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-weight: 700; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; border: 0; }
body .vbo-booking-details-topcontainer > div, body .vbo-booking-rooms-wrapper, body .vbo-booking-details-midcontainer > div, body .vbo-booking-costs-list, body .vbo-booking-cost-detail-total { border-color: var(--st-line, #E3DACD) !important; border-radius: 8px; box-shadow: none !important; }
body .vbo-booking-details-bookinfo-lbl, body .vbo-bookingdet-userdetail-lbl { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--st-kicker, #8f5717); font-weight: 600; }
body .vbo-booking-details-bookinfo-val, body .vbo-bookingdet-userdetail-val { color: var(--st-ink, #241512); }
body .vbo-booking-details-actions a, body .vbo-booking-mod-cmd, body .vbo-booking-precheckin-cmd { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 8px 16px; border-radius: 999px !important; font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-weight: 700; font-size: 14px; text-decoration: none; box-shadow: none !important; }
body .vbo-booking-precheckin-cmd { background: var(--st-accent, #f2971a) !important; color: var(--st-accent-ink, #3A1B06) !important; border: 0 !important; }
body .vbo-booking-mod-cmd { background: transparent !important; color: var(--st-brand, #70231d) !important; border: 1px solid rgba(112,35,29,.34) !important; }
body .vbo-booking-pricename, body .vbo-booking-roomrate, body .vbordroomdet h4, body .vbo-booking-rooms-wrapper h4 { font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-weight: 600; color: var(--st-brand, #70231d); }
body .vbo-booking-roomphoto img { border-radius: 8px; }
body .vbo-booking-cost-detail-total { background: var(--st-paper, #F3EDE3) !important; }
body .vbo-booking-cost-detail-total .vbo_price, body .vbo-booking-cost-detail-total .vbo-booking-cost-lbl { font-family: var(--st-font-head, 'Baloo Thambi 2'), sans-serif; font-weight: 700; font-size: 20px; color: var(--st-ink, #241512); }
body .vbo-booking-print-link, body .vbo-booking-print a { color: var(--st-brand, #70231d); }
/* Buchungs-Login: Ergebnistabelle */
body .vbo-bookings-list-table { background: #fff; border: 1px solid var(--st-line, #E3DACD); border-radius: 8px; overflow: hidden; margin-top: 24px; }
body .vbo-bookings-list-table-head-row { background: var(--st-peach, #FDEDE5); }
body .vbo-bookings-list-table-head-row span { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--st-brand, #70231d); font-weight: 700; }
body .vbo-bookings-list-table-body-row { border-top: 1px solid var(--st-line-soft, #EFE8E1); }
body .vbo-bookings-list-table-cell { padding: 12px 14px; }
body .vbo-bookings-list-table-cell a { color: var(--st-brand, #70231d); font-weight: 600; }
/* Buchungsformular: Zusammenfassung als eine Karte, Total als Band, Zahlungsarten als Raster, Buttons Zurück links / Bestätigen rechts */
body .vbo-oconfirm-summary-container { background: transparent; border: 0; padding: 0; box-shadow: none; }
body .vbo-oconfirm-summary-room-wrapper { background: #fff; border: 1px solid var(--st-line, #E3DACD); border-radius: 8px; padding: 12px 20px; margin: 0 0 12px; box-shadow: none !important; }
body .vbo-oconfirm-summary-total-wrapper { display: flex; align-items: center; justify-content: space-between; gap: 16px; background: var(--st-paper, #F3EDE3); border: 0; border-radius: 8px; padding: 16px 20px; margin: 0 0 24px; box-shadow: none !important; }
body .vbo-oconfirm-total-block { background: transparent; border: 0 !important; padding: 0 !important; margin: 0; font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-size: 13px; color: var(--st-kicker, #8f5717); width: auto !important; }
body .vbo-oconfirm-summary-total-row { display: contents; }
body .vbo-oconfirm-paymentopts, body .vbo-oconfirm-paymethods-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 12px; }
body .vbo-oconfirm-paymethod-item { display: block; }
body .vbo-oconfirm-paymethod-item label { min-height: 24px; }
body .vbo-oconfirm-paymethod-item .vbo-payment-image img, body .vbo-oconfirm-paymethod-item img { max-height: 22px; width: auto; margin-left: auto; }
body .vboconfirmbottom { flex-direction: row-reverse; }
body .vbo-oconfirm-paymentopts { display: block; }
body .vbo-oconfirm-paymethod-item { display: flex; align-items: center; gap: 10px; }
body .vbo-oconfirm-paymethod-item > label { flex: 1 1 auto; display: block; }
body .vbo-oconfirm-paymethod-item .vbo-payment-image { margin-left: auto; }
body .vbo-oconfirm-paymethod-item .vbo-payment-image label { display: block; }
/* Bestätigungsseite: Titel, Aktions-Buttons ohne doppelte Pille */
body .vbo-booking-details-intro h3, body .vbcontdivtot h3, body .vbo-booking-details-topcontainer h3, body h3.vbo-booking-details-title { font-family: var(--st-font-head, 'Baloo Thambi 2'), sans-serif; font-weight: 700; font-size: 28px; color: var(--st-ink, #241512); }
body .vbo-booking-details-actions a, body .vbo-booking-details-actions-inner a { background: transparent !important; border: 0 !important; padding: 0 !important; min-height: 0; border-radius: 0 !important; }
body .vbo-booking-details-actions .vbo-booking-precheckin-cmd, body .vbo-booking-details-actions .vbo-booking-mod-cmd, body .vbo-booking-details-actions button, body .vbo-booking-details-actions .vbo-pref-color-btn, body .vbo-booking-details-actions .vbo-pref-color-btn-secondary { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; box-sizing: border-box; min-height: 42px; padding: 9px 16px !important; margin: 0 0 10px; border-radius: 999px !important; font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-weight: 700; font-size: 14px; text-decoration: none; box-shadow: none !important; }
body .vbo-booking-details-actions .vbo-booking-precheckin-cmd, body .vbo-booking-details-actions .vbo-pref-color-btn { background: var(--st-accent, #f2971a) !important; color: var(--st-accent-ink, #3A1B06) !important; border: 1px solid transparent !important; }
body .vbo-booking-details-actions .vbo-booking-mod-cmd, body .vbo-booking-details-actions .vbo-pref-color-btn-secondary { background: transparent !important; color: var(--st-brand, #70231d) !important; border: 1px solid rgba(112,35,29,.34) !important; }
body h3.vbo-booking-details-intro { font-family: var(--st-font-head, 'Baloo Thambi 2'), sans-serif; font-weight: 700; font-size: 28px; line-height: 1.2; color: var(--st-ink, #241512); margin: 0 0 14px; }
body .vbo-booking-details-actions .vbo-booking-mod-cmd a { color: inherit !important; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
body .vbo-booking-details-actions .vbo-booking-mod-cmd.vbo-booking-precheckin-cmd { background: var(--st-accent, #f2971a) !important; color: var(--st-accent-ink, #3A1B06) !important; border-color: transparent !important; }
body .vbo-booking-details-actions .vbo-booking-mod-cmd.vbo-booking-precheckin-cmd a { color: var(--st-accent-ink, #3A1B06) !important; }
/* Zahlungsarten: gleichmässiges Raster, gewählte Karte mit Häkchen in der Karte statt über der Überschrift */
body ul.vbo-oconfirm-paymethods-list { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)) !important; gap: 12px !important; margin: 0 !important; padding: 0 !important; list-style: none; }
body ul.vbo-oconfirm-paymethods-list > li.vbo-oconfirm-paymethod-item { position: relative; display: flex !important; align-items: center; gap: 10px; width: auto !important; margin: 0 !important; float: none !important; overflow: visible; }
body .vbo-oconfirm-paymethod-item-active { border-color: var(--st-accent, #f2971a) !important; box-shadow: 0 0 0 2px rgba(242,151,26,.25); background: #fff !important; }
body .vbo-oconfirm-paymethod-item-active::before, body .vbo-oconfirm-paymethod-item-active::after, body .vbo-oconfirm-paymethod-item-active > i, body .vbo-oconfirm-paymethod-item-active > .fa-check-circle { top: -9px !important; right: -9px !important; left: auto !important; bottom: auto !important; margin: 0 !important; font-size: 18px !important; color: var(--st-accent, #f2971a) !important; background: #fff; border-radius: 50%; line-height: 1; }

/* --- Buchungsseite: Storno-Button als Pill in Rot-Umrandung (gleiche Masse wie Pre-Check-in/Ändern), Storno-Formular in Systemoptik --- */
body .vbo-booking-details-actions .vbo-booking-canc-container, body .vbo-booking-details-actions .vbo-booking-canc-inner { display: block; width: 100%; }
body .vbo-booking-details-actions .vbo-booking-canc-cmd { display: block; width: 100%; background: transparent !important; border: 0 !important; padding: 0 !important; margin: 0 0 10px; }
body .vbo-booking-details-actions .vbo-booking-canc-cmd span { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; box-sizing: border-box; min-height: 42px; padding: 9px 16px !important; margin: 0; border-radius: 999px !important; font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-weight: 700; font-size: 14px; line-height: 1.2; text-align: center; background: transparent !important; color: #8A3A32 !important; border: 1px solid rgba(138,58,50,.45) !important; box-shadow: none !important; cursor: pointer; }
body .vbo-booking-details-actions .vbo-booking-canc-cmd span:hover { background: #8A3A32 !important; color: #fff !important; border-color: #8A3A32 !important; }
body .vbo-booking-details-actions .vbo-booking-canc-cmd span i { font-size: 14px; }
body .vbo-booking-cancform-container { margin: 18px 0 0; padding: 22px; background: #fff; border: 1px solid var(--st-line, #E3DACD); border-radius: var(--st-radius, 8px); }
body .vbo-booking-cancform-container .vbo-booking-canc-details-policy { margin: 0 0 14px; font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-size: 14px; line-height: 1.6; color: var(--st-meta, #5A4A45); }
body .vbo-booking-cancform-container .vbordcancform-entry { margin: 0 0 14px; }
body .vbo-booking-cancform-container .vbordcancform-entry-label label { display: block; margin: 0 0 6px; font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #8f5717; }
body .vbo-booking-cancform-container input.vbinput, body .vbo-booking-cancform-container textarea.vbtextarea { width: 100%; box-sizing: border-box; min-height: 48px; padding: 12px 14px; border: 1px solid var(--st-line, #E3DACD); border-radius: var(--st-radius, 8px); background: #fff; font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-size: 15px; color: #241512; box-shadow: none; }
body .vbo-booking-cancform-container textarea.vbtextarea { min-height: 120px; resize: vertical; }
body .vbo-booking-cancform-container .vbo-booking-canc-submit { margin-top: 4px; }
body input.vbo-btn-cancelbooking { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 11px 24px; border-radius: 999px; border: 0; background: #8A3A32; color: #fff; font-family: var(--st-font-body, 'Work Sans'), sans-serif; font-weight: 700; font-size: 14px; cursor: pointer; box-shadow: none; }
body input.vbo-btn-cancelbooking:hover { background: #6f2c26; }

/* ---------- Schrittleiste (Dates · Rooms · Options · Book) neu: dünne Linie, exakt zentrierte Punkte, aktueller Schritt als Ring mit Halo.
   VikBooking-Standard hat eine 4-px-Unterlinie je Schritt und setzt den Punkt mit float:left + left:50% (sitzt rechts der Mitte). ---------- */
body .vbstepsbarcont { overflow: visible !important; margin: 0 0 28px !important; }
body ol.vbo-stepbar { display: flex !important; margin: 0 !important; padding: 0 !important; list-style: none; }
body ol.vbo-stepbar li.vbo-step { position: relative; display: block !important; float: none !important; flex: 1 1 0 !important; width: auto !important; min-width: 0 !important;
  margin: 0 !important; padding: 0 4px 24px !important; border: 0 !important; line-height: 1.3 !important; text-align: center; overflow: visible !important; }
body ol.vbo-stepbar li.vbo-step a, body ol.vbo-stepbar li.vbo-step span { display: block; }
body ol.vbo-stepbar li.vbo-step::after { content: "" !important; position: absolute; left: 0; right: 0; bottom: 6px; height: 2px; background: var(--vbo-border-color, #e5e1da); }
body ol.vbo-stepbar li.vbo-step-complete::after { background: var(--vbo-pref-bgcolor); }
body ol.vbo-stepbar li.vbo-step-current::after { background: linear-gradient(90deg, var(--vbo-pref-bgcolor) 50%, var(--vbo-border-color, #e5e1da) 50%); }
body ol.vbo-stepbar li.vbo-step:first-child::after { left: 50%; }
body ol.vbo-stepbar li.vbo-step:last-child::after { right: 50%; }
body ol.vbo-stepbar li.vbo-step-current:first-child::after { background: var(--vbo-border-color, #e5e1da); }
body ol.vbo-stepbar li.vbo-step-current:last-child::after { background: var(--vbo-pref-bgcolor); }
body ol.vbo-stepbar li.vbo-step::before { content: "" !important; position: absolute !important; float: none !important; left: 50% !important; top: auto !important; bottom: 0 !important;
  transform: translateX(-50%); width: 14px !important; height: 14px !important; line-height: 0 !important; box-sizing: border-box; border-radius: 50% !important; border: 0 !important;
  background: var(--vbo-border-color, #e5e1da); z-index: 1; }
body ol.vbo-stepbar li.vbo-step-complete::before { background: var(--vbo-pref-bgcolor) !important; }
body ol.vbo-stepbar li.vbo-step-current::before { background: #fff !important; border: 3px solid var(--vbo-pref-bgcolor) !important; box-shadow: 0 0 0 4px rgba(112, 35, 29, .14); }
body ol.vbo-stepbar li.vbo-step-complete a { color: var(--st-ink, #2b2b2b); }
body ol.vbo-stepbar li.vbo-step-current { color: var(--vbo-pref-bgcolor); font-weight: 700; }
body ol.vbo-stepbar li.vbo-step-next { color: var(--vbo-light-text-color, #9a9a9a); }
