.page-rse {
            --ph-bg: #ffffff;
            --ph-text: #111111;
            --ph-sub: #5f6368;
            --ph-line: #e8e8e8;
            --ph-accent: #f4c400;
            --ph-accent-2: #ffd84d;
            --ph-dark: #131313;
            --ph-card: #fafafa;
            --ph-green: #1f7a4d;
            --ph-green-soft: rgba(31,122,77,0.1);
            --ph-blue: #2456e1;
            --ph-shadow: 0 18px 44px rgba(0,0,0,0.06);
        }

        .page-rse {
            font-family: 'Inter', sans-serif;
            background: var(--ph-bg);
            color: var(--ph-text);
        }

        .rse-hero {
            position: relative;
            padding: 80px 0 40px;
            text-align: center;
            overflow: hidden;
            background:
                radial-gradient(circle at 16% 10%, rgba(31,122,77,0.08), transparent 20%),
                linear-gradient(180deg, #ffffff 0%, #fbfbfb 100%);
        }

        .rse-hero::after {
            display:none;
            content: "";
            position: absolute;
            left: 50%;
            bottom: -90px;
            transform: translateX(-50%);
            width: 940px;
            height: 240px;
            background: radial-gradient(ellipse at center, rgba(244,196,0,0.16) 0%, rgba(244,196,0,0.04) 38%, rgba(244,196,0,0) 74%);
            pointer-events: none;
        }

        .rse-container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 20px;
            position: relative;
            z-index: 2;
        }

        .rse-kicker {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            padding: 10px 18px;
            border-radius: 999px;
            background: rgba(244,196,0,0.14);
            color: #8a6a00;
            font-size: 0.95rem;
            font-weight: 800;
            letter-spacing: 0.02em;
            margin-bottom: 22px;
        }

        .rse-hero h1 {
            margin: 0 auto 10px;
            max-width: 1040px;
            width: 100%;
            font-size: clamp(2rem, 3.6vw, 4rem);
            line-height: 1.08;
            font-weight: 800;
            letter-spacing: -0.04em;
            white-space: normal;
            overflow-wrap: normal;
            word-break: normal;
        }

        .rse-hero p {
            max-width: 940px;
            margin: 0 auto;
            font-size: clamp(1.08rem, 1.65vw, 1.26rem);
            line-height: 1.82;
            color: var(--ph-sub);
        }

        .rse-hero-actions {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 16px;
            flex-wrap: wrap;
            margin-top: 36px;
        }

        .rse-btn-primary,
        .rse-btn-primary:link,
        .rse-btn-primary:visited,
        .rse-btn-primary:active {
            display: inline-block;
            padding: 18px 34px;
            border-radius: 999px;
            background: linear-gradient(180deg, var(--ph-accent) 0%, var(--ph-accent-2) 100%);
            color: #111 !important;
            text-decoration: none !important;
            font-weight: 800;
            box-shadow: 0 18px 35px rgba(244,196,0,0.35), 0 6px 12px rgba(0,0,0,0.12);
            transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
        }

        .rse-btn-primary:hover {
            color: #000 !important;
            transform: translateY(-3px) scale(1.03);
            box-shadow: 0 28px 55px rgba(244,196,0,0.55), 0 10px 20px rgba(0,0,0,0.18);
            background: linear-gradient(180deg, #ffd84d 0%, #ffe27a 100%);
        }

        .rse-btn-secondary,
        .rse-btn-secondary:link,
        .rse-btn-secondary:visited,
        .rse-btn-secondary:active {
            display: inline-block;
            padding: 18px 34px;
            border-radius: 999px;
            background: #fff;
            color: #111 !important;
            text-decoration: none !important;
            font-weight: 700;
            border: 1px solid rgba(0,0,0,0.08);
            box-shadow: 0 12px 28px rgba(0,0,0,0.06);
            transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
        }

        .rse-btn-secondary:hover {
            color: #111 !important;
            transform: translateY(-2px);
            border-color: rgba(244,196,0,0.35);
            box-shadow: 0 18px 32px rgba(0,0,0,0.08);
        }

        .rse-summary {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 18px;
            max-width: 1120px;
            margin: 48px auto 0;
        }

        .rse-summary-card {
            padding: 28px 22px;
            background: rgba(255,255,255,0.94);
            border-radius: 28px;
            box-shadow: 0 16px 40px rgba(0,0,0,0.055);
            text-align: left;
            border: 1px solid rgba(0,0,0,0.04);
        }

        .rse-summary-card strong {
            display: block;
            font-size: 1.7rem;
            margin-bottom: 8px;
            letter-spacing: -0.04em;
        }

        .rse-summary-card span {
            color: var(--ph-sub);
            line-height: 1.65;
            font-size: 0.98rem;
        }

        .rse-main {
            max-width: 1200px;
            margin: 0 auto;
            padding: 78px 20px 120px;
        }

        .rse-section-block {
            padding: 56px 0;
        }

        .rse-section-divider {
            height: 1px;
            background: linear-gradient(to right, transparent, var(--ph-line), transparent);
        }

        .rse-section-head {
            display: flex;
            align-items: end;
            justify-content: space-between;
            gap: 24px;
            flex-wrap: wrap;
            margin-bottom: 34px;
        }

        .rse-section-head h2 {
            margin: 0;
            font-size: clamp(2rem, 3vw, 3rem);
            line-height: 1.08;
            letter-spacing: -0.04em;
        }

        .rse-section-head p {
            margin: 0;
            max-width: 590px;
            color: var(--ph-sub);
            line-height: 1.8;
            font-size: 1.02rem;
            text-align: right;
        }

        .rse-impact-panel {
            display: grid;
            grid-template-columns: 0.85fr 1.15fr;
            gap: 28px;
            align-items: stretch;
        }

        .rse-impact-score {
            padding: 38px;
            border-radius: 34px;
            background: linear-gradient(180deg, #171717 0%, #101010 100%);
            color: #fff;
            box-shadow: 0 26px 58px rgba(0,0,0,0.16);
        }

        .rse-impact-score small {
            display: inline-flex;
            padding: 8px 14px;
            border-radius: 999px;
            background: rgba(244,196,0,0.14);
            color: var(--ph-accent-2);
            font-weight: 800;
            margin-bottom: 22px;
        }

        .rse-impact-score strong {
            display: block;
            font-size: clamp(4rem, 8vw, 6.4rem);
            line-height: 0.88;
            letter-spacing: -0.08em;
            margin-bottom: 18px;
        }

        .rse-impact-score p {
            color: rgba(255,255,255,0.78);
            line-height: 1.9;
            margin: 0;
        }

        .rse-impact-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 18px;
        }

        .rse-impact-card,
        .rse-commitment-card,
        .rse-timeline-card,
        .rse-document-card {
            padding: 28px;
            border-radius: 28px;
            background: #ffffff;
            box-shadow: var(--ph-shadow);
            border: 1px solid rgba(0,0,0,0.05);
        }

        .rse-impact-card b {
            display: block;
            font-size: 1.15rem;
            margin-bottom: 8px;
        }

        .rse-impact-card span {
            color: var(--ph-sub);
            line-height: 1.75;
            font-size: 0.98rem;
        }

        .rse-commitments-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 24px;
        }

        .rse-commitment-icon {
            width: 56px;
            height: 56px;
            border-radius: 18px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 18px;
            background: linear-gradient(180deg, rgba(244,196,0,0.18) 0%, rgba(255,216,77,0.3) 100%);
            color: #8a6a00;
            font-size: 1.6rem;
            font-weight: 800;
        }

        .rse-commitment-card h3,
        .rse-timeline-card h3,
        .rse-document-card h3 {
            margin: 0 0 12px;
            font-size: 1.22rem;
            line-height: 1.25;
        }

        .rse-commitment-card p,
        .rse-timeline-card p,
        .rse-document-card p {
            margin: 0;
            color: var(--ph-sub);
            line-height: 1.78;
            font-size: 0.98rem;
        }

        .rse-carbon-panel {
            padding: 42px;
            border-radius: 34px;
            background: linear-gradient(180deg, #f9fbf9 0%, #ffffff 100%);
            box-shadow: var(--ph-shadow);
            border: 1px solid rgba(31,122,77,0.10);
        }

        .rse-carbon-stats {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 18px;
            margin-top: 26px;
        }

        .rse-carbon-stat {
            padding: 24px 20px;
            border-radius: 24px;
            background: #fff;
            border: 1px solid rgba(31,122,77,0.10);
        }

        .rse-carbon-stat strong {
            display: block;
            font-size: 1.8rem;
            letter-spacing: -0.04em;
            margin-bottom: 8px;
        }

        .rse-carbon-stat span {
            color: var(--ph-sub);
            line-height: 1.55;
            font-size: 0.95rem;
        }

        .rse-carbon-list {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 16px;
            margin-top: 26px;
        }

        .rse-carbon-item {
            display: flex;
            gap: 14px;
            align-items: flex-start;
            padding: 18px;
            border-radius: 20px;
            background: rgba(31,122,77,0.06);
        }

        .rse-carbon-item i {
            width: 28px;
            height: 28px;
            flex: 0 0 28px;
            border-radius: 999px;
            background: var(--ph-green);
            color: #fff;
            font-style: normal;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-weight: 800;
            font-size: 0.82rem;
        }

        .rse-carbon-item span {
            color: var(--ph-sub);
            line-height: 1.65;
        }

        .rse-timeline-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 24px;
        }

        .rse-timeline-card strong {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 78px;
            height: 42px;
            padding: 0 16px;
            border-radius: 999px;
            background: linear-gradient(180deg, var(--ph-accent) 0%, var(--ph-accent-2) 100%);
            margin-bottom: 18px;
        }

        .rse-documents-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 20px;
        }

        .rse-document-card {
            min-height: 100%;
        }

        .rse-document-card span {
            display: inline-flex;
            margin-top: 18px;
            color: #111;
            font-weight: 800;
        }

        .rse-cta-panel {
            margin-top: 22px;
            padding: 58px 38px;
            text-align: center;
            background: linear-gradient(180deg, #171717 0%, #101010 100%);
            color: #ffffff;
            border-radius: 34px;
            box-shadow: 0 26px 58px rgba(0,0,0,0.16);
        }

        .rse-cta-panel h2 {
            margin: 0 0 16px;
            font-size: clamp(2rem, 3vw, 3rem);
            letter-spacing: -0.04em;
        }

        .rse-cta-panel p {
            max-width: 880px;
            margin: 0 auto;
            color: rgba(255,255,255,0.82);
            line-height: 1.9;
            font-size: 1.06rem;
        }

        .rse-cta-actions {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 16px;
            flex-wrap: wrap;
            margin-top: 30px;
        }

        .rse-fade-up {
            opacity: 0;
            transform: translateY(36px);
            transition: opacity 0.8s ease, transform 0.8s ease;
        }

        .rse-fade-up.visible {
            opacity: 1;
            transform: translateY(0);
        }

        @media (max-width: 1100px) {
            .rse-summary,
            .rse-carbon-stats,
            .rse-documents-grid {
                grid-template-columns: repeat(2, 1fr);
            }

            .rse-commitments-grid,
            .rse-timeline-grid {
                grid-template-columns: repeat(2, 1fr);
            }

            .rse-impact-panel {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 860px) {
            .rse-section-head p {
                text-align: left;
                max-width: 100%;
            }

            .rse-carbon-list,
            .rse-impact-grid {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 700px) {
            .rse-hero {
                padding: 95px 0 62px;
            }

            .rse-main {
                padding: 56px 16px 90px;
            }

            .rse-container {
                padding: 0 16px;
            }

            .rse-summary,
            .rse-commitments-grid,
            .rse-timeline-grid,
            .rse-carbon-stats,
            .rse-documents-grid {
                grid-template-columns: 1fr;
            }

            .rse-carbon-panel,
            .rse-cta-panel {
                padding: 38px 22px;
                border-radius: 24px;
            }

            .rse-impact-score,
            .rse-impact-card,
            .rse-commitment-card,
            .rse-timeline-card,
            .rse-document-card {
                padding: 24px 20px;
                border-radius: 22px;
            }
        }

/* Animations premium isolées */
.rse-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,0.58) 48%, transparent 72%);
    transform: translateX(-100%);
    animation: rseLightSweep 6s ease-in-out infinite;
    pointer-events: none;
}

