/* ==========================================================================
   WebArt ARMEC — Video Showcase
   ========================================================================== */

.wa-video-showcase {
    position: relative;

    padding-block:
        var(--wa-space-7)
        var(--wa-space-8);

    background: var(--wa-color-surface);
    color: var(--wa-color-text);

    overflow: hidden;
}


/* --------------------------------------------------------------------------
   Technical background detail
   -------------------------------------------------------------------------- */

.wa-video-showcase::before {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(7, 27, 51, 0.025) 1px,
            transparent 1px
        ),
        linear-gradient(
            rgba(7, 27, 51, 0.025) 1px,
            transparent 1px
        );

    background-size: 56px 56px;

    pointer-events: none;
}


/* ==========================================================================
   Inner
   ========================================================================== */

.elementor-element.wa-video-showcase__inner {
    position: relative;
    z-index: 1;

    display: flex !important;
    flex-direction: column;

    gap: var(--wa-space-5);
}


/* ==========================================================================
   Header
   ========================================================================== */

.elementor-element.wa-video-showcase__header {
    margin-inline: auto;
}


/* ==========================================================================
   Content
   ========================================================================== */

.elementor-element.wa-video-showcase__content {
    display: grid !important;

    grid-template-columns:
        minmax(0, 1.7fr)
        minmax(300px, 0.8fr);

    align-items: center;

    gap: clamp(36px, 5vw, 68px);

    width: 100%;
}


/* ==========================================================================
   Media
   ========================================================================== */

.elementor-element.wa-video-showcase__media {
    position: relative;

    display: block !important;

    min-width: 0;

    aspect-ratio: 16 / 9;

    overflow: hidden;

    background: var(--wa-color-primary);

    border-radius: var(--wa-radius-lg);

    box-shadow:
        0 24px 60px rgba(7, 27, 51, 0.14);
}


/* --------------------------------------------------------------------------
   Poster
   -------------------------------------------------------------------------- */

.wa-video-showcase__poster {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;
}

.wa-video-showcase__poster,
.wa-video-showcase__poster .elementor-widget-container {
    width: 100%;
    height: 100%;
}

.wa-video-showcase__poster img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}


/* Dark technical treatment */

.elementor-element.wa-video-showcase__media::after {
    content: "";

    position: absolute;
    inset: 0;

    z-index: 1;

    background:
        linear-gradient(
            180deg,
            rgba(7, 27, 51, 0.02) 0%,
            rgba(7, 27, 51, 0.22) 100%
        );

    pointer-events: none;
}

.elementor-element.wa-video-showcase__media:hover
.wa-video-showcase__poster img {
    transform: scale(1.025);
}


/* ==========================================================================
   Play trigger
   ========================================================================== */

.wa-video-showcase__play {
    position: absolute !important;

    top: 50%;
    left: 50%;
    z-index: 3;

    width: 82px;
    height: 82px;

    transform:
        translate(-50%, -50%);

    margin: 0 !important;
}


/* Elementor button / icon adapter */

.wa-video-showcase__play .elementor-widget-container {
    width: 100%;
    height: 100%;
}

.wa-video-showcase__play .elementor-button,
.wa-video-showcase__play .elementor-icon {
    display: flex !important;

    align-items: center;
    justify-content: center;

    width: 82px;
    height: 82px;

    padding: 0 !important;

    color: var(--wa-color-white) !important;
    background: var(--wa-color-accent) !important;

    border:
        1px solid
        rgba(255, 255, 255, 0.24);

    border-radius: 50%;

    box-shadow:
        0 12px 32px
        rgba(7, 27, 51, 0.28);

    cursor: pointer;

    transition:
        background-color var(--wa-transition),
        transform var(--wa-transition),
        box-shadow var(--wa-transition);
}

.wa-video-showcase__play .elementor-button:hover,
.wa-video-showcase__play .elementor-icon:hover {
    color: var(--wa-color-white) !important;
    background: var(--wa-color-accent-hover) !important;

    transform: scale(1.06);

    box-shadow:
        0 16px 38px
        rgba(7, 27, 51, 0.32);
}

.wa-video-showcase__play svg {
    width: 24px;
    height: 24px;

    color: currentColor !important;
    fill: currentColor !important;
}


/* ==========================================================================
   Info / Technical process rail
   ========================================================================== */

.elementor-element.wa-video-showcase__info {
    display: flex !important;
    flex-direction: column;

    justify-content: center;

    min-width: 0;

    padding-block: var(--wa-space-3);
}


/* --------------------------------------------------------------------------
   Intro
   -------------------------------------------------------------------------- */

.wa-video-showcase__intro {
    position: relative;

    width: 100%;
    max-width: 410px;

    margin-bottom: var(--wa-space-4);

    padding-left: 20px;
}

