/* Groupe EBS : climatisation sans unité extérieure à Lyon.
   Pierre de façade lyonnaise, ardoise et ocre ; titres Zilla Slab, texte IBM Plex Sans,
   cotes en IBM Plex Mono. Pas d'ombre, pas de liseré d'accent, pas de bleu clair en fond,
   aucune animation décorative. Surcharges responsive en fin de feuille. */

@font-face{font-family:"Zilla Slab";font-style:normal;font-weight:700;font-display:swap;src:url(assets/polices/zilla-slab-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Zilla Slab";font-style:normal;font-weight:600;font-display:swap;src:url(assets/polices/zilla-slab-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url(assets/polices/ibm-plex-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:italic;font-weight:400;font-display:swap;src:url(assets/polices/ibm-plex-sans-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(assets/polices/ibm-plex-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url(assets/polices/ibm-plex-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(assets/polices/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}

:root{
  --encre:#1D2933;
  --texte:#33404A;
  --doux:#5F6A71;
  --ardoise:#22394D;
  --ardoise-2:#2D4A62;
  --ardoise-3:#172836;
  --ocre:#C98B2E;
  --ocre-fonce:#A9701C;
  --ocre-pale:#F1E2C6;
  --brique:#B9552B;
  --froid:#2F6FA8;
  --blanc:#FFFFFF;
  --pierre:#F6F1EA;
  --sable:#EDE4D7;
  --trait:#DFD5C5;
  --rond-a:#EFE3CF;
  --rond-b:#F2E8D9;
  --r:14px;
  --shell:1640px;
  --content:1560px;
  --gutter:clamp(20px,5vw,72px);
  --titres:"Zilla Slab",Georgia,serif;
  --corps:"IBM Plex Sans",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:20px}
body{margin:0;background:var(--blanc);color:var(--texte);font-family:var(--corps);font-size:18px;line-height:1.65;font-weight:400}
img{max-width:100%;height:auto;display:block}
a{color:var(--ardoise-2);text-underline-offset:3px}
a:hover{color:var(--ocre-fonce)}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.2em}
strong{font-weight:600;color:var(--encre)}
h1,h2,h3,h4{font-family:var(--titres);font-weight:700;color:var(--encre);line-height:1.06;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(40px,5.4vw,80px)}
h2{font-size:clamp(34px,4.1vw,60px)}
h3{font-size:clamp(23px,2vw,30px);line-height:1.15}
h4{font-size:21px}
.ge-mono{font-family:var(--mono);font-size:.92em}
.ge-visuel-masque{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ge-evitement{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--encre);color:#fff;padding:10px 16px;border-radius:8px}
.ge-evitement:focus{left:12px}
summary:focus,summary:focus-visible{outline:none}

/* ---------- Conteneurs et fonds ---------- */
.ge-cadre{max-width:var(--shell);margin:0 auto;padding:0 var(--gutter)}
.ge-cadre--texte{max-width:calc(880px + 2 * var(--gutter))}
.ge-section{padding:clamp(64px,8vw,116px) 0;position:relative}
.ge-fond--blanc{background-color:var(--blanc)}
.ge-fond--pierre{background-color:var(--pierre)}
.ge-fond--sable{background-color:var(--sable)}
.ge-fond--ardoise{background-color:var(--ardoise);color:#E9EEF2}
.ge-fond--ardoise h2,.ge-fond--ardoise h3,.ge-fond--ardoise strong{color:#fff}
.ge-fond--ardoise a{color:#fff}
/* Ronds pâles coupés dans les coins (modèle Tigmi), une section sur deux environ */
.ge-ronds-a{background-image:radial-gradient(circle 310px at right -90px top -110px,var(--rond-a) 99.4%,transparent 100%),radial-gradient(circle 120px at left 6% bottom -70px,var(--rond-b) 99%,transparent 100%);background-repeat:no-repeat}
.ge-ronds-b{background-image:radial-gradient(circle 310px at left -100px bottom -120px,var(--rond-a) 99.4%,transparent 100%),radial-gradient(circle 115px at right 7% top -50px,var(--rond-b) 99%,transparent 100%);background-repeat:no-repeat}
.ge-fond--ardoise.ge-ronds-a{background-image:radial-gradient(circle 310px at right -90px top -110px,rgba(255,255,255,.07) 99.4%,transparent 100%),radial-gradient(circle 120px at left 6% bottom -70px,rgba(201,139,46,.16) 99%,transparent 100%)}

.ge-surtitre{font-family:var(--corps);font-weight:600;font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:var(--ocre-fonce);margin:0 0 14px}
.ge-fond--ardoise .ge-surtitre{color:#E7B866}
.ge-chapo{font-size:clamp(19px,1.5vw,22px);line-height:1.6;color:var(--texte);max-width:68ch}
.ge-fond--ardoise .ge-chapo{color:#DCE4EA}
.ge-texte{max-width:72ch}
.ge-centre{text-align:center}
.ge-centre .ge-chapo,.ge-centre .ge-texte{margin-left:auto;margin-right:auto}
.ge-entete-section{max-width:900px;margin-bottom:clamp(30px,4vw,52px)}
.ge-espace{margin-top:clamp(24px,3vw,44px)}
.ge-entete-section.ge-centre{margin-left:auto;margin-right:auto}

/* ---------- Boutons ---------- */
.ge-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:58px;padding:14px 28px;border-radius:12px;font-family:var(--corps);font-weight:600;font-size:19px;line-height:1.2;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}
.ge-btn--accent{background:var(--ocre);color:var(--encre)}
.ge-btn--accent:hover{background:var(--ocre-fonce);color:#fff}
.ge-btn--contour{background:transparent;color:var(--ardoise);border-color:var(--ardoise)}
.ge-btn--contour:hover{background:var(--ardoise);color:#fff}
.ge-btn--clair{background:#fff;color:var(--ardoise)}
.ge-btn--clair:hover{background:var(--ocre-pale);color:var(--encre)}
.ge-fond--ardoise .ge-btn--contour{color:#fff;border-color:rgba(255,255,255,.7)}
.ge-fond--ardoise .ge-btn--contour:hover{background:#fff;color:var(--ardoise)}
.ge-boutons{display:flex;flex-wrap:wrap;gap:14px;margin:28px 0 0}
.ge-lien-fleche{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;color:var(--ardoise-2)}
.ge-lien-fleche:hover{color:var(--ocre-fonce)}
.ge-lien-fleche svg{transition:transform .15s}
.ge-lien-fleche:hover svg{transform:translateX(3px)}

/* ---------- En-tête ---------- */
.ge-entete{background:#fff;border-bottom:1px solid var(--trait);position:relative;z-index:50}
.ge-entete__in{max-width:var(--shell);margin:0 auto;padding:14px var(--gutter);display:flex;align-items:center;gap:28px}
.ge-logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--encre);flex-shrink:0}
.ge-logo__icone{flex-shrink:0}
.ge-logo__texte{display:flex;flex-direction:column;line-height:1.1}
.ge-logo__texte strong{font-family:var(--titres);font-weight:700;font-size:27px;color:var(--encre);letter-spacing:-.01em}
.ge-logo__texte small{font-size:13.5px;color:var(--doux);margin-top:3px}
.ge-logo--pied .ge-logo__texte strong{color:#fff}
.ge-logo--pied .ge-logo__texte small{color:#B9C6D0}
.ge-nav{margin-left:auto}
.ge-nav__liste{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:4px}
.ge-nav__liste>li{position:relative}
.ge-nav__liste>li>a{display:flex;align-items:center;min-height:48px;padding:0 12px;color:var(--encre);text-decoration:none;font-weight:500;font-size:16.5px;border-radius:8px}
.ge-nav__liste>li>a:hover{background:var(--pierre);color:var(--encre)}
.ge-nav__deroulant{display:flex;align-items:center}
.ge-nav__plus{display:none}
.ge-nav__sous{list-style:none;margin:0;padding:10px;position:absolute;top:100%;left:0;min-width:260px;background:#fff;border:1px solid var(--trait);border-radius:12px;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .15s,transform .15s,visibility .15s}
.ge-nav__deroulant:hover .ge-nav__sous,.ge-nav__deroulant:focus-within .ge-nav__sous{opacity:1;visibility:visible;transform:none}
.ge-nav__sous a{display:block;padding:11px 14px;border-radius:8px;color:var(--encre);text-decoration:none;font-size:16px}
.ge-nav__sous a:hover{background:var(--pierre)}
.ge-nav__mobile{display:none}
.ge-entete__actions{display:flex;align-items:center;gap:10px}
.ge-entete__tel{min-height:52px;padding:10px 20px;font-size:18px}
.ge-burger{display:none;width:52px;height:52px;border-radius:12px;border:0;background:var(--ardoise);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0}
.ge-burger span{display:block;width:24px;height:2.5px;border-radius:2px;background:#fff;transition:transform .2s,opacity .2s}
.ge-entete.menu-ouvert .ge-burger span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.ge-entete.menu-ouvert .ge-burger span:nth-child(2){opacity:0}
.ge-entete.menu-ouvert .ge-burger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ---------- Bannière d'accueil : texte + mosaïque de trois photos ---------- */
.ge-hero{background-color:var(--pierre);padding:clamp(40px,5vw,72px) 0;background-image:radial-gradient(circle 340px at right -120px top -140px,var(--rond-a) 99.4%,transparent 100%);background-repeat:no-repeat}
.ge-hero__grille{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);gap:clamp(30px,4vw,64px);align-items:stretch}
.ge-hero h1{font-size:clamp(44px,5.8vw,88px);margin-bottom:.35em}
.ge-hero__texte{display:flex;flex-direction:column;justify-content:center}
.ge-hero .ge-chapo{margin-bottom:20px}
.ge-coches{list-style:none;padding:0;margin:0 0 6px}
.ge-coches li{position:relative;padding-left:36px;margin-bottom:10px}
.ge-coches li::before{content:"";position:absolute;left:0;top:.28em;width:24px;height:24px;border-radius:50%;background:var(--ardoise) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/14px no-repeat}
.ge-fond--ardoise .ge-coches li::before{background-color:var(--ocre)}
.ge-mosaique{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:1fr 1fr;gap:14px;min-height:540px;height:100%}
.ge-mosaique__case{position:relative;overflow:hidden;border-radius:var(--r);background:var(--sable)}
.ge-mosaique__case img,.ge-mosaique__case picture{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ge-mosaique__case--a{grid-row:1/3}

/* ---------- Bannière des pages intérieures : fil d'Ariane + H1, centrés ---------- */
.ge-banniere{position:relative;overflow:hidden;background:var(--ardoise);color:#fff;min-height:clamp(300px,34vw,440px);display:flex;align-items:center}
.ge-fond{position:absolute;inset:0}
.ge-fond img,.ge-fond picture{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ge-banniere .ge-fond::after{content:"";position:absolute;inset:0;background:rgba(23,40,54,.66)}
.ge-banniere__texte{position:relative;z-index:1;text-align:center;width:100%;padding-top:48px;padding-bottom:48px}
.ge-banniere h1{color:#fff;font-size:clamp(38px,4.8vw,72px);max-width:20ch;margin:0 auto}
.ge-banniere--sans-photo{min-height:clamp(240px,26vw,340px)}
.ge-fil ol{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 0;font-size:15px}
.ge-fil li{display:flex;align-items:center}
.ge-fil li+li::before{content:"›";margin:0 10px;opacity:.7}
.ge-fil a{color:#fff;text-decoration:none;opacity:.88}
.ge-fil a:hover{opacity:1;text-decoration:underline;color:#fff}
.ge-fil [aria-current]{color:#E7B866}
.ge-article__date{margin:18px 0 0;color:#DCE4EA;font-size:16px}

/* ---------- Deux colonnes : texte et photo à la même hauteur, en damier ---------- */
.ge-duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,5vw,80px);align-items:stretch}
.ge-duo--inverse .ge-duo__media{order:-1}
.ge-duo__texte{display:flex;flex-direction:column;justify-content:center}
.ge-duo__media{position:relative;overflow:hidden;border-radius:var(--r);min-height:380px;background:var(--sable)}
.ge-duo__media img,.ge-duo__media picture{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ge-duo__media--libre{background:none;min-height:0;overflow:visible;display:flex;align-items:center}
.ge-duo__media--libre img,.ge-duo__media--libre picture{position:static;height:auto}
.ge-legende{font-size:14px;color:var(--doux);margin-top:10px}

/* ---------- Cartes ---------- */
.ge-cartes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.ge-cartes--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ge-cartes--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ge-carte{background:#fff;border:1px solid var(--trait);border-radius:var(--r);padding:clamp(24px,2.4vw,34px);display:flex;flex-direction:column}
.ge-carte h3{margin-bottom:.45em}
.ge-carte p:last-child{margin-bottom:0}
.ge-carte .ge-lien-fleche{margin-top:auto;padding-top:12px}
.ge-fond--ardoise .ge-carte{color:var(--texte)}
.ge-fond--ardoise .ge-carte h3,.ge-fond--ardoise .ge-carte strong{color:var(--encre)}
.ge-fond--ardoise .ge-carte a{color:var(--ardoise-2)}
.ge-ico{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:14px;background:var(--pierre);color:var(--ardoise);margin-bottom:18px}
.ge-carte--photo{padding:0;overflow:hidden}
.ge-carte--photo .ge-carte__photo{position:relative;aspect-ratio:4/3;background:var(--sable)}
.ge-carte--photo .ge-carte__photo img,.ge-carte--photo .ge-carte__photo picture{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ge-carte--photo .ge-carte__corps{padding:clamp(22px,2.2vw,30px);display:flex;flex-direction:column;flex:1}

/* ---------- Étapes : fond ardoise, cartes blanches numérotées ---------- */
.ge-etapes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;counter-reset:etape}
.ge-etapes li{background:#fff;color:var(--texte);border-radius:var(--r);padding:clamp(24px,2.4vw,32px);counter-increment:etape;position:relative}
.ge-etapes li::before{content:counter(etape);display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:var(--ocre);color:var(--encre);font-family:var(--titres);font-weight:700;font-size:22px;margin-bottom:16px}
.ge-etapes h3{color:var(--encre);font-size:clamp(22px,1.8vw,27px)}
.ge-etapes p{margin:0}
.ge-etapes .ge-delai{display:block;margin-top:14px;font-family:var(--mono);font-size:14.5px;color:var(--ardoise-2)}
.ge-etapes li.ge-etape--verrou{border:3px solid var(--ocre)}
.ge-verrou{margin:30px 0 0;padding:22px 26px;border-radius:var(--r);background:#fff;border:1px solid var(--trait);color:var(--texte);font-size:19px}
.ge-fond--ardoise .ge-verrou{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);color:#fff}

/* ---------- Tableaux ---------- */
.ge-tableau-defile{overflow-x:auto;border:1px solid var(--trait);border-radius:var(--r);background:#fff}
.ge-tableau{width:100%;border-collapse:collapse;font-size:16.5px;min-width:640px}
.ge-tableau th,.ge-tableau td{padding:15px 18px;text-align:left;vertical-align:top;border-bottom:1px solid var(--trait)}
.ge-tableau thead th{background:var(--ardoise);color:#fff;font-weight:600;font-size:15.5px}
.ge-tableau tbody tr:last-child th,.ge-tableau tbody tr:last-child td{border-bottom:0}
.ge-tableau tbody th{color:var(--encre);font-weight:600}
.ge-tableau tbody th small{display:block;font-weight:400;color:var(--doux);font-size:14px}
.ge-tableau td.ge-oui{color:#2D6A3E;font-weight:600}
.ge-tableau td.ge-non{color:var(--brique);font-weight:600}

/* ---------- Schéma du monobloc ---------- */
.ge-schema{margin:0;background:#fff;border:1px solid var(--trait);border-radius:var(--r);padding:clamp(18px,2.2vw,30px)}
.ge-schema__boutons{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.ge-schema__mode{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:10px 18px;border-radius:10px;border:2px solid var(--trait);background:#fff;color:var(--encre);font:600 17px var(--corps);cursor:pointer}
.ge-schema__mode[aria-pressed="true"]{border-color:var(--ardoise);background:var(--ardoise);color:#fff}
.ge-schema__svg{width:100%;height:auto;display:block;font-family:var(--corps)}
.ge-schema__zone{font:600 17px var(--corps);fill:var(--ardoise);letter-spacing:.06em;text-transform:uppercase}
.ge-schema__note{font:500 14px var(--mono);fill:var(--doux)}
.ge-schema__lib{font:600 16px var(--corps);fill:var(--encre)}
.ge-schema__appareil{font:500 12.5px var(--corps);fill:var(--doux)}
.ge-flux{fill:none;stroke-width:6;stroke-linecap:round}
.ge-flux--ext{stroke:#5D7385}
.ge-flux--piece{stroke:#6B6157;stroke-dasharray:2 10}
.ge-schema[data-mode="ete"] .ge-flux--rejet{stroke:var(--brique);marker-end:url(#ge-f-chaud)}
.ge-schema[data-mode="ete"] .ge-flux--souffle{stroke:var(--froid);marker-end:url(#ge-f-froid)}
.ge-schema[data-mode="hiver"] .ge-flux--rejet{stroke:var(--froid);marker-end:url(#ge-f-froid)}
.ge-schema[data-mode="hiver"] .ge-flux--souffle{stroke:var(--brique);marker-end:url(#ge-f-chaud)}
.ge-schema[data-mode="ete"] .ge-hiver,.ge-schema[data-mode="hiver"] .ge-ete{display:none}
.ge-schema figcaption{margin-top:14px;font-size:15.5px;color:var(--doux)}

/* ---------- Plans cotés ---------- */
.ge-dessin{display:block;width:100%;height:auto;border-radius:var(--r);border:1px solid var(--trait);background:#F2EBDF}
.ge-dessin__cote{font:500 15px var(--mono);fill:#5F6A71}
.ge-dessin__cote--brique{fill:var(--brique)}
.ge-dessin__lib{font:600 15px var(--corps);fill:var(--encre)}
.ge-carte--plan{padding:0;overflow:hidden}
.ge-carte--plan .ge-dessin{border:0;border-radius:0;border-bottom:1px solid var(--trait)}
.ge-carte--plan .ge-carte__corps{padding:clamp(24px,2.4vw,34px);display:flex;flex-direction:column;flex:1}

/* ---------- Échelle de bruit ---------- */
.ge-db{background:#fff;border:1px solid var(--trait);border-radius:var(--r);padding:clamp(22px,2.6vw,36px)}
.ge-db__axe{position:relative;height:58px;margin:0 0 10px calc(220px + 18px);margin-right:calc(150px + 18px);border-bottom:2px solid var(--trait)}
.ge-db__repere{position:absolute;bottom:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;font-size:13px;color:var(--doux);line-height:1.25;padding-bottom:8px;white-space:nowrap}
.ge-db__repere::after{content:"";position:absolute;bottom:-6px;left:50%;width:2px;height:10px;background:var(--trait)}
.ge-db__repere strong{font-family:var(--mono);font-weight:500;color:var(--encre);font-size:13.5px}
.ge-db__repere em{font-style:normal}
.ge-db__liste{list-style:none;margin:0;padding:0}
.ge-db__liste li{display:grid;grid-template-columns:220px minmax(0,1fr) 150px;gap:18px;align-items:center;padding:9px 0;border-bottom:1px dashed var(--trait)}
.ge-db__liste li:last-child{border-bottom:0}
.ge-db__nom{font-size:15.5px;color:var(--doux);line-height:1.3}
.ge-db__nom strong{display:block;font-size:16.5px}
.ge-db__piste{position:relative;height:16px;background:var(--pierre);border-radius:8px}
.ge-db__barre{position:absolute;top:0;bottom:0;border-radius:8px;background:linear-gradient(90deg,var(--ardoise-2),var(--ocre))}
.ge-db__val{font-family:var(--mono);font-size:14.5px;color:var(--encre)}
.ge-db__source{margin:18px 0 0;font-size:14.5px;color:var(--doux)}

/* ---------- Gamme Unico ---------- */
.ge-gamme{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.ge-modele{background:#fff;border:1px solid var(--trait);border-radius:var(--r);padding:clamp(24px,2.4vw,32px);display:flex;flex-direction:column}
.ge-modele__role{font-size:14px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ocre-fonce);margin:0 0 8px}
.ge-modele__nom span{font-family:var(--corps);font-weight:500;font-size:17px;color:var(--doux);letter-spacing:0}
.ge-modele__carac{margin:6px 0 18px;display:grid;gap:0}
.ge-modele__carac div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--trait);font-size:15.5px}
.ge-modele__carac dt{color:var(--doux)}
.ge-modele__carac dd{margin:0;color:var(--encre);font-weight:500}
.ge-modele .ge-lien-fleche{margin-top:auto}

/* ---------- Test de faisabilité ---------- */
.ge-quiz{background:#fff;color:var(--texte);border-radius:var(--r);padding:clamp(24px,3vw,44px);border:1px solid var(--trait)}
.ge-quiz__progres{display:flex;align-items:center;gap:16px;margin:0 0 22px;font-size:15.5px;color:var(--doux)}
.ge-quiz__barre{flex:1;height:8px;border-radius:4px;background:var(--pierre);overflow:hidden}
.ge-quiz__barre span{display:block;height:100%;width:0;background:var(--ocre);transition:width .25s}
.ge-quiz__q{border:0;margin:0 0 22px;padding:0}
.ge-quiz.est-pret .ge-quiz__q{margin:0}
.ge-quiz__q legend{font-family:var(--titres);font-weight:700;font-size:clamp(26px,2.4vw,36px);color:var(--encre);line-height:1.15;margin-bottom:18px;padding:0}
.ge-quiz__options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ge-quiz__options--communes{grid-template-columns:repeat(4,minmax(0,1fr))}
.ge-quiz__options label{position:relative;cursor:pointer}
.ge-quiz__options input{position:absolute;opacity:0;width:1px;height:1px}
.ge-quiz__options span{display:flex;align-items:center;min-height:58px;padding:12px 18px;border:2px solid var(--trait);border-radius:12px;background:#fff;color:var(--encre);font-weight:500;font-size:17.5px;line-height:1.3;transition:border-color .15s,background-color .15s}
.ge-quiz__options label:hover span{border-color:var(--ardoise-2)}
.ge-quiz__options input:focus-visible+span{outline:3px solid var(--ocre);outline-offset:2px}
.ge-quiz__options input:checked+span{border-color:var(--ardoise);background:var(--ardoise);color:#fff}
.ge-quiz__retour{margin-top:18px;background:none;border:0;padding:8px 0;color:var(--ardoise-2);font:600 16px var(--corps);text-decoration:underline;cursor:pointer}
.ge-quiz__resultat h3{font-size:clamp(26px,2.4vw,36px)}
.ge-quiz__blocs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0 22px}
.ge-quiz__bloc{border:1px solid var(--trait);border-radius:12px;padding:20px 22px}
.ge-quiz__bloc h4{font-family:var(--corps);font-weight:600;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--ocre-fonce);margin:0 0 10px}
.ge-quiz__bloc p,.ge-quiz__bloc li{font-size:16.5px}
.ge-quiz__bloc ul{padding-left:1.1em;margin:0}
.ge-quiz__bloc p:last-child{margin-bottom:0}
.ge-regime{display:inline-block;font-weight:600;font-size:15px;padding:4px 10px;border-radius:6px;margin-bottom:10px}
.ge-regime--spr{background:#F5DDD2;color:#8A3B1C}
.ge-regime--abords{background:var(--ocre-pale);color:#7A5214}
.ge-regime--commun{background:#E1ECDF;color:#2D5A35}
.ge-quiz__note{font-size:15.5px;color:var(--doux)}
.ge-quiz__actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.ge-quiz__recommencer{background:none;border:0;color:var(--ardoise-2);font:600 16px var(--corps);text-decoration:underline;cursor:pointer;padding:8px 0}

/* ---------- Communes et carte ---------- */
.ge-villes{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.ge-villes li a,.ge-villes li span{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 16px;border-radius:999px;background:#fff;border:1px solid var(--trait);color:var(--encre);text-decoration:none;font-weight:500;font-size:16px}
.ge-villes li a:hover{border-color:var(--ardoise);background:var(--ardoise);color:#fff}
.ge-carte__fond{height:clamp(360px,42vw,520px);border-radius:var(--r);overflow:hidden;background:var(--sable);border:1px solid var(--trait)}
.ge-carte__etiquette{display:flex;align-items:center;gap:6px;text-decoration:none;cursor:default}
a.ge-carte__etiquette{cursor:pointer}
.ge-carte__etiquette--gauche{flex-direction:row-reverse}
.ge-carte__puce{width:12px;height:12px;border-radius:50%;background:var(--ardoise);border:2px solid #fff;flex:none}
a.ge-carte__etiquette .ge-carte__puce{background:var(--ocre)}
.ge-carte__nom{padding:3px 9px;border-radius:999px;background:#fff;color:var(--encre);font-family:var(--corps);font-weight:600;font-size:12.5px;line-height:1.3;border:1px solid var(--trait);white-space:nowrap}
a.ge-carte__etiquette .ge-carte__nom{border-color:var(--ocre)}
.ge-carte__etiquette--muette .ge-carte__nom{display:none}
.ge-carte__etiquette--depart{flex-direction:column-reverse;gap:4px}
.ge-carte__etiquette--depart .ge-carte__puce{width:16px;height:16px;background:var(--brique)}
.ge-carte__etiquette--depart .ge-carte__nom{background:var(--ardoise);color:#fff;font-size:14px;padding:5px 12px;border-color:var(--ardoise)}
.ge-carte__fond .maplibregl-ctrl-attrib{background:transparent!important;font-size:9px;color:#7b8794;padding:0 4px}
.ge-carte__fond .maplibregl-ctrl-attrib a{color:#7b8794}
.ge-carte__fond .maplibregl-ctrl-attrib-button{display:none}
.ge-villes li a::after{content:"";width:9px;height:9px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);margin-left:2px}

/* ---------- Questions fréquentes : photo + accordéons ---------- */
.ge-faq-grille{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,5vw,72px);align-items:stretch}
.ge-faq-grille__media{position:relative;overflow:hidden;border-radius:var(--r);min-height:420px;background:var(--sable)}
.ge-faq-grille__media img,.ge-faq-grille__media picture{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ge-faq{background:#fff;border:1px solid var(--trait);border-radius:12px;margin-bottom:12px}
.ge-faq summary{list-style:none;cursor:pointer;padding:20px 58px 20px 22px;font-weight:600;font-size:18.5px;color:var(--encre);position:relative;outline:none}
.ge-faq summary::-webkit-details-marker{display:none}
.ge-faq summary::after{content:"";position:absolute;right:22px;top:50%;width:14px;height:14px;margin-top:-10px;border-right:2.5px solid var(--ardoise);border-bottom:2.5px solid var(--ardoise);transform:rotate(45deg);transition:transform .2s}
.ge-faq[open] summary::after{transform:rotate(-135deg);margin-top:-3px}
.ge-faq__rep{padding:0 22px 20px}
.ge-faq__rep p:last-child{margin-bottom:0}

/* ---------- Articles ---------- */
.ge-articles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.ge-article-carte{background:#fff;border:1px solid var(--trait);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.ge-article-carte__photo{display:block;position:relative;aspect-ratio:16/10;background:var(--sable);overflow:hidden}
.ge-article-carte__photo img,.ge-article-carte__photo picture{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .3s}
.ge-article-carte:hover .ge-article-carte__photo img{transform:scale(1.03)}
.ge-article-carte__corps{padding:24px 26px 26px;display:flex;flex-direction:column;flex:1}
.ge-article-carte__date{font-size:14.5px;color:var(--doux);margin-bottom:8px}
.ge-article-carte h3{font-size:clamp(22px,1.7vw,26px)}
.ge-article-carte h3 a{color:var(--encre);text-decoration:none}
.ge-article-carte h3 a:hover{color:var(--ocre-fonce)}
.ge-article-carte .ge-lien-fleche{margin-top:auto}
.ge-article{max-width:calc(820px + 2 * var(--gutter));margin:0 auto;padding:clamp(48px,6vw,84px) var(--gutter)}
.ge-article h2{font-size:clamp(30px,3vw,42px);margin-top:1.4em}
.ge-article h3{margin-top:1.3em}
.ge-article li{margin-bottom:.45em}
.ge-article .ge-tableau-defile{margin:24px 0}
.ge-encadre{background:#fff;border:1px solid var(--trait);border-radius:var(--r);padding:24px 28px;margin:26px 0}
.ge-encadre p:last-child{margin-bottom:0}
.pagination,.nav-links{display:flex;gap:16px;justify-content:center;margin-top:36px}

/* ---------- Section « étude » : texte + formulaire posé sur une photo assombrie ---------- */
.ge-etude__grille{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,5vw,72px);align-items:stretch}
.ge-etude__texte p{color:#DCE4EA}
.ge-etude__infos{font-size:clamp(22px,1.8vw,26px);margin-top:28px}
.ge-coord{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.ge-coord li{display:flex;gap:14px;align-items:flex-start}
.ge-coord__ico{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;background:rgba(255,255,255,.1);color:#E7B866;flex-shrink:0}
.ge-coord__txt{display:flex;flex-direction:column;font-size:17.5px}
.ge-coord__lib{font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;color:#B9C6D0}
.ge-coord__tel{font-size:22px;font-weight:600}
.ge-etude__carte{position:relative;border-radius:var(--r);overflow:hidden;min-height:560px}
.ge-etude__photo{position:absolute;inset:0}
.ge-etude__photo img,.ge-etude__photo picture{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ge-etude__photo::after{content:"";position:absolute;inset:0;background:rgba(23,40,54,.82)}
.ge-etude__boite{position:relative;z-index:1;padding:clamp(24px,3vw,44px)}
.ge-etude__titre{color:#fff;font-size:clamp(24px,2vw,30px)}
.ge-form p{margin:0 0 16px}
.ge-form__ligne{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.ge-etude__boite .ge-form label{display:block;color:#fff;font-weight:600;font-size:16px;margin-bottom:6px}
.ge-form input[type=text],.ge-form input[type=email],.ge-form input[type=tel],.ge-form textarea,.ge-form input[type=number]{width:100%;min-height:54px;padding:12px 16px;border:1px solid var(--trait);border-radius:10px;background:#fff;color:var(--encre);font:400 17px var(--corps)}
.ge-form textarea{min-height:140px;resize:vertical}
.ge-form input:focus,.ge-form textarea:focus{outline:3px solid var(--ocre);outline-offset:1px}
.ge-form__piege{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.ge-etude__boite .ge-form__rgpd{font-size:14.5px;color:#DCE4EA}
.ge-etude__boite .ge-form__rgpd a{color:#fff}
.ge-etude__boite .ge-form button{width:100%}
.ge-alerte{padding:14px 18px;border-radius:10px;font-weight:600;margin-bottom:18px}
.ge-alerte--ok{background:#E1ECDF;color:#24502C}
.ge-alerte--erreur{background:#F5DDD2;color:#7E3014}
.ge-etude__boite .mp-anti-spam label,.ge-etude__boite .mp-anti-spam,.ge-etude__boite [class*="anti-spam"] label{color:#fff}

/* ---------- Pied de page ---------- */
.ge-pied{background:var(--ardoise-3);color:#C4CFD8;padding:clamp(56px,6vw,84px) 0 28px;font-size:16.5px}
.ge-pied a{color:#E6ECF0;text-decoration:none}
.ge-pied a:hover{color:#E7B866;text-decoration:underline}
.ge-pied__grille{max-width:var(--shell);margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:36px}
.ge-pied__intro{margin-top:18px;max-width:46ch}
.ge-pied__titre{font-family:var(--titres);font-weight:700;font-size:21px;color:#fff;margin-bottom:14px}
.ge-pied__liste{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.ge-pied__liste strong{color:#fff}
.ge-pied__fort{font-weight:600;font-size:19px}
.ge-carbone{max-width:var(--shell);margin:36px auto 0;padding:0 var(--gutter);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ge-carbone__g{font-family:var(--mono);font-size:20px;color:#fff}
.ge-carbone__marque{font-size:13px;opacity:.7}
.ge-pied__carte{max-width:var(--shell);margin:36px auto 0;padding:0 var(--gutter)}
.ge-pied__carte iframe{display:block;width:100%;height:300px;border:0;border-radius:var(--r)}
.ge-pied__bas{max-width:var(--shell);margin:28px auto 0;padding:22px var(--gutter) 0;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between;font-size:14.5px}

/* ---------- Plan du site, 404, pages légales ---------- */
.ge-plan{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.ge-plan__bloc{background:#fff;border:1px solid var(--trait);border-radius:var(--r);padding:24px 26px}
.ge-plan__bloc h3{font-size:22px}
.ge-plan__bloc h3 a{color:var(--encre);text-decoration:none}
.ge-plan__bloc ul{margin:0;padding-left:1.1em}
.ge-plan__xml{margin-top:28px;font-size:15.5px;color:var(--doux)}
.ge-introuvable{text-align:center}
.ge-introuvable__code{font-family:var(--titres);font-size:clamp(90px,14vw,180px);font-weight:700;color:var(--sable);line-height:1;margin:0}
.ge-introuvable .ge-boutons{justify-content:center}
.ge-introuvable__liens{list-style:none;padding:0;margin:34px auto 0;display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:center}
.ge-legal h2{font-size:clamp(28px,2.6vw,36px);margin-top:1.4em}
.ge-legal h2:first-child{margin-top:0}

/* ---------- Mémo SEO (préprod) ---------- */
.ge-seo-memo{position:fixed;right:16px;bottom:calc(16px + var(--mpe-bas, 0px));z-index:90;font-family:var(--corps)}
.ge-seo-memo summary{list-style:none;width:54px;height:54px;border-radius:50%;background:var(--encre);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;cursor:pointer}
.ge-seo-memo summary::-webkit-details-marker{display:none}
.ge-seo-memo__panneau{position:absolute;right:0;bottom:64px;width:min(420px,calc(100vw - 32px));max-height:70vh;overflow:auto;background:#fff;border:1px solid var(--trait);border-radius:12px;padding:18px 20px;font-size:14.5px;line-height:1.5}
.ge-seo-memo__haut{font-weight:600;font-size:16px;color:var(--encre)}
.ge-seo-memo__ligne{padding:10px 0;border-top:1px solid var(--trait)}
.ge-seo-memo__ligne span{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--doux)}
.ge-seo-memo__ligne p,.ge-seo-memo__ligne strong{margin:2px 0 0;color:var(--encre)}

/* ---------- Grand écran : menu en entier ---------- */
@media (max-width:1240px){
  .ge-nav__liste>li>a{padding:0 9px;font-size:16px}
  .ge-logo__texte small{display:none}
}

/* ---------- Menu mobile ---------- */
@media (max-width:1080px){
  .ge-burger{display:flex}
  .ge-nav{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--trait);display:none;max-height:calc(100vh - 100%);overflow-y:auto}
  .ge-nav.est-ouvert{display:block}
  .ge-nav__liste{flex-direction:column;align-items:stretch;padding:10px var(--gutter) 22px;gap:0}
  .ge-nav__liste>li{border-bottom:1px solid var(--trait)}
  .ge-nav__liste>li>a{min-height:56px;font-size:18px;padding:0 4px;border-radius:0}
  .ge-nav__deroulant{flex-wrap:wrap}
  .ge-nav__deroulant>a{flex:1}
  .ge-nav__plus{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border:0;background:var(--pierre);border-radius:10px;cursor:pointer;position:relative}
  .ge-nav__plus::before,.ge-nav__plus::after{content:"";position:absolute;width:16px;height:2.5px;background:var(--ardoise);border-radius:2px}
  .ge-nav__plus::after{transform:rotate(90deg);transition:transform .2s}
  .ge-nav__deroulant.est-deplie .ge-nav__plus::after{transform:rotate(0)}
  .ge-nav__sous{position:static;opacity:1;visibility:visible;transform:none;border:0;padding:0 0 10px 12px;min-width:0;width:100%;display:none}
  .ge-nav__deroulant.est-deplie .ge-nav__sous{display:block}
  .ge-nav__deroulant:hover .ge-nav__sous{display:none}
  .ge-nav__deroulant.est-deplie:hover .ge-nav__sous{display:block}
  .ge-nav__sous a{min-height:48px;display:flex;align-items:center;font-size:17px}
  .ge-nav__mobile{display:block;border-bottom:0!important;padding-top:18px}
  .ge-nav__mobile .ge-btn{width:100%}
  .ge-entete__actions{margin-left:auto}
}

/* ---------- Tablette ---------- */
@media (max-width:1100px){
  .ge-cartes--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ge-gamme,.ge-articles,.ge-plan{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ge-etapes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ge-quiz__options--communes{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ge-quiz__blocs{grid-template-columns:1fr}
  .ge-pied__grille{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ge-db__axe{margin-left:calc(170px + 14px);margin-right:calc(120px + 14px)}
  .ge-db__liste li{grid-template-columns:170px minmax(0,1fr) 120px;gap:14px}
}

/* ---------- Téléphone et petite tablette : une colonne, visuel au-dessus ---------- */
@media (max-width:900px){
  body{font-size:17px}
  h1{font-size:clamp(38px,9.4vw,52px)}
  h2{font-size:clamp(32px,8vw,44px)}
  h3{font-size:clamp(23px,5.6vw,27px)}
  .ge-hero{padding:34px 0 38px}
  .ge-hero h1{font-size:clamp(42px,11vw,58px)}
  .ge-hero__grille,.ge-duo,.ge-faq-grille,.ge-etude__grille{grid-template-columns:1fr}
  .ge-hero__media,.ge-duo__media,.ge-faq-grille__media{order:-1}
  .ge-mosaique{min-height:0;height:300px}
  .ge-duo__media{min-height:260px}
  .ge-duo__media--libre{min-height:0}
  .ge-faq-grille__media{min-height:260px}
  .ge-cartes,.ge-cartes--2,.ge-cartes--4,.ge-gamme,.ge-articles,.ge-plan,.ge-etapes{grid-template-columns:1fr}
  .ge-quiz__options,.ge-quiz__options--communes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ge-etude__carte{min-height:0}
  .ge-btn{font-size:18px;min-height:56px}
  .ge-banniere h1{font-size:clamp(34px,8.6vw,46px)}
  .ge-db__axe{display:none}
  .ge-db__liste li{grid-template-columns:1fr auto;gap:6px 12px}
  .ge-db__piste{grid-column:1/-1;grid-row:2}
}
@media (max-width:600px){
  .ge-entete__in{gap:12px;padding-top:10px;padding-bottom:10px}
  .ge-logo__texte strong{font-size:22px}
  .ge-logo__icone{width:40px;height:40px}
  .ge-entete__tel span{display:none}
  .ge-entete__tel{width:52px;min-height:52px;padding:0}
  .ge-form__ligne{grid-template-columns:1fr}
  .ge-quiz__options,.ge-quiz__options--communes{grid-template-columns:1fr}
  .ge-quiz__options--communes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ge-pied__grille{grid-template-columns:1fr}
  .ge-mosaique{height:280px;gap:10px}
  .ge-boutons .ge-btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important}
}
