/* ==========================================================
   MRFI — Page d'accueil · v8
   Toutes les règles sont préfixées par #mrfi : elles passent
   devant les styles du thème sans recourir à !important.
   ========================================================== */

:root {
    --mrfi-navy:#13243d;
    --mrfi-deep:#0c192b;
    --mrfi-cream:#f3f0e9;
    --mrfi-paper:#faf9f6;
    --mrfi-text:#172338;
    --mrfi-line:#d8d4cc;
    --mrfi-gold:#a88a5a;
    --mrfi-gold-light:#d4b988;
    --mrfi-serif:Georgia, "Times New Roman", serif;
    --mrfi-sans:Arial, Helvetica, sans-serif;
}


/* ==========================================================
   BASE
   ========================================================== */

html {
    scroll-behavior:smooth;
}

/* Seul endroit où !important reste utile : neutraliser le body du thème. */
body.mrfi-home {
    margin:0 !important;
    padding:0 !important;
    background:var(--mrfi-paper) !important;
    color:var(--mrfi-text) !important;
    font-family:var(--mrfi-sans) !important;
    line-height:1.6 !important;
}

#mrfi {
    position:relative;
    font-family:var(--mrfi-sans);
    color:var(--mrfi-text);
    line-height:1.6;
}

#mrfi,
#mrfi *,
#mrfi *::before,
#mrfi *::after {
    box-sizing:border-box;
}

#mrfi h1,
#mrfi h2,
#mrfi h3,
#mrfi h4,
#mrfi p {
    margin:0;
    padding:0;
    text-transform:none;
}

#mrfi a {
    text-decoration:none;
    box-shadow:none;
}

#mrfi img {
    max-width:100%;
    height:auto;
}

#mrfi a:focus-visible,
#mrfi button:focus-visible,
#mrfi [tabindex="0"]:focus-visible {
    outline:2px solid var(--mrfi-gold);
    outline-offset:3px;
}

#mrfi .mrfi-container {
    width:min(1180px, calc(100% - 72px));
    margin:0 auto;
}


/* ==========================================================
   HEADER
   ========================================================== */

#mrfi .mrfi-header {
    position:absolute;
    top:0;
    left:0;
    width:100%;
    z-index:100;
    border-bottom:1px solid rgba(255,255,255,.25);
}

#mrfi .mrfi-nav {
    position:relative;
    min-height:94px;
    display:flex;
    justify-content:space-between;
    align-items:center;
}

#mrfi .mrfi-logo {
    color:#fff;
    font-family:var(--mrfi-serif);
    font-size:28px;
    font-weight:400;
    letter-spacing:.10em;
}

#mrfi .mrfi-menu {
    display:flex;
    align-items:center;
    gap:34px;
}

#mrfi .mrfi-menu a {
    color:#fff;
    font-size:11px;
    font-weight:500;
    text-transform:uppercase;
    letter-spacing:.14em;
    opacity:.94;
    transition:opacity .2s ease;
}

#mrfi .mrfi-menu a:hover {
    opacity:.6;
}

/* Bouton menu mobile (masqué en desktop) */
#mrfi .mrfi-burger {
    display:none;
    background:none;
    border:0;
    padding:12px 10px;
    margin-right:-10px;
    color:#fff;
    cursor:pointer;
    -webkit-appearance:none;
    appearance:none;
}

#mrfi .mrfi-burger span {
    display:block;
    width:24px;
    height:1px;
    background:currentColor;
    transition:transform .25s ease;
}

#mrfi .mrfi-burger span + span {
    margin-top:7px;
}

#mrfi .mrfi-header.is-open .mrfi-burger span:first-child {
    transform:translateY(4px) rotate(45deg);
}

#mrfi .mrfi-header.is-open .mrfi-burger span:last-child {
    transform:translateY(-4px) rotate(-45deg);
}


/* ==========================================================
   HERO
   ========================================================== */

#mrfi .mrfi-hero {
    position:relative;
    min-height:790px;
    display:flex;
    align-items:center;
    background-color:var(--mrfi-deep);
    background-image:
        linear-gradient(90deg, rgba(5,17,32,.84) 0%, rgba(5,17,32,.58) 35%, rgba(5,17,32,.12) 75%),
        linear-gradient(0deg, rgba(4,15,28,.38), rgba(4,15,28,.02)),
        var(--mrfi-hero-img, none);
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
}

