/* Déménagement Débarras — feuille de style principale */
@font-face{font-family:"Young Serif";src:url("../fonts/young-serif-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url("../fonts/hanken-grotesk-var.woff2") format("woff2-variations"),url("../fonts/hanken-grotesk-var.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --blanc:#fff;
  --gris:#F4F2EF;
  --encre:#20252B;
  --encre-2:#4A5058;
  --bordeaux:#730D2A;
  --bordeaux-2:#560A20;
  --carton:#A88B65;
  --carton-txt:#76603F;
  --kraft:#EADCC6;
  --kraft-2:#D3BD99;
  --trait:#E3DED7;
  --erreur:#B3261E;
  --serif:"Young Serif",Georgia,"Times New Roman",serif;
  --sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --max:1240px;
  --bar:0px;
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-padding-top:100px}
body{margin:0;font-family:var(--sans);font-size:1.0625rem;line-height:1.6;color:var(--encre);background:var(--blanc);padding-bottom:var(--bar)}
img{max-width:100%;height:auto;display:block}
.ic{display:inline-block;width:1.25em;height:1.25em;flex:none;vertical-align:middle}
a{color:var(--bordeaux);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--bordeaux-2)}
:focus-visible{outline:3px solid var(--bordeaux);outline-offset:2px}
h1,h2{font-family:var(--serif);font-weight:400;line-height:1.1;letter-spacing:-.01em;margin:0 0 .5em;color:var(--encre)}
h1{font-size:clamp(1.8rem,1rem + 3.6vw,3.5rem)}
h2{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.35rem)}
h3{font-weight:700;font-size:1.18rem;line-height:1.3;margin:0 0 .45em}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em}
strong{font-weight:700}
.wrap{max-width:var(--max);margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:#fff;color:var(--bordeaux);padding:.75rem 1rem;font-weight:700}
.skip:focus{left:1rem;top:1rem}
.nb{white-space:nowrap}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;padding:.7rem 1.3rem;border-radius:6px;border:2px solid transparent;font:inherit;font-weight:700;font-size:1rem;line-height:1.2;text-decoration:none;cursor:pointer;text-align:center}
.btn-p{background:var(--bordeaux);color:#fff}
.btn-p:hover{background:var(--bordeaux-2);color:#fff}
.btn-s{background:#fff;color:var(--encre);border-color:var(--encre)}
.btn-s:hover{background:var(--encre);color:#fff}
.btn-lien{background:none;border:0;color:var(--encre-2);font-weight:600;padding-left:0;padding-right:0;text-decoration:underline;text-underline-offset:3px}
.btn-lien:hover{color:var(--encre)}
.btn[disabled]{opacity:.6;cursor:wait}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1.5rem}

/* En-tête */
.site-header{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--trait)}
.hd{display:flex;align-items:center;gap:1.25rem;min-height:78px;flex-wrap:wrap}
.logo{display:block;flex:none;padding:.5rem 0}
.logo img{width:172px;height:auto}
.nav{margin-left:auto}
.nav ul{display:flex;gap:1.35rem;list-style:none;margin:0;padding:0}
.nav a{display:block;color:var(--encre);text-decoration:none;font-weight:600;font-size:.98rem;padding:.35rem 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--carton)}
.hd-tel{display:inline-flex;align-items:center;gap:.45rem;color:var(--encre);font-weight:700;text-decoration:none;white-space:nowrap}
.hd-tel .ic{color:var(--bordeaux)}
.hd-tel:hover{color:var(--bordeaux)}
.menu-btn{display:none;align-items:center;justify-content:center;width:48px;height:48px;border:1.5px solid var(--trait);border-radius:6px;background:#fff;color:var(--encre);cursor:pointer}
.menu-btn .ic{width:24px;height:24px}

@media (max-width:1180px){
  .menu-btn{display:inline-flex}
  .nav{order:10;width:100%;margin:0}
  .nav ul{flex-wrap:wrap;gap:.25rem 1.25rem;padding:.25rem 0 1rem}
  .js .nav{display:none}
  .js .site-header.ouvert .nav{display:block}
  .js .site-header.ouvert .nav ul{flex-direction:column;gap:0;padding:.5rem 0 1.25rem}
  .js .site-header.ouvert .nav a{padding:.85rem 0;border-bottom:1px solid var(--trait);font-size:1.05rem}
  .hd-tel{margin-left:auto}
}
@media (max-width:640px){
  .hd{min-height:68px;gap:.75rem}
  .logo img{width:150px}
  .hd-tel,.hd-cta{display:none}
  .menu-btn{margin-left:auto}
}

/* Barre mobile */
.mbar{display:none}
@media (max-width:760px){
  body{--bar:72px}
  body.sans-barre{--bar:0px}
  .mbar{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;position:fixed;left:0;right:0;bottom:0;z-index:70;padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--trait);box-shadow:0 -6px 18px -12px rgba(32,37,43,.35)}
  .mbar .btn{min-height:50px;width:100%}
  body.sans-barre .mbar{display:none}
}

/* Accueil : premier écran */
.hero{padding-top:clamp(2.25rem,5vw,4.5rem)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.hero h1{max-width:17ch;margin-bottom:.45em}
.lead{font-size:clamp(1.1rem,1rem + .4vw,1.28rem);line-height:1.55;color:var(--encre-2);max-width:40ch}
.petit{font-size:.94rem;color:var(--encre-2)}

/* Étiquette carton : demande de devis */
.etiquette{position:relative;background:var(--kraft);border:1px solid var(--kraft-2);border-radius:10px;padding:1.4rem 1.4rem 1.5rem;box-shadow:0 1px 0 rgba(32,37,43,.05),0 22px 40px -26px rgba(96,64,30,.55)}
.etiquette::before{content:"";position:absolute;top:18px;right:18px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 3px var(--kraft-2)}
.etq-tete{display:flex;align-items:center;gap:.7rem;padding:0 1.5rem 1rem 0;margin-bottom:1.1rem;border-bottom:2px dashed rgba(118,96,63,.45)}
.etq-tete img{width:38px;height:38px}
.etq-titre{font-family:var(--serif);font-weight:400;font-size:1.45rem;line-height:1.15;margin:0}
.etq-sous{display:block;font-family:var(--sans);font-size:.9rem;color:var(--carton-txt);font-weight:600}
.etiquette fieldset{border:0;padding:0;margin:0 0 1.1rem;min-width:0}
.etiquette legend,.etiquette label.lbl{display:block;font-weight:700;margin-bottom:.5rem;padding:0}
.etiquette select{width:100%}
.etiquette .btn{width:100%}
.etiquette p.petit{margin:.85rem 0 0;color:#5E4C33}
.hero .etiquette{animation:pose .7s cubic-bezier(.2,.75,.25,1) .1s both}
@keyframes pose{from{opacity:0;transform:translateY(16px) rotate(-1.4deg)}to{opacity:1;transform:none}}

.tuiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
.tuile{position:relative;display:block}
.tuile input{position:absolute;opacity:0;width:1px;height:1px}
.tuile span{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;min-height:92px;padding:.75rem .4rem;background:#fff;border:1.5px solid #CDB894;border-radius:8px;text-align:center;font-weight:650;font-size:.93rem;line-height:1.2;cursor:pointer}
.tuile span .ic{width:28px;height:28px;color:var(--carton-txt)}
.tuile input:checked + span{border-color:var(--bordeaux);box-shadow:inset 0 0 0 1.5px var(--bordeaux);color:var(--bordeaux)}
.tuile input:checked + span .ic{color:var(--bordeaux)}
.tuile input:focus-visible + span{outline:3px solid var(--bordeaux);outline-offset:2px}

/* Tracé des communes */
.trace{margin-top:clamp(2.5rem,5vw,3.75rem);padding-top:1.75rem;padding-bottom:2.25rem;border-top:1px solid var(--trait)}
.trace-titre{font-size:.95rem;color:var(--encre-2);margin:0 0 1.25rem;font-weight:600}
.trace ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));position:relative}
.trace ol::before{content:"";position:absolute;left:calc(50% / var(--n,4));right:calc(50% / var(--n,4));top:9px;height:2px;background:repeating-linear-gradient(90deg,var(--carton) 0 10px,transparent 10px 17px)}
.trace li{text-align:center;position:relative}
.trace li::before{content:"";display:block;width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid var(--bordeaux);margin:0 auto .7rem;position:relative;z-index:1}
.trace a{font-family:var(--serif);font-size:1.2rem;color:var(--encre);text-decoration:none;line-height:1.2}
.trace a:hover{color:var(--bordeaux);text-decoration:underline}
.trace .cp{display:block;font-size:.88rem;color:var(--encre-2);margin-top:.2rem}
.trace-2{margin-top:2rem!important}
.trace .trace-note a{font-family:var(--sans);font-size:inherit;font-weight:700;color:var(--bordeaux);text-decoration:underline}
.trace-note{margin:1.75rem 0 0;text-align:center;font-size:.94rem;color:var(--encre-2)}
@media (max-width:640px){
  .trace ol{grid-template-columns:1fr;gap:1rem;padding-left:.25rem}
  .trace ol::before{left:9px;right:auto;top:10px;bottom:10px;width:2px;height:auto;background:repeating-linear-gradient(180deg,var(--carton) 0 8px,transparent 8px 14px)}
  .trace li{text-align:left;display:flex;align-items:center;gap:1rem}
  .trace li::before{margin:0}
  .trace-note{text-align:left}
}

/* Sections */
.section{padding-top:clamp(3rem,7vw,5.5rem);padding-bottom:clamp(3rem,7vw,5.5rem)}
.section.gris{background:var(--gris)}
.tete-section{max-width:44rem;margin-bottom:2.25rem}
.tete-section p{color:var(--encre-2);font-size:1.1rem}

.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.trio>article{padding:0 2rem;border-left:1px solid var(--trait)}
.trio>article:first-child{padding-left:0;border-left:0}
.trio>article:last-child{padding-right:0}
.trio .ic-g{width:46px;height:46px;color:var(--bordeaux);margin-bottom:1rem}
.trio h3{font-family:var(--serif);font-weight:400;font-size:1.65rem;margin-bottom:.5rem}
.coches{list-style:none;padding:0;margin:1rem 0 1.4rem}
.coches li{position:relative;padding-left:1.6rem;margin:.5rem 0}
.coches li::before{content:"";position:absolute;left:.1rem;top:.5em;width:.8rem;height:.42rem;border-left:2px solid var(--carton-txt);border-bottom:2px solid var(--carton-txt);transform:rotate(-45deg)}
.liens{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;font-weight:700}

.etapes{counter-reset:e;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.5rem}
.etapes li{counter-increment:e;border-top:3px solid var(--bordeaux);padding-top:1rem}
.etapes li::before{content:counter(e);display:block;font-family:var(--serif);font-size:2.3rem;line-height:1;color:var(--carton-txt);margin-bottom:.6rem}
.etapes h3{font-size:1.06rem}
.etapes p{font-size:.98rem;color:var(--encre-2);margin:0}

.engagements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 3.5rem}
.engagements>div{border-left:3px solid var(--carton);padding-left:1.25rem}
.engagements p{color:var(--encre-2);margin:0}

