/* =========================================================================
   Siruix-Lab — Design system
   ========================================================================= */
:root{
    --bleu:#0b5cff;
    --cyan:#13c8e8;
    --navy:#07192f;

    --encre:#07111f;
    --encre-2:#1d2b3e;
    --gris:#5d6b7c;
    --gris-2:#8694a5;
    --ligne:#e2eaf3;
    --ligne-2:#eef3f9;
    --papier:#f7fafd;
    --blanc:#fff;

    --degrade:linear-gradient(118deg,var(--bleu),var(--cyan));

    --r-xs:6px; --r-sm:10px; --r-md:16px; --r-lg:24px; --r-full:999px;

    --sh-1:0 1px 2px rgba(7,17,31,.04),0 4px 12px rgba(7,17,31,.05);
    --sh-2:0 8px 24px rgba(7,17,31,.07),0 2px 8px rgba(7,17,31,.04);
    --sh-3:0 24px 60px rgba(7,17,31,.13),0 8px 24px rgba(7,17,31,.07);
    --sh-bleu:0 14px 34px rgba(11,92,255,.28);

    --t-xs:.75rem; --t-sm:.875rem; --t-base:1rem; --t-lg:1.0625rem;
    --t-h4:clamp(1.05rem,.98rem + .3vw,1.2rem);
    --t-h3:clamp(1.25rem,1.1rem + .7vw,1.6rem);
    --t-h2:clamp(1.85rem,1.35rem + 2.1vw,3rem);
    --t-h1:clamp(2.3rem,1.5rem + 3.6vw,4.15rem);

    --sect:clamp(60px,7vw,110px);
    --tr:.3s cubic-bezier(.4,0,.2,1);
    --header-h:76px;
}

*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{overflow-x:hidden;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 20px);-webkit-text-size-adjust:100%}
body{
    font-family:'Inter',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
    font-size:var(--t-base);line-height:1.65;color:var(--encre-2);
    background:var(--blanc);overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
body.fige{overflow:hidden}
h1,h2,h3,h4,h5{
    font-family:'Plus Jakarta Sans','Inter',sans-serif;
    color:var(--encre);line-height:1.12;font-weight:700;letter-spacing:-.025em;
}
h1{font-size:var(--t-h1);letter-spacing:-.035em}
h2{font-size:var(--t-h2);letter-spacing:-.03em}
h3{font-size:var(--t-h3)}
h4{font-size:var(--t-h4)}
p{text-wrap:pretty}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2.5px solid var(--bleu);outline-offset:3px;border-radius:4px}

.conteneur{width:min(1240px,92%);margin-inline:auto}
.conteneur-etroit{width:min(820px,92%);margin-inline:auto}
section{padding-block:var(--sect)}
.centre{text-align:center}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.evitement{position:absolute;left:-9999px;top:0;z-index:999;background:var(--bleu);color:#fff;padding:12px 22px}
.evitement:focus{left:0}

/* ---------------------------------------------------------------- Surtitre */
.surtitre{
    display:inline-flex;align-items:center;gap:10px;font-size:var(--t-xs);
    font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--bleu);
    margin-bottom:16px;
}
.surtitre::before{content:"";width:22px;height:2px;background:currentColor;border-radius:2px}
.surtitre.clair{color:var(--cyan)}
.entete{max-width:680px;margin-bottom:clamp(34px,4.5vw,58px)}
.entete.centree{margin-inline:auto;text-align:center}
.entete p{color:var(--gris);font-size:var(--t-lg);margin-top:16px}
.entete-ligne{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap}

