/* ============================================================
   MAISONS A-A — thème « Beauce » : colza, vert champ, lin
   Zilla Slab (titres) + Nunito Sans (texte) — angles arrondis, pignons
   ============================================================ */
:root{
  --colza:#F0C42A;
  --colza-fonce:#D9AC14;
  --colza-pale:#FBEFC2;
  --champ:#2F5D3A;
  --champ-fonce:#1D3A27;
  --champ-clair:#5E8A68;
  --champ-pale:#E4EEE5;
  --lin:#F7F3EA;
  --lin-fonce:#EEE7D8;
  --blanc:#FFFFFF;
  --encre:#15202B;
  --gris:#5E6A66;
  --trait:#E0D9CB;
  --f-titre:'Zilla Slab',Georgia,serif;
  --f-texte:'Nunito Sans','Segoe UI',Arial,sans-serif;
  --marge:clamp(20px,5vw,72px);
  --max:1200px;
  --r:18px;
  --r-petit:10px;
  --ease:cubic-bezier(.22,.8,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--f-texte);font-weight:400;font-size:17px;line-height:1.65;color:var(--encre);background:var(--lin);overflow-x:hidden}
img,video{display:block;max-width:100%}
main{overflow-x:clip}
a{color:inherit;text-decoration:none}
ul{list-style:none}
strong,b{font-weight:700}
::selection{background:var(--colza);color:var(--encre)}
.evitement{position:absolute;left:-999px;top:8px;background:var(--champ);color:#fff;padding:8px 14px;z-index:999;border-radius:8px}
.evitement:focus{left:8px}

/* ---------- Logo pignons ---------- */
.logo-pignons{width:52px;height:28px}
.logo-pignons .p1{fill:var(--champ)}
.logo-pignons .p2{fill:var(--colza)}
.logo-pignons .p3{fill:var(--champ)}
.logo-pignons.clair .p1{fill:var(--colza)}
.logo-pignons.clair .p2{fill:#fff}
.logo-pignons.clair .p3{fill:var(--colza)}

/* ---------- En-tête ---------- */
.entete{position:sticky;top:0;z-index:50;background:rgba(247,243,234,.96);border-bottom:1px solid var(--trait);transition:box-shadow .3s}
.entete.compacte{box-shadow:0 8px 30px -18px rgba(21,32,43,.35)}
.entete-int{max-width:var(--max);margin:0 auto;padding:0 var(--marge);display:flex;align-items:center;justify-content:space-between;gap:24px;height:82px}
.logo{display:flex;align-items:center;gap:12px}
.logo-txt{display:flex;flex-direction:column;line-height:1.1}
.logo-txt b{font-family:var(--f-titre);font-weight:700;font-size:23px;color:var(--champ-fonce);letter-spacing:.01em}
.logo-txt small{white-space:nowrap;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gris);margin-top:3px}
.nav ul{display:flex;align-items:center;gap:26px}
.nav a{position:relative;font-size:15px;font-weight:600;color:var(--encre);padding:8px 0;white-space:nowrap;transition:color .25s}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:6px;background:var(--colza);border-radius:3px;z-index:-1;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav a:hover::after,.nav a.actif::after{transform:scaleX(1)}
.nav-cta a{background:var(--champ);color:#fff;padding:11px 20px;border-radius:999px;transition:background .3s,transform .3s}
.nav-cta a::after{display:none}
.nav-cta a:hover,.nav-cta a.actif{background:var(--champ-fonce);transform:translateY(-1px)}
.nav-pied{display:none}
.burger{display:none;background:none;border:0;width:42px;height:42px;cursor:pointer;flex-direction:column;justify-content:center;gap:7px;align-items:center}
.burger span{display:block;height:3px;border-radius:3px;background:var(--champ-fonce);width:26px;transition:transform .3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){transform:translateY(-5px) rotate(-45deg)}

/* ---------- Structure ---------- */
.cadre{max-width:var(--max);margin:0 auto;padding:0 var(--marge)}
.bloc{padding:clamp(60px,8vw,110px) 0}
.bloc-serre{padding:clamp(36px,5vw,64px) 0}
.fond-blanc{background:var(--blanc)}
.fond-champ{background:var(--champ-fonce);color:var(--lin)}
.fond-champ h2,.fond-champ h3{color:#fff}
.fond-champ p{color:rgba(247,243,234,.85)}
.fond-colza{background:var(--colza)}
h1,h2,h3,h4{font-family:var(--f-titre);font-weight:700;color:var(--champ-fonce);line-height:1.08;letter-spacing:-.01em}
h1{font-size:clamp(38px,5.4vw,66px)}
h2{font-size:clamp(30px,3.6vw,46px)}
h3{font-size:clamp(21px,2.1vw,26px)}
h4{font-size:19px}
p+p{margin-top:1em}
.chapo{font-size:clamp(18px,1.5vw,20px);color:var(--gris);max-width:60ch;line-height:1.6}
.mesure{max-width:64ch}
.marque{background:linear-gradient(transparent 62%,var(--colza) 62%,var(--colza) 92%,transparent 92%);padding:0 .1em}
.fond-champ .marque{background:linear-gradient(transparent 62%,var(--colza) 62%,var(--colza) 92%,transparent 92%);color:#fff}
.etiquette{display:inline-flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--champ);margin-bottom:16px}
.etiquette::before{content:"";width:14px;height:12px;background:var(--colza);clip-path:polygon(50% 0,100% 100%,0 100%)}
.fond-champ .etiquette{color:var(--colza)}
.entete-bloc{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,48px)}
.entete-bloc h2{max-width:22ch}

/* Boutons */
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:15.5px;padding:15px 26px;border-radius:999px;border:2px solid var(--champ);color:var(--champ);background:transparent;cursor:pointer;transition:background .3s,color .3s,transform .3s var(--ease),box-shadow .3s}
.btn:hover{background:var(--champ);color:#fff;transform:translateY(-2px)}
.btn-plein{background:var(--champ);color:#fff}
.btn-plein:hover{background:var(--champ-fonce);border-color:var(--champ-fonce)}
.btn-colza{background:var(--colza);border-color:var(--colza);color:var(--encre);box-shadow:0 10px 24px -14px rgba(217,172,20,.9)}
.btn-colza:hover{background:var(--colza-fonce);border-color:var(--colza-fonce);color:var(--encre)}
.btn-blanc{border-color:#fff;color:#fff}
.btn-blanc:hover{background:#fff;color:var(--champ-fonce)}
.btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}
.btn:hover svg{transform:translateX(3px)}
.lien{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--champ);border-bottom:2px solid var(--colza);padding-bottom:2px;transition:gap .3s}
.lien:hover{gap:14px}
.fond-champ .lien{color:var(--colza)}

/* Image en forme de pignon */
.pignon{position:relative;overflow:hidden;clip-path:polygon(50% 0,100% 30%,100% 100%,0 100%,0 30%)}
.pignon img,.pignon video{width:100%;height:100%;object-fit:cover}
.arrondi{border-radius:var(--r);overflow:hidden}
.arrondi img{width:100%;height:100%;object-fit:cover}
.carte-img{border-radius:var(--r);overflow:hidden;position:relative;background:var(--champ-pale)}
.carte-img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.carte-img:hover img{transform:scale(1.04)}

/* ---------- Héros ---------- */
.heros{padding:clamp(40px,6vw,72px) 0 clamp(48px,6vw,80px);position:relative}
.heros::before{content:"";position:absolute;left:0;right:0;bottom:0;height:38%;background:var(--champ-pale);border-radius:0 120px 0 0;z-index:0}
.heros-int{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:center}
.heros h1{max-width:13ch}
.heros .chapo{margin-top:22px}
.heros-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.heros-media{position:relative}
.heros-media .pignon{aspect-ratio:4/4.2;background:var(--champ-fonce)}
.heros-media .pignon::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,32,43,0) 60%,rgba(29,58,39,.45))}
.heros-pastille{position:absolute;left:-18px;bottom:28px;background:var(--colza);border-radius:999px;padding:14px 22px;display:flex;align-items:center;gap:12px;box-shadow:0 18px 40px -20px rgba(21,32,43,.5);font-weight:700;font-size:15px;color:var(--encre)}
.heros-pastille b{font-family:var(--f-titre);font-size:28px;line-height:1}
.heros-confiance{display:flex;flex-wrap:wrap;gap:22px;margin-top:36px;padding-top:24px;border-top:1px solid var(--trait)}
.heros-confiance li{display:flex;align-items:center;gap:10px;font-size:14.5px;font-weight:600;color:var(--gris)}
.heros-confiance svg{width:20px;height:20px;fill:none;stroke:var(--champ);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}

