/* maçonnerie-broye.ch — design system
   Registre : lever de jour — béton clair, verre chaud, ambre/corail.
   Signature : cadre photo légèrement pivoté + carte de verre qui déborde sur la limite du cadre. */

@font-face{
  font-family:'Bricolage';
  src:url('../fonts/bricolage-var.woff2') format('woff2');
  font-weight:200 800; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Plex';
  src:url('../fonts/ibmplexsans-var.woff2') format('woff2');
  font-weight:100 700; font-style:normal; font-display:swap;
}

:root{
  --creme:#fbf5ec;
  --creme-carte:#fffbf4;
  --creme-bande:#f4ebda;
  --encre:#211a12;
  --encre-douce:#4a4032;
  --encre-att:#453a2e;
  --rouille:#6b2c19;
  --corail-texte:#d6523f;
  --ambre:#f2a93b;
  --corail:#f2665c;
  --ligne:#e9dcc7;
  --ligne-sombre:rgba(255,255,255,.12);
  --sombre:#211a12;
  --sombre-surface:#2c2115;
  --sombre-texte:#f5ecdd;
  --sombre-texte-att:#c7b9a2;

  --r-sm:9px; --r-md:14px; --r-lg:20px;
  --ombre-carte:0 26px 54px rgba(33,26,18,.16);
  --ombre-flottante:0 32px 64px rgba(33,26,18,.3);

  --font-display:'Bricolage','IBM Plex Sans',sans-serif;
  --font-texte:'Plex','IBM Plex Sans',sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--creme);
  color:var(--encre);
  font-family:var(--font-texte);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--font-display);margin:0;letter-spacing:-.01em;}
p{margin:0;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}
input,textarea,select{font-family:inherit;}
.conteneur{max-width:1240px;margin:0 auto;padding-inline:6vw;}
@media(min-width:1500px){.conteneur{padding-inline:calc((100% - 1400px)/2);}}

.skip-link{position:absolute;left:-999px;top:0;background:var(--encre);color:var(--creme);padding:12px 20px;z-index:100;border-radius:0 0 8px 0;}
.skip-link:focus{left:0;}

/* ===== Header ===== */
.entete{
  position:sticky; top:0; z-index:50;
  padding:20px 6vw;
  display:flex; align-items:center; justify-content:space-between;
  background:rgba(251,245,236,.0);
  transition:transform .35s ease, background .3s ease, padding .3s ease, box-shadow .3s ease;
}
.entete.solide{
  background:rgba(251,245,236,.88);
  backdrop-filter:blur(14px);
  padding:13px 6vw;
  box-shadow:0 8px 30px rgba(33,26,18,.08);
  border-bottom:1px solid var(--ligne);
}
.entete.cache{transform:translateY(-110%);}
.logo{font-family:var(--font-display);font-weight:800;font-size:19px;letter-spacing:-.01em;text-decoration:none;color:var(--encre);}
.logo span{color:var(--corail-texte);}
.nav-principale{display:flex;align-items:center;gap:30px;}
.nav-principale a:not(.btn-nav){text-decoration:none;font-size:14.5px;font-weight:500;position:relative;padding-bottom:3px;color:var(--encre);}
.nav-principale a:not(.btn-nav)::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--corail);transition:width .2s ease;}
.nav-principale a:not(.btn-nav):hover::after{width:100%;}
.btn-nav{background:var(--encre);color:var(--creme);padding:11px 20px;font-family:var(--font-display);font-weight:700;font-size:13.5px;text-decoration:none;border-radius:var(--r-sm);transition:transform .18s ease, box-shadow .18s ease;display:inline-block;}
.btn-nav:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(33,26,18,.25);}
.burger{display:none;background:none;border:none;padding:8px;}
.burger span{display:block;width:24px;height:2px;background:var(--encre);margin:5px 0;transition:transform .25s ease, opacity .25s ease;}