#mrfi .mrfi-hero-content {
    max-width:820px;
    padding-top:90px;
}

#mrfi .mrfi-eyebrow {
    color:#fff;
    font-size:11px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.19em;
    margin-bottom:25px;
}

#mrfi .mrfi-hero h1 {
    color:#fff;
    font-family:var(--mrfi-serif);
    font-weight:400;
    font-size:clamp(48px, 5.8vw, 78px);
    line-height:1.04;
    letter-spacing:-.035em;
    margin:0 0 30px;
    max-width:800px;
}

#mrfi .mrfi-hero-text {
    color:#fff;
    font-family:var(--mrfi-serif);
    font-size:21px;
    line-height:1.55;
    max-width:760px;
    margin:0 0 42px;
}


/* ==========================================================
   BOUTONS
   ========================================================== */

#mrfi .mrfi-btn {
    display:inline-block;
    text-transform:uppercase;
    letter-spacing:.14em;
    font-size:10px;
    font-weight:600;
    line-height:1.6;
    padding:15px 24px;
    transition:background .25s ease, color .25s ease;
}

#mrfi .mrfi-btn-light {
    color:#fff;
    border:1px solid rgba(255,255,255,.85);
}

#mrfi .mrfi-btn-light:hover {
    background:#fff;
    color:var(--mrfi-navy);
}


/* ==========================================================
   SECTIONS
   ========================================================== */

#mrfi .mrfi-section {
    padding:115px 0;
}

#mrfi .mrfi-cream {
    background:var(--mrfi-cream);
}

#mrfi .mrfi-kicker {
    color:var(--mrfi-gold);
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.19em;
    margin-bottom:18px;
}

#mrfi .mrfi-title {
    color:var(--mrfi-navy);
    font-family:var(--mrfi-serif);
    font-size:clamp(38px, 4.4vw, 58px);
    line-height:1.12;
    letter-spacing:-.025em;
    font-weight:400;
    margin:0 0 27px;
}

#mrfi .mrfi-lead {
    color:#525b67;
    max-width:760px;
    font-size:17px;
    line-height:1.75;
}

/* Intro Expertise sur une seule ligne, uniquement quand la place le permet. */
@media (min-width:1200px) {
    #mrfi .mrfi-lead--expertise {
        max-width:none;
        white-space:nowrap;
    }
}

#mrfi .mrfi-number {
    color:var(--mrfi-gold);
    font-size:11px;
    letter-spacing:.11em;
    margin-bottom:25px;
}


/* ==========================================================
   EXPERTISE
   ========================================================== */

#mrfi .mrfi-services {
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    margin-top:70px;
    border-top:1px solid var(--mrfi-line);
}

#mrfi .mrfi-service {
    padding:42px 38px 15px 0;
    border-right:1px solid var(--mrfi-line);
}

#mrfi .mrfi-service + .mrfi-service {
    padding-left:38px;
}

#mrfi .mrfi-service:last-child {
    border-right:none;
}

#mrfi .mrfi-service h3 {
    color:var(--mrfi-navy);
    font-family:var(--mrfi-serif);
    font-size:28px;
    line-height:1.2;
    font-weight:400;
    margin:0 0 19px;
}

#mrfi .mrfi-service p {
    color:#5c646e;
    font-size:14px;
    line-height:1.75;
}


/* ==========================================================
   À PROPOS
   ========================================================== */

#mrfi .mrfi-about-grid {
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:90px;
    align-items:center;
}

#mrfi .mrfi-portrait-wrap {
    position:relative;
}

#mrfi .mrfi-portrait {
    display:block;
    width:100%;
    height:610px;
    object-fit:cover;
    object-position:center top;
}

#mrfi .mrfi-portrait-caption {
    position:absolute;
    left:25px;
    right:25px;
    bottom:25px;
    background:rgba(12,25,43,.90);
    color:#fff;
    padding:19px 22px;
}

#mrfi .mrfi-portrait-caption strong {
    display:block;
    font-family:var(--mrfi-serif);
    font-size:19px;
    font-weight:400;
}

