/* ROOT RÉVÉLATION — couche graphique personnalisée au-dessus du thème Liquid/Ave */
@font-face {
    font-family: "Glacial Indifference";
    src: url("../fonts/GlacialIndifference-Regular.woff") format("woff");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Glacial Indifference";
    src: url("../fonts/GlacialIndifference-Bold.woff") format("woff");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
:root {
    --rr-bg: #111019;
    --rr-bg-2: #171521;
    --rr-card: rgba(28, 26, 41, .88);
    --rr-gold: #d9b45b;
    --rr-gold-light: #f1d99b;
    --rr-white: #f8f7fb;
    --rr-muted: #aaa8b8;
    --rr-violet: #9d7bdf;
    --rr-green: #c7e6d4;
}
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body.rr-page {
    margin: 0;
    background: var(--rr-bg);
    color: var(--rr-white);
    font-family: "Glacial Indifference", Arial, sans-serif;
    font-size: 17px;
    line-height: 1.65;
    overflow-x: hidden;
}
.rr-page *, .rr-page *::before, .rr-page *::after { box-sizing: border-box; }
.rr-page h1, .rr-page h2, .rr-page h3, .rr-page h4, .rr-page p { font-family: "Glacial Indifference", Arial, sans-serif; }
.rr-page h1, .rr-page h2, .rr-page h3 { color: var(--rr-white); }
.rr-page a { transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s ease; }
#particles-canvas {
    position: fixed; inset: 0; width: 100%; height: 100%;
    z-index: 0; pointer-events: none; opacity: .8;
}
.rr-page-glow {
    position: fixed; inset: 0; z-index: 0; pointer-events: none;
    background:
      radial-gradient(ellipse at 9% 14%, rgba(198, 232, 211, .10), transparent 32%),
      radial-gradient(ellipse at 88% 30%, rgba(127, 84, 190, .18), transparent 35%),
      radial-gradient(ellipse at 48% 85%, rgba(111, 74, 155, .11), transparent 38%);
}
.rr-page main, .rr-footer { position: relative; z-index: 1; }
.rr-hero { min-height: 720px; position: relative; overflow: hidden; background: linear-gradient(125deg, rgba(17,16,25,.97), rgba(25,20,37,.91) 60%, rgba(29,24,44,.96)); }
.rr-hero:before { content:""; position:absolute; width:520px; height:520px; border:1px solid rgba(217,180,91,.14); border-radius:50%; right:-140px; top:65px; box-shadow:0 0 0 45px rgba(217,180,91,.025), 0 0 0 100px rgba(157,123,223,.025); }
.rr-carousel, .rr-carousel .carousel-inner, .rr-carousel .item { min-height: 680px; }
.rr-slide { padding: 100px 0 82px; background: transparent; }
.rr-hero-inner { position: relative; z-index: 2; }
.rr-hero-inner > .row { display:flex; align-items:center; min-height:470px; }
.rr-hero-copy { padding-top: 20px; }
.rr-eyebrow { margin: 0 0 20px; color: var(--rr-gold); font-size: 11px; font-weight:700; letter-spacing:.2em; line-height:1.5; text-transform:uppercase; }
.rr-eyebrow span { display:inline-block; width:26px; height:1px; margin:0 10px 4px 0; background:var(--rr-gold); }
.rr-hero h1 { margin: 0 0 25px; font-size: clamp(46px, 5.5vw, 76px); line-height:1.04; letter-spacing:-.035em; font-weight:700; }
.rr-hero h1 em, .rr-section h2 em, .rr-footer h2 em { color:var(--rr-gold); font-style:normal; }
.rr-hero-lead { max-width:560px; margin:0 0 30px; color:#d0ced8; font-size:19px; line-height:1.65; }
.rr-button { display:inline-flex; align-items:center; justify-content:space-between; gap:25px; min-height:49px; padding:13px 18px; border-radius:2px; font-size:12px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; text-decoration:none !important; }
.rr-button span { font-size:18px; line-height:1; }
.rr-button-gold { background:linear-gradient(110deg, #e6cb86, #c69a43); color:#17131e !important; box-shadow:0 10px 35px rgba(217,180,91,.13); }
.rr-button-gold:hover { background:var(--rr-gold-light); transform:translateY(-2px); }
.rr-text-link { display:inline-block; margin-left:22px; color:#e5e1ee !important; font-size:13px; border-bottom:1px solid rgba(229,225,238,.35); padding-bottom:4px; text-decoration:none !important; }
.rr-text-link:hover { color:var(--rr-gold) !important; border-color:var(--rr-gold); }
.rr-small-note { margin-top:17px; color:#aaa5b7; font-size:12px; }
.rr-hero-art { min-height:400px; display:flex; align-items:center; justify-content:center; position:relative; }
.rr-hero-logo { width:min(76%, 320px); max-height:330px; object-fit:contain; position:relative; z-index:2; filter:drop-shadow(0 18px 55px rgba(0,0,0,.38)); }
.rr-orbit { position:absolute; width:340px; height:340px; border:1px solid rgba(217,180,91,.28); border-radius:50%; transform:rotate(-25deg) scaleY(.55); }
.rr-orbit-two { width:420px; height:420px; border-color:rgba(157,123,223,.24); transform:rotate(35deg) scaleY(.48); }
.rr-art-label { position:absolute; z-index:3; bottom:14px; right:5%; padding:8px 13px; color:#ddd8e9; font-size:10px; letter-spacing:.19em; background:rgba(20,18,30,.85); border:1px solid rgba(217,180,91,.2); }
.rr-art-label b { color:var(--rr-gold); }
.rr-carousel .carousel-indicators { bottom:24px; text-align:left; left:15px; width:auto; margin-left:0; }
.rr-carousel .carousel-indicators li { width:20px; height:3px; margin:0 5px 0 0; border:0; border-radius:0; background:rgba(255,255,255,.28); }
.rr-carousel .carousel-indicators li.active { width:42px; height:3px; background:var(--rr-gold); }
.rr-carousel-control { width:44px; top:50%; bottom:auto; height:44px; margin-top:-22px; background:rgba(255,255,255,.04) !important; opacity:.65; border:1px solid rgba(255,255,255,.12); border-radius:50%; text-shadow:none; display:flex; align-items:center; justify-content:center; }
.rr-carousel-control.left { left:18px; background-image:none !important; }
.rr-carousel-control.right { right:18px; background-image:none !important; }
.rr-carousel-control span { font-family:Arial,sans-serif; font-size:28px; line-height:1; }
.rr-carousel-control:hover { opacity:1; border-color:var(--rr-gold); color:var(--rr-gold); }
.rr-hero-bottom { position:absolute; bottom:0; left:0; right:0; display:flex; justify-content:space-between; padding-top:18px; padding-bottom:18px; border-top:1px solid rgba(255,255,255,.09); color:#817d90; font-size:9px; letter-spacing:.16em; }
.rr-hero-bottom i { color:var(--rr-gold); font-style:normal; padding:0 8px; }
.rr-hero-bottom a { color:#b8b2c8; text-decoration:none; }
.rr-hero-bottom a span { color:var(--rr-gold); margin-left:8px; font-size:16px; }
.rr-slide-two { background:radial-gradient(ellipse at 85% 48%, rgba(125,88,176,.15), transparent 43%); }
.rr-floating-candidate { position:absolute; width:44%; height:330px; padding:8px; border:1px solid rgba(217,180,91,.32); background:rgba(255,255,255,.04); box-shadow:0 25px 65px rgba(0,0,0,.25); overflow:hidden; }
.rr-floating-candidate img { width:100%; height:100%; object-fit:cover; object-position:top center; }
.rr-floating-candidate-1 { z-index:2; left:2%; transform:rotate(-9deg) translateY(10px); }
.rr-floating-candidate-2 { z-index:3; left:29%; transform:rotate(5deg) translateY(-15px); }
.rr-floating-candidate-3 { z-index:1; left:55%; transform:rotate(13deg) translateY(22px); }
.rr-hero-stamp { position:absolute; z-index:4; right:-2%; bottom:4%; padding:15px 18px; color:#191522; background:var(--rr-gold); font-size:10px; line-height:1.35; letter-spacing:.12em; transform:rotate(-5deg); }
.rr-hero-stamp strong { font-size:13px; }
.rr-vote-emblem { width:300px; height:300px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; border:1px solid rgba(217,180,91,.5); background:radial-gradient(circle, rgba(157,123,223,.22), rgba(24,20,35,.12) 68%); box-shadow:0 0 0 22px rgba(217,180,91,.025), 0 0 0 55px rgba(157,123,223,.035); text-align:center; }
.rr-vote-emblem span { color:var(--rr-gold); font-size:72px; line-height:1; font-weight:700; letter-spacing:-.07em; }
.rr-vote-emblem b { color:#ded9e8; font-size:10px; line-height:1.7; letter-spacing:.16em; }
.rr-vote-spark { position:absolute; width:7px; height:7px; border-radius:50%; background:var(--rr-gold-light); box-shadow:0 0 24px 5px rgba(217,180,91,.25); }
.rr-vote-spark-a { top:16%; right:18%; }.rr-vote-spark-b { bottom:14%; left:20%; background:var(--rr-green); }
.rr-section { position:relative; padding:105px 0; }
.rr-intro { background:linear-gradient(120deg, rgba(198,232,211,.055), rgba(157,123,223,.07)); border-top:1px solid rgba(255,255,255,.05); border-bottom:1px solid rgba(255,255,255,.05); }
.rr-align-center { display:flex; align-items:center; }
.rr-section h2 { margin:0 0 18px; font-size:clamp(34px,4vw,52px); font-weight:700; line-height:1.13; letter-spacing:-.025em; }
.rr-body-copy, .rr-muted { color:var(--rr-muted); font-size:16px; line-height:1.8; }
.rr-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:65px; border-top:1px solid rgba(255,255,255,.13); }
.rr-stat { padding:28px 24px 0 0; border-right:1px solid rgba(255,255,255,.12); }
.rr-stat + .rr-stat { padding-left:28px; }
.rr-stat:last-child { border-right:0; }
.rr-stat strong { display:block; color:var(--rr-gold); font-size:36px; line-height:1.2; }
.rr-stat-unit { color:#aaa5b7; font-size:18px; }
.rr-stat span:not(.rr-stat-unit) { display:block; margin-top:7px; color:#a5a0b2; font-size:10px; letter-spacing:.16em; }
.rr-candidates { background:linear-gradient(180deg, rgba(17,16,25,.98), rgba(21,19,32,.98)); }
.rr-section-heading { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:42px; }
.rr-section-heading h2 { margin-bottom:12px; }
.rr-section-heading .rr-muted { margin:0; }
.rr-section-index { color:#797487; font-size:12px; letter-spacing:.13em; white-space:nowrap; }
.rr-section-index i { color:var(--rr-gold); font-style:normal; padding:0 5px; }
.rr-candidate-grid { display:flex; flex-wrap:wrap; }
.rr-candidate-grid > [class*="col-"] { margin-bottom:30px; }
.rr-candidate-card { height:100%; overflow:hidden; background:var(--rr-card); border:1px solid rgba(255,255,255,.09); transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease; }
.rr-candidate-card:hover { transform:translateY(-6px); border-color:rgba(217,180,91,.48); box-shadow:0 20px 55px rgba(0,0,0,.23); }
.rr-candidate-image-wrap { position:relative; height:280px; overflow:hidden; background:linear-gradient(135deg,#28233a,#17151f); }
.rr-candidate-image { width:100%; height:100%; object-fit:cover; object-position:center 25%; display:block; transition:transform .6s ease; }
.rr-candidate-card:hover .rr-candidate-image { transform:scale(1.035); }
.rr-candidate-code, .rr-candidate-rank { position:absolute; top:13px; padding:5px 9px; font-size:10px; letter-spacing:.1em; background:rgba(16,15,23,.84); border:1px solid rgba(255,255,255,.14); }
.rr-candidate-code { left:13px; color:var(--rr-gold); }.rr-candidate-rank { right:13px; color:#fff; }
.rr-candidate-info { padding:23px 22px 22px; }
.rr-candidate-kicker { color:#8f899f; font-size:9px; letter-spacing:.2em; margin:0 0 4px; }
.rr-candidate-info h3 { min-height:32px; margin:0 0 17px; font-size:23px; font-weight:700; }
.rr-vote-meta { display:flex; justify-content:space-between; align-items:baseline; color:#aaa5b7; font-size:12px; }
.rr-vote-meta strong { color:#f5f2fa; font-size:15px; }
.rr-vote-meta small { color:#8c8799; margin-left:4px; font-size:10px; }
.rr-progress { height:4px; margin-top:12px; overflow:hidden; background:rgba(255,255,255,.1); }
.rr-progress span { display:block; height:100%; background:linear-gradient(90deg,var(--rr-green),var(--rr-violet),var(--rr-gold)); }
.rr-progress-caption { display:flex; justify-content:space-between; margin:7px 0 20px; color:#858093; font-size:10px; }
.rr-progress-caption strong { color:var(--rr-gold); font-weight:400; }
.rr-button-outline { width:100%; color:#eeeaf5 !important; border:1px solid rgba(255,255,255,.2); }
.rr-button-outline:hover { border-color:var(--rr-gold); color:var(--rr-gold) !important; }
.rr-ranking-note { margin:12px 0 0; color:#898497; font-size:12px; }
.rr-ranking-note span { display:inline-flex; align-items:center; justify-content:center; width:17px; height:17px; margin-right:7px; border:1px solid #8c7cae; border-radius:50%; color:#b8a3e7; font-size:10px; }
.rr-empty-state { padding:55px 25px; text-align:center; border:1px dashed rgba(255,255,255,.18); }
.rr-empty-mark { color:var(--rr-gold); font-size:48px; font-weight:700; }
.rr-empty-state h3 { font-size:24px; }.rr-empty-state p { color:var(--rr-muted); }
.rr-howto { background:linear-gradient(130deg,rgba(198,232,211,.07),rgba(157,123,223,.1)); }
.rr-steps { margin-top:45px; }
.rr-step-card { position:relative; min-height:260px; padding:28px 25px; background:rgba(17,16,25,.56); border:1px solid rgba(255,255,255,.1); }
.rr-step-number { position:absolute; right:22px; top:20px; color:#696377; font-size:12px; letter-spacing:.12em; }
.rr-step-icon { display:flex; align-items:center; justify-content:center; width:48px; height:48px; margin-bottom:24px; border:1px solid rgba(217,180,91,.45); border-radius:50%; color:var(--rr-gold); font-size:25px; }
.rr-step-card h3 { margin:0 0 10px; font-size:21px; }.rr-step-card p { margin:0; color:var(--rr-muted); font-size:14px; line-height:1.8; }
.rr-security-note { display:flex; align-items:center; gap:16px; margin-top:25px; padding:18px 22px; border:1px solid rgba(198,232,211,.18); background:rgba(198,232,211,.04); }
.rr-security-icon { flex:0 0 32px; display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; background:rgba(198,232,211,.12); color:var(--rr-green); }
.rr-security-note p { margin:0; color:#bcb8c9; font-size:13px; }.rr-security-note strong { color:#f1edf7; }
.rr-packages { background:rgba(17,16,25,.96); }
.rr-package-row { display:flex; flex-wrap:wrap; margin-top:42px; }
.rr-package-row > [class*="col-"] { margin-bottom:15px; }
.rr-package { height:100%; min-height:210px; padding:25px 17px; text-align:center; background:rgba(255,255,255,.025); border:1px solid rgba(255,255,255,.11); }
.rr-package > span { display:block; color:#a39cb4; font-size:9px; letter-spacing:.18em; text-transform:uppercase; }
.rr-package > strong { display:block; margin:19px 0 10px; color:#f7f3fc; font-size:30px; line-height:1.15; }
.rr-package > strong small { font-size:12px; color:#aaa5b7; }
.rr-package > b { color:var(--rr-gold); font-size:18px; }
.rr-package p { margin:12px 0 0; color:#8e899e; font-size:11px; }
.rr-package-featured { border-color:rgba(217,180,91,.55); background:linear-gradient(155deg,rgba(217,180,91,.1),rgba(157,123,223,.07)); box-shadow:inset 0 0 0 1px rgba(217,180,91,.06); }
.rr-packages-fallback { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; margin-top:42px; }
.rr-note-small { color:#817b90; font-size:11px; line-height:1.7; margin-top:18px; }
.rr-conditions { background:linear-gradient(130deg,rgba(157,123,223,.09),rgba(17,16,25,.97)); border-top:1px solid rgba(255,255,255,.06); }
.rr-condition-list { border-top:1px solid rgba(255,255,255,.13); }
.rr-condition-list > div { display:flex; gap:22px; padding:20px 0; border-bottom:1px solid rgba(255,255,255,.1); }
.rr-condition-list > div > span { color:var(--rr-gold); font-size:12px; padding-top:2px; }
.rr-condition-list p { margin:0; color:#a8a3b4; font-size:13px; }
.rr-condition-list strong { display:block; margin-bottom:5px; color:#f4f0f8; font-size:16px; }
/* ==========================================
   FOOTER — IDENTITÉ GOSPEL ROOT
   ========================================== */

.rr-footer {
    padding: 48px 0 22px;
    background: #0b0a10;
    border-top: 1px solid rgba(255, 255, 255, .08);
    color: #fff;
}

.rr-footer-top {
    display: flex;
    align-items: center;
    gap: 38px;
    padding-bottom: 35px;
}

/* Logo et signature */
.rr-footer-brand {
    flex: 0 0 35%;
    max-width: 390px;
}

.rr-footer-logo {
    display: block;
    width: 100%;
    max-width: 390px;
    height: auto;
    object-fit: contain;
}

/* HIGH SACRED HARMONY sous le logo, aligné à droite */
.rr-footer-tagline {
    margin-top: 8px;
    padding-right: 3px;
    text-align: right;
    color: #e9c96b;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .22em;
    line-height: 1.5;
}

/* Présentation de Gospel Root */
.rr-footer-about {
    flex: 1;
    min-width: 0;
}

.rr-footer-about h2 {
    margin: 0 0 12px;
    color: #f3d985;
    font-size: 25px;
    font-weight: 700;
    letter-spacing: .03em;
}

.rr-footer-about p {
    max-width: 570px;
    margin: 0;
    color: #c0bacb;
    font-size: 14px;
    line-height: 1.9;
}

/* Retour en haut */
.rr-back-top {
    flex-shrink: 0;
    align-self: center;
    margin-left: auto;
    color: #aaa4b8 !important;
    font-size: 10px;
    letter-spacing: .13em;
    text-decoration: none !important;
    white-space: nowrap;
}

.rr-back-top:hover {
    color: #e9c96b !important;
}

/* Ligne inférieure */
.rr-footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, .09);
    color: #8e879b;
    font-size: 11px;
}

.rr-footer-bottom span:last-child {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.rr-footer-bottom a {
    color: #c0bacb !important;
    text-decoration: none;
}

.rr-footer-bottom a:hover {
    color: #e9c96b !important;
}

/* Adaptation mobile */
@media (max-width: 767px) {
    .rr-footer {
        padding-top: 35px;
    }

    .rr-footer-top {
        flex-direction: column;
        align-items: flex-start;
        gap: 25px;
    }

    .rr-footer-brand {
        width: 100%;
        max-width: 350px;
        flex-basis: auto;
        align-self: center;
    }

    .rr-footer-tagline {
        font-size: 10px;
        letter-spacing: .18em;
    }

    .rr-footer-about h2 {
        font-size: 23px;
    }

    .rr-footer-about p {
        font-size: 14px;
    }

    .rr-back-top {
        margin-left: 0;
        align-self: flex-start;
    }

    .rr-footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        font-size: 11px;
    }
}

@media (max-width: 991px) {
    .rr-hero { min-height:640px; }
    .rr-carousel, .rr-carousel .carousel-inner, .rr-carousel .item { min-height:610px; }
    .rr-slide { padding-top:75px; }
    .rr-hero-inner > .row { min-height:450px; }
    .rr-hero-art { min-height:330px; }
    .rr-hero-logo { width:72%; }
    .rr-floating-candidate { height:270px; }
    .rr-section { padding:80px 0; }
    .rr-candidate-image-wrap { height:250px; }
}
@media (max-width: 767px) {
    body.rr-page { font-size:15px; }
    .rr-hero { min-height:760px; }
    .rr-carousel, .rr-carousel .carousel-inner, .rr-carousel .item { min-height:710px; }
    .rr-slide { padding:55px 0 80px; }
    .rr-hero-inner > .row { display:block; min-height:590px; }
    .rr-hero-copy { text-align:center; padding:10px 22px 0; }
    .rr-eyebrow { font-size:9px; letter-spacing:.15em; }
    .rr-hero h1 { font-size:45px; }
    .rr-hero-lead { font-size:16px; }
    .rr-text-link { margin:18px 0 0; }
    .rr-hero-art { min-height:250px; margin-top:15px; }
    .rr-hero-logo { width:190px; max-height:200px; }
    .rr-orbit { width:245px; height:245px; }
    .rr-orbit-two { width:300px; height:300px; }
    .rr-art-label { right:8%; bottom:0; }
    .rr-floating-candidate { height:210px; width:38%; padding:5px; }
    .rr-hero-stamp { right:0; bottom:-2%; }
    .rr-vote-emblem { width:210px; height:210px; }.rr-vote-emblem span { font-size:52px; }
    .rr-carousel-control { display:none; }
    .rr-hero-bottom { padding:13px 20px; font-size:8px; }
    .rr-hero-bottom a { display:none; }
    .rr-section { padding:65px 0; }
    .rr-align-center { display:block; }
    .rr-body-copy { margin-top:20px; }
    .rr-stats { margin-top:35px; }
    .rr-stat { padding:18px 8px 0 0; }.rr-stat + .rr-stat { padding-left:12px; }
    .rr-stat strong { font-size:25px; }.rr-stat span:not(.rr-stat-unit) { font-size:8px; letter-spacing:.07em; }
    .rr-section-heading { align-items:flex-start; gap:10px; margin-bottom:28px; }
    .rr-section-heading h2 { font-size:35px; }
    .rr-section-index { font-size:10px; padding-top:3px; }
    .rr-candidate-image-wrap { height:240px; }
    .rr-candidate-info { padding:18px 16px; }
    .rr-candidate-info h3 { font-size:20px; }
    .rr-candidate-grid > [class*="col-"] { padding-left:8px; padding-right:8px; margin-bottom:16px; }
    .rr-candidate-grid { margin-left:-8px; margin-right:-8px; }
    .rr-steps { margin-top:28px; }.rr-step-card { min-height:0; margin-bottom:14px; padding:23px; }
    .rr-package-row { display:flex; }
    .rr-package-row > [class*="col-"] { padding-left:7px; padding-right:7px; }
    .rr-package { min-height:175px; padding:20px 8px; }.rr-package > strong { font-size:23px; }.rr-package > b { font-size:15px; }
    .rr-packages-fallback { grid-template-columns:repeat(2,1fr); }
    .rr-footer-top { flex-wrap:wrap; gap:13px; }.rr-footer-logo { width:48px; height:48px; }.rr-footer h2 { font-size:20px; }
    .rr-back-top { width:100%; margin:10px 0 0; }
    .rr-footer-bottom { flex-direction:column; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior:auto; }
    *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}



/* =========================================
   ROOT REVELATION — Ajustements visuels
   ========================================= */

:root {
    --rr-gold: #e9c96b;
    --rr-gold-light: #fff1bd;
    --rr-purple: #7251a0;
    --rr-purple-light: #eee7f7;
    --rr-green-light: #e6f2e9;
    --rr-white: #ffffff;
    --rr-text: #292334;
    --rr-muted: #716b7b;
}

/* Lisibilité générale */
body {
    color: var(--rr-text);
    font-size: 16px;
    line-height: 1.8;
}

p,
.section-description,
.candidate-description,
.vote-description {
    font-size: 16px;
    line-height: 1.85;
}

h1, h2, h3, h4 {
    line-height: 1.3;
}

/* Palette lumineuse */
.rr-section-light {
    background: #fff;
}

.rr-section-soft {
    background: linear-gradient(135deg, #fffdf6 0%, #f5f0fb 100%);
}

.rr-gold-text {
    color: #b18a25;
}

.rr-highlight {
    background: linear-gradient(135deg, #fff0b7, #f3d77f);
    color: #3e2f13;
}

/* CARROUSEL */
.rr-hero-carousel,
.rr-hero-carousel .carousel-inner,
.rr-hero-carousel .item {
    min-height: 530px;
}

.rr-hero-carousel .item {
    background-position: center;
    background-size: cover;
    position: relative;
}

.rr-hero-carousel .item:before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        100deg,
        rgba(32, 21, 48, .72),
        rgba(63, 43, 83, .25)
    );
}

.rr-hero-carousel .carousel-caption {
    left: 10%;
    right: 10%;
    bottom: 15%;
    z-index: 2;
    text-align: left;
    text-shadow: none;
}

.rr-hero-carousel .carousel-caption h1,
.rr-hero-carousel .carousel-caption h2 {
    color: #fff;
    font-size: clamp(32px, 4.2vw, 58px);
    font-weight: 700;
    margin-bottom: 20px;
}

.rr-hero-carousel .carousel-caption p {
    color: #fff;
    font-size: 19px;
    max-width: 680px;
    line-height: 1.8;
}

.rr-hero-carousel .carousel-control {
    z-index: 4;
    background: none;
    opacity: .95;
    width: 8%;
}

.rr-hero-carousel .carousel-indicators li {
    width: 11px;
    height: 11px;
    margin: 0 5px;
    border: 1px solid #fff;
}

.rr-hero-carousel .carousel-indicators .active {
    background: var(--rr-gold);
    border-color: var(--rr-gold);
}

/* Animation d'entrée du texte */
.rr-hero-carousel .item .rr-hero-content {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .65s ease, transform .65s ease;
}

.rr-hero-carousel .item.active .rr-hero-content {
    opacity: 1;
    transform: translateY(0);
}

/* Illustrations de la section Au-delà d'un concours */
.rr-mission-image {
    width: 100%;
    height: auto;
    max-height: 440px;
    object-fit: cover;
    border-radius: 18px;
    box-shadow: 0 14px 36px rgba(54, 37, 74, .12);
}

.rr-mission-card {
    background: #fff;
    border: 1px solid #eee7f5;
    border-radius: 16px;
    padding: 25px;
    height: 100%;
}

.rr-mission-card p {
    color: var(--rr-muted);
}

/* Affiches des candidats : ne pas couper les visuels */
.rr-candidate-poster {
    background: #f5f1f8;
    border-radius: 14px;
    overflow: hidden;
    text-align: center;
}

.rr-candidate-poster img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 430px;
    object-fit: contain;
    object-position: center top;
    margin: 0 auto;
}

/* Cartes candidats */
.rr-candidate-card {
    height: 100%;
    overflow: hidden;
    border-radius: 16px;
    border: 1px solid #eee8f4;
    box-shadow: 0 8px 26px rgba(49, 35, 64, .07);
    transition: transform .25s ease, box-shadow .25s ease;
}

.rr-candidate-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 14px 32px rgba(49, 35, 64, .13);
}

.rr-candidate-card .rr-candidate-info {
    padding: 18px 20px 22px;
}

/* Barres de progression plus épaisses */
.progress.rr-progress {
    height: 13px;
    border-radius: 20px;
    background: #eee9f3;
    box-shadow: none;
    overflow: hidden;
    margin: 12px 0;
}

.progress.rr-progress .progress-bar {
    line-height: 13px;
    border-radius: 20px;
    background: linear-gradient(90deg, #8e6bbb, #e9c96b);
    transition: width 1.1s ease;
}

/* Compteurs */
.rr-counter {
    display: inline-block;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}

.rr-stat-card {
    padding: 22px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid #eee7f5;
}

.rr-stat-card .rr-counter {
    font-size: 32px;
    line-height: 1.3;
    color: var(--rr-purple);
}

/* Boutons */
.btn-rr-primary {
    background: var(--rr-purple);
    border: 1px solid var(--rr-purple);
    color: #fff;
    padding: 12px 24px;
    border-radius: 30px;
    font-size: 16px;
    font-weight: 600;
    transition: all .2s ease;
}

.btn-rr-primary:hover,
.btn-rr-primary:focus {
    background: #5b3d86;
    border-color: #5b3d86;
    color: #fff;
}

.btn-rr-gold {
    background: var(--rr-gold-light);
    border: 1px solid var(--rr-gold);
    color: #463717;
    padding: 12px 24px;
    border-radius: 30px;
    font-weight: 600;
}

/* Page individuelle candidat */
.rr-single-candidate {
    padding: 65px 0;
    background: linear-gradient(135deg, #fffdf7, #f5f0fb);
}

.rr-single-poster {
    background: #fff;
    border-radius: 18px;
    padding: 12px;
    box-shadow: 0 12px 32px rgba(49, 35, 64, .1);
}

.rr-single-poster img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    border-radius: 12px;
}

.rr-single-panel {
    padding: 30px;
    background: #fff;
    border: 1px solid #eee7f5;
    border-radius: 18px;
    box-shadow: 0 8px 25px rgba(49, 35, 64, .06);
}

.rr-package-option {
    display: block;
    padding: 15px 17px;
    margin-bottom: 12px;
    border: 1px solid #e8e0f0;
    border-radius: 12px;
    cursor: pointer;
    transition: all .2s ease;
}

.rr-package-option:hover {
    border-color: var(--rr-purple);
    background: #faf7ff;
}

.rr-package-option input {
    margin-right: 10px;
}

.rr-package-option strong {
    color: var(--rr-purple);
}

/* Présentation de Gospel Root avant le footer */
.rr-gospel-root {
    padding: 65px 0;
    background: linear-gradient(135deg, #fff5cf 0%, #f3ecfa 60%, #fff 100%);
    text-align: center;
}

.rr-gospel-root img {
    width: 110px;
    height: auto;
    margin-bottom: 18px;
}

.rr-gospel-root p {
    max-width: 760px;
    margin: 0 auto 22px;
    font-size: 17px;
}

/* Responsive */
@media (max-width: 767px) {
    body {
        font-size: 15px;
    }

    .rr-hero-carousel,
    .rr-hero-carousel .carousel-inner,
    .rr-hero-carousel .item {
        min-height: 470px;
    }

    .rr-hero-carousel .carousel-caption {
        left: 9%;
        right: 9%;
        bottom: 13%;
    }

    .rr-hero-carousel .carousel-caption p {
        font-size: 16px;
    }

    .rr-hero-carousel .carousel-caption h1,
    .rr-hero-carousel .carousel-caption h2 {
        font-size: 34px;
    }

    .rr-single-candidate {
        padding: 35px 0;
    }

    .rr-single-panel {
        padding: 22px;
        margin-top: 22px;
    }

    .rr-candidate-poster img {
        max-height: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rr-hero-carousel .item .rr-hero-content,
    .rr-candidate-card,
    .progress.rr-progress .progress-bar {
        transition: none !important;
    }
}




/* CORRECTION DU CARROUSEL ROOT REVELATION */

#rrHeroCarousel {
    position: relative;
    display: block !important;
    width: 100%;
    overflow: hidden;
    background: #30213f;
}

#rrHeroCarousel .carousel-inner {
    position: relative;
    width: 100%;
    overflow: hidden;
}

#rrHeroCarousel .carousel-inner > .item {
    position: relative;
    display: none;
    width: 100%;
    height: 560px;
    float: none;
    margin: 0;
    padding: 0;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

#rrHeroCarousel .carousel-inner > .item.active {
    display: block;
}

/* Bootstrap anime les diapositives avec des classes .next et .prev */
#rrHeroCarousel .carousel-inner > .item.next,
#rrHeroCarousel .carousel-inner > .item.prev {
    display: block;
    position: absolute;
    top: 0;
    width: 100%;
}

#rrHeroCarousel .rr-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(35, 23, 49, .82),
        rgba(35, 23, 49, .22)
    );
}

#rrHeroCarousel .rr-hero-content {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 12%;
    right: 12%;
    max-width: 780px;
    transform: translateY(-50%);
    color: #fff;
}

#rrHeroCarousel .rr-hero-content h1,
#rrHeroCarousel .rr-hero-content h2 {
    margin: 15px 0;
    color: #fff;
    font-size: clamp(32px, 4vw, 56px);
    line-height: 1.2;
    font-weight: 700;
}

#rrHeroCarousel .rr-hero-content p {
    color: #fff;
    font-size: 18px;
    line-height: 1.7;
    max-width: 650px;
}

#rrHeroCarousel .rr-hero-label {
    color: #ffe9a2;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 2px;
}

#rrHeroCarousel .carousel-control {
    z-index: 10;
    width: 8%;
    background: none;
    opacity: .9;
}

#rrHeroCarousel .carousel-indicators {
    z-index: 11;
    bottom: 18px;
}

#rrHeroCarousel .carousel-indicators li {
    display: inline-block;
}

@media (max-width: 767px) {
    #rrHeroCarousel .carousel-inner > .item {
        height: 470px;
    }

    #rrHeroCarousel .rr-hero-content {
        left: 10%;
        right: 10%;
    }

    #rrHeroCarousel .rr-hero-content h1,
    #rrHeroCarousel .rr-hero-content h2 {
        font-size: 32px;
    }

    #rrHeroCarousel .rr-hero-content p {
        font-size: 16px;
    }
}




/* Masquer les indicateurs du carrousel principal */
#rrHeroCarousel .carousel-indicators {
    display: none !important;
}

/* Supprimer tout espace inutile lié aux indicateurs */
#rrHeroCarousel {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

#rrHeroCarousel .carousel-inner {
    margin-top: 0 !important;
    padding-top: 0 !important;
}



/* Indiquer que la bannière peut être déplacée */
#rrHeroCarousel .carousel-inner {
    cursor: grab;
}

#rrHeroCarousel.rr-dragging .carousel-inner {
    cursor: grabbing;
    user-select: none;
}
