
/* =====================================================
   RAPPORT DE DURABILITÉ — PAGE PREMIUM
   Fichier : assets/css/rapport-durabilite.css
   Thème enfant Astra
====================================================== */

:root{
    --rapport-green:#1F7A3A;
    --rapport-green-dark:#0F4D2A;
    --rapport-green-soft:#EAF6EE;
    --rapport-blue:#16486B;
    --rapport-blue-dark:#0F2F46;
    --rapport-orange:#F6903D;
    --rapport-terracotta:#BE3F23;
    --rapport-black:#010A1F;
    --rapport-white:#ffffff;
    --rapport-grey:#F5F7F4;
    --rapport-grey-2:#EEF2EA;
    --rapport-text:#101828;
    --rapport-text-soft:#475467;
    --rapport-border:rgba(16,24,40,.09);

    --rapport-container:1240px;
    --rapport-container-large:1320px;

    --rapport-shadow-card:0 18px 46px rgba(16,24,40,.07);
    --rapport-shadow-soft:0 24px 70px rgba(16,24,40,.10);
    --rapport-shadow-strong:0 34px 100px rgba(16,24,40,.16);
}


/* =====================================================
   01. RESET ASTRA — PAGE RAPPORT
====================================================== */

.page .rapport-durabilite-page,
.page .rapport-durabilite-page *{
    box-sizing:border-box;
}

.page .rapport-durabilite-page{
    width:100%;
    max-width:100vw;
    margin:0;
    padding:0;
    overflow-x:hidden;
    color:var(--rapport-text);
    background:var(--rapport-white);
}

.page .rapport-durabilite-page img,
.page .rapport-durabilite-page iframe,
.page .rapport-durabilite-page video{
    max-width:100%;
}

.page .rapport-durabilite-page a{
    text-decoration:none;
}

.page-template-default .site-content > .ast-container,
.page-template .site-content > .ast-container{
    max-width:100% !important;
    padding-left:0 !important;
    padding-right:0 !important;
}

/* Fix marge Astra */
@media(min-width:1200px){

    body.ast-plain-container.ast-no-sidebar main#primary.rapport-durabilite-page,
    body.ast-plain-container.ast-no-sidebar #primary.rapport-durabilite-page,
    body.ast-plain-container.ast-no-sidebar #primary{
        margin-top:0 !important;
        margin-bottom:0 !important;
    }

}


/* =====================================================
   02. COMPOSANTS COMMUNS
====================================================== */

.rapport-section__container{
    position:relative;
    z-index:2;
    width:100%;
    max-width:var(--rapport-container);
    margin:0 auto;
}

.rapport-section__intro{
    max-width:880px;
    margin:0 0 62px;
}

.rapport-section__intro--center{
    margin-left:auto;
    margin-right:auto;
    text-align:center;
}

.rapport-eyebrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-bottom:18px;
    color:var(--rapport-green);
    font-size:14px;
    line-height:1;
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.rapport-section__intro h2,
.rapport-president__quote h2,
.rapport-cyber__content h2,
.rapport-environnement__content h2,
.rapport-final-cta h2{
    margin:0 0 24px;
    color:var(--rapport-black);
    font-size:clamp(34px, 4vw, 58px);
    line-height:1.08;
    letter-spacing:-.045em;
    font-weight:950;
}

.rapport-section__intro p,
.rapport-president__quote p,
.rapport-cyber__content p,
.rapport-environnement__content p,
.rapport-final-cta p{
    margin:0;
    color:var(--rapport-text-soft);
    font-size:19px;
    line-height:1.72;
}

.rapport-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:54px;
    padding:16px 30px;
    border-radius:999px;
    font-size:16px;
    line-height:1;
    font-weight:850;
    text-decoration:none;
    cursor:pointer;
    transition:
        transform .25s ease,
        box-shadow .25s ease,
        background .25s ease,
        border-color .25s ease;
}

.rapport-btn--primary{
    background:linear-gradient(135deg, var(--rapport-green), var(--rapport-green-dark));
    color:var(--rapport-white);
    box-shadow:0 18px 38px rgba(31,122,58,.28);
}

.rapport-btn--primary:hover{
    transform:translateY(-2px);
    color:var(--rapport-white);
    box-shadow:0 24px 48px rgba(31,122,58,.36);
}

.rapport-btn--secondary{
    background:rgba(255,255,255,.13);
    color:var(--rapport-white);
    border:1px solid rgba(255,255,255,.28);
    box-shadow:none;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}

.rapport-btn--secondary:hover{
    transform:translateY(-2px);
    background:rgba(255,255,255,.22);
    color:var(--rapport-white);
}

.rapport-btn--light{
    background:var(--rapport-white);
    color:var(--rapport-green-dark);
    border:1px solid var(--rapport-border);
    box-shadow:0 12px 34px rgba(16,24,40,.06);
}