.menu-mobile{display:none;position:fixed;inset:0;z-index:60;background:var(--creme);padding:26px 6vw;flex-direction:column;}
.menu-mobile.ouvert{display:flex;}
.menu-mobile .fermer{align-self:flex-end;background:none;border:none;font-size:28px;color:var(--encre);margin-bottom:30px;}
.menu-mobile a{display:block;padding:16px 0;font-family:var(--font-display);font-weight:700;font-size:22px;text-decoration:none;color:var(--encre);border-bottom:1px solid var(--ligne);}
.menu-mobile .btn-nav{margin-top:24px;text-align:center;}

/* ===== Boutons & liens ===== */
.btn-primaire{
  position:relative; display:inline-block;
  background:linear-gradient(100deg,var(--ambre),var(--corail));
  color:var(--encre); font-family:var(--font-display); font-weight:800;
  padding:17px 32px; font-size:15px; text-decoration:none; border-radius:var(--r-sm);
  box-shadow:0 6px 20px rgba(242,102,92,.28), 0 2px 46px rgba(242,102,92,.32);
  transition:transform .18s ease, box-shadow .18s ease;
  border:none;
}
.btn-primaire:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(242,102,92,.4), 0 2px 50px rgba(242,102,92,.4);}
.btn-secondaire{
  display:inline-block; background:var(--creme-carte); color:var(--encre);
  font-family:var(--font-display); font-weight:700; padding:15px 28px; font-size:14.5px;
  text-decoration:none; border-radius:var(--r-sm); border:1.5px solid var(--encre);
  transition:transform .18s ease, background .18s ease;
}
.btn-secondaire:hover{transform:translateY(-2px);background:var(--encre);color:var(--creme);}
.lien-souligne{color:var(--encre);text-decoration:none;font-weight:600;font-size:14.5px;border-bottom:2px solid var(--encre);padding-bottom:3px;transition:opacity .18s ease;}
.lien-souligne:hover{opacity:.6;}
.lien-fleche{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-display);font-weight:700;font-size:13.5px;color:var(--encre);text-decoration:none;}
.lien-fleche svg{transition:transform .18s ease;}
.lien-fleche:hover svg{transform:translateX(4px);}

/* ===== Hero (accueil) ===== */
.hero{position:relative;overflow:hidden;isolation:isolate;}
.foyer{position:absolute;border-radius:50%;filter:blur(90px);z-index:0;isolation:isolate;will-change:transform;transform:translateZ(0);}

/* Grain — appliqué à toute zone à foyers (héros, bande sombre, cta) via ::before, jamais dans le calque flouté des foyers */
.hero::before,.bande-sombre::before,.cta-bande::before{
  content:"";position:absolute;inset:0;z-index:1;opacity:.27;mix-blend-mode:multiply;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.bande-sombre::before,.cta-bande::before{mix-blend-mode:screen;opacity:.09;}

.hero-accueil{min-height:92vh;}
.hero-accueil .f1{width:720px;height:640px;left:-12%;top:-18%;background:radial-gradient(ellipse, rgba(242,169,59,.55), transparent 70%);}
.hero-accueil .f2{width:640px;height:600px;right:-10%;top:0%;background:radial-gradient(ellipse, rgba(242,102,92,.4), transparent 70%);}
.hero-accueil .f3{width:520px;height:460px;left:32%;bottom:-20%;background:radial-gradient(ellipse, rgba(255,206,120,.42), transparent 70%);}
.hero-accueil .f4{width:460px;height:420px;right:6%;bottom:-14%;background:radial-gradient(ellipse, rgba(232,94,140,.32), transparent 70%);}

.hero-wrap{position:relative;z-index:3;display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center;min-height:78vh;padding-block:5vh 12vh;}
.eyebrow{font-family:var(--font-display);font-weight:300;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--rouille);margin-bottom:18px;display:flex;align-items:center;gap:10px;}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--rouille);display:inline-block;}
.h-hero{font-weight:800;font-size:clamp(36px,4.6vw,58px);line-height:1.02;letter-spacing:-.015em;padding-block:.22em;margin-block:-.22em;}
.h-hero .accent{background:linear-gradient(100deg,var(--ambre),var(--corail));-webkit-background-clip:text;background-clip:text;color:transparent;}
.lead{margin-top:20px;max-width:46ch;font-size:18px;line-height:1.6;color:var(--encre-douce);}
.cta-row{margin-top:30px;display:flex;gap:22px;align-items:center;flex-wrap:wrap;}
.badges-row{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap;}
.badge-mini{background:rgba(255,255,255,.5);border:1px solid var(--ligne);backdrop-filter:blur(6px);padding:7px 13px;font-size:12px;font-weight:600;border-radius:20px;color:var(--encre-douce);}

