/* ──────────────────────────────────────────────────────────────
   Gregory Grenet · feuille de style du site
   Règles de la charte appliquées : angles vifs, aucune ombre, aucun
   dégradé, aucun arrondi. Filets 1 px gris 200, cadres 1,5 px.
   Fonds blanc, papier ou sable. Jamais de fond noir.
   ────────────────────────────────────────────────────────────── */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--fond);color:var(--texte);
  font-family:var(--f-texte);font-size:var(--t-texte);line-height:var(--i-texte);
  -webkit-font-smoothing:antialiased;font-synthesis-weight:none;
}
img,svg{max-width:100%;display:block}
a{color:var(--gg-petrole);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--gg-turquoise-texte)}
:focus-visible{outline:2px solid var(--gg-turquoise);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ── largeur ── */
.lg{max-width:var(--largeur);margin-inline:auto;padding-inline:var(--marge)}
.lg-etroit{max-width:760px;margin-inline:auto;padding-inline:var(--marge)}

/* ── trame cadastrale : quadrillage de filets fins, module = demi-symbole ── */
.trame{
  background-image:
    linear-gradient(var(--trame) 1px,transparent 1px),
    linear-gradient(90deg,var(--trame) 1px,transparent 1px);
  background-size:var(--module) var(--module);
  background-position:0 0;
}

/* ── étiquettes et sur-titres ── */
.etq{
  font-family:var(--f-etq);font-weight:600;font-size:var(--t-etq);
  letter-spacing:var(--suivi-etq);text-transform:uppercase;line-height:1.3;
  color:var(--gg-turquoise-texte);margin:0;
}
.etq-gris{color:var(--texte-3)}
.etq-clair{color:var(--gg-citron)}

/* ── filet incliné à 15°, séparateur de deux informations ── */
.f15{display:inline-block;width:1px;height:1em;background:currentColor;opacity:.45;
     transform:skewX(-15deg);margin-inline:.75em;vertical-align:-.12em}

/* ── titres ── */
h1,h2,h3,h4{font-family:var(--f-titre);font-weight:600;line-height:var(--i-titre);
            margin:0;text-wrap:balance;color:var(--gg-petrole)}
h1{font-size:var(--t-xxl);line-height:1.06;letter-spacing:-.015em}
h2{font-size:var(--t-xl);letter-spacing:-.01em}
h3{font-size:var(--t-l)}
h4{font-size:var(--t-m)}
p{margin:0}
.chapo{font-size:var(--t-chapo);line-height:1.5;color:var(--texte-2);max-width:62ch}

/* ── numéros de partie 01 02 03 ── */
.part{display:flex;align-items:baseline;gap:clamp(12px,2vw,22px);margin-bottom:var(--bloc)}
.part .num{font-family:var(--f-titre);font-weight:600;font-size:clamp(26px,3.4vw,38px);
           line-height:1;color:var(--gg-citron);flex:none;font-variant-numeric:tabular-nums}
.part .txt{flex:1 1 auto;min-width:0}
.part .etq{margin-bottom:8px}

/* ── sections ── */
section{padding-block:clamp(44px,7vw,84px)}
.s-papier{background:var(--gg-papier)}
.s-sable{background:var(--gg-sable)}
.s-blanc{background:var(--gg-blanc)}
.s-petrole{background:var(--gg-petrole);color:#fff}
.s-petrole h2,.s-petrole h3,.s-petrole h4{color:#fff}
.s-petrole .chapo{color:#C3D6DA}
.s-petrole .etq{color:var(--gg-citron)}
.ligne-haut{border-top:1px solid var(--filet)}

/* ──────────────────────────────────────────────────────────────
   LE PARCELLAIRE
   Les blocs se touchent et sont séparés par des canaux blancs,
   comme les trois parcelles du symbole. Aucun arrondi, aucune ombre.
   ────────────────────────────────────────────────────────────── */
.parcelles{display:grid;gap:var(--canal);background:var(--gg-blanc)}
.parcelles.p-1-2{grid-template-columns:1fr}
@media(min-width:860px){
  .parcelles.p-1-2{grid-template-columns:1.42fr 1fr;grid-template-rows:auto auto}
  .parcelles.p-1-2 > :first-child{grid-row:1 / span 2}
}
.parcelles.p-3{grid-template-columns:1fr}
@media(min-width:720px){ .parcelles.p-3{grid-template-columns:repeat(3,1fr)} }
.parcelles.p-4{grid-template-columns:1fr}
@media(min-width:640px){ .parcelles.p-4{grid-template-columns:repeat(2,1fr)} }
@media(min-width:1000px){ .parcelles.p-4{grid-template-columns:repeat(4,1fr)} }

.pl{padding:clamp(20px,2.8vw,30px);display:flex;flex-direction:column;gap:12px;
    background:var(--gg-blanc);min-width:0}
.pl-sable{background:var(--gg-sable)}
.pl-petrole{background:var(--gg-petrole);color:#fff}
.pl-petrole h3,.pl-petrole h4{color:#fff}
.pl-petrole .etq{color:var(--gg-citron)}
.pl-petrole .leg{color:#A9C4C9}
.pl-turquoise{background:var(--gg-turquoise);color:#fff}
.pl-turquoise h3,.pl-turquoise h4{color:#fff}
.pl-turquoise .etq{color:#E4F5D9}
.pl-turquoise .leg{color:#CDE8E1}
.pl-citron{background:var(--gg-citron)}
.pl-citron .etq{color:#2E5208}
.pl-citron .leg{color:#3F5B1C}
.pl .corps{font-size:var(--t-petit);line-height:1.55;color:var(--texte-2);margin:0}
.pl-petrole .corps,.pl-turquoise .corps{color:#DCE9EA}
.pl-citron .corps{color:#2A3F10}
.pl .pied{margin-top:auto;padding-top:14px;border-top:1px solid var(--filet);
          font-family:var(--f-etq);font-size:var(--t-etq);letter-spacing:.08em;
          text-transform:uppercase;font-weight:600;color:var(--texte-3)}
.pl-petrole .pied,.pl-turquoise .pied{border-top-color:rgba(255,255,255,.26);color:#A9C4C9}
.pl-citron .pied{border-top-color:rgba(15,61,71,.22);color:#3F5B1C}

/* ── chiffres clés ── */
.cle{font-family:var(--f-titre);font-weight:600;color:var(--gg-petrole);
     font-size:clamp(30px,4.4vw,46px);line-height:1;letter-spacing:-.02em;
     font-variant-numeric:tabular-nums}
.cle-s{font-size:clamp(24px,3vw,32px)}
.pl-petrole .cle,.pl-turquoise .cle{color:#fff}
.leg{font-family:var(--f-texte);font-size:var(--t-petit);line-height:1.4;color:var(--texte-2);margin:0}

/* ── boutons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
     font-family:var(--f-texte);font-weight:700;font-size:16px;line-height:1;
     padding:15px 24px;border:1.5px solid transparent;cursor:pointer;
     text-decoration:none;transition:background-color .12s linear,color .12s linear}
.btn-p{background:var(--gg-petrole);color:#fff;border-color:var(--gg-petrole)}
.btn-p:hover{background:var(--gg-turquoise);border-color:var(--gg-turquoise);color:#fff}
.btn-s{background:transparent;color:var(--gg-petrole);border-color:var(--gg-petrole)}
.btn-s:hover{background:var(--gg-petrole);color:#fff}
.btn-c{background:var(--gg-citron);color:var(--gg-petrole);border-color:var(--gg-citron)}
.btn-c:hover{background:var(--gg-petrole);color:#fff;border-color:var(--gg-petrole)}
.btns{display:flex;flex-wrap:wrap;gap:12px}

/* ── encadré de risque : filet turquoise, fond blanc ── */
.risque{background:var(--gg-blanc);border:1.5px solid var(--gg-turquoise);
        padding:clamp(18px,2.4vw,24px);display:flex;flex-direction:column;gap:9px}
.risque h4{font-size:17px;font-family:var(--f-texte);font-weight:700;color:var(--gg-petrole)}
.risque p{font-size:var(--t-petit);line-height:1.55;color:var(--texte-2)}

/* ── tableaux : filets horizontaux seulement ── */
.tab-enveloppe{overflow-x:auto;border-top:1.5px solid var(--gg-petrole)}
table{width:100%;border-collapse:collapse;font-size:var(--t-petit);min-width:460px}
caption{text-align:left;font-family:var(--f-etq);font-size:var(--t-etq);font-weight:600;
        letter-spacing:var(--suivi-etq);text-transform:uppercase;color:var(--texte-3);
        padding-bottom:10px}
th,td{text-align:left;padding:11px 14px 11px 0;border-bottom:1px solid var(--filet);
      vertical-align:baseline}
th{font-family:var(--f-etq);font-weight:600;font-size:var(--t-etq);letter-spacing:.08em;
   text-transform:uppercase;color:var(--texte-3)}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;padding-right:0}
tbody tr:last-child td{border-bottom:0}

/* ── en-tête : le logo complet, nom et activités, en grand ── */
.entete{background:var(--gg-papier);border-bottom:1px solid var(--filet)}
.entete .barre{display:flex;align-items:center;gap:clamp(14px,2.5vw,32px);
               padding-block:clamp(14px,2vw,20px);max-width:var(--largeur);margin-inline:auto;
               padding-inline:var(--marge)}
.entete .marque{display:block;flex:0 1 auto;min-width:0}
.entete .marque img{height:clamp(40px,5.6vw,66px);width:auto;max-width:100%}
.contact-rapide{margin-left:auto;display:flex;align-items:center;gap:clamp(12px,2vw,22px);flex:none}
.contact-rapide .tel{font-family:var(--f-texte);font-weight:700;font-size:17px;color:var(--gg-petrole);
                     text-decoration:none;font-variant-numeric:tabular-nums;white-space:nowrap}
.contact-rapide .tel:hover{color:var(--gg-turquoise-texte)}
.contact-rapide .btn{padding:12px 18px;font-size:15px}
@media(max-width:860px){ .contact-rapide .tel{display:none} }
@media(max-width:620px){
  .entete .barre{flex-wrap:wrap;row-gap:12px}
  .entete .marque{flex-basis:100%}
  .contact-rapide{margin-left:0}
}

/* ── barre de navigation : aplat pétrole, reste visible au défilement ── */
.nav-site{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--gg-petrole)}
.barre-nav{display:flex;align-items:stretch;flex-wrap:wrap;column-gap:clamp(14px,2.4vw,30px);
           max-width:var(--largeur);margin-inline:auto;padding-inline:var(--marge)}
.barre-nav > a,.menu > summary{
  font-family:var(--f-texte);font-weight:600;font-size:15px;line-height:1.2;color:#fff;
  text-decoration:none;padding:13px 0 11px;border-bottom:3px solid transparent;cursor:pointer;
  display:flex;align-items:center;gap:7px;white-space:nowrap}
.barre-nav > a:hover,.menu > summary:hover,.menu[open] > summary,
.barre-nav > a[aria-current="page"],.menu.courant > summary{border-bottom-color:var(--gg-citron);color:#fff}
.menu{position:relative}
.menu > summary{list-style:none}
.menu > summary::-webkit-details-marker{display:none}
.menu > summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .16s}
.menu[open] > summary::after{transform:translateY(1px) rotate(-135deg)}
.menu-liste{position:absolute;left:0;top:100%;z-index:60;min-width:270px;
            max-width:calc(100vw - 2 * var(--marge));background:var(--gg-blanc);
            border:1.5px solid var(--gg-petrole);border-top:0;display:flex;flex-direction:column}
.menu-liste a{display:flex;align-items:center;gap:10px;padding:12px 16px;font-weight:600;font-size:15px;
              color:var(--gg-petrole);text-decoration:none;border-top:1px solid var(--filet)}
.menu-liste a:first-child{border-top:0}
.menu-liste a:hover,.menu-liste a[aria-current="page"]{background:var(--gg-sable);color:var(--gg-petrole)}
.pastille{width:10px;height:10px;flex:none;background:var(--pa)}
.pa-loc{--pa:var(--gg-citron);box-shadow:inset 0 0 0 1px var(--gg-petrole)}
.pa-deno{--pa:var(--gg-ambre)}
.pa-lmnp{--pa:var(--gg-turquoise)}
.pa-nu{--pa:var(--gg-petrole)}
.pa-scpi{--pa:var(--gg-gris-500)}
@media(max-width:620px){
  /* sur téléphone, le menu tient sur deux ou trois lignes : il défile avec la page */
  .nav-site{position:relative}
  .barre-nav{column-gap:18px}
  .barre-nav > a,.menu > summary{font-size:14px;padding:11px 0 9px}
  .menu{position:static}
  .menu-liste{left:var(--marge);right:var(--marge);top:auto;min-width:0}
}

/* ── formulaires ── */
.champ{display:flex;flex-direction:column;gap:7px}
.champ label{font-family:var(--f-etq);font-weight:600;font-size:var(--t-etq);
             letter-spacing:.09em;text-transform:uppercase;color:var(--texte-3)}
.champ input,.champ select,.champ textarea{
  font-family:var(--f-texte);font-size:16px;line-height:1.3;color:var(--texte);
  background:var(--gg-blanc);border:1px solid var(--filet-fort);padding:12px 13px;
  width:100%;border-radius:0;appearance:none}
.champ input:focus,.champ select:focus,.champ textarea:focus{
  border-color:var(--gg-turquoise);outline:1px solid var(--gg-turquoise);outline-offset:-2px}
.champ select{background-image:
  linear-gradient(45deg,transparent 50%,var(--gg-petrole) 50%),
  linear-gradient(135deg,var(--gg-petrole) 50%,transparent 50%);
  background-position:calc(100% - 17px) center,calc(100% - 11px) center;
  background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:36px}
.champ .aide{font-size:13px;color:var(--texte-3);line-height:1.4}
.champ .repere{font-size:13px;line-height:1.4;color:var(--gg-turquoise-texte)}

/* champ chiffré avec son unité affichée à droite : €, %, m², ans */
.saisie{display:flex;align-items:stretch;background:var(--gg-blanc);border:1px solid var(--filet-fort)}
.saisie:focus-within{border-color:var(--gg-turquoise);outline:1px solid var(--gg-turquoise);outline-offset:-2px}
.champ .saisie input{border:0;outline:0;flex:1 1 auto;min-width:0}
.champ .saisie input:focus{outline:0}
.saisie .u{display:flex;align-items:center;padding:0 13px;border-left:1px solid var(--filet);
           font-family:var(--f-etq);font-weight:600;font-size:14px;color:var(--texte-3);
           white-space:nowrap;background:var(--gg-papier)}

/* choix d'une commune : liste de suggestions */
.cc{position:relative}
.cc-liste{position:absolute;left:0;right:0;top:100%;z-index:40;margin:0;padding:0;list-style:none;
          background:var(--gg-blanc);border:1.5px solid var(--gg-petrole);border-top:0;
          max-height:330px;overflow-y:auto}
.cc-liste li{display:grid;grid-template-columns:1fr auto;column-gap:12px;row-gap:2px;
             padding:10px 13px;border-top:1px solid var(--filet);cursor:pointer}
.cc-liste li:first-child{border-top:0}
.cc-liste li[aria-selected="true"]{background:var(--gg-sable)}
.cc-nom{font-weight:700;color:var(--gg-petrole)}
.cc-dep{font-family:var(--f-etq);font-size:12px;font-weight:600;letter-spacing:.08em;
        text-transform:uppercase;color:var(--texte-3);align-self:center}
.cc-plaf{grid-column:1 / -1;font-size:13px;color:var(--texte-2);font-variant-numeric:tabular-nums}
.cc-vide{color:var(--texte-3);cursor:default}
.cc-coche{margin-top:6px}
.grille-champs{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:620px){ .grille-champs.c2{grid-template-columns:1fr 1fr} }
@media(min-width:620px){ .grille-champs.c3{grid-template-columns:repeat(3,1fr)} }

/* ── pied de page : il occupe toute la largeur de l'écran ── */
.lg-large{max-width:1680px;margin-inline:auto;padding-inline:clamp(18px,4.5vw,72px)}
.pied-page{background:var(--gg-petrole);color:#C3D6DA;padding-block:clamp(40px,6vw,64px)}
.pied-page h4{color:#fff;font-family:var(--f-etq);font-size:var(--t-etq);font-weight:600;
              letter-spacing:var(--suivi-etq);text-transform:uppercase;margin-bottom:14px}
.pied-page a{color:#fff;text-decoration:none}
.pied-page a:hover{color:var(--gg-citron)}
.pied-logo{width:100%;max-width:380px;height:auto}
.pied-grille{display:grid;gap:clamp(26px,4vw,44px);grid-template-columns:1fr}
@media(min-width:700px){ .pied-grille{grid-template-columns:1fr 1fr} }
@media(min-width:1100px){ .pied-grille{grid-template-columns:1.5fr 1fr 1fr 1fr} }
.pied-page .liste{display:flex;flex-direction:column;gap:9px;font-size:var(--t-petit)}
.mention{margin-top:clamp(28px,4vw,44px);padding-top:20px;
         border-top:1px solid rgba(255,255,255,.2);font-size:var(--t-micro);line-height:1.6;
         color:#9FBAC0}
.mention p{margin:0 0 .6em}
.mention p:last-child{margin-bottom:0}

/* ── cartouche : cadre de 1,5 px à cellules ── */
.cartouche{border:1.5px solid var(--gg-petrole);background:var(--gg-blanc)}
.cartouche-titre{font-family:var(--f-etq);font-weight:600;font-size:var(--t-etq);letter-spacing:var(--suivi-etq);
                 text-transform:uppercase;color:var(--gg-petrole);padding:12px clamp(18px,2.4vw,24px);
                 border-bottom:1.5px solid var(--gg-petrole);margin:0}
.cartouche-cellules{display:grid;grid-template-columns:1fr}
@media(min-width:820px){ .cartouche-cellules{grid-template-columns:repeat(3,1fr)} }
.cellule{padding:clamp(18px,2.4vw,24px);display:flex;flex-direction:column;gap:9px;border-top:1px solid var(--filet)}
.cellule:first-child{border-top:0}
@media(min-width:820px){ .cellule{border-top:0;border-left:1px solid var(--filet)} .cellule:first-child{border-left:0} }
.cellule .corps{font-size:var(--t-petit);line-height:1.55;color:var(--texte-2)}
.cellule .leg{margin-top:auto;padding-top:6px;font-size:13px;color:var(--texte-3)}

/* ── utilitaires ── */
.pile{display:flex;flex-direction:column}
.g8{gap:8px}.g12{gap:12px}.g16{gap:16px}.g24{gap:24px}.g32{gap:clamp(22px,3vw,32px)}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
    clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* obligation légale non encore renseignée : visible tant qu'elle n'est pas remplie */
.a-completer{background:#FBEBCF;color:#7A4600;font-weight:700;padding:2px 6px;box-decoration-break:clone;-webkit-box-decoration-break:clone}

/* ── questions fréquentes ── */
.faq{display:grid;gap:0;grid-template-columns:1fr;border-top:1.5px solid var(--gg-petrole)}
@media(min-width:900px){ .faq{grid-template-columns:1fr 1fr;column-gap:clamp(28px,4vw,56px)} }
.faq-q{padding-block:22px 20px;border-bottom:1px solid var(--filet);display:flex;flex-direction:column;gap:9px}
.faq-q h3{font-size:clamp(19px,2.2vw,22px);line-height:1.25}
.faq-q p{max-width:62ch;line-height:1.6;color:var(--texte-2)}
.faq-src{font-size:13px}
.toutes summary{cursor:pointer;font-weight:700;color:var(--gg-petrole);padding:14px 0;
                border-top:1px solid var(--filet);border-bottom:1px solid var(--filet);list-style:none}
.toutes summary::-webkit-details-marker{display:none}
.toutes summary::before{content:"+";display:inline-block;width:1.2em;color:var(--gg-turquoise)}
.toutes[open] summary::before{content:"−"}

/* champ piège à robots du formulaire : hors écran, ignoré des lecteurs d'écran */
.pot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

/* table des communes : chiffres alignés à droite, sans balisage répété ligne à ligne */
#communes td:nth-child(n+3),#communes th:nth-child(n+3){text-align:right;font-variant-numeric:tabular-nums;padding-right:0}
#communes td:nth-child(2){color:var(--texte-3)}

/* carrés d'action de l'ouverture : chaque carré est un lien */
.tuile{text-decoration:none;color:inherit;transition:background-color .16s linear}
.tuile .pied{color:var(--gg-petrole);text-decoration:underline;text-decoration-color:var(--gg-citron);
             text-decoration-thickness:2px;text-underline-offset:4px}
.tuile.pl-petrole .pied{color:#fff}
.tuile.pl-citron .pied{text-decoration-color:var(--gg-petrole)}
.tuile:hover{background:var(--gg-sable);color:inherit}
.tuile.pl-petrole:hover{background:var(--gg-petrole-fonce)}
.tuile.pl-citron:hover{background:#A9D23F}
.tuile:active{transform:translateY(1px)}

/* engagements : liste courte, filet citron foncé */
.engagements{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.engagements li{font-size:15px;line-height:1.5;color:#2A3F10;padding-left:16px;border-left:2px solid var(--gg-petrole)}

/* barre d'appel fixe, sur téléphone seulement */
.barre-mobile{display:none}
@media(max-width:620px){
  .barre-mobile{display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:70;
                padding:10px var(--marge) calc(10px + env(safe-area-inset-bottom,0px));
                background:var(--gg-petrole);transition:transform .2s ease}
  .barre-mobile .btn{flex:1 1 0;padding:13px 10px}
  .barre-mobile .btn-s{color:#fff;border-color:#fff}
  .barre-mobile.cachee{transform:translateY(110%)}
  body{padding-bottom:72px}
}

/* bandeau de consentement : petit, en bas à droite, fond sable ; refuser et accepter à égalité */
.consentement{position:fixed;right:16px;bottom:16px;z-index:80;width:min(320px,calc(100vw - 32px));
              background:var(--gg-sable);border:1px solid var(--filet-fort);padding:14px 16px;
              display:flex;flex-direction:column;gap:8px}
.consentement-titre{font-family:var(--f-etq);font-weight:600;font-size:11px;letter-spacing:var(--suivi-etq);
                    text-transform:uppercase;color:var(--gg-petrole)}
.consentement-texte{font-size:13px;line-height:1.45;color:var(--texte-2)}
.consentement-btns{display:flex;gap:8px}
.consentement-btns .btn{flex:1 1 0;padding:8px 10px;font-size:14px}
@media(max-width:620px){ .consentement{right:12px;left:12px;width:auto;bottom:84px} }

/* ── page d'atterrissage des publicités ── */
.atterrissage{display:grid;gap:clamp(28px,4vw,56px);grid-template-columns:1fr;align-items:start}
@media(min-width:900px){ .atterrissage{grid-template-columns:1.1fr .9fr} }
.atterrissage h1{font-size:clamp(34px,4.8vw,52px)}
.atouts{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.atouts li{padding-left:18px;border-left:3px solid var(--gg-citron);font-size:16px;line-height:1.5;color:var(--texte-2)}
.carte-formulaire{background:var(--gg-blanc);border-top:6px solid var(--gg-petrole);padding:clamp(20px,3vw,30px)}
.carte-titre{font-size:var(--t-l)}
.carte-formulaire .btn{width:100%}
.page-atterrissage .contact-rapide .tel-toujours{display:inline}