.rapport-btn--light:hover{
    transform:translateY(-2px);
    color:var(--rapport-green-dark);
    border-color:rgba(31,122,58,.25);
    box-shadow:0 20px 44px rgba(16,24,40,.10);
}


/* =====================================================
   03. PREMIUM UX — SCROLL PROGRESS / STICKY CTA
====================================================== */

.rapport-scroll-progress{
    position:fixed;
    top:0;
    left:0;
    z-index:999998;
    width:100%;
    height:3px;
    background:rgba(255,255,255,.06);
    pointer-events:none;
}

.rapport-scroll-progress__bar{
    width:0;
    height:100%;
    background:linear-gradient(
        90deg,
        var(--rapport-green),
        var(--rapport-orange),
        var(--rapport-blue)
    );
    box-shadow:0 0 18px rgba(31,122,58,.45);
}

.rapport-sticky-cta{
    position:fixed;
    left:50%;
    bottom:24px;
    z-index:999990;
    transform:translateX(-50%) translateY(24px);
    opacity:0;
    pointer-events:none;

    display:flex;
    align-items:center;
    gap:18px;

    padding:10px 12px 10px 18px;
    border-radius:999px;
    background:rgba(1,10,31,.84);
    border:1px solid rgba(255,255,255,.16);
    box-shadow:0 24px 70px rgba(1,10,31,.28);

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

    transition:
        opacity .35s ease,
        transform .35s ease;
}

.rapport-sticky-cta.is-visible{
    opacity:1;
    pointer-events:auto;
    transform:translateX(-50%) translateY(0);
}

.rapport-sticky-cta > span{
    color:rgba(255,255,255,.82);
    font-size:13px;
    line-height:1;
    font-weight:800;
    white-space:nowrap;
}

.rapport-sticky-cta__actions{
    display:flex;
    align-items:center;
    gap:8px;
}

.rapport-sticky-cta__actions a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:11px 16px;
    border-radius:999px;
    color:#ffffff;
    font-size:13px;
    line-height:1;
    font-weight:850;
    text-decoration:none;
    transition:
        background .25s ease,
        transform .25s ease,
        box-shadow .25s ease;
}

.rapport-sticky-cta__actions a:first-child{
    background:var(--rapport-green);
    box-shadow:0 12px 28px rgba(31,122,58,.28);
}

.rapport-sticky-cta__actions a:first-child:hover{
    background:var(--rapport-green-dark);
    transform:translateY(-1px);
}

.rapport-sticky-cta__actions a:last-child{
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.16);
}

.rapport-sticky-cta__actions a:last-child:hover{
    background:rgba(255,255,255,.20);
    transform:translateY(-1px);
}


/* =====================================================
   04. HERO
====================================================== */

.rapport-hero{
    position:relative;
    min-height:calc(100svh - 90px);
    overflow:hidden;
    background:var(--rapport-black);
    color:var(--rapport-white);
}

.rapport-hero__background{
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 14% 22%, rgba(31,122,58,.30), transparent 34%),
        radial-gradient(circle at 88% 80%, rgba(246,144,61,.22), transparent 32%),
        linear-gradient(135deg, var(--rapport-black) 0%, var(--rapport-blue-dark) 52%, #07182a 100%);
    transform:scale(1.02);
}

.rapport-hero__overlay{
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:
        linear-gradient(90deg, rgba(1,10,31,.94), rgba(15,47,70,.78)),
        radial-gradient(circle at 50% 50%, rgba(255,255,255,.05), transparent 55%);
    overflow:hidden;
}

.rapport-hero__overlay::before{
    content:"";
    position:absolute;
    top:24%;
    left:-75%;
    width:90%;
    height:2px;
    background:linear-gradient(
        90deg,
        transparent,
        rgba(31,122,58,.72),
        rgba(246,144,61,.72),
        transparent
    );
    opacity:.56;
    filter:blur(.2px);
    transform:rotate(-13deg);
    animation:rapportHeroBeam 9s ease-in-out infinite;
}

.rapport-hero__overlay::after{
    content:"";
    position:absolute;
    top:16%;
    left:-80%;
    width:95%;
    height:120px;
    background:linear-gradient(
        90deg,
        transparent,
        rgba(31,122,58,.13),
        rgba(246,144,61,.14),
        transparent
    );
    opacity:.60;
    filter:blur(38px);
    transform:rotate(-13deg);
    animation:rapportHeroHalo 9s ease-in-out infinite;
}

@keyframes rapportHeroBeam{
    0%{ left:-75%; opacity:0; }
    18%{ opacity:.45; }
    50%{ opacity:.62; }
    100%{ left:110%; opacity:0; }
}

