:root {
    --acdh-yellow: #FFED00;
    --acdh-black: #050505;
    --acdh-white: #ffffff;
    --acdh-gray: #f6f6f6;
}

html {
    scroll-behavior: smooth;
}

body {
    overflow-x: hidden;
}

.modern-banner .banner-area {
    position: relative;
    min-height: 100vh;
}

.banner-overlay {
    position: absolute;
    inset: 0;
    background:
            linear-gradient(120deg, rgba(0,0,0,.92), rgba(0,0,0,.65), rgba(255,237,0,.18)),
            radial-gradient(circle at top right, rgba(255,237,0,.35), transparent 35%);
    z-index: 1;
}

.modern-banner-content {
    position: relative;
    z-index: 3;
    max-width: 940px;
}

.hero-badge {
    display: inline-block;
    background: var(--acdh-yellow);
    color: #000;
    padding: 9px 22px;
    border-radius: 50px;
    font-weight: 950;
    margin-bottom: 24px;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.hero-video {
    min-height: 650px;
}

.hero-video video {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
}

@media (max-width: 767px) {
    .hero-video {
        min-height: 520px;
    }

    .hero-video video {
        object-position: center;
    }
}
.modern-banner-content h1 {
    color: #fff;
    font-size: clamp(46px, 8vw, 98px);
    font-weight: 950;
    line-height: .92;
    margin-bottom: 26px;
}

.modern-banner-content p {
    max-width: 760px;
    margin: 0 auto 34px auto;
}

.hero-buttons {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 15px;
}

.hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 14px 26px;
    border-radius: 50px;
    font-weight: 950;
    text-decoration: none;
}

.hero-btn.primary {
    background: var(--acdh-yellow);
    color: #000;
}

.hero-btn.secondary {
    background: #fff;
    color: #000;
}

.banner-social {
    z-index: 5;
}

.festival-intro-section,
.palmares-section,
.awards-section,
.modern-carousel-section,
.modern-video-section {
    padding: 100px 0 75px;
}

.festival-intro-section,
.awards-section,
.modern-carousel-section {
    background: var(--acdh-black);
}

.history-area.modern-history,
.history-area.modern-history .container-fluid,
.history-area.modern-history .cd-horizontal-timeline,
.history-area.modern-history .timeline,
.history-area.modern-history .events-content {
    background-color: #fff !important;
    background-image: none !important;
}

.history-area.modern-history::before,
.history-area.modern-history::after {
    background: none !important;
}

.modern-title {
    text-align: center;
    margin-bottom: 45px;
}

.modern-title span,
.modern-title .sub-title {
    display: inline-block;
    background: var(--acdh-yellow);
    color: #000;
    padding: 8px 19px;
    border-radius: 40px;
    font-weight: 950;
    margin-bottom: 15px;
}

.modern-title h2 {
    color: #000;
    font-size: clamp(34px, 5vw, 56px);
    font-weight: 950;
    margin-bottom: 10px;
}

.modern-title h3 {
    color: #555;
    font-weight: 850;
}

.modern-title.light h2,
.modern-title.light h3 {
    color: #fff;
}

.section-lead {
    max-width: 900px;
    margin: -20px auto 45px;
    text-align: center;
    color: #444;
    font-size: 18px;
    line-height: 1.8;
}

.karim-highlight {
    position: relative;
    display: flex;
    align-items: center;
    gap: 30px;
    max-width: 920px;
    margin: -5px auto 60px;
    padding: 34px 38px;
    overflow: hidden;
    background: linear-gradient(135deg, #ffffff 0%, #f8f8f8 100%);
    border: 1px solid #e9e9e9;
    border-left: 7px solid var(--acdh-yellow);
    border-radius: 28px;
    box-shadow: 0 18px 55px rgba(0, 0, 0, .08);
    transition: transform .3s ease, box-shadow .3s ease;
}

.karim-highlight::after {
    content: '';
    position: absolute;
    top: -90px;
    right: -70px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    background: rgba(255, 237, 0, .18);
    pointer-events: none;
}

.karim-highlight:hover {
    transform: translateY(-6px);
    box-shadow: 0 28px 75px rgba(0, 0, 0, .12);
}

.karim-icon {
    position: relative;
    z-index: 1;
    width: 92px;
    height: 92px;
    flex: 0 0 92px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 26px;
    background: var(--acdh-yellow);
    color: #000;
    font-size: 48px;
    box-shadow: 0 14px 32px rgba(255, 237, 0, .28);
}

.karim-content {
    position: relative;
    z-index: 1;
    flex: 1;
}

.karim-eyebrow {
    display: inline-block;
    margin-bottom: 8px;
    color: #666;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.karim-content h3 {
    margin: 0 0 10px;
    color: #000;
    font-size: clamp(25px, 3vw, 34px);
    font-weight: 950;
}

.karim-content p {
    max-width: 700px;
    margin: 0 0 20px;
    color: #555;
    line-height: 1.75;
}

.karim-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 22px;
    border-radius: 50px;
    background: #000;
    color: #fff;
    font-weight: 900;
    text-decoration: none;
    transition: background .25s ease, color .25s ease, transform .25s ease;
}

.karim-link:hover {
    background: var(--acdh-yellow);
    color: #000;
    transform: translateX(3px);
}

.karim-link i {
    font-size: 22px;
}

.intro-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
}

.intro-card {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 30px;
    padding: 38px;
    color: #fff;
    transition: .3s ease;
}

.intro-card:hover {
    transform: translateY(-8px);
    background: rgba(255,237,0,.12);
}

.intro-card i {
    width: 64px;
    height: 64px;
    background: var(--acdh-yellow);
    color: #000;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 34px;
    margin-bottom: 24px;
}

.intro-card h3 {
    color: #fff;
    font-size: 24px;
    font-weight: 950;
    margin-bottom: 14px;
}

.intro-card p {
    color: #ddd;
    line-height: 1.8;
    margin: 0;
}

.laurel-card {
    background: #fff;
    border-radius: 28px;
    padding: 28px;
    height: 100%;
    box-shadow: 0 18px 60px rgba(0,0,0,.08);
    transition: .3s ease;
}

.laurel-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 30px 80px rgba(255,237,0,.25);
}

.laurel-card img {
    width: 100%;
    height: 230px;
    object-fit: contain;
}

.award-card {
    height: 100%;
    background: #111;
    border-radius: 30px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: 0 18px 60px rgba(0,0,0,.25);
    transition: .3s ease;
}

.award-card.light-card {
    background: #fff;
    border: 1px solid #eee;
    box-shadow: 0 18px 60px rgba(0,0,0,.08);
}

.award-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 30px 90px rgba(255,237,0,.18);
}

.award-img {
    position: relative;
    height: 360px;
    overflow: hidden;
    background: #eee;
}

.award-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: .4s ease;
}

.award-card:hover .award-img img {
    transform: scale(1.06);
}

.award-img a {
    position: absolute;
    left: 20px;
    bottom: 20px;
    background: var(--acdh-yellow);
    color: #000;
    padding: 10px 18px;
    border-radius: 40px;
    font-weight: 950;
    text-decoration: none;
}

.award-content {
    padding: 24px;
}

.award-content span {
    color: var(--acdh-yellow);
    font-weight: 950;
}

.award-content h3 {
    color: #fff;
    font-size: 24px;
    font-weight: 950;
    margin: 6px 0 0;
}

.light-card .award-content h3 {
    color: #000;
}

.light-card .award-content span {
    color: #000;
}

.palmares-category,
.palmares-director {
    margin: 10px 0 0;
    color: #555;
    line-height: 1.5;
}

.palmares-director strong {
    color: #000;
}

.palmares-section .award-content h3 {
    color: #000;
    margin-top: 8px;
}

.modern-carousel-section .owl-carousel .owl-nav button.owl-prev,
.modern-carousel-section .owl-carousel .owl-nav button.owl-next {
    width: 48px;
    height: 48px;
    background: var(--acdh-yellow) !important;
    color: #000 !important;
    border-radius: 50%;
    font-size: 34px !important;
    line-height: 1 !important;
    margin: 12px 6px 0;
}

.modern-carousel-section.bg-white .modern-title h2 {
    color: #000;
}
.owl-carousel,
.owl-stage,
.owl-item {
    backface-visibility: hidden;
    transform: translateZ(0);
    will-change: transform;
}

.modern-countdown-cta {
    margin: 0;
}

.modern-history .section-title h2 {
    color: #000;
}

.modern-history .events-content {
    background: transparent;
}

.modern-history .history-content {
    background: #fff;
    border-radius: 30px;
    padding: 45px;
    margin-right: 40px;
    box-shadow: 0 20px 70px rgba(0,0,0,.2);
}

.history-year {
    display: inline-block;
    background: var(--acdh-yellow);
    color: #000;
    padding: 8px 18px;
    border-radius: 40px;
    font-weight: 950;
    margin-bottom: 18px;
}

.modern-history .history-content h3 {
    color: #000;
    font-size: 34px;
    font-weight: 950;
    margin-bottom: 20px;
}

.modern-history .history-content p {
    color: #444;
    line-height: 1.8;
}

.history-points {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 30px;
}

.history-points div {
    background: #f7f7f7;
    border-radius: 22px;
    padding: 20px;
}

.history-points i {
    font-size: 34px;
    color: #000;
    margin-bottom: 10px;
}

.history-points strong {
    display: block;
    color: #000;
    font-weight: 950;
}

.history-points span {
    color: #555;
    font-size: 14px;
}

.modern-video-section {
    padding-bottom: 0;
}

.modern-video-card {
    position: relative;
    overflow: hidden;
}

.modern-video-card img {
    width: 100%;
    height: 480px;
    object-fit: cover;
    filter: brightness(.82);
    transition: .4s ease;
}

.modern-video-card:hover img {
    transform: scale(1.06);
    filter: brightness(.65);
}

.modern-video-card a {
    background: var(--acdh-yellow) !important;
    color: #000 !important;
}

.newsletter-modal {
    background: #050505;
    color: #fff;
    border-radius: 28px;
    overflow: hidden;
}

.newsletter-modal h2 {
    color: #fff;
    font-weight: 950;
}

.newsletter-modal {
    position: relative;
}

