/* Suites as generous photographic rows, with a separate booking summary. */
.booking-page .minimal-rooms{max-width:1800px;padding:42px 4vw 64px!important}
.booking-page .rooms-title{margin-bottom:24px}
.booking-page .stay-tabs{float:none;display:flex;justify-content:center;gap:38px;margin:0 0 28px;padding:0 0 22px;border-bottom:1px solid var(--line)}
.booking-page .booking-live{clear:both;max-width:1320px;margin:0 auto 40px;padding:0 0 25px;border-bottom:1px solid var(--line)}
.booking-page .booking-inputs{grid-template-columns:1fr 1fr .6fr auto;gap:28px}
.booking-page .booking-inputs label{font-size:14px;gap:9px}
.booking-page .booking-inputs input{font-size:18px;min-height:48px}
.booking-page .booking-inputs button{font-size:15px;padding:14px 26px}
.booking-page .stay-grid,.booking-page.has-results .stay-grid{display:flex;flex-direction:column;gap:36px}
.booking-page .stay-card,.booking-page.has-results .stay-card{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(260px,1fr);align-items:center;gap:42px;padding:0 0 32px;border:0;border-bottom:1px solid var(--line);min-width:0}
.booking-page .stay-card[hidden],.booking-page.has-results .stay-card[hidden]{display:none}
.booking-page .stay-card .gallery,.booking-page .stay-card .coming-room{width:100%;min-width:0;margin:0;align-self:start}
.booking-page .gallery-track,.booking-page .coming-room{height:auto;aspect-ratio:4/3}
.booking-page .gallery-track img{width:100%;height:100%;object-fit:cover}
.booking-page .stay-card .coming-room{margin:0;min-height:0}
.booking-page .gallery-controls{padding:12px 0 0;min-height:40px}
.booking-page .gallery-controls button{font-size:25px;padding:3px 10px;min-width:44px;min-height:40px}
.booking-page .gallery-count{font-size:13px;letter-spacing:.08em}
.booking-page .room-details,.booking-page.has-results .room-details{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;min-width:0;padding:0 10px 40px 0;text-align:left}
.booking-page .room-details h2,.booking-page.has-results .room-details h2{font-family:TiziriBodoni,Didot,serif;font-weight:400;font-size:clamp(30px,2.6vw,43px);line-height:1.15;letter-spacing:0;margin:0 0 15px;text-align:left}
.booking-page .suite-feeling{font-size:18px;line-height:1.65;margin:0 0 12px}
.booking-page .suite-feeling span{display:block;font-size:18px;margin:4px 0 0}
.booking-page .suite-description{font-size:18px;line-height:1.5;max-width:32ch;margin:0 0 18px}
.booking-page .stay-card .capacity{font-size:16px;line-height:1.5;margin:0;min-height:0}
.booking-page .room-status{font-size:15px;margin-top:12px}
.booking-page .room-pick{margin-top:18px}
.booking-page .room-pick button{font-size:16px;padding:13px 22px}
.booking-page.has-results .booking-results{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:34px;align-items:start}
.booking-page.has-results .stay-card{grid-template-columns:minmax(0,1.7fr) minmax(230px,1fr);gap:26px}
.booking-page.has-results .selection-summary{position:sticky;top:98px;order:initial;margin:0;max-height:calc(100vh - 125px);overflow-y:auto;padding:24px 20px}
.booking-page .whole-content,.booking-page.has-results .whole-content{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(260px,1fr);gap:42px;padding:0;align-items:center}
.booking-page .whole-content>div:last-child,.booking-page.has-results .whole-content>div:last-child{padding:0 10px 40px 0;margin:0}
.booking-page .whole-content h3,.booking-page.has-results .whole-content h3{font-family:TiziriBodoni,Didot,serif;font-weight:400;font-size:34px;line-height:1.2}
.booking-page .whole-content p{font-size:17px;line-height:1.5}
.booking-page .whole-villa{margin-top:42px;padding-top:30px}
.booking-page .whole-villa>.section-small{font-size:36px;text-align:center;margin-bottom:28px}
.booking-page.has-results .whole-content{grid-template-columns:minmax(0,1.7fr) minmax(230px,1fr);gap:26px}
.booking-page .stay-card.is-selected,.booking-page .whole-content.is-selected{outline:1px solid #9bae9e;outline-offset:14px}
@media(max-width:1200px){.booking-page .stay-card,.booking-page .whole-content{grid-template-columns:minmax(0,1.8fr) minmax(235px,1fr);gap:28px}.booking-page.has-results .stay-card,.booking-page.has-results .whole-content{grid-template-columns:1fr;gap:20px}.booking-page.has-results .room-details,.booking-page.has-results .whole-content>div:last-child{padding:0 0 16px}.booking-page.has-results .booking-results{grid-template-columns:minmax(0,1fr) 280px;gap:28px}}
@media(max-width:760px){.booking-page .minimal-rooms{padding:30px 4vw 42px!important}.booking-page .stay-tabs{gap:24px;margin-bottom:24px}.booking-page .booking-inputs{grid-template-columns:1fr 1fr;gap:18px}.booking-page .booking-live{margin-bottom:28px}.booking-page .stay-card,.booking-page.has-results .stay-card,.booking-page .whole-content,.booking-page.has-results .whole-content{grid-template-columns:1fr;gap:20px;padding-bottom:28px}.booking-page .room-details,.booking-page.has-results .room-details,.booking-page .whole-content>div:last-child{padding:0 8px}.booking-page .stay-grid,.booking-page.has-results .stay-grid{gap:30px}.booking-page .room-details h2,.booking-page.has-results .room-details h2{font-size:32px}.booking-page .suite-description{max-width:44ch;font-size:17px}.booking-page .suite-feeling span{display:inline-block;margin-inline-start:10px}.booking-page.has-results .booking-results{display:flex;flex-direction:column;gap:24px}.booking-page.has-results .selection-summary{position:static;order:-1;width:100%;max-height:none}.booking-page .whole-content h3{font-size:30px}.booking-page .stay-card.is-selected{outline-offset:7px}}