@keyframes rapportHeroHalo{
    0%{ left:-82%; opacity:0; }
    20%{ opacity:.45; }
    52%{ opacity:.62; }
    100%{ left:105%; opacity:0; }
}

.rapport-hero__container{
    position:relative;
    z-index:3;
    width:100%;
    max-width:var(--rapport-container-large);
    min-height:calc(100svh - 90px);
    margin:0 auto;
    padding:clamp(56px, 7vh, 92px) 48px clamp(76px, 8vh, 110px);
    display:grid;
    grid-template-columns:minmax(0, .95fr) minmax(420px, 1.05fr);
    gap:clamp(42px, 5vw, 76px);
    align-items:center;
}

.rapport-hero__content{
    max-width:760px;
}

.rapport-hero__badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-bottom:22px;
    padding:9px 18px;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.18);
    color:var(--rapport-white);
    font-size:13px;
    font-weight:850;
    letter-spacing:.02em;
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
}

.rapport-hero h1{
    margin:0 0 24px;
    color:var(--rapport-white);
    font-size:clamp(44px, 5.4vw, 78px);
    line-height:1.01;
    letter-spacing:-.06em;
    font-weight:950;
}

.rapport-hero p{
    max-width:720px;
    margin:0 0 32px;
    color:rgba(255,255,255,.88);
    font-size:clamp(17px, 1.55vw, 21px);
    line-height:1.62;
}

.rapport-hero__actions{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-bottom:28px;
}

.rapport-hero__proofs{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}

.rapport-hero__proof{
    display:flex;
    align-items:center;
    gap:9px;
    min-height:42px;
    padding:9px 14px;
    border-radius:999px;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.15);
    color:rgba(255,255,255,.84);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}

.rapport-hero__proof strong{
    color:#B8F5C8;
    font-size:17px;
    line-height:1;
    font-weight:950;
    white-space:nowrap;
}

.rapport-hero__proof span{
    color:rgba(255,255,255,.82);
    font-size:13.5px;
    line-height:1.2;
    font-weight:750;
}

.rapport-hero__visual{
    position:relative;
    width:100%;
    min-width:0;
}


/* =====================================================
   05. CARTE COUVERTURE
====================================================== */

.rapport-cover-card{
    position:relative;
    width:100%;
    min-height:560px;
    padding:26px;
    border-radius:36px;
    background:rgba(255,255,255,.90);
    border:1px solid rgba(255,255,255,.22);
    box-shadow:0 34px 100px rgba(0,0,0,.34);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    overflow:hidden;
}

.rapport-cover-card::before{
    content:"";
    position:absolute;
    top:-100px;
    right:-90px;
    width:280px;
    height:280px;
    border-radius:999px;
    background:radial-gradient(circle, rgba(31,122,58,.24), transparent 66%);
    pointer-events:none;
}

.rapport-cover-card::after{
    content:"";
    position:absolute;
    bottom:-130px;
    left:-100px;
    width:310px;
    height:310px;
    border-radius:999px;
    background:radial-gradient(circle, rgba(246,144,61,.20), transparent 68%);
    pointer-events:none;
}

.rapport-cover-card__top{
    position:relative;
    z-index:2;
    display:flex;
    gap:8px;
    margin-bottom:22px;
}

.rapport-cover-card__top span{
    width:10px;
    height:10px;
    border-radius:999px;
    background:rgba(1,10,31,.22);
}

.rapport-cover-card__content{
    position:relative;
    z-index:2;
    min-height:400px;
    padding:36px;
    border-radius:28px;
    background:
        linear-gradient(135deg, rgba(255,255,255,.94), rgba(234,246,238,.86)),
        radial-gradient(circle at 85% 10%, rgba(31,122,58,.16), transparent 40%);
    border:1px solid rgba(16,24,40,.08);
    box-shadow:0 18px 42px rgba(16,24,40,.08);
}

.rapport-cover-card__content small{
    display:block;
    margin-bottom:34px;
    color:var(--rapport-blue-dark);
    font-size:14px;
    line-height:1;
    font-weight:950;
    letter-spacing:.16em;
}

.rapport-cover-card__content h2{
    margin:0 0 26px;
    color:var(--rapport-green-dark);
    font-size:clamp(42px, 4vw, 64px);
    line-height:.98;
    letter-spacing:-.06em;
    font-weight:950;
}

.rapport-cover-card__content p{
    max-width:410px;
    margin:0;
    color:var(--rapport-text-soft);
    font-size:17px;
    line-height:1.58;
    font-weight:650;
}

.rapport-cover-card__labels{
    position:relative;
    z-index:2;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:18px;
}

.rapport-cover-card__labels span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:10px 14px;
    border-radius:999px;
    background:var(--rapport-grey);
    border:1px solid rgba(16,24,40,.07);
    color:var(--rapport-blue-dark);
    font-size:13px;
    line-height:1;
    font-weight:850;
}