.newsletter-close {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 50;
    opacity: 1;
    cursor: pointer;
    pointer-events: auto;
}

.newsletter-close:hover,
.newsletter-close:focus {
    opacity: .75;
    box-shadow: none;
}

.modern-side-modal {
    border: none;
    border-radius: 0;
}


.section-kicker {
    display:inline-block;
    margin-bottom:16px;
    color:#000;
    font-size:13px;
    font-weight:950;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.section-kicker.light {
    color:var(--acdh-yellow);
}

.festival-signature {
    padding:110px 0;
    background:#fff;
}

.signature-grid {
    display:grid;
    grid-template-columns:1.1fr .9fr;
    align-items:center;
    gap:75px;
}

.signature-intro h2,
.festival-editorial h2,
.festival-join h2 {
    margin:0;
    color:#050505;
    font-size:clamp(38px,5vw,68px);
    font-weight:950;
    line-height:.98;
    letter-spacing:-.045em;
}

.signature-intro p {
    margin:28px 0 0;
    color:#555;
    font-size:18px;
    line-height:1.8;
}

.festival-stats {
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:18px;
}

.festival-stat {
    min-height:190px;
    padding:30px;
    border:1px solid #e8e8e8;
    border-radius:28px;
    background:#fafafa;
    transition:.3s ease;
}

.festival-stat:hover {
    transform:translateY(-7px);
    border-color:var(--acdh-yellow);
    box-shadow:0 24px 60px rgba(0,0,0,.09);
}

.festival-stat strong {
    display:inline-block;
    color:#000;
    font-size:58px;
    font-weight:950;
    line-height:1;
}

.festival-stat em {
    color:#000;
    font-size:28px;
    font-style:normal;
    font-weight:950;
}

.festival-stat span {
    display:block;
    margin-top:18px;
    color:#666;
    font-weight:800;
    line-height:1.45;
}

.festival-editorial {
    padding:120px 0;
    background:#060606;
    color:#fff;
}

.editorial-grid {
    display:grid;
    grid-template-columns:1.1fr .9fr;
    align-items:center;
    gap:70px;
}

.editorial-main h2 {
    color:#fff;
}

.editorial-main p {
    max-width:680px;
    margin:28px 0;
    color:#cfcfcf;
    font-size:18px;
    line-height:1.8;
}

.editorial-link {
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:var(--acdh-yellow);
    font-size:16px;
    font-weight:950;
    text-decoration:none;
}

.editorial-cards {
    display:grid;
    gap:15px;
}

.editorial-card {
    display:grid;
    grid-template-columns:72px 1fr;
    column-gap:22px;
    align-items:center;
    padding:26px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:25px;
    background:rgba(255,255,255,.055);
    transition:.3s ease;
}

.editorial-card:hover {
    transform:translateX(-8px);
    border-color:rgba(255,237,0,.5);
    background:rgba(255,237,0,.08);
}

.editorial-card i {
    grid-row:1/3;
    width:65px;
    height:65px;
    display:grid;
    place-items:center;
    border-radius:20px;
    background:var(--acdh-yellow);
    color:#000;
    font-size:32px;
}

.editorial-card h3 {
    margin:0 0 7px;
    color:#fff;
    font-size:23px;
    font-weight:950;
}

.editorial-card p {
    margin:0;
    color:#bbb;
    line-height:1.55;
}

.festival-experience {
    padding:110px 0;
    background:#f5f5f5;
}

.experience-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
}

.experience-card {
    position:relative;
    overflow:hidden;
    min-height:370px;
    padding:34px;
    border-radius:30px;
    background:#fff;
    box-shadow:0 16px 45px rgba(0,0,0,.07);
    transition:.3s ease;
}

.experience-card::after {
    content:"";
    position:absolute;
    right:-70px;
    bottom:-70px;
    width:180px;
    height:180px;
    border-radius:50%;
    background:rgba(255,237,0,.16);
}

.experience-card:hover {
    transform:translateY(-9px);
    box-shadow:0 28px 70px rgba(0,0,0,.13);
}

.experience-card--lumi {
    background:#080808;
    color:#fff;
}

.experience-card--lumi::after {
    background:rgba(255,237,0,.22);
}

.experience-icon {
    width:66px;
    height:66px;
    display:grid;
    place-items:center;
    margin-bottom:45px;
    border-radius:20px;
    background:var(--acdh-yellow);
    color:#000;
    font-size:32px;
}

.experience-label {
    display:block;
    margin-bottom:10px;
    color:#777;
    font-size:12px;
    font-weight:950;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.experience-card--lumi .experience-label {
    color:var(--acdh-yellow);
}

.experience-card h3 {
    margin:0 0 15px;
    color:#000;
    font-size:28px;
    font-weight:950;
}

.experience-card--lumi h3 {
    color:#fff;
}

.experience-card p {
    margin:0 0 25px;
    color:#666;
    line-height:1.7;
}

.experience-card--lumi p {
    color:#bbb;
}

.experience-card a,
.experience-card button {
    position:relative;
    z-index:2;
    display:inline-flex;
    align-items:center;
    gap:9px;
    border:0;
    padding:0;
    background:transparent;
    color:#000;
    font-weight:950;
    text-decoration:none;
    cursor:pointer;
}

.experience-card--lumi button {
    color:var(--acdh-yellow);
}

.festival-join {
    padding:95px 0;
    background:var(--acdh-yellow);
}

.join-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:50px;
}

.join-inner > div:first-child {
    max-width:760px;
}

.join-inner p {
    margin:22px 0 0;
    color:#222;
    font-size:17px;
    line-height:1.75;
}

.join-actions {
    display:flex;
    flex-direction:column;
    gap:12px;
    min-width:250px;
}

.join-btn {
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:54px;
    padding:14px 22px;
    border:2px solid #000;
    border-radius:999px;
    font-weight:950;
    text-decoration:none;
    transition:.25s ease;
}

.join-btn.primary {
    background:#000;
    color:#fff;
}

.join-btn.secondary {
    background:transparent;
    color:#000;
}

.join-btn:hover {
    transform:translateY(-3px);
}

.reveal {
    opacity:0;
    transform:translateY(28px);
    transition:opacity .75s ease,transform .75s ease;
}

.reveal.active {
    opacity:1;
    transform:none;
}

.title-animated.active,
.intro-card.active,
.award-card.active,
.laurel-card.active {
    opacity:1 !important;
    transform:none !important;
    visibility:visible !important;
}


.cinema-intro {
    visibility:visible;
    opacity:1;
    position:fixed;
    inset:0;
    z-index:2147483647;
    display:grid;
    place-items:center;
    overflow:hidden;
    background:#000;
    color:#fff;
    transition:opacity .8s ease,visibility .8s ease;
}

.cinema-intro.is-hidden {
    opacity:0;
    visibility:hidden;
    pointer-events:none;
}

.cinema-intro__beam {
    position:absolute;
    left:50%;
    top:-15%;
    width:220px;
    height:140%;
    transform:translateX(-50%) perspective(500px) rotateX(12deg);
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);
    filter:blur(18px);
    animation:introBeam 3s ease-in-out infinite alternate;
}