.secteurs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 3rem}
.secteurs h3{font-family:var(--serif);font-weight:400;font-size:1.5rem}
.texte h3+.voisines{margin-top:.5rem}
.communes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;list-style:none;padding:0;margin:0}
.communes a{display:block;height:100%;padding:1.25rem 1.25rem 1.35rem;background:#fff;border:1px solid var(--trait);border-radius:8px;color:var(--encre);text-decoration:none}
.communes a:hover{border-color:var(--bordeaux)}
.communes strong{display:block;font-family:var(--serif);font-weight:400;font-size:1.35rem;line-height:1.2;margin-bottom:.35rem}
.communes span{display:block;font-size:.96rem;color:var(--encre-2)}

.bande-pro{display:grid;grid-template-columns:minmax(0,1.3fr) auto;gap:2rem;align-items:center;padding:2rem 2.25rem;border:1px solid var(--trait);border-left:6px solid var(--bordeaux);border-radius:8px;background:#fff}
.bande-pro h2{font-size:clamp(1.4rem,1.2rem + 1vw,1.85rem);margin-bottom:.35rem}
.bande-pro p{margin:0;color:var(--encre-2)}

.faq{max-width:52rem}
.faq details{border-bottom:1px solid var(--trait);padding:1.05rem 0}
.faq details:first-of-type{border-top:1px solid var(--trait)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;font-weight:700;font-size:1.06rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;font-family:var(--serif);font-size:1.5rem;line-height:1;color:var(--bordeaux)}
.faq details[open] summary::after{content:"\2013"}
.faq details p{margin:.75rem 0 0;color:var(--encre-2);max-width:68ch}

.cta-final{background:var(--bordeaux);color:#fff;padding-top:clamp(3rem,6vw,4.75rem);padding-bottom:clamp(3rem,6vw,4.75rem)}
.cta-final h2{color:#fff;max-width:22ch}
.cta-final p{color:#F2E4E8;max-width:52ch;font-size:1.1rem}
.cta-final .btn-p{background:#fff;color:var(--bordeaux)}
.cta-final .btn-p:hover{background:var(--kraft);color:var(--bordeaux-2)}
.cta-final .btn-s{background:transparent;color:#fff;border-color:#fff}
.cta-final .btn-s:hover{background:#fff;color:var(--bordeaux)}

/* Pages intérieures */
.tete-page{padding-top:clamp(1.5rem,4vw,2.75rem);padding-bottom:clamp(2rem,4vw,3rem);border-bottom:1px solid var(--trait)}
.ariane ol{list-style:none;display:flex;flex-wrap:wrap;gap:.25rem .5rem;margin:0 0 1.25rem;padding:0;font-size:.9rem;color:var(--encre-2)}
.ariane li+li::before{content:"/";margin-right:.5rem;color:var(--carton)}
.ariane a{color:var(--encre-2)}
.tete-page h1{max-width:24ch}
.tete-page .lead{max-width:62ch}

.mise-en-page{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:clamp(2rem,5vw,4.5rem);padding-top:clamp(2.5rem,5vw,4rem);padding-bottom:clamp(3rem,6vw,5rem)}
.texte{max-width:46rem}
.texte h2{font-size:clamp(1.45rem,1.2rem + 1vw,1.95rem);margin-top:2.4rem}
.texte h2:first-child{margin-top:0}
.texte h3{margin-top:1.6rem}
.texte ul,.texte ol{padding-left:1.25rem}
.texte li{margin:.4rem 0}
.texte .voisines,.texte .communes,.texte .articles{padding-left:0}
.texte .voisines li,.texte .articles li{margin:0}
.texte .faq{margin-top:1rem}
.colonne{position:sticky;top:104px;align-self:start}
.colonne .etiquette .btn+.btn{margin-top:.6rem}
.colonne .etiquette p{margin:0 0 1rem}

.encart{background:var(--gris);border-left:3px solid var(--carton);padding:1rem 1.25rem;border-radius:0 6px 6px 0;margin:1.5rem 0}
.encart p:last-child{margin:0}
.encart.alerte{background:#FBF1E6;border-left-color:#9A5A12}

.tableau{overflow-x:auto;margin:1.25rem 0 1.5rem}
.tableau table{width:100%;border-collapse:collapse;font-size:.98rem;min-width:520px}
.tableau th,.tableau td{text-align:left;vertical-align:top;padding:.7rem .8rem;border-bottom:1px solid var(--trait)}
.tableau thead th{border-bottom:2px solid var(--encre);font-weight:700}
.tableau td ul{margin:0;padding-left:1.1rem}

.def{display:grid;grid-template-columns:minmax(150px,30%) 1fr;gap:.5rem 1.25rem;margin:1rem 0 1.5rem}
.def dt{font-weight:700}
.def dd{margin:0;color:var(--encre-2)}

.voisines{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;padding:0;margin:1rem 0 0}
.voisines a{display:inline-block;padding:.5rem .9rem;border:1px solid var(--trait);border-radius:999px;text-decoration:none;color:var(--encre);font-weight:600}
.voisines a:hover{border-color:var(--bordeaux);color:var(--bordeaux)}

.articles{list-style:none;padding:0;margin:0;display:grid;gap:0}
.articles li{border-top:1px solid var(--trait);padding:1.5rem 0}
.articles li:last-child{border-bottom:1px solid var(--trait)}
.articles h2{font-size:clamp(1.35rem,1.15rem + .8vw,1.7rem);margin:0 0 .4rem}
.articles h2 a{color:var(--encre);text-decoration:none}
.articles h2 a:hover{color:var(--bordeaux);text-decoration:underline}
.articles p{margin:0;color:var(--encre-2)}
.date-maj{font-size:.92rem;color:var(--encre-2)}

.tel-geant{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--serif);font-size:clamp(1.8rem,1.3rem + 2vw,2.6rem);color:var(--bordeaux);text-decoration:none;line-height:1.1}
.tel-geant .ic{width:.8em;height:.8em}

/* Pied de page */
.site-footer{background:var(--encre);color:#CDD1D6;padding-top:3.5rem;padding-bottom:2rem;font-size:.97rem}
.pied{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.25rem}
.site-footer h2{font-family:var(--sans);font-size:1rem;font-weight:700;color:#fff;margin:0 0 .85rem;letter-spacing:0}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin:.4rem 0}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.pied-logo{width:190px;margin-bottom:1rem}
.pied-tel{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--serif);font-size:1.5rem;margin:.25rem 0 .75rem}
.mentions{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;border-top:1px solid #3A4149;margin-top:2.75rem;padding-top:1.25rem;font-size:.88rem;color:#B5BBC2}
.mentions a{color:#E3E6E9}

/* Formulaire de devis */
.devis-page{padding-top:clamp(2rem,4vw,3rem);padding-bottom:clamp(3rem,6vw,5rem)}
.devis-grille{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(2rem,5vw,4rem)}
.formulaire{max-width:780px}
.progression ol{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin:0 0 2rem;padding:0;counter-reset:p}
.progression li{counter-increment:p;padding-top:.6rem;border-top:4px solid var(--trait);font-size:.9rem;font-weight:600;color:var(--encre-2);line-height:1.3}
.progression li::before{content:counter(p) ". "}
.progression li.fait{border-top-color:var(--carton)}
.progression li[aria-current="step"]{border-top-color:var(--bordeaux);color:var(--bordeaux)}
.no-js .progression{display:none}
.etape{border:0;margin:0 0 2.5rem;padding:0;min-width:0}
.js .etape{display:none}
.js .etape.active{display:block}
.etape-titre{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,1.25rem + 1vw,2rem);margin:0 0 1.25rem;padding:0}
.etape-titre:focus{outline:none}
.champ{margin:0 0 1.35rem}
.champ>label:not(.option),.champ>.lbl,fieldset.champ>legend{display:block;font-weight:700;margin-bottom:.4rem;padding:0}
fieldset.champ{border:0;padding:0;min-width:0}
.facultatif{font-weight:400;color:var(--encre-2)}
.aide{display:block;font-size:.92rem;color:var(--encre-2);margin:-.15rem 0 .5rem;font-weight:400}
input[type=text],input[type=tel],input[type=email],input[type=number],input[type=date],input[type=password],select,textarea{width:100%;min-height:48px;padding:.65rem .8rem;font:inherit;font-size:1rem;color:var(--encre);background:#fff;border:1.5px solid #AEB4BB;border-radius:6px}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%2320252B' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center;padding-right:2.4rem}
textarea{min-height:150px;resize:vertical;line-height:1.5}
input:focus,select:focus,textarea:focus{border-color:var(--bordeaux);outline:3px solid rgba(115,13,42,.2);outline-offset:0}
[aria-invalid="true"]{border-color:var(--erreur)!important}
.erreur{display:block;color:var(--erreur);font-size:.93rem;font-weight:600;margin-top:.4rem}
.erreur:empty{display:none}
.choix{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.5rem}
.choix.ligne{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.option{display:flex;gap:.65rem;align-items:flex-start;padding:.75rem .85rem;background:#fff;border:1.5px solid #CDD1D6;border-radius:6px;cursor:pointer;line-height:1.35}
.option input{flex:none;width:19px;height:19px;margin:.08rem 0 0;accent-color:var(--bordeaux)}
.option:has(input:checked){border-color:var(--bordeaux);background:#FBF4F6}
.option:has(input:focus-visible){outline:3px solid var(--bordeaux);outline-offset:2px}
.deux{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem}
.trois{display:grid;grid-template-columns:2fr 1fr;gap:0 1rem}
.bloc{border:1px solid var(--trait);border-radius:8px;padding:1.4rem 1.4rem .4rem;margin:0 0 1.5rem}
.bloc>h3{display:flex;align-items:center;gap:.6rem;font-family:var(--serif);font-weight:400;font-size:1.45rem;margin:0 0 1.1rem}
.bloc>h3 .ic{width:30px;height:30px;color:var(--bordeaux)}
.sous-titre{font-weight:700;font-size:1rem;margin:.25rem 0 .75rem;color:var(--carton-txt)}
.message{border-radius:6px;padding:.85rem 1rem;margin:.5rem 0 1rem;font-size:.97rem;border-left:4px solid}
.message.ok{background:#EEF6F1;border-color:#2C7A4B}
.message.info{background:#F3F1EC;border-color:var(--carton)}
.message.alerte{background:#FBF1E6;border-color:#9A5A12}
.message[hidden]{display:none}
.depot{border:2px dashed #C6B08A;border-radius:8px;padding:1.5rem 1rem;text-align:center;background:#FCFAF6}
.depot .ic{width:34px;height:34px;color:var(--carton-txt);margin:0 auto .5rem;display:block}
.depot input[type=file]{display:block;margin:.75rem auto 0;max-width:100%}
.js .depot input[type=file]{position:absolute;width:1px;height:1px;opacity:0}
.depot-btn{display:none}
.js .depot-btn{display:inline-flex}
.vignettes{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.6rem;margin:1rem 0 0;padding:0}
.vignettes li{position:relative}
.vignettes img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;background:var(--gris)}
.vignettes button{position:absolute;top:5px;right:5px;width:32px;height:32px;border-radius:50%;border:0;background:rgba(32,37,43,.85);color:#fff;font-size:1.1rem;line-height:1;cursor:pointer}
.compteur{display:block;text-align:right;font-size:.88rem;color:var(--encre-2);margin-top:.3rem}
.recap{background:var(--gris);border-radius:8px;padding:1.25rem 1.35rem;margin:0 0 1.5rem}
.recap h3{margin-bottom:.75rem}
.recap dl{display:grid;grid-template-columns:minmax(130px,34%) 1fr;gap:.35rem 1rem;margin:0;font-size:.97rem}
.recap dt{font-weight:700}
.recap dd{margin:0;color:var(--encre-2);overflow-wrap:anywhere}
.notice{font-size:.93rem;color:var(--encre-2);border-top:1px solid var(--trait);padding-top:1rem;margin-top:1rem}
.nav-etapes{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid var(--trait)}
.no-js .nav-etapes [data-suivant],.no-js .nav-etapes [data-precedent]{display:none}
.envoi-statut{margin-top:1rem;font-weight:600}
.envoi-statut.erreur-globale{color:var(--erreur)}
.pot-de-miel{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

/* Responsive */
@media (max-width:1000px){
  .hero-grid,.mise-en-page,.devis-grille{grid-template-columns:1fr}
  .colonne{position:static}
  .trio{grid-template-columns:1fr;gap:2.25rem}
  .trio>article{padding:2rem 0 0;border-left:0;border-top:1px solid var(--trait)}
  .trio>article:first-child{padding-top:0;border-top:0}
  .etapes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .communes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pied{grid-template-columns:1fr 1fr}
  .bande-pro{grid-template-columns:1fr}
  .devis-grille aside{order:2}
}
@media (max-width:640px){
  .etapes,.engagements,.communes,.deux,.trois,.secteurs{grid-template-columns:1fr}
  .pied{grid-template-columns:1fr}
  .def{grid-template-columns:1fr}
  .def dd{margin-bottom:.6rem}
  .recap dl{grid-template-columns:1fr}
  .champ>.lbl[aria-hidden="true"]{display:none}
  .recap dd{margin-bottom:.4rem}
  .tuile span{min-height:84px;font-size:.88rem}
  .progression li{font-size:0;}
  .progression li::before{font-size:.95rem}
  .progression li[aria-current="step"]{font-size:.85rem}
  .bloc{padding:1.1rem 1rem .25rem}
  .bande-pro{padding:1.5rem}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print{
  .site-header,.mbar,.site-footer,.colonne,.cta-final{display:none}
}
