*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
--bleu:#0e2a5c;
--bleu2:#16407f;
--bleu3:#e8eef7;
--rouge:#c8102e;
--rouge2:#e63946;
--rouge3:#fdecef;
--or:#b8860b;
--bg:#ffffff;
--bg2:#f4f6fa;
--bg3:#eaeef5;
--brd:#d8e0ec;
--txt:#1b2432;
--txt2:#5a6478;
--txt3:#8c94a5;
--ok:#1a7f4b;
--warn:#a86400;
--font:'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
--r:6px;
--sh:0 1px 3px rgba(14,42,92,.08);
--sh2:0 6px 24px rgba(14,42,92,.12);
}

html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--txt);font-family:var(--font);line-height:1.65;font-size:15px;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
body>footer.site{margin-top:auto}

.ic{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:-.125em}
.ic-f{fill:currentColor;stroke:none}

header.site{background:#fff;border-bottom:3px solid var(--rouge);box-shadow:var(--sh);position:sticky;top:0;z-index:50}
.hin{max-width:1160px;margin:0 auto;padding:.55rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.marque{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:inherit;min-width:0}
.ecu{height:48px;width:auto;flex-shrink:0;display:block}
.mtxt{line-height:1.2;min-width:0}
.mt1{display:block;font-size:1.02rem;font-weight:700;color:var(--bleu);letter-spacing:-.01em}
.mt2{display:block;font-size:.66rem;color:var(--txt2);text-transform:uppercase;letter-spacing:.09em;white-space:nowrap}

nav.princ{display:flex;align-items:center;gap:.15rem}
nav.princ a{color:var(--txt);text-decoration:none;font-size:.85rem;font-weight:500;padding:.5rem .85rem;border-radius:var(--r);display:inline-flex;align-items:center;gap:.4rem;transition:.15s}
nav.princ a:hover{background:var(--bg2);color:var(--bleu)}
nav.princ a.actif{color:var(--rouge)}
nav.princ a.cta{background:var(--bleu);color:#fff}
nav.princ a.cta:hover{background:var(--bleu2);color:#fff}

.burger{display:none;background:none;border:1px solid var(--brd);border-radius:var(--r);padding:.4rem .5rem;cursor:pointer;color:var(--bleu);font-size:1.2rem;line-height:1}

.hero{background:var(--bleu);color:#fff;position:relative;overflow:hidden}
.hero-img{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.06);transition:opacity 1.8s ease-in-out,transform 9s linear;will-change:opacity,transform}
.hero-img.actif{opacity:.34;transform:scale(1)}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,rgba(14,42,92,.94) 0%,rgba(14,42,92,.72) 55%,rgba(14,42,92,.48) 100%)}
.hin2{position:relative;z-index:2;max-width:1160px;margin:0 auto;padding:4.5rem 1.25rem}
.hero .sur{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:#ffb3bd;font-weight:600;margin-bottom:.9rem}
.hero h1{font-size:clamp(1.9rem,4.2vw,3rem);font-weight:700;letter-spacing:-.02em;line-height:1.15;max-width:16ch}
.hero h1 span{color:#ff8a99}
.hero p.chap{font-size:1.02rem;color:rgba(255,255,255,.88);max-width:52ch;margin-top:1.1rem}
.hero .btns{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:2rem}
.hpts{position:absolute;bottom:1.1rem;left:50%;transform:translateX(-50%);z-index:3;display:flex;gap:.45rem}
.hpt{width:26px;height:3px;border-radius:2px;background:rgba(255,255,255,.32);border:none;padding:0;cursor:pointer;transition:.25s}
.hpt.actif{background:var(--rouge2);width:38px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font-family:var(--font);font-size:.88rem;font-weight:600;padding:.65rem 1.5rem;border:2px solid transparent;border-radius:var(--r);cursor:pointer;text-decoration:none;transition:.18s;white-space:nowrap}
.btn-r{background:var(--rouge);color:#fff;border-color:var(--rouge)}
.btn-r:hover{background:#a50d26;border-color:#a50d26}
.btn-b{background:var(--bleu);color:#fff;border-color:var(--bleu)}
.btn-b:hover{background:var(--bleu2);border-color:var(--bleu2)}
.btn-o{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.btn-o:hover{background:rgba(255,255,255,.12);border-color:#fff}
.btn-l{background:#fff;color:var(--bleu);border-color:var(--brd)}
.btn-l:hover{background:var(--bg2);border-color:var(--bleu)}
.btn-s{padding:.4rem .9rem;font-size:.8rem}
.btn:disabled{opacity:.5;cursor:not-allowed}

.chiffres{background:var(--bg2);border-bottom:1px solid var(--brd)}
.cgrid{max-width:1160px;margin:0 auto;padding:2rem 1.25rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1.25rem;text-align:center}
.cbloc .cv{font-size:2.1rem;font-weight:700;color:var(--bleu);line-height:1.1;letter-spacing:-.02em;transition:opacity .18s ease,transform .18s ease}
.cbloc .cv.maj{opacity:0;transform:translateY(-4px)}
.cbloc .cl{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:var(--txt2);font-weight:600;margin-top:.2rem}

section.bloc{padding:3.5rem 1.25rem}
section.bloc.gris{background:var(--bg2);border-top:1px solid var(--brd);border-bottom:1px solid var(--brd)}
.conteneur{max-width:1160px;margin:0 auto}

.stitre{margin-bottom:2rem}
.stitre .sur{font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;color:var(--rouge);font-weight:700}
.stitre h2{font-size:clamp(1.35rem,2.6vw,1.85rem);font-weight:700;color:var(--bleu);letter-spacing:-.02em;margin-top:.3rem}
.stitre .bar{width:52px;height:3px;background:var(--rouge);margin-top:.75rem}
.stitre p{color:var(--txt2);margin-top:.8rem;max-width:62ch;font-size:.93rem}

.grille{display:grid;gap:1.1rem}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(232px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(178px,1fr))}

.carte{background:#fff;border:1px solid var(--brd);border-radius:var(--r);padding:1.4rem;transition:.2s;box-shadow:var(--sh)}
.carte:hover{border-color:var(--bleu);box-shadow:var(--sh2);transform:translateY(-2px)}
.carte .ci{width:38px;height:38px;border-radius:var(--r);background:var(--bleu3);color:var(--bleu);display:flex;align-items:center;justify-content:center;font-size:1.25rem;margin-bottom:.9rem}
.carte h3{font-size:.95rem;font-weight:700;color:var(--bleu);margin-bottom:.3rem}
.carte p{font-size:.86rem;color:var(--txt2);line-height:1.6}
.carte .sig{font-size:.65rem;text-transform:uppercase;letter-spacing:.09em;color:var(--rouge);font-weight:700;margin-bottom:.35rem}

.deux{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}
.texte p{color:var(--txt2);font-size:.94rem}
.texte p+p{margin-top:.9rem}
.devise{margin-top:1.5rem;padding-left:1rem;border-left:3px solid var(--rouge);font-style:italic;color:var(--bleu);font-size:1rem;font-weight:600}
.devise small{display:block;font-style:normal;font-weight:400;font-size:.78rem;color:var(--txt3);margin-top:.15rem}

.visuel{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh2);background:var(--bleu);aspect-ratio:4/3}
.visuel img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.visuel:hover img{transform:scale(1.04)}
.visuel .leg{position:absolute;left:0;right:0;bottom:0;padding:1.5rem 1.25rem .95rem;background:linear-gradient(transparent,rgba(10,31,69,.92));color:#fff;font-size:.85rem;font-weight:600}
.visuel.ecusson{display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,#12305f,#0a1f45)}
.visuel.ecusson img{width:auto;height:72%;object-fit:contain;filter:drop-shadow(0 10px 26px rgba(0,0,0,.45))}

.enc{background:#fff;border:1px solid var(--brd);border-left:4px solid var(--rouge);border-radius:var(--r);padding:1.25rem;box-shadow:var(--sh)}
.enc h3{font-size:.92rem;font-weight:700;color:var(--bleu);margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}
.enc p{font-size:.86rem;color:var(--txt2)}
.enc.bleu{border-left-color:var(--bleu);background:var(--bleu3)}

.appel{background:var(--bleu);color:#fff;text-align:center;padding:3.5rem 1.25rem}
.appel h2{font-size:clamp(1.3rem,2.6vw,1.8rem);font-weight:700;letter-spacing:-.02em}
.appel p{color:rgba(255,255,255,.85);margin:.7rem auto 1.8rem;max-width:54ch;font-size:.95rem}

footer.site{background:#0a1f45;color:rgba(255,255,255,.72);font-size:.83rem}
.fgrid{max-width:1160px;margin:0 auto;padding:2.75rem 1.25rem 1.5rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:2rem}
.fcol h4{color:#fff;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.85rem;font-weight:700}
.fcol a{display:block;color:rgba(255,255,255,.72);text-decoration:none;padding:.18rem 0}
.fcol a:hover{color:#fff;text-decoration:underline}
.fbas{border-top:1px solid rgba(255,255,255,.14);max-width:1160px;margin:0 auto;padding:1.1rem 1.25rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.76rem;color:rgba(255,255,255,.55)}
.fbas a{color:rgba(255,255,255,.72)}

.page{max-width:1160px;margin:0 auto;padding:2.5rem 1.25rem 4rem;width:100%}
.fil{font-size:.78rem;color:var(--txt2);margin-bottom:1.25rem}
.fil a{color:var(--bleu);text-decoration:none}
.fil a:hover{text-decoration:underline}

.form{background:#fff;border:1px solid var(--brd);border-radius:var(--r);padding:2rem;box-shadow:var(--sh);max-width:560px;margin:0 auto}
.form-lg{max-width:760px}
.form h1{font-size:1.3rem;font-weight:700;color:var(--bleu);margin-bottom:.35rem}
.form .sst{font-size:.88rem;color:var(--txt2);margin-bottom:1.6rem}
.champ{margin-bottom:1.15rem}
.champ label{display:block;font-size:.79rem;font-weight:600;color:var(--txt);margin-bottom:.35rem}
.champ .aide{font-size:.74rem;color:var(--txt3);font-weight:400;margin-top:.25rem}
input,select,textarea{width:100%;padding:.62rem .85rem;background:#fff;border:1px solid var(--brd);border-radius:var(--r);color:var(--txt);font-family:var(--font);font-size:.9rem;outline:none;transition:.15s}
input:focus,select:focus,textarea:focus{border-color:var(--bleu);box-shadow:0 0 0 3px rgba(14,42,92,.1)}
textarea{resize:vertical;min-height:110px;line-height:1.6}
.ligne{display:grid;grid-template-columns:1fr 1fr;gap:1rem}

.avis{padding:.7rem .95rem;border-radius:var(--r);font-size:.85rem;margin-bottom:1.1rem;display:none;align-items:flex-start;gap:.5rem}
.avis.on{display:flex}
.avis.err{background:var(--rouge3);border:1px solid #f5c2c9;color:#8f0b20}
.avis.suc{background:#e8f5ee;border:1px solid #b7dfc8;color:var(--ok)}
.avis.inf{background:var(--bleu3);border:1px solid #c3d4ec;color:var(--bleu)}

.etiq{display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:700;padding:.2rem .55rem;border-radius:3px;text-transform:uppercase;letter-spacing:.04em}
.et-o{background:#fff4e0;color:var(--warn)}
.et-b{background:var(--bleu3);color:var(--bleu)}
.et-v{background:#e8f5ee;color:var(--ok)}
.et-r{background:var(--rouge3);color:var(--rouge)}
.et-g{background:var(--bg3);color:var(--txt2)}

.mono{font-family:ui-monospace,'Cascadia Mono',Consolas,monospace}
.vide{text-align:center;padding:2.5rem 1rem;color:var(--txt3);font-size:.88rem}
.sep{height:1px;background:var(--brd);margin:1.25rem 0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

.legal h1{font-size:1.6rem;color:var(--bleu);font-weight:700;margin-bottom:1.25rem}
.legal h2{font-size:1.05rem;color:var(--bleu);font-weight:700;margin:2rem 0 .6rem}
.legal p,.legal li{color:var(--txt2);font-size:.92rem}
.legal p+p{margin-top:.7rem}
.legal ul{margin:.6rem 0 0 1.2rem}
.legal li{margin-bottom:.35rem}
.legal strong{color:var(--txt)}

@media(max-width:860px){
.deux{grid-template-columns:1fr;gap:2rem}
nav.princ{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:.6rem;border-bottom:1px solid var(--brd);box-shadow:var(--sh2);gap:.1rem}
nav.princ.ouvert{display:flex}
.burger{display:block}
.hin{position:relative}
.ligne{grid-template-columns:1fr}
.hin2{padding:3rem 1.25rem}
.ecu{height:40px}
}

@media(prefers-reduced-motion:reduce){
.hero-img{transition:opacity .4s ease;transform:none}
.hero-img.actif{transform:none}
.visuel img{transition:none}
}
