/* V2: original branding, fully local assets and accessible navigation. */
.brand-logo { display:block; width:190px; height:auto; object-fit:contain; }
.brand-art { display:inline-block; }
.site-header .brand-logo { width:166px; }
.mobile-menu-top .brand-logo,.footer-brand .brand-logo { width:220px; }
.footer-brand .brand-art { margin-bottom:1.4rem; }
.site-header .header-inner { min-height:90px; }
.site-header.is-scrolled .header-inner { min-height:80px; }
.nav-primary .nav-link { font-size:.65rem; }
.nav-primary { justify-content:center; }
.room-detail-page .page-hero .hero-title { font-size:clamp(2.7rem,5.5vw,6rem); max-width:1100px; }
.room-card h3 { font-size:clamp(1.35rem,1.8vw,1.85rem); }
.room-specs strong { text-align:right; }
.room-specs span { flex-shrink:0; }
.reveal { opacity:1; transform:none; }
.mobile-menu { overflow-y:auto; overscroll-behavior:contain; }
.mobile-nav a { font-size:clamp(1.65rem,5.3vh,2.8rem); line-height:1.15; padding:.35rem 0; }
.mobile-menu-top { margin-bottom:1.2rem; }
.mobile-menu-foot { margin-top:1rem; }
.hidden-field { display:none !important; }
.gallery-filters { display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:2.5rem; }
.gallery-filter { font-family:var(--sans); color:var(--ink); background:transparent; border:1px solid var(--stone); padding:.65rem 1.15rem; border-radius:0; font-size:.8rem; }
.gallery-filter.is-active,.gallery-filter:hover { color:var(--chalk); background:var(--ink); border-color:var(--ink); }
.archive-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.archive-gallery .g-item { grid-column:auto; grid-row:auto; min-width:0; }
.archive-gallery .g-frame { display:block; width:100%; aspect-ratio:4/3; }
.archive-gallery .g-frame img { width:100%; height:100%; object-fit:cover; }
.archive-gallery .g-item[hidden] { display:none !important; }
.archive-gallery .g-name { font-size:1.1rem; }
.menu-gallery .g-frame { aspect-ratio:3/4; background:white; }
.menu-gallery .g-frame img { object-fit:contain; }
.plain-page { min-height:75vh; padding-top:160px; max-width:1000px; margin:auto; }
.plain-page h1 { font-size:clamp(2.6rem,6vw,5rem); margin-bottom:2rem; }
.plain-page p { max-width:70ch; }
.plain-page p a:not(.btn-line) { text-decoration:underline; text-underline-offset:.2em; }
.form-fine a { text-decoration:underline; text-underline-offset:.2em; }
.form-error { color:#8c2929; margin-top:1rem; }
.lightbox .lb-figure img { width:auto; height:auto; }
a:focus-visible,button:focus-visible { outline:2px solid #b59052; outline-offset:5px; }
@media(max-width:1100px) {
 .site-header .header-inner { grid-template-columns:1fr auto; min-height:78px; }
 .site-header .brand-logo { width:145px; }
 .site-header.is-scrolled .header-inner { min-height:72px; }
}
@media(max-width:767px) {
 .archive-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
 .archive-gallery .g-name { font-size:.95rem; }
 .archive-gallery .g-meta { padding-top:.65rem; }
 .brand-logo { max-width:100%; }
 .mobile-menu-top .brand-logo { width:185px; }
 .hero.page-hero { min-height:620px; }
 .room-detail-page .page-hero .hero-title { font-size:clamp(2.2rem,8.2vw,3.5rem)!important; }
 .floating-book { padding-bottom:calc(.8rem + env(safe-area-inset-bottom)); }
 body { padding-bottom:calc(45px + env(safe-area-inset-bottom)); }
 .hero-cta .btn-fill,.hero-cta .btn-line { min-height:48px; }
 .plain-page { padding-top:125px; }
 .lb-nav { top:auto; bottom:1rem; }
 .lb-figure { max-height:80vh; }
 .lb-figure img { max-height:60vh; }
}
@media(max-width:420px) {
 .archive-gallery { grid-template-columns:1fr; gap:1.3rem; }
 .room-specs>div { flex-direction:column; gap:.3rem; }
 .room-specs strong { text-align:left; }
}
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}
