/* 3d-mayenne.com, direction « bocage » (02/11/2026). Parcelles, haies, remplissages d'impression. */
@font-face{font-family:"Zilla Slab";src:url(/assets/fonts/zilla-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Zilla Slab";src:url(/assets/fonts/zilla-700.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Zilla Slab";src:url(/assets/fonts/zilla-italique.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:"Mulish";src:url(/assets/fonts/mulish.woff2) format("woff2");font-weight:400 800;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url(/assets/fonts/plex-mono.woff2) format("woff2");font-weight:500;font-display:swap}
:root{--lait:#fbf8ef;--lait-f:#f1ecdc;--prairie:#7fae5b;--prairie-c:#b9d39a;--herbe:#dfe9cf;--haie:#1f3318;--haie-2:#2b4622;--ble:#e9c46a;--ble-c:#f3dfa6;--coq:#e5432a;--coq-f:#c2321c;--ardoise:#3d4450;
--titre:"Zilla Slab",Georgia,serif;--texte:"Mulish",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,monospace;--l:min(1240px,100% - 40px)}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--lait);color:var(--haie);font:400 17px/1.62 var(--texte);overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-underline-offset:3px}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--coq);outline-offset:3px}
h1,h2,h3{font-family:var(--titre);font-weight:700;line-height:1.05;margin:0;letter-spacing:-.01em;text-wrap:balance}
em{font-style:italic;font-weight:500;color:var(--coq)}
p{margin:0 0 1em}
.mono{font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}
.saut{position:absolute;left:-999px;top:8px;background:var(--haie);color:var(--lait);padding:8px 14px;z-index:99}.saut:focus{left:8px}
.kicker{color:var(--coq-f);margin:0 0 .8rem}
.titre-sec{font-size:clamp(2rem,4.2vw,3.4rem);margin-bottom:.6em}
.bouton{display:inline-flex;align-items:center;gap:.5em;background:var(--coq);color:#fff;font:700 1rem/1 var(--texte);padding:17px 24px;border:0;border-radius:0;text-decoration:none;cursor:pointer;clip-path:polygon(0 4%,100% 0,98% 100%,2% 96%);transition:background .2s,transform .2s}
.bouton:hover{background:var(--coq-f);transform:translateY(-2px)}
.lien-tel,.lien-fleche{font-weight:700;text-decoration:none;border-bottom:2px solid var(--coq);padding-bottom:2px}
.lien-fleche::after{content:" →"}
.actions{display:flex;flex-wrap:wrap;gap:16px 26px;align-items:center;margin-top:1.4em}
.note{width:var(--l);margin:24px auto 0;color:var(--ardoise)}.note.centre{text-align:center;margin-bottom:60px}
.pastille{display:inline-block;width:14px;height:14px;border:1.5px solid var(--haie);background:var(--ble-c) var(--motif);vertical-align:-2px;margin-right:8px}

/* en-tête */
.tete-site{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:28px;padding:12px max(20px,(100% - 1240px)/2);background:color-mix(in srgb,var(--lait) 92%,transparent);backdrop-filter:blur(8px);border-bottom:2px solid var(--haie)}
.marque{display:flex;align-items:center;gap:10px;text-decoration:none;font:500 1.35rem/1 var(--titre)}.marque b{font-weight:700}.marque svg{width:34px;height:34px}
.menu{display:flex;gap:4px;margin-left:auto}
.menu>a,.deroulant>a{display:block;padding:10px 14px;text-decoration:none;font-weight:700;font-size:.97rem}
.menu a[aria-current]{box-shadow:inset 0 -3px var(--coq)}
.deroulant{position:relative}
.sous{position:absolute;top:100%;left:0;min-width:270px;list-style:none;margin:0;padding:10px;background:var(--lait);border:2px solid var(--haie);box-shadow:6px 6px 0 var(--prairie-c);opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s}
.sous-2{columns:2;min-width:360px}
.deroulant:hover .sous,.deroulant:focus-within .sous{opacity:1;visibility:visible;transform:none}
.sous a{display:block;padding:8px 10px;text-decoration:none;font-size:.95rem;break-inside:avoid}.sous a:hover{background:var(--herbe)}
.lien-devis{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;background:var(--haie);color:var(--lait);padding:10px 16px}
.ld-h{background:var(--ble);color:var(--haie);padding:3px 6px;font-size:.75rem}
.menu-tel{display:none}
@media (max-width:980px){.menu,.lien-devis{display:none}
.menu-tel{display:block;margin-left:auto}
.menu-tel summary{list-style:none;cursor:pointer;width:46px;height:46px;display:grid;place-content:center;gap:6px;border:2px solid var(--haie)}
.menu-tel summary::-webkit-details-marker{display:none}
.menu-tel summary span{display:block;width:22px;height:2px;background:var(--haie)}
.menu-tel-panneau{position:fixed;inset:72px 0 0;background:var(--lait);overflow:auto;padding:20px;border-top:2px solid var(--haie)}
.menu-tel-panneau ul{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:2px}.menu-tel-panneau .mt-2{grid-template-columns:1fr 1fr}
.menu-tel-panneau a{display:block;padding:10px 4px;text-decoration:none;font-weight:600}
.mt-titre{color:var(--coq-f);margin:8px 0}.mt-actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap}}

