/* ==========================================================
   VÍDEOS
========================================================== */

.videos-page {

    display: flex;

    flex-direction: column;

    height: calc(100vh - 120px);

    padding-top: 120px;

    box-sizing: border-box;
}

.video-content {

    flex: 1;

    display: flex;

    align-items: center;

    justify-content: center;

    padding:
        20px
        clamp(20px,4vw,60px)
        40px;
}

/* ==========================================================
   HERO
========================================================== */

.video-hero {

    width: min(
        90vw,
        1400px
    );
}

.video-cover {

    position: relative;

    overflow: hidden;

    border-radius: 28px;

    aspect-ratio: 16 / 9;

    border:
        3px solid
        rgba(
            183,
            217,
            92,
            .75
        );

    animation:
        pulseBorder 4s ease-in-out infinite;

    box-shadow:
        0 20px 60px
        rgba(
            0,
            0,
            0,
            .35
        );
}

.video-cover img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    display: block;

    transform:
        scale(1.02);
}

/* ==========================================================
   OVERLAY
========================================================== */

.video-cover-overlay {

    position: absolute;

    inset: 0;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    gap: 22px;

    text-align: center;

    background:
        linear-gradient(
            180deg,
            rgba(0,0,0,.20) 0%,
            rgba(0,0,0,.40) 55%,
            rgba(0,0,0,.70) 100%
        );
}

.video-title {

    margin: 0;

    color: #FFF;

    text-transform: uppercase;

    font-family:
        var(--font-display);

    font-size:
        clamp(
            2rem,
            3vw,
            4rem
        );

    line-height: 1;

    text-shadow:
        0 4px 20px
        rgba(
            0,
            0,
            0,
            .35
        );
}

.video-description {

    margin: 0;

    max-width: 700px;

    color:
        rgba(
            255,
            255,
            255,
            .85
        );

    font-size:
        clamp(
            .9rem,
            1vw,
            1.1rem
        );

    line-height: 1.5;
}

/* ==========================================================
   PLAY BUTTON
========================================================== */

.video-play-button {

    width: 110px;

    height: 110px;

    border: 0;

    border-radius: 50%;

    background:
        rgba(
            183,
            217,
            92,
            .95
        );

    color: #02130d;

    font-size: 44px;

    cursor: pointer;

    display: flex;

    align-items: center;

    justify-content: center;

    transition:
        transform .25s ease,
        box-shadow .25s ease;

    box-shadow:
        0 10px 30px
        rgba(
            183,
            217,
            92,
            .35
        );

    animation:
        videoPulse 2.8s ease-in-out infinite;
}

.video-play-button:hover {

    transform:
        scale(1.08);

    box-shadow:
        0 15px 40px
        rgba(
            183,
            217,
            92,
            .45
        );
}

.video-play-button:active {

    transform:
        scale(.95);
}

@keyframes videoPulse {

    0% {

        box-shadow:
            0 0 0 0
            rgba(
                183,
                217,
                92,
                .40
            );
    }

    70% {

        box-shadow:
            0 0 0 18px
            rgba(
                183,
                217,
                92,
                0
            );
    }

    100% {

        box-shadow:
            0 0 0 0
            rgba(
                183,
                217,
                92,
                0
            );
    }
}

/* ==========================================================
   MODAL
========================================================== */

.video-modal {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
        opacity .4s ease,
        visibility .4s ease;
    z-index: 99999;
}

.video-modal.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.video-modal.closing {
    opacity: 0;
}

.concept-video {
    width: 100vw;
    height: 100vh;
    object-fit: contain;
    background: #000;
    transition: opacity .45s ease;
    opacity: 0;
}

.video-modal.active
.concept-video.loaded {
    opacity: 1;
}

.video-modal.closing
.concept-video {
    opacity: 0;
}

.video-modal {
    opacity: 0;
    transition:
        opacity .5s ease;
}


/* ==========================================================
   CLOSE
========================================================== */

.video-close {

    position: fixed;

    top: 24px;

    right: 24px;

    width: 54px;

    height: 54px;

    border: 0;

    border-radius: 50%;

    background:
        rgba(
            0,
            0,
            0,
            .45
        );

    backdrop-filter:
        blur(12px);

    color: #FFF;

    font-size: 24px;

    cursor: pointer;

    z-index: 100000;

    transition:
        transform .2s ease;
}

.video-close:hover {

    transform:
        scale(1.08);
}

/* ==========================================================
   LOADER
========================================================== */

.video-loader {

    position: absolute;

    inset: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    background:
        rgba(
            0,
            0,
            0,
            .45
        );

    z-index: 99999;

    transition:
        opacity .25s ease;
}

.video-loader.hidden {

    opacity: 0;

    pointer-events: none;
}

.video-spinner {

    width: 60px;

    height: 60px;

    border-radius: 50%;

    border:
        3px solid
        rgba(
            255,
            255,
            255,
            .15
        );

    border-top-color:
        rgba(
            255,
            255,
            255,
            .95
        );

    animation:
        videoSpin
        .8s linear infinite;
}

@keyframes videoSpin {

    from {

        transform:
            rotate(0deg);
    }

    to {

        transform:
            rotate(360deg);
    }
}

/* ==========================================================
   RESPONSIVE
========================================================== */

@media (max-width: 1024px) {

    .video-play-button {

        width: 90px;
        height: 90px;

        font-size: 36px;
    }

    .video-description {

        max-width: 85%;
    }
}

@media (max-width: 768px) {

    .video-cover {

        border-radius: 18px;
    }

    .video-play-button {

        width: 76px;
        height: 76px;

        font-size: 30px;
    }

    .video-title {

        font-size:
            clamp(
                1.4rem,
                6vw,
                2rem
            );
    }

    .video-description {

        font-size: .9rem;

        padding:
            0 20px;
    }

    .video-close {

        width: 48px;
        height: 48px;

        font-size: 20px;
    }
}

@media (max-width: 1024px) and (orientation: landscape) {

    .video-title {

        font-size:
            clamp(
                1.2rem,
                3vw,
                2rem
            );
    }

    .video-description {

        display: none;
    }

    .video-play-button {

        width: 72px;
        height: 72px;

        font-size: 28px;
    }
}
