/* Frontend Styles */
.svgh-wrapper { position: relative; display: block; width: 100%; line-height: 0; }
.svgh-wrapper.svgh-full { width: 100vw; max-width: 100vw !important; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
@media (max-width: 480px) { .svgh-wrapper.svgh-full { width: 100%; max-width: 100% !important; margin-left: 0; margin-right: 0; } }
.svgh-stage { position: relative; display: inline-block; width: 100%; line-height: 0; }
.svgh-overlay { position: absolute; left: 0; top: 0; width: 100%; height: 100%; pointer-events: none; }
.svgh-stage.svgh-fitvh { height: calc(100vh - var(--svgh-offset, 0px)); width: 100%; }
.svgh-image { display: block; width: 100%; height: auto; }
.svgh-stage.svgh-fitvh .svgh-image { height: 100%; object-fit: contain; }
.svgh-stage .svgh-hotspot { position: absolute; transform: translate(-50%, -100%) scale(1); transform-origin: bottom center; text-decoration: none; color: #111827; --svgh-color: #111827; transition: transform .16s ease-in-out; }
.svgh-stage .svgh-hotspot:hover, .svgh-stage .svgh-hotspot:focus-visible { transform: translate(-50%, -100%) scale(1.2); }
@media (prefers-reduced-motion: reduce) { .svgh-stage .svgh-hotspot { transition: none; } }
.svgh-dot { width: 12px; height: 12px; border-radius: 9999px; background: var(--svgh-color); display: inline-block; box-shadow: 0 0 0 2px #fff, 0 2px 8px rgba(0,0,0,.25); }
.svgh-label { display: inline-block; margin-left: .4rem; padding: .15rem .4rem; background: rgba(255,255,255,.9); color: #111827; border-radius: .25rem; font: 600 clamp(12px, 1.2vw, 16px)/1.2 system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; box-shadow: 0 1px 3px rgba(0,0,0,.15); }
