*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--pap);color:var(--enc);font-size:17px;line-height:1.55;
 font-family:'Inter','Helvetica Neue',Arial,sans-serif;overflow-x:hidden;
 -webkit-font-smoothing:antialiased}
a{color:inherit}
img,svg{max-width:100%;height:auto}
h1,h2,h3{margin:0;font-family:'Archivo',Impact,'Haettenschweiler',sans-serif;font-weight:800;
 text-transform:uppercase;letter-spacing:-.028em;line-height:.9}
h1{font-size:clamp(3.2rem,11.5vw,10rem)}
h2{font-size:clamp(2rem,6vw,4.6rem)}
h3{font-size:1.02rem;letter-spacing:.01em;text-transform:none;line-height:1.25}
p{margin:0 0 1rem}

/* ---------- la grille se voit : la page est tenue par des filets */
.g{max-width:1400px;margin-inline:auto;border-inline:1px solid var(--fil)}
.bande{border-bottom:1px solid var(--fil)}
.pad{padding:clamp(1.4rem,3.2vw,2.6rem)}
.num{font-family:'Archivo',sans-serif;font-weight:800;font-size:.78rem;letter-spacing:.18em;
 display:block;margin-bottom:1.1rem}
.num i{font-style:normal;color:var(--acc)}

/* ---------- en-tête : un bandeau plat, aucune transparence */
header{position:sticky;top:0;z-index:70;background:var(--pap);border-bottom:1px solid var(--fil)}
header .in{display:flex;align-items:stretch}
header .mq{flex:1;display:flex;align-items:center;padding:0 clamp(1rem,2.4vw,2rem);
 font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;font-size:1.05rem;
 letter-spacing:-.01em;text-decoration:none;border-right:1px solid var(--fil)}
header nav{display:flex}
header nav a{display:flex;align-items:center;padding:1.15rem clamp(.8rem,1.6vw,1.4rem);
 text-decoration:none;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;
 font-weight:700;border-right:1px solid var(--fil)}
header nav a:hover{background:var(--enc);color:var(--pap)}
header .app{display:flex;align-items:center;padding:0 clamp(1rem,2vw,1.6rem);background:var(--acc);
 color:#fff;text-decoration:none;font-weight:800;white-space:nowrap;font-size:.98rem}
@media(max-width:900px){header nav{display:none}}

/* ---------- ouverture : le titre occupe l'écran, rien d'autre */
.ouv{padding:clamp(2rem,5vw,4.4rem) clamp(1.4rem,3.2vw,2.6rem) clamp(1.6rem,3vw,2.4rem)}
.ouv h1 span{display:block;overflow:hidden}
.ouv h1 span i{display:block;font-style:normal;transform:translateY(105%);
 animation:monte .9s cubic-bezier(.16,.84,.3,1) forwards}
.ouv h1 span:nth-child(2) i{animation-delay:.09s}
.ouv h1 span:nth-child(3) i{animation-delay:.18s}
.ouv h1 .acc{color:var(--acc)}
@keyframes monte{to{transform:none}}
.sous{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.2rem,3vw,3rem);
 margin-top:clamp(1.6rem,3vw,2.6rem);align-items:end}
@media(max-width:820px){.sous{grid-template-columns:1fr}}
.sous p{font-size:clamp(1.02rem,1.5vw,1.22rem);max-width:58ch;margin:0}
.actions{display:flex;flex-wrap:wrap;gap:0}
.bt{display:inline-flex;align-items:center;gap:.6rem;padding:1rem 1.7rem;text-decoration:none;
 font-weight:800;font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;
 background:var(--enc);color:var(--pap);border:1px solid var(--enc)}