/* ---------- Deux publics ---------- */
.publics{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.public{position:relative;border-radius:var(--r);padding:clamp(28px,3.5vw,46px);display:flex;flex-direction:column;gap:16px;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s}
.public:hover{transform:translateY(-4px);box-shadow:0 30px 50px -36px rgba(21,32,43,.5)}
.public.pro{background:var(--champ-fonce);color:var(--lin)}
.public.pro h3{color:#fff;font-size:clamp(24px,2.4vw,30px)}
.public.pro p,.public.pro li{color:rgba(247,243,234,.85)}
.public.part{background:var(--colza);color:var(--encre)}
.public.part h3{color:var(--champ-fonce);font-size:clamp(24px,2.4vw,30px)}
.public .etiquette{margin-bottom:0}
.public.part .etiquette{color:var(--champ-fonce)}
.public.part .etiquette::before{background:var(--champ-fonce)}
.public ul{display:grid;gap:8px}
.public li{display:flex;gap:10px;align-items:flex-start;font-size:15.5px}
.public li::before{content:"";flex:0 0 auto;width:14px;height:12px;margin-top:7px;clip-path:polygon(50% 0,100% 100%,0 100%);background:var(--colza)}
.public.part li::before{background:var(--champ-fonce)}
.public .btn{align-self:flex-start;margin-top:auto}
.public.pro .btn{border-color:var(--colza);color:var(--colza)}
.public.pro .btn:hover{background:var(--colza);color:var(--encre)}
.public.part .btn{border-color:var(--champ-fonce);color:var(--champ-fonce)}
.public.part .btn:hover{background:var(--champ-fonce);color:#fff}
.public-deco{position:absolute;right:-20px;bottom:-30px;width:180px;height:110px;opacity:.12;pointer-events:none}

/* ---------- Métiers (grille) ---------- */
.metiers{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.metier{background:#fff;border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--trait);transition:transform .4s var(--ease),box-shadow .4s}
.metier:hover{transform:translateY(-5px);box-shadow:0 30px 50px -36px rgba(21,32,43,.45)}
.metier .carte-img{border-radius:0;aspect-ratio:4/3}
.metier-corps{padding:22px 24px 26px;display:flex;flex-direction:column;gap:8px;flex:1}
.metier-corps h3{font-size:22px}
.metier-corps p{font-size:15px;color:var(--gris);flex:1}
.metier-corps .lien{align-self:flex-start;font-size:14.5px}

/* ---------- Comment ça marche (frise) ---------- */
.frise{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;position:relative}
.frise::before{content:"";position:absolute;left:40px;right:40px;top:34px;height:3px;background:repeating-linear-gradient(90deg,var(--colza) 0 14px,transparent 14px 24px);opacity:.8}
.etape{position:relative;padding-top:0}
.etape .rond{width:68px;height:68px;border-radius:50%;background:var(--colza);display:grid;place-items:center;font-family:var(--f-titre);font-weight:700;font-size:28px;color:var(--champ-fonce);position:relative;z-index:1;border:6px solid var(--lin)}
.fond-champ .etape .rond{border-color:var(--champ-fonce)}
.etape h3{font-size:21px;margin:18px 0 8px}
.etape p{font-size:15px}

/* ---------- Chiffres / engagements ---------- */
.engagements{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.engagement{background:#fff;border-radius:var(--r);padding:30px 28px;border-top:8px solid var(--colza)}
.engagement b{display:block;font-family:var(--f-titre);font-size:42px;line-height:1;color:var(--champ-fonce);margin-bottom:10px}
.engagement p{font-size:15.5px;color:var(--gris)}

/* ---------- Bande territoire ---------- */
.territoire-bande{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.territoire-bande .arrondi{aspect-ratio:4/3}
.villes{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.villes li{background:#fff;border:1px solid var(--trait);border-radius:999px;padding:8px 16px;font-size:14.5px;font-weight:600}
.villes li.fort{background:var(--colza);border-color:var(--colza)}

/* ---------- Témoignages ---------- */
.temoins{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.temoin{background:#fff;border-radius:var(--r);padding:30px 28px;position:relative}
.temoin::before{content:"“";position:absolute;top:10px;right:22px;font-family:var(--f-titre);font-size:80px;line-height:1;color:var(--colza)}
.temoin p{font-size:15.5px;font-style:italic;color:var(--encre)}
.temoin cite{display:block;margin-top:18px;font-style:normal;font-size:13.5px;font-weight:700;color:var(--champ)}
.temoin cite small{display:block;font-weight:400;color:var(--gris)}

/* ---------- Appel final ---------- */
.appel{border-radius:var(--r);background:var(--champ-fonce);color:var(--lin);padding:clamp(36px,5vw,64px);display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:center;position:relative;overflow:hidden}
.appel::after{content:"";position:absolute;right:-60px;top:-40px;width:320px;height:320px;border-radius:50%;background:var(--colza);opacity:.18}
.appel h2{color:#fff}
.appel p{color:rgba(247,243,234,.85);margin-top:12px}
.appel-actions{display:flex;flex-direction:column;gap:12px;align-items:flex-start;position:relative;z-index:1}

/* ---------- Pages intérieures ---------- */
.ouverture{padding:clamp(48px,7vw,96px) 0 clamp(32px,4vw,56px)}
.ouverture-int{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,4vw,64px);align-items:end}
.ouverture h1{max-width:16ch}
.ouverture-img{margin-top:clamp(28px,4vw,56px)}
.ouverture-img .pignon{aspect-ratio:21/8}
.ouverture-img .arrondi{aspect-ratio:21/8}

/* Offre pro : lignes détaillées */
.offre{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,4vw,64px);align-items:center;padding:clamp(40px,5vw,72px) 0;border-bottom:1px solid var(--trait)}
.offre:nth-child(even) .offre-img{order:2}
.offre-img .arrondi{aspect-ratio:1/1;max-width:480px}
.offre:nth-child(even) .offre-img .arrondi{margin-left:auto}
.offre h2{margin-bottom:14px}
.offre ul{display:grid;gap:8px;margin-top:18px}
.offre li{display:flex;gap:10px;font-size:15.5px}
.offre li::before{content:"";flex:0 0 auto;width:14px;height:12px;margin-top:8px;clip-path:polygon(50% 0,100% 100%,0 100%);background:var(--colza)}

/* Modalités / commission */
.modalites{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.modalite{background:#fff;border-radius:var(--r);padding:32px 28px;border:1px solid var(--trait);display:flex;flex-direction:column}
.modalite.fort{background:var(--champ-fonce);color:var(--lin);border-color:var(--champ-fonce)}
.modalite.fort h3,.modalite.fort .taux{color:#fff}
.modalite.fort p,.modalite.fort li{color:rgba(247,243,234,.85)}
.modalite .sur{font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--champ);margin-bottom:10px}
.modalite.fort .sur{color:var(--colza)}
.modalite h3{margin-bottom:6px}
.modalite .taux{font-family:var(--f-titre);font-size:40px;font-weight:700;color:var(--champ-fonce);line-height:1;margin:14px 0 4px}
.modalite .taux small{font-family:var(--f-texte);font-size:13.5px;font-weight:600;color:var(--gris)}
.modalite.fort .taux small{color:var(--colza-pale)}
.modalite p{font-size:15px;color:var(--gris)}
.modalite ul{margin:18px 0 22px;display:grid;gap:8px;flex:1}
.modalite li{font-size:15px;color:var(--gris);padding-left:22px;position:relative}
.modalite li::before{content:"";position:absolute;left:0;top:.5em;width:12px;height:10px;clip-path:polygon(50% 0,100% 100%,0 100%);background:var(--colza)}
.modalite .btn{align-self:flex-start}
.modalite.fort .btn{border-color:var(--colza);color:var(--colza)}
.modalite.fort .btn:hover{background:var(--colza);color:var(--encre)}
.note{margin-top:22px;font-size:14px;color:var(--gris);max-width:72ch}

/* Particuliers : domaines + garanties */
.domaines-part{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.domaine-part{background:#fff;border-radius:var(--r);padding:22px 18px;text-align:center;border:1px solid var(--trait);transition:transform .35s var(--ease),border-color .3s}
.domaine-part:hover{transform:translateY(-4px);border-color:var(--colza)}
.domaine-part .ico{width:48px;height:48px;margin:0 auto 12px;border-radius:14px;background:var(--colza-pale);display:grid;place-items:center}
.domaine-part .ico svg{width:26px;height:26px;fill:none;stroke:var(--champ);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.domaine-part h3{font-size:18px;margin-bottom:4px}
.domaine-part p{font-size:13.5px;color:var(--gris)}
.garanties{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px);align-items:center}
.garanties .arrondi{aspect-ratio:4/5;max-width:460px}
.garantie-liste{display:grid;gap:14px;margin-top:22px}
.garantie-liste li{background:#fff;border-radius:var(--r-petit);padding:16px 20px;border-left:6px solid var(--colza);font-size:15.5px}
.garantie-liste li b{color:var(--champ-fonce)}
.questions{display:grid;gap:12px;max-width:820px}
.questions details{background:#fff;border-radius:var(--r-petit);border:1px solid var(--trait)}
.questions summary{cursor:pointer;padding:18px 22px;font-family:var(--f-titre);font-weight:600;font-size:19px;color:var(--champ-fonce);list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center}
.questions summary::-webkit-details-marker{display:none}
.questions summary::after{content:"+";font-size:26px;color:var(--colza-fonce);font-family:var(--f-texte);transition:transform .3s}
.questions details[open] summary::after{transform:rotate(45deg)}
.questions details p{padding:0 22px 20px;font-size:15.5px;color:var(--gris)}

/* Territoire */
.carte-territoire{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px);align-items:start}
.zones{display:grid;gap:16px}
.zone{background:#fff;border-radius:var(--r);padding:24px 26px;border:1px solid var(--trait);display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start}
.zone .code{font-family:var(--f-titre);font-weight:700;font-size:30px;color:var(--colza-fonce);line-height:1;min-width:52px}
.zone h3{font-size:20px;margin-bottom:6px}
.zone p{font-size:15px;color:var(--gris)}
.zone .villes{margin-top:12px}
.zone .villes li{font-size:13.5px;padding:5px 12px;background:var(--lin)}
.ancrage{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px);align-items:center}
.ancrage .arrondi{aspect-ratio:4/3}

/* Fondateur */
.portrait{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,5vw,80px);align-items:start}
.portrait .pignon{aspect-ratio:4/5;position:sticky;top:104px}
.portrait h2{margin:34px 0 12px}
.portrait h2:first-of-type{margin-top:0}
.valeurs{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:8px}
.valeur{background:#fff;border-radius:var(--r-petit);padding:20px 22px;border:1px solid var(--trait)}
.valeur h3{font-size:19px;margin-bottom:6px}
.valeur p{font-size:15px;color:var(--gris)}
.fiche{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--trait);border-radius:var(--r);overflow:hidden;background:#fff;margin-top:30px}
.fiche div{padding:16px 20px;border-bottom:1px solid var(--trait)}
.fiche div:nth-child(odd){border-right:1px solid var(--trait)}
.fiche div:nth-last-child(-n+2){border-bottom:0}
.fiche dt{font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);margin-bottom:3px}
.fiche dd{font-size:15.5px}

/* Contact */
.contact{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,5vw,72px);align-items:start}
.contact-infos{position:sticky;top:104px}
.contact-infos h2{margin-bottom:16px}
.contact-infos dl{display:grid;gap:14px}
.contact-infos dt{font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);margin-bottom:3px}
.contact-infos dd{font-size:16.5px}
.contact-infos dd a{border-bottom:2px solid var(--colza)}
.contact-infos .a-venir{font-size:14.5px;color:var(--gris);font-style:italic}
.contact-infos .engagement{margin-top:26px;padding:22px 24px}
.contact-infos .engagement b{font-size:30px}
.formulaire{background:#fff;border-radius:var(--r);padding:clamp(24px,4vw,44px);border:1px solid var(--trait)}
.formulaire h2{font-size:26px;margin-bottom:6px}
.formulaire .intro{font-size:15px;color:var(--gris);margin-bottom:22px}
.profil{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}
.profil label{display:flex;gap:12px;align-items:center;border:2px solid var(--trait);border-radius:var(--r-petit);padding:14px 16px;cursor:pointer;font-weight:700;transition:border-color .3s,background .3s}
.profil label:has(input:checked){border-color:var(--champ);background:var(--champ-pale)}
.profil input{accent-color:var(--champ);width:18px;height:18px}
.profil small{display:block;font-weight:400;font-size:13px;color:var(--gris)}
.grille-champs{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.champ{display:flex;flex-direction:column;gap:6px}
.champ.large{grid-column:1/-1}
.champ label{font-size:13px;font-weight:700;color:var(--champ-fonce)}
.champ label small{font-weight:400;color:var(--gris)}
.champ input,.champ select,.champ textarea{font:inherit;font-size:16px;color:var(--encre);background:var(--lin);border:2px solid transparent;border-radius:var(--r-petit);padding:13px 14px;outline:0;transition:border-color .3s,background .3s;appearance:none;-webkit-appearance:none}
.champ select{background-image:linear-gradient(45deg,transparent 50%,var(--champ) 50%),linear-gradient(135deg,var(--champ) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.champ textarea{min-height:140px;resize:vertical}
.champ input:focus,.champ select:focus,.champ textarea:focus{border-color:var(--colza);background:#fff}
.champ.miel{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.seulement-pro,.seulement-part{display:none}
.formulaire.mode-pro .seulement-pro,.formulaire.mode-part .seulement-part{display:flex}
.consentement{grid-column:1/-1;display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--gris)}
.consentement input{margin-top:4px;accent-color:var(--champ);width:18px;height:18px;flex:0 0 auto}
.consentement a{border-bottom:2px solid var(--colza);color:var(--encre)}
.formulaire .btn{margin-top:24px}
.formulaire .mention{margin-top:14px;font-size:13px;color:var(--gris)}
.etat{padding:16px 20px;margin-bottom:22px;border-radius:var(--r-petit);background:var(--champ-pale);border-left:6px solid var(--champ);font-size:15px}
.etat.erreur{background:#FBE9E4;border-color:#B5452E;color:#6E2416}

/* Légal */
.legal{display:grid;grid-template-columns:230px 1fr;gap:clamp(28px,4vw,72px);align-items:start}
.legal-sommaire{position:sticky;top:104px;background:#fff;border-radius:var(--r);padding:18px 20px;border:1px solid var(--trait)}
.legal-sommaire p{font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);margin-bottom:10px}
.legal-sommaire a{display:block;padding:7px 0;font-size:14.5px;font-weight:600;border-bottom:1px solid var(--trait);transition:color .3s,padding-left .3s}
.legal-sommaire a:last-child{border-bottom:0}
.legal-sommaire a:hover,.legal-sommaire a.actif{color:var(--champ);padding-left:8px}
.legal-corps{max-width:72ch}
.legal-corps h2{font-size:24px;margin:38px 0 10px;scroll-margin-top:104px}
.legal-corps h2:first-child{margin-top:0}
.legal-corps h3{font-size:19px;margin:20px 0 8px}
.legal-corps p,.legal-corps li{font-size:16px}
.legal-corps ul{display:grid;gap:6px;margin:10px 0 10px 18px;list-style:disc}
.legal-corps li::marker{color:var(--colza-fonce)}
.legal-corps a{border-bottom:2px solid var(--colza)}
.legal-corps table{width:100%;border-collapse:collapse;margin:14px 0;font-size:15px;background:#fff;border-radius:var(--r-petit);overflow:hidden}
.legal-corps th,.legal-corps td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--trait);vertical-align:top}
.legal-corps th{font-weight:700;color:var(--champ-fonce);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;background:var(--champ-pale)}
.legal-maj{font-size:13px;color:var(--gris);margin-top:36px;padding-top:14px;border-top:1px solid var(--trait)}

/* ---------- Pied de page ---------- */
.pied{background:var(--champ-fonce);color:var(--lin);margin-top:clamp(40px,6vw,80px);border-radius:48px 48px 0 0}
.pied-int{max-width:var(--max);margin:0 auto;padding:clamp(48px,6vw,80px) var(--marge) 36px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:36px}
.pied-nom{font-family:var(--f-titre);font-size:28px;font-weight:700;color:#fff;margin-top:14px}
.pied-sous{font-size:14px;color:var(--colza);margin-top:4px;max-width:34ch}
.pied-adr{margin-top:16px;font-size:15px;color:rgba(247,243,234,.8)}
.pied-horaires{margin-top:8px;font-size:13.5px;color:rgba(247,243,234,.6)}
.pied-titre{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--colza);font-weight:700;margin-bottom:14px}
.pied-col li{margin-bottom:9px;font-size:15px;color:rgba(247,243,234,.82)}
.pied-col a:hover{color:var(--colza)}
.pied-bas{border-top:1px solid rgba(247,243,234,.12)}
.pied-bas{max-width:var(--max);margin:0 auto;padding:20px var(--marge) 28px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:rgba(247,243,234,.55)}

/* ---------- Apparitions (jamais invisibles sans JS) ---------- */
.js .apparait{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .apparait.visible{opacity:1;transform:none}
.js .apparait.retard-1{transition-delay:.1s}
.js .apparait.retard-2{transition-delay:.2s}
.js .apparait.retard-3{transition-delay:.3s}
@media (prefers-reduced-motion:reduce){.js .apparait{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  .metiers,.temoins,.engagements,.modalites{grid-template-columns:repeat(2,1fr)}
  .frise{grid-template-columns:repeat(2,1fr);gap:34px 22px}
  .frise::before{display:none}
  .domaines-part{grid-template-columns:repeat(3,1fr)}
  .pied-int{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .entete-int{height:70px}
  .logo-txt small{white-space:normal;max-width:200px;line-height:1.2}
  .burger{display:flex}
  .nav{position:fixed;inset:70px 0 0 0;background:var(--champ-fonce);padding:36px var(--marge);clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .45s var(--ease),visibility 0s .45s;display:flex;flex-direction:column;justify-content:space-between;overflow-y:auto}
  .nav.ouverte{clip-path:inset(0);visibility:visible;transition-delay:0s}
  .nav ul{flex-direction:column;align-items:flex-start;gap:6px}
  .nav a{font-family:var(--f-titre);font-weight:700;font-size:28px;color:#fff;padding:10px 0}
  .nav a::after{bottom:8px;height:8px}
  .nav-cta a{background:var(--colza);color:var(--encre);font-family:var(--f-texte);font-size:16px;margin-top:16px;padding:14px 24px}
  .nav-pied{display:block;color:rgba(247,243,234,.7);font-size:14px}
  .nav-pied a{font-family:var(--f-texte);font-size:14px;color:var(--colza);padding:0}
  .heros-int,.publics,.territoire-bande,.appel,.ouverture-int,.offre,.garanties,.carte-territoire,.ancrage,.portrait,.contact,.legal{grid-template-columns:1fr}
  .heros::before{height:30%;border-radius:0 80px 0 0}
  .heros-media .pignon{aspect-ratio:4/3.2}
  .heros-pastille{left:12px}
  .offre:nth-child(even) .offre-img{order:0}
  .offre:nth-child(even) .offre-img .arrondi{margin-left:0}
  .portrait .pignon,.contact-infos,.legal-sommaire{position:static}
  .portrait .pignon{max-width:420px}
  .legal-sommaire a{display:inline-block;margin-right:12px;border:0;padding:4px 0}
}
@media (max-width:600px){
  body{font-size:16px}
  .metiers,.temoins,.engagements,.modalites,.frise,.valeurs,.domaines-part,.grille-champs,.profil{grid-template-columns:1fr}
  .pied-int{grid-template-columns:1fr;gap:28px}
  .fiche{grid-template-columns:1fr}
  .fiche div:nth-child(odd){border-right:0}
  .fiche div:nth-last-child(2){border-bottom:1px solid var(--trait)}
  .heros h1{font-size:38px}
  .logo-txt small{display:none}
  .pied{border-radius:28px 28px 0 0}
}