#mrfi .mrfi-portrait-caption span {
    display:block;
    margin-top:3px;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.12em;
    opacity:.72;
}

#mrfi .mrfi-about-copy p {
    color:#525b66;
    font-size:16px;
    line-height:1.8;
    margin:0 0 1.2em;
}

#mrfi .mrfi-stats {
    margin-top:40px;
    border-top:1px solid var(--mrfi-line);
}

#mrfi .mrfi-stat {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:30px;
    padding:18px 0;
    border-bottom:1px solid var(--mrfi-line);
}

#mrfi .mrfi-stat strong {
    color:var(--mrfi-navy);
    font-family:var(--mrfi-serif);
    font-size:24px;
    font-weight:400;
}

#mrfi .mrfi-stat span {
    color:#737981;
    text-align:right;
    font-size:13px;
}


/* ==========================================================
   TRACK RECORD — en-tête
   ========================================================== */

#mrfi .mrfi-track-head {
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:80px;
    align-items:end;
    margin-bottom:60px;
}

#mrfi .mrfi-track-head .mrfi-title {
    margin-bottom:0;
}


/* ==========================================================
   TRACK RECORD — grandes cartes
   ========================================================== */

#mrfi .mrfi-cases {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:28px;
}

#mrfi .mrfi-case {
    position:relative;
    min-height:535px;
    overflow:hidden;
    background:var(--mrfi-navy);
    cursor:default;
}

#mrfi .mrfi-case-image {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    max-width:none;
    object-fit:cover;
    transition:transform .5s ease;
}

#mrfi .mrfi-case:hover .mrfi-case-image {
    transform:scale(1.025);
}

#mrfi .mrfi-case-overlay {
    position:absolute;
    inset:0;
    background:linear-gradient(0deg, rgba(7,20,36,.95) 0%, rgba(7,20,36,.72) 42%, rgba(7,20,36,.12) 82%);
}

#mrfi .mrfi-case-brand {
    position:absolute;
    top:32px;
    left:38px;
    z-index:3;
    width:205px;
    height:68px;
    object-fit:contain;
    object-position:left center;
    filter:brightness(0) invert(1);
    opacity:.94;
}

#mrfi .mrfi-case-content {
    position:absolute;
    inset:0;
    z-index:2;
    padding:38px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    color:#fff;
    transition:transform .35s ease;
}

#mrfi .mrfi-case-label {
    color:var(--mrfi-gold-light);
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:.16em;
    margin-bottom:11px;
}

#mrfi .mrfi-case h3 {
    color:#fff;
    font-family:var(--mrfi-serif);
    font-size:40px;
    font-weight:400;
    line-height:1.1;
    margin:0 0 7px;
}

#mrfi .mrfi-case h4 {
    color:#fff;
    font-family:var(--mrfi-sans);
    font-size:11px;
    font-weight:500;
    text-transform:uppercase;
    letter-spacing:.12em;
    opacity:.75;
    margin:0 0 20px;
}

#mrfi .mrfi-case p {
    color:#fff;
    font-size:14px;
    line-height:1.65;
    max-width:470px;
}

/* Chiffres clés */
#mrfi .mrfi-case-kpis {
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    border-top:1px solid rgba(255,255,255,.28);
    border-bottom:1px solid rgba(255,255,255,.28);
    margin-top:20px;
}

#mrfi .mrfi-case-kpi {
    padding:15px 14px 13px 0;
    min-width:0;
}

#mrfi .mrfi-case-kpi + .mrfi-case-kpi {
    border-left:1px solid rgba(255,255,255,.30);
    padding-left:18px;
}

#mrfi .mrfi-case-kpi strong {
    display:block;
    color:#fff;
    font-family:var(--mrfi-serif);
    font-size:25px;
    line-height:1.05;
    font-weight:400;
    white-space:nowrap;
}

#mrfi .mrfi-case-kpi span {
    display:block;
    color:rgba(255,255,255,.75);
    font-size:9px;
    line-height:1.35;
    text-transform:uppercase;
    letter-spacing:.08em;
    margin-top:5px;
}