.cinema-intro__grain {
    position:absolute;
    inset:0;
    opacity:.08;
    background-image:repeating-radial-gradient(circle at 20% 30%,#fff 0 1px,transparent 1px 5px);
    mix-blend-mode:screen;
}

.cinema-intro__content {
    position:relative;
    z-index:2;
    width:min(700px,calc(100% - 40px));
    text-align:center;
}

.cinema-candle {
    width:220px;
    max-width:56vw;
    margin:0 auto 24px;
    opacity:1;
    transform:translateY(12px);
}

.cinema-candle svg {
    width:100%;
    height:auto;
    overflow:visible;
}

.candle-body {
    opacity:0;
    transform-origin:110px 275px;
    animation:candleBodyIn .7s .15s ease-out forwards;
}

.candle-wick {
    opacity:0;
    animation:wickIn .35s .7s ease-out forwards;
}

.candle-spark {
    opacity:0;
    transform-origin:110px 111px;
    animation:sparkIgnition .55s 1.05s ease-out forwards;
}

.candle-flame {
    opacity:0;
    transform-origin:110px 114px;
    animation:flameIgnition 1.35s 1.55s cubic-bezier(.2,.8,.2,1) forwards;
}

.candle-flame-outer {
    transform-origin:110px 114px;
    animation:flameFlickerOuter 1.2s 2.15s ease-in-out infinite alternate;
}

.candle-flame-inner {
    transform-origin:110px 111px;
    animation:flameFlickerInner .85s 2.15s ease-in-out infinite alternate;
}

.candle-halo {
    opacity:0;
    transform-origin:110px 108px;
    animation:haloIgnition 1.9s 1.8s ease-out forwards, haloBreath 2.5s 3.8s ease-in-out infinite alternate;
}

.candle-particles .particle {
    opacity:0;
    animation:particleFloat 1.8s ease-out infinite;
}

.candle-particles .p1 { animation-delay:2s; }
.candle-particles .p2 { animation-delay:2.25s; }
.candle-particles .p3 { animation-delay:2.45s; }
.candle-particles .p4 { animation-delay:2.65s; }
.candle-particles .p5 { animation-delay:2.85s; }

.candle-smoke {
    opacity:0;
    animation:smokeRise 1.35s .85s ease-out forwards;
}

.cinema-intro__text {
    opacity:0;
    transform:translateY(18px);
    animation:introTextIn 1s 3.45s ease-out forwards;
}

.cinema-intro button {
    opacity:0;
    transform:translateY(10px);
    animation:introButtonIn .7s 4.5s ease-out forwards;
}

@keyframes candleBodyIn {
    from { opacity:0; transform:translateY(18px) scale(.94); }
    to { opacity:1; transform:none; }
}

@keyframes wickIn {
    from { opacity:0; stroke-dasharray:40; stroke-dashoffset:40; }
    to { opacity:1; stroke-dasharray:40; stroke-dashoffset:0; }
}

@keyframes sparkIgnition {
    0% { opacity:0; transform:scale(.1) rotate(0deg); }
    45% { opacity:1; transform:scale(1.5) rotate(18deg); }
    100% { opacity:0; transform:scale(.45) rotate(38deg); }
}

@keyframes flameIgnition {
    0% { opacity:0; transform:scale(.05,.02) translateY(24px); }
    38% { opacity:.95; transform:scale(.45,.68) translateY(8px); }
    72% { opacity:1; transform:scale(1.12,.92) translateY(-2px); }
    100% { opacity:1; transform:scale(1); }
}

@keyframes flameFlickerOuter {
    0% { transform:rotate(-2deg) scaleX(.95) scaleY(1.02); }
    50% { transform:rotate(1.5deg) scaleX(1.04) scaleY(.98); }
    100% { transform:rotate(-1deg) scaleX(.98) scaleY(1.05); }
}

@keyframes flameFlickerInner {
    0% { transform:rotate(1deg) scale(.94,1.05); }
    100% { transform:rotate(-2deg) scale(1.03,.96); }
}

@keyframes haloIgnition {
    from { opacity:0; transform:scale(.2); }
    to { opacity:.9; transform:scale(1); }
}

@keyframes haloBreath {
    from { opacity:.62; transform:scale(.96); }
    to { opacity:1; transform:scale(1.08); }
}

@keyframes particleFloat {
    0% { opacity:0; transform:translateY(4px) scale(.5); }
    18% { opacity:1; }
    100% { opacity:0; transform:translateY(-34px) translateX(8px) scale(.1); }
}

@keyframes smokeRise {
    0% { opacity:0; transform:translateY(6px) scale(.7); }
    20% { opacity:.55; }
    100% { opacity:0; transform:translateY(-18px) translateX(6px) scale(1.2); }
}

@keyframes introTextIn {
    from { opacity:0; transform:translateY(18px); filter:blur(5px); }
    to { opacity:1; transform:none; filter:none; }
}

@keyframes introButtonIn {
    from { opacity:0; transform:translateY(10px); }
    to { opacity:1; transform:none; }
}

@keyframes introBeam {
    from { opacity:.35; transform:translateX(-50%) rotate(-2deg); }
    to { opacity:.75; transform:translateX(-50%) rotate(2deg); }
}

.festival-mode-banner {
    padding:34px 0;
    background:#fff;
    border-bottom:1px solid #eee;
}

.festival-mode-inner {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:35px;
    padding:28px 32px;
    border-radius:26px;
    background:#f6f6f6;
}

.festival-mode-live .festival-mode-inner {
    background:#090909;
    color:#fff;
}

.festival-mode-after .festival-mode-inner {
    background:#efefef;
}

.festival-mode-badge {
    display:inline-block;
    margin-bottom:8px;
    color:#000;
    font-size:12px;
    font-weight:950;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.festival-mode-live .festival-mode-badge {
    color:var(--acdh-yellow);
}

.festival-mode-inner h2 {
    margin:0;
    color:#000;
    font-size:clamp(25px,4vw,42px);
    font-weight:950;
}

.festival-mode-live h2 {
    color:#fff;
}

.festival-mode-inner p {
    margin:10px 0 0;
    color:#666;
}

.festival-mode-live p {
    color:#bbb;
}

.festival-mode-inner > a {
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding:13px 20px;
    border-radius:999px;
    background:var(--acdh-yellow);
    color:#000;
    font-weight:950;
    text-decoration:none;
}

.cinema-network {
    padding:115px 0;
    background:#fff;
}

.cinema-network-grid {
    display:grid;
    grid-template-columns:.95fr 1.05fr;
    gap:70px;
    align-items:center;
}

.cinema-network-copy h2 {
    margin:0;
    color:#000;
    font-size:clamp(38px,5vw,66px);
    font-weight:950;
    line-height:1;
    letter-spacing:-.045em;
}

.cinema-network-copy p {
    margin:25px 0;
    color:#666;
    font-size:17px;
    line-height:1.8;
}

.network-link {
    display:inline-flex;
    align-items:center;
    gap:9px;
    color:#000;
    font-weight:950;
    text-decoration:none;
}

.cinema-map-card {
    position:relative;
    min-height:520px;
    overflow:hidden;
    border-radius:34px;
    background:
            radial-gradient(circle at 25% 35%,rgba(255,237,0,.32),transparent 24%),
            linear-gradient(135deg,#101010,#272727);
    box-shadow:0 28px 70px rgba(0,0,0,.18);
}

.cinema-map-grid {
    position:absolute;
    inset:0;
    background-image:
            linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),
            linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);
    background-size:42px 42px;
}

.map-dot {
    position:absolute;
    width:16px;
    height:16px;
    border-radius:50%;
    background:var(--acdh-yellow);
    box-shadow:0 0 0 9px rgba(255,237,0,.12),0 0 30px rgba(255,237,0,.5);
    animation:mapPulse 2s ease-in-out infinite;
}

.dot-1 { left:22%; top:25%; }
.dot-2 { left:58%; top:18%; animation-delay:.4s; }
.dot-3 { left:72%; top:52%; animation-delay:.8s; }
.dot-4 { left:38%; top:64%; animation-delay:1.2s; }
.dot-5 { left:18%; top:77%; animation-delay:1.6s; }

.map-line {
    position:absolute;
    height:2px;
    transform-origin:left center;
    background:linear-gradient(90deg,var(--acdh-yellow),transparent);
    opacity:.45;
}

.line-1 { left:24%; top:29%; width:38%; transform:rotate(-9deg); }
.line-2 { left:40%; top:65%; width:34%; transform:rotate(-20deg); }
.line-3 { left:20%; top:76%; width:42%; transform:rotate(-35deg); }

.cinema-map-overlay {
    position:absolute;
    left:28px;
    right:28px;
    bottom:28px;
    padding:24px;
    border:1px solid rgba(255,255,255,.15);
    border-radius:22px;
    background:rgba(0,0,0,.45);
    color:#fff;
    backdrop-filter:blur(12px);
}

.cinema-map-overlay strong,
.cinema-map-overlay span {
    display:block;
}

.cinema-map-overlay strong {
    margin-bottom:7px;
    font-size:22px;
    font-weight:950;
}

.cinema-map-overlay span {
    color:#ccc;
}

@keyframes mapPulse {
    50% { transform:scale(1.18); }
}


.video-hero {
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:center;
    overflow:hidden;
    isolation:isolate;
    background:#050505;
}



@keyframes festivalVideoZoom {
    from { transform:scale(1.035); }
    to { transform:scale(1.09); }
}

.video-hero__overlay {
    position:absolute;
    inset:0;
    z-index:-4;
    background:
            linear-gradient(90deg,rgba(0,0,0,.91) 0%,rgba(0,0,0,.62) 48%,rgba(0,0,0,.18) 100%),
            linear-gradient(0deg,rgba(0,0,0,.78) 0%,transparent 48%,rgba(0,0,0,.35) 100%);
}

.video-hero__vignette {
    position:absolute;
    inset:0;
    z-index:-3;
    box-shadow:inset 0 0 180px rgba(0,0,0,.58);
    pointer-events:none;
}

.video-hero__grain {
    position:absolute;
    inset:0;
    z-index:-2;
    opacity:.055;
    pointer-events:none;
    background-image:repeating-radial-gradient(circle at 20% 30%,#fff 0 1px,transparent 1px 5px);
    mix-blend-mode:screen;
}

.video-hero__content {
    position:relative;
    z-index:2;
    padding-top:145px;
    padding-bottom:125px;
    color:#fff;

    /* Le contenu reste totalement invisible pendant la première lecture. */
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(18px);
}

.video-hero__badge {
    display:inline-flex;
    margin-bottom:24px;
    padding:10px 18px;
    border-radius:999px;
    background:var(--acdh-yellow);
    color:#000;
    font-size:13px;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.video-hero h1 {
    max-width:980px;
    margin:0;
    color:#fff;
    font-size:clamp(54px,8.5vw,118px);
    font-weight:950;
    line-height:.86;
    letter-spacing:-.065em;
    text-shadow:0 10px 35px rgba(0,0,0,.42);
}

.video-hero h1 span {
    color:var(--acdh-yellow);
}

.video-hero__content > p {
    max-width:720px;
    margin:31px 0 36px;
    color:rgba(255,255,255,.86);
    font-size:clamp(18px,2vw,24px);
    line-height:1.62;
}

.video-hero__actions {
    display:flex;
    flex-wrap:wrap;
    gap:14px;
}

.video-hero__button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:57px;
    padding:15px 25px;
    border:2px solid transparent;
    border-radius:999px;
    font-weight:950;
    text-decoration:none;
    transition:.28s ease;
}

.video-hero__button:hover {
    transform:translateY(-4px);
}

.video-hero__button--primary {
    background:var(--acdh-yellow);
    color:#000;
}

.video-hero__button--primary:hover {
    border-color:var(--acdh-yellow);
    background:transparent;
    color:var(--acdh-yellow);
}

.video-hero__button--secondary {
    border-color:rgba(255,255,255,.65);
    background:rgba(255,255,255,.09);
    color:#fff;
    backdrop-filter:blur(10px);
}

.video-hero__button--secondary:hover {
    background:#fff;
    color:#000;
}

.video-hero__controls {
    position:absolute;
    right:28px;
    bottom:30px;
    z-index:4;
    display:flex;
    align-items:center;
    gap:9px;
}

.video-hero__controls button {
    min-height:46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border:1px solid rgba(255,255,255,.36);
    border-radius:999px;
    padding:0 15px;
    background:rgba(0,0,0,.43);
    color:#fff;
    font-weight:850;
    cursor:pointer;
    backdrop-filter:blur(10px);
}

.video-hero__controls button:last-child {
    width:46px;
    padding:0;
}

.video-hero__controls i {
    font-size:21px;
}

.video-hero__scroll {
    position:absolute;
    left:50%;
    bottom:28px;
    z-index:4;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:3px;
    color:#fff;
    font-size:11px;
    font-weight:900;
    letter-spacing:.1em;
    text-decoration:none;
    text-transform:uppercase;
    transform:translateX(-50%);
}

.video-hero__scroll i {
    color:var(--acdh-yellow);
    font-size:28px;
    animation:heroScroll 1.3s ease-in-out infinite;
}

@keyframes heroScroll {
    50% { transform:translateY(6px); }
}

@media(max-width:767px) {
    .video-hero {
        min-height:760px;
    }

    .video-hero__media {
        object-position:center;
        animation:none;
    }

    .video-hero__overlay {
        background:
                linear-gradient(0deg,rgba(0,0,0,.9),rgba(0,0,0,.35) 60%,rgba(0,0,0,.42)),
                linear-gradient(90deg,rgba(0,0,0,.45),transparent);
    }

    .video-hero__content {
        padding-top:150px;
        padding-bottom:155px;
    }

    .video-hero h1 {
        font-size:clamp(49px,15vw,76px);
    }

    .video-hero__actions {
        align-items:stretch;
        flex-direction:column;
    }

    .video-hero__button {
        width:100%;
    }

    .video-hero__controls {
        right:14px;
        bottom:76px;
    }

    .video-hero__controls button span {
        display:none;
    }

    .video-hero__controls button {
        width:46px;
        padding:0;
    }
}

@media(prefers-reduced-motion:reduce) {
    .candle-body,
    .candle-wick,
    .candle-spark,
    .candle-flame,
    .candle-flame-outer,
    .candle-flame-inner,
    .candle-halo,
    .candle-particles .particle,
    .candle-smoke,
    .cinema-intro__text,
    .cinema-intro button {
        animation:none!important;
        opacity:1!important;
        transform:none!important;
    }
    .video-hero__media,
    .video-hero__scroll i {
        animation:none;
    }
}


.cinema-intro {
    position:fixed;
    inset:0;
    z-index:2147483647;
    display:grid;
    place-items:center;
    overflow:hidden;
    background:#000;
    color:#fff;
    visibility:visible;
    opacity:1;
    transition:opacity .9s ease,visibility .9s ease;
}

.cinema-intro__grain {
    position:absolute;
    inset:0;
    opacity:.07;
    background-image:repeating-radial-gradient(circle at 20% 30%,#fff 0 1px,transparent 1px 5px);
    mix-blend-mode:screen;
}

.cinema-intro__beam {
    position:absolute;
    left:50%;
    top:-18%;
    width:240px;
    height:145%;
    transform:translateX(-50%);
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent);
    filter:blur(20px);
    animation:introBeam 4s ease-in-out infinite alternate;
}

.cinema-intro__stage {
    position:relative;
    z-index:2;
    width:min(760px,calc(100% - 40px));
    text-align:center;
}

.cinema-candle {
    width:240px;
    max-width:58vw;
    margin:0 auto 20px;
}

.intro-candle-body {
    opacity:0;
    transform-origin:120px 292px;
    animation:candleBodyIn .8s .2s ease-out forwards;
}

.intro-wick {
    opacity:0;
    animation:wickIn .45s 1s ease-out forwards;
}

.intro-spark {
    opacity:0;
    transform-origin:120px 112px;
    animation:sparkIgnition .7s 1.5s ease-out forwards;
}

.intro-flame {
    opacity:0;
    transform-origin:120px 117px;
    animation:flameIgnition 1.5s 2.1s cubic-bezier(.2,.8,.2,1) forwards;
}

.intro-flame-outer {
    transform-origin:120px 117px;
    animation:flameFlickerOuter 1.25s 3.35s ease-in-out infinite alternate;
}

.intro-flame-inner {
    transform-origin:120px 113px;
    animation:flameFlickerInner .9s 3.35s ease-in-out infinite alternate;
}

.intro-halo {
    opacity:0;
    transform-origin:120px 105px;
    animation:haloIgnition 2.1s 2.2s ease-out forwards,haloBreath 2.6s 4.3s ease-in-out infinite alternate;
}

.intro-smoke {
    opacity:0;
    animation:smokeRise 1.5s 1.35s ease-out forwards;
}

.intro-particle {
    opacity:0;
    animation:particleFloat 2s ease-out infinite;
}

.intro-particle.p1 { animation-delay:3.1s; }
.intro-particle.p2 { animation-delay:3.35s; }
.intro-particle.p3 { animation-delay:3.6s; }
.intro-particle.p4 { animation-delay:3.85s; }
.intro-particle.p5 { animation-delay:4.1s; }

.cinema-intro__copy {
    opacity:0;
    transform:translateY(18px);
    animation:introTextIn 1s 4.4s ease-out forwards;
}

.cinema-intro__copy p {
    margin:0 0 12px;
    color:#e7e7e7;
    font-family:Georgia,serif;
    font-size:clamp(22px,4vw,38px);
    font-style:italic;
    line-height:1.35;
}

.cinema-intro__copy strong {
    display:block;
    color:var(--acdh-yellow);
    font-size:15px;
    letter-spacing:.15em;
    text-transform:uppercase;
}

.cinema-intro button {
    margin-top:28px;
    border:1px solid rgba(255,255,255,.45);
    border-radius:999px;
    padding:12px 22px;
    background:rgba(255,255,255,.08);
    color:#fff;
    font-weight:850;
    cursor:pointer;
    opacity:0;
    transform:translateY(10px);
    animation:introButtonIn .7s 5.25s ease-out forwards;
}

.cinema-intro__flash {
    position:absolute;
    inset:0;
    z-index:5;
    background:#fff;
    opacity:0;
    pointer-events:none;
}

.cinema-intro.is-transitioning .cinema-intro__flash {
    animation:introFlash 1.15s ease-in-out forwards;
}

.video-hero {
    --hero-overlay-opacity:1;
}

.video-hero__overlay,
.video-hero__vignette {
    transition:opacity 2.2s ease;
}

.video-hero__content {
    transition:opacity 1.6s ease,transform 1.6s ease;
}

.video-hero__actions {
    transition:opacity 1.2s ease,transform 1.2s ease;
}

.video-hero.is-first-playing .video-hero__content {
    opacity:0;
    transform:translateY(-28px);
    pointer-events:none;
}

.video-hero.is-first-playing .video-hero__actions {
    opacity:0;
    transform:translateY(28px);
}

.video-hero.is-first-playing .video-hero__overlay {
    opacity:.18;
}

.video-hero.is-first-playing .video-hero__vignette {
    opacity:.35;
}

.video-hero.is-text-returned .video-hero__content {
    opacity:1;
    visibility:visible;
    transform:none;
    pointer-events:auto;
}

.video-hero.is-text-returned .video-hero__badge,
.video-hero.is-text-returned h1,
.video-hero.is-text-returned .video-hero__content > p,
.video-hero.is-text-returned .video-hero__actions,
.video-hero.is-text-returned .reveal {
    opacity:1 !important;
    transform:none !important;
    visibility:visible !important;
}

.video-hero.is-text-returned .video-hero__actions {
    opacity:1;
    transform:none;
}

.video-hero.is-text-returned .video-hero__overlay {
    opacity:1;
}

.video-hero.is-text-returned .video-hero__vignette {
    opacity:1;
}

@keyframes introBeam {
    from { opacity:.28; transform:translateX(-50%) rotate(-2deg); }
    to { opacity:.68; transform:translateX(-50%) rotate(2deg); }
}

@keyframes candleBodyIn {
    from { opacity:0; transform:translateY(20px) scale(.94); }
    to { opacity:1; transform:none; }
}

@keyframes wickIn {
    from { opacity:0; stroke-dasharray:45; stroke-dashoffset:45; }
    to { opacity:1; stroke-dasharray:45; stroke-dashoffset:0; }
}

@keyframes sparkIgnition {
    0% { opacity:0; transform:scale(.1) rotate(0deg); }
    45% { opacity:1; transform:scale(1.6) rotate(18deg); }
    100% { opacity:0; transform:scale(.42) rotate(38deg); }
}

@keyframes flameIgnition {
    0% { opacity:0; transform:scale(.05,.02) translateY(25px); }
    38% { opacity:.95; transform:scale(.45,.7) translateY(8px); }
    72% { opacity:1; transform:scale(1.14,.92) translateY(-3px); }
    100% { opacity:1; transform:scale(1); }
}

@keyframes flameFlickerOuter {
    0% { transform:rotate(-2deg) scaleX(.95) scaleY(1.03); }
    50% { transform:rotate(1.5deg) scaleX(1.04) scaleY(.97); }
    100% { transform:rotate(-1deg) scaleX(.98) scaleY(1.06); }
}

@keyframes flameFlickerInner {
    0% { transform:rotate(1deg) scale(.94,1.05); }
    100% { transform:rotate(-2deg) scale(1.03,.96); }
}

@keyframes haloIgnition {
    from { opacity:0; transform:scale(.2); }
    to { opacity:.95; transform:scale(1); }
}

@keyframes haloBreath {
    from { opacity:.62; transform:scale(.96); }
    to { opacity:1; transform:scale(1.08); }
}

@keyframes smokeRise {
    0% { opacity:0; transform:translateY(7px) scale(.72); }
    20% { opacity:.5; }
    100% { opacity:0; transform:translateY(-20px) translateX(7px) scale(1.22); }
}

@keyframes particleFloat {
    0% { opacity:0; transform:translateY(5px) scale(.5); }
    18% { opacity:1; }
    100% { opacity:0; transform:translateY(-38px) translateX(9px) scale(.1); }
}

@keyframes introTextIn {
    from { opacity:0; transform:translateY(18px); filter:blur(5px); }
    to { opacity:1; transform:none; filter:none; }
}

@keyframes introButtonIn {
    from { opacity:0; transform:translateY(10px); }
    to { opacity:1; transform:none; }
}

@keyframes introFlash {
    0% { opacity:0; }
    45% { opacity:1; }
    100% { opacity:0; }
}

@media(prefers-reduced-motion:reduce) {
    .intro-candle-body,
    .intro-wick,
    .intro-spark,
    .intro-flame,
    .intro-flame-outer,
    .intro-flame-inner,
    .intro-halo,
    .intro-smoke,
    .intro-particle,
    .cinema-intro__copy,
    .cinema-intro button {
        animation:none!important;
        opacity:1!important;
        transform:none!important;
    }

    .cinema-intro__flash {
        display:none;
    }
}


.cinema-intro__quote {
    position:absolute;
    inset:0;
    z-index:3;
    display:grid;
    place-items:center;
    padding:30px;
    opacity:0;
    animation:introQuoteSequence 2.8s .2s ease-in-out forwards;
}

.cinema-intro__quote p {
    max-width:880px;
    margin:0;
    color:#f4f4f4;
    font-family:Georgia,serif;
    font-size:clamp(26px,4vw,48px);
    font-style:italic;
    line-height:1.45;
    text-align:center;
}

.cinema-intro__stage {
    opacity:0;
    transform:scale(.98);
    animation:introStageIn .8s 2.9s ease-out forwards;
}

.cinema-intro__identity {
    opacity:0;
    transform:translateY(18px);
    animation:introIdentityIn 1s 6.1s ease-out forwards;
}

.cinema-intro__identity span {
    display:block;
    margin-bottom:10px;
    color:var(--acdh-yellow);
    font-size:13px;
    font-weight:950;
    letter-spacing:.15em;
    text-transform:uppercase;
}

.cinema-intro__identity h2 {
    margin:0;
    color:#fff;
    font-size:clamp(28px,4.6vw,56px);
    font-weight:950;
    line-height:1;
    letter-spacing:-.04em;
}

.cinema-intro__identity p {
    margin:12px 0 0;
    color:#d5d5d5;
    font-size:16px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.cinema-intro button {
    animation:introButtonIn .7s 7.1s ease-out forwards;
}

.cinema-intro.is-transitioning .cinema-intro__flash {
    animation:introFlash 1.25s ease-in-out forwards;
}

@keyframes introQuoteSequence {
    0% { opacity:0; transform:translateY(12px); filter:blur(5px); }
    22% { opacity:1; transform:none; filter:none; }
    72% { opacity:1; transform:none; filter:none; }
    100% { opacity:0; transform:translateY(-10px); filter:blur(3px); }
}

@keyframes introStageIn {
    from { opacity:0; transform:scale(.98); }
    to { opacity:1; transform:none; }
}

@keyframes introIdentityIn {
    from { opacity:0; transform:translateY(18px); filter:blur(5px); }
    to { opacity:1; transform:none; filter:none; }
}

@media(max-width: 991px) {
    .intro-grid,
    .signature-grid,
    .editorial-grid,
    .experience-grid,
    .cinema-network-grid {
        grid-template-columns: 1fr;
    }

    .festival-mode-inner {
        align-items:flex-start;
        flex-direction:column;
    }

    .signature-grid,
    .editorial-grid {
        gap:45px;
    }

    .join-inner {
        align-items:flex-start;
        flex-direction:column;
    }

    .join-actions {
        width:100%;
    }

    .modern-history .history-content {
        margin: 30px 20px 0;
    }

    .history-points {
        grid-template-columns: 1fr;
    }

    .modern-video-card img {
        height: 360px;
    }
}

@media(max-width: 767px) {
    .karim-highlight {
        flex-direction: column;
        align-items: center;
        margin-bottom: 45px;
        padding: 28px 24px;
        text-align: center;
    }

    .karim-icon {
        width: 82px;
        height: 82px;
        flex-basis: 82px;
        font-size: 42px;
    }

    .karim-content p {
        margin-left: auto;
        margin-right: auto;
    }

    .modern-banner-content h1 {
        font-size: 42px;
    }

    .modern-banner-content p {
        font-size: 18px;
    }

    .festival-intro-section,
    .palmares-section,
    .awards-section,
    .modern-carousel-section {
        padding: 75px 0 55px;
    }

    .award-img {
        height: 320px;
    }

    .festival-stats {
        grid-template-columns:1fr;
    }

    .festival-stat {
        min-height:auto;
    }

    .festival-signature,
    .festival-editorial,
    .festival-experience,
    .cinema-network {
        padding:80px 0;
    }

    .cinema-map-card {
        min-height:420px;
    }

    .laurel-card img {
        height: 180px;
    }
    .banner-social {
        display: none !important;
    }
}

/* Une seule bulle Lumi sur la page d'accueil */
#acdhChatToggle {
    z-index: 10000 !important;
}

#acdhChatToggle ~ #acdhChatToggle {
    display: none !important;
}

/* =========================================================
       CORRECTION HERO VIDÉO RESPONSIVE
       La vidéo remplit le hero sans translation ni zoom décalant.
    ========================================================== */
.video-hero {
    position: relative;
    width: 100%;
    height: 100vh;
    height: 100svh;
    min-height: 650px;
    max-height: 1080px;
    display: flex;
    align-items: center;
    overflow: hidden;
    isolation: isolate;
    margin: 0;
    padding: 0;
    background: #050505;
}

.video-hero__media {
    position: absolute;
    inset: 0;
    top: 0;
    left: 0;
    z-index: -5;
    display: block;
    width: 100% !important;
    height: 100% !important;
    min-width: 0;
    min-height: 0;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    object-fit: cover;
    object-position: center center;
    transform: none !important;
    animation: none !important;
}

.video-hero__content {
    width: 100%;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding-top: 130px;
    padding-bottom: 120px;
}

@media (max-width: 991px) {
    .video-hero {
        height: 100vh;
        height: 100svh;
        min-height: 620px;
        max-height: none;
    }

    .video-hero__content {
        padding-top: 125px;
        padding-bottom: 120px;
    }
}

@media (max-width: 767px) {
    .video-hero {
        height: 100vh;
        height: 100svh;
        min-height: 600px;
        max-height: none;
    }

    .video-hero__media {
        inset: 0;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover;
        object-position: 50% 50%;
        transform: none !important;
    }

    .video-hero__content {
        min-height: 100%;
        justify-content: flex-end;
        padding: 105px 20px 115px;
    }

    .video-hero h1 {
        width: 100%;
        font-size: clamp(42px, 13vw, 68px);
        line-height: .94;
    }

    .video-hero h1 br {
        display: none;
    }

    .video-hero__content > p {
        margin: 22px 0 26px;
        font-size: 17px;
        line-height: 1.55;
    }

    .video-hero__controls {
        right: 14px;
        bottom: 18px;
    }

    .video-hero__scroll {
        display: none;
    }
}

@media (max-width: 420px) {
    .video-hero {
        min-height: 560px;
    }

    .video-hero__content {
        padding: 95px 16px 95px;
    }

    .video-hero h1 {
        font-size: clamp(38px, 12vw, 56px);
    }
}

@media (max-height: 520px) and (orientation: landscape) {
    .video-hero {
        height: auto;
        min-height: 520px;
    }

    .video-hero__content {
        justify-content: center;
        padding-top: 100px;
        padding-bottom: 70px;
    }

    .video-hero h1 {
        font-size: clamp(38px, 8vw, 60px);
    }
}


.home-section{padding:110px 0}.home-section--light{background:#fff}.home-section--dark{background:#070707;color:#fff}.home-section--yellow{background:#FFED00}.home-section--palmares{background:#f4f4f4}.home-section--archives{background:#080808;color:#fff}
.home-section-head{max-width:920px;margin:0 auto 55px;text-align:center}.home-section-head h2{margin:12px 0 0;color:#070707;font-size:clamp(38px,5vw,66px);font-weight:950;line-height:1;letter-spacing:-.045em}.home-section-head p{margin:20px auto 0;color:#666;font-size:18px;line-height:1.7}.home-section-head--light h2,.home-section-head--light p{color:#fff}.home-kicker{display:inline-block;padding:7px 15px;border-radius:999px;background:#FFED00;color:#000;font-size:12px;font-weight:950;letter-spacing:.1em;text-transform:uppercase}
.home-split{display:grid;grid-template-columns:1.08fr .92fr;gap:70px;align-items:center}.home-split--reverse{grid-template-columns:.92fr 1.08fr}.home-copy{color:#444;font-size:17px;line-height:1.8}.home-copy p{margin:0 0 18px}.home-copy--light{color:#ccc}.home-link{display:inline-flex;align-items:center;gap:8px;margin-top:8px;color:#000;font-weight:900;text-decoration:none}.home-photo-card{margin:0;overflow:hidden;border-radius:30px;background:#111;box-shadow:0 25px 70px rgba(0,0,0,.18)}.home-photo-card img{display:block;width:100%;height:560px;object-fit:cover}.home-photo-card figcaption{padding:18px 22px;color:#fff;font-weight:800}.home-photo-card--dark img{height:430px;object-fit:contain;background:#fff}
.home-cards-3,.home-media-grid,.home-program-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.home-card{padding:34px;border-radius:28px}.home-card--dark{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.055)}.home-card>i,.home-program-grid article>i,.home-action-card>i,.home-media-card>i{width:62px;height:62px;display:grid;place-items:center;margin-bottom:24px;border-radius:20px;background:#FFED00;color:#000;font-size:32px}.home-card h3{color:#fff;font-size:25px;font-weight:950}.home-card p{margin:14px 0 0;color:#bbb;line-height:1.75}
.home-partner-visual{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.home-partner-visual div{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;border-radius:26px;background:#0b0b0b;color:#fff}.home-partner-visual i{font-size:42px;color:#FFED00}.home-partner-visual span{font-weight:900}
.home-dual{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}.home-action-card{padding:40px;border-radius:30px;background:#fff}.home-action-card>span{display:block;margin-bottom:10px;font-size:12px;font-weight:950;letter-spacing:.11em;text-transform:uppercase}.home-action-card h2{margin:0 0 18px;font-size:32px;font-weight:950}.home-action-card p{color:#555;line-height:1.7}
.home-btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 22px;border-radius:999px;font-weight:950;text-decoration:none;border:2px solid transparent}.home-btn--black{background:#000;color:#fff}.home-btn--yellow{background:#FFED00;color:#000}.home-btn--outline{border-color:#000;color:#000;background:transparent}.home-btn--outline-dark{border-color:#000;color:#000;background:transparent}
.home-selection-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.selection-card{min-height:220px;display:flex;flex-direction:column;justify-content:flex-end;padding:28px;border:1px solid rgba(255,255,255,.12);border-radius:26px;background:linear-gradient(160deg,#151515,#090909);color:#fff;text-decoration:none}.selection-card i{margin-bottom:auto;color:#FFED00;font-size:38px}.selection-card strong{font-size:22px}.selection-card span{margin-top:7px;color:#aaa}.home-center-action{text-align:center;margin-top:32px}
.home-program-grid article{padding:34px;border:1px solid #e9e9e9;border-radius:28px;background:#fafafa}.home-program-grid h3{font-size:25px;font-weight:950}.home-program-grid p{color:#666;line-height:1.65}.home-program-grid a,.home-program-grid button{display:inline-flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;color:#000;font-weight:950;text-decoration:none;cursor:pointer}.home-lumi-card{background:#080808!important;color:#fff!important;border-color:#080808!important}.home-lumi-card h3{color:#fff}.home-lumi-card p{color:#bbb}.home-lumi-card button{color:#FFED00}
.home-inline-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.home-submit-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:55px;align-items:start}.submit-criteria{padding:36px;border-radius:30px;background:#fff;color:#111}.submit-criteria h3{font-size:24px;font-weight:950}.submit-criteria ul{padding-left:20px;color:#555;line-height:1.7}
.home-media-card{padding:34px;border-radius:28px;background:#f7f7f7;color:#111;text-decoration:none}.home-media-card h3{font-size:25px;font-weight:950}.home-media-card p{margin:12px 0 0;color:#666;line-height:1.65}
.home-final-cta{padding:75px 0;background:#FFED00}.home-final-cta__inner{display:flex;align-items:center;justify-content:space-between;gap:45px}.home-final-cta span{font-size:12px;font-weight:950;letter-spacing:.12em;text-transform:uppercase}.home-final-cta h2{margin:8px 0 10px;font-size:clamp(36px,5vw,62px);font-weight:950}.home-final-cta p{margin:0;color:#222;font-size:17px}
@media(max-width:991px){.home-split,.home-split--reverse,.home-submit-grid{grid-template-columns:1fr}.home-cards-3,.home-program-grid,.home-media-grid{grid-template-columns:1fr}.home-dual{grid-template-columns:1fr}.home-selection-grid{grid-template-columns:repeat(2,1fr)}.home-final-cta__inner{align-items:flex-start;flex-direction:column}}
@media(max-width:767px){.home-section{padding:75px 0}.home-selection-grid{grid-template-columns:1fr}.home-partner-visual{grid-template-columns:1fr 1fr}.home-photo-card img{height:390px}}


.hero-countdown{width:min(760px,100%);margin-top:28px;padding:18px 20px;border:1px solid rgba(255,255,255,.22);border-radius:24px;background:rgba(0,0,0,.42);box-shadow:0 16px 45px rgba(0,0,0,.22);backdrop-filter:blur(10px)}
.hero-countdown__top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}
.hero-countdown__label{display:inline-flex;align-items:center;min-height:32px;padding:6px 12px;border-radius:999px;background:var(--acdh-yellow);color:#000!important;font-size:11px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.hero-countdown__top strong{color:#fff;font-size:14px;font-weight:900}
.hero-countdown__timer{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.hero-countdown__item{padding:12px 10px;border-radius:16px;background:rgba(255,255,255,.08);text-align:center}
.hero-countdown__item span{display:block;color:var(--acdh-yellow)!important;font-size:clamp(24px,3vw,38px);font-weight:950;line-height:1}
.hero-countdown__item small{display:block;margin-top:6px;color:#fff;font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.video-hero.is-first-playing .hero-countdown{opacity:0;transform:translateY(20px);pointer-events:none}
.video-hero.is-text-returned .hero-countdown{opacity:1!important;transform:none!important;visibility:visible!important}
@media(max-width:767px){.hero-countdown{margin-top:20px;padding:14px;border-radius:20px}.hero-countdown__top{align-items:flex-start;flex-direction:column;gap:8px}.hero-countdown__timer{gap:7px}.hero-countdown__item{padding:10px 5px;border-radius:13px}.hero-countdown__item span{font-size:clamp(21px,8vw,32px)}.hero-countdown__item small{font-size:8px}}
@media(max-width:420px){.hero-countdown__timer{grid-template-columns:repeat(2,1fr)}}


/* Hero : contenu visible dès le début de la vidéo */
.video-hero .video-hero__content {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
}
.video-hero .video-hero__badge,
.video-hero h1,
.video-hero .video-hero__content > p,
.video-hero .video-hero__actions,
.video-hero .hero-countdown,
.video-hero .reveal {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}


/* Intro Amnesty : bougie + barbelés en plein écran */
#cinemaIntro {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    overflow: hidden !important;
    background: #000 !important;
}

#cinemaIntro > .cinema-candle--photo {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    z-index: 0 !important;
    overflow: hidden !important;
}

#cinemaIntro > .cinema-candle--photo .cinema-candle__image {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: none !important;
}

#cinemaIntro > .cinema-candle--photo::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.22) 55%, rgba(0,0,0,.62));
    pointer-events: none;
}

#cinemaIntro .cinema-intro__grain,
#cinemaIntro .cinema-intro__beam {
    z-index: 1 !important;
}

#cinemaIntro .cinema-intro__quote,
#cinemaIntro .cinema-intro__stage {
    z-index: 3 !important;
}

@media (max-width: 767px) {
    #cinemaIntro {
        height: 100svh !important;
    }
}


/* INTRO : animation du texte + transition vers la vidéo */
#cinemaIntro .cinema-intro__stage {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

#cinemaIntro .cinema-intro__identity {
    opacity: 0 !important;
    transform: translateY(26px) scale(.985) !important;
    filter: blur(6px) !important;
    animation: introIdentityReveal 1.15s .35s cubic-bezier(.22,.8,.22,1) forwards !important;
}

#cinemaIntro .cinema-intro__identity span {
    opacity: 0;
    transform: translateY(10px);
    animation: introLineReveal .7s .85s ease-out forwards !important;
}

#cinemaIntro .cinema-intro__identity h2 {
    opacity: 0;
    transform: translateY(14px);
    animation: introLineReveal .9s 1.05s ease-out forwards !important;
}

#cinemaIntro .cinema-intro__identity p {
    opacity: 0;
    transform: translateY(10px);
    animation: introLineReveal .75s 1.35s ease-out forwards !important;
}

#cinemaIntro button {
    opacity: 0 !important;
    transform: translateY(14px) !important;
    animation: introButtonReveal .7s 1.75s ease-out forwards !important;
    transition: transform .25s ease, background .25s ease, color .25s ease !important;
}

#cinemaIntro button:hover {
    transform: translateY(-2px) !important;
    background: var(--acdh-yellow) !important;
    color: #000 !important;
    border-color: var(--acdh-yellow) !important;
}

#cinemaIntro::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 4;
    background: #fff;
    opacity: 0;
    pointer-events: none;
}

