/* =========================================================
   VuSpaces Panorama Viewer
   File: /assets/panorama/viewer.css
   ========================================================= */

:root {
    --vuspaces-viewer-bg: #111111;
    --vuspaces-viewer-panel: rgba(24, 26, 27, 0.82);
    --vuspaces-viewer-panel-light: rgba(255, 255, 255, 0.94);
    --vuspaces-viewer-text: #ffffff;
    --vuspaces-viewer-muted: rgba(255, 255, 255, 0.72);
    --vuspaces-viewer-dark: #202326;
    --vuspaces-viewer-radius: 9px;
}


html,
body {
    width: 100%;
    height: 100%;
    min-height: 100%;

    margin: 0;
    padding: 0;
}


html {
    background: var(--vuspaces-viewer-bg);
}


body.vuspaces-panorama-page {
    width: 100%;
    height: 100vh;
    height: 100dvh;

    overflow: hidden;
    overscroll-behavior: none;

    background: var(--vuspaces-viewer-bg);

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Helvetica,
        Arial,
        sans-serif;
}


/* =========================================================
   VIEWER
   ========================================================= */

#vuspaces-panorama {
    position: fixed;

    inset: 0;

    width: 100%;
    height: 100vh;
    height: 100dvh;

    background: var(--vuspaces-viewer-bg);
}


/* =========================================================
   BRAND
   Bottom right
   ========================================================= */

.vuspaces-panorama-brand {
    all: unset;

    position: fixed;

    right: 18px;
    bottom: 18px;

    z-index: 50;

    display: inline-flex;
    flex-direction: column;

    padding: 10px 14px;

    border-radius: var(--vuspaces-viewer-radius);

    background: var(--vuspaces-viewer-panel-light);

    color: var(--vuspaces-viewer-dark);

    box-shadow:
        0 4px 18px rgba(0, 0, 0, 0.16);

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Helvetica,
        Arial,
        sans-serif;

    cursor: pointer;
}


.vuspaces-panorama-brand:hover {
    background: #ffffff;
}


.vuspaces-panorama-brand-name {
    display: block;

    color: #202326;

    font-size: 18px;
    font-weight: 700;

    line-height: 1.1;

    letter-spacing: -0.35px;

    text-decoration: none;
}


.vuspaces-panorama-brand-subtitle {
    display: block;

    margin-top: 3px;

    color: #64696c;

    font-size: 10px;
    font-weight: 700;

    line-height: 1.2;

    letter-spacing: 0.08em;

    text-transform: uppercase;

    text-decoration: none;
}


/* =========================================================
   SPACE / VENUE LABEL
   Bottom left
   ========================================================= */

.vuspaces-panorama-info {
    position: fixed;

    left: max(
        24px,
        calc(env(safe-area-inset-left) + 14px)
    );

    bottom: max(
        24px,
        calc(env(safe-area-inset-bottom) + 14px)
    );

    z-index: 20;

    max-width: min(
        420px,
        calc(
            100%
            -
            48px
            -
            env(safe-area-inset-left)
            -
            env(safe-area-inset-right)
        )
    );

    padding: 12px 16px;

    border-radius: var(--vuspaces-viewer-radius);

    background: var(--vuspaces-viewer-panel);

    color: var(--vuspaces-viewer-text);

    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    box-shadow:
        0 4px 18px rgba(0, 0, 0, 0.16);

    pointer-events: none;
}


.vuspaces-panorama-space-name {
    display: block;

    font-size: 16px;
    font-weight: 700;

    line-height: 1.3;
}


.vuspaces-panorama-venue-name {
    display: block;

    margin-top: 3px;

    color: var(--vuspaces-viewer-muted);

    font-size: 12px;
    font-weight: 500;

    line-height: 1.4;
}


/* =========================================================
   PANNELLUM CONTROLS
   Top right
   ========================================================= */

.pnlm-controls-container {
    position: absolute !important;

    top: max(
        18px,
        calc(env(safe-area-inset-top) + 14px)
    ) !important;

    right: max(
        18px,
        calc(env(safe-area-inset-right) + 14px)
    ) !important;

    left: auto !important;

    z-index: 30 !important;
}


.pnlm-controls {
    overflow: hidden;

    border: 0 !important;

    border-radius: 8px !important;

    background:
        rgba(24, 26, 27, 0.84) !important;

    box-shadow:
        0 4px 18px rgba(0, 0, 0, 0.20) !important;
}


.pnlm-control {
    border: 0 !important;

    background-color:
        transparent !important;

    color:
        #ffffff !important;
}


.pnlm-control:hover {
    background-color:
        rgba(255, 255, 255, 0.12) !important;
}


/* =========================================================
   ZOOM BUTTONS
   White + / -
   ========================================================= */

.pnlm-zoom-in,
.pnlm-zoom-out {
    position: relative !important;

    background-image: none !important;
    background-position: initial !important;

    color: #ffffff !important;
}


.pnlm-zoom-in::after,
.pnlm-zoom-out::after {
    position: absolute;

    top: 50%;
    left: 50%;

    transform:
        translate(
            -50%,
            -53%
        );

    color: #ffffff;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size: 25px;
    font-weight: 300;

    line-height: 1;

    pointer-events: none;
}


.pnlm-zoom-in::after {
    content: "+";
}


.pnlm-zoom-out::after {
    content: "−";
}


/* =========================================================
   FULLSCREEN BUTTON
   Custom white icon
   ========================================================= */

.pnlm-fullscreen-toggle-button {
    position: relative !important;

    background-image: none !important;
    background-position: initial !important;
    background-color: transparent !important;

    color: #ffffff !important;
}


.pnlm-fullscreen-toggle-button::after {
    content: "⛶";

    position: absolute;

    top: 50%;
    left: 50%;

    transform:
        translate(
            -50%,
            -52%
        );

    color: #ffffff;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size: 21px;
    font-weight: 400;

    line-height: 1;

    pointer-events: none;
}


/* =========================================================
   LOADING
   ========================================================= */

.pnlm-load-box {
    border: 0 !important;

    border-radius: 10px !important;

    background:
        rgba(24, 26, 27, 0.90) !important;

    color: #ffffff !important;

    box-shadow:
        0 6px 24px rgba(0, 0, 0, 0.24) !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 640px) {

    .vuspaces-panorama-brand {
        right: max(
            14px,
            calc(env(safe-area-inset-right) + 10px)
        );

        bottom: max(
            14px,
            calc(env(safe-area-inset-bottom) + 10px)
        );

        padding: 9px 12px;
    }


    .vuspaces-panorama-brand-name {
        font-size: 16px;
    }


    .vuspaces-panorama-info {
        left: max(
            14px,
            calc(env(safe-area-inset-left) + 10px)
        );

        bottom: max(
            14px,
            calc(env(safe-area-inset-bottom) + 10px)
        );

        max-width:
            calc(
                100%
                -
                28px
                -
                env(safe-area-inset-left)
                -
                env(safe-area-inset-right)
            );

        padding: 11px 13px;
    }


    .vuspaces-panorama-space-name {
        font-size: 15px;
    }


    .pnlm-controls-container {
        top: max(
            14px,
            calc(env(safe-area-inset-top) + 10px)
        ) !important;

        right: max(
            14px,
            calc(env(safe-area-inset-right) + 10px)
        ) !important;

        left: auto !important;
    }
}