
:root{
  --sapin:#0E3A34; --sapin-2:#155247; --action:#106B5A; --action-h:#0C5748;
  --neige:#F7F9F8; --glacier:#E3EEEA; --texte:#33413D; --texte-2:#5C6B67;
  --ligne:#D4E0DC; --croix:#DA291C; --blanc:#FFFFFF; --accent-soft:#7FC8B4; --r:8px;
}
body[data-theme="leman"]{
  --sapin:#0F2E4C; --sapin-2:#17436B; --action:#0C63A8; --action-h:#094F87;
  --neige:#F6F9FB; --glacier:#E2EDF5; --texte:#33404B; --texte-2:#5B6B78;
  --ligne:#D3E0EA; --accent-soft:#7FB4D8;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'IBM Plex Sans',sans-serif;color:var(--texte);background:var(--neige);line-height:1.6;font-size:16px}
h1,h2,h3,h4,.disp{font-family:'Archivo',sans-serif;color:var(--sapin);line-height:1.15;letter-spacing:-.015em}
a{color:var(--action)}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.narrow{max-width:820px}
.eyebrow{font-family:'Archivo';font-variation-settings:'wdth' 110;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700;color:var(--action);display:block;margin-bottom:8px}
.btn{display:inline-block;font-family:'Archivo';font-weight:700;font-size:.95rem;padding:14px 26px;border-radius:var(--r);border:none;cursor:pointer;text-decoration:none;transition:background .15s}
.btn-p{background:var(--action);color:#fff}
.btn-p:hover{background:var(--action-h)}
.btn-s{background:transparent;color:var(--sapin);border:1.5px solid var(--sapin)}
.btn-s:hover{background:var(--glacier)}
.btn:focus-visible,a:focus-visible{outline:3px solid var(--action);outline-offset:2px}

/* Bandeau délai */
.deadline{background:var(--sapin);color:#EAF2EF;font-size:.85rem;text-align:center;padding:9px 16px}
.deadline b{color:#fff}
.deadline .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--croix);margin-right:8px;vertical-align:1px}
.deadline a{color:#fff}

/* Header + nav déroulante */
header{background:var(--blanc);border-bottom:1px solid var(--ligne);position:sticky;top:0;z-index:60}
.nav{display:flex;align-items:center;gap:20px;height:66px}
.logo{font-family:'Archivo';font-weight:800;font-size:1.05rem;color:var(--sapin);text-decoration:none;letter-spacing:-.02em;white-space:nowrap}
@media(max-width:480px){.logo{font-size:.92rem}}
.logo span{color:var(--action)}
.menu{display:flex;list-style:none;margin-left:8px}
.menu>li{position:relative}
.menu>li>a{display:block;padding:22px 13px;color:var(--texte);text-decoration:none;font-size:.92rem;font-weight:500}
.menu>li>a:hover{color:var(--sapin)}
.dd{position:absolute;top:100%;left:0;background:var(--blanc);border:1px solid var(--ligne);border-radius:0 0 var(--r) var(--r);box-shadow:0 16px 34px rgba(0,0,0,.10);min-width:560px;display:none;padding:18px;grid-template-columns:1fr 1fr;gap:4px 22px}
.menu>li:hover .dd,.menu>li:focus-within .dd{display:grid}
.dd .grp{font-family:'Archivo';font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--texte-2);padding:8px 10px 2px}
.dd a{display:block;padding:7px 10px;border-radius:6px;text-decoration:none;color:var(--texte);font-size:.88rem}
.dd a:hover{background:var(--glacier);color:var(--sapin)}
.dd a small{display:block;font-size:.72rem;color:var(--texte-2)}
.dd.mono{min-width:280px;grid-template-columns:1fr}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:12px}
.theme-t{display:none}
.theme-t button{font:inherit;border:1px solid var(--ligne);background:var(--neige);border-radius:20px;padding:4px 10px;cursor:pointer;color:var(--texte-2)}
.theme-t button.on{background:var(--sapin);color:#fff;border-color:var(--sapin)}
.lang-t{display:flex;border:1px solid var(--ligne);border-radius:20px;overflow:hidden}
.lang-t button{font-family:'Archivo';font-weight:700;font-size:.7rem;border:none;background:var(--neige);padding:6px 9px;cursor:pointer;color:var(--texte-2)}
.lang-t button+button{border-left:1px solid var(--ligne)}
.lang-t button.on{background:var(--action);color:#fff}
.lang-note{display:none;background:var(--glacier);border:1px solid var(--ligne);border-left:4px solid var(--action);border-radius:var(--r);padding:12px 16px;margin:0 0 20px;font-size:.85rem;color:var(--texte)}
body.notfr .lang-note{display:block}
.burger{display:none;font-size:1.5rem;background:none;border:none;cursor:pointer;color:var(--sapin)}
@media(max-width:980px){
  .menu{display:none;position:absolute;top:66px;left:0;right:0;background:var(--blanc);flex-direction:column;border-bottom:1px solid var(--ligne);max-height:70vh;overflow:auto}
  .menu.open{display:flex}
  .menu>li>a{padding:14px 22px;border-top:1px solid var(--ligne)}
  .dd{position:static;display:grid;grid-template-columns:1fr;min-width:0;box-shadow:none;border:none;padding:0 22px 12px}
  .burger{display:block}
  .theme-t span{display:none}
}

/* Fil d'ariane */
.crumb{font-size:.78rem;color:var(--texte-2);padding:18px 0 0}
.crumb a{color:var(--texte-2);text-decoration:none}
.crumb a:hover{color:var(--action)}

/* Pages */
.page{display:block}
.page.on{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.page.on{animation:none}html{scroll-behavior:auto}}

/* Hero */
.hero{padding:64px 0 56px;background:linear-gradient(180deg,var(--blanc) 0%,var(--neige) 100%)}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(2rem,4.4vw,3.1rem);font-weight:800;font-variation-settings:'wdth' 105}
.hero h1 em{font-style:normal;color:var(--action)}
.hero p.lead{margin:18px 0 26px;font-size:1.06rem;color:var(--texte-2);max-width:34em}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap}
.hero-note{margin-top:14px;font-size:.8rem;color:var(--texte-2)}
.splitbox{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r);overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.07)}
.splitbox a{display:block;padding:26px;text-decoration:none;color:inherit}
.splitbox a:hover{background:var(--glacier)}
.splitbox a+a{border-top:1px solid var(--ligne)}
.splitbox h3{font-size:1.15rem;margin-bottom:4px}
.splitbox p{font-size:.9rem;color:var(--texte-2)}
.splitbox .go{font-family:'Archivo';font-weight:700;color:var(--action);font-size:.85rem}
@media(max-width:860px){.hero .wrap{grid-template-columns:1fr}}