#cinemaIntro.is-transitioning {
    animation: introContainerFade .95s ease forwards !important;
}

#cinemaIntro.is-transitioning::after {
    animation: introWhiteFlash .95s ease-in-out forwards !important;
}

#cinemaIntro.is-transitioning .cinema-intro__identity,
#cinemaIntro.is-transitioning button {
    animation: introExitText .55s ease forwards !important;
}

@keyframes introIdentityReveal {
    from {
        opacity: 0;
        transform: translateY(26px) scale(.985);
        filter: blur(6px);
    }
    to {
        opacity: 1;
        transform: none;
        filter: none;
    }
}

@keyframes introLineReveal {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes introButtonReveal {
    from {
        opacity: 0;
        transform: translateY(14px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes introExitText {
    to {
        opacity: 0;
        transform: translateY(-16px) scale(.985);
        filter: blur(3px);
    }
}

@keyframes introWhiteFlash {
    0%   { opacity: 0; }
    42%  { opacity: .92; }
    100% { opacity: 0; }
}

@keyframes introContainerFade {
    0%   { opacity: 1; }
    65%  { opacity: 1; }
    100% { opacity: 0; }
}


/* =========================================================
       INTRO — TEXTE VISIBLE ET ANIMÉ
    ========================================================== */
#cinemaIntro .cinema-intro__stage {
    position: relative !important;
    z-index: 5 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    filter: none !important;
}

#cinemaIntro .cinema-intro__identity {
    position: relative !important;
    z-index: 6 !important;
    opacity: 0 !important;
    visibility: visible !important;
    transform: translateY(24px) !important;
    filter: blur(5px) !important;
    animation: none !important;
}

#cinemaIntro.intro-ready .cinema-intro__identity {
    animation: acdhIntroIdentity 1s .15s ease-out forwards !important;
}

#cinemaIntro .cinema-intro__identity span,
#cinemaIntro .cinema-intro__identity h2,
#cinemaIntro .cinema-intro__identity p {
    opacity: 0 !important;
    visibility: visible !important;
    transform: translateY(12px) !important;
    animation: none !important;
}