.photo-wrap{position:relative;}
.photo-frame{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:0 44px 90px rgba(33,26,18,.28);transform:rotate(1.6deg);transition:transform .4s ease;}
.photo-frame:hover{transform:rotate(.4deg) scale(1.015);}
.photo-frame img{width:100%;height:auto;display:block;aspect-ratio:4/5;object-fit:cover;}
.photo-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(200deg, rgba(33,26,18,0) 55%, rgba(33,26,18,.35));}

.carte-verre{
  background:rgba(255,251,244,.68); backdrop-filter:blur(20px); border-radius:var(--r-md);
  border:1px solid transparent;
  background-image:linear-gradient(rgba(255,251,244,.88),rgba(255,251,244,.88)),linear-gradient(135deg,var(--ambre),var(--corail) 70%,transparent 90%);
  background-origin:border-box; background-clip:padding-box,border-box;
  padding:22px; box-shadow:var(--ombre-flottante);
}
.carte-devis{position:absolute;left:-40px;bottom:-44px;z-index:6;width:264px;transform:rotate(-2.2deg);}
.carte-devis h2,.carte-devis h3{font-family:var(--font-display);font-weight:700;font-size:14.5px;margin-bottom:13px;color:var(--rouille);}
.carte-devis input,.carte-devis select,.carte-devis textarea{width:100%;background:#fff;border:1px solid var(--ligne);color:var(--encre);padding:11px;margin-bottom:9px;font-family:var(--font-texte);font-size:12.5px;border-radius:9px;}
.carte-devis input::placeholder{color:#a8987f;}
.btn-mini{width:100%;text-align:center;background:linear-gradient(100deg,var(--ambre),var(--corail));color:var(--encre);padding:12px;font-family:var(--font-display);font-weight:700;font-size:13px;border-radius:9px;display:block;box-shadow:0 4px 20px rgba(242,102,92,.3);border:none;}
.mention-rgpd{font-size:10px;color:var(--encre-att);margin-top:8px;text-align:center;line-height:1.4;}

/* ===== Hero pages intérieures (prestation/ville) ===== */
.hero-page{min-height:56vh;display:flex;align-items:flex-end;}
.hero-page .f1{width:520px;height:520px;left:-8%;top:-10%;background:radial-gradient(circle, rgba(242,169,59,.45), transparent 70%);}
.hero-page .f2{width:420px;height:420px;right:-6%;top:0;background:radial-gradient(circle, rgba(242,102,92,.3), transparent 70%);}
.hero-page-wrap{position:relative;z-index:3;padding-block:10vh 6vh;max-width:820px;}
.fil-ariane{font-size:12.5px;color:var(--encre-att);margin-bottom:16px;}
.fil-ariane a{text-decoration:underline;text-underline-offset:2px;color:var(--encre-att);}
.fil-ariane a:hover{color:var(--encre);}
.h-page{font-weight:800;font-size:clamp(32px,4.2vw,50px);line-height:1.04;letter-spacing:-.01em;padding-block:.2em;margin-block:-.2em;}
.h-page .accent{background:linear-gradient(100deg,var(--ambre),var(--corail));-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero-page .lead{margin-top:16px;}

/* ===== Reassurance ===== */
.reassurance{position:relative;z-index:3;border-top:1px solid var(--ligne);border-bottom:1px solid var(--ligne);background:rgba(255,255,255,.4);}
.reassurance .wrap{padding-block:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;}
.reassurance .item{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;color:var(--encre-douce);}
.reassurance .item b{color:var(--encre);font-family:var(--font-display);font-weight:800;font-size:17px;}

/* ===== Sections génériques ===== */
.section{padding-block:100px;}
.section.serre{padding-block:70px;}
.section-eyebrow{font-family:var(--font-display);font-weight:300;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--rouille);margin-bottom:14px;}
.section-head{max-width:660px;margin-bottom:56px;}
.section-head h2{font-weight:800;font-size:clamp(28px,3.4vw,40px);line-height:1.06;letter-spacing:-.01em;}
.section-head p{margin-top:14px;color:var(--encre-douce);font-size:16px;line-height:1.6;max-width:56ch;}
.section-head.centre{margin-inline:auto;text-align:center;}

/* ===== Grille prestations (signature) ===== */
.grille-presta{display:grid;grid-template-columns:repeat(3,1fr);gap:56px 40px;}
.carte-presta{position:relative;padding-bottom:52px;}
.carte-presta .cadre{position:relative;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--ombre-carte);transition:transform .35s ease, box-shadow .35s ease;}
.carte-presta:nth-child(3n+1) .cadre{transform:rotate(-1.4deg);}
.carte-presta:nth-child(3n+2) .cadre{transform:rotate(1deg);}
.carte-presta:nth-child(3n+3) .cadre{transform:rotate(-.6deg);}
.carte-presta:hover .cadre{transform:rotate(0deg) translateY(-6px);box-shadow:0 34px 70px rgba(33,26,18,.22);}
.carte-presta .cadre img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;display:block;}
.carte-presta .cadre::after{content:"";position:absolute;inset:0;background:linear-gradient(200deg, rgba(33,26,18,0) 50%, rgba(33,26,18,.4));}
.tag-flottant{position:absolute;left:16px;bottom:-30px;z-index:4;width:calc(100% - 32px);
  background:rgba(255,251,244,.72);backdrop-filter:blur(16px);border-radius:12px;
  border:1px solid transparent;background-image:linear-gradient(rgba(255,251,244,.9),rgba(255,251,244,.9)),linear-gradient(135deg,var(--ambre),var(--corail) 70%,transparent 90%);
  background-origin:border-box;background-clip:padding-box,border-box;
  padding:12px 16px;box-shadow:0 18px 36px rgba(33,26,18,.22);}
