.booking-shell{max-width:1440px;padding-top:22px;padding-bottom:70px}.booking-heading{padding-bottom:26px}.booking-heading .breadcrumbs{margin-bottom:28px}.booking-heading .eyebrow{margin-bottom:8px;font-size:.875rem;letter-spacing:.05em}.booking-heading h1{font-size:clamp(2rem,3.5vw,3.8rem);font-weight:400;line-height:1.1}.booking-heading>span{display:block;color:var(--muted);margin-top:10px}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,440px);grid-template-rows:auto 1fr;column-gap:46px;align-items:start}.booking-layout>*{min-width:0}.booking-visual{grid-column:1;grid-row:1}.booking-story{grid-column:1;grid-row:2}.booking-panel{grid-column:2;grid-row:1/3;border-radius:18px;border:1px solid #dce5e9;background:#f6f9fa;padding:26px;scroll-margin-top:95px}.booking-visual .gallery-mosaic{display:block;height:auto;aspect-ratio:1.5;border-radius:14px;overflow:hidden}.booking-visual .gallery-tile:first-child{display:block;width:100%;height:100%}.booking-visual .gallery-tile:not(:first-child){display:none}.booking-visual .gallery-all{background:white;color:var(--ink);border-radius:30px;min-height:44px;padding:10px 16px;right:14px;bottom:14px;font-size:.8125rem}.booking-visual .gallery-thumbs{padding-top:12px;gap:10px;flex-wrap:nowrap}.booking-visual .gallery-thumbs>a{width:80px}.booking-visual .gallery-thumbs img{height:56px;border-radius:6px;object-fit:cover}.booking-visual .gallery-thumbs>p{display:none}.booking-visual>.quick-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:24px 0;margin:0 0 30px;border-bottom:1px solid var(--line)}.booking-visual>.quick-facts>div+div{border:0;padding-left:0}.booking-visual .quick-facts dt{font-size:.875rem;letter-spacing:0;margin-bottom:6px}.booking-visual .quick-facts dd{font-size:1.25rem}.booking-story h2{font-size:1.5rem;font-weight:500;line-height:1.3;letter-spacing:-.02em;margin-bottom:18px}.booking-story section{padding-bottom:32px;margin-bottom:32px;border-bottom:1px solid var(--line)}.booking-story p{font-size:1rem;color:var(--muted);line-height:1.8}.booking-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.booking-services ul{list-style:none;padding:0;margin:0}.booking-services li{font-size:.9375rem;line-height:1.6;border-top:1px solid #e7edf0;padding:11px 0}.booking-services li:first-child{border:0;padding-top:0}.booking-services h2{font-size:1.3rem}.booking-specs .specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 25px}.booking-specs .specs>div{padding:13px 0;gap:15px}.booking-story .booking-departure{border:0;margin-bottom:0}.booking-departure p+p{margin-top:12px}.booking-prices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:24px;padding-bottom:23px;border-bottom:1px solid #ccdce3}.booking-prices>div+div{padding-left:20px;border-left:1px solid #ccdce3}.booking-prices span,.booking-prices small{display:block;color:var(--muted);font-size:.875rem}.booking-prices strong{display:block;font-size:clamp(1.15rem,1.8vw,1.8rem);font-weight:500;line-height:1.3;margin:6px 0}.booking-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}.booking-form[hidden]{display:none}.booking-form .full{grid-column:1/-1}.booking-form label{display:flex;flex-direction:column;gap:7px;min-width:0}.booking-form label>span,.booking-form legend{font-size:.875rem;font-weight:500}.booking-form input,.booking-form select,.booking-form textarea{width:100%;min-width:0;max-width:100%;border:1px solid #bdcdd4;border-radius:7px;background:#fff;color:var(--ink);font:inherit;font-size:16px;padding:11px 10px;min-height:46px;box-sizing:border-box}.booking-form input[type=date]{appearance:none;-webkit-appearance:none}.booking-form textarea{resize:vertical;line-height:1.5}.booking-form :is(input,select,textarea,button):focus-visible{outline:2px solid #185c7a;outline-offset:3px}.booking-form fieldset{border:0;min-width:0;padding:0;margin:0}.booking-form legend{padding:0;margin-bottom:12px}.booking-date{padding-top:5px!important}.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.calendar-heading strong{font-size:1rem;font-weight:500;text-transform:capitalize}.calendar-heading button{background:white;border:1px solid #cbdbe2;border-radius:50%;width:38px;height:38px;min-width:38px;font-size:1.4rem;line-height:1;color:var(--ink)}.calendar-heading button:disabled{opacity:.35;cursor:default}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays span{font-size:.75rem;text-align:center;color:var(--muted);padding:5px 0}.calendar-days button{border:1px solid #d5dfe4;border-radius:6px;background:#fff;min-width:0;min-height:52px;padding:5px 1px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--ink);font-size:.875rem}.calendar-days button small{font-size:.75rem;line-height:1.2;letter-spacing:-.025em}.calendar-days button[data-state=available]{background:#e8f3ed;border-color:#b9d7c4;color:#245c38}.calendar-days button[data-state=busy]{background:#faeaea;border-color:#e6b7b7;color:#a03a3a;text-decoration:line-through}.calendar-days button[data-state=past]{opacity:.35;cursor:default}.calendar-days button[aria-pressed=true]{outline:2px solid #0d2c54;outline-offset:1px;border-color:#0d2c54}.calendar-days button:disabled{cursor:default}.calendar-legend{display:flex;flex-wrap:wrap;gap:9px 15px;margin-top:13px}.calendar-legend span{font-size:.75rem;display:flex;align-items:center;gap:5px}.calendar-legend span:before{content:'';width:8px;height:8px;border:1px solid #bcc9cf;border-radius:2px;background:white}.calendar-legend .legend-free:before{background:#b9d7c4;border-color:#90bd9f}.calendar-legend .legend-busy:before{background:#e6b7b7;border-color:#cb9696}.calendar-status{font-size:.8125rem;line-height:1.5;color:var(--muted);margin:12px 0}.calendar-native{margin-top:14px}.calendar-native>span{font-size:.8125rem!important}.selected-date-price{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #d4e0e5;padding-top:14px;margin-top:16px;font-size:.875rem;line-height:1.5}.selected-date-price strong{font-size:1rem;text-align:right}.booking-extra{display:grid!important;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px!important;padding:12px 0;border-bottom:1px solid #dce5e9;cursor:pointer}.booking-extra input{width:18px!important;height:18px;min-height:18px;accent-color:#0d2c54;padding:0}.booking-extra span{font-size:.875rem!important;font-weight:400!important}.booking-extra strong{font-size:.875rem;font-weight:500}.booking-form .reserve-button{width:100%;border:0;border-radius:28px;background:#0d2c54;color:#fff;min-height:50px;font-size:1rem}.booking-form .reserve-button:disabled{opacity:.6}.booking-request-note,.booking-delivery-note,.booking-privacy{font-size:.8125rem;line-height:1.5;color:var(--muted);margin:-7px 0 0}.booking-privacy{font-size:.75rem}.booking-error{font-size:.875rem;line-height:1.5;color:#8b2b2b}.booking-error:empty{display:none}.booking-trap{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}.rental-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.rental-filters .sort-filter{min-width:0}
@media(max-width:1100px){.booking-layout{grid-template-columns:minmax(0,1fr) 390px;column-gap:28px}.booking-panel{padding:22px}.booking-specs .specs{grid-template-columns:minmax(0,1fr)}.booking-services{gap:20px}.booking-visual .gallery-mosaic{aspect-ratio:1.25}}
@media(max-width:900px){.booking-layout{grid-template-columns:minmax(0,1fr);gap:0}.booking-visual{grid-row:1;grid-column:1}.booking-panel{grid-row:2;grid-column:1;margin:0 0 34px}.booking-story{grid-row:3;grid-column:1}.booking-heading{padding-bottom:20px}.booking-visual .gallery-mosaic{aspect-ratio:1.6}.booking-prices strong{font-size:1.7rem}.calendar-days button{min-height:65px}.calendar-days button small{font-size:.75rem}.booking-specs .specs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.booking-shell{padding-top:16px;padding-bottom:40px}.booking-heading .breadcrumbs{margin-bottom:20px}.booking-heading h1{font-size:clamp(1.8rem,7vw,2.8rem)}.booking-heading .eyebrow{font-size:.8125rem;letter-spacing:.035em}.booking-visual .gallery-mosaic{aspect-ratio:1.35}.booking-visual .gallery-thumbs>a{width:64px}.booking-visual .gallery-thumbs img{height:46px}.booking-visual>.quick-facts{gap:10px;margin-bottom:22px;padding-block:20px}.booking-visual .quick-facts dt{font-size:.8125rem}.booking-visual .quick-facts dd{font-size:1.125rem}.booking-panel{padding:18px;border-radius:12px}.booking-prices{gap:12px;padding-bottom:20px;margin-bottom:20px}.booking-prices>div+div{padding-left:15px}.booking-prices strong{font-size:1.4rem}.booking-form{gap:17px 10px}.booking-form>label:has(input[type=tel]),.booking-form>label:has(input[type=email]){grid-column:1/-1}.calendar-days{gap:4px}.calendar-days button{min-height:50px}.calendar-days button small{font-size:.75rem}.calendar-weekdays span{font-size:.75rem}.calendar-legend{gap:9px}.booking-story h2{font-size:1.4rem}.booking-services{gap:24px;grid-template-columns:minmax(0,1fr)}.booking-services>div+div{padding-top:20px;border-top:1px solid var(--line)}.booking-specs .specs{grid-template-columns:minmax(0,1fr)}.rental-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.rental-filters .sort-filter{grid-column:1/-1}}
@media(max-width:370px){.booking-panel{padding:12px}.calendar-days{gap:3px}.calendar-days button{font-size:.8125rem;min-height:46px}.calendar-days button small{font-size:.75rem}}

/* Keep the country selector and local number comfortably aligned on mobile too. */
.phone-fields{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:12px;align-items:end}
.booking-form .phone-fields label>span{font-size:.8125rem;line-height:1.4}
.booking-form .phone-fields select{padding-inline:10px;font-size:16px}
.phone-error{font-size:.8125rem;line-height:1.5;color:#8b2b2b;margin-top:8px}
.phone-error:empty{display:none}
.booking-form [hidden]{display:none!important}
.calendar-date-fields{display:flex;flex-wrap:wrap;gap:16px}
.calendar-date-fields>label{flex:1 1 120px;min-width:0}
.calendar-date-fields input{min-width:0;width:100%}
.range-hint{font-size:.8125rem;line-height:1.5;margin:0 0 14px;color:#425d64}
.range-hint:empty{display:none}
.range-calculation{font-size:.8125rem;line-height:1.5;margin:0;color:#425d64}
.range-calculation:empty{display:none}
.calendar-days button[data-state=loading]{background:#edf1f2;color:#536569;cursor:progress}
.calendar-days button[data-state=loading][aria-pressed=true],.calendar-days button[data-state=unknown][aria-pressed=true]{background:#dbe3e5;color:#344b51}
.calendar-status[data-loading=true]::before{content:"";display:inline-block;width:12px;height:12px;margin-right:8px;vertical-align:-2px;border:2px solid #bed0d1;border-top-color:#164b48;border-radius:50%;animation:calendar-loading .8s linear infinite}
@keyframes calendar-loading{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.calendar-status[data-loading=true]::before{animation:none}}
.calendar-days button[data-range=inside]{background:#dceeea;outline:0;box-shadow:inset 0 -2px #588878}
.calendar-days button[data-range=start],.calendar-days button[data-range=end]{background:#164b48;color:#fff}
.calendar-days button[data-state=busy][aria-pressed=true]{background:#f7ddd9;color:#8b2b2b}
.phone-fields [aria-invalid=true]{border-color:#a03a3a}
.calendar-heading button{display:grid;place-items:center;padding:0;line-height:1;width:44px;height:44px;min-width:44px}
@media(max-width:480px){.phone-fields{gap:14px;grid-template-columns:minmax(0,1fr)}}

/* Half-day occupancy remains distinct from free and full-day bookings. */
.calendar-days button[data-state=partial]{background:linear-gradient(135deg,#fff0c2 50%,#e4f1e8 50%);color:#55420b;border-color:#d7bc71}
.calendar-days button[data-state=partial][aria-pressed=true]{outline:2px solid #164b48;outline-offset:-2px}
.calendar-days button[data-state=partial]:disabled{opacity:.8;cursor:not-allowed}
.calendar-legend .legend-partial::before{background:linear-gradient(135deg,#edc86b 50%,#85b698 50%)}
.booking-form [data-slot-field] small{font-size:.8125rem;line-height:1.5;color:var(--muted);font-weight:400}
.trip-mobile-bar [data-booking-total]{font-variant-numeric:tabular-nums}
