
/* =========================================================
   MPS EFFECTS PREMIUM
   noir conservé / effets subtils
   ========================================================= */

/* ---------- HERO : profondeur ---------- */

.hero{
    isolation:isolate;
}

.hero::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    pointer-events:none;

    background:
        radial-gradient(
            circle at 75% 20%,
            rgba(59,130,246,.12),
            transparent 28%
        ),
        radial-gradient(
            circle at 20% 80%,
            rgba(37,99,235,.05),
            transparent 32%
        );

    animation:mpsGlow 9s ease-in-out infinite alternate;
}

@keyframes mpsGlow{
    from{
        opacity:.55;
        transform:scale(1);
    }
    to{
        opacity:1;
        transform:scale(1.04);
    }
}


/* ---------- HERO PHOTO ---------- */

.hero-media{
    transition:
        transform .55s cubic-bezier(.2,.8,.2,1),
        filter .55s ease;
}

.hero-media:hover{
    transform:
        translateY(-5px)
        scale(1.008);
}

.hero-media::after{
    content:"";
    position:absolute;
    inset:0;

    border-radius:22px;

    pointer-events:none;

    background:
        linear-gradient(
            115deg,
            transparent 20%,
            rgba(255,255,255,.09) 45%,
            transparent 70%
        );

    transform:translateX(-120%);

    transition:
        transform .75s ease;
}

.hero-media:hover::after{
    transform:translateX(120%);
}


/* ---------- TITRES ---------- */

.hero h1,
.section h2{
    text-wrap:balance;
}

.section h2{
    position:relative;
    display:inline-block;
}

.section h2::after{
    content:"";

    display:block;

    width:42px;
    height:2px;

    margin-top:12px;

    border-radius:20px;

    background:
        linear-gradient(
            90deg,
            #2563eb,
            #60a5fa
        );

    transition:width .35s ease;
}

.section:hover h2::after{
    width:72px;
}


/* ---------- BOUTONS : reflet ---------- */

.btn,
.nav-cta{
    position:relative !important;
    overflow:hidden !important;
}

.btn::after,
.nav-cta::after{
    content:"";

    position:absolute;
    top:-50%;
    left:-80%;

    width:45%;
    height:200%;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.16),
            transparent
        );

    transform:rotate(18deg);

    transition:left .55s ease;

    pointer-events:none;
}

.btn:hover::after,
.nav-cta:hover::after{
    left:135%;
}


/* ---------- CARTES ---------- */

.card{
    position:relative;
    isolation:isolate;
}

.card::before{
    content:"";

    position:absolute;
    inset:-1px;

    z-index:-1;

    border-radius:19px;

    background:
        linear-gradient(
            135deg,
            rgba(96,165,250,.26),
            transparent 35%,
            transparent 65%,
            rgba(37,99,235,.10)
        );

    opacity:0;

    transition:opacity .3s ease;
}

.card:hover::before{
    opacity:1;
}

.card::after{
    content:"";

    position:absolute;
    left:0;
    right:0;
    bottom:0;

    height:2px;

    transform:scaleX(0);
    transform-origin:left;

    background:
        linear-gradient(
            90deg,
            #2563eb,
            #60a5fa
        );

    transition:
        transform .35s cubic-bezier(.2,.8,.2,1);
}

.card:hover::after{
    transform:scaleX(1);
}


/* ---------- FEATURE IMAGES ---------- */

.feature-media{
    position:relative;
    overflow:hidden;
    border-radius:20px;
}

.feature-media::after{
    content:"";

    position:absolute;
    inset:0;

    pointer-events:none;

    background:
        linear-gradient(
            180deg,
            transparent 60%,
            rgba(0,0,0,.18)
        );

    opacity:.55;

    transition:opacity .3s ease;
}

.feature-media:hover::after{
    opacity:.2;
}

.feature-media img{
    transition:
        transform .6s cubic-bezier(.2,.8,.2,1),
        filter .4s ease !important;
}

.feature-media:hover img{
    transform:scale(1.025) !important;
    filter:contrast(1.03) saturate(1.05);
}


/* ---------- TRUST ROW ---------- */

.trust-row span{
    transition:
        color .2s ease,
        transform .2s ease;
}

.trust-row span:hover{
    color:#ffffff !important;
    transform:translateY(-2px);
}


/* ---------- FAQ ---------- */

.faq details{
    transition:
        border-color .25s ease,
        background .25s ease,
        transform .25s ease,
        box-shadow .25s ease;
}

.faq details:hover{
    transform:translateY(-2px);

    border-color:
        rgba(96,165,250,.24) !important;
}

.faq details[open]{
    background:#10161d !important;

    border-color:
        rgba(96,165,250,.30) !important;

    box-shadow:
        0 16px 35px rgba(0,0,0,.20);
}


/* ---------- CTA FINAL ---------- */

.cta-box{
    position:relative;
    overflow:hidden;
}

.cta-box::before{
    content:"";

    position:absolute;

    width:250px;
    height:250px;

    right:-100px;
    top:-130px;

    border-radius:50%;

    background:
        radial-gradient(
            circle,
            rgba(59,130,246,.18),
            transparent 68%
        );

    pointer-events:none;

    animation:mpsCTA 7s ease-in-out infinite alternate;
}

@keyframes mpsCTA{
    from{
        transform:scale(.9);
        opacity:.6;
    }
    to{
        transform:scale(1.15);
        opacity:1;
    }
}


/* ---------- LIENS SEO / VILLES ---------- */

.mps-local-links a{
    transition:
        transform .2s ease,
        background .2s ease,
        border-color .2s ease,
        color .2s ease !important;
}

.mps-local-links a:hover{
    transform:translateY(-2px);
}


/* ---------- APPARITION AU SCROLL ---------- */

.mps-reveal{
    opacity:0;

    transform:translateY(24px);

    transition:
        opacity .7s cubic-bezier(.2,.8,.2,1),
        transform .7s cubic-bezier(.2,.8,.2,1);
}

.mps-reveal.mps-visible{
    opacity:1;
    transform:none;
}


/* délai cartes */

.grid-3 .card:nth-child(1){
    transition-delay:.03s;
}

.grid-3 .card:nth-child(2){
    transition-delay:.10s;
}

.grid-3 .card:nth-child(3){
    transition-delay:.17s;
}


/* ---------- LIGNE SEPARATION SECTIONS ---------- */

.section{
    position:relative;
}

.section + .section::before{
    content:"";

    position:absolute;
    top:0;
    left:50%;

    width:min(1100px,88%);
    height:1px;

    transform:translateX(-50%);

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.08),
            transparent
        );
}


/* ---------- MOBILE ---------- */

@media(max-width:900px){

    .hero-media:hover,
    .card:hover,
    .faq details:hover,
    .mps-local-links a:hover{
        transform:none !important;
    }

    .hero::before,
    .cta-box::before{
        animation:none !important;
    }

}


/* ---------- ACCESSIBILITE ---------- */

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

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

    .mps-reveal{
        opacity:1 !important;
        transform:none !important;
    }
}

