.booking-header{height:100%;display:flex;align-items:center;justify-content:space-between}
.booking-back{font-size:12px;color:var(--green);font-weight:600}
.booking-page{width:min(1040px,calc(100% - 40px));margin:54px auto 80px}
.booking-intro{max-width:650px;margin:0 auto 32px;text-align:center}
.booking-intro .eyebrow{margin-bottom:12px}
.booking-intro h1{font-size:42px}
.booking-intro h1 em{color:var(--green)}
.booking-intro p{max-width:570px;margin:13px auto 0;font-size:13px;line-height:1.8}
.booking-search{position:relative;z-index:1;padding:18px;background:var(--green);border-radius:8px;box-shadow:0 12px 35px #18181520}
.booking-search-fields{display:grid;grid-template-columns:1.1fr 1.1fr .8fr .8fr .8fr 1.15fr;align-items:end;gap:10px}
.booking-occupancy-fields{grid-column:3/6;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.booking-search-field{display:block;min-width:0;color:white;font-size:10px;font-weight:550}
.booking-search-field span{display:block;margin:0 0 6px}
.booking-search-field input,.booking-search-field select{width:100%;height:42px;padding:0 10px;border:1px solid #e5e3db;border-radius:4px;background:white;color:var(--ink);font-size:11px}
.booking-search-button{min-height:42px;padding:10px 12px;gap:9px;background:var(--gold);border-color:var(--gold);white-space:nowrap}
.booking-search-button:hover{background:#92794d}
.booking-search-button span{font-size:17px;line-height:1}
.booking-exact-counts{display:grid;grid-template-columns:repeat(3,minmax(0,180px));gap:12px;margin-top:14px;color:white}
.booking-exact-counts label{display:grid;gap:5px;font-size:10px}
.booking-exact-counts label[hidden]{display:none}
.booking-exact-counts input{width:100%;min-width:0;height:38px;padding-inline:9px;border:1px solid #e5e3db;border-radius:4px;background:white;color:var(--ink);font-size:12px}
.child-age-fields{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;color:white}
.child-age-fields[hidden]{display:none}
.child-age-fields label{display:grid;gap:5px;font-size:10px}
.child-age-fields select{min-width:145px;height:38px;padding-inline:9px;border:1px solid #e5e3db;border-radius:4px;background:white}
.booking-error{max-width:1040px;margin:15px auto 0;padding:12px 15px;border:1px solid #e4bfb1;border-radius:5px;background:#fff1e9;color:#96391e;font-size:12px}
.booking-calendar{margin-top:37px;padding:27px 30px 25px;background:white;border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 32px #18181506}
.booking-calendar-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.booking-calendar-heading .eyebrow{margin-bottom:8px}
.booking-calendar-heading h2{font-size:27px}
.calendar-navigation{display:flex;gap:8px}
.calendar-navigation .icon-button{width:33px;height:33px;font-size:22px;color:var(--green)}
.calendar-navigation .icon-button:disabled{opacity:.35;cursor:not-allowed}
.calendar-instructions{margin-top:10px;font-size:11px}
.booking-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px;margin-top:24px}
.booking-month h3{margin-bottom:12px;text-align:center;font-family:var(--sans);font-size:13px;font-weight:600;text-transform:capitalize;letter-spacing:0}
.booking-weekdays,.booking-month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.booking-weekdays{margin-bottom:5px}
.booking-weekdays span{text-align:center;color:#8c8b83;font-size:8px;font-weight:600}
.booking-date,.booking-empty-day{min-height:43px}
.booking-date{display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:3px;background:#faf9f6;color:var(--ink);font-size:11px;transition:background .15s,border-color .15s}
.booking-date:not(:disabled):hover{border-color:var(--gold);background:#f4efdf}
.booking-date:disabled{background:#fff;color:#c4c3bd;cursor:not-allowed}
.booking-date.is-selected{background:var(--gold);border-color:var(--gold);color:white;font-weight:600}
.booking-date.in-range{border-radius:0;background:#f2eddf}
.booking-date.is-selected.in-range{background:var(--gold)}
.booking-calendar-legend{display:flex;justify-content:center;gap:24px;margin-top:22px;color:var(--muted);font-size:9px}
.booking-calendar-legend span{display:flex;align-items:center;gap:7px}
.selected-date-key,.selected-range-key{width:10px;height:10px;border-radius:2px;background:var(--gold)}
.selected-range-key{background:#f2eddf}
.booking-disclaimer{max-width:750px;margin:17px auto 0;text-align:center;font-size:10px;line-height:1.7}
.booking-footer{padding-block:18px;background:#292923;color:#e7e4dc;font-size:10px}
.booking-search-field:focus-within input,.booking-search-field:focus-within select,.booking-exact-counts input:focus-visible,.child-age-fields select:focus-visible{outline:3px solid #d7c394;outline-offset:2px}
@media(max-width:850px){.booking-search-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-occupancy-fields{grid-column:1/-1}.booking-search-button{grid-column:1/-1}.booking-page{margin-top:38px}}
@media(max-width:600px){.booking-page{width:calc(100% - 28px);margin:30px auto 48px}.booking-intro{margin-bottom:24px}.booking-intro h1{font-size:34px}.booking-intro p{font-size:12px}.booking-search{padding:13px}.booking-search-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.booking-occupancy-fields{gap:7px}.booking-search-field input,.booking-search-field select{font-size:10px;padding-inline:6px}.booking-exact-counts{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.booking-exact-counts label{font-size:9px}.booking-exact-counts input{font-size:11px;padding-inline:6px}.booking-search-button{grid-column:1/-1}.booking-calendar{margin-top:22px;padding:20px 14px}.booking-calendar-heading h2{font-size:23px}.booking-months{grid-template-columns:1fr;gap:25px;margin-top:19px}.booking-month:not(:first-child){border-top:1px solid var(--line);padding-top:22px}.booking-date,.booking-empty-day{min-height:42px}.booking-calendar-legend{gap:13px;font-size:8px}.booking-disclaimer{font-size:9px}}
.hero-booking-button{margin-left:10px;background:var(--gold);border-color:var(--gold)}
.hero-booking-button:hover{background:#92794d}
@media(max-width:600px){.hero-booking-button{margin:10px 0 0 8px;padding-inline:15px!important}}

.featured-rooms{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:8px}
.featured-room{position:relative;display:block;aspect-ratio:4/5;border-radius:12px;overflow:hidden;color:#fff;text-decoration:none;background:#ddd}
.featured-room img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.featured-room:hover img,.featured-room:focus-visible img{transform:scale(1.04)}
.featured-room-body{position:absolute;inset:auto 0 0;padding:60px 22px 22px;background:linear-gradient(0deg,rgba(16,17,16,.82),transparent);display:flex;flex-direction:column;gap:4px}
.featured-room-body small{font-size:10px;letter-spacing:2px;color:#e8d9b8;font-weight:600}
.featured-room-body strong{font-family:var(--serif);font-weight:500;font-size:21px;line-height:1.25}
.featured-rooms-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:28px;padding:22px 26px;border:1px solid var(--line);border-radius:12px;background:#fff}
.featured-rooms-cta p{margin:0;color:var(--muted)}
@media(max-width:850px){.featured-rooms{grid-template-columns:1fr 1fr}.featured-rooms .featured-room:last-child{grid-column:span 2;aspect-ratio:16/9}}
@media(max-width:600px){.featured-rooms{grid-template-columns:1fr}.featured-rooms .featured-room:last-child{grid-column:auto}.featured-room{aspect-ratio:4/3}.featured-rooms-cta{flex-direction:column;align-items:stretch;text-align:center}}

@media(min-width:851px){
.hero-image{right:max(48px,calc((100% - 1200px) / 2));width:calc(min(1200px,100% - 96px) * .56);max-width:1024px;border-radius:12px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.hero-copy{max-width:40%}
.image-caption{bottom:18px}
}
@media(max-width:850px){.hero-image{width:calc(100% - 40px);border-radius:12px;margin-top:20px}}
@media(max-width:600px){.hero-image{width:calc(100% - 36px)}}

.hero-copy .button-light{margin-right:8px}
.hero-copy .hero-booking-button{margin-left:0}

.booking-attendant{max-width:1040px;margin:18px auto 0;padding:22px 24px;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:6px;background:#fff}
.booking-attendant h2{margin:6px 0 8px;font-family:var(--serif);font-weight:500;font-size:24px;color:var(--ink)}
.booking-attendant p{margin:0 0 16px;font-size:13px;line-height:1.6;color:var(--muted)}
.booking-attendant-button{display:inline-flex;gap:8px}
@media(max-width:650px){.booking-attendant{padding:18px}.booking-attendant h2{font-size:20px}.booking-attendant-button{width:100%;justify-content:center}}

.wa-icon{width:20px;height:20px;fill:currentColor;flex:none}
.hero-whatsapp{display:flex;align-items:center;gap:8px;width:max-content;max-width:100%;margin-top:16px;font-size:13px;color:#fff;text-decoration:none;opacity:.92}
.hero-whatsapp strong{font-weight:600;color:#d8c08e;text-decoration:underline;text-underline-offset:3px}
.hero-whatsapp:hover{opacity:1}.hero-whatsapp .wa-icon{color:#d8c08e}
.whatsapp-float{position:fixed;z-index:60;right:20px;bottom:20px;display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:999px;background:var(--gold);color:#fff;font-size:13px;font-weight:600;text-decoration:none;box-shadow:0 10px 26px rgba(0,0,0,.25);transition:transform .2s,background .2s}
.whatsapp-float:hover{background:#92794d;transform:translateY(-2px)}.whatsapp-float .wa-icon{width:24px;height:24px}
@media(max-width:600px){.whatsapp-float{right:14px;bottom:14px;padding:13px}.whatsapp-float span{display:none}.hero-whatsapp{font-size:12px;flex-wrap:wrap}}
@media print{.whatsapp-float{display:none}}

@media(max-height:800px){
    .site-header{height:72px}
    .booking-page{margin-top:24px;margin-bottom:40px}
    .booking-intro{margin-bottom:18px}
    .booking-intro .eyebrow{margin-bottom:7px}
    .booking-intro h1{font-size:36px}
    .booking-intro p{margin-top:8px;line-height:1.55}
    .booking-search{padding:14px}
    .booking-exact-counts,.child-age-fields{margin-top:10px}
    .booking-calendar{margin-top:18px;padding:18px 22px 16px}
    .booking-calendar-heading .eyebrow{margin-bottom:5px}
    .booking-calendar-heading h2{font-size:24px}
    .calendar-instructions{margin-top:7px}
    .booking-months{gap:24px;margin-top:15px}
    .booking-month h3{margin-bottom:7px}
    .booking-date,.booking-empty-day{min-height:32px}
    .booking-calendar-legend{margin-top:13px}
}
@media(max-height:800px) and (max-width:600px){
    .booking-date,.booking-empty-day{min-height:42px}
}