/* ==========================================================================
   Almhaus Grundriss-Explorer — Styles
   Alle Klassen sind mit "ag-" gepraefixt und die Farbtokens sind auf
   .ag-explorer gescoped, damit nichts mit dem restlichen Website-CSS kollidiert.

   Theme:  <div class="ag-explorer">                  -> folgt dem System
           <div class="ag-explorer" data-ag-theme="light">
           <div class="ag-explorer" data-ag-theme="dark">
   ========================================================================== */

.ag-explorer{
  --ag-paper:#FAF7F1; --ag-ground:#F1ECE2; --ag-card:#FFFFFF;
  --ag-ink:#15283F; --ag-ink-soft:#4A5B70; --ag-mute:#7C8794;
  --ag-gold:#B9924A; --ag-gold-soft:rgba(185,146,74,.18); --ag-line:#DFD8CB;
  --ag-shadow:0 1px 2px rgba(21,40,63,.06), 0 8px 24px rgba(21,40,63,.07);

  color:var(--ag-ink);
  font-family:var(--ag-font-body, Inter, system-ui, -apple-system, "Segoe UI", sans-serif);
  font-size:15px; line-height:1.6;
}

@media (prefers-color-scheme: dark){
  .ag-explorer:not([data-ag-theme="light"]){
    --ag-paper:#12181F; --ag-ground:#0D1218; --ag-card:#1A222B;
    --ag-ink:#E9E4D9; --ag-ink-soft:#B6BEC9; --ag-mute:#8A94A0;
    --ag-gold:#D3AC64; --ag-gold-soft:rgba(211,172,100,.22); --ag-line:#2A3441;
    --ag-shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px rgba(0,0,0,.35);
  }
}
.ag-explorer[data-ag-theme="dark"]{
  --ag-paper:#12181F; --ag-ground:#0D1218; --ag-card:#1A222B;
  --ag-ink:#E9E4D9; --ag-ink-soft:#B6BEC9; --ag-mute:#8A94A0;
  --ag-gold:#D3AC64; --ag-gold-soft:rgba(211,172,100,.22); --ag-line:#2A3441;
  --ag-shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px rgba(0,0,0,.35);
}

.ag-explorer *,
.ag-explorer *::before,
.ag-explorer *::after{ box-sizing:border-box }

/* ---------- Geschoss-Umschalter ---------- */
.ag-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 18px;
  background:var(--ag-card);border:1px solid var(--ag-line);border-radius:11px;
  padding:5px;width:fit-content;box-shadow:var(--ag-shadow)}
.ag-tab{appearance:none;border:0;background:transparent;color:var(--ag-ink-soft);cursor:pointer;
  font:inherit;font-weight:500;font-size:14px;padding:8px 15px;border-radius:8px;
  transition:background .15s,color .15s}
.ag-tab:hover{color:var(--ag-ink)}
.ag-tab[aria-selected="true"]{background:var(--ag-ink);color:var(--ag-paper)}
.ag-tab:focus-visible{outline:2px solid var(--ag-gold);outline-offset:2px}

/* ---------- Layout ---------- */
.ag-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);
  gap:22px;align-items:start}
@media(max-width:900px){ .ag-grid{grid-template-columns:1fr} }

/* ---------- Plan + Hotspots ---------- */
.ag-plan{position:relative;background:var(--ag-card);border:1px solid var(--ag-line);
  border-radius:14px;overflow:hidden;box-shadow:var(--ag-shadow);min-height:220px}
.ag-plan svg{width:100%;height:auto;display:block}
.ag-floor{display:none}
.ag-floor.ag-on{display:block}
.ag-loading{padding:60px 20px;text-align:center;color:var(--ag-mute);font-size:13px}

.hs{fill:transparent;cursor:pointer;transition:fill .16s ease}
.hs.ag-on{fill:var(--ag-gold-soft)}

