/* 3d-vendee.com, refonte du 26/10/2026. Encre, papier chaud, filament orange. */
@font-face{font-family:Sora;src:url(/assets/fonts/sora-var-latin.woff2) format("woff2");font-weight:100 800;font-display:swap}
@font-face{font-family:Manrope;src:url(/assets/fonts/manrope-var-latin.woff2) format("woff2");font-weight:200 800;font-display:swap}
:root{--encre:#14171c;--encre2:#232831;--papier:#f5f2eb;--papier2:#ebe6db;--trait:#d9d2c3;--fil:#e8590c;--fil2:#ff8a3d;--gris:#5c6370;--rayon:18px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papier);color:var(--encre);font:400 17px/1.65 Manrope,system-ui,sans-serif;overflow-x:hidden}
h1,h2,h3{font-family:Sora,system-ui,sans-serif;line-height:1.1;letter-spacing:-.02em;margin:0 0 .6em}
h1{font-size:clamp(2.3rem,5.2vw,4.4rem);font-weight:700}
h1 em{font-style:normal;color:var(--fil)}
h2{font-size:clamp(1.8rem,3.4vw,2.8rem);font-weight:650}
h3{font-size:1.2rem;font-weight:650}
p{margin:0 0 1em}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
.cadre{width:min(1180px,100% - 40px);margin-inline:auto}
.etroit{width:min(820px,100% - 40px)}
.saut{position:absolute;left:-999px;top:8px;background:var(--fil);color:#fff;padding:8px 14px;border-radius:8px;z-index:99}
.saut:focus{left:8px}
:focus-visible{outline:3px solid var(--fil);outline-offset:3px}
.sur{font:600 .78rem/1 Sora,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--fil);margin-bottom:1.1em}
.chapo{font-size:1.15rem;color:var(--gris);max-width:58ch}
.bouton{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border-radius:999px;background:var(--fil);color:#fff;font:600 1rem Sora,sans-serif;text-decoration:none;border:0;cursor:pointer;transition:background .25s,transform .25s}
.bouton:hover{background:var(--encre)}
.bouton.petit{min-height:42px;padding:0 20px;font-size:.92rem}
.lien{font-weight:700;text-decoration:none;border-bottom:2px solid var(--fil);padding-bottom:2px}
.actions{display:flex;flex-wrap:wrap;gap:22px;align-items:center;margin-top:30px}
/* barre */
.barre{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px max(20px,calc((100% - 1180px)/2));background:rgba(245,242,235,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--trait)}
.marque{display:flex;align-items:center;gap:10px;text-decoration:none;font:700 1.1rem Sora,sans-serif}
.menu{display:flex;align-items:center;gap:26px}
.menu a:not(.bouton){text-decoration:none;font-weight:600;font-size:.95rem}
.menu a:not(.bouton):hover{color:var(--fil)}
.burger{display:none;background:none;border:0;width:44px;height:44px;position:relative;cursor:pointer}
.burger span{position:absolute;left:10px;right:10px;height:2px;background:var(--encre);transition:transform .3s}
.burger span:first-child{top:17px}.burger span:last-child{top:25px}
.burger[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}
.burger[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}
/* ouverture */
.ouverture{padding:clamp(48px,8vw,110px) 0 clamp(40px,6vw,80px)}
.ouverture-grille{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.ouverture-visuel{position:relative;background:var(--encre);border-radius:28px;padding:30px 30px 18px;box-shadow:0 30px 60px -30px rgba(20,23,28,.5)}
.piece{width:100%;height:auto}
.piece .plateau rect{fill:#3a414d}
.piece .couche{fill:var(--fil)}
.piece .couche:nth-child(odd){fill:var(--fil2)}
.piece .buse{fill:#c9ccd2}
.compteur{font:500 .8rem/1 ui-monospace,monospace;color:#9aa1ad;margin:12px 0 0;text-align:right;letter-spacing:.08em}
.ariane{font-size:.9rem;color:var(--gris);margin-bottom:22px}
.ariane a{text-decoration:none;border-bottom:1px solid var(--trait)}
.ariane span{margin:0 6px}
/* faits */
.bandeau-faits{background:var(--encre);color:#fff;padding:34px 0}
.faits{list-style:none;padding:0;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.faits strong{display:block;font:700 2rem Sora,sans-serif;color:var(--fil2)}
.faits span{color:#b8bec8;font-size:.95rem}
/* blocs */
.bloc{padding:clamp(64px,9vw,120px) 0}
.clair{background:var(--papier2)}
.sombre{background:var(--encre);color:#eef0f3}
.sombre .chapo{color:#aab1bc}
.deux{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.photo{border-radius:var(--rayon);margin-top:28px;aspect-ratio:3/2;object-fit:cover}
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:40px}
.service{background:#fff;border:1px solid var(--trait);border-radius:var(--rayon);overflow:hidden;transition:transform .35s,box-shadow .35s}
.service:hover{transform:translateY(-6px);box-shadow:0 22px 40px -24px rgba(20,23,28,.35)}
.service img{aspect-ratio:3/2;object-fit:cover;width:100%}
.service h3{margin:20px 20px 8px}
.service p{margin:0 20px 22px;color:var(--gris);font-size:.96rem}
.methode{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.methode-texte{position:sticky;top:110px}
.etapes{list-style:none;padding:0;margin:0;display:grid;gap:18px}
.etape{background:#fff;border-radius:var(--rayon);padding:28px 28px 22px;border:1px solid var(--trait)}
.num{font:700 .9rem ui-monospace,monospace;color:var(--fil);display:block;margin-bottom:10px}
.matieres{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.matieres li{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--trait)}
.matieres strong{font-family:Sora,sans-serif}
.matieres span{color:var(--gris)}
.avis{columns:3 300px;column-gap:22px;margin-top:40px}
.avis-carte{break-inside:avoid;margin:0 0 22px;padding:26px;border-radius:var(--rayon);background:var(--encre2);border:1px solid #333a45}
.avis-carte blockquote{margin:0 0 16px;color:#dfe3e8}
.avis-carte figcaption{font-weight:700}
.avis-carte figcaption span{display:block;font-weight:400;color:#8f97a3;font-size:.9rem}
.communes{list-style:none;padding:0;margin:40px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.communes a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px;border-radius:14px;background:#fff;border:1px solid var(--trait);text-decoration:none;transition:border-color .25s,background .25s}
.communes a:hover{border-color:var(--fil);background:#fff8f2}
.communes span{font:500 .82rem ui-monospace,monospace;color:var(--gris)}
.faq details{border-bottom:1px solid var(--trait);padding:6px 0}
.faq summary{cursor:pointer;list-style:none;font:600 1.08rem Sora,sans-serif;padding:16px 36px 16px 0;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:12px;font-size:1.5rem;color:var(--fil);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{color:var(--gris);padding-right:36px}
.usages{list-style:none;counter-reset:u;padding:0;margin:40px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.usages li{counter-increment:u;background:#fff;border:1px solid var(--trait);border-radius:var(--rayon);padding:30px}
.usages li::before{content:"0" counter(u);font:700 .9rem ui-monospace,monospace;color:var(--fil);display:block;margin-bottom:14px}
.usages p{color:var(--gris);margin:0}
.texte p{max-width:62ch}
.texte a{color:var(--fil);font-weight:700}
.encart{background:var(--encre);color:#fff;border-radius:22px;padding:34px}
.encart-titre{font:650 1.3rem Sora,sans-serif}
.encart ul{padding-left:18px;margin:0 0 26px;color:#cfd4db}
.encart li{margin-bottom:8px}
.proches{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:12px}
.proches a{display:inline-block;padding:12px 18px;border-radius:999px;border:1px solid var(--trait);background:#fff;text-decoration:none;font-weight:600}
.proches a:hover{border-color:var(--fil)}
.appel{background:var(--fil);color:#fff;padding:clamp(56px,7vw,90px) 0}
.appel-grille{display:grid;grid-template-columns:1.2fr 1fr auto;gap:30px;align-items:center}
.appel h2{margin:0}
.appel p{margin:0;color:#ffe6d6}
.appel .bouton{background:var(--encre)}
.appel .bouton:hover{background:#fff;color:var(--encre)}
/* contact */
.contact-grille{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
.coord{list-style:none;padding:0;margin:26px 0 0;font:600 1.15rem Sora,sans-serif}
.coord li{margin-bottom:8px}
.coord a{text-decoration:none;border-bottom:2px solid var(--fil)}
.formulaire{background:#fff;border:1px solid var(--trait);border-radius:24px;padding:clamp(22px,4vw,40px)}
.formulaire form{display:grid;gap:18px}
.champs2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.formulaire label{display:grid;gap:8px;font-weight:600;font-size:.95rem}
.formulaire input,.formulaire select,.formulaire textarea{font:inherit;font-weight:400;width:100%;padding:14px 16px;border:2px solid var(--trait);border-radius:12px;background:var(--papier);color:var(--encre)}
.formulaire input:focus,.formulaire select:focus,.formulaire textarea:focus{border-color:var(--fil);outline:none;background:#fff}
.fichiers input{padding:12px;background:#fff}
.cache{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.note{font-size:.85rem;color:var(--gris);margin:0}
.merci{background:#eaf6ec;border:1px solid #9bd3a5;border-radius:16px;padding:22px;margin-bottom:20px}
.merci h2{font-size:1.4rem}
/* pied */
.pied{background:var(--encre);color:#bfc5ce;padding:70px 0 30px;font-size:.95rem}
.pied a{color:#fff}
.pied-grille{display:grid;grid-template-columns:1fr .9fr 1.3fr;gap:50px}
.pied-marque{font:700 1.4rem Sora,sans-serif;color:#fff}
.pied-titre{font:600 .8rem Sora,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--fil2)}
.pied-villes{list-style:none;padding:0;margin:0;columns:2;column-gap:24px}
.pied-villes li{margin-bottom:6px}
.pied-villes a{text-decoration:none;color:#bfc5ce}
.pied-villes a:hover{color:#fff}
.voisins{font-size:.9rem}
.mentions{border-top:1px solid #2c323c;margin-top:40px;padding-top:22px;font-size:.85rem}
/* fil de lecture */
.fil-lecture{position:fixed;top:0;left:0;height:3px;width:100%;background:var(--fil);transform-origin:0 50%;transform:scaleX(0);z-index:60}
/* écran moyen et téléphone */
@media (max-width:1000px){
 .services{grid-template-columns:repeat(2,1fr)}.communes{grid-template-columns:repeat(3,1fr)}
 .appel-grille{grid-template-columns:1fr}.methode{grid-template-columns:1fr}.methode-texte{position:static}
}
@media (max-width:820px){
 .burger{display:block}
 .menu{position:fixed;inset:65px 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:var(--papier);border-bottom:1px solid var(--trait);padding:10px 20px 22px;display:none}
 .menu.ouvert{display:flex}
 .menu a:not(.bouton){padding:14px 0;border-bottom:1px solid var(--trait)}
 .menu .bouton{margin-top:16px}
 .ouverture-grille,.deux,.contact-grille,.pied-grille{grid-template-columns:1fr}
 .ouverture-visuel{max-width:420px}
 .usages{grid-template-columns:1fr}.faits{grid-template-columns:repeat(2,1fr)}
 .communes{grid-template-columns:repeat(2,1fr)}.champs2{grid-template-columns:1fr}
}
@media (max-width:480px){
 body{font-size:16px}.services{grid-template-columns:1fr}.communes{grid-template-columns:1fr}
 .matieres li{grid-template-columns:1fr;gap:4px}.pied-villes{columns:1}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* pages de services, guides et FAQ (26/10/2026, second passage) */
.services.six{grid-template-columns:repeat(3,1fr)}.services.trois{grid-template-columns:repeat(3,1fr)}
.service-lien{display:block;height:100%;color:inherit;text-decoration:none}
.service-lien h3::after{content:" →";color:var(--fil);transition:margin .3s}
.service:hover .service-lien h3::after{margin-left:6px}
.services.trois .service h3{margin-top:26px}
.suite{margin:28px 0 0}.suite a:not(.lien){color:var(--fil);font-weight:700}
.encart-texte{color:#cfd4db;margin:0 0 24px}
.encart-liens{list-style:none;padding:0!important;margin:0 0 22px!important}
.encart-liens a{color:#fff;font-weight:600}.encart-liens a:hover{color:var(--fil)}
.guide .texte h2{font-size:1.45rem;margin:38px 0 10px}.guide .texte h2:first-child{margin-top:0}
.guide .encart{position:sticky;top:96px}
.suite-titre{margin-top:48px}
#questions h2+.faq{margin-bottom:34px}
@media (max-width:1000px){.services.six,.services.trois{grid-template-columns:repeat(2,1fr)}}
/* menu toujours visible sur téléphone : une ligne sous la marque, défilable */
@media (max-width:820px){
 .barre{flex-wrap:wrap;row-gap:8px;padding-bottom:8px}
 .burger{display:none}
 .menu,.menu.ouvert{position:static;display:flex;flex-direction:row;align-items:center;gap:18px;width:100%;padding:0;background:none;border:0;overflow-x:auto;scrollbar-width:none;white-space:nowrap}
 .menu a:not(.bouton){padding:8px 0;border:0;font-size:.92rem}
 .menu .bouton{margin:0 0 0 auto}
 .guide .encart{position:static}
}
@media (max-width:480px){.services.six,.services.trois{grid-template-columns:1fr}}
