@font-face{font-family:"Outfit";font-style:normal;font-weight:300 700;font-display:swap;src:url(assets/fonts/outfit.woff2) format("woff2")}
@font-face{font-family:"Racing Sans One";font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/racing-sans-one.woff2) format("woff2")}
:root{--navy:#09101d;--navy2:#101a30;--navy3:#1b2a4d;--orange:#f58a1f;--orange-d:#e07410;--gold:#fbbf11;--white:#fff;--bg:#f5f7fb;--text:#1b2740;--muted:#4a5878;--r:14px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:400 17.5px/1.7 "Outfit",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--text);background:var(--white)}
img,svg{max-width:100%;height:auto}
.wrap{width:min(1100px,100% - 32px);margin-inline:auto}
h1,h2,h3,.brand span{font-family:"Racing Sans One","Impact",system-ui,sans-serif;font-weight:400;text-transform:uppercase;line-height:1.05;color:var(--navy);margin:0 0 .6em;letter-spacing:.01em}
h1{font-size:clamp(2.3rem,8vw,4rem);color:var(--white);text-shadow:0 3px 0 #0006}h1 em{font-style:inherit;background:linear-gradient(180deg,var(--gold),var(--orange));-webkit-background-clip:text;background-clip:text;color:transparent;display:block}
h2{font-size:clamp(1.7rem,5vw,2.5rem);border-left:6px solid var(--orange);padding-left:14px}.final h2{border:0;padding:0}
h3{font-size:1.2rem}
a{color:var(--navy3)}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
header.top{background:var(--navy);color:#fff}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0}
.brand{font-weight:800;letter-spacing:.06em;color:#fff;text-decoration:none;font-size:1.05rem}
.brand small{display:block;font-family:system-ui,sans-serif;text-transform:none;font-weight:500;letter-spacing:0;opacity:.8;font-size:.78rem}
.hero{background:linear-gradient(160deg,var(--navy),var(--navy2));color:#fff;padding:28px 0 56px}
.hero-grid{display:grid;gap:32px;align-items:center}
.hero p.sub{font-size:1.15rem;color:#dbe4f5;max-width:34em}
.hero .note{font-size:.92rem;color:#c3cfe8;margin-top:12px}
.hero figure{margin:0;border-radius:var(--r);overflow:hidden;box-shadow:0 20px 50px #0007}
.hero figure img{display:block;width:100%}
.btn{font-family:"Racing Sans One",system-ui,sans-serif;text-transform:uppercase;letter-spacing:.03em;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:14px 26px;border-radius:999px;background:linear-gradient(180deg,var(--gold),var(--orange));color:var(--navy);font-weight:400;font-size:1.1rem;text-decoration:none;border:0;cursor:pointer;box-shadow:0 6px 18px #f7931e55;transition:transform .15s,background .15s}
.btn:hover{background:linear-gradient(180deg,var(--orange),var(--orange-d));transform:translateY(-1px)}
.btn svg{width:24px;height:24px;flex:none}
.btn[aria-disabled=true]{background:#c9d0de;color:#4a5878;box-shadow:none;cursor:not-allowed;transform:none;pointer-events:none}
section{padding:60px 0}
section.alt{background:var(--bg)}
.lead{font-size:1.1rem;color:var(--muted);max-width:44em}
.cta{margin-top:28px}
.cards{display:grid;gap:16px;margin-top:24px}
.card{background:#fff;border:1px solid #dde4f0;border-radius:var(--r);padding:22px}
.alt .card{border-color:#e1e7f2}
.steps{counter-reset:s;list-style:none;padding:0;margin:24px 0 0;display:grid;gap:16px}
.steps li{counter-increment:s;background:#fff;border:1px solid #dde4f0;border-radius:var(--r);padding:22px 22px 22px 76px;position:relative}
.steps li::before{content:counter(s);position:absolute;left:20px;top:18px;width:40px;height:40px;border-radius:50%;background:var(--navy);color:#fff;font-weight:800;display:grid;place-items:center}
.arr{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;list-style:none;padding:0;margin:24px 0 0}
.arr li{background:var(--navy);color:#fff;border-radius:10px;text-align:center;padding:10px 0;font-weight:700}
.notice{background:#fff7ed;border:2px solid var(--orange);border-radius:var(--r);padding:18px 22px;margin-bottom:24px}
.notice[hidden]{display:none}
.tips{padding-left:1.2em}.tips li{margin:.5em 0}
details{background:#fff;border:1px solid #dde4f0;border-radius:var(--r);margin:10px 0;padding:0}
summary{cursor:pointer;font-weight:700;padding:18px 22px;color:var(--navy);list-style-position:inside}
details p{margin:0;padding:0 22px 20px;color:var(--muted)}
.final{background:var(--navy);color:#fff;text-align:center}
.final h2{color:#fff}.final p{color:#dbe4f5;max-width:36em;margin-inline:auto}
footer{background:#07122a;color:#c3cfe8;padding:36px 0 110px;font-size:.95rem}
footer a{color:#fff}footer strong{color:#fff;letter-spacing:.05em}
.fab{position:fixed;right:16px;bottom:16px;z-index:50;min-height:58px;padding:0 22px 0 18px}
.fab[hidden]{display:none}
.cfg-warn{background:#fff3cd;color:#5c4400;padding:10px 16px;text-align:center;font-size:.9rem}
.cfg-warn[hidden]{display:none}
@media (min-width:860px){.hero{padding:48px 0 80px}.hero-grid{grid-template-columns:1.05fr .95fr}.cards.c3{grid-template-columns:repeat(3,1fr)}.steps{grid-template-columns:repeat(3,1fr)}.steps li{padding:72px 22px 22px}.steps li::before{top:20px}footer{padding-bottom:60px}}
@media (max-width:520px){.btn{width:100%}.fab{left:16px;right:16px;width:auto}.hero .btn{width:100%}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.brand{display:flex;align-items:center;gap:12px}.brand img{width:84px;height:auto;object-fit:contain}
.brand span{color:#fff;font-size:1.15rem}
.arr a{color:#fff;text-decoration:none;display:block}.arr li:hover{background:var(--navy3)}

header.top{position:sticky;top:0;z-index:40;border-bottom:1px solid #ffffff14}
.bar .btn{min-height:44px;padding:8px 18px;font-size:.95rem;width:auto;box-shadow:none}
.bar .btn svg{width:20px;height:20px}
.hero figure.logo{box-shadow:none;background:radial-gradient(circle at 50% 45%,#f58a1f38,transparent 62%);border-radius:0;text-align:center}
.hero figure.logo img{width:min(380px,78%);margin:auto;filter:drop-shadow(0 18px 30px #000a)}
.trust{background:var(--navy3);color:#fff}
.trust ul{list-style:none;margin:0;padding:14px 0;display:grid;gap:8px;font-weight:600;font-size:.95rem}
.trust li::before{content:"✔";color:var(--gold);margin-right:8px}
.card h3{display:flex;align-items:center;gap:10px}
.card h3 .ic{width:38px;height:38px;border-radius:10px;background:linear-gradient(180deg,var(--gold),var(--orange));display:grid;place-items:center;font-size:1.1rem;flex:none}
.card{transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-3px);box-shadow:0 10px 24px #09101d1f}
.foot-arr{list-style:none;padding:0;margin:16px 0;display:flex;flex-wrap:wrap;gap:6px 14px}
.foot-arr a{color:#c3cfe8;text-decoration:none}.foot-arr a:hover{color:var(--gold)}
@media (min-width:860px){.trust ul{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.bar .btn{display:none}}

/* ===== Thème sombre ===== */
body{background:var(--navy);color:#dbe4f5}
h1,h2,h3{color:#fff}
.lead,details p{color:#b9c6e0}
a{color:var(--gold)}
section.alt{background:var(--navy2)}
.card,.steps li,details{background:#16233f;border-color:#2a3b63;color:#dbe4f5}
.alt .card{border-color:#2a3b63}
.card:hover{box-shadow:0 10px 24px #0008}
summary{color:#fff}
.arr li{background:#1b2a4d;border:1px solid #2a3b63}
.arr li:hover{background:var(--orange);color:var(--navy)}.arr li:hover a{color:var(--navy)}
.steps li::before{background:linear-gradient(180deg,var(--gold),var(--orange));color:var(--navy)}
.notice{background:#2a1d0c;border-color:var(--orange);color:#ffe9cc}.notice h3{color:var(--gold)}
.trust{background:#16233f;border-block:1px solid #2a3b63}
.final{background:linear-gradient(160deg,#0d1730,#1b2a4d)}
.hero{background:radial-gradient(circle at 80% 20%,#1b2a4d,var(--navy) 60%)}
footer{background:#050a14}
.cfg-warn{color:#5c4400}
.btn,.btn:hover{color:var(--navy)}
.hero figure.photo img{border-radius:var(--r);aspect-ratio:4/3;object-fit:cover;object-position:60% 50%}
.hero figure.photo img{aspect-ratio:auto;object-fit:contain;height:auto}
@media (min-width:860px){.cards.c2{grid-template-columns:repeat(2,1fr)}}

/* ===== Centrage ===== */
body:not(.legal) :is(h1,h2,h3,.lead,.sub,.note,.card,details p,.hero .wrap,section .wrap,.trust li){text-align:center}
body:not(.legal) h2{border-left:0;padding-left:0}
body:not(.legal) h2::after{content:"";display:block;width:64px;height:5px;border-radius:3px;margin:12px auto 0;background:linear-gradient(90deg,var(--gold),var(--orange))}
body:not(.legal) .final h2::after{display:block}
body:not(.legal) :is(.lead,.sub){margin-inline:auto}
body:not(.legal) .card h3{justify-content:center}
body:not(.legal) .cta{text-align:center}
body:not(.legal) .trust ul{justify-items:center}
body:not(.legal) .tips{list-style-position:inside;padding-left:0}
body:not(.legal) .steps li{text-align:center;padding:76px 22px 22px}
body:not(.legal) .steps li::before{left:50%;transform:translateX(-50%);top:18px}
body:not(.legal) summary{text-align:center}
body:not(.legal) .hero .btn{margin-inline:auto}
body:not(.legal) .hero-grid{justify-items:center}
body:not(.legal) .foot-arr{justify-content:center}
body:not(.legal) footer{text-align:center}
body:not(.legal) .notice{text-align:center}
.card h3,.foot-arr{}
.svcphoto{margin:32px auto 0;max-width:900px}.svcphoto img{display:block;width:100%;height:auto;border-radius:var(--r);box-shadow:0 20px 50px #0008}
.svcphoto figcaption{margin-top:8px;font-size:.85rem;color:#9fb0d0;text-align:center}
.gal{display:grid;gap:16px;margin:28px 0}
.gal figure{margin:0}.gal img{display:block;width:100%;height:auto;border-radius:var(--r);box-shadow:0 14px 34px #0008}
.gal figcaption{margin-top:8px;font-size:.85rem;color:#9fb0d0;text-align:center}
@media (min-width:860px){.gal{grid-template-columns:1fr 1fr}}
.quick{display:block;margin-top:10px;font-weight:700;color:var(--gold);font-size:1rem;text-align:center}

/* ===== Mouvement & animations ===== */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.16s}.rv.d3{transition-delay:.24s}
.hero h1{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
.hero .sub{animation:rise .9s .15s cubic-bezier(.2,.7,.2,1) both}
.hero .cta{animation:rise .9s .3s cubic-bezier(.2,.7,.2,1) both}
.hero figure{animation:rise 1s .35s cubic-bezier(.2,.7,.2,1) both}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.hero{background-size:140% 140%;animation:glow 14s ease-in-out infinite alternate}
@keyframes glow{from{background-position:0% 0%}to{background-position:100% 100%}}
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#ffffff66 50%,transparent 70%);transform:translateX(-120%);animation:shine 4.5s 1.5s infinite}
@keyframes shine{0%,60%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.btn[aria-disabled=true]::after{display:none}
.fab{animation:pulse 2.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 #f7931e99}70%{box-shadow:0 0 0 16px #f7931e00}100%{box-shadow:0 0 0 0 #f7931e00}}
.quick{animation:blink 2.4s ease-in-out infinite}
@keyframes blink{50%{opacity:.65}}
.arr li{transition:transform .2s,background .2s}.arr li:hover{transform:translateY(-3px) scale(1.05)}
details{transition:border-color .25s}details[open]{border-color:var(--orange)}
details[open] p{animation:rise .35s ease both}
.gal img,.svcphoto img{transition:transform .6s ease}.gal figure:hover img,.svcphoto:hover img{transform:scale(1.02)}
.steps li{transition:transform .25s}.steps li:hover{transform:translateY(-4px)}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.hero,.hero *,.fab,.quick,.btn::after{animation:none!important}}

/* ===== Assistant de demande ===== */
.builder{max-width:720px;margin:28px auto 0;background:#16233f;border:1px solid #2a3b63;border-radius:var(--r);padding:22px;display:grid;gap:14px;text-align:left}
.builder label{display:grid;gap:6px;font-weight:700;color:#fff;font-size:.95rem}
.builder select,.builder input{font:inherit;padding:14px;border-radius:10px;border:1px solid #2a3b63;background:#0d1730;color:#fff;min-height:50px;width:100%}
.builder select:focus,.builder input:focus{outline:3px solid var(--orange);outline-offset:1px}
.builder .row{display:grid;gap:14px}
.builder .btn{width:100%}
.builder small{color:#9fb0d0}
@media (min-width:700px){.builder .row{grid-template-columns:1fr 1fr}}

.lead,.sub{font-weight:300;font-size:1.15rem;letter-spacing:.01em}
.card p,details p,.steps li{font-weight:400}
summary,.trust li,.quick,.note{font-family:"Outfit",system-ui,sans-serif}
summary{font-weight:600}
.brand small{font-family:"Outfit",system-ui,sans-serif}
.builder input,.builder select{font-family:"Outfit",system-ui,sans-serif}

.sos{background:linear-gradient(135deg,#3a1a06,#1a0f0a 60%,#09101d);border-block:2px solid var(--orange)}
.sos .tag{display:inline-block;margin:0 0 10px;padding:6px 14px;border-radius:999px;background:var(--orange);color:var(--navy);font-weight:700;letter-spacing:.04em;font-size:.9rem}
.sos h2{color:#fff}
.sos .lead{color:#ffe6c7;max-width:40em;font-weight:400}.sos strong{color:var(--gold)}

.sosbar{background:#050a14;border-bottom:1px solid #ff4d4f55;text-align:center}
.sosbar a{display:block;padding:7px 14px;font-size:.78rem;line-height:1.35;color:#c9d4ea;text-decoration:none;font-weight:400}
.sosbar b{color:#ff4d4f;font-weight:800;letter-spacing:.12em;margin-right:6px;animation:blink 1.6s ease-in-out infinite}
.sosbar u{color:var(--gold);text-decoration:none;font-weight:600;white-space:nowrap}
.sosbar a:hover{background:#ff4d4f14}
.sosbar a[aria-disabled=true]{cursor:default}
@media (min-width:860px){.gal{grid-template-columns:repeat(3,1fr)}}