#cinemaIntro.intro-ready .cinema-intro__identity span {
    animation: acdhIntroLine .65s .55s ease-out forwards !important;
}

#cinemaIntro.intro-ready .cinema-intro__identity h2 {
    animation: acdhIntroLine .8s .75s ease-out forwards !important;
}

#cinemaIntro.intro-ready .cinema-intro__identity p {
    animation: acdhIntroLine .7s 1s ease-out forwards !important;
}

#cinemaIntro #skipCinemaIntro {
    position: relative !important;
    z-index: 6 !important;
    opacity: 0 !important;
    visibility: visible !important;
    transform: translateY(12px) !important;
    animation: none !important;
}

#cinemaIntro.intro-ready #skipCinemaIntro {
    animation: acdhIntroButton .65s 1.3s ease-out forwards !important;
}

#cinemaIntro.is-transitioning .cinema-intro__identity,
#cinemaIntro.is-transitioning #skipCinemaIntro {
    animation: acdhIntroExit .45s ease forwards !important;
}

@keyframes acdhIntroIdentity {
    0% {
        opacity: 0;
        transform: translateY(24px);
        filter: blur(5px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
        filter: blur(0);
    }
}

@keyframes acdhIntroLine {
    0% {
        opacity: 0;
        transform: translateY(12px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes acdhIntroButton {
    0% {
        opacity: 0;
        transform: translateY(12px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes acdhIntroExit {
    0% {
        opacity: 1;
        transform: translateY(0);
        filter: blur(0);
    }
    100% {
        opacity: 0;
        transform: translateY(-14px);
        filter: blur(3px);
    }
}



/* HERO VIDÉO : descendre le bloc texte */
.video-hero__content {
    justify-content: flex-end !important;
    padding-top: 160px !important;
    padding-bottom: 70px !important;
}

@media (max-width: 991px) {
    .video-hero__content {
        padding-top: 135px !important;
        padding-bottom: 75px !important;
    }
}

@media (max-width: 767px) {
    .video-hero__content {
        justify-content: flex-end !important;
        padding-top: 110px !important;
        padding-bottom: 85px !important;
    }
}

/* =========================================================
       INTRO PROPRE — IMAGE + TEXTE ANIMÉ + TRANSITION AUTO
    ========================================================== */
#cinemaIntro {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    overflow: hidden !important;
    background: #000 !important;
    z-index: 2147483647 !important;
}

#cinemaIntro > .cinema-candle--photo {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    z-index: 0 !important;
}

#cinemaIntro > .cinema-candle--photo .cinema-candle__image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: none !important;
}

#cinemaIntro > .cinema-candle--photo::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
            linear-gradient(180deg, rgba(0,0,0,.16), rgba(0,0,0,.10) 45%, rgba(0,0,0,.62));
    pointer-events: none;
}

#cinemaIntro .cinema-intro__grain,
#cinemaIntro .cinema-intro__beam,
#cinemaIntro .cinema-intro__quote,
#cinemaIntro .cinema-intro__flash {
    display: none !important;
}

#cinemaIntro .cinema-intro__stage {
    position: relative !important;
    z-index: 3 !important;
    width: min(860px, calc(100% - 40px)) !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    text-align: center !important;
}

#cinemaIntro .cinema-intro__identity {
    opacity: 0;
    visibility: visible;
    transform: translateY(28px);
    filter: blur(6px);
    animation: acdhIntroIdentity 1.05s .25s cubic-bezier(.22,.8,.22,1) forwards;
}

