/**
 * OOI Platform - Hero Moment, composition affiche de cinema.
 */

.ooi-hero--moment {
    position: relative;
    width: 100%;
    overflow: hidden;
    padding: clamp(34px, 5vw, 74px);
    border: 1px solid rgba(128, 197, 207, .14);
    border-radius: 28px;
    background:
        radial-gradient(circle at 15% 10%, rgba(70, 139, 184, .24), transparent 34%),
        radial-gradient(circle at 84% 72%, rgba(114, 112, 172, .20), transparent 38%),
        linear-gradient(155deg, #102b49 0%, #0b213b 52%, #081a31 100%);
    color: #fff;
    box-shadow: 0 22px 54px rgba(7, 20, 38, .20);
}

.ooi-hero--moment::after {
    position: absolute;
    right: -12%;
    bottom: -190px;
    width: 520px;
    height: 260px;
    border: 1px solid rgba(128, 197, 207, .13);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.ooi-hero--moment .ooi-hero__inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: min(100%, 1120px);
    margin: 0 auto;
    justify-items: center;
}

/* Le contenu devient une grille visuelle commune avec l'affiche. */
.ooi-hero--moment .ooi-hero__content { display: contents; }

.ooi-hero--moment .ooi-hero__title {
    grid-row: 1;
    max-width: 1000px;
    margin: 0 0 clamp(28px, 4vw, 46px);
    color: #fff;
    font-size: clamp(38px, 6vw, 82px);
    font-weight: 850;
    line-height: .98;
    letter-spacing: -.045em;
    text-align: center;
    text-wrap: balance;
}

.ooi-hero--moment .ooi-hero__visual {
    grid-row: 2;
    display: flex;
    width: 100%;
    min-width: 0;
    align-items: center;
    justify-content: center;
}

.ooi-hero--moment .ooi-hero__poster-image {
    display: block;
    width: min(100%, 690px);
    max-height: 690px;
    object-fit: contain;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 22px;
    box-shadow: 0 28px 65px rgba(0, 0, 0, .36);
}

.ooi-hero--moment .ooi-hero__poster-placeholder {
    display: flex;
    width: min(100%, 690px);
    min-height: 440px;
    align-items: center;
    justify-content: center;
    padding: 30px;
    border: 1px dashed rgba(255, 255, 255, .28);
    border-radius: 22px;
    background: rgba(255, 255, 255, .05);
    color: rgba(255, 255, 255, .58);
    font-weight: 700;
}

.ooi-hero--moment .ooi-hero__badges {
    grid-row: 3;
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    justify-content: center;
    margin: 26px 0 0;
}

.ooi-hero--moment .ooi-hero__badge {
    display: inline-flex;
    min-height: 29px;
    align-items: center;
    padding: 6px 11px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .025em;
}

.ooi-hero--moment .ooi-hero__badge--branch {
    background: #7270ac;
    color: #fff;
}

.ooi-hero--moment .ooi-hero__badge--status {
    border: 1px solid rgba(255, 255, 255, .20);
    background: rgba(255, 255, 255, .08);
    color: #e9f2fa;
}

.ooi-hero--moment .ooi-hero__badge--applications_open {
    background: rgba(128, 197, 207, .18);
    color: #bcecf1;
}

.ooi-hero--moment .ooi-hero__badge--team_complete {
    background: rgba(255, 171, 78, .18);
    color: #ffd5a6;
}

.ooi-hero--moment .ooi-hero__badge--in_progress {
    background: rgba(170, 207, 128, .18);
    color: #d9f2bc;
}

.ooi-hero--moment .ooi-hero__badge--finished {
    background: rgba(217, 158, 130, .18);
    color: #f4d3c4;
}

.ooi-hero--moment .ooi-hero__meta {
    grid-row: 4;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 28px;
    justify-content: center;
    margin-top: 18px;
}

.ooi-hero--moment .ooi-hero__meta-item {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    color: rgba(235, 244, 252, .88);
    font-size: 14px;
    font-weight: 750;
}

.ooi-hero--moment .ooi-hero__meta-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ooi-hero--moment .ooi-hero__summary {
    grid-row: 5;
    max-width: 800px;
    margin: 22px 0 0;
    color: rgba(235, 244, 252, .76);
    font-size: clamp(16px, 1.6vw, 20px);
    line-height: 1.6;
    text-align: center;
    text-wrap: balance;
}

.ooi-hero--moment .ooi-hero__actions {
    grid-row: 6;
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    justify-content: center;
    margin-top: 26px;
}

.ooi-hero--moment .ooi-hero__action {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 11px 20px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.2;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.ooi-hero--moment .ooi-hero__action:hover { transform: translateY(-2px); }

.ooi-hero--moment .ooi-hero__action--primary {
    background: #ffab4e;
    color: #071426;
    box-shadow: 0 10px 26px rgba(255, 171, 78, .22);
}

.ooi-hero--moment .ooi-hero__action--secondary {
    border: 1px solid rgba(255, 255, 255, .25);
    background: rgba(255, 255, 255, .07);
    color: #fff;
}

.ooi-hero--moment .ooi-hero__action--disabled {
    cursor: default;
    opacity: .66;
}

.ooi-hero--moment .ooi-hero__action--disabled:hover { transform: none; }

.ooi-moment-hero-error {
    padding: 14px 16px;
    border: 1px solid #d99e82;
    border-radius: 10px;
    background: #fff8f4;
}

@media (max-width: 700px) {
    .ooi-hero--moment {
        padding: 30px 18px;
        border-radius: 22px;
    }

    .ooi-hero--moment .ooi-hero__title {
        margin-bottom: 25px;
        font-size: clamp(35px, 12vw, 54px);
    }

    .ooi-hero--moment .ooi-hero__poster-image { border-radius: 17px; }

    .ooi-hero--moment .ooi-hero__meta {
        flex-direction: column;
        align-items: center;
        gap: 8px;
    }
}

@media (max-width: 520px) {
    .ooi-hero--moment .ooi-hero__actions {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
    }

    .ooi-hero--moment .ooi-hero__action { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .ooi-hero--moment .ooi-hero__action { transition: none; }
    .ooi-hero--moment .ooi-hero__action:hover { transform: none; }
}