/* héros : la carte du bocage */
.heros{position:relative;min-height:min(880px,calc(100svh - 70px));display:grid;align-items:end;padding:40px max(20px,(100% - 1240px)/2) 120px;overflow:hidden;border-bottom:2px solid var(--haie);isolation:isolate}
.carte{display:block}
.carte-heros{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.carte .champ{stroke:none}
.carte .motif{opacity:.45;pointer-events:none}
.carte .jachere+.motif{display:none}
.carte .haies path{fill:none;stroke:var(--haie);stroke-width:5;stroke-linejoin:round;stroke-linecap:round}
.carte .commune{transition:fill .25s}
.carte .lieu circle{fill:var(--lait);stroke:var(--haie);stroke-width:3}
.carte .lieu text{font:700 24px var(--titre);fill:var(--haie);text-anchor:middle;paint-order:stroke;stroke:var(--lait);stroke-width:6px;stroke-linejoin:round}
.carte a.lieu:hover circle,.carte a.lieu:focus circle{fill:var(--coq)}
.carte .lieu.ici circle{fill:var(--coq);stroke:var(--lait)}
.carte .actif{fill:var(--coq)!important}
.heros-parcelle{position:relative;max-width:640px;background:var(--lait);padding:38px 40px 34px;border:3px solid var(--haie);clip-path:polygon(0 3%,96% 0,100% 94%,4% 100%);filter:drop-shadow(0 0 0 transparent)}
.heros-parcelle::after{content:"";position:absolute;inset:auto -1px -1px auto;width:70px;height:70px;background:var(--ble) var(--m-nid,none);clip-path:polygon(100% 0,100% 100%,0 100%)}
.surtitre{display:flex;align-items:center;color:var(--ardoise)}
.heros h1{font-size:clamp(2.6rem,5.6vw,4.9rem);margin:.25em 0 .35em}
.h1-a{display:block}
.h1-b{display:block;font-weight:500;font-size:.55em;line-height:1.15;margin-top:.15em}
.heros .chapo{font-size:1.1rem;max-width:52ch}
.heros-echelle{position:absolute;right:max(20px,(100% - 1240px)/2);top:28px;display:flex;align-items:center;gap:10px;background:var(--lait);padding:8px 12px;border:2px solid var(--haie)}
.ech-barre{width:80px;height:8px;background:repeating-linear-gradient(90deg,var(--haie) 0 20px,var(--lait) 20px 40px);border:1.5px solid var(--haie)}
.heros-chiffres{position:absolute;left:0;right:0;bottom:0;margin:0;padding:0 max(20px,(100% - 1240px)/2);list-style:none;display:grid;grid-template-columns:repeat(4,1fr);background:var(--haie);color:var(--lait)}
.heros-chiffres li{padding:16px 18px;border-left:1px solid var(--haie-2);display:flex;gap:10px;align-items:baseline}
.heros-chiffres b{font:700 1.5rem/1 var(--titre);text-transform:none;letter-spacing:0;color:var(--ble)}
@media (max-width:860px){.heros{padding:200px 16px 190px;align-items:end}.heros-parcelle{padding:26px 22px}.heros-echelle{display:none}
.heros-chiffres{grid-template-columns:1fr 1fr}.heros-chiffres li{padding:12px 14px;flex-direction:column;gap:2px}.carte-heros .lieux{display:none}.carte .lieu text{font-size:34px}}

/* édito */
.edito{width:var(--l);margin:90px auto;display:grid;grid-template-columns:160px 1fr;gap:30px}
.edito::before{content:"";height:160px;background:var(--prairie-c) var(--m-gyro);border:3px solid var(--haie);clip-path:polygon(8% 0,100% 6%,92% 100%,0 90%)}
.edito-texte{font:500 clamp(1.35rem,2.4vw,1.9rem)/1.35 var(--titre);margin:0;max-width:34ch}
@media (max-width:700px){.edito{grid-template-columns:1fr}.edito::before{height:70px;width:90px}}

/* légende (services) */
.legende{width:var(--l);margin:0 auto 110px;display:grid;grid-template-columns:minmax(260px,.8fr) 1.6fr;gap:50px;align-items:start}
.legende.seule{display:block}
.legende-tete{position:sticky;top:110px}
.legende-liste{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--haie);border-left:2px solid var(--haie)}
.legende-ligne{display:grid;grid-template-columns:76px 1fr auto;gap:18px;align-items:start;padding:22px 20px;text-decoration:none;border-right:2px solid var(--haie);border-bottom:2px solid var(--haie);transition:background .2s}
.legende-ligne:hover{background:var(--herbe)}
.lg-case{width:76px;height:76px;border:2.5px solid var(--haie);background:var(--ble-c) var(--motif);background-size:auto;transition:background-position .9s cubic-bezier(.2,.7,.2,1)}
.legende-ligne:hover .lg-case{background-position:38px 38px}
.lg-corps{display:grid;gap:4px}.lg-motif{color:var(--coq-f)}
.lg-titre{font:700 1.35rem/1.1 var(--titre)}.lg-txt{color:var(--ardoise);font-size:.95rem}
.pa-fleche{font:700 1.3rem var(--titre);transition:transform .2s}
.legende-ligne:hover .pa-fleche,.parcelle:hover .pa-fleche{transform:translateX(5px)}
@media (max-width:900px){.legende{grid-template-columns:1fr;gap:20px}.legende-tete{position:static}.legende-liste{grid-template-columns:1fr}}
@media (max-width:480px){.legende-ligne{grid-template-columns:54px 1fr;padding:18px 14px}.lg-case{width:54px;height:54px}.legende-ligne .pa-fleche{display:none}}

