/* One consistent desktop composition: search | photograph | details | price. */
body[data-page="guest"]{--guest-content-start:12px;--guest-content-end:12px}
body[data-page="guest"] .site-header{padding-left:var(--guest-content-start);padding-right:var(--guest-content-end);flex-wrap:wrap;row-gap:14px}
body[data-page="guest"] .header-links{margin-left:auto}
.booking-intro .container{max-width:1920px;padding-left:20px;padding-right:20px}
.booking-layout{max-width:1920px;width:100%;padding:0 16px;gap:18px}
.booking-results{padding:16px}.booking-results .card-information,.booking-results .card-description-panel{min-width:0}.booking-results .card-grid{gap:20px}
@media(min-width:761px){
 body[data-page="guest"]{--guest-content-start:calc(max(0px,(100% - 1920px)/2) + clamp(8px,1.2vw,16px) + clamp(190px,18vw,270px) + clamp(10px,1.2vw,18px));--guest-content-end:calc(max(0px,(100% - 1920px)/2) + clamp(8px,1.2vw,16px))}
 .booking-layout{display:grid;grid-template-columns:clamp(190px,18vw,270px) minmax(0,1fr);padding:0 clamp(8px,1.2vw,16px);gap:clamp(10px,1.2vw,18px)}
 .booking-search{position:sticky;top:20px;margin-bottom:0}
 .booking-search .search-panel{padding:0 clamp(10px,1vw,16px) 20px}
 .booking-search .search-panel-heading{margin:0 calc(-1 * clamp(10px,1vw,16px)) 20px;padding:20px clamp(10px,1vw,16px)}
 .booking-search .search-panel-heading h2{font-size:clamp(18px,1.5vw,22px)}
 .booking-search .field{font-size:clamp(10px,.8vw,12px)}
 .booking-search .field input[type="date"]{font-size:clamp(12px,1.1vw,16px);padding-left:8px;padding-right:5px}
 .booking-search .field input[type="date"]::-webkit-calendar-picker-indicator{width:20px;height:20px}
 .booking-search button.primary{font-size:clamp(10px,.8vw,12px)}
 .booking-search .search-grid>.field:nth-child(-n+2),.booking-search .search-grid>button{grid-column:1/-1}
 .booking-results{padding:clamp(8px,1.2vw,16px)}
 .booking-results .apartment-card{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,.9fr);grid-template-rows:min-content min-content minmax(min-content,1fr);column-gap:clamp(8px,1.2vw,18px);row-gap:12px;padding:clamp(8px,.85vw,12px);align-items:start}
 .booking-results .apartment-card>.apartment-gallery,.booking-results .apartment-card>.gallery-empty{grid-column:1;grid-row:1 / span 3;position:sticky;top:20px;align-self:start}
 .booking-results .card-content{display:contents}
 .booking-results .card-information{display:grid;grid-template-rows:subgrid;grid-column:2;grid-row:1 / span 3;row-gap:12px;padding:10px 0 0;align-self:stretch}
 .booking-results .card-information>.capacity{grid-row:1;align-self:start;font-size:clamp(8px,.7vw,10px);line-height:1.35}
 .booking-results .apartment-card h3.apartment-name{grid-row:2;align-self:start;font-size:clamp(18px,1.8vw,27px);line-height:1.18;margin:0;padding:10px clamp(6px,.6vw,8px) 11px clamp(8px,.9vw,13px)}
 .booking-results .card-description-panel{grid-row:3;align-self:start}
 /* Shared grid row, so the price stays aligned even when the capacity wraps. */
 .booking-results .card-foot{grid-column:3;grid-row:2 / span 2;min-width:0;margin:0;padding:0;align-self:start}
 .booking-results .card-description{font-size:clamp(11px,.87vw,13px);line-height:1.65;margin-bottom:14px}
 .booking-results .apartment-facts,.booking-results .amenity-list{font-size:clamp(10px,.8vw,12px)}
 .booking-results .online-price-panel{grid-template-columns:minmax(0,1fr);gap:clamp(10px,1vw,16px);padding:clamp(10px,1.1vw,17px)}
 .booking-results .online-price-panel .price>strong{font-size:clamp(24px,2.3vw,35px)}
 .booking-results .online-price-panel .price>small,.booking-results .online-price-panel .price-breakdown{font-size:clamp(10px,.8vw,12px)}
 .booking-results .online-price-label{font-size:clamp(8px,.7vw,10px);letter-spacing:.7px}
 .booking-results .online-price-panel .booking-book{width:100%;padding:11px 8px;font-size:clamp(11px,1vw,15px)}
 .booking-results .online-price-panel .price-breakdown{max-width:none}
 .booking-results .price-breakdown>span{gap:8px}
 .booking-results .card-arrival-tax{padding:clamp(9px,.9vw,13px)}
 .booking-results .card-arrival-tax strong{font-size:clamp(11px,.86vw,13px)}.booking-results .card-arrival-tax span{font-size:clamp(10px,.8vw,12px)}.booking-results .card-arrival-tax small{font-size:clamp(9px,.74vw,11px)}
 .booking-results .apartment-card .gallery-image{object-fit:cover}
 .booking-results .card-foot>.unavailable:not(.availability-warning){display:block;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 12px;font-size:clamp(11px,.85vw,13px);line-height:1.7}
}
@media(max-width:760px){
 .booking-layout{display:block;padding:0 12px}.booking-search{position:static;margin-bottom:20px}
 .booking-results{padding:12px}.booking-results .apartment-card{grid-template-columns:1fr;gap:0;padding:8px}
 .booking-results .card-content{display:block;padding:18px 12px}.booking-results .card-information{display:block}.booking-results .apartment-card>.apartment-gallery{position:static}
 .booking-search .search-grid>.field:nth-child(-n+2){grid-column:auto}
 .booking-results .apartment-card .gallery-image{object-fit:contain;background:var(--surface)}
}