/* =====================================================
   06. SECTIONS GÉNÉRIQUES
====================================================== */

.rapport-synthese,
.rapport-president,
.rapport-kpis,
.rapport-labels,
.rapport-cyber,
.rapport-societal,
.rapport-environnement,
.rapport-consultation{
    position:relative;
    padding:120px 48px;
    overflow:hidden;
}

.rapport-synthese,
.rapport-kpis,
.rapport-cyber,
.rapport-environnement{
    background:var(--rapport-white);
}

.rapport-president,
.rapport-labels,
.rapport-societal,
.rapport-consultation{
    background:var(--rapport-grey);
}

.rapport-synthese::before,
.rapport-president::before,
.rapport-kpis::before,
.rapport-labels::before,
.rapport-cyber::before,
.rapport-societal::before,
.rapport-environnement::before,
.rapport-consultation::before{
    content:"";
    position:absolute;
    top:-180px;
    right:-180px;
    width:460px;
    height:460px;
    border-radius:999px;
    background:radial-gradient(circle, rgba(31,122,58,.12), transparent 68%);
    pointer-events:none;
}

.rapport-synthese::after,
.rapport-labels::after,
.rapport-cyber::after,
.rapport-consultation::after{
    content:"";
    position:absolute;
    bottom:-220px;
    left:-180px;
    width:500px;
    height:500px;
    border-radius:999px;
    background:radial-gradient(circle, rgba(246,144,61,.10), transparent 68%);
    pointer-events:none;
}


/* =====================================================
   07. CARTES SYNTHÈSE
====================================================== */

.rapport-synthese__grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:22px;
}

.rapport-card{
    position:relative;
    min-height:310px;
    padding:30px 24px;
    border-radius:28px;
    background:rgba(255,255,255,.92);
    border:1px solid var(--rapport-border);
    box-shadow:var(--rapport-shadow-card);
    overflow:hidden;
    transition:
        transform .28s ease,
        box-shadow .28s ease,
        border-color .28s ease;
}

.rapport-card:hover{
    transform:translateY(-6px);
    box-shadow:0 30px 80px rgba(16,24,40,.12);
    border-color:rgba(31,122,58,.24);
}

.rapport-card::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:5px;
    background:linear-gradient(90deg, var(--rapport-green), var(--rapport-orange), var(--rapport-blue));
}

.rapport-card__icon{
    width:54px;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:24px;
    border-radius:18px;
    background:linear-gradient(135deg, var(--rapport-green-dark), var(--rapport-green));
    color:#fff;
    font-size:15px;
    line-height:1;
    font-weight:950;
}

.rapport-card h3{
    margin:0 0 14px;
    color:var(--rapport-black);
    font-size:22px;
    line-height:1.15;
    letter-spacing:-.03em;
    font-weight:950;
}

.rapport-card p{
    margin:0;
    color:var(--rapport-text-soft);
    font-size:15.5px;
    line-height:1.62;
}


/* =====================================================
   08. MOT DE LA PRÉSIDENTE
====================================================== */

.rapport-president__layout{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0, .95fr) minmax(380px, 1.05fr);
    gap:72px;
    align-items:center;
}

.rapport-president__quote{
    max-width:680px;
}

.rapport-president__quote strong{
    display:block;
    margin-top:32px;
    color:var(--rapport-black);
    font-size:19px;
    line-height:1.3;
    font-weight:950;
}

.rapport-president__quote strong span{
    color:var(--rapport-text-soft);
    font-size:15px;
    font-weight:750;
}

.rapport-president__panel{
    display:grid;
    gap:18px;
}

.rapport-president__item{
    position:relative;
    padding:28px;
    border-radius:28px;
    background:rgba(255,255,255,.92);
    border:1px solid var(--rapport-border);
    box-shadow:var(--rapport-shadow-card);
    overflow:hidden;
}

.rapport-president__item::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:5px;
    height:100%;
    background:linear-gradient(180deg, var(--rapport-green), var(--rapport-orange));
}

.rapport-president__item strong{
    display:block;
    margin-bottom:8px;
    color:var(--rapport-black);
    font-size:19px;
    line-height:1.2;
    font-weight:950;
}

.rapport-president__item span{
    display:block;
    color:var(--rapport-text-soft);
    font-size:15.5px;
    line-height:1.58;
}


/* =====================================================
   09. KPIS
====================================================== */

.rapport-kpis__grid{
    display:grid;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    gap:18px;
}

.rapport-kpi{
    position:relative;
    min-height:190px;
    padding:30px 22px;
    border-radius:28px;
    background:var(--rapport-grey);
    border:1px solid var(--rapport-border);
    box-shadow:var(--rapport-shadow-card);
    text-align:center;
    overflow:hidden;
    transition:
        transform .28s ease,
        box-shadow .28s ease,
        border-color .28s ease;
}

