.room-booking-page{background:#f6fafb}
.room-booking-hero{padding:82px 0 62px;background:#e8f2f4}
.room-booking-hero h1{margin:0 0 10px;font-size:clamp(2.2rem,5vw,4rem);font-weight:500;letter-spacing:-.045em;line-height:1.05}
.room-booking-hero p:not(.resort-eyebrow){margin:0;color:#52646d;font-size:1.05rem}
.room-search-wrap{position:relative;margin-top:-27px}
.room-search{display:grid;grid-template-columns:1fr 1fr .8fr auto;gap:12px;align-items:end;padding:20px;background:#fff;border:1px solid #dce3e8;box-shadow:0 18px 46px #1f3b4d12}
.room-search label,.room-customer-grid label{display:flex;flex-direction:column;gap:7px;color:#1f3b4d;font-size:.84rem;font-weight:700}
.room-search input,.room-search select,.room-customer-grid input{min-height:48px;width:100%;padding:11px 12px;border:1px solid #bac8ce;background:#fff;color:#1f3b4d;font:inherit}
.room-search .resort-button{min-height:48px;white-space:nowrap;border:0;cursor:pointer}
.room-search-note{margin:13px 0 0;color:#647781;font-size:.88rem}
.room-results-section{padding-top:58px;padding-bottom:90px}
.room-results-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:24px}
.room-results-heading h2{margin:0;font-size:clamp(1.8rem,4vw,2.7rem);font-weight:500;letter-spacing:-.04em}
.room-results-heading>p{color:#52646d}
.room-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.room-choice-card{position:relative;display:grid;grid-template-columns:minmax(160px,.8fr) minmax(0,1.2fr);min-width:0;background:#fff;border:1px solid #dce3e8;box-shadow:0 12px 34px #1f3b4d0a;cursor:pointer;overflow:hidden}
.room-choice-card>input{position:absolute;top:16px;left:16px;z-index:2;width:20px;height:20px;accent-color:#176c7a}
.room-choice-card>img{display:block;width:100%;height:100%;min-height:250px;object-fit:cover}
.room-choice-content{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:24px}
.room-choice-content>strong,.room-choice-content>h3{margin:0;color:#1f3b4d;font-size:1.4rem;font-weight:600}
.room-choice-content>span:not(.room-choice-status):not(.room-choice-price):not(.room-stay-total),.room-choice-content>p{margin:0;color:#52646d;line-height:1.55;font-size:.9rem}
.room-choice-status{color:#176c7a;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.room-choice-price{margin-top:auto;color:#1f3b4d;font-size:1.45rem;font-weight:800}
.room-choice-price small{font-size:.8rem;font-weight:500;color:#52646d}
.room-stay-total{color:#52646d;font-size:.85rem}
.room-choice-card:has(input:checked){border:2px solid #176c7a;box-shadow:0 0 0 3px #176c7a18}
.room-choice-card:has(input:disabled){cursor:not-allowed;opacity:.62}
.room-choice-card:focus-within{outline:2px solid #176c7a;outline-offset:3px}
.room-house-card{grid-column:1/-1}
.room-house-card>img{max-height:300px}
.room-choice-grid-static .room-choice-card{cursor:default}
.room-customer-panel{margin-top:28px;padding:clamp(24px,4vw,36px);background:#fff;border:1px solid #dce3e8;box-shadow:0 12px 34px #1f3b4d0a}
.room-customer-panel h3{margin:0 0 8px;font-size:1.5rem;font-weight:600}
.room-customer-panel>div:first-child>p:last-child{color:#52646d;line-height:1.6}
.room-customer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}
.room-total-panel{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:14px;background:#e8f2f4;color:#1f3b4d}
.room-total-panel>span{font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.room-total-panel>strong{font-size:1.15rem}
.room-total-panel>small{color:#52646d;line-height:1.4}
.room-pay-button{min-width:240px;border:0;cursor:pointer}
.room-alert{margin:20px 0;padding:16px 18px;background:#fff4e4;color:#634917;line-height:1.6}
.room-alert a{color:inherit;font-weight:800}
.room-rate-note{margin:24px 0 0;color:#647781;font-size:.86rem;line-height:1.65}
@media(max-width:900px){.room-choice-grid{grid-template-columns:1fr}.room-customer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.room-booking-hero{padding:62px 0 48px}.room-search{grid-template-columns:1fr 1fr}.room-search .resort-button{grid-column:1/-1}.room-choice-card{grid-template-columns:1fr}.room-choice-card>img{height:210px;min-height:0}.room-choice-content{padding:22px}.room-customer-grid{grid-template-columns:1fr}.room-house-card{grid-column:auto}.room-results-heading{align-items:flex-start;flex-direction:column}.room-results-section{padding-top:48px}}