.bt:hover{background:var(--acc);border-color:var(--acc);color:#fff}
.bt.b2{background:transparent;color:var(--enc);border-left:0}
.bt.b2:hover{background:var(--enc);color:var(--pap)}

/* ---------- bandeau typographique */
.def{border-block:1px solid var(--fil);overflow:hidden;padding:.7rem 0;background:var(--enc);
 color:var(--pap)}
.def ul{display:flex;gap:2.6rem;margin:0;padding:0;list-style:none;width:max-content;
 animation:file 34s linear infinite;font-family:'Archivo',sans-serif;font-weight:800;
 text-transform:uppercase;font-size:1.15rem;letter-spacing:-.01em}
.def li::after{content:" ／";color:var(--acc)}
@keyframes file{to{transform:translateX(-50%)}}

/* ---------- rubriques : titre collé à gauche, contenu qui défile à droite */
.rub{display:grid;grid-template-columns:minmax(230px,26%) 1fr}
@media(max-width:900px){.rub{grid-template-columns:1fr}}
.rub .tit{border-right:1px solid var(--fil);padding:clamp(1.4rem,3vw,2.4rem)}
@media(min-width:901px){.rub .tit{position:sticky;top:57px;align-self:start;height:max-content}}
.rub .cnt{min-width:0}

/* ---------- lignes de prestations : inversion au survol, aucune carte */
.lig{display:grid;grid-template-columns:4.2rem 1fr;border-bottom:1px solid var(--fil);
 transition:background .18s,color .18s}
.lig:hover{background:var(--enc);color:var(--pap)}
.lig:hover .ic{color:var(--acc)}
.lig:hover .det{color:var(--pap);opacity:.72}
.lig .ix{padding:1.3rem 0 1.3rem 1.2rem;font-family:'Archivo',sans-serif;font-weight:800;
 font-size:.82rem;color:var(--acc)}
.lig .co{padding:1.3rem 1.4rem 1.5rem 0}
.lig h3{font-family:'Archivo',sans-serif;text-transform:uppercase;font-size:clamp(1.1rem,2.1vw,1.7rem);
 letter-spacing:-.02em;margin-bottom:.35rem}
.lig .det{color:var(--gris);font-size:.96rem;max-width:70ch}
.lig ul{margin:.7rem 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:.35rem .9rem;
 font-size:.86rem;color:var(--gris)}
.lig li::before{content:"— "}
.lig .ic{display:block;width:30px;height:30px;color:var(--enc);margin-bottom:.7rem}
.lig .ic svg{display:block;width:100%;height:100%}
.pad svg{display:block;width:100%;height:auto;max-height:420px}

/* ---------- étapes en colonnes séparées par des filets */
.et{display:grid;grid-template-columns:repeat(3,1fr)}
@media(max-width:820px){.et{grid-template-columns:1fr}}
.et > div{padding:clamp(1.3rem,2.6vw,2rem);border-right:1px solid var(--fil)}
.et > div:last-child{border-right:0}
.et b{font-family:'Archivo',sans-serif;font-size:2.6rem;color:var(--acc);display:block;
 line-height:1;margin-bottom:.7rem}
.et h3{font-family:'Archivo',sans-serif;text-transform:uppercase;font-size:1.12rem;margin-bottom:.4rem}
.et p{color:var(--gris);font-size:.95rem;margin:0}

/* ---------- secteur : un tableau, pas des pastilles */
table{width:100%;border-collapse:collapse;font-size:.98rem}
th,td{text-align:left;padding:.85rem 1.2rem;border-bottom:1px solid var(--fil)}
th{font-family:'Archivo',sans-serif;text-transform:uppercase;font-size:.74rem;letter-spacing:.14em;
 color:var(--gris);font-weight:800}
td a{text-decoration:none;font-weight:700}
tr:hover td{background:var(--enc);color:var(--pap)}
tr:hover td a{color:var(--pap)}
td.km{font-variant-numeric:tabular-nums;color:var(--gris);width:7rem}
tr:hover td.km{color:var(--pap);opacity:.7}

/* ---------- questions */
details{border-bottom:1px solid var(--fil)}
summary{cursor:pointer;list-style:none;padding:1.15rem 1.3rem;font-weight:700;display:flex;
 justify-content:space-between;gap:1rem}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-family:'Archivo',sans-serif;color:var(--acc);font-size:1.3rem}
details[open] summary::after{content:"–"}
details p{padding:0 1.3rem 1.3rem;color:var(--gris);margin:0;max-width:78ch}

/* ---------- demande : deux colonnes, champs carrés, filets */
.dem{display:grid;grid-template-columns:1fr 1fr}
@media(max-width:820px){.dem{grid-template-columns:1fr}}
.dem .gauche{padding:clamp(1.4rem,3vw,2.6rem);border-right:1px solid var(--fil)}
.dem form{display:grid}
.dem label{display:grid;border-bottom:1px solid var(--fil);padding:.85rem 1.2rem;
 font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--gris)}
.dem input,.dem textarea{font:inherit;font-size:1rem;border:0;background:transparent;
 padding:.35rem 0 0;color:var(--enc);width:100%}
.dem input:focus,.dem textarea:focus{outline:0}
.dem label:focus-within{background:#fff}
.dem textarea{min-height:96px;resize:vertical}
.dem .duo{display:grid;grid-template-columns:1fr 1fr}
.dem .duo label:first-child{border-right:1px solid var(--fil)}
.dem button{font:inherit;cursor:pointer;padding:1.15rem;background:var(--acc);color:#fff;border:0;
 font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.dem button:hover{background:var(--enc)}
.miel{position:absolute;left:-9999px}
.merci{display:none;padding:1.2rem;background:var(--acc);color:#fff;font-weight:800}

/* ---------- pied */
footer{border-top:1px solid var(--fil);font-size:.88rem;color:var(--gris)}
footer .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr}
@media(max-width:760px){footer .cols{grid-template-columns:1fr}}
footer .cols > div{padding:clamp(1.2rem,2.4vw,2rem);border-right:1px solid var(--fil)}
footer .cols > div:last-child{border-right:0}
footer b{color:var(--enc);display:block;font-family:'Archivo',sans-serif;text-transform:uppercase;
 font-size:.76rem;letter-spacing:.14em;margin-bottom:.7rem}
footer a{text-decoration:none;display:block;padding:.16rem 0}
footer a:hover{color:var(--acc)}
.bas{padding:1rem clamp(1.2rem,2.4vw,2rem);border-top:1px solid var(--fil);font-size:.8rem}

/* ---------- effets : décalage au défilement, révélation par masque */
.dec{will-change:transform}
html.js .rev{opacity:.06;transform:translateY(16px);
 transition:opacity .7s cubic-bezier(.16,.84,.3,1),transform .7s cubic-bezier(.16,.84,.3,1)}
html.js .rev.vu{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
 html.js .rev{opacity:1;transform:none;transition:none}
 .ouv h1 span i{transform:none;animation:none}
 .def ul{animation:none}
 .dec{transform:none!important}}
