@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&display=swap');

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   VSP Frontend — Video Showcase Pro v6
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */

/* ── Page wrapper ──────────────────────── */
.vsp-frontend {
    max-width: 780px;
    margin: 32px auto;
    display: flex;
    flex-direction: column;
    gap: 44px;
    font-family: 'Outfit', sans-serif;
    padding: 0 10px;
    box-sizing: border-box;
}

/* ── Outer item per video ──────────────── */
.vsp-front-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    box-sizing: border-box;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   CARD 1 — Title (left aligned, white)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.vsp-info-card {
    width: 100%;
    box-sizing: border-box;
    background: #ffffff;
    border: 1px solid #e8e8e8;
    border-radius: 14px;
    padding: 16px 22px;
    box-shadow: 0 1px 6px rgba(0,0,0,0.05);
}

/* h2 title — LEFT, reset theme */
.vsp-info-card h2.vsp-front-title,
.vsp-frontend h2.vsp-front-title {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    color: #111827 !important;
    text-align: left !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    text-transform: none !important;
    letter-spacing: -0.01em !important;
    text-decoration: none !important;
    float: none !important;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   CARD 2 — Player card (white bg)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.vsp-player-card {
    width: 100%;
    box-sizing: border-box;
    background: #ffffff;
    border: 1px solid #e8e8e8;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 2px 16px rgba(0,0,0,0.07);
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Video wrap — centers the reels box */
.vsp-front-video-wrap {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 22px 0 14px;
    box-sizing: border-box;
    background: #ffffff;
}

/* Reels box — fixed 9:16 portrait */
.vsp-reels-box {
    width: 310px;
    height: 551px; /* 310 × 16/9 */
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    background: #000;
    flex-shrink: 0;
    box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}

/* WP [video] shortcode fills reels box */
.vsp-reels-box .wp-video,
.vsp-reels-box .wp-video-shortcode,
.vsp-reels-box .mejs-container,
.vsp-reels-box .mejs-inner,
.vsp-reels-box .mejs-mediaelement,
.vsp-reels-box video,
.vsp-reels-box .vsp-player-fallback {
    position: absolute !important;
    top: 0 !important; left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    margin: 0 !important; padding: 0 !important;
    min-width: unset !important; min-height: unset !important;
}
.vsp-reels-box .wp-video {
    min-width: unset !important;
    min-height: unset !important;
    background: transparent !important;
}
.vsp-reels-box .mejs-container {
    background: transparent !important;
    min-width: unset !important; min-height: unset !important;
}
.vsp-reels-box .mejs-controls {
    position: absolute !important;
    bottom: 0 !important; left: 0 !important;
    width: 100% !important;
    z-index: 10 !important;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   Description — CENTER, inside player card
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.vsp-player-card .vsp-front-desc,
.vsp-frontend .vsp-front-desc {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 12px 24px 10px !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.8 !important;
    color: #5a6475 !important;
    text-align: center !important;
    border: none !important;
    border-top: 1px solid #f0f0f0 !important;
    background: transparent !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   Ad Zone
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.vsp-ad-zone {
    width: 100%;
    padding: 16px 20px 0;
    text-align: center;
    border-top: 1px solid #f0f0f0;
    box-sizing: border-box;
}
.vsp-ad-label {
    font-size: 10px;
    color: #b0b0b0;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 8px;
    font-family: 'Outfit', sans-serif;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   Download button — centered
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.vsp-front-download {
    width: 100%;
    padding: 16px 20px 22px;
    text-align: center;
    border-top: 1px solid #f0f0f0;
    box-sizing: border-box;
}
.vsp-ad-zone + .vsp-front-download {
    padding-top: 24px;
    border-top: none;
}

.vsp-download-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%) !important;
    color: #fff !important;
    text-decoration: none !important;
    padding: 13px 36px !important;
    border-radius: 12px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    font-family: 'Outfit', sans-serif !important;
    border: none !important;
    cursor: pointer !important;
    min-width: 220px !important;
    letter-spacing: 0.01em !important;
    box-shadow: 0 4px 16px rgba(79,70,229,0.35) !important;
    transition: opacity .2s, transform .2s, box-shadow .2s !important;
    box-sizing: border-box !important;
}
.vsp-download-btn:hover {
    opacity: .88 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(79,70,229,0.42) !important;
    color: #fff !important;
    text-decoration: none !important;
}
.vsp-download-btn:active { transform: none !important; }

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   Mobile
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media (max-width: 600px) {
    .vsp-frontend {
        max-width: 100%;
        padding: 0 6px;
        margin: 16px auto;
        gap: 28px;
    }
    .vsp-front-card { gap: 8px; }
    .vsp-info-card { padding: 12px 14px; border-radius: 10px; }
    .vsp-info-card h2.vsp-front-title,
    .vsp-frontend h2.vsp-front-title {
        font-size: 15px !important;
    }
    .vsp-player-card { border-radius: 12px; }
    .vsp-front-video-wrap { padding: 14px 0 10px; }
    .vsp-reels-box {
        width: calc(100vw - 80px);
        height: calc((100vw - 80px) * 16 / 9);
        max-width: 280px;
        max-height: 498px;
    }
    .vsp-player-card .vsp-front-desc,
    .vsp-frontend .vsp-front-desc {
        font-size: 13px !important;
        padding: 10px 14px 8px !important;
    }
    .vsp-download-btn {
        width: calc(100% - 32px) !important;
        min-width: unset !important;
        padding: 13px 16px !important;
        font-size: 14px !important;
    }
    .vsp-front-download { padding: 14px 16px 18px; }
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   Desktop larger
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
@media (min-width: 900px) {
    .vsp-frontend { max-width: 820px; }
    .vsp-info-card h2.vsp-front-title,
    .vsp-frontend h2.vsp-front-title {
        font-size: 22px !important;
    }
    .vsp-reels-box {
        width: 340px;
        height: 604px;
    }
}