.tag-flottant h3{font-weight:700;font-size:16px;margin-bottom:2px;}
.tag-flottant span{font-size:12.5px;color:var(--encre-douce);}
.carte-presta .voir{margin-top:14px;margin-left:16px;}

/* ===== Bande sombre (process / pourquoi nous) ===== */
.bande-sombre{background:var(--sombre);color:var(--sombre-texte);position:relative;overflow:hidden;isolation:isolate;}
.bande-sombre .foyer.f1{width:520px;height:520px;left:-6%;top:-14%;background:radial-gradient(circle, rgba(242,169,59,.24), transparent 70%);}
.bande-sombre .foyer.f2{width:420px;height:420px;right:-4%;bottom:-10%;background:radial-gradient(circle, rgba(242,102,92,.18), transparent 70%);}
.bande-sombre .section-eyebrow{color:var(--ambre);}
.bande-sombre .section-head p{color:var(--sombre-texte-att);}
.etapes{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:32px;counter-reset:etape;}
.etape{position:relative;padding-top:56px;}
.etape::before{counter-increment:etape;content:counter(etape,decimal-leading-zero);position:absolute;top:0;left:0;font-family:var(--font-display);font-weight:800;font-size:34px;
  background:linear-gradient(100deg,var(--ambre),var(--corail));-webkit-background-clip:text;background-clip:text;color:transparent;padding-block:.2em;margin-block:-.2em;}
.etape h3{font-size:17px;font-weight:700;margin-bottom:8px;}
.etape p{font-size:14.5px;color:var(--sombre-texte-att);line-height:1.55;}

.stats-flottantes{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:64px;border-radius:var(--r-md);overflow:hidden;}
.stat-tuile{background:var(--sombre-surface);border:1px solid var(--ligne-sombre);padding:26px 22px;}
.stat-tuile b{display:block;font-family:var(--font-display);font-weight:800;font-size:32px;background:linear-gradient(100deg,var(--ambre),var(--corail));-webkit-background-clip:text;background-clip:text;color:transparent;padding-block:.15em;margin-block:-.15em;}
.stat-tuile span{font-size:13px;color:var(--sombre-texte-att);}