/* ---------------------------------------------------------------- Boutons */
.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:9px;
    padding:14px 28px;border-radius:var(--r-full);border:1.5px solid transparent;
    font-weight:650;font-size:var(--t-sm);cursor:pointer;transition:var(--tr);
    white-space:nowrap;letter-spacing:.005em;
}
.btn:active{transform:scale(.98)}
.btn-primaire{background:var(--bleu);color:#fff;box-shadow:var(--sh-bleu)}
.btn-primaire:hover{background:#0a4fdb;transform:translateY(-2px);box-shadow:0 18px 40px rgba(11,92,255,.34)}
.btn-sombre{background:var(--navy);color:#fff}
.btn-sombre:hover{background:var(--bleu);transform:translateY(-2px)}
.btn-contour{background:transparent;color:var(--encre);border-color:var(--ligne)}
.btn-contour:hover{border-color:var(--bleu);color:var(--bleu);background:rgba(11,92,255,.05)}
.btn-fantome{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.38);backdrop-filter:blur(8px)}
.btn-fantome:hover{background:#fff;color:var(--navy);border-color:#fff}
.btn-bloc{width:100%}
.btn-sm{padding:10px 20px;font-size:var(--t-xs)}

.lien-fleche{
    display:inline-flex;align-items:center;gap:8px;font-weight:650;
    font-size:var(--t-sm);color:var(--bleu);transition:var(--tr);
}
.lien-fleche svg{width:16px;height:16px;transition:transform var(--tr)}
.lien-fleche:hover svg{transform:translateX(5px)}

/* ---------------------------------------------------------------- En-tête */
.entete-site{
    position:sticky;top:0;z-index:80;background:rgba(255,255,255,.88);
    backdrop-filter:saturate(180%) blur(16px);
    border-bottom:1px solid transparent;transition:var(--tr);
}
.entete-site.defile{background:rgba(255,255,255,.97);border-bottom-color:var(--ligne);box-shadow:0 4px 24px rgba(7,17,31,.05)}
.nav{display:flex;align-items:center;gap:30px;height:var(--header-h)}
.marque{display:flex;align-items:center;gap:11px;flex-shrink:0}
.marque-logo{
    width:38px;height:38px;border-radius:11px;background:var(--degrade);
    display:grid;place-items:center;color:#fff;font-weight:800;font-size:1.15rem;
    font-family:'Plus Jakarta Sans',sans-serif;box-shadow:var(--sh-bleu);flex-shrink:0;
}
.marque img{height:40px;width:auto}
.marque-nom{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1.12rem;color:var(--encre);letter-spacing:-.03em}

.nav-liens{display:flex;align-items:center;gap:2px;margin-left:auto}
.nav-liens > li > a,.nav-liens > li > button{
    display:flex;align-items:center;gap:6px;padding:9px 15px;border-radius:var(--r-sm);
    font-size:var(--t-sm);font-weight:600;color:var(--encre-2);transition:var(--tr);
    background:none;border:none;cursor:pointer;
}
.nav-liens > li > a:hover,.nav-liens > li > button:hover,.nav-liens > li.actif > a{color:var(--bleu);background:rgba(11,92,255,.06)}
.nav-liens .chev{width:11px;height:11px;transition:transform var(--tr);opacity:.6}
.nav-item{position:relative}
.nav-item:hover .chev{transform:rotate(180deg)}

.sous-menu{
    position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(10px);
    background:#fff;border:1px solid var(--ligne);border-radius:var(--r-lg);
    box-shadow:var(--sh-3);padding:10px;min-width:310px;
    opacity:0;visibility:hidden;transition:var(--tr);
}
.nav-item:hover .sous-menu,.nav-item:focus-within .sous-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.sous-menu a{display:flex;gap:12px;align-items:flex-start;padding:11px 13px;border-radius:var(--r-sm);transition:var(--tr)}
.sous-menu a:hover{background:var(--papier)}
.sous-menu .ic{
    width:34px;height:34px;border-radius:9px;background:rgba(11,92,255,.08);
    display:grid;place-items:center;flex-shrink:0;font-size:.95rem;
}
.sous-menu strong{display:block;font-size:var(--t-sm);font-weight:650;color:var(--encre)}
.sous-menu span{font-size:var(--t-xs);color:var(--gris);line-height:1.45}
.sous-menu .tout{border-top:1px solid var(--ligne-2);margin-top:6px;padding-top:10px;color:var(--bleu);font-weight:650;font-size:var(--t-sm);justify-content:center}

.nav-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.nav-cta{display:none}
.burger{display:none;width:44px;height:44px;border:none;background:none;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.burger span{width:22px;height:2px;background:var(--encre);border-radius:2px;transition:var(--tr)}
.burger.ouvert span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.ouvert span:nth-child(2){opacity:0}
.burger.ouvert span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------------------------------------------------------------- Hero */
.hero{
    position:relative;background:var(--navy);color:#fff;overflow:hidden;
    padding-block:clamp(80px,11vw,140px) clamp(70px,9vw,120px);
}
.hero::before{
    content:"";position:absolute;top:-30%;right:-12%;width:70%;height:150%;
    background:radial-gradient(circle at 50% 50%,rgba(19,200,232,.3),transparent 62%);
    filter:blur(42px);pointer-events:none;
}
.hero::after{
    content:"";position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;
    background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
                     linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
    background-size:64px 64px;
    mask-image:radial-gradient(ellipse 85% 70% at 50% 40%,#000,transparent);
    -webkit-mask-image:radial-gradient(ellipse 85% 70% at 50% 40%,#000,transparent);
}
.hero .conteneur{position:relative;z-index:2}
.hero-grille{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(40px,6vw,80px);align-items:center}
.hero h1{color:#fff;margin-bottom:22px}
.hero h1 em{font-style:normal;background:var(--degrade);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-texte{font-size:clamp(1rem,.94rem + .4vw,1.18rem);color:rgba(255,255,255,.76);max-width:580px}
.hero-actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:34px}
.hero-visuel{position:relative}
.hero-carte{
    background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.13);
    border-radius:var(--r-lg);padding:26px;backdrop-filter:blur(14px);
}
.hero-carte + .hero-carte{margin-top:14px}
.hero-carte h4{color:#fff;font-size:1rem;margin-bottom:7px}
.hero-carte p{font-size:var(--t-sm);color:rgba(255,255,255,.62)}
.hero-carte .ic{
    width:40px;height:40px;border-radius:11px;background:var(--degrade);
    display:grid;place-items:center;margin-bottom:15px;font-size:1.05rem;
}
.hero-image-cadre{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-3);border:1px solid rgba(255,255,255,.12)}
.hero-image-cadre img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}

/* Bandeau de confiance */
.confiance{border-top:1px solid rgba(255,255,255,.1);margin-top:clamp(50px,6vw,74px);padding-top:30px;position:relative;z-index:2}
.confiance p{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.42);margin-bottom:18px;font-weight:600}
.confiance-liste{display:flex;gap:clamp(22px,4vw,54px);flex-wrap:wrap;align-items:center}
.confiance-liste span{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:1.05rem;color:rgba(255,255,255,.52);letter-spacing:-.01em}
.confiance-liste img{height:30px;width:auto;opacity:.6;filter:brightness(0) invert(1)}

/* ---------------------------------------------------------------- Chiffres */
.chiffres{background:var(--papier);border-block:1px solid var(--ligne)}
.chiffres-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:30px}
.chiffre .val{
    font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(2.2rem,1.6rem + 2vw,3.2rem);
    font-weight:800;letter-spacing:-.04em;line-height:1;
    background:var(--degrade);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.chiffre .lib{font-weight:650;color:var(--encre);margin-top:12px;font-size:var(--t-base)}
.chiffre .pre{font-size:var(--t-sm);color:var(--gris);margin-top:4px}

/* ---------------------------------------------------------------- Cartes */
.grille-3{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:clamp(16px,2vw,26px)}
.grille-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));gap:clamp(18px,2.4vw,32px)}
.grille-4{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:clamp(14px,1.8vw,22px)}

.carte{
    background:#fff;border:1px solid var(--ligne);border-radius:var(--r-lg);
    padding:30px;transition:var(--tr);display:flex;flex-direction:column;gap:12px;
    position:relative;overflow:hidden;
}
.carte::after{
    content:"";position:absolute;top:0;left:0;right:0;height:3px;
    background:var(--degrade);transform:scaleX(0);transform-origin:left;transition:transform .4s;
}
.carte:hover{border-color:transparent;box-shadow:var(--sh-3);transform:translateY(-5px)}
.carte:hover::after{transform:scaleX(1)}
.carte .ic{
    width:50px;height:50px;border-radius:13px;background:rgba(11,92,255,.07);
    display:grid;place-items:center;font-size:1.3rem;color:var(--bleu);
    border:1px solid rgba(11,92,255,.12);
}
.carte h3{font-size:1.18rem}
.carte p{color:var(--gris);font-size:var(--t-sm);flex:1}
.carte .num{
    font-family:'Plus Jakarta Sans',sans-serif;font-size:.8rem;font-weight:800;
    color:var(--bleu);letter-spacing:.1em;
}

/* Carte média (référence / article) */
.carte-media{
    background:#fff;border:1px solid var(--ligne);border-radius:var(--r-lg);
    overflow:hidden;display:flex;flex-direction:column;transition:var(--tr);
}
.carte-media:hover{box-shadow:var(--sh-3);transform:translateY(-5px);border-color:transparent}
.carte-media .visuel{aspect-ratio:16/10;overflow:hidden;background:var(--papier);position:relative}
.carte-media .visuel img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.carte-media:hover .visuel img{transform:scale(1.06)}
.visuel-vide{
    width:100%;height:100%;display:grid;place-items:center;font-size:2.4rem;color:rgba(11,92,255,.3);
    background:linear-gradient(135deg,#eaf1fb,#dce8f7);
}
.carte-media .corps{padding:24px;display:flex;flex-direction:column;gap:10px;flex:1}
.carte-media h3{font-size:1.14rem}
.carte-media p{color:var(--gris);font-size:var(--t-sm);flex:1}
.meta{display:flex;align-items:center;gap:10px;font-size:var(--t-xs);color:var(--gris-2);flex-wrap:wrap}
.meta .sep{width:3px;height:3px;border-radius:50%;background:currentColor}

.etiquette{
    display:inline-flex;align-items:center;padding:5px 12px;border-radius:var(--r-full);
    background:rgba(11,92,255,.08);color:var(--bleu);font-size:var(--t-xs);font-weight:650;
    letter-spacing:.02em;width:fit-content;
}
.etiquette.neutre{background:var(--ligne-2);color:var(--gris)}
.etiquette.sombre{background:rgba(255,255,255,.12);color:#fff}

/* ---------------------------------------------------------------- Méthode */
.methode{background:var(--navy);color:#fff}
.methode h2,.methode h3{color:#fff}
.methode .entete p{color:rgba(255,255,255,.64)}
.etapes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:1px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-lg);overflow:hidden}
.etape{background:var(--navy);padding:34px 28px;transition:var(--tr)}
.etape:hover{background:#0b2342}
.etape .num{
    font-family:'Plus Jakarta Sans',sans-serif;font-size:2.4rem;font-weight:800;
    background:var(--degrade);-webkit-background-clip:text;background-clip:text;color:transparent;
    line-height:1;margin-bottom:16px;letter-spacing:-.04em;
}
.etape h3{font-size:1.15rem;margin-bottom:9px}
.etape p{color:rgba(255,255,255,.62);font-size:var(--t-sm)}
.etape .livrables{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1);font-size:var(--t-xs);color:var(--cyan)}

/* ---------------------------------------------------------------- Secteurs */
.secteur-tuile{
    position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:230px;
    display:flex;flex-direction:column;justify-content:flex-end;padding:26px;
    background:var(--navy);color:#fff;transition:var(--tr);isolation:isolate;
}
.secteur-tuile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.42;z-index:-2;transition:transform .6s,opacity var(--tr)}
.secteur-tuile::before{
    content:"";position:absolute;inset:0;z-index:-1;
    background:linear-gradient(to top,rgba(7,25,47,.95) 10%,rgba(7,25,47,.35));
}
.secteur-tuile:hover{transform:translateY(-5px);box-shadow:var(--sh-3)}
.secteur-tuile:hover img{transform:scale(1.07);opacity:.5}
.secteur-tuile .ic{font-size:1.7rem;margin-bottom:auto}
.secteur-tuile h3{color:#fff;font-size:1.2rem;margin-bottom:6px}
.secteur-tuile p{font-size:var(--t-sm);color:rgba(255,255,255,.68)}

/* ---------------------------------------------------------------- Témoignages */
.citation{
    background:#fff;border:1px solid var(--ligne);border-radius:var(--r-lg);padding:32px;
    display:flex;flex-direction:column;gap:20px;transition:var(--tr);
}
.citation:hover{box-shadow:var(--sh-2);border-color:transparent}
.citation .guillemet{font-family:'Plus Jakarta Sans',serif;font-size:3rem;line-height:.6;color:var(--cyan);height:24px}
.citation p{color:var(--encre-2);font-size:var(--t-lg);flex:1}
.citation footer{display:flex;align-items:center;gap:13px;border-top:1px solid var(--ligne-2);padding-top:18px}
.avatar{
    width:46px;height:46px;border-radius:50%;object-fit:cover;flex-shrink:0;
    background:var(--degrade);color:#fff;display:grid;place-items:center;
    font-weight:700;font-size:.9rem;font-family:'Plus Jakarta Sans',sans-serif;
}
.citation cite{font-style:normal;font-weight:650;color:var(--encre);display:block;font-size:var(--t-sm)}
.citation .role{font-size:var(--t-xs);color:var(--gris)}

/* ---------------------------------------------------------------- CTA */
.bandeau-cta{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.bandeau-cta::before{
    content:"";position:absolute;top:-50%;left:-10%;width:60%;height:200%;
    background:radial-gradient(circle,rgba(11,92,255,.38),transparent 62%);filter:blur(50px);
}
.bandeau-cta .conteneur{position:relative;z-index:2}
.cta-grille{display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap}
.bandeau-cta h2{color:#fff;max-width:640px}
.bandeau-cta p{color:rgba(255,255,255,.7);margin-top:14px;max-width:560px}
.cta-actions{display:flex;gap:13px;flex-wrap:wrap}

/* ---------------------------------------------------------------- Pages internes */
.banniere{background:var(--navy);color:#fff;position:relative;overflow:hidden;padding-block:clamp(54px,7vw,92px) clamp(46px,6vw,74px)}
.banniere::before{
    content:"";position:absolute;top:-60%;right:-5%;width:55%;height:200%;
    background:radial-gradient(circle,rgba(19,200,232,.26),transparent 62%);filter:blur(44px);
}
.banniere .conteneur{position:relative;z-index:2}
.banniere h1{color:#fff;max-width:900px}
.banniere .chapo{color:rgba(255,255,255,.74);font-size:clamp(1rem,.95rem + .35vw,1.15rem);max-width:720px;margin-top:18px}
.fil{display:flex;gap:9px;align-items:center;font-size:var(--t-xs);color:rgba(255,255,255,.55);margin-bottom:20px;flex-wrap:wrap}
.fil a:hover{color:#fff}
.fil .sep{opacity:.5}

/* Contenu riche */
.prose{max-width:760px}
.prose p{margin-bottom:22px;color:var(--encre-2);font-size:var(--t-lg);line-height:1.78}
.prose h2{font-size:clamp(1.4rem,1.2rem + .9vw,1.9rem);margin:42px 0 16px}
.prose h3{margin:32px 0 12px}
.prose ul{margin-bottom:22px;display:grid;gap:11px}
.prose ul li{position:relative;padding-left:28px;color:var(--encre-2)}
.prose ul li::before{
    content:"";position:absolute;left:4px;top:.65em;width:7px;height:7px;
    border-radius:50%;background:var(--degrade);
}
.prose img{border-radius:var(--r-md);margin-bottom:26px}

.liste-coches{display:grid;gap:13px}
.liste-coches li{display:flex;gap:13px;align-items:flex-start;color:var(--encre-2)}
.liste-coches .coche{
    width:22px;height:22px;border-radius:50%;background:rgba(11,92,255,.1);color:var(--bleu);
    display:grid;place-items:center;flex-shrink:0;margin-top:3px;font-size:.72rem;font-weight:800;
}

/* Filtres */
.filtres{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:38px}
.filtre{
    padding:9px 19px;border-radius:var(--r-full);border:1.5px solid var(--ligne);
    background:#fff;font-size:var(--t-sm);font-weight:600;transition:var(--tr);color:var(--gris);
}
.filtre:hover{border-color:var(--bleu);color:var(--bleu)}
.filtre.actif{background:var(--navy);border-color:var(--navy);color:#fff}

/* ---------------------------------------------------------------- Formulaires */
.form-grille{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.champ{display:flex;flex-direction:column;gap:7px}
.champ.pleine{grid-column:1/-1}
.champ label{font-size:var(--t-xs);font-weight:700;color:var(--encre);letter-spacing:.02em}
.champ input,.champ textarea,.champ select{
    width:100%;padding:13px 16px;border:1.5px solid var(--ligne);border-radius:var(--r-sm);
    background:#fff;font-size:var(--t-sm);transition:var(--tr);resize:vertical;
}
.champ input:focus,.champ textarea:focus,.champ select:focus{
    outline:none;border-color:var(--bleu);box-shadow:0 0 0 4px rgba(11,92,255,.1);
}
.champ .erreur{font-size:var(--t-xs);color:#c0392b}
.champ input[type=file]{padding:10px;background:var(--papier);cursor:pointer}
.aide{font-size:var(--t-xs);color:var(--gris)}

.alerte{
    padding:15px 20px;border-radius:var(--r-sm);font-size:var(--t-sm);font-weight:600;
    margin-bottom:22px;display:flex;gap:11px;align-items:flex-start;
}
.alerte.succes{background:rgba(18,185,129,.1);color:#0b7a56;border:1px solid rgba(18,185,129,.25)}
.alerte.erreur{background:rgba(192,57,43,.08);color:#a3291f;border:1px solid rgba(192,57,43,.2)}

/* Bloc contact */
.contact-grille{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,4vw,64px);align-items:start}
.contact-infos{display:grid;gap:4px}
.contact-infos li{display:flex;gap:15px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--ligne-2)}
.contact-infos .ic{
    width:42px;height:42px;border-radius:12px;background:rgba(11,92,255,.07);
    display:grid;place-items:center;flex-shrink:0;font-size:1.05rem;
}
.contact-infos b{display:block;font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--gris);font-weight:700}
.contact-infos span{color:var(--encre);font-weight:600;font-size:var(--t-sm)}
.contact-infos a:hover span{color:var(--bleu)}
.panneau{background:#fff;border:1px solid var(--ligne);border-radius:var(--r-lg);padding:clamp(26px,3vw,40px);box-shadow:var(--sh-2)}

/* FAQ */
.faq-liste{display:grid;gap:11px;max-width:820px}
.faq-item{border:1px solid var(--ligne);border-radius:var(--r-md);overflow:hidden;transition:var(--tr)}
.faq-item[open]{border-color:var(--bleu);background:var(--papier)}
.faq-item summary{padding:18px 22px;cursor:pointer;font-weight:650;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-size:1.35rem;color:var(--bleu);transition:var(--tr);line-height:1}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item p{padding:0 22px 20px;color:var(--gris);font-size:var(--t-sm)}

/* Offres d'emploi */
.offre-ligne{
    display:flex;align-items:center;gap:22px;padding:24px 28px;background:#fff;
    border:1px solid var(--ligne);border-radius:var(--r-md);transition:var(--tr);flex-wrap:wrap;
}
.offre-ligne:hover{border-color:var(--bleu);box-shadow:var(--sh-2);transform:translateX(4px)}
.offre-ligne .principal{flex:1;min-width:230px}
.offre-ligne h3{font-size:1.1rem;margin-bottom:5px}
.offre-ligne .tags{display:flex;gap:8px;flex-wrap:wrap}

/* Équipe */
.membre{text-align:center}
.membre .portrait{
    aspect-ratio:1;border-radius:var(--r-lg);overflow:hidden;margin-bottom:16px;
    background:linear-gradient(135deg,#eaf1fb,#dce8f7);display:grid;place-items:center;
}
.membre .portrait img{width:100%;height:100%;object-fit:cover}
.membre .initiales{font-family:'Plus Jakarta Sans',sans-serif;font-size:2rem;font-weight:800;color:rgba(11,92,255,.35)}
.membre h3{font-size:1.05rem}
.membre .poste{font-size:var(--t-sm);color:var(--bleu);font-weight:600}
.membre .bio{font-size:var(--t-sm);color:var(--gris);margin-top:8px}

/* Technologies */
.technos{display:grid;gap:26px}
.techno-groupe h4{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--gris);margin-bottom:13px}
.techno-liste{display:flex;gap:9px;flex-wrap:wrap}
.techno-liste span{
    padding:8px 16px;border-radius:var(--r-full);background:#fff;border:1px solid var(--ligne);
    font-size:var(--t-sm);font-weight:600;color:var(--encre-2);transition:var(--tr);
}
.techno-liste span:hover{border-color:var(--bleu);color:var(--bleu);transform:translateY(-2px)}

/* ---------------------------------------------------------------- Pied */
.pied{background:#04101e;color:rgba(255,255,255,.6);padding-top:clamp(52px,6vw,84px)}
.pied-grille{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:clamp(26px,3.5vw,48px);padding-bottom:46px}
.pied h4{color:#fff;font-family:'Inter',sans-serif;font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.14em;margin-bottom:17px;font-weight:700}
.pied li{padding:5px 0;font-size:var(--t-sm)}
.pied a:hover{color:var(--cyan)}
.pied .marque-nom{color:#fff}
.pied-intro{font-size:var(--t-sm);margin:16px 0 20px;max-width:330px}
.reseaux{display:flex;gap:9px}
.reseaux a{
    width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.07);
    display:grid;place-items:center;transition:var(--tr);
}
.reseaux a:hover{background:var(--bleu);color:#fff;transform:translateY(-3px)}
.reseaux svg{width:17px;height:17px;fill:currentColor}
.pied-bas{
    border-top:1px solid rgba(255,255,255,.08);padding-block:20px;display:flex;
    justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:var(--t-xs);
}
.pied-bas nav{display:flex;gap:20px;flex-wrap:wrap}

/* 404 */
.p404{min-height:62vh;display:grid;place-items:center;text-align:center;padding:70px 20px}
.p404 .code{
    font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(5rem,16vw,9rem);font-weight:800;
    background:var(--degrade);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1;
}

/* Apparition au défilement */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.4,0,.2,1)}
.reveal.vu{opacity:1;transform:none}

/* Bouton remonter */
.haut{
    position:fixed;right:22px;bottom:22px;width:46px;height:46px;border-radius:50%;border:none;
    background:var(--navy);color:#fff;cursor:pointer;z-index:70;opacity:0;visibility:hidden;
    transition:var(--tr);box-shadow:var(--sh-2);
}
.haut.on{opacity:1;visibility:visible}
.haut:hover{background:var(--bleu);transform:translateY(-3px)}

/* ---------------------------------------------------------------- Responsive */
@media (max-width:1080px){
    .hero-grille{grid-template-columns:1fr;gap:44px}
    .contact-grille{grid-template-columns:1fr}
    .pied-grille{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
    :root{--header-h:66px}
    .burger{display:flex}
    .nav-liens{
        position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;
        align-items:stretch;gap:0;padding:14px 4% 26px;border-top:1px solid var(--ligne);
        box-shadow:var(--sh-3);max-height:calc(100dvh - var(--header-h));overflow-y:auto;
        transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);
    }
    .nav-liens.ouvert{transform:none}
    .nav-liens > li > a,.nav-liens > li > button{padding:15px 12px;font-size:1rem;width:100%;justify-content:space-between;border-bottom:1px solid var(--ligne-2);border-radius:0}
    .sous-menu{
        position:static;transform:none;opacity:1;visibility:visible;box-shadow:none;
        border:none;border-bottom:1px solid var(--ligne-2);border-radius:0;padding:4px 0 10px;min-width:0;
        display:none;
    }
    .nav-item.deploye .sous-menu{display:block}
    .nav-actions .btn{display:none}
    .nav-cta{display:block;margin-top:16px}
    .nav-liens > li.nav-cta > a{justify-content:center;border-bottom:none;border-radius:var(--r-full);color:#fff}
    .form-grille{grid-template-columns:1fr}
}
@media (max-width:600px){
    .pied-grille{grid-template-columns:1fr;gap:28px}
    .entete-ligne{align-items:flex-start}
    .carte{padding:24px}
    .cta-grille{flex-direction:column;align-items:flex-start}
    .hero-actions .btn,.cta-actions .btn{width:100%}
    .offre-ligne{padding:20px}
    .offre-ligne .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
    .reveal{opacity:1;transform:none}
}
@media print{
    .entete-site,.pied,.haut,.bandeau-cta{display:none!important}
}