/* Contenu révélé au survol / focus */
#mrfi .mrfi-case-extra {
    max-height:0;
    opacity:0;
    overflow:hidden;
    transform:translateY(12px);
    transition:max-height .45s ease, opacity .35s ease, transform .35s ease;
}

#mrfi .mrfi-case:hover .mrfi-case-extra,
#mrfi .mrfi-case:focus-within .mrfi-case-extra {
    max-height:240px;
    opacity:1;
    transform:none;
}

#mrfi .mrfi-case-extra > p {
    margin-top:14px;
}

#mrfi .mrfi-case-foot {
    border-top:1px solid rgba(255,255,255,.28);
    padding-top:18px;
    margin-top:14px;
    color:#fff;
    font-family:var(--mrfi-serif);
    font-size:16px;
}

/* Liens externes */
#mrfi .mrfi-links {
    display:flex;
    flex-wrap:wrap;
    gap:18px;
    margin-top:18px;
}

#mrfi .mrfi-links a {
    color:#fff;
    text-transform:uppercase;
    letter-spacing:.11em;
    font-size:9px;
    font-weight:700;
    border-bottom:1px solid rgba(255,255,255,.45);
    padding-bottom:3px;
    transition:border-color .2s ease;
}

#mrfi .mrfi-links a:hover {
    border-bottom-color:#fff;
}

/* Carte Qualidal : lisibilité sur photo claire */
#mrfi .mrfi-case--qualidal .mrfi-case-overlay {
    background:
        linear-gradient(90deg, rgba(7,20,36,.88) 0%, rgba(7,20,36,.72) 42%, rgba(7,20,36,.36) 72%, rgba(7,20,36,.18) 100%),
        linear-gradient(0deg, rgba(7,20,36,.94) 0%, rgba(7,20,36,.48) 58%, rgba(7,20,36,.60) 100%);
}

#mrfi .mrfi-case--qualidal .mrfi-case-content {
    transform:translateY(-8px);
}

#mrfi .mrfi-case--qualidal .mrfi-case-label {
    text-shadow:0 1px 8px rgba(0,0,0,.28);
}

#mrfi .mrfi-case--qualidal h3,
#mrfi .mrfi-case--qualidal h4,
#mrfi .mrfi-case--qualidal p {
    text-shadow:0 1px 10px rgba(0,0,0,.22);
}

/* Carte eCential : logo en haut, liens visibles sans survol */
#mrfi .mrfi-case--ecential .mrfi-case-overlay {
    background:linear-gradient(0deg, rgba(7,20,36,.97) 0%, rgba(7,20,36,.76) 46%, rgba(7,20,36,.18) 100%);
}

#mrfi .mrfi-case--ecential .mrfi-case-content {
    padding-top:118px;
}

#mrfi .mrfi-case--ecential:hover .mrfi-case-content,
#mrfi .mrfi-case--ecential:focus-within .mrfi-case-content {
    transform:translateY(-18px);
}

#mrfi .mrfi-case--ecential .mrfi-case-extra > p {
    margin-top:12px;
    font-size:12px;
    line-height:1.45;
}

#mrfi .mrfi-case--ecential .mrfi-links {
    margin-top:11px;
}

#mrfi .mrfi-links--main {
    margin-bottom:4px;
}

#mrfi .mrfi-case--ecential .mrfi-case-foot {
    margin-top:10px;
}


/* ==========================================================
   TRACK RECORD — références
   ========================================================== */

#mrfi .mrfi-references {
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    margin-top:28px;
    border-left:1px solid var(--mrfi-line);
    border-top:1px solid var(--mrfi-line);
}

#mrfi .mrfi-reference {
    position:relative;
    min-height:280px;
    overflow:hidden;
    background:#fff;
    border-right:1px solid var(--mrfi-line);
    border-bottom:1px solid var(--mrfi-line);
}

#mrfi .mrfi-reference-front,
#mrfi .mrfi-reference-hover {
    position:absolute;
    inset:0;
    padding:28px;
}

#mrfi .mrfi-reference-front {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    transition:opacity .3s ease, transform .35s ease;
}

#mrfi .mrfi-reference-logo {
    width:78%;
    max-width:78%;
    height:100px;
    object-fit:contain;
    margin-bottom:26px;
}

