.booking-search-shell { position: relative; z-index: 5; padding: 2rem 0; background: var(--clr-primary-light); }
.booking-form { display: grid; grid-template-columns: 1.35fr 1.35fr .8fr .8fr auto; gap: 1rem; align-items: end; }
.booking-field { display: flex; flex-direction: column; gap: .4rem; min-width: 0; }
.booking-field label, .booking-toolbar label { font-size: .85rem; font-weight: 600; color: var(--clr-primary-dark); }
.booking-field input, .booking-toolbar select { width: 100%; min-width: 0; min-height: 48px; padding: .7rem .8rem; font: inherit; color: var(--clr-text); border: 1px solid var(--clr-border); border-radius: var(--radius-sm); background: white; }
.booking-form .btn { min-height: 48px; justify-content: center; color: var(--clr-primary-dark); }
.booking-guidance { font-size: .8rem; margin-top: .85rem; }
.booking-intro { background: var(--clr-primary-dark); padding: 3rem 0; }
.booking-intro h1 { color: white; }
.booking-intro p { color: rgba(255,255,255,.8); margin-top: .75rem; }
.booking-toolbar { display: flex; gap: 1.5rem; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; flex-wrap: wrap; }
.booking-toolbar > div { display: flex; gap: .75rem; align-items: center; }
.booking-toolbar select { width: auto; }
.booking-notice { padding: 1rem 1.25rem; border-radius: var(--radius-sm); margin: 1rem 0; background: #fff4da; color: #654a13; }
.booking-property { color: var(--clr-primary); font-weight: 700; font-size: .85rem; }
.booking-rate, .booking-charge { font-size: .85rem; }
.booking-price { margin-top: 1rem; color: var(--clr-primary-dark); font-size: 1.2rem; font-weight: 700; }
.booking-photo-label { position: absolute; bottom: .5rem; left: .5rem; padding: .2rem .6rem; background: white; color: var(--clr-primary); border-radius: 4px; font-size: .75rem; }
.booking-checkout-note { margin-top: 2rem; font-size: .9rem; }
#location-hero .btn--outline { color: white; border-color: rgba(255,255,255,.65); margin: .75rem; }
.booking-form input:focus-visible, .booking-toolbar select:focus-visible { outline: 3px solid var(--clr-accent); outline-offset: 2px; }
.booking-form button:disabled { cursor: wait; opacity: .65; }
.navbar__links { gap: 1.2rem; }
@media (max-width: 1000px) {
  .navbar__links { display: none; }
  .navbar__burger { display: flex; }
}
@media (max-width: 768px) {
  .booking-form { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .booking-form .btn { grid-column: 1 / -1; }
  .booking-toolbar > div { width: 100%; }
  .booking-toolbar select { flex: 1; }
}
@media (max-width: 380px) { .booking-form { grid-template-columns: minmax(0, 1fr); } }
.location-api-info { margin-top: 2rem; max-width: 760px; color: rgba(255,255,255,.9); }
.location-api-info h2, .location-api-info p, .location-api-info summary { color: inherit; }
.location-api-info details { margin-top: 1rem; }
.location-api-info summary { cursor: pointer; font-weight: 600; }
.location-api-info p { white-space: pre-line; overflow-wrap: anywhere; }
.location-hero__desc { max-width: none; overflow-wrap: anywhere; }
.development-notice { width: min(560px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); margin: auto; padding: clamp(24px, 5vw, 40px); border: 2px solid #c9a96e; border-radius: 16px; background: #fffdf8; color: #193c32; box-shadow: 0 20px 70px #0005; }
.development-notice::backdrop { background: rgba(10, 30, 24, .78); }
.development-notice h2 { color: #193c32; margin: 0 0 16px; }
.development-notice p { color: #35473e; line-height: 1.65; margin-bottom: 24px; }
.development-notice .btn { white-space: normal; width: 100%; }

/* The booking page search is a single, raised reservation card. */
.page-booking .booking-intro { padding-bottom: 5rem; background: radial-gradient(ellipse at 85% 0%,#3b6d58 0,transparent 60%),var(--clr-primary-dark); }
.page-booking .booking-search-shell { padding:0 0 12px;background:transparent;margin-top:-32px; }
.page-booking .booking-search-shell > .container { padding:28px 30px 20px;border:1px solid #e5e6dc;border-top:3px solid var(--clr-accent);border-radius:22px;background:#fffefb;box-shadow:0 14px 40px #173b3012; }
.page-booking .booking-form { gap:12px;grid-template-columns:1.35fr 1.35fr .8fr .8fr auto; }
.page-booking .booking-field { gap:8px;padding:12px 14px;background:#f3f6f1;border:1px solid transparent;border-radius:12px;transition:border-color .18s,background .18s; }
.page-booking .booking-field:focus-within { border-color:var(--clr-accent);background:#fff; }
.page-booking .booking-field label { font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#536a5c; }
.page-booking .booking-field input { padding:0;min-height:32px;border:0;border-radius:2px;background:transparent;color:#193c32;font-size:16px;font-weight:600; }
.page-booking .booking-form .btn { min-height:86px;min-width:132px;border-radius:12px;gap:12px;box-shadow:0 4px 12px #b18e4930;font-weight:700; }
.page-booking .booking-form .btn::after { content:'\2192';font-size:24px;font-weight:400; }
.page-booking .booking-guidance { margin-top:18px;padding-top:16px;border-top:1px solid #e8ece5;color:#617264;font-size:12px;line-height:1.7; }
@media(max-width:900px){.page-booking .booking-form{grid-template-columns:repeat(2,minmax(0,1fr))}.page-booking .booking-form .btn{grid-column:1/-1;min-height:52px}.page-booking .booking-search-shell>.container{padding:20px;border-radius:18px}}
@media(max-width:480px){.page-booking .booking-search-shell>.container{width:calc(100% - 24px);padding:16px}.page-booking .booking-field{padding:10px;gap:6px}.page-booking .booking-form{gap:10px}.page-booking .booking-guidance{font-size:11px}.page-booking .booking-intro{padding-top:2.5rem}}
@media(prefers-reduced-motion:reduce){.page-booking .booking-field{transition:none}}
