/* A complete room on desktop; three native scroll-snap views on mobile. */
[data-world="service"] .room { background:none!important; height:auto!important; min-height:0!important; overflow:visible!important; margin-top:72px; animation:none; }
[data-world="service"] .roomhead { position:relative; inset:auto; display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:18px; row-gap:6px; align-items:center; padding:20px 24px!important; }
[data-world="service"] .roomhead::before { content:none; }
[data-world="service"] .roomhead .fnum { grid-row:1 / 3; margin:0; white-space:nowrap; letter-spacing:.12em; }
[data-world="service"] .roomhead h1 { margin:0; max-width:none!important; font-size:clamp(24px,2.2vw,32px)!important; line-height:1.2; text-shadow:none!important; }
[data-world="service"] .roomhead .hint { grid-column:2; margin:0; padding:0; border:0; background:none; backdrop-filter:none; font-size:14px; line-height:1.45; letter-spacing:0; text-transform:none; opacity:1; }
.panorama-viewport { position:relative; width:100%; overflow:hidden; }
.panorama-track { position:relative; width:100%; aspect-ratio:1672/941; background:linear-gradient(180deg,#06091433,transparent 60%,#06091466),var(--room-image) center/100% 100% no-repeat; }
.panorama-track > :is(.ceiling,.lamp,.window,.floorplane,.bench) { visibility:hidden; }
.panorama-controls { display:none; }
.panorama-stop { position:absolute; top:0; height:1px; width:33.333333%; pointer-events:none; scroll-snap-align:start; }
.panorama-stop:nth-child(1) { left:0; }.panorama-stop:nth-child(2) { left:33.333333%; }.panorama-stop:nth-child(3) { left:66.666667%; }
.panorama-track .spot { z-index:5; left:var(--spot-x)!important; top:var(--spot-y)!important; }
.panorama-track .spot::after { max-width:190px; }
@media(max-width:700px) {
  [data-world="service"] #top-nav .nav-inner { gap:12px; }
  [data-world="service"] #top-nav #universe-title { font-size:10px!important; letter-spacing:.03em; max-width:56%; }
  [data-world="service"] #top-nav .back { font-size:11px; letter-spacing:0; line-height:1.5; }
  [data-world="service"] .roomhead { grid-template-columns:minmax(0,1fr); gap:8px; padding:16px 20px!important; }
  [data-world="service"] .roomhead .fnum { grid-row:auto; justify-self:start; padding:4px 8px; font-size:10px; }
  [data-world="service"] .roomhead h1 { font-size:24px!important; }
  [data-world="service"] .roomhead .hint { grid-column:1; font-size:13px; }
  .panorama-controls { position:sticky; top:72px; z-index:15; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 20px; background:#0a1023f5; border-block:1px solid #c4b5fd33; }
  .panorama-controls button { width:48px; height:44px; border:1px solid #c4b5fd77; background:#1f2340; color:#f4edff; border-radius:8px; font-size:25px; cursor:pointer; }
  .panorama-controls button:disabled { opacity:.28; cursor:default; }
  .panorama-controls button:focus-visible { outline:2px solid #c4b5fd; outline-offset:3px; }
  .panorama-status { text-align:center; font-size:14px; color:#e5dcff; }
  .panorama-status small { display:block; color:#b8b5ce; font-size:12px; margin-top:3px; }
  .panorama-viewport { overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain; }
  .panorama-viewport::-webkit-scrollbar { display:none; }
  .panorama-track { width:300%; }
  .panorama-track .spot::after { max-width:155px; font-size:12px; }
  [data-world="service"] .panelwrap { padding-top:32px; }
  [data-world="service"] .service-dialog { max-height:calc(100dvh - 48px); margin:auto; }
}
@media(prefers-reduced-motion:reduce) { .panorama-viewport { scroll-behavior:auto; } }