.rapport-kpi:hover{
    transform:translateY(-6px);
    box-shadow:0 30px 80px rgba(16,24,40,.12);
    border-color:rgba(31,122,58,.24);
}

.rapport-kpi::before{
    content:"";
    position:absolute;
    inset:auto 0 0;
    height:5px;
    background:linear-gradient(90deg, var(--rapport-green), var(--rapport-orange));
}

.rapport-kpi strong{
    display:block;
    margin-bottom:12px;
    color:var(--rapport-green-dark);
    font-size:clamp(40px, 4vw, 56px);
    line-height:1;
    font-weight:950;
    letter-spacing:-.06em;
}

.rapport-kpi span{
    display:block;
    color:var(--rapport-text-soft);
    font-size:15px;
    line-height:1.35;
    font-weight:850;
}


/* =====================================================
   10. LABELS
====================================================== */

.rapport-labels__grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:22px;
}

.rapport-label-card{
    position:relative;
    min-height:300px;
    padding:32px 26px;
    border-radius:30px;
    background:rgba(255,255,255,.92);
    border:1px solid var(--rapport-border);
    box-shadow:var(--rapport-shadow-card);
    overflow:hidden;
    transition:
        transform .28s ease,
        box-shadow .28s ease,
        border-color .28s ease;
}

.rapport-label-card:hover{
    transform:translateY(-6px);
    box-shadow:0 30px 80px rgba(16,24,40,.12);
    border-color:rgba(31,122,58,.24);
}

.rapport-label-card::before{
    content:"";
    position:absolute;
    top:-90px;
    right:-90px;
    width:190px;
    height:190px;
    border-radius:999px;
    background:radial-gradient(circle, rgba(31,122,58,.15), transparent 66%);
}

.rapport-label-card > span{
    width:54px;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:24px;
    border-radius:18px;
    background:linear-gradient(135deg, var(--rapport-blue-dark), var(--rapport-blue));
    color:#fff;
    font-size:15px;
    line-height:1;
    font-weight:950;
}

.rapport-label-card h3{
    margin:0 0 14px;
    color:var(--rapport-black);
    font-size:23px;
    line-height:1.14;
    letter-spacing:-.03em;
    font-weight:950;
}

.rapport-label-card p{
    margin:0;
    color:var(--rapport-text-soft);
    font-size:15.5px;
    line-height:1.62;
}


/* =====================================================
   11. CYBERVADIS
====================================================== */

.rapport-cyber__layout{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0, .92fr) minmax(380px, 1.08fr);
    gap:72px;
    align-items:center;
}

.rapport-cyber__content{
    max-width:640px;
}

.rapport-cyber__actions{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-top:34px;
}

.rapport-cyber__score{
    position:relative;
    min-width:0;
}

.rapport-cyber-score-card{
    position:relative;
    min-height:460px;
    padding:34px;
    border-radius:36px;
    background:linear-gradient(135deg, var(--rapport-blue-dark), var(--rapport-blue));
    color:#fff;
    box-shadow:var(--rapport-shadow-strong);
    overflow:hidden;
}

.rapport-cyber-score-card::before{
    content:"";
    position:absolute;
    top:-120px;
    right:-110px;
    width:320px;
    height:320px;
    border-radius:999px;
    background:radial-gradient(circle, rgba(246,144,61,.24), transparent 68%);
}

.rapport-cyber-score-card::after{
    content:"";
    position:absolute;
    bottom:-150px;
    left:-110px;
    width:340px;
    height:340px;
    border-radius:999px;
    background:radial-gradient(circle, rgba(31,122,58,.30), transparent 68%);
}

.rapport-cyber-score-card small,
.rapport-cyber-score-card strong,
.rapport-cyber-score-card__value,
.rapport-cyber-score-card p{
    position:relative;
    z-index:2;
}

.rapport-cyber-score-card small{
    display:inline-flex;
    margin-bottom:18px;
    padding:8px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.16);
    color:rgba(255,255,255,.80);
    font-size:13px;
    line-height:1;
    font-weight:850;
}

.rapport-cyber-score-card strong{
    display:block;
    margin-bottom:36px;
    color:#fff;
    font-size:clamp(42px, 4vw, 62px);
    line-height:1;
    font-weight:950;
    letter-spacing:-.055em;
}

.rapport-cyber-score-card__value{
    width:190px;
    height:190px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:32px;
    border-radius:999px;
    background:
        radial-gradient(circle at center, rgba(255,255,255,.96) 55%, transparent 57%),
        conic-gradient(var(--rapport-green) 0 85.7%, rgba(255,255,255,.18) 85.7% 100%);
    color:var(--rapport-green-dark);
    font-size:44px;
    line-height:1;
    font-weight:950;
    letter-spacing:-.04em;
    box-shadow:0 24px 60px rgba(0,0,0,.18);
}

