/* Shared bilingual navigation + accessibility layer */
html{--a11y-font-scale:1;font-size:calc(100% * var(--a11y-font-scale))!important}
.site-lang-link{display:inline-flex;align-items:center;justify-content:center;min-width:2.8rem;height:2.35rem;padding:0 .7rem;border:1px solid var(--line);border-radius:999px;font-family:var(--sans,system-ui,sans-serif);font-size:.82rem;font-weight:700;text-decoration:none!important;color:var(--ink)!important;background:var(--panel);line-height:1}
.site-lang-link:hover,.site-lang-link:focus-visible{border-color:var(--cobalt,var(--blue,#2447a8));outline:none}
.site-mobile-toggle{display:none;align-items:center;justify-content:center;gap:.5rem;height:2.5rem;padding:0 .85rem;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);font:700 .88rem var(--sans,system-ui,sans-serif);cursor:pointer}
.site-mobile-toggle svg{width:1.2rem;height:1.2rem;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round}
.site-mobile-backdrop{position:fixed;inset:0;z-index:998;background:rgba(4,8,14,.58);opacity:0;pointer-events:none;transition:opacity .2s ease;backdrop-filter:blur(2px)}
.site-mobile-drawer{position:fixed;z-index:999;top:0;right:0;width:min(88vw,22rem);height:100dvh;background:var(--panel);color:var(--ink);border-left:1px solid var(--line);box-shadow:-24px 0 60px rgba(0,0,0,.28);transform:translateX(102%);transition:transform .22s ease;display:flex;flex-direction:column;overflow:auto;overscroll-behavior:contain;pointer-events:none;visibility:hidden}
.site-mobile-drawer-head{display:flex;align-items:center;gap:.75rem;padding:1rem 1rem .85rem;border-bottom:1px solid var(--line)}
.site-mobile-drawer-title{font:400 1.2rem var(--serif,Georgia,serif);margin-right:auto}
.site-mobile-close{width:2.6rem;height:2.6rem;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font-size:1.4rem;line-height:1;cursor:pointer}
.site-mobile-nav{display:grid;padding:.7rem 1rem 1rem}
.site-mobile-nav a{display:flex;align-items:center;min-height:3.15rem;padding:.2rem .15rem;border-bottom:1px solid var(--line);font:600 1rem var(--sans,system-ui,sans-serif);color:var(--ink)!important;text-decoration:none!important}
.site-mobile-nav a[aria-current="page"]{color:var(--cobalt,var(--blue,#2447a8))!important}
.site-mobile-tools{margin-top:auto;padding:1rem;border-top:1px solid var(--line)}
.site-mobile-tools h2{font:600 .76rem var(--sans,system-ui,sans-serif);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 .65rem}
.site-mobile-tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
.site-mobile-tools button,.site-mobile-tools a{min-height:2.8rem;border:1px solid var(--line);border-radius:10px;background:var(--wall);color:var(--ink);font:600 .86rem var(--sans,system-ui,sans-serif);padding:.55rem .65rem;text-decoration:none;display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer}
.site-mobile-tools .wide{grid-column:1/-1}
html.site-menu-open,html.site-menu-open body{overflow:hidden}
html.site-menu-open .site-mobile-backdrop{opacity:1;pointer-events:auto}
html.site-menu-open .site-mobile-drawer{transform:translateX(0);pointer-events:auto;visibility:visible}

/* Site-wide accessibility controls */
.site-a11y-details{position:relative;display:inline-block;font-family:var(--sans,system-ui,sans-serif)}
.site-a11y-details>summary{list-style:none;display:inline-flex;align-items:center;justify-content:center;min-height:2.35rem;padding:.35rem .72rem;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);font:700 .82rem var(--sans,system-ui,sans-serif);cursor:pointer}
.site-a11y-details>summary::-webkit-details-marker{display:none}
.site-a11y-details[open]>summary{border-color:var(--cobalt,var(--blue,#2447a8))}
.site-a11y-panel{position:absolute;right:0;top:calc(100% + .55rem);z-index:1100;width:min(22rem,calc(100vw - 2rem));padding:.85rem;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 48px rgba(0,0,0,.25)}
.site-a11y-panel p{margin:0 0 .65rem;color:var(--muted);font-size:.82rem}
.site-a11y-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.site-a11y-actions button{min-height:44px;border:1px solid var(--line);border-radius:9px;background:var(--wall);color:var(--ink);padding:.58rem .65rem;text-align:left;font:600 .84rem var(--sans,system-ui,sans-serif);cursor:pointer}
.site-a11y-actions button.wide{grid-column:1/-1}
.site-a11y-actions button:hover,.site-a11y-actions button:focus-visible{border-color:var(--cobalt,var(--blue,#2447a8))}
.site-a11y-status{position:fixed!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.site-skip-link{position:fixed;left:1rem;top:1rem;z-index:2000;transform:translateY(-180%);padding:.7rem 1rem;background:#000;color:#fff!important;border:2px solid #fff;border-radius:8px;font:700 .9rem system-ui,sans-serif;text-decoration:none!important}
.site-skip-link:focus{transform:none}

/* Theme override must beat each room's body[data-era] palette. */
html[data-theme="light"] body,
html[data-theme="light"] body[data-era]{--wall:#f4f5f6!important;--panel:#ffffff!important;--ink:#111820!important;--muted:#46515c!important;--line:#aeb8c2!important;--cobalt:#164f9c!important;--blue:#164f9c!important;--cobalt-soft:#e1ebf7!important;--soft:#e9eef4!important;--ochre:#825c13!important;--locked:#d4d9df!important;color:var(--ink)!important}
html[data-theme="dark"] body,
html[data-theme="dark"] body[data-era]{--wall:#101419!important;--panel:#1b222b!important;--ink:#f3f5f7!important;--muted:#c3cad1!important;--line:#66717d!important;--cobalt:#9fbaff!important;--blue:#9fbaff!important;--cobalt-soft:#273653!important;--soft:#27313d!important;--ochre:#f0c56a!important;--locked:#36414d!important;color:var(--ink)!important}

/* High contrast is intentionally strong and obvious. */
html[data-contrast="high"],
html[data-contrast="high"] body,
html[data-contrast="high"] body[data-era]{--wall:#000!important;--panel:#000!important;--ink:#fff!important;--muted:#fff!important;--line:#fff!important;--cobalt:#00e5ff!important;--blue:#00e5ff!important;--cobalt-soft:#001a1d!important;--soft:#111!important;--ochre:#ffe600!important;--locked:#222!important;--okc:#00ff85!important;--noc:#ff7a7a!important;color:#fff!important}
html[data-contrast="high"] body{background:#000!important;color:#fff!important}
html[data-contrast="high"] a{color:#00e5ff!important;text-decoration:underline!important;text-decoration-thickness:2px!important}
html[data-contrast="high"] button,
html[data-contrast="high"] input,
html[data-contrast="high"] select,
html[data-contrast="high"] summary{border-color:#fff!important}
html[data-contrast="high"] img{outline:1px solid #fff}

html[data-motion="reduce"] *,html[data-motion="reduce"] *::before,html[data-motion="reduce"] *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.site-mobile-backdrop,.site-mobile-drawer{transition:none!important}}

/* Visible keyboard focus on every page. */
:focus-visible{outline:3px solid #ffbf47!important;outline-offset:3px!important}

@media(max-width:54rem){
  .site-mobile-toggle{display:inline-flex}
  .site-desktop-lang{display:none!important}
  .site-a11y-details.site-desktop-a11y{display:none!important}
  .bar{align-items:center!important;gap:.6rem!important;padding:.75rem max(1rem,env(safe-area-inset-left))!important}
  .bar>a:first-child{font-size:1.05rem;white-space:nowrap;margin-right:auto}
  .bar-actions{display:flex;align-items:center;gap:.45rem;margin-left:0!important}
  .bar-actions>#sizeBtn,.bar-actions>#accessMenu,.bar-actions>.museum-menu{display:none!important}
  .bar-actions .site-mobile-lang{display:inline-flex!important}
}
@media(min-width:54.001rem){.site-mobile-lang{display:none!important}}
@media(max-width:700px){
  .top,.exhibit-top{align-items:center!important;gap:.55rem!important}
  .top .brand,.exhibit-top .museum-brand{margin-right:auto;white-space:nowrap}
  .menu,.exhibit-menu,.mobile,.exhibit-mobile{display:none!important}
}

/* v7.3 interaction hardening */
.site-mobile-tools button,.site-a11y-actions button,.access-actions button,#sizeBtn,#themeBtn,#contrastBtn,#motionBtn,#accessReset{pointer-events:auto!important;touch-action:manipulation;position:relative;z-index:1}
.site-a11y-panel,.access-panel{pointer-events:auto!important}