/* écluses (déroulé) */
.ecluses{background:var(--haie);color:var(--lait);padding:100px max(20px,(100% - 1240px)/2) 110px}
.ecluses .kicker{color:var(--ble)}
.ecluses-tete{max-width:720px}
.ecluses-liste{list-style:none;margin:50px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;align-items:end}
.ecluse{padding:0 22px 0 0;transform:translateY(calc(var(--n) * -34px))}
.sas{position:relative;height:150px;border:3px solid var(--lait);border-top:0;margin-bottom:22px;overflow:hidden;background:var(--haie-2)}
.eau{position:absolute;left:0;right:0;bottom:0;height:calc(30% + var(--n) * 14%);background:linear-gradient(#6fb4c6,#3f8aa0);transform-origin:bottom}
.eau::before{content:"";position:absolute;inset:-6px 0 auto;height:12px;background:radial-gradient(circle at 10px -2px,transparent 9px,#6fb4c6 10px) 0 0/20px 12px repeat-x}
.porte{position:absolute;right:-3px;top:0;bottom:0;width:10px;background:var(--ble)}
.ec-rep{color:var(--ble);margin:0 0 .4em}
.ecluse h3{font-size:1.5rem;margin-bottom:.4em}
.ecluse p:last-child{color:#d8dccf;font-size:.97rem}
@media (max-width:900px){.ecluses-liste{grid-template-columns:1fr 1fr;gap:40px 20px}.ecluse{transform:none}}
@media (max-width:520px){.ecluses-liste{grid-template-columns:1fr}.sas{height:90px}}

/* parcelles (communes) */
.parcelles-sec{width:var(--l);margin:110px auto}
.sec-tete-ligne{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:34px}.sec-tete-ligne .titre-sec{margin:0}.sec-tete-ligne p{margin:0;color:var(--ardoise)}
@media (max-width:800px){.sec-tete-ligne{grid-template-columns:1fr;gap:14px}}
.parcelles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.parcelle{position:relative;display:grid;align-content:start;gap:4px;padding:120px 22px 24px;min-height:300px;text-decoration:none;background:var(--lait-f);clip-path:var(--forme);transition:background .25s}
.parcelle:nth-child(2n){transform:translateY(22px)}
.pa-champ{position:absolute;left:0;right:0;top:0;height:100px;background:var(--teinte) var(--motif);border-bottom:3px solid var(--haie);transition:height .45s cubic-bezier(.2,.7,.2,1)}
.parcelle:hover .pa-champ{height:118px}
.parcelle:hover{background:var(--herbe)}
.pa-num{color:var(--coq-f)}.pa-nom{font:700 1.65rem/1.05 var(--titre)}.pa-rub{color:var(--ardoise);font-size:.7rem}.pa-txt{font-size:.94rem;margin-top:6px}
.parcelle .pa-fleche{position:absolute;right:20px;bottom:16px}
@media (max-width:980px){.parcelles{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.parcelles{grid-template-columns:1fr}.parcelle:nth-child(2n){transform:none}.parcelle{min-height:0;padding-top:96px}.pa-champ{height:78px}}

/* carnet de culture (matières) */
.carnet{width:var(--l);margin:130px auto 110px}
.carnet-cadre{overflow-x:auto;border:2px solid var(--haie);background:#fff}
.carnet-table{width:100%;border-collapse:collapse;min-width:720px}
.carnet-table caption{text-align:left;padding:12px 16px;border-bottom:2px solid var(--haie);background:var(--ble-c)}
.carnet-table th,.carnet-table td{padding:16px;border-bottom:1px solid #d9d4c2;text-align:left;vertical-align:middle}
.carnet-table thead th{font:700 .9rem/1.2 var(--texte)}
.carnet-table tbody th{width:38%}.carnet-table tbody th b{display:block;font:700 1.25rem var(--titre)}.carnet-table tbody th span{font-weight:400;font-size:.9rem;color:var(--ardoise)}
.points{display:inline-flex;gap:5px}
.points i{width:13px;height:13px;border:2px solid var(--haie);transform:rotate(45deg)}
.points i.plein{background:var(--prairie)}
.carnet-table tr:hover{background:var(--herbe)}

/* avis */
.avis-sec{background:var(--prairie-c) var(--m-lignes-c);padding:100px 0;border-top:2px solid var(--haie);border-bottom:2px solid var(--haie)}
.avis-tete{width:var(--l);margin:0 auto 30px}
.avis-rang{display:grid;grid-auto-flow:column;grid-auto-columns:min(420px,82vw);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px max(20px,(100% - 1240px)/2) 22px;scrollbar-color:var(--haie) transparent}
.avis{margin:0;scroll-snap-align:start;background:var(--lait);border:2px solid var(--haie);padding:28px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:8px 8px 0 var(--haie)}
.avis blockquote{margin:0 0 1.2em;font:500 1.12rem/1.45 var(--titre)}
.avis blockquote::before{content:"“";display:block;font:700 4rem/0.6 var(--titre);color:var(--coq);height:.4em}
.avis figcaption b{display:block}

/* guides */
.guides-sec{width:var(--l);margin:110px auto}
.tuiles-guides{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.tuiles-guides.deux{grid-template-columns:1fr 1fr}
.tuile-guide{position:relative;display:grid;gap:8px;align-content:start;padding:30px 26px 30px;min-height:330px;text-decoration:none;border:2.5px solid var(--haie);background:var(--lait);overflow:hidden;transition:transform .25s}
.tuile-guide::before{content:"";position:absolute;inset:0;background:var(--ble-c) var(--motif);clip-path:polygon(0 0,100% 0,100% 34%,0 48%);transition:clip-path .5s cubic-bezier(.2,.7,.2,1);z-index:0}
.tuile-guide:hover::before{clip-path:polygon(0 0,100% 0,100% 44%,0 58%)}
.tuile-guide>*{position:relative;z-index:1}
.tg-lettre{font:700 5rem/1 var(--titre);color:var(--haie);margin-bottom:56px}
.tg-nom{color:var(--coq-f)}.tg-titre{font:700 1.45rem/1.1 var(--titre)}.tg-chapo{color:var(--ardoise);font-size:.95rem}
@media (max-width:860px){.tuiles-guides,.tuiles-guides.deux{grid-template-columns:1fr}.tuile-guide{min-height:0}.tg-lettre{margin-bottom:24px;font-size:3.6rem}}

/* FAQ */
.faq{width:var(--l);margin:100px auto 30px}
.questions{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;border-top:2px solid var(--haie)}
.faq-pleine .questions{grid-template-columns:1fr}
.question{border-bottom:1.5px solid var(--haie)}
.question summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr 22px;gap:14px;align-items:baseline;padding:18px 0;font-weight:700}
.question summary::-webkit-details-marker{display:none}
.q-num{color:var(--coq-f)}
.q-plus{position:relative;width:18px;height:18px;align-self:center}.q-plus::before,.q-plus::after{content:"";position:absolute;left:0;right:0;top:8px;height:2.5px;background:var(--haie);transition:transform .25s}.q-plus::after{transform:rotate(90deg)}
.question[open] .q-plus::after{transform:rotate(0)}
.question p{margin:0 0 20px 54px;color:var(--ardoise);max-width:62ch}
@media (max-width:860px){.questions{grid-template-columns:1fr}.question p{margin-left:0}}

/* devis */
.devis{display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;padding:100px max(20px,(100% - 1240px)/2);background:var(--coq);color:#fff;margin-top:60px;position:relative;overflow:hidden}
.devis::before{content:"";position:absolute;inset:0;background:var(--m-grille-l);opacity:.18;pointer-events:none}
.devis>*{position:relative}
.devis-geant{font:700 clamp(7rem,16vw,13rem)/.8 var(--titre);margin:0 0 .15em;display:flex;align-items:flex-start;color:var(--lait)}
.dg-h{font-size:.45em;font-style:italic;font-weight:500;margin-left:.08em;color:var(--ble)}
.devis h2{font-size:clamp(1.8rem,3vw,2.5rem);margin-bottom:.5em}
.devis-tel a{color:#fff;font-weight:800}
.formulaire{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:var(--lait);color:var(--haie);padding:30px;border:3px solid var(--haie);box-shadow:10px 10px 0 var(--haie)}
.champ{display:grid;gap:6px}.champ.tout{grid-column:1/-1}
.champ label{font-weight:700;font-size:.92rem}.champ small{font-weight:400;color:var(--ardoise)}
.champ input,.champ select,.champ textarea{font:inherit;font-size:1rem;padding:12px;border:2px solid var(--haie);background:#fff;border-radius:0;color:var(--haie);width:100%}
.formulaire .bouton{grid-column:1/-1;justify-content:center}
.mention{grid-column:1/-1;font-size:.82rem;color:var(--ardoise);margin:0}
.piege{position:absolute;left:-9999px}
@media (max-width:900px){.devis{grid-template-columns:1fr;gap:20px;padding:70px 16px}.formulaire{grid-template-columns:1fr;padding:20px;box-shadow:6px 6px 0 var(--haie)}}

/* pied */
.pied{background:var(--haie);color:var(--lait);padding:0 0 30px}
.pied-haie{height:34px;background:var(--m-triangles-l),var(--haie-2);border-bottom:3px solid var(--prairie)}
.pied-grille{width:var(--l);margin:60px auto 40px;display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:34px}
.pied ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}.pied a{text-decoration:none}.pied a:hover{color:var(--ble)}
.pied-titre{color:var(--ble);margin-bottom:12px}
.pied-contact{margin-top:16px}
.pied-bas{width:var(--l);margin:0 auto;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;border-top:1px solid var(--haie-2);padding-top:18px;color:#b9c2ad}
@media (max-width:860px){.pied-grille{grid-template-columns:1fr 1fr}.pied-marque{grid-column:1/-1}}

/* commune */
.ariane{display:flex;flex-wrap:wrap;gap:8px;color:var(--ardoise);margin-bottom:18px}.ariane a{text-decoration:none}.ariane a:hover{color:var(--coq-f)}
.tete-commune{display:grid;grid-template-columns:1.1fr 1fr;min-height:560px;border-bottom:2px solid var(--haie)}
.tc-carte{position:relative;border-right:2px solid var(--haie);overflow:hidden;background:var(--herbe)}
.carte-commune{position:absolute;inset:0;width:100%;height:100%}
.tc-texte{padding:60px max(20px,(100vw - 1240px)/2) 60px 50px;align-self:center}
.tete-commune h1{font-size:clamp(2.4rem,4.6vw,4rem);margin-bottom:.2em}
.tc-suite{font:500 italic 1.3rem/1.3 var(--titre);color:var(--ardoise)}
.fiche{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--haie);margin:26px 0 0;background:#fff}
.fiche div{padding:12px 14px;border-bottom:1px solid #d9d4c2}.fiche div:nth-child(odd){border-right:1px solid #d9d4c2}
.fiche dt{color:var(--ardoise);font-size:.7rem}.fiche dd{margin:2px 0 0;font:700 1.1rem var(--titre);text-transform:none;letter-spacing:0}
@media (max-width:900px){.tete-commune{grid-template-columns:1fr}.tc-carte{height:280px;border-right:0;border-bottom:2px solid var(--haie)}.tc-texte{padding:34px 16px}}
.recit{width:var(--l);margin:90px auto;display:grid;grid-template-columns:1.5fr .8fr;gap:60px;align-items:start}
.recit-corps{max-width:68ch}.recit-corps .chapo{font:500 1.4rem/1.4 var(--titre)}
.recit-corps h2{font-size:2rem;margin:1.2em 0 .5em}
.borne{position:sticky;top:110px;background:var(--ble-c);border:2.5px solid var(--haie);padding:26px;clip-path:polygon(0 0,100% 3%,97% 100%,3% 97%)}
.borne p:last-child{font:500 1.3rem/1.35 var(--titre);margin:0}.borne .mono{color:var(--coq-f)}
@media (max-width:900px){.recit{grid-template-columns:1fr;gap:20px}.borne{position:static}}
.publics{width:var(--l);margin:90px auto}
.publics-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0;border-left:2px solid var(--haie);border-top:2px solid var(--haie)}
.public{padding:26px;border-right:2px solid var(--haie);border-bottom:2px solid var(--haie);background:var(--lait)}
.pu-case{display:block;width:100%;height:46px;margin-bottom:18px;background:var(--prairie-c) var(--motif);border:2px solid var(--haie);transform-origin:left}
.public h3{font-size:1.35rem;margin-bottom:.4em}.public p{font-size:.96rem;color:var(--ardoise);margin:0}
.liens-ville{width:var(--l);margin:90px auto}
.tous{margin-top:18px;color:var(--ardoise)}

/* service */
.tete-service{position:relative;display:grid;grid-template-columns:1.2fr .8fr;gap:0;border-bottom:2px solid var(--haie);background:var(--prairie);overflow:hidden}
.ts-champ{position:absolute;inset:0;background:var(--motif);opacity:.5}
.ts-texte{position:relative;margin:50px 0 50px max(20px,(100vw - 1240px)/2);background:var(--lait);padding:36px 38px;border:3px solid var(--haie);clip-path:polygon(0 0,100% 2%,98% 100%,1% 97%)}
.ts-texte h1{font-size:clamp(2.3rem,4.4vw,3.8rem);margin-bottom:.35em}
.ts-photo{position:relative;margin:50px max(20px,(100vw - 1240px)/2) 50px 30px;align-self:center;border:3px solid var(--haie);background:var(--lait);padding:10px;transform:rotate(1.5deg)}
.ts-photo img{width:100%;aspect-ratio:4/5;object-fit:cover}
@media (max-width:900px){.tete-service{grid-template-columns:1fr}.ts-texte{margin:30px 16px 0;padding:26px 22px}.ts-photo{margin:20px 16px 30px;transform:none}.ts-photo img{aspect-ratio:16/10}}
.corps-service{width:var(--l);margin:80px auto;display:grid;grid-template-columns:1.4fr .9fr;gap:60px;align-items:start}
.cs-texte{max-width:68ch}.cs-texte p:first-child{font:500 1.35rem/1.4 var(--titre)}
.reglages{position:sticky;top:110px;border:2.5px solid var(--haie);background:#fff}
.reglages>p{margin:0;padding:12px 16px;background:var(--haie);color:var(--lait)}
.reglages dl{margin:0}.reglages div{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:12px 16px;border-bottom:1px solid #d9d4c2}
.reglages dt{color:var(--coq-f);font-size:.7rem}.reglages dd{margin:0;font-size:.94rem}
@media (max-width:900px){.corps-service{grid-template-columns:1fr;gap:24px}.reglages{position:static}}
.conseil{background:var(--ble);padding:70px max(20px,(100% - 1000px)/2);border-top:2px solid var(--haie);border-bottom:2px solid var(--haie)}
.conseil .kicker{color:var(--haie)}.conseil-texte{font:500 clamp(1.4rem,2.6vw,2rem)/1.35 var(--titre);margin:0}
.villes-service{width:var(--l);margin:80px auto}
.puces{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.puces a{display:block;padding:10px 16px;border:2px solid var(--haie);text-decoration:none;font-weight:700;background:var(--lait)}.puces a:hover{background:var(--prairie-c)}

/* guides, pages simples */
.tete-simple{width:var(--l);margin:70px auto 40px;max-width:900px}
.tete-simple h1{font-size:clamp(2.6rem,5vw,4.4rem);margin-bottom:.3em}
.tete-simple .chapo{font-size:1.15rem;color:var(--ardoise)}
.tete-simple.vide{margin-top:100px}
.tete-guide{position:relative;padding:70px max(20px,(100% - 1240px)/2) 60px;border-bottom:2px solid var(--haie);overflow:hidden}
.tg-fond{position:absolute;right:0;top:0;bottom:0;width:38%;background:var(--motif);border-left:3px solid var(--haie);clip-path:polygon(14% 0,100% 0,100% 100%,0 100%)}
.tete-guide>*:not(.tg-fond){position:relative;max-width:min(720px,58%)}
.tete-guide h1{font-size:clamp(2.3rem,4.4vw,3.7rem);margin-bottom:.35em}
@media (max-width:800px){.tg-fond{width:100%;opacity:.25;clip-path:none;border:0}.tete-guide>*:not(.tg-fond){max-width:none}}
.guide-corps{width:var(--l);margin:70px auto;display:grid;grid-template-columns:260px 1fr;gap:60px;align-items:start}
.sommaire-lat{position:sticky;top:110px;border-left:3px solid var(--haie);padding-left:18px}
.sommaire-lat ol{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.sommaire-lat a{display:grid;grid-template-columns:30px 1fr;text-decoration:none;font-weight:600;font-size:.95rem}.sommaire-lat a:hover{color:var(--coq-f)}
.sommaire-lat .mono{color:var(--coq-f)}
.sl-barre{position:absolute;left:-3px;top:0;width:3px;height:100%}.sl-barre i{display:block;width:3px;height:100%;background:var(--coq);transform-origin:top;transform:scaleY(0)}
.lecture{max-width:70ch}
.partie{margin-bottom:46px}
.partie h2{font-size:clamp(1.6rem,2.6vw,2.1rem);margin-bottom:.6em;display:flex;gap:14px;align-items:baseline}
.pa-n{color:var(--coq-f);font-size:.85rem}
.fin-guide{padding:20px;border:2px dashed var(--haie);font-weight:600}
.mentions{width:var(--l);margin:70px auto;max-width:800px}.mentions h1{font-size:2.8rem;margin-bottom:.6em}.mentions h2{font-size:1.6rem;margin:1.4em 0 .5em}
@media (max-width:900px){.guide-corps{grid-template-columns:1fr;gap:20px}.sommaire-lat{position:static}}

/* motifs partagés en fond CSS */
:root{--m-nid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='31.18'%3E%3Cpath d='M9 0l9 5.2v10.4L9 20.8 0 15.6V5.2zM9 20.8V31.2M0 15.6v15.6M18 15.6v15.6' fill='none' stroke='%231f3318' stroke-width='1.3'/%3E%3C/svg%3E");
--m-gyro:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M0 6q6-6 12 0t12 0M0 18q6 6 12 0t12 0M6 0q-6 6 0 12t0 12M18 0q6 6 0 12t0 12' fill='none' stroke='%231f3318' stroke-width='1.3'/%3E%3C/svg%3E");
--m-lignes-c:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath d='M0 12L12 0M-3 3L3-3M9 15L15 9' stroke='%237fae5b' stroke-width='1.2'/%3E%3C/svg%3E");
--m-grille-l:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22'%3E%3Cpath d='M0 11H22M11 0V22' stroke='%23fbf8ef' stroke-width='1.4'/%3E%3C/svg%3E");
--m-triangles-l:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='27.7'%3E%3Cpath d='M0 0H16M0 13.85H16M0 0l16 27.7M16 0L0 27.7M8 0l8 13.85M0 13.85L8 27.7' stroke='%237fae5b' stroke-width='1.1'/%3E%3C/svg%3E")}

/* mouvement */
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.js .heros-parcelle,.js .heros-chiffres li{opacity:0}