/* ===== Villes grid ===== */
.grille-villes{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.carte-ville{background:var(--creme-carte);border:1px solid var(--ligne);border-radius:var(--r-md);padding:22px;text-decoration:none;color:var(--encre);transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;}
.carte-ville:hover{transform:translateY(-4px);box-shadow:var(--ombre-carte);border-color:var(--corail);}
.carte-ville .canton{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.06em;color:var(--rouille);background:#fbeadb;padding:3px 8px;border-radius:6px;margin-bottom:10px;}
.carte-ville h3{font-size:17px;font-weight:700;}
.carte-ville p{font-size:13px;color:var(--encre-att);margin-top:4px;}

/* ===== Boîte régime légal (VD/FR) ===== */
.boite-regime{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--ligne);border:1px solid var(--ligne);border-radius:var(--r-md);overflow:hidden;margin-block:28px;}
.boite-regime .col{background:var(--creme-carte);padding:24px;}
.boite-regime h2,.boite-regime h3{font-size:14px;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:8px;}
.boite-regime .pastille{width:9px;height:9px;border-radius:50%;display:inline-block;}
.boite-regime .col.vd .pastille{background:#3b6fe0;}
.boite-regime .col.fr .pastille{background:#22c1a6;}
.boite-regime p{font-size:14px;color:var(--encre-douce);line-height:1.6;}
.boite-regime .art{font-size:12px;color:var(--encre-att);margin-top:8px;font-style:italic;}
@media(max-width:720px){.boite-regime{grid-template-columns:1fr;}}

/* ===== Contenu prose (pages prestations/villes) ===== */
.prose{max-width:760px;}
.prose h2{font-size:clamp(24px,2.6vw,30px);margin-top:52px;margin-bottom:16px;}
.prose h2:first-child{margin-top:0;}
.prose h3{font-family:var(--font-display);font-size:19px;font-weight:700;margin-top:32px;margin-bottom:10px;}
.prose p{margin-bottom:16px;color:var(--encre-douce);font-size:16.5px;line-height:1.7;}
.prose ul{margin-bottom:16px;}
.prose li{position:relative;padding-left:24px;margin-bottom:10px;color:var(--encre-douce);font-size:16px;line-height:1.6;}
.prose li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;background:linear-gradient(100deg,var(--ambre),var(--corail));border-radius:2px;}
.prose strong{color:var(--encre);}
.grille-2col{display:grid;grid-template-columns:1fr 1fr;gap:60px;}
@media(max-width:900px){.grille-2col{grid-template-columns:1fr;gap:40px;}}

.table-prix{width:100%;border-collapse:collapse;margin-block:24px;font-size:14.5px;}
.table-prix th,.table-prix td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--ligne);}
.table-prix th{font-family:var(--font-display);font-weight:700;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--encre-att);}
.table-prix td.prix{font-family:var(--font-display);font-weight:700;color:var(--rouille);white-space:nowrap;}
.note-prix{font-size:12.5px;color:var(--encre-att);margin-top:10px;font-style:italic;}

