.unit-detail-page{min-width:0;background:var(--cream-2)}.unit-detail-page *{box-sizing:border-box}.unit-detail-page img{max-width:100%}
.unit-detail-hero{padding:8.5rem 0 2.6rem;color:#fff;background:linear-gradient(90deg,rgba(10,29,23,.92),rgba(10,29,23,.62)),url('/assets/images/property/property-4-1600.jpg') center/cover}.unit-detail-hero__inner{display:flex;align-items:end;justify-content:space-between;gap:2rem}.unit-detail-hero__inner>div{max-width:700px}.unit-detail-hero h1{font-size:clamp(2.3rem,4vw,4rem);line-height:1.2;margin:.45rem 0}.unit-detail-hero p{max-width:650px;margin:0;color:#dbe5df;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.unit-detail-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.85fr);gap:clamp(1.5rem,3vw,3rem);align-items:start;padding-block:clamp(1.5rem,4vw,4rem);max-width:1280px}.unit-detail-content{min-width:0}.unit-gallery{display:grid;gap:.75rem}.unit-gallery figure{margin:0;overflow:hidden;border-radius:18px;background:#dfe6df}.unit-gallery img{display:block;width:100%;height:100%;object-fit:cover}.unit-gallery__main{aspect-ratio:16/10;box-shadow:var(--shadow-lg)}.unit-gallery__thumbs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.unit-gallery__thumbs figure{aspect-ratio:16/9}
.unit-overview{margin-top:1.5rem;padding:clamp(1.35rem,3vw,2.3rem);background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-sm)}.unit-overview h2{font-size:clamp(1.45rem,2.3vw,2rem);margin:.45rem 0 1rem}.unit-overview>p{color:var(--muted);line-height:2}.unit-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin:1.5rem 0;padding:0}.unit-facts div{padding:1rem;background:#f3f5f0;border-radius:12px}.unit-facts dt{font-size:.72rem;color:var(--muted)}.unit-facts dd{margin:.25rem 0 0;font-weight:800;color:var(--forest-900)}.unit-amenities{padding-top:1rem;border-top:1px solid var(--line)}.unit-amenities__list{display:flex;flex-wrap:wrap;gap:.55rem}.unit-amenities__list span{padding:.5rem .8rem;background:#eef2eb;border:1px solid #dce4da;border-radius:999px;font-size:.8rem}
.unit-booking-card{position:sticky;top:96px;max-height:calc(100vh - 116px);overflow:auto;overscroll-behavior:contain;min-width:0;padding:clamp(1.1rem,2vw,1.6rem);background:var(--paper);border:1px solid rgba(21,55,43,.12);border-radius:20px;box-shadow:0 18px 55px rgba(19,45,36,.14);scrollbar-width:thin}.unit-booking-card__header{display:flex;align-items:start;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.unit-booking-card__header h2{font-size:1.2rem;margin:.35rem 0 0}.unit-booking-card__header p{margin:0;text-align:left;white-space:nowrap}.unit-booking-card__header small,.unit-booking-card__header strong{display:block}.unit-booking-card__header small{font-size:.68rem;color:var(--muted)}.unit-booking-card__header strong{color:var(--copper-dark)}
.booking-wizard{min-width:0}.booking-wizard fieldset{border:0;padding:0;margin:1rem 0;min-width:0}.booking-wizard fieldset[hidden],.wizard-actions [hidden]{display:none!important}.booking-wizard legend{font-weight:800;margin-bottom:.8rem;color:var(--forest-900)}.booking-selection{display:flex;justify-content:space-between;gap:1rem;padding:1rem;background:#f3f5f0;border-radius:12px}.booking-selection span{color:var(--muted);font-size:.78rem}.booking-steps-indicator{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.3rem;list-style:none;padding:0;margin:1rem 0;font-size:.65rem}.booking-steps-indicator li{overflow:hidden;padding:.45rem .15rem;text-align:center;text-overflow:ellipsis;white-space:nowrap;background:#eef0ea;border-radius:6px}.booking-steps-indicator li.active{background:var(--forest-800);color:#fff}.booking-wizard label{display:block;margin:.7rem 0;font-size:.78rem;font-weight:800}.booking-wizard input,.booking-wizard textarea{display:block;width:100%;min-height:44px;margin-top:.3rem;border:1px solid var(--line);border-radius:9px;padding:.65rem;background:#fff}.booking-field-grid,.booking-date-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.booking-field-wide{grid-column:1/-1}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.6rem}.calendar-toolbar button{flex:0 0 44px;width:44px;height:44px;border:1px solid var(--line);background:#fff;border-radius:9px}.calendar-toolbar button[aria-busy="true"]{cursor:wait;opacity:.6}.calendar-toolbar strong{text-align:center;font-size:.92rem}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.22rem}.calendar-weekdays{text-align:center;font-size:.7rem;color:var(--muted);margin-bottom:.3rem}.calendar-day{min-width:0;min-height:40px;aspect-ratio:1;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font:inherit;font-size:.78rem;padding:0}.calendar-day.outside{opacity:.25}.calendar-day.hold{background:#fff1c9}.calendar-day.pending{background:#f7dfb4}.calendar-day.confirmed{background:#d7e5df}.calendar-day.blocked,.calendar-day.unavailable{background:#ecebea;color:#898989}.calendar-day.selected{background:var(--copper)!important;color:#fff;outline:2px solid var(--forest-800)}.calendar-error{margin:.65rem 0;padding:.7rem;border:1px solid #a33;border-radius:8px;background:#fff3f1;color:#76231d}.calendar-error button{margin-inline-start:.5rem}.calendar-legend{display:flex;flex-wrap:wrap;gap:.4rem .7rem;margin:.7rem 0;font-size:.65rem}.calendar-legend span{display:inline-flex;align-items:center;gap:.25rem}.calendar-legend span:before{content:"";display:block;flex:0 0 10px;width:10px;height:10px;border-radius:3px;border:1px solid #aaa}.calendar-legend .free:before{background:#fff}.calendar-legend .selected:before{background:var(--copper);border-color:var(--forest-800)}.calendar-legend .hold:before{background:#fff1c9}.calendar-legend .pending:before{background:#f7dfb4}.calendar-legend .confirmed:before{background:#d7e5df}.calendar-legend .blocked:before{background:#ecebea}
.calendar-selection-summary{min-width:0;margin:.25rem 0 .5rem;padding:.55rem .7rem;border-radius:8px;background:#f3f5f0;color:var(--forest-900);overflow-wrap:anywhere}.calendar-clear{min-height:44px;margin:0 0 .6rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--forest-900)}
.food-day{min-width:0;border:1px solid var(--line);border-radius:10px;margin:.65rem 0;padding:.75rem}.food-day h3{margin:.2rem 0 .8rem}.wizard-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:1rem}.wizard-actions .btn{width:100%;min-height:46px}.wizard-actions [data-submit]{grid-column:1/-1}.booking-security-note{margin:1rem 0 0;color:var(--muted);font-size:.68rem;line-height:1.8}.muted{color:var(--muted)}
@media(max-width:1024px){.unit-detail-layout{grid-template-columns:minmax(0,1.25fr) minmax(320px,.85fr);gap:1.25rem}.unit-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.unit-booking-card{top:84px}}
@media(max-width:900px){.unit-detail-hero__inner{align-items:start;flex-direction:column}.unit-detail-layout{grid-template-columns:1fr;max-width:760px}.unit-booking-card{position:static;max-height:none;overflow:visible}}
@media(max-width:768px){.unit-detail-hero{padding:7rem 0 2rem}.unit-detail-hero__inner{gap:1rem}.unit-detail-hero__inner .btn{width:100%}.unit-detail-layout{padding-block:1rem 3rem}.unit-gallery__main{aspect-ratio:4/3}.unit-overview{margin-top:1rem}.calendar-day{min-height:44px;aspect-ratio:auto}.booking-steps-indicator{grid-template-columns:repeat(3,minmax(0,1fr));font-size:.68rem}}
@media(max-width:520px){.unit-detail-hero h1{font-size:2.15rem}.unit-gallery__thumbs{gap:.45rem}.unit-gallery figure,.unit-overview,.unit-booking-card{border-radius:13px}.unit-facts,.booking-field-grid,.booking-date-fields{grid-template-columns:1fr}.unit-booking-card{padding:1rem}.unit-booking-card__header{display:block}.unit-booking-card__header p{text-align:right;margin-top:.7rem}.calendar-weekdays,.calendar-grid{gap:.14rem}.calendar-day{min-height:42px;font-size:.72rem}.calendar-legend{font-size:.6rem}.wizard-actions{grid-template-columns:1fr}.wizard-actions [data-submit]{grid-column:auto}}
/* Nightly quote and rule acceptance remain bounded at every viewport. */
.quote-night__amounts{display:grid;justify-items:end;gap:.2rem;min-width:0}.quote-night__extra{max-width:100%;color:var(--muted);font-size:.68rem;overflow-wrap:anywhere}.booking-rules-acceptance{margin-top:1rem;padding:1rem;border:1px solid var(--line);border-radius:10px;background:#f7f8f4}.booking-rules-acceptance p{max-height:9rem;overflow:auto;white-space:pre-line;line-height:1.9}.booking-rules-acceptance label{display:flex;align-items:flex-start;gap:.5rem}.booking-rules-acceptance input{flex:0 0 auto;width:auto;min-height:0;margin:.2rem 0 0}
/* Reservation wizard validation and single-submit states. */
.booking-form-error,.step-error,.field-error{display:block;color:#8a1f17;background:#fff2f0;border:1px solid #e8aaa4;border-radius:10px;padding:.65rem .8rem;margin:.65rem 0}.booking-form-error[hidden],.step-error[hidden]{display:none}.field-error{font-size:.82rem;padding:.35rem .5rem}.booking-wizard [aria-invalid="true"]{border-color:#a9281d;box-shadow:0 0 0 3px rgb(169 40 29 / 12%)}.booking-wizard button:focus-visible,.booking-wizard input:focus-visible,.booking-wizard textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 55%,white);outline-offset:2px}.booking-spinner{width:1em;height:1em;border:2px solid currentColor;border-left-color:transparent;border-radius:50%;margin-inline-start:.45rem;display:inline-block;vertical-align:middle;animation:booking-spin .75s linear infinite}.booking-spinner[hidden]{display:none}@keyframes booking-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.booking-spinner{animation:none}}
