.booking-page { --booking-primary:#147d68; --booking-primary-dark:#0d5d4e; --booking-ink:#16221f; --booking-muted:#66736f; --booking-surface:#f4f7f5; --booking-border:#dce5e1; min-height:100vh; padding-bottom:5rem; color:var(--booking-ink); background:var(--booking-surface); }
.booking-page .btn { border-radius:.5rem; font-weight:700; }
.booking-page .btn-primary { background:var(--booking-primary); border-color:var(--booking-primary); }
.booking-page .btn-primary:hover,.booking-page .btn-primary:focus { background:var(--booking-primary-dark); border-color:var(--booking-primary-dark); }
.booking-page__breadcrumb { padding:1.25rem 0; }
.booking-page__breadcrumb .breadcrumb { margin:0; padding:0; background:transparent; font-size:.9rem; }
.booking-page__breadcrumb a { color:var(--booking-primary-dark); font-weight:700; }
.booking-page__eyebrow { display:inline-block; margin-bottom:.55rem; color:var(--booking-primary); font-size:.76rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.booking-page__header { max-width:760px; padding:2rem 0 2.5rem; }
.booking-page__header h1,.booking-result h1 { margin-bottom:1rem; font-size:clamp(2.3rem,5vw,4rem); font-weight:800; line-height:1.08; letter-spacing:-.045em; }
.booking-page__header p,.booking-result>p { color:var(--booking-muted); font-size:1.08rem; line-height:1.75; }
.booking-errors { margin-bottom:1.5rem; border:0; border-radius:.75rem; }
.booking-errors ul { margin:.65rem 0 0; padding-left:1.2rem; }
.booking-form-card { margin-bottom:1.25rem; padding:1.75rem; border:1px solid var(--booking-border); border-radius:.85rem; background:#fff; }
.booking-form-card__heading { display:flex; gap:1rem; margin-bottom:1.5rem; }
.booking-form-card__heading>span { display:grid; flex:0 0 2.25rem; height:2.25rem; border-radius:50%; place-items:center; color:var(--booking-primary-dark); background:#dff5ed; font-size:.8rem; font-weight:800; }
.booking-form-card__heading h2 { margin:0 0 .25rem; font-size:1.3rem; font-weight:800; }
.booking-form-card__heading p { margin:0; color:var(--booking-muted); font-size:.9rem; }
.booking-form-card label { font-size:.9rem; font-weight:700; }
.booking-form-card label>span { color:#c23f43; }
.booking-form-card .form-control,.booking-form-card .custom-select { min-height:48px; border-color:#cbd7d3; border-radius:.45rem; }
.booking-form-card textarea.form-control { min-height:auto; }
.booking-form-card .form-control:focus,.booking-form-card .custom-select:focus { border-color:var(--booking-primary); box-shadow:0 0 0 .2rem rgba(20,125,104,.14); }
.booking-form-card .form-control[readonly] { background:#f8faf9; }
.booking-availability { color:var(--booking-primary-dark); font-weight:700; }
.booking-availability--error { color:#b3343a; }
.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover { color:rgba(72,87,82,.28); background:#f2f4f3; text-decoration:line-through; }
.flatpickr-day.selected,.flatpickr-day.selected:hover { border-color:var(--booking-primary); background:var(--booking-primary); }
.booking-price-input { position:relative; }
.booking-price-input>span { position:absolute; left:.9rem; top:50%; z-index:2; transform:translateY(-50%); color:var(--booking-muted); font-weight:700; }
.booking-price-input .form-control { padding-left:2.8rem; font-weight:800; }
.booking-room-card { position:sticky; top:1.5rem; overflow:hidden; border:1px solid var(--booking-border); border-radius:.85rem; background:#fff; box-shadow:0 16px 38px rgba(30,55,48,.09); }
.booking-room-card__image { width:100%; aspect-ratio:4/3; object-fit:cover; background:#e9eeec; }
.booking-room-card__body { padding:1.5rem; }
.booking-room-card h2 { margin:0; font-size:1.7rem; font-weight:800; }
.booking-room-card__type { color:var(--booking-muted); }
.booking-room-card ul { margin:1.25rem 0; padding:1.1rem 0; border-top:1px solid var(--booking-border); border-bottom:1px solid var(--booking-border); list-style:none; }
.booking-room-card li { display:flex; gap:.5rem; margin:.55rem 0; color:var(--booking-muted); }
.booking-room-card li span { color:var(--booking-primary); font-weight:900; }
.booking-room-card__monthly span { display:block; color:var(--booking-muted); font-size:.78rem; }
.booking-room-card__monthly strong { color:var(--booking-primary-dark); font-size:1.45rem; }
.booking-room-card__monthly small { color:var(--booking-muted); }
.booking-room-card__link { display:inline-block; margin-top:1.25rem; color:var(--booking-primary-dark); font-weight:700; }
.booking-submit { display:flex; justify-content:space-between; gap:1.5rem; align-items:center; margin-top:1.5rem; padding:1.5rem; border-radius:.85rem; color:#fff; background:var(--booking-ink); }
.booking-submit strong,.booking-submit span { display:block; }
.booking-submit span { margin-top:.25rem; color:rgba(255,255,255,.65); font-size:.88rem; }
.booking-result { max-width:900px; margin:3rem auto 0; padding:3rem; border:1px solid var(--booking-border); border-radius:1rem; background:#fff; box-shadow:0 18px 50px rgba(30,55,48,.08); }
.booking-result__icon { display:grid; width:4rem; height:4rem; margin-bottom:1.5rem; border-radius:50%; place-items:center; color:#075342; background:#bceedd; font-size:2rem; font-weight:900; }
.booking-confirmation { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin:2rem 0; overflow:hidden; border:1px solid var(--booking-border); border-radius:.75rem; background:var(--booking-border); }
.booking-confirmation>div { padding:1rem; background:#fff; }
.booking-confirmation span,.booking-confirmation strong { display:block; }
.booking-confirmation span { margin-bottom:.3rem; color:var(--booking-muted); font-size:.8rem; }
.booking-payment-note { padding:1.5rem; border-radius:.75rem; background:var(--booking-surface); }
.booking-payment-note h2 { font-size:1.25rem; font-weight:800; }
.booking-payment-note dl { margin:1rem 0 0; }
.booking-payment-note dl div { display:flex; justify-content:space-between; gap:1rem; padding:.65rem 0; border-top:1px solid var(--booking-border); }
.booking-payment-note dt,.booking-payment-note dd { margin:0; }
.booking-payment-note dd { text-align:right; }
.booking-result__actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:1.5rem; }
@media(max-width:991.98px){.booking-room-card{position:static;margin-top:1rem}.booking-submit{align-items:flex-start;flex-direction:column}.booking-submit .btn{width:100%}}
@media(max-width:575.98px){.booking-page__header{padding-top:1rem}.booking-form-card{padding:1.25rem}.booking-confirmation{grid-template-columns:1fr}.booking-result{margin-top:1rem;padding:1.5rem}.booking-payment-note dl div{display:block}.booking-payment-note dd{margin-top:.25rem;text-align:left}.booking-result__actions .btn{width:100%}}