.wa-video-showcase__intro::before {
    content: "";

    position: absolute;

    top: 4px;
    bottom: 4px;
    left: 0;

    width: 3px;

    background: var(--wa-color-accent);

    border-radius: var(--wa-radius-round);
}

.wa-video-showcase__intro,
.wa-video-showcase__intro .elementor-widget-container,
.wa-video-showcase__intro p {
    color: var(--wa-color-muted) !important;

    font-family: var(--wa-font-primary);
    font-size: 0.95rem;
    line-height: 1.7;
}

.wa-video-showcase__intro p {
    margin: 0 !important;
}


/* ==========================================================================
   Steps rail
   ========================================================================== */

.elementor-element.wa-video-showcase__steps {
    position: relative;

    display: flex !important;
    flex-direction: column;

    gap: 0;

    width: 100%;
}


/* Vertical rail */

.elementor-element.wa-video-showcase__steps::before {
    content: "";

    position: absolute;

    top: 29px;
    bottom: 29px;
    left: 29px;

    width: 1px;

    background:
        linear-gradient(
            180deg,
            rgba(226, 29, 43, 0.12),
            rgba(226, 29, 43, 0.55) 25%,
            rgba(226, 29, 43, 0.55) 75%,
            rgba(226, 29, 43, 0.12)
        );

    pointer-events: none;
}


/* ==========================================================================
   Individual step
   ========================================================================== */

.elementor-element.wa-video-showcase__step {
    position: relative;

    display: grid !important;

    grid-template-columns:
        58px
        minmax(0, 1fr);

    align-items: start;

    gap: 20px;

    min-width: 0;

    padding-block: 17px;
}


/* ==========================================================================
   Step number
   ========================================================================== */

.wa-video-showcase__step-number {
    position: relative;
    z-index: 2;

    width: 58px;

    margin: 0;
}

.wa-video-showcase__step-number
.elementor-heading-title {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 58px;
    height: 58px;

    margin: 0;

    color: var(--wa-color-accent) !important;
    background: var(--wa-color-surface);

    border:
        1px solid
        rgba(226, 29, 43, 0.24);

    border-radius: 50%;

    font-family: var(--wa-font-primary);
    font-size: 0.82rem;
    font-weight: 800;
    line-height: 1;

    letter-spacing: 0.08em;

    box-shadow:
        0 6px 18px
        rgba(7, 27, 51, 0.05);
}


/* ==========================================================================
   Step content
   ========================================================================== */

.elementor-element.wa-video-showcase__step-content {
    display: flex !important;
    flex-direction: column;

    justify-content: center;

    gap: 6px;

    min-width: 0;

    padding-top: 4px;
}


/* --------------------------------------------------------------------------
   Step title
   -------------------------------------------------------------------------- */

.wa-video-showcase__step-title {
    margin: 0;
}

.wa-video-showcase__step-title
.elementor-heading-title {
    margin: 0;

    color: var(--wa-color-primary) !important;

    font-family: var(--wa-font-primary);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;

    letter-spacing: -0.015em;
}


/* --------------------------------------------------------------------------
   Step text
   -------------------------------------------------------------------------- */

.wa-video-showcase__step-text {
    width: 100%;
    max-width: 350px;
}

.wa-video-showcase__step-text,
.wa-video-showcase__step-text
.elementor-widget-container,
.wa-video-showcase__step-text p {
    color: var(--wa-color-muted) !important;

    font-family: var(--wa-font-primary);
    font-size: 0.875rem;
    line-height: 1.6;
}

.wa-video-showcase__step-text p {
    margin: 0 !important;
}


/* ==========================================================================
   Responsive — Tablet
   ========================================================================== */

@media (max-width: 1024px) {

    .wa-video-showcase {
        padding-block:
            var(--wa-space-6)
            var(--wa-space-7);
    }

    .elementor-element.wa-video-showcase__content {
        grid-template-columns: 1fr;

        gap: var(--wa-space-5);
    }

    .elementor-element.wa-video-showcase__info {
        width: 100%;
        max-width: 760px;

        padding-block: 0;

        margin-inline: auto;
    }

    .wa-video-showcase__intro {
        max-width: 620px;
    }

    .wa-video-showcase__step-text {
        max-width: 560px;
    }

}


/* ==========================================================================
   Responsive — Mobile
   ========================================================================== */