/* ---------- Kamerapunkte ---------- */
.ag-cam{position:absolute;transform:translate(-50%,-50%);width:0;height:0}
.ag-cam button{position:absolute;left:-13px;top:-13px;width:26px;height:26px;border-radius:50%;
  border:2px solid var(--ag-card);background:#15283F;color:#fff;
  font:600 12px/1 Inter,system-ui,sans-serif;cursor:pointer;display:grid;place-items:center;
  padding:0;transition:transform .16s,background .16s;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.ag-cam button:hover,.ag-cam button.ag-on{transform:scale(1.18);background:var(--ag-gold)}
.ag-cam button:focus-visible{outline:2px solid var(--ag-gold);outline-offset:3px}
.ag-cam svg{position:absolute;left:-40px;top:-40px;width:80px;height:80px;
  pointer-events:none;opacity:0;transition:opacity .18s}
.ag-cam.ag-on svg{opacity:1}

/* ---------- Fotopanel ---------- */
.ag-panel{position:sticky;top:20px;background:var(--ag-card);border:1px solid var(--ag-line);
  border-radius:14px;padding:18px;box-shadow:var(--ag-shadow)}
@media(max-width:900px){ .ag-panel{position:static} }
.ag-room{font-family:var(--ag-font-display, Fraunces, Georgia, serif);
  font-size:21px;font-weight:600;margin:0 0 2px;text-wrap:balance;color:var(--ag-ink)}
.ag-meta{font-size:12.5px;color:var(--ag-mute);margin:0 0 14px;font-variant-numeric:tabular-nums}
.ag-stage{position:relative;aspect-ratio:3/2;border-radius:10px;overflow:hidden;
  background:var(--ag-ground);border:1px solid var(--ag-line);display:grid;place-items:center}
.ag-stage img{width:100%;height:100%;object-fit:cover;display:block}
.ag-stage.ag-zoom{cursor:zoom-in}
.ag-stage:focus-visible{outline:2px solid var(--ag-gold);outline-offset:2px}
.ag-zbadge{position:absolute;right:8px;bottom:8px;display:flex;align-items:center;gap:5px;
  background:rgba(10,18,28,.62);color:#fff;font:500 11px Inter,system-ui,sans-serif;
  letter-spacing:.02em;padding:5px 9px;border-radius:99px;pointer-events:none;opacity:.9}
.ag-stage:hover .ag-zbadge{opacity:1}
.ag-ph{padding:20px;text-align:center;color:var(--ag-mute);font-size:12.5px;line-height:1.5}
.ag-ph b{display:block;color:var(--ag-ink-soft);font-size:13px;font-weight:600;margin-bottom:3px}
.ag-cap{font-size:12.5px;color:var(--ag-ink-soft);margin:9px 0 0}
.ag-strip{display:flex;gap:7px;margin-top:11px;flex-wrap:wrap}
.ag-thumb{width:60px;height:44px;border-radius:6px;overflow:hidden;border:2px solid transparent;
  background:var(--ag-ground);cursor:pointer;padding:0;position:relative;flex:0 0 auto}
.ag-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ag-thumb span{position:absolute;inset:0;display:grid;place-items:center;
  font:600 11px Inter,system-ui,sans-serif;color:var(--ag-mute)}
.ag-thumb[aria-current="true"]{border-color:var(--ag-gold)}
.ag-thumb:focus-visible{outline:2px solid var(--ag-gold);outline-offset:2px}
.ag-hint{font-size:12.5px;color:var(--ag-mute);margin:14px 0 0;padding-top:13px;
  border-top:1px solid var(--ag-line)}

/* ---------- Lightbox ---------- */
.ag-lb[hidden]{display:none}
.ag-lb{position:fixed;inset:0;z-index:9999;background:rgba(8,14,22,.985);
  backdrop-filter:blur(6px);display:flex;flex-direction:column;
  padding:clamp(12px,3vw,28px);gap:14px;animation:ag-lbin .18s ease-out}
@keyframes ag-lbin{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){ .ag-lb{animation:none} }
.ag-lb-top{display:flex;align-items:baseline;gap:12px;color:#fff;flex-wrap:wrap}
.ag-lb-title{font-family:var(--ag-font-display, Fraunces, Georgia, serif);
  font-size:clamp(17px,2.4vw,22px);font-weight:600}
.ag-lb-sub{font-size:12.5px;color:rgba(255,255,255,.62);font-variant-numeric:tabular-nums}
.ag-lb-x{margin-left:auto;width:36px;height:36px;border-radius:50%;
  border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;
  font-size:19px;line-height:1;cursor:pointer;flex:0 0 auto}
.ag-lb-x:hover{background:rgba(255,255,255,.13)}
.ag-lb-body{flex:1;position:relative;display:grid;place-items:center;min-height:0}
.ag-lb-body img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;display:block}
.ag-lb-body .ag-ph{background:rgba(255,255,255,.05);border:1px dashed rgba(255,255,255,.22);
  border-radius:10px;padding:44px 34px;color:rgba(255,255,255,.66)}
.ag-lb-body .ag-ph b{color:#fff}
.ag-lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;
  border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(8,14,22,.55);
  color:#fff;font-size:19px;cursor:pointer;display:grid;place-items:center}
.ag-lb-nav:hover{background:rgba(255,255,255,.16)}
.ag-lb-nav.ag-prev{left:0}
.ag-lb-nav.ag-next{right:0}
.ag-lb-x:focus-visible,.ag-lb-nav:focus-visible{outline:2px solid var(--ag-gold);outline-offset:3px}
.ag-lb-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;
  justify-content:center;flex-wrap:wrap;margin-top:0}
.ag-lb-strip .ag-thumb{width:74px;height:52px;border-color:transparent;background:rgba(255,255,255,.09)}
.ag-lb-strip .ag-thumb span{color:rgba(255,255,255,.7)}
.ag-lb-cap{color:rgba(255,255,255,.8);font-size:13px;text-align:center;margin:0}