.rapport-cyber-score-card p{
    max-width:460px;
    margin:0;
    color:rgba(255,255,255,.82);
    font-size:16.5px;
    line-height:1.6;
}


/* =====================================================
   12. SOCIÉTAL
====================================================== */

.rapport-societal__grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:28px;
}

.rapport-societal-card{
    position:relative;
    min-height:340px;
    padding:36px 32px;
    border-radius:34px;
    background:#fff;
    border:1px solid var(--rapport-border);
    box-shadow:var(--rapport-shadow-card);
    overflow:hidden;
    transition:
        transform .28s ease,
        box-shadow .28s ease,
        border-color .28s ease;
}

.rapport-societal-card:hover{
    transform:translateY(-6px);
    box-shadow:0 30px 80px rgba(16,24,40,.12);
    border-color:rgba(31,122,58,.24);
}

.rapport-societal-card::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:5px;
    background:linear-gradient(90deg, var(--rapport-green), var(--rapport-orange), var(--rapport-blue));
}

.rapport-societal-card > span{
    display:inline-flex;
    margin-bottom:20px;
    padding:9px 13px;
    border-radius:999px;
    background:var(--rapport-green-soft);
    color:var(--rapport-green-dark);
    font-size:13px;
    line-height:1;
    font-weight:900;
}

.rapport-societal-card h3{
    margin:0 0 16px;
    color:var(--rapport-black);
    font-size:28px;
    line-height:1.12;
    letter-spacing:-.04em;
    font-weight:950;
}

.rapport-societal-card p{
    margin:0;
    color:var(--rapport-text-soft);
    font-size:16.5px;
    line-height:1.68;
}


/* =====================================================
   13. ENVIRONNEMENT
====================================================== */

.rapport-environnement__layout{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:minmax(0, .92fr) minmax(0, 1.08fr);
    gap:72px;
    align-items:center;
}

.rapport-environnement__content{
    max-width:640px;
}

.rapport-environnement__list{
    display:grid;
    gap:16px;
}

.rapport-environnement__list > div{
    position:relative;
    padding:24px 26px 24px 28px;
    border-radius:24px;
    background:var(--rapport-grey);
    border:1px solid var(--rapport-border);
    box-shadow:0 14px 36px rgba(16,24,40,.05);
    overflow:hidden;
}

.rapport-environnement__list > div::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:5px;
    height:100%;
    background:linear-gradient(180deg, var(--rapport-green), var(--rapport-orange));
}

.rapport-environnement__list strong{
    display:block;
    margin-bottom:8px;
    color:var(--rapport-black);
    font-size:18px;
    line-height:1.2;
    font-weight:950;
}

.rapport-environnement__list span{
    display:block;
    color:var(--rapport-text-soft);
    font-size:15.5px;
    line-height:1.58;
}


/* =====================================================
   14. CONSULTATION PDF
====================================================== */

.rapport-consultation__actions{
    position:relative;
    z-index:2;
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:14px;
    margin:-22px 0 34px;
}

.rapport-pdf-viewer{
    position:relative;
    z-index:2;
    width:100%;
    height:820px;
    border-radius:34px;
    overflow:hidden;
    background:#fff;
    border:1px solid var(--rapport-border);
    box-shadow:var(--rapport-shadow-strong);
}

.rapport-pdf-viewer iframe{
    display:block;
    width:100%;
    height:100%;
    border:0;
    background:#fff;
}


/* =====================================================
   15. CTA FINAL
====================================================== */

.rapport-final-cta{
    position:relative;
    padding:120px 48px;
    background:var(--rapport-black);
    color:var(--rapport-white);
    overflow:hidden;
}

.rapport-final-cta::before,
.rapport-final-cta::after{
    content:"";
    position:absolute;
    border-radius:999px;
    pointer-events:none;
}

.rapport-final-cta::before{
    top:-180px;
    right:-160px;
    width:460px;
    height:460px;
    background:radial-gradient(circle, rgba(31,122,58,.22), transparent 68%);
}

.rapport-final-cta::after{
    bottom:-220px;
    left:-170px;
    width:500px;
    height:500px;
    background:radial-gradient(circle, rgba(246,144,61,.18), transparent 68%);
}

.rapport-final-cta__container{
    position:relative;
    z-index:2;
    max-width:960px;
    margin:0 auto;
    text-align:center;
}

.rapport-final-cta .rapport-eyebrow{
    color:#B8F5C8;
}

.rapport-final-cta h2{
    color:#fff;
}

.rapport-final-cta p{
    max-width:760px;
    margin:0 auto 34px;
    color:rgba(255,255,255,.84);
}