#cinemaIntro .cinema-intro__identity span {
    display: block;
    margin-bottom: 10px;
    color: var(--acdh-yellow) !important;
    opacity: 0;
    transform: translateY(12px);
    animation: acdhIntroLine .65s .70s ease-out forwards;
}

#cinemaIntro .cinema-intro__identity h2 {
    margin: 0;
    color: #fff !important;
    opacity: 0;
    transform: translateY(16px);
    animation: acdhIntroLine .8s .95s ease-out forwards;
}

#cinemaIntro .cinema-intro__identity p {
    color: #fff !important;
    opacity: 0;
    transform: translateY(12px);
    animation: acdhIntroLine .7s 1.25s ease-out forwards;
}

#cinemaIntro #skipCinemaIntro {
    position: relative;
    z-index: 4;
    opacity: 0;
    visibility: visible;
    transform: translateY(14px);
    animation: acdhIntroButton .65s 1.55s ease-out forwards;
}

#cinemaIntro.is-transitioning .cinema-intro__identity,
#cinemaIntro.is-transitioning #skipCinemaIntro {
    animation: acdhIntroExit .5s ease forwards !important;
}

#cinemaIntro::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 8;
    background: #fff;
    opacity: 0;
    pointer-events: none;
}

#cinemaIntro.is-transitioning::after {
    animation: acdhIntroFlash .95s ease-in-out forwards;
}

