/* Shared layout contract. Loaded after the original visual theme. */
:root{font-family:Arial,Helvetica,sans-serif;color-scheme:dark;--gutter:clamp(16px,3vw,32px);--header:82px}
html{scroll-padding-top:calc(var(--header) + 16px);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:Arial,Helvetica,sans-serif;line-height:1.55}
[hidden]{display:none!important}
img,video,iframe{max-width:100%}
img{vertical-align:middle}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
input,select,textarea{min-width:0}
input,select,textarea,.form-control{font-size:1rem}
textarea.form-control{padding:12px 14px;min-height:120px;resize:vertical}
h1,h2,h3,p,a,strong,small{overflow-wrap:break-word}
.container,.nav-shell,.footer-shell{width:min(1200px,calc(100% - var(--gutter)*2));padding-inline:0;margin-inline:auto}
.site-main,.main-container,.booking-layout,.account-layout,.booking-shell,.booking-card,.account-grid,.admin-dashboard,.admin-panel,.table-wrap,.legacy-grid,.room-card,.room-content,.location-content>*,.footer-columns>*{min-width:0;max-width:100%}
.skip-link{position:fixed;left:16px;top:12px;z-index:2000;padding:12px 18px;background:var(--gold);color:#111;border-radius:8px;transform:translateY(-160%)}
.skip-link:focus{transform:none}
.nav-shell{min-height:var(--header);gap:16px}
.nav-panel>a{min-height:44px}
.mobile-menu-btn{min-width:44px;min-height:44px;flex:none}
.mobile-menu-btn span{margin:3px 0;flex-shrink:0}
.mobile-menu-btn.active span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.mobile-menu-btn.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.brand-copy strong{line-height:1.25}
.nav-panel .nav-auth{min-width:0}
.hero,.hero-fullscreen,.legacy-hero{height:auto;min-height:100svh;padding:calc(var(--header) + 56px) var(--gutter) 64px}
.legacy-hero{min-height:min(780px,85svh)}
.hero-content,.legacy-hero-content{width:100%;padding:0;max-width:900px}
.hero-content h1,.legacy-hero-content h1{font-size:clamp(2.25rem,7vw,5.75rem);line-height:1.1;margin:0 0 24px;letter-spacing:.025em}
.hero-content .subtitle,.legacy-hero-content p{font-size:clamp(1.1rem,2.3vw,1.75rem);line-height:1.5;margin:0 0 28px}
.hero-cta,.hero-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.cta-button,.btn,.map-button{max-width:100%;white-space:normal;text-align:center;line-height:1.4;min-height:44px;padding:12px 20px;overflow-wrap:anywhere}
.btn{flex-shrink:1}
.slideshow-toggle{position:absolute;z-index:5;right:var(--gutter);bottom:18px;min-height:44px;border:1px solid #ffffff70;border-radius:8px;background:#080a09dd;color:#fff;padding:9px 14px;font-size:.85rem}
.section,.rooms-section,.services-section,.location-section,.home-feature-section{padding-block:clamp(56px,7vw,100px)}
.section-header{margin-bottom:clamp(28px,4vw,56px)}
.section-title{font-size:clamp(1.8rem,4.5vw,3.75rem);line-height:1.2}
.rooms-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:40px;padding:0}
.main-room-image{height:auto;aspect-ratio:4/3}
.room-image{display:block}
.room-content{padding:26px 22px}
.room-title{font-size:clamp(1.3rem,2vw,1.8rem)}
.room-features{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.feature-tag{padding:8px;letter-spacing:.02em}
.room-thumbnails{flex-wrap:wrap}
.room-thumbnail{min-height:44px}
.room-booking-link{display:flex;margin-top:20px}
.services-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:40px}
.service-item{padding:28px 22px}
.service-title{font-size:1.05rem;font-weight:600}
.legacy-feature-grid,.feature-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.feature-image{min-width:0;overflow:hidden;border-radius:8px}
.feature-image img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.legacy-feature-card{display:grid;align-items:end;min-height:360px}
.legacy-feature-copy{position:relative;padding:24px}
.location-content{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:32px;margin-top:40px}
.map-actions{gap:12px}
.map-button{min-width:0}
.legacy-grid{gap:24px}
.city-main{height:auto;aspect-ratio:16/9}
.city-thumbs{gap:10px}
.city-thumb{flex:none;min-height:44px}
.city-thumb-button{padding:0;border:0;background:none;border-radius:4px;cursor:pointer}
.city-thumb-button:focus-visible{outline:2px solid var(--gold)}
.footer-shell{grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);gap:40px}
.footer-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.footer-columns a,.footer-columns p{overflow-wrap:anywhere}
.footer-brand img{flex-shrink:0}
.footer-social a{width:44px;height:44px}
.footer-bottom{padding-inline:var(--gutter);color:#b5bbb4}
.booking-layout,.content-page{padding:calc(var(--header) + 40px) 0 64px}
.booking-layout>.page-intro,.booking-layout>#message{width:min(820px,calc(100% - var(--gutter)*2));margin-inline:auto}
.page-intro h1{font-size:clamp(2rem,4vw,3.75rem);line-height:1.15}
.booking-shell,.account-layout{width:min(1180px,calc(100% - var(--gutter)*2));margin-inline:auto}
.booking-card.room-card:hover{transform:none}
.booking-card{padding:clamp(16px,3vw,30px)}
.room-picker{grid-template-columns:repeat(3,minmax(0,1fr))}
.room-choice{min-width:0}
.room-choice small,.room-choice span:not(.room-choice-title),.helper,.account-layout .helper{color:#b5bdb3}
.calendar-topline,.booking-card-head{flex-wrap:wrap}
.calendar-nav{max-width:100%;min-width:0;flex-shrink:0}
.calendar-nav strong{min-width:0;padding:0 4px;flex:1}
.calendar-nav-btn{width:44px;height:44px;flex-shrink:0}
.calendar-days,.calendar-weekdays{grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-day{min-width:0;min-height:72px;padding:8px;will-change:auto}
.calendar-day small{font-size:.58rem;letter-spacing:0;max-width:100%;overflow:hidden}
.calendar-day.past{color:#838d82}
.calendar-weekdays span{color:#aeb7ac}
.calendar-day.checkout-allowed{cursor:pointer;box-shadow:inset 0 0 0 1px var(--gold);color:#efdfb0}
.date-selection{grid-template-columns:repeat(4,minmax(0,1fr))}
.booking-summary-box{grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr)}
.date-selection>div,.booking-summary-box>div{min-width:0}
.date-selection span,.booking-summary-box span{color:#afb7ac}
.booking-card .account-filled[readonly]{background:#182018;color:#e4e8df;border-color:#394538;box-shadow:none}
.grid2,.account-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.stack-form label{min-width:0}
.form-row-actions{display:flex;flex-wrap:wrap;gap:10px}
.account-layout .auth-card{width:100%;min-width:0}
#auth>.auth-card{max-width:720px}
.booking-admin-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.admin-panel .booking-card{padding:clamp(16px,2vw,28px)}
.table-wrap{width:100%;overflow:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.data-table{min-width:900px}
.admin-tabs{position:static;display:flex;flex-wrap:wrap}
.admin-tab{flex:1 1 150px;min-width:0;min-height:44px;white-space:normal}
.admin-panel[hidden]{display:none!important}
.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.booking-status{white-space:normal;line-height:1.4;margin:4px 0;max-width:100%}
.reservation-card,.welcome-card,.admin-toolbar,.admin-pagination{flex-wrap:wrap}
.calendar-check-source{flex-wrap:wrap}
.log-details{max-width:440px;white-space:pre-wrap;overflow-wrap:anywhere}
.notice{overflow-wrap:anywhere}
.reveal,.scroll-reveal{opacity:1;transform:none}
@media(min-width:901px){.nav-panel{position:static;opacity:1;visibility:visible;pointer-events:auto;transform:none;background:none;border:0;box-shadow:none;padding:0}.mobile-menu-btn{display:none}}
@media(max-width:1050px){.rooms-grid,.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rooms-grid .room-card:last-child{grid-column:1/-1;max-width:720px;width:100%;justify-self:center}.footer-shell,.booking-admin-grid{grid-template-columns:1fr}.location-content{grid-template-columns:1fr}}
@media(max-width:900px){:root{--header:72px}.mobile-menu-btn{display:flex;flex-direction:column;justify-content:center;align-items:center}.nav-panel{display:none!important;position:absolute;left:var(--gutter);right:var(--gutter);top:100%;padding:12px;background:#0f1210;border:1px solid #ffffff26;border-radius:0 0 14px 14px;max-height:calc(100dvh - var(--header) - 12px);overflow-y:auto;box-shadow:0 18px 35px #0006}.nav-panel.open{display:flex!important;flex-direction:column;align-items:stretch;opacity:1;visibility:visible;pointer-events:auto;transform:none}.nav-panel>a,.nav-panel .nav-auth{width:100%!important;justify-content:flex-start!important;flex-shrink:0}.room-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-card-head{flex-direction:column}.calendar-nav{width:100%}.account-grid{grid-template-columns:1fr}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.rooms-grid,.services-grid,.legacy-feature-grid,.feature-gallery,.legacy-grid,.grid2{grid-template-columns:1fr}.rooms-grid .room-card:last-child{grid-column:auto}.room-picker{grid-template-columns:1fr}.room-choice{min-height:86px}.hero,.hero-fullscreen{min-height:100svh}.legacy-hero{min-height:70svh}.footer-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-columns section:first-child{grid-column:1/-1}.footer-brand{min-width:0}.app-footer .footer-brand img{width:64px;height:64px}.app-footer .footer-brand h2{font-size:1.3rem}.calendar-day{min-height:54px;padding:5px 2px;align-items:center}.calendar-day small{font-size:.46rem}.calendar-weekdays span{padding:10px 0;font-size:.67rem}.date-selection{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-summary-box{grid-template-columns:1fr}.form-row-actions .btn{min-width:0;width:auto;flex:1 1 160px}.calendar-topline{flex-direction:column;align-items:stretch!important}.admin-tab{flex-basis:120px;font-size:.85rem}.legacy-feature-copy p{font-size:.95rem}.booking-calendar.is-loading:after{padding:16px;text-align:center}.booking-layout,.content-page{padding-top:calc(var(--header) + 30px)}}
@media(max-width:360px){.brand-copy strong{font-size:.85rem}.brand-logo{width:44px;height:44px}.brand{gap:8px}.room-features{grid-template-columns:1fr}.calendar-day small{font-size:.41rem}.footer-columns{grid-template-columns:1fr}.footer-columns section:first-child{grid-column:auto}}
@media(hover:none){.room-card:hover,.service-item:hover,.info-card:hover{transform:none}.room-card:hover .room-image{transform:none;filter:brightness(.85)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero-content h1,.hero-content .subtitle,.hero-cta{opacity:1;transform:none}}