@media (max-width: 767px) {

    .wa-video-showcase {
        padding-block: var(--wa-space-5);
    }

    .elementor-element.wa-video-showcase__inner {
        gap: var(--wa-space-4);
    }

    .elementor-element.wa-video-showcase__media {
        border-radius: var(--wa-radius-md);
    }


    /* Play */

    .wa-video-showcase__play,
    .wa-video-showcase__play .elementor-button,
    .wa-video-showcase__play .elementor-icon {
        width: 66px;
        height: 66px;
    }

    .wa-video-showcase__play svg {
        width: 20px;
        height: 20px;
    }


    /* Intro */

    .wa-video-showcase__intro {
        max-width: 100%;

        margin-bottom: var(--wa-space-3);

        padding-left: 16px;
    }


    /* Rail */

    .elementor-element.wa-video-showcase__steps::before {
        top: 24px;
        bottom: 24px;
        left: 24px;
    }


    /* Step */

    .elementor-element.wa-video-showcase__step {
        grid-template-columns:
            48px
            minmax(0, 1fr);

        gap: 16px;

        padding-block: 15px;
    }


    /* Number */

    .wa-video-showcase__step-number {
        width: 48px;
    }

    .wa-video-showcase__step-number
    .elementor-heading-title {
        width: 48px;
        height: 48px;

        font-size: 0.76rem;
    }


    /* Text */

    .wa-video-showcase__step-text {
        max-width: 100%;
    }

}


/* ==========================================================================
   Video Lightbox
   ========================================================================== */

.wa-video-lightbox {
    position: fixed;
    inset: 0;

    z-index: 9999;

    display: flex;

    align-items: center;
    justify-content: center;

    padding:
        clamp(20px, 4vw, 56px);

    visibility: hidden;

    pointer-events: none;
}

.wa-video-lightbox.is-open {
    visibility: visible;

    pointer-events: auto;
}


/* --------------------------------------------------------------------------
   Backdrop
   -------------------------------------------------------------------------- */

.wa-video-lightbox__backdrop {
    position: absolute;
    inset: 0;

    background:
        rgba(3, 12, 24, 0.88);

    backdrop-filter:
        blur(8px);

    -webkit-backdrop-filter:
        blur(8px);

    opacity: 0;

    transition:
        opacity 280ms ease;
}

.wa-video-lightbox.is-open
.wa-video-lightbox__backdrop {
    opacity: 1;
}


/* --------------------------------------------------------------------------
   Dialog
   -------------------------------------------------------------------------- */

.wa-video-lightbox__dialog {
    position: relative;
    z-index: 1;

    width:
        min(1100px, 92vw);

    opacity: 0;

    transform:
        translateY(18px)
        scale(0.97);

    transition:
        opacity 300ms ease,
        transform
        360ms
        cubic-bezier(0.22, 1, 0.36, 1);
}

.wa-video-lightbox.is-open
.wa-video-lightbox__dialog {
    opacity: 1;

    transform:
        translateY(0)
        scale(1);
}


/* --------------------------------------------------------------------------
   Player
   -------------------------------------------------------------------------- */

.wa-video-lightbox__player {
    overflow: hidden;

    aspect-ratio: 16 / 9;

    background: #000;

    border-radius:
        var(--wa-radius-md);

    box-shadow:
        0 30px 90px
        rgba(0, 0, 0, 0.46);
}

.wa-video-lightbox__player video {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: contain;

    background: #000;
}


/* --------------------------------------------------------------------------
   Close
   -------------------------------------------------------------------------- */

.wa-video-lightbox__close {
    position: absolute;

    top: -18px;
    right: -18px;
    z-index: 2;

    width: 46px;
    height: 46px;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 0;

    border:
        1px solid
        rgba(255, 255, 255, 0.18);

    border-radius: 50%;

    color:
        var(--wa-color-primary);

    background:
        var(--wa-color-white);

    font-size: 1.8rem;
    font-weight: 300;
    line-height: 1;

    cursor: pointer;

    box-shadow:
        0 8px 24px
        rgba(0, 0, 0, 0.20);

    transition:
        color var(--wa-transition),
        background-color var(--wa-transition),
        transform var(--wa-transition);
}

.wa-video-lightbox__close:hover {
    color: var(--wa-color-white);

    background:
        var(--wa-color-accent);

    transform: rotate(6deg);
}

.wa-video-lightbox__close:focus-visible {
    outline:
        3px solid
        rgba(226, 29, 43, 0.35);

    outline-offset: 3px;
}


/* --------------------------------------------------------------------------
   Page state
   -------------------------------------------------------------------------- */

body.has-open-modal {
    overflow: hidden;
}


/* ==========================================================================
   Lightbox responsive
   ========================================================================== */

@media (max-width: 767px) {

    .wa-video-lightbox {
        padding: 16px;
    }

    .wa-video-lightbox__dialog {
        width: 100%;
    }

    .wa-video-lightbox__close {
        top: -15px;
        right: -6px;

        width: 42px;
        height: 42px;
    }

}