/* Logos à définition plus faible : volontairement plus petits */
#mrfi .mrfi-reference--small-logo .mrfi-reference-logo {
    width:54%;
    max-width:54%;
    height:68px;
}

#mrfi .mrfi-reference-front strong {
    display:block;
    color:var(--mrfi-navy);
    font-family:var(--mrfi-serif);
    font-size:18px;
    font-weight:400;
}

#mrfi .mrfi-reference-front span {
    display:block;
    color:#858a90;
    margin-top:4px;
    font-size:9px;
    line-height:1.55;
    text-transform:uppercase;
    letter-spacing:.13em;
}

/* Références sans logo : le nom fait office de logo */
#mrfi .mrfi-reference--no-logo .mrfi-reference-front strong {
    font-size:34px;
    letter-spacing:.04em;
    line-height:1.15;
    margin-bottom:14px;
}

#mrfi .mrfi-reference-hover {
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    background:var(--mrfi-navy);
    color:#fff;
    opacity:0;
    transform:translateY(14px);
    transition:opacity .32s ease, transform .35s ease;
}

#mrfi .mrfi-reference:hover .mrfi-reference-front,
#mrfi .mrfi-reference:focus-within .mrfi-reference-front {
    opacity:0;
    transform:translateY(-10px);
}

#mrfi .mrfi-reference:hover .mrfi-reference-hover,
#mrfi .mrfi-reference:focus-within .mrfi-reference-hover {
    opacity:1;
    transform:none;
}

#mrfi .mrfi-ref-sector {
    color:var(--mrfi-gold-light);
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.14em;
    margin-bottom:10px;
}

#mrfi .mrfi-reference-hover h3 {
    color:#fff;
    font-family:var(--mrfi-serif);
    font-size:25px;
    font-weight:400;
    line-height:1.15;
    margin:0 0 12px;
}

#mrfi .mrfi-reference-hover p {
    color:rgba(255,255,255,.86);
    font-size:12px;
    line-height:1.55;
    margin:0 0 14px;
}

#mrfi .mrfi-ref-role {
    color:#fff;
    font-size:10px;
    line-height:1.55;
    padding-top:12px;
    border-top:1px solid rgba(255,255,255,.22);
}

#mrfi .mrfi-ref-role strong {
    display:block;
    color:#fff;
    font-family:var(--mrfi-sans);
    font-size:10px;
    font-weight:700;
}

#mrfi .mrfi-reference-hover .mrfi-links {
    gap:12px;
    margin-top:12px;
}

#mrfi .mrfi-reference-hover .mrfi-links a {
    font-size:8px;
}


/* ==========================================================
   APPROCHE
   ========================================================== */

#mrfi .mrfi-pillars {
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    margin-top:60px;
    border-top:1px solid var(--mrfi-line);
}

#mrfi .mrfi-pillar {
    padding:34px 32px 0 0;
}

#mrfi .mrfi-pillar h3 {
    color:var(--mrfi-navy);
    font-family:var(--mrfi-serif);
    font-size:22px;
    font-weight:400;
    margin:0 0 13px;
}

#mrfi .mrfi-pillar p {
    color:#606873;
    font-size:13px;
    line-height:1.7;
}


/* ==========================================================
   CONTACT
   ========================================================== */

#mrfi .mrfi-cta {
    background:var(--mrfi-navy);
    color:#fff;
    padding:95px 0;
}

#mrfi .mrfi-cta-grid {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:80px;
}

#mrfi .mrfi-cta h2 {
    color:#fff;
    font-family:var(--mrfi-serif);
    font-size:clamp(35px, 4vw, 53px);
    font-weight:400;
    line-height:1.16;
    letter-spacing:-.02em;
    max-width:820px;
}

#mrfi .mrfi-cta .mrfi-btn {
    flex-shrink:0;
}


/* ==========================================================
   FOOTER
   ========================================================== */

#mrfi .mrfi-footer {
    background:var(--mrfi-deep);
    color:#abb4c0;
    padding:58px 0 30px;
}

#mrfi .mrfi-footer-grid {
    display:grid;
    grid-template-columns:220px 1fr;
    gap:70px;
    padding-bottom:42px;
}