/* ===== FAQ ===== */
.faq-liste{max-width:820px;}
.faq-item{border-bottom:1px solid var(--ligne);}
.faq-question{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;background:none;border:none;text-align:left;font-family:var(--font-display);font-weight:700;font-size:16.5px;color:var(--encre);}
.faq-question .plus{flex-shrink:0;width:26px;height:26px;position:relative;}
.faq-question .plus::before,.faq-question .plus::after{content:"";position:absolute;background:var(--encre);transition:transform .25s ease;}
.faq-question .plus::before{left:0;top:50%;width:100%;height:2px;transform:translateY(-50%);}
.faq-question .plus::after{top:0;left:50%;width:2px;height:100%;transform:translateX(-50%);}
.faq-item.ouvert .plus::after{transform:translateX(-50%) rotate(90deg);opacity:0;}
.faq-reponse{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.faq-reponse p{padding-bottom:22px;color:var(--encre-douce);font-size:15.5px;line-height:1.65;max-width:70ch;}

/* ===== CTA bande ===== */
.cta-bande{position:relative;background:var(--sombre);color:var(--sombre-texte);border-radius:var(--r-lg);overflow:hidden;padding:64px 6vw;text-align:center;isolation:isolate;}
.cta-bande .foyer{width:600px;height:600px;left:50%;top:-40%;transform:translateX(-50%);background:radial-gradient(circle, rgba(242,169,59,.28), transparent 70%);}
.cta-bande h2{position:relative;z-index:2;font-size:clamp(26px,3.2vw,36px);font-weight:800;margin-bottom:16px;}
.cta-bande p{position:relative;z-index:2;color:var(--sombre-texte-att);max-width:52ch;margin-inline:auto;margin-bottom:30px;font-size:16px;}
.cta-bande .btn-primaire{position:relative;z-index:2;}

/* ===== Formulaire page contact/devis complet ===== */
.form-devis{background:var(--creme-carte);border:1px solid var(--ligne);border-radius:var(--r-lg);padding:36px;box-shadow:var(--ombre-carte);}
.form-devis .champ{margin-bottom:18px;}
.form-devis label{display:block;font-size:13px;font-weight:600;margin-bottom:7px;color:var(--encre);}
.form-devis input,.form-devis select,.form-devis textarea{width:100%;background:#fff;border:1px solid var(--ligne);color:var(--encre);padding:13px 14px;font-family:var(--font-texte);font-size:14.5px;border-radius:var(--r-sm);}
.form-devis textarea{resize:vertical;min-height:110px;}
.form-devis input:focus,.form-devis select:focus,.form-devis textarea:focus{outline:2px solid var(--corail);outline-offset:1px;}
.form-devis .btn-primaire{width:100%;text-align:center;border:none;}
.form-etat{margin-top:14px;font-size:14px;text-align:center;display:none;}
.form-etat.visible{display:block;}
.form-etat.succes{color:#2f8f5c;}
.form-etat.erreur{color:#c2461a;}

/* ===== Footer ===== */
footer{background:var(--sombre);color:var(--sombre-texte-att);padding-block:70px 30px;}
.footer-grille{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:50px;}
.footer-logo{font-family:var(--font-display);font-weight:800;font-size:20px;color:var(--sombre-texte);text-decoration:none;}
.footer-logo span{color:var(--ambre);}
.footer-grille p{font-size:14px;line-height:1.6;margin-top:14px;max-width:32ch;}
.footer-col h3{font-family:var(--font-display);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--sombre-texte);margin-bottom:16px;}
.footer-col a{display:block;font-size:14px;text-decoration:none;color:var(--sombre-texte-att);margin-bottom:10px;transition:color .15s ease;}
.footer-col a:hover{color:var(--sombre-texte);}
.footer-bas{border-top:1px solid var(--ligne-sombre);padding-top:26px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12.5px;}
.footer-bas a{color:var(--sombre-texte-att);text-decoration:none;}
.footer-bas a:hover{color:var(--sombre-texte);}

/* ===== Socle animation ===== */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .55s ease-out, transform .55s ease-out;}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-groupe > *{transition-delay:calc(var(--i,0) * 80ms);}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  .reveal{opacity:1!important;transform:none!important;}
  html{scroll-behavior:auto;}
}

/* ===== Responsive ===== */
@media(max-width:980px){
  .nav-principale{display:none;}
  .burger{display:block;}
  .hero-wrap{grid-template-columns:1fr;}
  .photo-frame{max-width:440px;margin-inline:auto;transform:rotate(0);}
  .carte-devis{position:static;width:100%;margin-top:-40px;transform:rotate(0);}
  .grille-presta{grid-template-columns:1fr;gap:70px;}
  .etapes{grid-template-columns:repeat(2,1fr);}
  .stats-flottantes{grid-template-columns:1fr;}
  .grille-villes{grid-template-columns:repeat(2,1fr);}
  .footer-grille{grid-template-columns:1fr 1fr;}
}
@media(max-width:560px){
  .etapes{grid-template-columns:1fr;}
  .grille-villes{grid-template-columns:1fr;}
  .footer-grille{grid-template-columns:1fr;}
  .reassurance .wrap{flex-direction:column;gap:12px;}
  h1.h-hero,.h-hero{font-size:clamp(30px,9vw,40px);}
}
