/* Native booking: short path from dates to guest details to review. */
.booking-page{max-width:940px;padding-top:35px;padding-bottom:60px}.booking-page h1{font-size:3.8rem;margin:0}.booking-page h2{font-size:2.5rem;line-height:1.05}.booking-panel{background:#fff;border:1px solid var(--line);padding:30px}.booking-progress{display:flex;list-style:none;padding:0;margin:0 0 18px;gap:20px;border-bottom:1px solid var(--line)}.booking-progress li{flex:1;font-family:Briefing;font-size:1.6rem;padding:0 0 10px;border-bottom:4px solid transparent}.booking-progress span{display:block;font-family:Roboto;font-size:.75rem;font-weight:500}.booking-progress .is-current{border-color:var(--ink)}.booking-payment{font-weight:600;background:var(--signal);padding:8px 12px;font-size:.95rem;margin-bottom:25px}.booking-page .form-select{border:1px solid #777;padding:13px 35px 13px 14px;outline-offset:5px}.booking-offer{background:#fff;padding:0 0 15px;border-bottom:1px solid var(--line)}.booking-offer .price-row{padding:8px 0;margin:0;border:0;align-items:center}.booking-offer .price-row strong,.booking-total strong{font-size:1.7rem}.booking-contact{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-size:.9rem}.booking-phone{font-family:Briefing;font-size:2rem;line-height:1.2;text-decoration:none}.booking-phone:hover{text-decoration:underline}.booking-review dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;margin-top:18px}.booking-review dd{white-space:pre-line;overflow-wrap:anywhere}.booking-message{padding:16px;background:var(--signal);border-left:4px solid var(--ink);margin-bottom:20px;font-size:.95rem}.booking-page .form-check-input{border-color:#666}.booking-page .form-check-input:checked{background-color:var(--ink);border-color:var(--ink)}.booking-page .form-check-label{font-size:.95rem}.booking-page .btn:disabled{opacity:1;background:#e5e5e5;border-color:#e5e5e5;color:#505050;cursor:wait}.booking-page h2:focus{outline:none!important}.booking-body .booking-bar{display:none}.booking-page .form-control{width:100%;max-width:100%}
@media(max-width:767px){.booking-page{padding-top:25px}.booking-page>.row{--bs-gutter-x:24px;--bs-gutter-y:20px}.booking-page h1{font-size:2.5rem}.booking-page h2{font-size:2.1rem}.booking-panel{padding:20px 16px}.booking-progress{gap:10px}.booking-payment{font-size:.85rem;padding:8px}.booking-phone{font-size:1.6rem}}
@media(max-width:374px){.booking-page h1{font-size:2.1rem}.booking-page h2{font-size:1.9rem}.booking-phone{font-size:1.4rem}}

@media(max-width:374px){#trip-form .row>div:nth-child(-n+2){width:100%}}

/* Belegung und Datumswahl: Nachtstatus bleibt auch ohne Farbe erkennbar. */
.stay-calendar{max-width:520px;border:1px solid var(--ink);padding:18px;background:var(--paper)}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.booking-page .calendar-toolbar h3{font-family:Roboto,Arial,sans-serif;font-size:1.05rem;font-weight:700;line-height:1.4;text-align:center}
.calendar-nav{width:44px;height:44px;flex-shrink:0;border:1px solid var(--ink);background:var(--signal);color:var(--ink);font-size:1.4rem}
.calendar-nav:disabled{background:#eee;border-color:#aaa;color:#666}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.calendar-weekdays{text-align:center;font-size:.75rem;font-weight:700;margin-bottom:8px}
.calendar-day{position:relative;height:44px;padding:0;border:1px solid #888;background:#fff;color:var(--ink);font-size:.95rem;font-weight:600;line-height:1}
.calendar-day:focus-visible{z-index:2;outline-offset:1px}
.day-blocked,.key-blocked{background:repeating-linear-gradient(135deg,#e7e7e7 0 3px,#fff 3px 7px);text-decoration:line-through;text-decoration-thickness:2px}
.day-unpriced{border-style:dotted;background:#f2f2f2;color:#555}
.day-unpriced:after{content:'·';position:absolute;bottom:2px;left:0;right:0;font-weight:900}
.day-unknown{border-style:dashed;background:#f2f2f2;color:#555}
.day-unknown:after{content:'?';position:absolute;right:2px;bottom:1px;font-size:.6rem}
.day-outside{color:#737373;background:#f1f1f1;border-color:transparent}
.calendar-day:disabled{cursor:not-allowed}
.calendar-day:not(:disabled):hover{outline:2px solid var(--ink);outline-offset:-3px}
.day-checkout{border-bottom:3px solid var(--ink)}
.day-in-range{background:var(--signal);color:var(--ink);border-color:var(--ink)}
.day-selected{background:var(--ink);color:var(--signal);border-color:var(--ink);text-decoration:none;box-shadow:inset 0 0 0 2px var(--signal)}
.calendar-legend{display:flex;flex-wrap:wrap;gap:8px 15px;list-style:none;padding:0;margin:16px 0;font-size:.75rem;line-height:1.5}
.calendar-legend li{display:flex;align-items:center;gap:6px}
.calendar-key{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid #777;flex-shrink:0}
.key-free{background:#fff}.key-unpriced{background:#f2f2f2;border-style:dotted;font-weight:900}
.stay-calendar .text-button{font-size:.8rem;padding:10px 0;margin-right:12px}
@media(max-width:767px){.stay-calendar{padding:12px}.calendar-days,.calendar-weekdays{gap:3px}.calendar-day{font-size:.85rem}.booking-page .calendar-toolbar h3{font-size:.9rem}}
@media(max-width:374px){.stay-calendar{padding:8px}.calendar-days,.calendar-weekdays{gap:2px}.calendar-nav{width:36px}.calendar-toolbar{gap:6px}}

/* Nightly prices from Smoobu; length-of-stay discounts are quoted by Smoobu. */
.booking-page{max-width:1240px}
.stay-offers{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:22px}
.stay-offer{border:2px solid var(--ink);padding:20px 24px;background:var(--signal);box-shadow:4px 4px 0 var(--ink)}
.booking-page .stay-offer h3{font-family:Roboto,Arial,sans-serif;font-size:1.1rem;font-weight:700;margin:0 0 8px}
.stay-offer p{margin:0;font-size:1rem}.stay-offer strong{font-size:2.4rem;line-height:1.1}
.stay-calendar{max-width:none;background:#fff;padding:20px;border-color:var(--line)}
.calendar-months{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.booking-page .calendar-month-panel h4{font-family:Roboto,Arial,sans-serif;font-size:1.15rem;font-weight:700;text-align:center;margin:0 0 22px}
.calendar-day{height:82px;border-radius:8px;display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;padding:10px 5px;border-color:#777;text-decoration:none;color:#181818}
.calendar-number{text-align:right;font-size:.85rem;font-weight:500}
.calendar-price{font-size:1rem;white-space:nowrap;font-weight:700;line-height:1.3}
.price-saver{background:#c2e9aa}.price-low{background:#bbefed}.price-mid{background:#b8d5fa}.price-high{background:#fff0ae}.price-peak{background:#ffd3ac}.price-top{background:#e4bce0}
.day-selected{color:#181818;border:2px solid #181818;box-shadow:inset 0 0 0 2px #fff}
.day-selected .calendar-number:before{content:'✓ ';font-weight:900}
.day-in-range{color:#181818;border:2px dashed #181818}
.day-blocked .calendar-number{text-decoration:line-through}.day-outside{color:#666}
.calendar-day:focus-visible{outline:3px solid #181818;outline-offset:2px}
@media(max-width:767px){.calendar-months{display:block}.calendar-month-panel:nth-child(2){display:none}.calendar-month-panel h4{display:none}.stay-offers{gap:10px}.stay-offer{padding:15px 12px}.stay-offer strong{font-size:1.9rem}.booking-page .stay-offer h3{font-size:1rem}.stay-calendar{padding:12px}.calendar-day{height:68px;padding:8px 2px}.calendar-price{font-size:.8rem}.calendar-number{font-size:.75rem}}
@media(max-width:374px){.booking-panel{padding:16px 10px}.stay-calendar{padding:7px}.calendar-price{font-size:.72rem}.stay-offer strong{font-size:1.65rem}}
.day-selected.day-blocked{background:repeating-linear-gradient(135deg,#e7e7e7 0 3px,#fff 3px 7px)}
.day-selected.day-unpriced,.day-selected.day-unknown{background:#f2f2f2}

/* Checkout ends the stay: no nightly price or second checkmark. */
.calendar-day.day-departure{background:#fff;color:#181818;border:2px dashed #181818;box-shadow:none}
.day-departure .calendar-number{text-decoration:none}
.day-departure:after{content:none}
.calendar-departure-label{font-size:.75rem;line-height:1.3;font-weight:700;hyphens:auto;overflow-wrap:normal}
@media(max-width:767px){.calendar-departure-label{font-size:.6rem}}