/* Frise délais — étagée sur 2 niveaux pour éviter tout chevauchement */
.rail-sec{padding:56px 0}
.jalons{position:relative;height:196px}
.jalon{position:absolute;bottom:10px;transform:translateX(-50%);text-align:center;width:150px}
.jalon .pin{position:relative;z-index:2;width:12px;height:12px;border-radius:50%;margin:7px auto 0;border:2.5px solid var(--sapin);background:var(--blanc)}
.jalon.red .pin{background:var(--croix);border-color:var(--croix)}
.jalon .lab{font-family:'Archivo';font-weight:700;font-size:.82rem;color:var(--sapin)}
.jalon .sub{font-size:.7rem;color:var(--texte-2);line-height:1.35}
.jalon.red .lab{color:var(--croix)}
.jalon.hi{bottom:112px}
.jalon.hi::after{content:"";position:absolute;left:50%;bottom:-96px;width:1.5px;height:96px;background:var(--ligne);transform:translateX(-50%)}
.rail{border-top:2px solid var(--sapin);display:grid;grid-template-columns:repeat(12,1fr)}
.tick{position:relative;padding-top:20px;font-size:.7rem;color:var(--texte-2);text-align:center}
.tick::before{content:"";position:absolute;top:-1px;left:50%;width:1px;height:9px;background:var(--ligne)}
@media(max-width:720px){
  .jalon{width:96px}.jalon .sub{display:none}
  .jalons{height:150px}.jalon.hi{bottom:84px}.jalon.hi::after{bottom:-70px;height:70px}
}

/* Photos */
.ph{margin:0;border-radius:var(--r);overflow:hidden;border:1px solid var(--ligne);background:var(--glacier);position:relative}
.ph img{display:block;width:100%;height:100%;object-fit:cover}
.ph figcaption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(10,30,26,.72));color:#fff;font-size:.72rem;padding:26px 14px 10px}
.ph.miss img{display:none}
.ph.miss::before{content:"📷 " attr(data-sug);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;font-size:.78rem;color:var(--texte-2)}
.ph-hero{height:260px;margin:0 0 26px}
.ph-band{height:340px}
.ph-side{height:100%;min-height:320px}
.photo-band{padding:0 0 8px}
@media(max-width:860px){.ph-band{height:220px}.ph-side{min-height:200px}}