@keyframes acdhIntroIdentity {
    from { opacity:0; transform:translateY(28px); filter:blur(6px); }
    to   { opacity:1; transform:none; filter:none; }
}

@keyframes acdhIntroLine {
    from { opacity:0; transform:translateY(14px); }
    to   { opacity:1; transform:none; }
}

@keyframes acdhIntroButton {
    from { opacity:0; transform:translateY(14px) scale(.98); }
    to   { opacity:1; transform:none; }
}

@keyframes acdhIntroExit {
    from { opacity:1; transform:none; filter:none; }
    to   { opacity:0; transform:translateY(-18px); filter:blur(4px); }
}

@keyframes acdhIntroFlash {
    0%   { opacity:0; }
    45%  { opacity:.92; }
    100% { opacity:0; }
}

@media (max-width: 767px) {
    #cinemaIntro {
        height: 100svh !important;
    }

    #cinemaIntro .cinema-intro__stage {
        width: calc(100% - 28px) !important;
    }
}


/* =========================================================
       INTRO — IMAGE STATIQUE, TEXTE SEUL ANIMÉ
    ========================================================== */

/* L'image et ses conteneurs restent parfaitement fixes */
#cinemaIntro > .cinema-candle--photo,
#cinemaIntro > .cinema-candle--photo *,
#cinemaIntro > .cinema-candle--photo::before,
#cinemaIntro > .cinema-candle--photo::after {
    animation: none !important;
    transition: none !important;
    transform: none !important;
}

#cinemaIntro > .cinema-candle--photo {
    opacity: 1 !important;
}

#cinemaIntro > .cinema-candle--photo .cinema-candle__image {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
}

/* Aucun rayon/grain/effet animé autour de l'image */
#cinemaIntro .cinema-intro__beam,
#cinemaIntro .cinema-intro__grain,
#cinemaIntro .cinema-intro__quote,
#cinemaIntro .cinema-intro__flash {
    display: none !important;
    animation: none !important;
}

/* Seul le texte s'anime */
#cinemaIntro .cinema-intro__identity {
    opacity: 0;
    transform: translateY(28px);
    filter: blur(6px);
    animation: introOnlyTextBlock 1s .25s ease-out forwards !important;
}

#cinemaIntro .cinema-intro__identity span {
    opacity: 0;
    transform: translateY(12px);
    animation: introOnlyTextLine .65s .75s ease-out forwards !important;
}

#cinemaIntro .cinema-intro__identity h2 {
    opacity: 0;
    transform: translateY(16px);
    animation: introOnlyTextLine .8s 1s ease-out forwards !important;
}

#cinemaIntro .cinema-intro__identity p {
    opacity: 0;
    transform: translateY(12px);
    animation: introOnlyTextLine .7s 1.3s ease-out forwards !important;
}

#cinemaIntro #skipCinemaIntro {
    opacity: 0;
    transform: translateY(14px);
    animation: introOnlyTextButton .65s 1.65s ease-out forwards !important;
}

/* Sortie du texte avant la vidéo, sans animer l'image */
#cinemaIntro.is-transitioning .cinema-intro__identity,
#cinemaIntro.is-transitioning #skipCinemaIntro {
    animation: introOnlyTextExit .5s ease forwards !important;
}

@keyframes introOnlyTextBlock {
    from {
        opacity: 0;
        transform: translateY(28px);
        filter: blur(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
        filter: blur(0);
    }
}

@keyframes introOnlyTextLine {
    from {
        opacity: 0;
        transform: translateY(14px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes introOnlyTextButton {
    from {
        opacity: 0;
        transform: translateY(14px) scale(.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes introOnlyTextExit {
    from {
        opacity: 1;
        transform: translateY(0);
        filter: blur(0);
    }
    to {
        opacity: 0;
        transform: translateY(-18px);
        filter: blur(3px);
    }
}


/* =========================================================
       INTRO — TEXTE QUI MONTE DEPUIS LE BAS
       La bougie reste totalement statique.
    ========================================================== */

#cinemaIntro > .cinema-candle--photo,
#cinemaIntro > .cinema-candle--photo *,
#cinemaIntro > .cinema-candle--photo::before,
#cinemaIntro > .cinema-candle--photo::after {
    animation: none !important;
    transition: none !important;
    transform: none !important;
}

#cinemaIntro .cinema-intro__stage {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

#cinemaIntro .cinema-intro__identity {
    opacity: 0 !important;
    transform: translateY(90px) !important;
    filter: none !important;
    animation: introRiseFromBottom 1.15s .35s cubic-bezier(.22,.8,.22,1) forwards !important;
}

#cinemaIntro .cinema-intro__identity span,
#cinemaIntro .cinema-intro__identity h2,
#cinemaIntro .cinema-intro__identity p {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
}

#cinemaIntro #skipCinemaIntro {
    opacity: 0 !important;
    transform: translateY(55px) !important;
    animation: introButtonRise .8s 1.15s ease-out forwards !important;
}

#cinemaIntro.is-transitioning .cinema-intro__identity,
#cinemaIntro.is-transitioning #skipCinemaIntro {
    animation: introRiseExit .5s ease forwards !important;
}

@keyframes introRiseFromBottom {
    0% {
        opacity: 0;
        transform: translateY(90px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes introButtonRise {
    0% {
        opacity: 0;
        transform: translateY(55px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes introRiseExit {
    0% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 0;
        transform: translateY(-24px);
    }
}


/* INTRO : aucune bougie animée — photo de fond uniquement */
#cinemaIntro .cinema-candle:not(.cinema-candle--photo),
#cinemaIntro .cinema-candle__flame,
#cinemaIntro .cinema-candle__wick,
#cinemaIntro .cinema-candle__body,
#cinemaIntro .cinema-candle__glow,
#cinemaIntro .cinema-candle__halo,
#cinemaIntro .cinema-candle__barbed,
#cinemaIntro .barbed-wire,
#cinemaIntro .flame {
    display: none !important;
    animation: none !important;
}

/* La photo bougie + barbelés reste fixe */
#cinemaIntro > .cinema-candle--photo,
#cinemaIntro > .cinema-candle--photo *,
#cinemaIntro > .cinema-candle--photo::before,
#cinemaIntro > .cinema-candle--photo::after {
    animation: none !important;
    transition: none !important;
    transform: none !important;
}

/* Texte de l'intro rétabli et visible */
#cinemaIntro .cinema-intro__stage {
    display: block !important;
    position: relative !important;
    z-index: 10 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

#cinemaIntro .cinema-intro__identity {
    display: block !important;
    position: relative !important;
    z-index: 11 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
}

#cinemaIntro .cinema-intro__identity span,
#cinemaIntro .cinema-intro__identity h2,
#cinemaIntro .cinema-intro__identity p {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
}

#cinemaIntro .cinema-intro__identity h2,
#cinemaIntro .cinema-intro__identity p {
    color: #fff !important;
}

#cinemaIntro .cinema-intro__identity span {
    color: #FFED00 !important;
}

#cinemaIntro #skipCinemaIntro {
    position: relative !important;
    z-index: 11 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    animation: none !important;
}