#mrfi .mrfi-footer-logo {
    color:#fff;
    font-family:var(--mrfi-serif);
    font-size:27px;
    letter-spacing:.08em;
}

#mrfi .mrfi-footer p {
    color:#abb4c0;
    font-size:11px;
    line-height:1.75;
}

#mrfi .mrfi-copyright {
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:12px 30px;
    border-top:1px solid rgba(255,255,255,.12);
    padding-top:24px;
    color:#778292;
    font-size:10px;
}

#mrfi .mrfi-footer-links {
    display:flex;
    flex-wrap:wrap;
    gap:22px;
}

#mrfi .mrfi-footer-links a {
    color:#abb4c0;
    transition:color .2s ease;
}

#mrfi .mrfi-footer-links a:hover {
    color:#fff;
}


/* ==========================================================
   ÉCRANS TACTILES (pas de survol)
   ========================================================== */

@media (hover:none) {

    #mrfi .mrfi-case-extra {
        max-height:240px;
        opacity:1;
        transform:none;
    }

    #mrfi .mrfi-reference {
        min-height:360px;
    }

    #mrfi .mrfi-reference-front {
        position:relative;
        inset:auto;
        height:150px;
        padding:20px;
    }

    #mrfi .mrfi-reference-logo {
        height:70px;
        margin:0;
    }

    #mrfi .mrfi-reference-front strong,
    #mrfi .mrfi-reference-front span {
        display:none;
    }

    #mrfi .mrfi-reference--no-logo .mrfi-reference-front strong {
        display:block;
        margin:0;
        font-size:30px;
    }

    #mrfi .mrfi-reference-hover {
        position:relative;
        inset:auto;
        min-height:210px;
        opacity:1;
        transform:none;
    }
}


/* ==========================================================
   TABLETTE & MOBILE
   ========================================================== */

@media (max-width:900px) {

    #mrfi .mrfi-container {
        width:min(100% - 36px, 1180px);
    }

    /* Menu mobile */
    #mrfi .mrfi-burger {
        display:block;
    }

    #mrfi .mrfi-menu {
        display:none;
        position:absolute;
        top:100%;
        left:-18px;
        right:-18px;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        padding:6px 18px 22px;
        background:var(--mrfi-deep);
        border-bottom:1px solid rgba(255,255,255,.12);
    }

    #mrfi .mrfi-header.is-open .mrfi-menu {
        display:flex;
    }

    #mrfi .mrfi-menu a {
        padding:15px 0;
        border-bottom:1px solid rgba(255,255,255,.10);
    }

    #mrfi .mrfi-header.is-open {
        background:var(--mrfi-deep);
    }

    /* Mise en page */
    #mrfi .mrfi-hero {
        min-height:690px;
    }

    #mrfi .mrfi-services,
    #mrfi .mrfi-about-grid,
    #mrfi .mrfi-track-head,
    #mrfi .mrfi-cases,
    #mrfi .mrfi-references,
    #mrfi .mrfi-pillars {
        grid-template-columns:1fr;
    }

    #mrfi .mrfi-section {
        padding:78px 0;
    }

    #mrfi .mrfi-service,
    #mrfi .mrfi-service + .mrfi-service {
        padding:28px 0;
        border-right:0;
        border-bottom:1px solid var(--mrfi-line);
    }

    #mrfi .mrfi-about-grid {
        gap:48px;
    }

    #mrfi .mrfi-portrait {
        height:auto;
        max-height:620px;
    }

    #mrfi .mrfi-track-head {
        gap:25px;
    }

    #mrfi .mrfi-cta-grid {
        display:block;
    }

    #mrfi .mrfi-cta .mrfi-btn {
        margin-top:35px;
    }

    #mrfi .mrfi-footer-grid {
        grid-template-columns:1fr;
        gap:25px;
    }
}

