/* 360-Grad-Rundgang (nur raeumlichkeiten.html) */
.tour { max-width: 1100px; margin: 0 auto; }

.tour-stage {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #000234;
    box-shadow: 0 18px 50px rgba(0, 2, 52, 0.18);
}
.tour-viewer { position: absolute; inset: 0; }

.tour-start {
    position: absolute; inset: 0; z-index: 3;
    display: block; width: 100%; padding: 0; border: 0;
    background: #000234; cursor: pointer;
}
.tour-start img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform 1.2s ease, opacity .4s ease;
}
.tour-start::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,2,52,0.05) 30%, rgba(0,2,52,0.55) 100%);
}
.tour-start:hover img { transform: scale(1.03); }
.tour-start-label {
    position: absolute; z-index: 1; left: 50%; top: 50%;
    transform: translate(-50%, -50%);
    display: inline-flex; align-items: center; gap: .7rem;
    padding: 1rem 1.7rem;
    background: #C9A961; color: #000234;
    font-weight: 600; font-size: 1.05rem; letter-spacing: .02em;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
    white-space: nowrap;
}
.tour-start-label svg { width: 26px; height: 26px; }
.tour-stage.is-active .tour-start { opacity: 0; pointer-events: none; transition: opacity .6s ease .3s; }
.tour-stage.is-loading .tour-start-label { opacity: .75; }

.tour-hint small { display: block; margin-top: .2rem; font-size: .85rem; opacity: .8; }
.tour-hint {
    margin: 1rem auto 0; max-width: 760px;
    text-align: center; font-size: .92rem; color: rgba(0, 2, 52, 0.7);
}

.tour-rooms {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem; margin-top: 1.6rem;
}
.tour-room {
    display: block; padding: 0; border: 0; background: #fff;
    cursor: pointer; text-align: left;
    box-shadow: 0 6px 20px rgba(0, 2, 52, 0.08);
    transition: box-shadow .25s ease, transform .25s ease;
}
.tour-room img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.tour-room span {
    display: block; padding: .7rem .9rem;
    font-size: .95rem; font-weight: 500; color: #000234;
}
.tour-room:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0, 2, 52, 0.14); }
.tour-room[aria-pressed="true"] { box-shadow: 0 0 0 2px #C9A961, 0 12px 28px rgba(0, 2, 52, 0.14); }
.tour-room:focus-visible, .tour-start:focus-visible { outline: 2px solid #C9A961; outline-offset: 3px; }

/* Pfeile im Panorama */
.tour-hotspot { cursor: pointer; }
.tour-hotspot-dot {
    position: absolute; left: -24px; top: -24px;
    display: flex; align-items: center; justify-content: center;
    width: 48px; height: 48px; border-radius: 50%;
    background: #C9A961; color: #000234;
    box-shadow: 0 0 0 6px rgba(201, 169, 97, 0.35), 0 6px 18px rgba(0, 0, 0, 0.35);
    animation: tour-pulse 2.4s ease-in-out infinite;
}
.tour-hotspot-dot svg { width: 22px; height: 22px; }
.tour-hotspot-label {
    position: absolute; top: 32px; left: 50%; transform: translateX(-50%);
    padding: .3rem .7rem; white-space: nowrap;
    background: rgba(0, 2, 52, 0.82); color: #fff;
    font-size: .85rem; font-weight: 500;
}
@keyframes tour-pulse {
    0%, 100% { box-shadow: 0 0 0 6px rgba(201,169,97,0.35), 0 6px 18px rgba(0,0,0,0.35); }
    50% { box-shadow: 0 0 0 12px rgba(201,169,97,0.12), 0 6px 18px rgba(0,0,0,0.35); }
}
@media (prefers-reduced-motion: reduce) {
    .tour-hotspot-dot { animation: none; }
}

/* Pannellum-Bedienelemente an die Seite angleichen */
.tour-viewer .pnlm-load-box { background: rgba(0, 2, 52, 0.85); border-radius: 0; }
.tour-viewer .pnlm-lbar-fill { background: #C9A961; }
.tour-viewer .pnlm-controls { border-radius: 0; }
.tour-viewer .pnlm-panorama-info { display: none !important; }

@media (max-width: 700px) {
    .tour-stage { aspect-ratio: 4 / 5; margin-inline: calc(50% - 50vw); }
    .tour-rooms { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
    .tour-room span { font-size: .88rem; padding: .55rem .7rem; }
    .tour-start-label { font-size: 1rem; padding: .9rem 1.4rem; }
}