/* Sections & cartes */
.sec{padding:56px 0}
.sec.alt{background:var(--blanc);border-top:1px solid var(--ligne);border-bottom:1px solid var(--ligne)}
.sec h2{font-size:1.65rem;margin:4px 0 26px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.cards.c2{grid-template-columns:1fr 1fr}
.card{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;gap:8px}
.sec.alt .card{background:var(--neige)}
.card h3{font-size:1.02rem}
.card p{font-size:.88rem;color:var(--texte-2);flex:1}
.card a{font-family:'Archivo';font-weight:700;font-size:.85rem;text-decoration:none}
.tag{font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--sapin-2);background:var(--glacier);border-radius:4px;padding:2px 8px;align-self:flex-start}
@media(max-width:860px){.cards,.cards.c2{grid-template-columns:1fr}}

/* Pages contenu (drill-down + articles + légal) */
.phead{padding:44px 0 8px}
.phead h1{font-size:clamp(1.7rem,3.4vw,2.4rem);max-width:22em}
.phead .intro{margin-top:12px;color:var(--texte-2);max-width:44em;font-size:1.02rem}
.content{padding:26px 0 64px}
.content h2{font-size:1.35rem;margin:34px 0 12px}
.content h3{font-size:1.05rem;margin:22px 0 8px}
.content p{margin:0 0 14px;max-width:46em}
.content ul,.content ol{margin:0 0 16px 22px;max-width:44em}
.content li{margin-bottom:6px}
.content table{border-collapse:collapse;width:100%;margin:14px 0 20px;font-size:.9rem;background:var(--blanc)}
.content th,.content td{border:1px solid var(--ligne);padding:10px 12px;text-align:left;vertical-align:top}
.content th{background:var(--glacier);font-family:'Archivo';font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--sapin)}
.box{border:1px solid var(--ligne);border-left:4px solid var(--action);background:var(--blanc);border-radius:var(--r);padding:16px 18px;margin:18px 0;max-width:46em}
.box.warn{border-left-color:var(--croix)}
.box b:first-child{font-family:'Archivo';color:var(--sapin)}
.cta-box{background:var(--sapin);border-radius:var(--r);padding:28px;margin:30px 0;color:#DCEAE5;max-width:46em}
.cta-box h3{color:#fff;font-size:1.2rem;margin:0 0 8px}
.cta-box p{color:#C8DAD4;font-size:.92rem}
.cta-box .btn-p{background:#fff;color:var(--sapin);margin-top:8px}
.cta-box .btn-p:hover{background:var(--glacier)}
.img-sug{border:1.5px dashed var(--ligne);border-radius:var(--r);padding:12px 16px;font-size:.78rem;color:var(--texte-2);margin:18px 0;max-width:46em;background:var(--blanc)}
.legal p,.legal li{font-size:.92rem}
.legal h2{font-size:1.15rem}
.updated{font-size:.78rem;color:var(--texte-2);margin-bottom:20px}

/* Réassurance */
.trust{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.trust div{border-left:3px solid var(--action);padding:4px 0 4px 18px}
.trust b{display:block;font-family:'Archivo';color:var(--sapin);margin-bottom:2px}
.trust span{font-size:.87rem;color:var(--texte-2)}
@media(max-width:860px){.trust{grid-template-columns:1fr}}

/* Formulaire */
.form-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start;padding:56px 0 70px}
@media(max-width:860px){.form-grid{grid-template-columns:1fr}}
.form-box{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r);padding:30px;box-shadow:0 10px 30px rgba(0,0,0,.07)}
.steps{display:flex;gap:6px;margin-bottom:22px}
.steps i{flex:1;height:4px;border-radius:2px;background:var(--ligne)}
.steps i.on{background:var(--action)}
.fstep{display:none}
.fstep.on{display:block}
.fstep h3{font-size:1.1rem;margin-bottom:16px}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opt{border:1.5px solid var(--ligne);border-radius:var(--r);padding:13px 14px;font-size:.9rem;cursor:pointer;background:var(--neige);text-align:left;font-family:inherit;color:var(--texte)}
.opt:hover{border-color:var(--action)}
.opt.sel{border-color:var(--action);background:var(--glacier);font-weight:600;color:var(--sapin)}
label{display:block;font-size:.82rem;font-weight:600;color:var(--sapin);margin:14px 0 5px}
input[type=text],input[type=tel],input[type=email],select{width:100%;padding:12px 14px;border:1.5px solid var(--ligne);border-radius:var(--r);font:inherit;background:var(--neige)}
input:focus,select:focus{outline:2px solid var(--action);outline-offset:1px}
.consent{display:flex;gap:10px;align-items:flex-start;margin-top:16px;font-size:.8rem;color:var(--texte-2)}
.consent input{margin-top:3px;width:16px;height:16px;accent-color:var(--action);flex:none}
.fnav{display:flex;justify-content:space-between;margin-top:24px;gap:10px}
.err{color:var(--croix);font-size:.78rem;margin-top:8px;display:none}
.ok-msg{display:none;text-align:center;padding:24px 8px}

/* Footer */
footer{background:var(--sapin);color:#C8DAD4;padding:52px 0 28px;font-size:.85rem}
.fcols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:32px;margin-bottom:34px}
footer h4{font-family:'Archivo';color:#fff;font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px}
footer a{color:#C8DAD4;text-decoration:none;display:block;padding:3px 0}
footer a:hover{color:#fff}
.transp{background:rgba(255,255,255,.06);border-radius:var(--r);padding:16px 18px;font-size:.78rem;line-height:1.55}
.copy{border-top:1px solid rgba(255,255,255,.15);padding-top:18px;font-size:.75rem;color:#9DB8B0;margin-top:18px}
@media(max-width:860px){.fcols{grid-template-columns:1fr 1fr}}
/* Recadrage des photos (centrage sujet) */
.ph img{object-fit:cover;object-position:center 40%}
.ph-band img{object-position:center 58%}
.ph-hero{height:250px}

/* Barre de recherche */
.search-w{position:relative;margin-left:6px}
.search-w input{width:170px;padding:9px 12px;border:1.5px solid var(--ligne);border-radius:20px;font:inherit;font-size:.82rem;background:var(--neige)}
.search-w input:focus{outline:2px solid var(--action);width:220px;transition:width .15s}
.search-res{position:absolute;top:115%;right:0;width:320px;background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r);box-shadow:0 16px 40px rgba(0,0,0,.14);z-index:90;max-height:340px;overflow:auto;display:none}
.search-res.on{display:block}
.search-res a{display:block;padding:10px 14px;text-decoration:none;color:var(--texte);border-bottom:1px solid var(--ligne);font-size:.86rem}
.search-res a:last-child{border-bottom:none}
.search-res a:hover{background:var(--glacier)}
.search-res a b{color:var(--sapin);font-family:'Archivo';display:block}
.search-res .empty{padding:12px 14px;font-size:.82rem;color:var(--texte-2)}
.nav .btn-p{white-space:nowrap}
/* Compactage progressif de l'en-tête (portables 1200–1400 px) */
@media(max-width:1400px){
  .theme-t{display:none}
  .nav{gap:12px}
  .menu>li>a{padding:22px 8px;font-size:.87rem}
  .search-w input{width:140px}
  .search-w input:focus{width:180px}
}
@media(max-width:1200px){
  .search-w{display:none}
  .logo{font-size:.95rem}
  .nav-right .btn{padding:9px 13px;font-size:.8rem}
}

/* Choix du formulaire */
.chooser{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:780px}
.chooser a.card{text-decoration:none;padding:28px;transition:border-color .15s, transform .1s}
.chooser a.card:hover{border-color:var(--action);transform:translateY(-2px)}
.chooser .pic{font-size:1.6rem}
@media(max-width:720px){.chooser{grid-template-columns:1fr}}

/* Simulateurs */
.sims{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
@media(max-width:900px){.sims{grid-template-columns:1fr}}
.sim-box{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r);padding:26px;box-shadow:0 8px 26px rgba(0,0,0,.05)}
.sim-box h3{font-size:1.1rem;margin-bottom:14px}
.sim-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sim-out{background:var(--glacier);border-radius:var(--r);padding:18px;margin-top:16px;display:none}
.sim-out.on{display:block}
.sim-out .big{font-family:'Archivo';font-weight:800;font-size:1.7rem;color:var(--sapin);letter-spacing:-.02em}
.sim-out .eco{color:var(--action);font-weight:600;font-size:.92rem;margin-top:4px}
.sim-disc{font-size:.72rem;color:var(--texte-2);margin-top:10px;line-height:1.45}

/* Actualités */
.flagduo{display:flex;align-items:center;gap:14px;margin-top:18px}
.flagduo .fl{height:34px;width:auto;border-radius:5px;box-shadow:0 4px 14px rgba(0,0,0,.14)}
.flagduo .arr{font-size:1.25rem;color:var(--texte-2);font-weight:600}
.news-card .date{font-size:.7rem;font-weight:600;color:var(--texte-2);text-transform:uppercase;letter-spacing:.1em}

/* Bandeau cookies */
.cookiebar{position:fixed;bottom:14px;left:14px;right:14px;max-width:600px;margin:0 auto;background:var(--sapin);color:#DCEAE5;border-radius:12px;padding:18px 20px;z-index:300;box-shadow:0 20px 60px rgba(0,0,0,.35);display:none;font-size:.85rem;line-height:1.5}
.cookiebar.on{display:block}
.cookiebar .btns{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap;align-items:center}
.cookiebar button{font-family:'Archivo';font-weight:700;border:none;border-radius:8px;padding:10px 16px;cursor:pointer;font-size:.82rem}
.cookiebar .b-all{background:#fff;color:var(--sapin)}
.cookiebar .b-ess{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.5)}
.cookiebar a{color:#fff}

.page.on{animation:none}
.logo{display:flex;align-items:center;gap:9px}
.lmark{height:24px;width:24px;flex:0 0 auto}
.share{margin:30px auto 0;display:flex;gap:9px;flex-wrap:wrap;align-items:center;font-size:.83rem;color:var(--texte-2)}
.share a{display:inline-block;padding:8px 15px;border:1.5px solid var(--ligne);border-radius:999px;font-weight:600;font-size:.78rem;color:var(--texte);text-decoration:none}
.share a:hover{border-color:var(--sapin);color:var(--sapin)}
.pform{margin:26px auto 6px;background:var(--fond-2);border:1.5px solid var(--ligne);border-radius:16px;padding:26px}
.pform h3{margin:0 0 4px;font-size:1.12rem}
.pform .sub{font-size:.84rem;color:var(--texte-2);margin:0 0 14px}
.pform .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:4px}
.pform input[type=text],.pform input[type=tel],.pform input[type=email]{width:100%;padding:11px 12px;border:1.5px solid var(--ligne);border-radius:9px;font:inherit;background:var(--fond)}
.pform label.ck{display:flex;gap:8px;font-size:.78rem;color:var(--texte-2);margin:10px 0 12px;align-items:flex-start}
.pform .ok2,.pform .er2{display:none;margin-top:10px;font-weight:600}
.pform .ok2{color:var(--sapin);display:none}
.pform .er2{color:#C0392B}
.share{flex-direction:column;align-items:flex-start;gap:10px}
.sh-t{font-weight:700;color:var(--texte);font-size:.9rem}
.sh-btns{display:flex;gap:9px;flex-wrap:wrap}
.share a.sh{color:#fff;border:none;padding:10px 18px;font-size:.82rem;border-radius:999px;box-shadow:0 3px 10px rgba(0,0,0,.12)}
.sh-wa{background:#25D366}.sh-li{background:#0A66C2}.sh-fb{background:#1877F2}.sh-x{background:#111}.sh-em{background:var(--sapin)}
.share a.sh:hover{opacity:.85;color:#fff}
.lawref{margin:26px auto 0;font-size:.84rem;color:var(--texte-2);background:var(--fond-2);border-left:3px solid var(--sapin);padding:12px 16px;border-radius:0 10px 10px 0}
.lawref a{font-weight:600}
.lawref .src{opacity:.7}
.chnote{margin-top:20px;padding-top:14px;border-top:1px solid rgba(255,255,255,.18);font-size:.79rem;opacity:.85;display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.lang-t{display:flex;gap:2px;align-items:center}
.lang-t a{padding:6px 9px;border-radius:7px;font-size:.72rem;font-weight:700;color:var(--texte-2);text-decoration:none;letter-spacing:.03em}
.lang-t a.on{background:var(--sapin);color:#fff}
.lang-t a:hover:not(.on){background:var(--fond-2)}