@media (max-width:600px) {

    #mrfi .mrfi-hero h1 {
        font-size:44px;
    }

    #mrfi .mrfi-hero-text {
        font-size:18px;
    }

    #mrfi .mrfi-case {
        min-height:560px;
    }

    #mrfi .mrfi-case-content {
        padding:28px;
    }

    #mrfi .mrfi-case--ecential .mrfi-case-content {
        padding-top:118px;
    }

    #mrfi .mrfi-case--qualidal .mrfi-case-content,
    #mrfi .mrfi-case--ecential:hover .mrfi-case-content,
    #mrfi .mrfi-case--ecential:focus-within .mrfi-case-content {
        transform:none;
    }

    #mrfi .mrfi-case-kpi strong {
        font-size:20px;
    }

    #mrfi .mrfi-case-kpi span {
        font-size:8px;
    }

    #mrfi .mrfi-case-brand {
        top:24px;
        left:28px;
        width:165px;
        height:54px;
    }
}


/* ==========================================================
   MOUVEMENTS RÉDUITS (préférence système)
   ========================================================== */

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

    html {
        scroll-behavior:auto;
    }

    #mrfi *,
    #mrfi *::before,
    #mrfi *::after {
        transition:none !important;
        animation:none !important;
    }

    #mrfi .mrfi-case:hover .mrfi-case-image {
        transform:none;
    }
}


/* ==========================================================
   MENTIONS LÉGALES
   ========================================================== */
#mrfi .mrfi-legal-header {
    position:relative;
    background:var(--mrfi-paper);
    border-bottom:1px solid rgba(19,36,61,.12);
}
#mrfi .mrfi-legal-back {
    color:var(--mrfi-navy);
    text-decoration:none;
    font-size:13px;
    font-weight:600;
}
#mrfi .mrfi-legal {
    background:var(--mrfi-paper);
    padding:86px 0 100px;
}
#mrfi .mrfi-legal-wrap {
    max-width:900px;
}
#mrfi .mrfi-legal h1 {
    margin:10px 0 18px;
    color:var(--mrfi-navy);
    font-family:Georgia, "Times New Roman", serif;
    font-size:clamp(40px,5vw,66px);
    line-height:1.04;
    font-weight:400;
    letter-spacing:-.03em;
}
#mrfi .mrfi-legal-intro {
    max-width:720px;
    margin:0 0 58px;
    color:#59616b;
    font-size:18px;
    line-height:1.65;
}
#mrfi .mrfi-legal section {
    padding:30px 0;
    border-top:1px solid rgba(19,36,61,.14);
}
#mrfi .mrfi-legal section:last-of-type {
    border-bottom:1px solid rgba(19,36,61,.14);
}
#mrfi .mrfi-legal h2 {
    margin:0 0 14px;
    color:var(--mrfi-navy);
    font-family:Georgia, "Times New Roman", serif;
    font-size:25px;
    font-weight:400;
}
#mrfi .mrfi-legal p {
    margin:0 0 12px;
    color:#3f4854;
    font-size:15px;
    line-height:1.75;
}
#mrfi .mrfi-legal a {
    color:var(--mrfi-navy);
    text-underline-offset:3px;
}
#mrfi .mrfi-legal-updated {
    margin-top:30px !important;
    color:#7b828a !important;
    font-size:12px !important;
}
#mrfi .mrfi-legal-footer {
    margin-top:0;
}
@media(max-width:700px) {
    #mrfi .mrfi-legal { padding:58px 0 72px; }
    #mrfi .mrfi-legal-intro { margin-bottom:38px; }
    #mrfi .mrfi-legal section { padding:24px 0; }
}


/* V8.5 — eCential : descriptif complet puis liens, comme Qualidal */
#mrfi .mrfi-case--ecential { min-height:570px; }
#mrfi .mrfi-case--ecential:hover .mrfi-case-content,
#mrfi .mrfi-case--ecential:focus-within .mrfi-case-content { transform:translateY(-8px); }
#mrfi .mrfi-case--ecential:hover .mrfi-case-extra,
#mrfi .mrfi-case--ecential:focus-within .mrfi-case-extra { max-height:210px; }
#mrfi .mrfi-case--ecential .mrfi-case-extra > p { margin-top:12px; margin-bottom:0; }
#mrfi .mrfi-case--ecential .mrfi-links { margin-top:10px; }
#mrfi .mrfi-case--ecential .mrfi-links + .mrfi-links { margin-top:8px; }
#mrfi .mrfi-case--ecential .mrfi-case-foot { margin-top:10px; }
@media (max-width:600px) {
  #mrfi .mrfi-case--ecential { min-height:610px; }
}