.rapport-final-cta__actions{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:14px;
}


/* =====================================================
   16. REVEAL / LIGHT FOLLOW
====================================================== */

.rapport-reveal{
    opacity:0;
    transform:translateY(34px);
    transition:
        opacity .85s ease,
        transform .85s cubic-bezier(.22, 1, .36, 1);
    will-change:opacity, transform;
}

.rapport-reveal.is-visible{
    opacity:1;
    transform:translateY(0);
}

.rapport-reveal--card{
    transform:translateY(42px) scale(.985);
}

.rapport-reveal--card.is-visible{
    transform:translateY(0) scale(1);
}

.rapport-reveal[data-reveal-delay="1"]{ transition-delay:.08s; }
.rapport-reveal[data-reveal-delay="2"]{ transition-delay:.16s; }
.rapport-reveal[data-reveal-delay="3"]{ transition-delay:.24s; }
.rapport-reveal[data-reveal-delay="4"]{ transition-delay:.32s; }
.rapport-reveal[data-reveal-delay="5"]{ transition-delay:.40s; }
.rapport-reveal[data-reveal-delay="6"]{ transition-delay:.48s; }

.rapport-card,
.rapport-kpi,
.rapport-label-card,
.rapport-societal-card,
.rapport-president__item,
.rapport-environnement__list > div{
    position:relative;
}

.rapport-card::after,
.rapport-kpi::after,
.rapport-label-card::after,
.rapport-societal-card::after,
.rapport-president__item::after,
.rapport-environnement__list > div::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:0;
    background:radial-gradient(
        circle at var(--rapport-card-x, 50%) var(--rapport-card-y, 50%),
        rgba(31,122,58,.12),
        rgba(246,144,61,.08) 28%,
        transparent 58%
    );
    transition:opacity .28s ease;
}

.rapport-card:hover::after,
.rapport-kpi:hover::after,
.rapport-label-card:hover::after,
.rapport-societal-card:hover::after,
.rapport-president__item:hover::after,
.rapport-environnement__list > div:hover::after{
    opacity:1;
}

.rapport-hero__content,
.rapport-hero__visual{
    transition:transform .12s linear;
    will-change:transform;
}


/* =====================================================
   17. RESPONSIVE
====================================================== */

@media(max-width:1180px){

    .rapport-hero__container{
        grid-template-columns:1fr;
        gap:48px;
        min-height:auto;
        padding-top:76px;
        padding-bottom:92px;
    }

    .rapport-hero__content{
        max-width:920px;
    }

    .rapport-hero__visual{
        max-width:760px;
    }

    .rapport-cover-card{
        min-height:auto;
    }

    .rapport-synthese__grid,
    .rapport-labels__grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .rapport-kpis__grid{
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }

    .rapport-president__layout,
    .rapport-cyber__layout,
    .rapport-environnement__layout{
        grid-template-columns:1fr;
        gap:48px;
    }

    .rapport-president__quote,
    .rapport-cyber__content,
    .rapport-environnement__content{
        max-width:860px;
    }
}

@media(max-width:980px){

    .rapport-synthese,
    .rapport-president,
    .rapport-kpis,
    .rapport-labels,
    .rapport-cyber,
    .rapport-societal,
    .rapport-environnement,
    .rapport-consultation,
    .rapport-final-cta{
        padding:92px 34px;
    }

    .rapport-section__intro,
    .rapport-section__intro--center{
        text-align:left;
        margin-left:0;
        margin-right:0;
        margin-bottom:46px;
    }

    .rapport-pdf-viewer{
        height:720px;
        border-radius:28px;
    }
}

@media(max-width:760px){

    .rapport-sticky-cta{
        left:14px;
        right:14px;
        bottom:14px;
        transform:translateY(24px);
        width:auto;
        justify-content:space-between;
        border-radius:22px;
        padding:12px;
    }

    .rapport-sticky-cta.is-visible{
        transform:translateY(0);
    }

    .rapport-sticky-cta > span{
        display:none;
    }

    .rapport-sticky-cta__actions{
        width:100%;
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:8px;
    }

    .rapport-sticky-cta__actions a{
        width:100%;
        min-height:42px;
        padding:12px 10px;
        font-size:12.5px;
        text-align:center;
    }
}

