/* Shared geometry honors author choices; theme tokens preserve identity. */
body.visit-configured { --visit-strip-height:0px; --visit-dock-gap:20px; }
body.visit-configured #titlebox { display:flex; }
body.visit-configured:not(.ui-min) .visit-copy { display:block; }
body.visit-configured .visit-arrival { display:none; }
body.visit-configured .visit-copy #title { font-family:var(--visit-display); }
body.visit-configured #titlebox .visit-logo { max-width:120px; height:48px; object-fit:contain; border-radius:6px; }
body.visit-configured #topbar { padding-right:160px; }
body.visit-configured .visit-opener { position:fixed; right:max(20px,env(safe-area-inset-right)); top:max(18px,env(safe-area-inset-top)); z-index:16; }
body.visit-configured[data-explore-position="bottom-left"] .visit-opener { top:auto; right:auto; left:max(20px,env(safe-area-inset-left)); bottom:calc(20px + var(--visit-strip-height)); }
body.visit-configured #menu { inset:var(--explore-menu-top,80px) 20px auto auto; width:min(440px,calc(100vw - 40px)); height:auto; max-height:calc(100dvh - var(--explore-menu-top,80px) - 20px); padding:12px 20px 20px; overflow:hidden; transform:translateY(-8px); border:0; border-radius:var(--visit-radius); }
body.visit-configured #menu.open { transform:none; }
body.visit-configured[data-explore-position="bottom-left"] #menu { inset:auto auto var(--explore-menu-bottom,88px) 20px; max-height:calc(100dvh - var(--explore-menu-bottom,88px) - 20px); transform:translateY(8px); }
body.visit-configured[data-explore-position="bottom-left"] #menu.open { transform:none; }
body.visit-configured #menu header { position:static; }
body.visit-configured #menulist { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:max-content; align-content:start; overflow:auto; flex:1; min-height:0; padding:4px; gap:14px; }
body.visit-configured #menulist.visit-no-rooms { display:none; }
body.visit-configured .menu-item { aspect-ratio:4/3; min-height:0; border-radius:min(8px,var(--visit-radius)); overflow:hidden; padding:0; }
body.visit-configured .menu-item img { position:static; display:block; width:100%; height:100%; object-fit:cover; border-radius:inherit; }
body.visit-configured .menu-item span { position:absolute; inset:auto 0 0; margin:0; padding:36px 10px 10px; background:linear-gradient(transparent,#000d); color:#fff; font:13px/1.35 var(--visit-body); white-space:normal; }
body.visit-configured[data-layout="editorial"] .menu-item { aspect-ratio:1; }
body.visit-configured[data-layout="presence"] .menu-item { aspect-ratio:3/4; }
body.visit-configured #menu-actions { border:0; margin:0; padding:0; overflow:auto; flex:1; min-height:0; }
body.visit-configured .visit-dock { left:20px; bottom:calc(20px + var(--visit-strip-height)); width:max-content; max-width:calc(100vw - 40px); transform:none; flex-wrap:nowrap; pointer-events:none; }
body.visit-configured .visit-dock :is(button,a) { pointer-events:auto; }
body.visit-configured .visit-copy { max-width:min(400px,55vw); }
body.visit-configured[data-explore-position="bottom-left"] .visit-dock { left:160px; max-width:calc(100vw - 180px); }
body.visit-configured .visit-dock #nav { position:static; transform:none; display:flex; gap:0; padding:0; margin:0; width:auto; background:none; box-shadow:none; color:inherit; }
body.visit-configured .visit-dock #nav .btn { display:grid; place-items:center; width:44px; height:44px; min-width:44px; padding:0; border:0; background:none; color:inherit; }
body.visit-configured .visit-dock #nav svg { stroke:currentColor; }
body.visit-configured .visit-dock #nav .playing svg polygon { fill:currentColor; }
body.visit-configured .visit-dock #nav :is(#counter,#counter-fig,.nav-label) { display:none; }
body.visit-configured.visit-show-counter .visit-dock #nav #counter { display:block; font:12px var(--visit-body); color:inherit; }
body.visit-configured.appearance-hide-sceneNavigation .visit-dock #nav .scene-navigation,
body.visit-configured.appearance-hide-guidedTour .visit-dock #nav .guided-tour { display:none; }
.visit-thumbnail-strip { position:fixed; z-index:14; left:60px; right:60px; bottom:0; padding:0; display:flex; flex-direction:column; align-items:center; gap:0; }
.visit-thumbnail-list { display:flex; gap:10px; max-width:100%; box-sizing:border-box; overflow-x:auto; padding:12px; background:rgba(18,22,20,.3); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border-radius:min(18px,var(--visit-radius)); box-shadow:0 8px 28px #0002; overscroll-behavior:contain; scrollbar-width:none; scroll-snap-type:x proximity; scroll-padding:12px; }
.visit-thumbnail-list::-webkit-scrollbar { display:none; }
.visit-thumbnail { position:relative; flex:0 0 136px; width:136px; scroll-snap-align:start; aspect-ratio:4/3; border:0; padding:0; overflow:hidden; border-radius:min(8px,var(--visit-radius)); cursor:pointer; background:var(--visit-ink); }
.visit-thumbnail img { display:block; width:100%; height:100%; object-fit:cover; }
.visit-thumbnail span { position:absolute; inset:auto 0 0; padding:24px 7px 7px; background:linear-gradient(transparent,#000d); color:white; font:12px/1.3 var(--visit-body); text-align:left; }
.visit-thumbnail[aria-current="true"] { outline:2px solid #fff; outline-offset:3px; }
[data-layout="editorial"] .visit-thumbnail { aspect-ratio:1; }
[data-layout="presence"] .visit-thumbnail { aspect-ratio:3/4; }
.visit-thumbnail-toggle { position:relative; order:2; display:grid; place-items:end center; width:44px; height:calc(44px + env(safe-area-inset-bottom)); padding:0 0 calc(5px + env(safe-area-inset-bottom)); border:0; border-radius:0; background:none; color:#ffffffcc; cursor:pointer; }
.visit-thumbnail-toggle::before { content:""; position:absolute; inset:16px 0 0; z-index:-1; border-radius:var(--visit-radius) var(--visit-radius) 0 0; background:#ffffff18; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); transition:background .18s ease; }
.visit-thumbnail-strip:not(:has(.visit-thumbnail-toggle)) { padding-bottom:max(12px,env(safe-area-inset-bottom)); }
.visit-thumbnail-toggle:hover::before { background:#ffffff28; }
.visit-thumbnail-toggle svg { transition:transform .2s ease; }
.visit-thumbnail-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
@media(prefers-reduced-motion:reduce) { .visit-thumbnail-toggle,.visit-thumbnail-toggle svg { transition:none; } }
body.visit-configured #floorplan.visit-plan-dock { bottom:max(var(--visit-plan-bottom,42px),calc(12px + env(safe-area-inset-bottom))); }
body.visit-configured #hint { bottom:calc(var(--visit-dock-gap) + var(--visit-strip-height) + var(--visit-dock-height,80px) + 24px); }
body.ui-none .visit-thumbnail-strip,body.ui-none .visit-opener { display:none; }
@media(max-width:600px) {
  body.visit-configured #topbar { padding-right:150px; }
  body.visit-configured #titlebox .visit-logo { max-width:72px; height:40px; }
  body.visit-configured .visit-dock { left:20px; right:20px; max-width:none; width:auto; justify-content:center; flex-wrap:wrap; gap:8px; }
  body.visit-configured .visit-copy { flex-basis:100%; max-width:100%; }
  body.visit-configured[data-explore-position="bottom-left"] { --visit-dock-gap:82px; }
  body.visit-configured[data-explore-position="bottom-left"] .visit-dock { left:20px; max-width:none; bottom:calc(var(--visit-dock-gap) + var(--visit-strip-height)); }
  .visit-thumbnail-strip { left:44px; right:44px; }
  .visit-thumbnail { flex-basis:104px; width:104px; }
  .visit-thumbnail-toggle { min-height:44px; }
}

/* Navigation follows the open strip; geometry and corners follow the theme. */
body.visit-configured #menuBtn.visit-compact-menu { display:grid; place-items:center; width:44px; height:44px; min-width:44px; min-height:44px; padding:0; border-radius:var(--visit-radius); }
body.visit-configured #menu-actions .visit-menu-play { border-radius:var(--visit-radius); }
body.visit-configured #menu-actions .visit-menu-play .nav-label { display:none; }
body.visit-configured #menu-actions .visit-menu-play.playing { background:color-mix(in srgb,var(--visit-ink) 8%,transparent); }
body.visit-configured #menu-actions .visit-menu-play.playing svg polygon { fill:currentColor; }
body.visit-configured .visit-dock #nav,body.visit-configured .visit-dock #nav .btn { border-radius:var(--visit-radius); }
.visit-thumbnail-strip { left:20px; right:20px; }
.visit-thumbnail-list { width:calc(100% - 88px); scroll-snap-type:x mandatory; }
.visit-thumbnail { flex-basis:var(--thumbnail-width,136px); width:var(--thumbnail-width,136px); }
body.visit-configured .visit-thumbnail-strip #nav { position:static; display:contents; color:white; }
body.visit-configured .visit-thumbnail-strip #nav .btn { position:absolute; display:grid; place-items:center; width:44px; height:44px; min-width:44px; border:0; padding:0; color:#ffffffcc; background:#ffffff18; border-radius:var(--visit-radius); backdrop-filter:blur(12px); }
body.visit-configured .visit-thumbnail-strip #prevBtn { left:0; top:calc((100% - 44px) / 2 - 22px); }
body.visit-configured .visit-thumbnail-strip #nextBtn { right:0; top:calc((100% - 44px) / 2 - 22px); }
body.visit-configured .visit-thumbnail-strip #nav :is(#counter,#counter-fig,.nav-label) { display:none; }
body.visit-configured.visit-show-counter .visit-thumbnail-strip #nav #counter { display:block; position:absolute; bottom:14px; left:calc(50% + 48px); font:12px var(--visit-body); }
body.dollhouse-open .visit-opener,body.dollhouse-open .visit-thumbnail-strip { display:none; }
body.visit-configured.appearance-hide-sceneNavigation .visit-thumbnail-strip .scene-navigation,
body.visit-configured.appearance-hide-guidedTour .visit-thumbnail-strip .guided-tour { display:none !important; }
.visit-thumbnail-strip:not(:has(.visit-thumbnail-toggle)).is-open { padding-bottom:44px; }

/* Bare navigation arrows retain a full touch target in every theme. */
body.visit-configured .visit-thumbnail-strip #nav .scene-navigation,
body.visit-configured .visit-thumbnail-strip #nav .scene-navigation:hover {
  background:transparent;
  border:0;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
