.room-page-footer{border-top:1px solid var(--border);background:var(--surface-sunken)}.room-page-footer section{gap:24px}.room-page-footer>div>section>h2{font-size:20px;font-weight:600}.room-page-footer footer{margin-top:40px;padding-top:40px}@media (max-width:639px){.room-page-footer>div{padding-block:32px}}:root:has(.booking-dialog[open]){scrollbar-gutter:auto}.booking-dialog{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:var(--space-6);border:0;background:transparent;color:var(--text);overflow:hidden}.booking-dialog[open]{display:flex;align-items:center;justify-content:center}.booking-dialog::backdrop{background:var(--scrim);animation:fade-in var(--dur) var(--ease-out) both}.booking-panel{display:flex;flex-direction:column;width:100%;max-width:576px;max-height:100%;overflow:hidden;border-radius:var(--space-6);background:var(--surface);box-shadow:var(--shadow-overlay);animation:auth-modal-in var(--dur) var(--ease-out) both}.booking-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6) var(--space-4);border-bottom:1px solid var(--border)}.booking-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-6);scrollbar-gutter:stable}.booking-icon-button,.booking-stepper{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--control-h-lg);height:var(--control-h-lg);border-radius:var(--radius-full);cursor:pointer;transition:background-color var(--dur-fast)}.booking-icon-button:hover,.booking-stepper:hover{background:var(--surface-sunken)}.booking-icon-button:disabled,.booking-stepper:disabled{opacity:.35;cursor:not-allowed}.booking-stay{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--space-3)}.booking-stay p{font-size:var(--text-xs);color:var(--text-muted)}.booking-stay strong{display:block;font-size:var(--text-2xl);line-height:var(--leading-tight);margin-block:var(--space-1)}.booking-duration{position:absolute;inset-inline-start:50%;top:0;transform:translate(-50%,-50%);white-space:nowrap;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);padding:0 var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.booking-sync{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);margin-block:var(--space-2);font-size:var(--text-xs);color:var(--text-muted)}.booking-sync button{min-height:var(--control-h-lg);padding-inline:var(--space-2);color:var(--accent);font-weight:var(--weight-semibold);cursor:pointer}.booking-sync button:hover{text-decoration:underline}.booking-sync button:disabled{cursor:wait;color:var(--text-muted)}.booking-section-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-2)}.booking-section-heading h3{font-weight:var(--weight-semibold)}.booking-section-heading span{font-size:var(--text-xs);color:var(--text-muted)}.booking-calendar{border:1px solid var(--border);border-radius:var(--space-3);padding:var(--space-3)}.booking-day{display:flex;align-items:center;justify-content:center;min-width:0;min-height:var(--control-h-lg);cursor:pointer;border-radius:var(--radius-lg)}.booking-day span{display:grid;place-items:center;width:var(--control-h);height:var(--control-h);border-radius:var(--radius-full);border:1px solid transparent}.booking-day:not(:disabled):hover span{background:var(--surface-sunken)}.booking-day[aria-current=date] span{border-color:var(--text-muted)}.booking-day[data-between=true] span{background:var(--accent-soft);color:var(--accent-hover)}.booking-day[aria-pressed=true] span,.booking-day[aria-pressed=true]:hover span{border-color:var(--accent);background:var(--accent);color:var(--on-accent);font-weight:var(--weight-semibold)}.booking-day:disabled{color:var(--text-subtle);opacity:.45;cursor:not-allowed}.booking-hours{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-2)}.booking-hour{min-width:0;min-height:var(--control-h-lg);border:1px solid var(--border);border-radius:var(--radius-lg);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--dur-fast),border-color var(--dur-fast)}.booking-hour:not(:disabled):hover{border-color:var(--accent);background:var(--accent-soft)}.booking-hour:disabled{border-color:transparent;background:var(--surface-sunken);color:var(--text-subtle);text-decoration:line-through;cursor:not-allowed}.booking-hour[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-hover);font-weight:var(--weight-semibold)}.booking-stepper{border:1px solid var(--border-strong);font-size:var(--text-lg)}.booking-price{display:grid;gap:var(--space-3);margin-top:var(--space-5);padding:var(--space-4);border-radius:var(--space-3);background:var(--surface-sunken)}.booking-price>div{display:flex;justify-content:space-between;gap:var(--space-3)}.booking-price dt{color:var(--text-muted)}.booking-price dd{text-align:right}.booking-price>div:last-child{border-top:1px solid var(--border);padding-top:var(--space-3);font-size:var(--text-md);font-weight:var(--weight-semibold)}.booking-price>div:last-child dt{color:var(--text)}.booking-error{padding:var(--space-3);border-radius:var(--radius-lg);background:var(--danger-soft);color:var(--danger);font-size:var(--text-sm)}.booking-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border);background:var(--surface)}.booking-primary{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;min-height:var(--space-8);padding:var(--space-3) var(--space-4);border-radius:var(--space-3);background:var(--accent);color:var(--on-accent);font-size:var(--text-md);font-weight:var(--weight-semibold);cursor:pointer;transition:background-color var(--dur-fast)}.booking-primary:hover{background:var(--accent-hover)}.booking-primary:disabled{opacity:.4;cursor:not-allowed}@media (max-width:639px){.booking-dialog{padding:max(11dvh,env(safe-area-inset-top)) 0 0}.booking-dialog[open]{align-items:flex-end}.booking-panel{max-width:none;height:100%;border-radius:var(--space-6) var(--space-6) 0 0}.booking-header{padding:var(--space-3) var(--space-4)}.booking-scroll{padding:var(--space-5) var(--space-4)}.booking-footer{padding:var(--space-3) var(--space-4) max(var(--space-3),env(safe-area-inset-bottom))}}.room-booking-card{padding:var(--space-6);border:1px solid var(--border);border-radius:var(--space-5);background:var(--surface);box-shadow:0 var(--space-1) var(--space-4) rgb(17 22 30/.06)}.room-booking-amount{color:var(--text);font-size:var(--text-2xl);font-weight:700;line-height:var(--leading-tight)}.room-booking-caption{margin-top:var(--space-2);color:var(--text-muted);font-size:var(--text-sm)}.room-booking-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:var(--space-4);overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius-lg)}.room-booking-field{display:flex;min-width:0;min-height:var(--control-h-lg);flex-direction:column;justify-content:center;gap:var(--space-1);padding:var(--space-3);text-align:left;color:var(--text);font-size:var(--text-base);cursor:pointer;transition:background-color var(--dur-fast)}.room-booking-field:hover{background:var(--surface-sunken)}.room-booking-field:focus-visible{outline-offset:-3px}.room-booking-field:disabled{cursor:wait}.room-booking-label{color:var(--text);font-size:var(--text-xs);font-weight:700;line-height:var(--leading-tight);text-transform:uppercase}.room-booking-date,.room-booking-guest{grid-column:1/-1}.room-booking-arrival{border-right:1px solid var(--border-strong)}.room-booking-guest{flex-direction:row;align-items:center;justify-content:space-between;border-top:1px solid var(--border-strong);cursor:default}.room-booking-guest:hover{background:transparent}.room-booking-guest-copy{display:flex;flex-direction:column;gap:var(--space-1)}.room-booking-guest-controls{display:flex;gap:var(--space-2)}.room-booking-next-day{font-size:var(--text-xs);color:var(--text-muted)}.room-booking-submit{margin-top:var(--space-4)}.room-booking-total{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border);color:var(--text);font-size:var(--text-md);font-weight:700}.room-booking-support{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-4);border-radius:var(--space-4);background:var(--surface-sunken)}.room-booking-support p{color:var(--text);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.room-booking-support div>span{display:block;margin-top:var(--space-1);color:var(--text-muted);font-size:var(--text-xs)}.room-booking-chat{display:grid;width:var(--control-h-sm);height:var(--control-h-sm);flex-shrink:0;place-items:center;border-radius:var(--space-3);background:var(--surface);color:var(--accent)}.room-booking-chat svg{width:var(--space-4);height:var(--space-4)}.booking-popover{position:fixed;z-index:var(--z-modal);display:flex;flex-direction:column;max-width:calc(100vw - 24px);overflow:hidden;border:1px solid var(--border);border-radius:var(--space-5);background:var(--surface);color:var(--text);box-shadow:var(--shadow-overlay);animation:fade-in var(--dur-fast) var(--ease-out) both}.booking-popover:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.booking-popover-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;min-height:var(--control-h-lg);padding-inline:var(--space-5)}.booking-popover-header h2{font-size:var(--text-md);font-weight:var(--weight-semibold)}.booking-popover-body{min-height:0;padding:0 var(--space-5) var(--space-3)}.booking-popover[data-overflow=true] .booking-popover-body{overflow-y:auto;overscroll-behavior:contain}.booking-popover-hint{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--text-muted)}.booking-popover-close{display:grid;width:var(--control-h-lg);height:var(--control-h-lg);place-items:center;border-radius:var(--radius-full);color:var(--text-muted);cursor:pointer;transition:background-color var(--dur-fast)}.booking-popover-close:hover{background:var(--surface-sunken);color:var(--text)}.booking-range-calendar{--booking-day-h:max(var(--control-h-sm),calc(var(--text-sm) * var(--leading-normal) + var(--space-2)));position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:var(--space-5);border:0;border-radius:0;padding:0}.booking-month{min-width:0}.booking-month h3{display:grid;min-height:var(--control-h-sm);place-items:center;margin-bottom:var(--space-2);font-size:var(--text-base);font-weight:var(--weight-semibold)}.booking-month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:var(--booking-day-h);text-align:center}.booking-weekday{padding-bottom:var(--space-2);color:var(--text-muted);font-size:var(--text-xs)}.booking-range-calendar .booking-icon-button{position:absolute;top:0;width:var(--control-h);height:var(--control-h)}.booking-month-previous{left:0}.booking-month-next{right:0}.booking-range-calendar .booking-day{min-height:var(--booking-day-h);border-radius:0;font-size:var(--text-sm)}.booking-range-calendar .booking-day span{width:100%;height:var(--booking-day-h);border:0;border-radius:var(--radius-full)}.booking-range-calendar .booking-day[data-range=true] span{border-radius:0;background:var(--accent-soft);color:var(--accent-hover)}.booking-range-calendar .booking-day[data-start=true] span{border-radius:var(--radius-full) 0 0 var(--radius-full)}.booking-range-calendar .booking-day[data-end=true] span{border-radius:0 var(--radius-full) var(--radius-full) 0}.booking-range-calendar .booking-day[aria-pressed=true] span{background:var(--accent);color:var(--on-accent)}.booking-range-calendar .booking-day:not([data-range=true])[aria-pressed=true] span{border-radius:var(--radius-full)}.booking-range-calendar .booking-day[aria-current=date] span{text-decoration:underline;text-underline-offset:var(--space-1)}.booking-range-calendar .booking-day:disabled{text-decoration:line-through}.booking-time-section{margin-top:var(--space-3)}.booking-time-heading{display:flex;min-height:var(--control-h-sm);align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.booking-time-heading h3{font-size:var(--text-base);font-weight:var(--weight-semibold)}.booking-time-heading>span{color:var(--text-muted);font-size:var(--text-xs)}.booking-time-popover .booking-hours{grid-template-columns:repeat(auto-fit,minmax(min(100%,calc(var(--text-xs) * 5)),1fr));gap:var(--space-1) var(--space-2)}.booking-time-popover .booking-hour{min-height:var(--control-h-sm);border-color:var(--border-strong);border-radius:var(--radius-full);font-size:var(--text-xs)}.booking-time-popover .booking-hour[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.booking-time-popover .booking-hour:disabled{border-color:var(--border);background:var(--surface)}@media (max-width:520px){.booking-range-calendar{--booking-day-h:max(var(--control-h),calc(var(--text-sm) * var(--leading-normal) + var(--space-2)));grid-template-columns:minmax(0,1fr);gap:var(--space-3)}.booking-time-popover .booking-hour{min-height:var(--control-h)}}