@media(max-width:700px){

    html,
    body{
        overflow-x:hidden !important;
    }

    .rapport-durabilite-page{
        max-width:100vw;
        overflow-x:hidden !important;
    }

    .rapport-hero{
        min-height:auto;
    }

    .rapport-hero__container{
        min-height:auto;
        padding:54px 22px 76px;
        gap:32px;
    }

    .rapport-hero h1{
        font-size:36px;
        line-height:1.06;
        letter-spacing:-.04em;
    }

    .rapport-hero p{
        font-size:16px;
        line-height:1.6;
        margin-bottom:26px;
    }

    .rapport-hero__badge{
        font-size:12px;
        padding:8px 13px;
        margin-bottom:18px;
    }

    .rapport-hero__actions,
    .rapport-hero__actions .rapport-btn,
    .rapport-cyber__actions,
    .rapport-cyber__actions .rapport-btn,
    .rapport-consultation__actions,
    .rapport-consultation__actions .rapport-btn,
    .rapport-final-cta__actions,
    .rapport-final-cta__actions .rapport-btn{
        width:100%;
    }

    .rapport-hero__proofs{
        flex-direction:column;
        gap:8px;
    }

    .rapport-hero__proof{
        width:100%;
        justify-content:space-between;
        border-radius:16px;
        padding:11px 13px;
    }

    .rapport-cover-card{
        padding:14px;
        border-radius:24px;
    }

    .rapport-cover-card__content{
        min-height:auto;
        padding:28px 22px;
        border-radius:22px;
    }

    .rapport-cover-card__content small{
        margin-bottom:24px;
    }

    .rapport-cover-card__content h2{
        font-size:38px;
    }

    .rapport-cover-card__labels{
        gap:8px;
    }

    .rapport-cover-card__labels span{
        min-height:34px;
        font-size:12px;
    }

    .rapport-synthese,
    .rapport-president,
    .rapport-kpis,
    .rapport-labels,
    .rapport-cyber,
    .rapport-societal,
    .rapport-environnement,
    .rapport-consultation,
    .rapport-final-cta{
        padding:82px 22px;
    }

    .rapport-section__intro h2,
    .rapport-president__quote h2,
    .rapport-cyber__content h2,
    .rapport-environnement__content h2,
    .rapport-final-cta h2{
        font-size:34px;
    }

    .rapport-section__intro p,
    .rapport-president__quote p,
    .rapport-cyber__content p,
    .rapport-environnement__content p,
    .rapport-final-cta p{
        font-size:16.5px;
        line-height:1.65;
    }

    .rapport-synthese__grid,
    .rapport-labels__grid,
    .rapport-kpis__grid,
    .rapport-societal__grid{
        grid-template-columns:1fr;
        gap:18px;
    }

    .rapport-card,
    .rapport-label-card,
    .rapport-societal-card{
        min-height:auto;
        padding:28px 22px;
        border-radius:24px;
    }

    .rapport-card h3,
    .rapport-label-card h3{
        font-size:22px;
    }

    .rapport-societal-card h3{
        font-size:25px;
    }

    .rapport-president__item,
    .rapport-environnement__list > div{
        padding:22px 20px 22px 24px;
        border-radius:22px;
    }

    .rapport-kpi{
        min-height:160px;
        padding:28px 22px;
        border-radius:24px;
    }

    .rapport-cyber-score-card{
        min-height:auto;
        padding:28px 22px;
        border-radius:28px;
    }

    .rapport-cyber-score-card strong{
        margin-bottom:26px;
    }

    .rapport-cyber-score-card__value{
        width:150px;
        height:150px;
        font-size:34px;
    }

    .rapport-pdf-viewer{
        height:560px;
        border-radius:24px;
    }

    .rapport-hero__overlay::before{
        top:18%;
        width:105%;
        height:1px;
        opacity:.34;
        animation-duration:10.5s;
    }

    .rapport-hero__overlay::after{
        top:10%;
        width:110%;
        height:80px;
        opacity:.36;
        animation-duration:10.5s;
    }

    .rapport-reveal,
    .rapport-reveal--card{
        transform:translateY(20px);
        transition-duration:.65s;
    }

    .rapport-reveal[data-reveal-delay]{
        transition-delay:0s;
    }
}

@media(max-width:390px){

    .rapport-hero h1,
    .rapport-section__intro h2,
    .rapport-president__quote h2,
    .rapport-cyber__content h2,
    .rapport-environnement__content h2,
    .rapport-final-cta h2{
        font-size:30px;
    }

    .rapport-hero__container{
        padding-left:20px;
        padding-right:20px;
    }

    .rapport-sticky-cta__actions{
        grid-template-columns:1fr;
    }
}


/* =====================================================
   18. ACCESSIBILITÉ — MOTION REDUCED
====================================================== */

@media(prefers-reduced-motion:reduce){

    .rapport-durabilite-page *,
    .rapport-durabilite-page *::before,
    .rapport-durabilite-page *::after{
        animation:none !important;
        transition:none !important;
    }

    .rapport-reveal,
    .rapport-reveal--card{
        opacity:1 !important;
        transform:none !important;
    }

    .rapport-scroll-progress__bar,
    .rapport-sticky-cta,
    .rapport-hero__content,
    .rapport-hero__visual{
        transition:none !important;
        transform:none !important;
    }
}