.rse-summary-card,
.rse-impact-card,
.rse-commitment-card,
.rse-timeline-card,
.rse-document-card,
.rse-carbon-stat {
    will-change: transform;
}

.rse-summary-card:hover,
.rse-impact-card:hover,
.rse-commitment-card:hover,
.rse-timeline-card:hover,
.rse-document-card:hover,
.rse-carbon-stat:hover {
    transform: translateY(-8px);
    box-shadow: 0 28px 70px rgba(0,0,0,0.10);
}

.rse-carbon-item:hover {
    transform: translateX(6px);
}

.rse-summary-card,
.rse-impact-card,
.rse-commitment-card,
.rse-timeline-card,
.rse-document-card,
.rse-carbon-stat,
.rse-carbon-item {
    transition: transform .32s ease, box-shadow .32s ease, border-color .32s ease, background .32s ease;
}

@keyframes rseLightSweep {
    0%, 55% { transform: translateX(-100%); opacity: 0; }
    70% { opacity: .65; }
    100% { transform: translateX(100%); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .rse-hero::before { animation: none; }
    .rse-fade-up,
    .rse-summary-card,
    .rse-impact-card,
    .rse-commitment-card,
    .rse-timeline-card,
    .rse-document-card,
    .rse-carbon-stat,
    .rse-carbon-item {
        transition: none;
        transform: none;
        opacity: 1;
    }
}


/* Correctif responsive titre RSE */
@media (max-width: 999px) {
    .rse-hero h1 {
        font-size: clamp(2rem, 9vw, 3.2rem);
        white-space: normal;
    }
}


/* =========================================================
   Correctifs cohérence, lisibilité, justification et responsive
   ========================================================= */

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

.page-rse {
    width: 100%;
    overflow-x: clip;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* Annule le nowrap global éventuel du fichier banner.css sur les titres */
.page-rse h1,
.page-rse h2,
.page-rse h3 {
    white-space: normal;
    overflow-wrap: anywhere;
}

/* Texte justifié uniquement sur les paragraphes longs */
.page-rse p,
.page-rse .rse-summary-card span,
.page-rse .rse-impact-card span,
.page-rse .rse-carbon-stat span,
.page-rse .rse-carbon-item span,
.page-rse .rse-document-card span {
    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
}

/* Le hero reste centré visuellement, mais le bloc texte est justifié */
.rse-hero p,
.rse-cta-panel p {
    text-align: justify;
    text-align-last: center;
}

/* Le résumé des sections est plus cohérent en desktop et mobile */
.rse-section-head p {
    text-align: justify;
    text-align-last: right;
}

/* Cartes plus régulières */
.rse-summary-card,
.rse-impact-card,
.rse-commitment-card,
.rse-timeline-card,
.rse-document-card,
.rse-carbon-stat {
    height: 100%;
}

/* Évite que les émojis et chiffres soient déformés par la justification */
.rse-commitment-icon,
.rse-carbon-item i,
.rse-timeline-card strong,
.rse-summary-card strong,
.rse-carbon-stat strong,
.rse-impact-score strong,
.rse-impact-card b {
    text-align: left;
    hyphens: none;
}

/* Hero plus compact et propre */
.rse-hero {
    padding: clamp(72px, 7vw, 96px) 0 clamp(40px, 5vw, 64px);
}

.rse-hero h1 {
    max-width: 1100px;
    font-size: clamp(2.25rem, 4.5vw, 4.7rem);
    line-height: 1.03;
    letter-spacing: -0.055em;
    text-wrap: balance;
}

/* Supprime l'effet jaune encombrant sous le H1 */
.rse-hero::after {
    display: none !important;
}

/* Empêche le balayage lumineux de gêner la lisibilité */
.rse-hero::before {
    opacity: 0.45;
}

/* Boutons plus stables sur mobile */
.rse-btn-primary,
.rse-btn-secondary {
    text-align: center;
    line-height: 1.2;
}

/* Optimisation des espacements */
.rse-main {
    padding-top: clamp(56px, 6vw, 78px);
    padding-bottom: clamp(72px, 8vw, 120px);
}

.rse-section-block {
    padding: clamp(42px, 5vw, 56px) 0;
}

/* Responsive tablette */
@media (max-width: 1100px) {
    .rse-section-head {
        align-items: flex-start;
    }

    .rse-section-head p {
        text-align-last: left;
    }
}

/* Responsive mobile */
@media (max-width: 700px) {
    .rse-hero {
        padding: 70px 0 42px;
    }

    .rse-hero h1 {
        font-size: clamp(2rem, 9vw, 3.2rem);
        line-height: 1.08;
        letter-spacing: -0.04em;
    }

    .rse-hero p,
    .rse-section-head p,
    .rse-cta-panel p,
    .page-rse p,
    .page-rse .rse-summary-card span,
    .page-rse .rse-impact-card span,
    .page-rse .rse-carbon-stat span,
    .page-rse .rse-carbon-item span {
        text-align: left;
        text-align-last: auto;
        hyphens: auto;
    }

    .rse-hero-actions,
    .rse-cta-actions {
        gap: 12px;
    }

    .rse-btn-primary,
    .rse-btn-secondary {
        width: 100%;
        max-width: 360px;
        padding: 16px 22px;
    }

    .rse-section-head {
        gap: 14px;
        margin-bottom: 26px;
    }

    .rse-section-head h2 {
        font-size: clamp(1.8rem, 8vw, 2.5rem);
        text-wrap: balance;
    }

    .rse-carbon-item {
        align-items: flex-start;
    }
}

/* Très petits écrans */
@media (max-width: 420px) {
    .rse-container,
    .rse-main {
        padding-left: 14px;
        padding-right: 14px;
    }

    .rse-summary-card,
    .rse-impact-score,
    .rse-impact-card,
    .rse-commitment-card,
    .rse-timeline-card,
    .rse-document-card,
    .rse-carbon-stat {
        padding: 22px 18px;
    }

    .rse-carbon-panel,
    .rse-cta-panel {
        padding: 32px 18px;
    }
}


/* =========================================================
   Correctif alignement titres + textes de section
   Force une présentation cohérente : titre au-dessus, texte en dessous
   ========================================================= */

.rse-section-head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 14px;
    margin-bottom: 34px;
}

.rse-section-head h2 {
    width: 100%;
    margin: 0;
}

.rse-section-head p {
    width: 100%;
    max-width: 900px;
    margin: 0;
    text-align: justify;
    text-align-last: left;
}

/* Le hero et le CTA gardent leur alignement spécifique */
.rse-hero p,
.rse-cta-panel p {
    text-align: justify;
    text-align-last: center;
}

@media (max-width: 700px) {
    .rse-section-head {
        gap: 12px;
        margin-bottom: 26px;
    }

    .rse-section-head p {
        max-width: 100%;
        text-align: left;
        text-align-last: auto;
    }
}



/* =========================================================
   Compactage du bloc Hero -> réduit le vide avant engagements
   ========================================================= */

.rse-hero{
    padding:60px 0 28px !important;
}

.rse-summary{
    margin:28px auto 0 !important;
    gap:14px !important;
}

.rse-summary-card{
    padding:22px 18px !important;
    border-radius:22px !important;
}

.rse-summary-card strong{
    font-size:1.45rem !important;
    margin-bottom:4px !important;
}

.rse-summary-card span{
    line-height:1.45 !important;
}

.rse-main{
    padding-top:36px !important;
}

.rse-section-block:first-child{
    padding-top:18px !important;
}

.rse-section-head{
    margin-bottom:22px !important;
}

@media (max-width:700px){

.rse-hero{
    padding:52px 0 20px !important;
}

.rse-summary{
    margin-top:18px !important;
}

.rse-main{
    padding-top:24px !important;
}

}



/* =========================================================
   HERO CARDS PREMIUM
   Espaces identiques + cartes mises en avant
   ========================================================= */

.rse-summary{
    margin:36px auto !important;
    align-items:stretch;
}

.rse-summary-card{
    min-height:240px;

    display:flex !important;
    flex-direction:column;
    justify-content:space-between;

    padding:30px 24px !important;

    background:
        linear-gradient(
            180deg,
            rgba(255,216,77,.20) 0%,
            rgba(255,255,255,.96) 55%
        ) !important;

    border:1px solid rgba(244,196,0,.22);

    box-shadow:
        0 18px 42px rgba(0,0,0,.06),
        inset 0 1px 0 rgba(255,255,255,.9);

    overflow:hidden;
    position:relative;
}

.rse-summary-card::before{
    content:"";
    position:absolute;

    top:0;
    left:0;
    right:0;

    height:5px;

    background:
        linear-gradient(
            90deg,
            #f4c400,
            #ffd84d
        );
}

.rse-summary-card strong{
    margin-bottom:16px !important;

    font-size:1.7rem !important;

    display:block;
}

.rse-summary-card span{

    flex:1;

    display:flex;

    align-items:center;

    margin-top:auto;

    line-height:1.6 !important;

    color:#5f6368;
}

.rse-summary-card:hover{

    transform:
        translateY(-6px);

    box-shadow:
        0 28px 60px rgba(244,196,0,.18),
        0 12px 24px rgba(0,0,0,.08);

}

@media(max-width:700px){

.rse-summary-card{

min-height:auto;

padding:24px 20px !important;

}

}