/* =========================================================
       INTRO — TEXTE DU BAS VERS LE HAUT APRÈS 2 SECONDES
       La photo de la bougie reste totalement fixe.
    ========================================================== */

/* Bloc texte caché au départ */
#cinemaIntro .cinema-intro__identity {
    display: block !important;
    position: relative !important;
    z-index: 11 !important;
    opacity: 0 !important;
    visibility: visible !important;
    transform: translateY(110px) !important;
    filter: none !important;
    animation: acdhTextRiseAfter2s 1.15s 2s cubic-bezier(.22,.8,.22,1) forwards !important;
}

/* Les éléments internes suivent le bloc, sans animation indépendante */
#cinemaIntro .cinema-intro__identity span,
#cinemaIntro .cinema-intro__identity h2,
#cinemaIntro .cinema-intro__identity p {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
}

/* Le bouton monte juste après le texte */
#cinemaIntro #skipCinemaIntro {
    position: relative !important;
    z-index: 11 !important;
    opacity: 0 !important;
    visibility: visible !important;
    transform: translateY(70px) !important;
    animation: acdhButtonRiseAfterText .75s 2.65s ease-out forwards !important;
}

@keyframes acdhTextRiseAfter2s {
    0% {
        opacity: 0;
        transform: translateY(110px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes acdhButtonRiseAfterText {
    0% {
        opacity: 0;
        transform: translateY(70px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}


/* INTRO — état initial du texte, animation pilotée en JavaScript */
#cinemaIntro .cinema-intro__identity {
    opacity: 0 !important;
    visibility: visible !important;
    transform: translateY(110px) !important;
    filter: none !important;
    animation: none !important;
    transition: none !important;
}

#cinemaIntro .cinema-intro__identity span,
#cinemaIntro .cinema-intro__identity h2,
#cinemaIntro .cinema-intro__identity p {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
}

#cinemaIntro #skipCinemaIntro {
    opacity: 0 !important;
    visibility: visible !important;
    transform: translateY(70px) !important;
    animation: none !important;
    transition: none !important;
}
/* =====================================================
   TEXTES NOIRS SUR LES SECTIONS À FOND BLANC
   ===================================================== */

section[style*="background: #fff"],
section[style*="background:#fff"],
section[style*="background: white"],
section[style*="background:white"],
.bg-white,
.white-section {
    color: #000;
}

section[style*="background: #fff"] p,
section[style*="background:#fff"] p,
section[style*="background: white"] p,
section[style*="background:white"] p,
.bg-white p,
.white-section p {
    color: #000 !important;
}

section[style*="background: #fff"] h1,
section[style*="background: #fff"] h2,
section[style*="background: #fff"] h3,
section[style*="background: #fff"] h4,
section[style*="background:#fff"] h1,
section[style*="background:#fff"] h2,
section[style*="background:#fff"] h3,
section[style*="background:#fff"] h4,
.bg-white h1,
.bg-white h2,
.bg-white h3,
.bg-white h4,
.white-section h1,
.white-section h2,
.white-section h3,
.white-section h4 {
    color: #000 !important;
}


/* =========================================================
       TEXTES NOIRS UNIQUEMENT SUR LES ZONES CLAIRES / BLANCHES
       ========================================================= */

.home-section--light,
.home-section--light .home-copy,
.home-section--light .home-copy p,
.home-section--light .home-section-head p,
.home-section--light .home-section-head h2,
.home-section--light .home-section-head h3,
.home-section--light .home-section-head span,
.home-section--light .home-link {
    color: #000 !important;
}

.home-program-grid article:not(.home-lumi-card),
.home-program-grid article:not(.home-lumi-card) h3,
.home-program-grid article:not(.home-lumi-card) p,
.home-program-grid article:not(.home-lumi-card) span,
.home-program-grid article:not(.home-lumi-card) a {
    color: #000 !important;
}

.home-media-card,
.home-media-card h3,
.home-media-card p,
.home-media-card span {
    color: #000 !important;
}

.home-action-card,
.home-action-card h2,
.home-action-card h3,
.home-action-card p,
.home-action-card span,
.home-action-card strong,
.home-action-card li {
    color: #000 !important;
}

.submit-criteria,
.submit-criteria h3,
.submit-criteria li,
.submit-criteria span,
.submit-criteria strong {
    color: #000 !important;
}

.submit-criteria .submit-note {
    color: #fff !important;
    background: #050505 !important;
}

.modern-title:not(.light) h2,
.modern-title:not(.light) h3,
.section-lead,
.karim-highlight,
.karim-highlight p,
.karim-eyebrow,
.karim-content h3,
.modern-history .history-content,
.modern-history .history-content h3,
.modern-history .history-content p,
.history-points strong,
.history-points span,
.festival-signature,
.festival-signature p,
.festival-stat,
.festival-stat span,
.festival-experience,
.experience-card:not(.experience-card--lumi),
.experience-card:not(.experience-card--lumi) h3,
.experience-card:not(.experience-card--lumi) p,
.experience-card:not(.experience-card--lumi) span,
.cinema-network,
.cinema-network-copy h2,
.cinema-network-copy p,
.festival-mode-banner:not(.festival-mode-live),
.festival-mode-banner:not(.festival-mode-live) p {
    color: #000 !important;
}

.home-section--palmares,
.home-section--palmares .home-copy,
.home-section--palmares .home-copy p,
.home-section--palmares .home-section-head h2,
.home-section--palmares .home-section-head p {
    color: #000 !important;
}

.home-section--dark,
.home-section--dark p,
.home-section--dark h2,
.home-section--dark h3,
.home-section--archives,
.home-section--archives p,
.home-section--archives h2,
.home-section--archives h3,
.home-lumi-card,
.home-lumi-card h3,
.home-lumi-card p,
.newsletter-modal,
.newsletter-modal h2,
.newsletter-modal p {
    color: #fff !important;
}

.home-partner-visual div,
.home-partner-visual div span {
    color: #fff !important;
}

.home-kicker,
.video-hero__badge,
.hero-countdown__label {
    color: #000 !important;
}


/* CTA FINAL ÉDITION 2027 — texte noir */
.home-final-cta,
.home-final-cta__inner,
.home-final-cta__inner > div,
.home-final-cta span,
.home-final-cta h2,
.home-final-cta h3,
.home-final-cta p,
.home-final-cta strong {
    color: #000 !important;
}

/* Les boutons conservent leur propre contraste */
.home-final-cta .home-btn--black {
    color: #fff !important;
}

.home-final-cta .home-btn--outline-dark {
    color: #000 !important;
}


/* Compléments pour l'arborescence et les contenus du document 2027 */
.home-copy a:not(.home-link):not(.home-btn) {
    color: inherit;
    font-weight: 800;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

.home-copy--light a:not(.home-btn) {
    color: var(--acdh-yellow);
}

.home-wide-note {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 24px;
    align-items: start;
    margin-top: 28px;
    padding: 30px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 26px;
    background: rgba(255,255,255,.06);
}

.home-wide-note > i {
    width: 64px;
    height: 64px;
    display: grid;
    place-items: center;
    border-radius: 20px;
    background: var(--acdh-yellow);
    color: #000;
    font-size: 32px;
}

.home-wide-note h3 {
    margin: 0 0 10px;
    color: #fff;
    font-size: 24px;
    font-weight: 950;
}

.home-wide-note p {
    margin: 0;
    color: #d8d8d8;
    line-height: 1.8;
}

.partner-people {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    margin-top: 48px;
}

.partner-person {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    padding: 28px;
    border: 1px solid #e8e8e8;
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 16px 45px rgba(0,0,0,.06);
}

.partner-person > i {
    flex: 0 0 56px;
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: var(--acdh-yellow);
    color: #000;
    font-size: 29px;
}

.partner-person h3 {
    margin: 0 0 4px;
    color: #000;
    font-size: 21px;
    font-weight: 950;
}

.partner-person span {
    display: block;
    margin-bottom: 10px;
    color: #666;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.partner-person p {
    margin: 0;
    color: #555;
    line-height: 1.7;
}

.submit-info-box {
    display: flex;
    gap: 16px;
    align-items: center;
    margin-top: 18px;
    padding: 18px 20px;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 20px;
    background: rgba(255,255,255,.06);
}

.submit-info-box > i {
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: var(--acdh-yellow);
    color: #000;
    font-size: 24px;
}

.submit-info-box strong,
.submit-info-box span,
.submit-info-box a {
    display: block;
}

.submit-info-box strong {
    color: #fff;
    margin-bottom: 3px;
}

.submit-info-box span {
    color: #d5d5d5;
}

.submit-info-box a {
    color: var(--acdh-yellow);
    overflow-wrap: anywhere;
}

.submit-note {
    margin: 18px 0;
    padding: 18px 20px;
    border: 1px solid #222;
    border-left: 5px solid var(--acdh-yellow);
    border-radius: 12px;
    background: #050505;
    color: #ffffff !important;
    line-height: 1.65;
}

@media (max-width: 991px) {
    .partner-people {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575px) {
    .home-wide-note {
        grid-template-columns: 1fr;
    }

    .partner-person {
        flex-direction: column;
    }
}

/* ===== CSS extrait de index.php ===== */

#inscrire-film .submit-criteria > p.submit-note {
    background: #050505 !important;
    background-color: #050505 !important;
    color: #ffffff !important;
    border: 1px solid #222222 !important;
    border-left: 5px solid #FFED00 !important;
}
#inscrire-film .submit-criteria > p.submit-note,
#inscrire-film .submit-criteria > p.submit-note * {
    color: #ffffff !important;
}

#inscrire-film .submit-criteria p.submit-note {
    background: #050505 !important;
    background-color: #050505 !important;
    color: #ffffff !important;
    border: 1px solid #222222 !important;
    border-left: 5px solid #FFED00 !important;
}

/* =========================================================
   HERO VIDÉO — badge tablette et mobile
   ========================================================= */

/* Tablettes */
@media (min-width: 768px) and (max-width: 1024px) {
    .video-hero__badge {
        margin-top: 70px !important;
    }
}

/* Mobiles */
@media (max-width: 767px) {
    .video-hero__badge {
        margin-top: 90px !important;
    }
}
