/* ============================================================
   REFLET PEÏ — Charte
   Marine + bleu ciel + blanc — les codes validés par Medhi
   ============================================================ */
:root{
  --marine-950:#04121F;
  --marine-900:#071C30;
  --marine-800:#0B2540;
  --marine-700:#103154;
  --marine-600:#16406C;
  --ciel-600:#1B8FC7;
  --ciel-500:#27A5E0;
  --ciel-400:#54BCEA;
  --ciel-300:#8AD3F1;
  --ciel-200:#B9E5F7;
  --ciel-100:#DCF1FB;
  --blanc:#FFFFFF;
  --sable:#F2F6F9;
  --gris:#5B6B7B;
  --gris-clair:#93A3B3;

  --display:'Bricolage Grotesque','Archivo',system-ui,sans-serif;
  --corps:'IBM Plex Sans',ui-sans-serif,system-ui,sans-serif;

  --ombre-douce:0 1px 2px rgba(7,28,48,.04),0 8px 24px -8px rgba(7,28,48,.10);
  --ombre-carte:0 2px 4px rgba(7,28,48,.03),0 18px 40px -14px rgba(7,28,48,.16);
  --ombre-forte:0 30px 70px -20px rgba(7,28,48,.42);
  --r:14px;
  --max:1240px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--corps);
  color:var(--marine-900);
  background:var(--blanc);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}

.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 24px}

/* ---------- Typo ---------- */
h1,h2,h3,h4{font-family:var(--display);font-weight:800;line-height:1.03;letter-spacing:-.03em}
h1{font-size:clamp(2.5rem,6.2vw,5rem)}
h2{font-size:clamp(2rem,4.1vw,3.35rem);letter-spacing:-.035em}
h3{font-size:1.28rem;letter-spacing:-.02em;line-height:1.2}
.mono{font-variant-numeric:tabular-nums}

/* ---------- LE LISERÉ — l'élément que Medhi adore, systématisé ---------- */
.liseré{
  display:flex;align-items:center;gap:14px;
  font-family:var(--corps);font-size:.75rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--ciel-600);margin-bottom:20px;
}
.liseré::before{
  content:"";height:2px;width:44px;flex:none;
  background:linear-gradient(90deg,var(--ciel-500),var(--ciel-300));
  transform-origin:left;transform:scaleX(0);
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}
.vu .liseré::before{transform:scaleX(1)}
.liseré--clair{color:var(--ciel-300)}

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 26px;border-radius:9px;border:1.5px solid transparent;
  font-family:var(--corps);font-weight:600;font-size:.95rem;letter-spacing:-.01em;
  cursor:pointer;position:relative;overflow:hidden;
  transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s,background .22s,color .22s,border-color .22s;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn--ciel{background:var(--ciel-500);color:#fff;box-shadow:0 10px 26px -8px rgba(39,165,224,.62)}
.btn--ciel:hover{background:var(--ciel-400);box-shadow:0 16px 34px -8px rgba(39,165,224,.72)}
.btn--marine{background:var(--marine-800);color:#fff}
.btn--marine:hover{background:var(--marine-700)}
.btn--fantome{background:transparent;border-color:rgba(255,255,255,.34);color:#fff;backdrop-filter:blur(6px)}
.btn--fantome:hover{border-color:#fff;background:rgba(255,255,255,.1)}
.btn--ligne{background:transparent;border-color:rgba(11,37,64,.18);color:var(--marine-800)}
.btn--ligne:hover{border-color:var(--marine-800);background:var(--marine-800);color:#fff}

/* reflet qui passe sur le bouton — clin d'œil au nom de la marque */
.btn--ciel::after,.btn--marine::after{
  content:"";position:absolute;top:0;left:-120%;width:55%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.34),transparent);
  transform:skewX(-18deg);transition:left .65s cubic-bezier(.3,.8,.3,1);
}
.btn--ciel:hover::after,.btn--marine:hover::after{left:150%}

/* ============================================================
   BANDEAU HAUT — « le premier petit liseré »
   ============================================================ */
.bandeau{
  background:var(--marine-950);color:var(--ciel-200);
  font-size:.79rem;letter-spacing:.01em;
  border-bottom:1px solid rgba(138,211,241,.13);
  position:relative;z-index:60;
}
.bandeau__in{
  max-width:var(--max);margin:0 auto;padding:9px 24px;
  display:flex;align-items:center;gap:26px;flex-wrap:wrap;justify-content:center;
}
.bandeau b{color:#fff;font-weight:600}
.bandeau__pt{width:3px;height:3px;border-radius:50%;background:var(--ciel-500);flex:none}
.etoiles{color:#FFC53D;letter-spacing:.08em;font-size:.8rem}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(18px) saturate(1.5);
  border-bottom:1px solid rgba(11,37,64,.07);
  transition:box-shadow .3s,background .3s;
}
.nav.collé{box-shadow:0 1px 0 rgba(11,37,64,.06),0 12px 34px -22px rgba(11,37,64,.32)}
.nav__in{
  max-width:var(--max);margin:0 auto;padding:13px 24px;
  display:flex;align-items:center;gap:34px;
}
.logo{display:flex;align-items:center;gap:11px;flex:none}
.logo__txt{display:flex;flex-direction:column;line-height:1}
.logo__nom{font-family:var(--display);font-weight:900;font-size:1.16rem;letter-spacing:-.035em;color:var(--marine-900)}
.logo__base{font-size:.53rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ciel-600);font-weight:600;margin-top:3px}
.nav__liens{display:flex;gap:4px;margin-left:auto}
.nav__liens a{
  padding:8px 13px;border-radius:7px;font-size:.9rem;font-weight:500;color:var(--marine-700);
  transition:background .2s,color .2s;position:relative;
}
.nav__liens a:hover{background:var(--ciel-100);color:var(--marine-900)}
.nav__note{
  display:flex;align-items:center;gap:7px;font-size:.79rem;color:var(--gris);
  padding-right:16px;border-right:1px solid rgba(11,37,64,.1);
}
.nav__cta{display:flex;align-items:center;gap:14px;flex:none}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px}
.burger span{display:block;width:22px;height:2px;background:var(--marine-800);margin:5px 0;border-radius:2px;transition:.3s}

/* ============================================================
   HERO — la vitre + le coup de raclette
   ============================================================ */
.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(120% 90% at 88% -5%,rgba(39,165,224,.28) 0%,transparent 55%),
    radial-gradient(80% 70% at 0% 100%,rgba(22,64,108,.55) 0%,transparent 60%),
    linear-gradient(168deg,var(--marine-900) 0%,var(--marine-800) 48%,var(--marine-950) 100%);
  color:#fff;
  padding:clamp(56px,8vw,104px) 0 clamp(72px,9vw,120px);
}
/* grain fin — évite le dégradé plat */
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.42;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
.hero__grille{
  position:relative;z-index:2;
  max-width:var(--max);margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(32px,4.4vw,68px);align-items:center;
}
.hero__kicker{
  display:inline-flex;align-items:center;gap:9px;
  padding:6px 13px 6px 9px;border-radius:100px;
  background:rgba(138,211,241,.11);border:1px solid rgba(138,211,241,.24);
  font-size:.75rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ciel-200);
  margin-bottom:26px;
}
.hero__kicker i{width:5px;height:5px;border-radius:50%;background:#48D597;box-shadow:0 0 0 3px rgba(72,213,151,.22)}
.hero h1{margin-bottom:22px}
.hero h1 em{font-style:normal;color:var(--ciel-400);position:relative;white-space:nowrap}
/* le reflet sous le mot-clé — signature de marque */
.hero h1 em::after{
  content:attr(data-r);position:absolute;left:0;top:100%;
  transform:scaleY(-1);opacity:.13;
  background:linear-gradient(#8AD3F1,transparent 62%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  pointer-events:none;user-select:none;
}
.hero__slogan{
  font-size:clamp(1.02rem,1.5vw,1.22rem);font-weight:500;color:var(--ciel-300);
  padding-left:16px;border-left:2px solid var(--ciel-500);margin-bottom:22px;font-style:italic;
}
.hero__sub{font-size:1.03rem;color:rgba(220,241,251,.8);max-width:52ch;margin-bottom:34px}
.hero__btns{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:38px}
.hero__preuves{display:flex;gap:26px;flex-wrap:wrap;padding-top:26px;border-top:1px solid rgba(138,211,241,.16)}
.preuve{display:flex;align-items:center;gap:10px}
.preuve__n{font-family:var(--display);font-weight:800;font-size:1.42rem;color:#fff;line-height:1}
.preuve__l{font-size:.75rem;color:var(--gris-clair);line-height:1.28}
.preuve svg{flex:none}

/* --- La vitre --- */
.vitre{
  position:relative;aspect-ratio:4/4.6;border-radius:18px;overflow:hidden;
  box-shadow:var(--ombre-forte),0 0 0 1px rgba(138,211,241,.16);
  background:var(--marine-950);
}
.vitre__scene{position:absolute;inset:0}
.vitre__haze{
  position:absolute;inset:0;z-index:3;
  backdrop-filter:blur(13px) saturate(.52) brightness(.82);
  background:rgba(120,140,150,.2);
  clip-path:inset(0 0 0 0);
  animation:raclette 2.5s cubic-bezier(.62,.02,.24,1) .75s forwards;
}
@keyframes raclette{to{clip-path:inset(0 0 0 101%)}}
.vitre__lame{
  position:absolute;top:-8%;bottom:-8%;left:0;width:3px;z-index:4;
  background:linear-gradient(180deg,transparent,rgba(255,255,255,.96) 12%,rgba(255,255,255,.96) 88%,transparent);
  box-shadow:0 0 22px 7px rgba(255,255,255,.5),0 0 60px 18px rgba(138,211,241,.34);
  opacity:0;transform:skewX(-4deg);
  animation:lame 2.5s cubic-bezier(.62,.02,.24,1) .75s forwards;
}
@keyframes lame{
  0%{left:0;opacity:0}
  8%{opacity:1}
  92%{opacity:1}
  100%{left:101%;opacity:0}
}
/* gouttes qui disparaissent au passage de la lame */
.goutte{position:absolute;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:rgba(255,255,255,.3);box-shadow:inset 0 -1px 2px rgba(255,255,255,.6),0 1px 3px rgba(4,18,31,.3);z-index:2}
.vitre__reflet{
  position:absolute;inset:0;z-index:5;pointer-events:none;
  background:linear-gradient(112deg,transparent 32%,rgba(255,255,255,.09) 45%,rgba(255,255,255,.03) 52%,transparent 66%);
}
.vitre__etiq{
  position:absolute;left:16px;bottom:16px;z-index:6;
  display:flex;align-items:center;gap:9px;
  padding:8px 14px;border-radius:100px;
  background:rgba(4,18,31,.62);backdrop-filter:blur(12px);
  border:1px solid rgba(138,211,241,.24);
  font-size:.75rem;color:var(--ciel-200);font-weight:500;
  opacity:0;animation:apparait .7s ease 3.1s forwards;
}
@keyframes apparait{to{opacity:1}}

/* ============================================================
   RÉASSURANCE
   ============================================================ */
.reassure{background:var(--sable);padding:0;position:relative;margin-top:-1px}
.reassure__grille{
  max-width:var(--max);margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  transform:translateY(-46px);
}
.rea{
  background:#fff;padding:32px 28px;border:1px solid rgba(11,37,64,.07);
  transition:transform .32s cubic-bezier(.2,.8,.2,1),box-shadow .32s;
  box-shadow:var(--ombre-douce);
}
.rea:first-child{border-radius:var(--r) 0 0 var(--r)}
.rea:last-child{border-radius:0 var(--r) var(--r) 0}
.rea+.rea{border-left:0}
.rea:hover{transform:translateY(-7px);box-shadow:var(--ombre-carte);z-index:2;border-radius:var(--r)}
.rea__ic{
  width:46px;height:46px;border-radius:11px;margin-bottom:18px;
  display:grid;place-items:center;
  background:linear-gradient(140deg,var(--ciel-100),var(--ciel-200));
  color:var(--marine-700);
}
.rea h3{margin-bottom:8px}
.rea p{font-size:.92rem;color:var(--gris)}

/* ============================================================
   SECTIONS
   ============================================================ */
.sec{padding:clamp(64px,8vw,108px) 0}
.sec--sable{background:var(--sable)}
.sec__tete{max-width:640px;margin-bottom:52px}
.sec__tete p{font-size:1.04rem;color:var(--gris);margin-top:16px}
.sec__tete--centre{margin-left:auto;margin-right:auto;text-align:center}
.sec__tete--centre .liseré{justify-content:center}

/* ============================================================
   CRÉDIT D'IMPÔT — le bloc de conversion
   ============================================================ */
.impot{
  background:linear-gradient(150deg,var(--marine-900),var(--marine-700) 70%,var(--marine-600));
  color:#fff;border-radius:22px;overflow:hidden;position:relative;
  box-shadow:var(--ombre-forte);
}
.impot::before{
  content:"";position:absolute;top:-45%;right:-12%;width:62%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(39,165,224,.42),transparent 68%);
}
.impot__in{
  position:relative;z-index:2;padding:clamp(34px,4.6vw,58px);
  display:grid;grid-template-columns:1fr .92fr;gap:clamp(28px,3.6vw,54px);align-items:center;
}
.impot__badge{
  display:inline-flex;align-items:center;gap:9px;padding:7px 15px;border-radius:100px;
  background:rgba(72,213,151,.14);border:1px solid rgba(72,213,151,.34);
  color:#7BEBB6;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:20px;
}
.impot h2{margin-bottom:16px}
.impot h2 span{color:var(--ciel-400)}
.impot__p{color:rgba(220,241,251,.78);font-size:.98rem;margin-bottom:26px;max-width:46ch}
.impot__liste{display:grid;gap:11px;margin-bottom:8px}
.impot__liste li{display:flex;gap:11px;align-items:flex-start;font-size:.92rem;color:rgba(220,241,251,.9);list-style:none}
.impot__liste svg{flex:none;margin-top:3px;color:#48D597}

/* l'échelle de prix */
.echelle{
  background:rgba(255,255,255,.055);border:1px solid rgba(138,211,241,.2);
  border-radius:16px;padding:30px 28px;backdrop-filter:blur(8px);
}
.echelle__t{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ciel-300);font-weight:600;margin-bottom:22px;text-align:center}
.echelle__calc{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:22px;flex-wrap:wrap}
.prix{text-align:center}
.prix__n{font-family:var(--display);font-weight:900;line-height:1;letter-spacing:-.05em}
.prix--dep .prix__n{font-size:2.5rem;color:#fff}
.prix--fin .prix__n{font-size:3.15rem;color:#48D597}
.prix__l{font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;color:var(--gris-clair);margin-top:7px}
.echelle__op{font-family:var(--display);font-size:1.5rem;color:var(--ciel-400);font-weight:700}
.echelle__moins{
  width:66px;height:66px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:linear-gradient(145deg,var(--ciel-500),var(--ciel-600));
  font-family:var(--display);font-weight:900;font-size:1.02rem;color:#fff;
  box-shadow:0 0 0 5px rgba(39,165,224,.16);
}
.echelle__note{
  font-size:.79rem;color:rgba(220,241,251,.62);text-align:center;
  padding-top:18px;border-top:1px solid rgba(138,211,241,.16);line-height:1.5;
}
.echelle__note b{color:#fff;font-weight:600}
.echelle__legal{font-size:.68rem;color:var(--gris-clair);text-align:center;margin-top:12px;line-height:1.45}

/* ============================================================
   SERVICES — onglets Particuliers / Professionnels
   ============================================================ */
.onglets{
  display:inline-flex;padding:5px;border-radius:11px;background:rgba(11,37,64,.06);gap:4px;margin-bottom:38px;
}
.onglet{
  padding:11px 24px;border-radius:8px;border:0;background:transparent;cursor:pointer;
  font-weight:600;font-size:.93rem;color:var(--gris);transition:.25s;position:relative;
}
.onglet.actif{background:#fff;color:var(--marine-900);box-shadow:var(--ombre-douce)}
.onglet i{
  font-style:normal;font-size:.66rem;padding:2px 6px;border-radius:4px;margin-left:7px;
  background:var(--ciel-500);color:#fff;font-weight:700;vertical-align:2px;
}
.panneau{display:none}
.panneau.actif{display:block;animation:monte .5s cubic-bezier(.2,.8,.2,1)}
@keyframes monte{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

.services{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.srv{
  background:#fff;border:1px solid rgba(11,37,64,.09);border-radius:var(--r);
  padding:26px 24px 24px;position:relative;overflow:hidden;
  transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,border-color .3s;
  display:flex;flex-direction:column;
}
.srv:hover{transform:translateY(-6px);box-shadow:var(--ombre-carte);border-color:var(--ciel-300)}
/* balayage lumineux au survol — la lumière sur le verre */
.srv::before{
  content:"";position:absolute;top:0;left:-140%;width:60%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(39,165,224,.09),transparent);
  transform:skewX(-16deg);transition:left .7s cubic-bezier(.3,.8,.3,1);pointer-events:none;
}
.srv:hover::before{left:170%}
.srv--neuf{border-color:rgba(39,165,224,.42);background:linear-gradient(175deg,var(--ciel-100),#fff 42%)}
.srv__tag{
  position:absolute;top:14px;right:14px;
  font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  padding:4px 9px;border-radius:5px;background:var(--ciel-500);color:#fff;
}
.srv__ic{
  width:42px;height:42px;border-radius:10px;display:grid;place-items:center;margin-bottom:16px;
  background:var(--marine-800);color:var(--ciel-300);
}
.srv--neuf .srv__ic{background:var(--ciel-500);color:#fff}
.srv h3{margin-bottom:9px}
.srv p{font-size:.89rem;color:var(--gris);margin-bottom:16px}
.srv ul{list-style:none;display:grid;gap:7px;margin-bottom:18px}
.srv li{font-size:.84rem;color:var(--marine-700);display:flex;gap:8px;align-items:flex-start}
.srv li::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--ciel-500);flex:none;margin-top:8px}
.srv__lien{
  margin-top:auto;font-size:.86rem;font-weight:600;color:var(--ciel-600);
  display:inline-flex;align-items:center;gap:6px;transition:gap .25s;
}
.srv:hover .srv__lien{gap:11px}

/* ============================================================
   TECHNIQUES
   ============================================================ */
.tech__grille{display:grid;grid-template-columns:.88fr 1.12fr;gap:clamp(30px,4vw,64px);align-items:center}
.tech__liste{display:grid;gap:14px}
.tk{
  display:flex;gap:18px;padding:22px;border-radius:12px;background:#fff;
  border:1px solid rgba(11,37,64,.08);transition:.3s;
}
.tk:hover{border-color:var(--ciel-400);transform:translateX(6px);box-shadow:var(--ombre-douce)}
.tk__n{
  font-family:var(--display);font-weight:900;font-size:1.5rem;color:var(--ciel-200);
  line-height:1;flex:none;width:34px;
}
.tk h3{margin-bottom:5px;font-size:1.06rem}
.tk p{font-size:.87rem;color:var(--gris)}
.tech__secu{
  margin-top:22px;padding:18px 20px;border-radius:11px;
  background:var(--marine-800);color:var(--ciel-200);font-size:.87rem;
  display:flex;gap:13px;align-items:flex-start;
}
.tech__secu svg{flex:none;margin-top:2px;color:var(--ciel-400)}

/* ============================================================
   AVANT / APRÈS
   ============================================================ */
.ap{
  position:relative;border-radius:18px;overflow:hidden;aspect-ratio:16/10;
  box-shadow:var(--ombre-carte);cursor:ew-resize;user-select:none;
  background:var(--marine-950);
}
.ap__c{position:absolute;inset:0}
.ap__apres{clip-path:inset(0 0 0 50%)}
.ap__poignee{
  position:absolute;top:0;bottom:0;left:50%;width:3px;background:#fff;z-index:5;
  transform:translateX(-50%);box-shadow:0 0 18px rgba(0,0,0,.4);
}
.ap__rond{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:46px;height:46px;border-radius:50%;background:#fff;
  display:grid;place-items:center;box-shadow:0 5px 18px rgba(4,18,31,.4);
  color:var(--marine-800);
}
.ap__lab{
  position:absolute;top:16px;z-index:4;padding:6px 13px;border-radius:100px;
  font-size:.7rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  backdrop-filter:blur(10px);
}
.ap__lab--a{left:16px;background:rgba(4,18,31,.62);color:#fff;border:1px solid rgba(255,255,255,.16)}
.ap__lab--b{right:16px;background:rgba(39,165,224,.85);color:#fff}
.ap__aide{
  position:absolute;bottom:16px;left:50%;transform:translateX(-50%);z-index:4;
  font-size:.75rem;color:#fff;background:rgba(4,18,31,.62);backdrop-filter:blur(10px);
  padding:7px 15px;border-radius:100px;border:1px solid rgba(255,255,255,.14);
  display:flex;align-items:center;gap:8px;pointer-events:none;
  transition:opacity .3s;
}
.ap.touché .ap__aide{opacity:0}
.ap__note{
  margin-top:18px;padding:15px 18px;border-radius:11px;background:var(--ciel-100);
  border-left:3px solid var(--ciel-500);font-size:.88rem;color:var(--marine-700);
  display:flex;gap:12px;align-items:flex-start;
}
.ap__note svg{flex:none;margin-top:2px;color:var(--ciel-600)}
.ap__note b{font-weight:600;color:var(--marine-900)}

/* ============================================================
   AVIS
   ============================================================ */
.avis__tete{
  display:flex;align-items:center;justify-content:space-between;gap:26px;
  margin-bottom:40px;flex-wrap:wrap;
}
.note{
  display:flex;align-items:center;gap:20px;padding:20px 26px;border-radius:14px;
  background:#fff;border:1px solid rgba(11,37,64,.09);box-shadow:var(--ombre-douce);
}
.note__n{font-family:var(--display);font-weight:900;font-size:3rem;line-height:1;color:var(--marine-900);letter-spacing:-.05em}
.note__d{display:flex;flex-direction:column;gap:4px}
.note__e{color:#FFC53D;font-size:1.02rem;letter-spacing:.1em}
.note__t{font-size:.83rem;color:var(--gris)}
.note__g{display:flex;align-items:center;gap:7px;font-size:.78rem;color:var(--gris);margin-top:2px}
.direct{
  display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:100px;
  background:rgba(72,213,151,.12);border:1px solid rgba(72,213,151,.3);
  font-size:.7rem;font-weight:600;color:#0F8A5F;
}
.direct i{width:5px;height:5px;border-radius:50%;background:#25C685;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(37,198,133,.5)}50%{opacity:.75;box-shadow:0 0 0 5px rgba(37,198,133,0)}}

.avis{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.av{
  background:#fff;border:1px solid rgba(11,37,64,.09);border-radius:var(--r);padding:26px 24px;
  display:flex;flex-direction:column;transition:.3s;position:relative;
}
.av:hover{transform:translateY(-5px);box-shadow:var(--ombre-carte)}
.av__e{color:#FFC53D;font-size:.88rem;letter-spacing:.09em;margin-bottom:14px}
.av__t{font-size:.93rem;color:var(--marine-800);margin-bottom:20px;flex:1;line-height:1.65}
.av__q{display:flex;align-items:center;gap:11px;padding-top:16px;border-top:1px solid rgba(11,37,64,.08)}
.av__av{
  width:36px;height:36px;border-radius:50%;flex:none;display:grid;place-items:center;
  font-family:var(--display);font-weight:800;font-size:.86rem;color:#fff;
  background:linear-gradient(140deg,var(--ciel-500),var(--marine-700));
}
.av__nom{font-size:.86rem;font-weight:600}
.av__src{font-size:.75rem;color:var(--gris-clair);display:flex;align-items:center;gap:5px}

/* ============================================================
   ZONES
   ============================================================ */
.zones__grille{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,4vw,60px);align-items:center}
.zone{
  padding:22px 24px;border-radius:12px;background:#fff;border:1px solid rgba(11,37,64,.08);
  margin-bottom:12px;transition:.3s;
}
.zone:hover{border-color:var(--ciel-400);box-shadow:var(--ombre-douce)}
.zone__t{
  font-family:var(--display);font-weight:700;font-size:.79rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ciel-600);margin-bottom:9px;
  display:flex;align-items:center;gap:9px;
}
.zone__t::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ciel-500);flex:none}
.zone__v{font-size:.94rem;color:var(--marine-800);line-height:1.7}
.carte{
  position:relative;border-radius:18px;overflow:hidden;padding:34px;
  background:linear-gradient(155deg,var(--marine-900),var(--marine-700));
  box-shadow:var(--ombre-forte);
}
.carte__pin{
  position:absolute;width:11px;height:11px;border-radius:50%;background:var(--ciel-400);
  box-shadow:0 0 0 4px rgba(84,188,234,.24);
}
.carte__pin--hq{background:#48D597;box-shadow:0 0 0 5px rgba(72,213,151,.28);width:14px;height:14px}
.carte__pin::after{
  content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(138,211,241,.5);
  animation:onde 2.6s ease-out infinite;
}
@keyframes onde{0%{transform:scale(1);opacity:.9}100%{transform:scale(3.4);opacity:0}}

/* ============================================================
   DEVIS — le bloc marine que Medhi demande
   ============================================================ */
.devis{
  background:
    radial-gradient(90% 70% at 100% 0%,rgba(39,165,224,.24),transparent 58%),
    linear-gradient(172deg,var(--marine-900),var(--marine-800));
  color:#fff;padding:clamp(64px,8vw,104px) 0 0;position:relative;overflow:hidden;
}
.devis__grille{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(32px,4.4vw,64px);align-items:start}
.devis h2{margin-bottom:16px}
.devis h2 span{color:var(--ciel-400)}
.devis__p{color:rgba(220,241,251,.78);margin-bottom:32px;font-size:1rem}
.contact{display:grid;gap:14px;margin-bottom:32px}
.ct{
  display:flex;align-items:center;gap:15px;padding:16px 18px;border-radius:11px;
  background:rgba(255,255,255,.05);border:1px solid rgba(138,211,241,.16);
  transition:.28s;
}
.ct:hover{background:rgba(255,255,255,.09);border-color:var(--ciel-400);transform:translateX(5px)}
.ct__ic{
  width:38px;height:38px;border-radius:9px;flex:none;display:grid;place-items:center;
  background:rgba(39,165,224,.18);color:var(--ciel-300);
}
.ct__l{font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--gris-clair)}
.ct__v{font-weight:600;font-size:1rem}
.devis__rassure{display:grid;gap:9px}
.devis__rassure li{display:flex;gap:10px;align-items:center;font-size:.86rem;color:rgba(220,241,251,.72);list-style:none}
.devis__rassure svg{flex:none;color:#48D597}

.form{
  background:rgba(255,255,255,.055);backdrop-filter:blur(14px);
  border:1px solid rgba(138,211,241,.2);border-radius:18px;padding:clamp(24px,3vw,34px);
}
.form__t{font-family:var(--display);font-weight:800;font-size:1.24rem;margin-bottom:5px;letter-spacing:-.02em}
.form__st{font-size:.85rem;color:var(--gris-clair);margin-bottom:24px}
.champs{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.champ{display:flex;flex-direction:column;gap:6px}
.champ--full{grid-column:1/-1}
.champ label{font-size:.76rem;font-weight:500;color:var(--ciel-200);letter-spacing:.01em}
.champ input,.champ select,.champ textarea{
  padding:12px 14px;border-radius:9px;
  background:rgba(4,18,31,.4);border:1px solid rgba(138,211,241,.2);
  color:#fff;font-size:.9rem;transition:.22s;width:100%;
}
.champ input::placeholder,.champ textarea::placeholder{color:rgba(147,163,179,.65)}
.champ input:focus,.champ select:focus,.champ textarea:focus{
  outline:0;border-color:var(--ciel-500);background:rgba(4,18,31,.62);
  box-shadow:0 0 0 3px rgba(39,165,224,.16);
}
.champ select{cursor:pointer;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%238AD3F1' stroke-width='1.8'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;
}
.champ select option{background:var(--marine-800);color:#fff}
.champ textarea{resize:vertical;min-height:88px;font-family:var(--corps)}

/* upload — LA demande de Medhi */
.upload{
  grid-column:1/-1;border:1.5px dashed rgba(138,211,241,.4);border-radius:11px;
  padding:20px;text-align:center;cursor:pointer;transition:.28s;
  background:rgba(39,165,224,.05);position:relative;
}
.upload:hover,.upload.sur{border-color:var(--ciel-500);background:rgba(39,165,224,.12)}
.upload__ic{color:var(--ciel-400);margin:0 auto 9px}
.upload__t{font-size:.88rem;font-weight:600;margin-bottom:3px}
.upload__st{font-size:.75rem;color:var(--gris-clair)}
.upload__neuf{
  position:absolute;top:-9px;right:12px;font-size:.6rem;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:4px;
  background:var(--ciel-500);color:#fff;
}
.vignettes{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px;justify-content:center}
.vg{
  width:52px;height:52px;border-radius:7px;position:relative;
  background:linear-gradient(140deg,var(--marine-700),var(--ciel-600));
  border:1px solid rgba(138,211,241,.3);display:grid;place-items:center;
  font-size:.6rem;color:var(--ciel-200);animation:monte .35s;
}
.rgpd{
  grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;
  font-size:.76rem;color:var(--gris-clair);line-height:1.5;margin-top:4px;
}
.rgpd input{width:16px;height:16px;flex:none;margin-top:2px;accent-color:var(--ciel-500)}
.rgpd a{color:var(--ciel-300);text-decoration:underline;text-underline-offset:2px}
.form .btn{width:100%;margin-top:18px}
.form__legal{font-size:.7rem;color:var(--gris-clair);text-align:center;margin-top:13px;line-height:1.5}

/* ============================================================
   FOOTER — « elle claque, elle est incroyable » : on ne touche pas
   ============================================================ */
.pied{
  background:linear-gradient(178deg,var(--marine-800) 0%,var(--marine-900) 42%,var(--marine-950) 100%);
  color:var(--ciel-200);position:relative;overflow:hidden;
  padding:clamp(56px,7vw,88px) 0 0;margin-top:clamp(64px,8vw,104px);
}
.pied::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--marine-800),var(--ciel-500) 32%,var(--ciel-300) 50%,var(--ciel-500) 68%,var(--marine-800));
}
.pied::after{
  content:"";position:absolute;bottom:-58%;left:50%;transform:translateX(-50%);
  width:130%;aspect-ratio:2.6/1;border-radius:50%;
  background:radial-gradient(ellipse,rgba(39,165,224,.24),transparent 66%);
  pointer-events:none;
}
.pied__grille{
  position:relative;z-index:2;display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:48px;
}
.pied__marque .logo__nom{color:#fff}
.pied__slogan{font-size:.9rem;color:var(--ciel-300);font-style:italic;margin:18px 0 20px;line-height:1.6}
.pied__soc{display:flex;gap:9px}
.soc{
  width:36px;height:36px;border-radius:9px;display:grid;place-items:center;
  background:rgba(255,255,255,.07);border:1px solid rgba(138,211,241,.18);
  color:var(--ciel-300);transition:.25s;
}
.soc:hover{background:var(--ciel-500);color:#fff;border-color:var(--ciel-500);transform:translateY(-3px)}
.pied h4{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:18px;font-weight:700}
.pied ul{list-style:none;display:grid;gap:10px}
.pied ul a{font-size:.88rem;color:var(--ciel-200);opacity:.78;transition:.22s;display:inline-block}
.pied ul a:hover{opacity:1;color:var(--ciel-300);transform:translateX(4px)}
.pied__coord{font-size:.88rem;line-height:1.85;opacity:.82}
.pied__coord b{color:#fff;font-weight:600}
.pied__bas{
  position:relative;z-index:2;border-top:1px solid rgba(138,211,241,.14);
  padding:22px 0 26px;display:flex;justify-content:space-between;gap:18px;
  flex-wrap:wrap;font-size:.78rem;opacity:.62;
}
.pied__bas a{text-decoration:underline;text-underline-offset:2px}

/* barre sticky mobile — la « bande qui ne s'enlève jamais » */
.sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:80;display:none;
  background:rgba(4,18,31,.93);backdrop-filter:blur(18px);
  border-top:1px solid rgba(138,211,241,.2);
  padding:10px 14px;gap:10px;align-items:center;
}
.sticky__note{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--ciel-200);flex:none}
.sticky__note b{color:#fff}
.sticky .btn{padding:11px 16px;font-size:.84rem;flex:1}

/* ---------- Reveal ---------- */
.rev{opacity:0;transform:translateY(26px);transition:opacity .75s cubic-bezier(.2,.8,.2,1),transform .75s cubic-bezier(.2,.8,.2,1)}
.rev.vu{opacity:1;transform:none}

/* ---------- Repères de maquette ---------- */
.slot{
  position:relative;border-radius:12px;overflow:hidden;
  background:linear-gradient(145deg,var(--marine-800),var(--marine-600));
  display:grid;place-items:center;text-align:center;padding:20px;
  border:1px solid rgba(138,211,241,.2);
}
.slot::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(112deg,transparent 38%,rgba(255,255,255,.07) 50%,transparent 62%);
}
.slot__t{position:relative;font-size:.75rem;color:var(--ciel-200);font-weight:600;line-height:1.5;letter-spacing:.02em}
.slot__t i{display:block;font-style:normal;font-size:.63rem;color:var(--gris-clair);margin-top:5px;font-weight:400}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1024px){
  .hero__grille,.impot__in,.tech__grille,.zones__grille,.devis__grille{grid-template-columns:1fr}
  .vitre{aspect-ratio:16/11;max-height:400px}
  .services,.avis{grid-template-columns:1fr 1fr}
  .pied__grille{grid-template-columns:1fr 1fr}
  .nav__liens,.nav__note{display:none}
  .burger{display:block}
  .reassure__grille{grid-template-columns:1fr;transform:translateY(-30px)}
  .rea{border-radius:var(--r)!important;border-left:1px solid rgba(11,37,64,.07)!important}
  .rea+.rea{margin-top:10px}
}
@media(max-width:680px){
  .services,.avis,.champs{grid-template-columns:1fr}
  .pied__grille{grid-template-columns:1fr;gap:32px}
  .sticky{display:flex}
  body{padding-bottom:64px}
  .bandeau__in{gap:14px;font-size:.75rem}
  .bandeau__pt,.bandeau__cache{display:none}
  .echelle__calc{gap:10px}
  .prix--dep .prix__n{font-size:2rem}
  .prix--fin .prix__n{font-size:2.5rem}
  .echelle__moins{width:54px;height:54px;font-size:.86rem}
  .onglets{width:100%}.onglet{flex:1;padding:11px 10px;font-size:.85rem}
  .note{width:100%}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .vitre__haze{clip-path:inset(0 0 0 101%)}
  .rev{opacity:1;transform:none}
}

/* ============ v2 — allègement, logo, menu déroulant, photos ============ */
/* Typo réduite & plus légère (demande : pas d'écritures trop grosses) */
h1{font-size:clamp(2.05rem,3.6vw,3.05rem);letter-spacing:-.025em;font-weight:700}
h2{font-size:clamp(1.55rem,2.5vw,2.15rem);letter-spacing:-.02em;font-weight:700}
h3{font-size:1.18rem;font-weight:700}
.hero h1{font-size:clamp(2.3rem,4.4vw,3.55rem);font-weight:800}
/* Suppression du grain feTurbulence (légèreté + perf) */
.hero::after{display:none!important}
/* Logo image */
.logo__img{height:38px;width:auto;display:block;aspect-ratio:257/115}
.logo--cartouche{background:var(--marine-900);padding:9px 14px;border-radius:14px;display:inline-flex;align-items:center;transition:background .2s ease}
.logo--cartouche:hover,.logo--cartouche:focus-visible{background:var(--marine-800)}
.pied .logo__img{height:40px}
/* Menu déroulant */
.nav__liens{display:flex;gap:2px;margin-left:auto;align-items:center}
.nav__item{position:relative}
.nav__item>a,.nav__liens>a{padding:9px 12px;border-radius:8px;font-size:.9rem;font-weight:500;color:var(--marine-700);display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.nav__item>a:hover,.nav__liens>a:hover,.nav__item.actif>a{background:var(--ciel-100);color:var(--marine-900)}
.nav__cta-caret{width:9px;height:9px;opacity:.6}
.nav__sub{position:absolute;top:calc(100% + 8px);left:0;min-width:270px;background:#fff;border:1px solid rgba(11,37,64,.1);border-radius:14px;box-shadow:var(--ombre-carte);padding:8px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .2s,visibility .2s;z-index:60}
.nav__item:hover .nav__sub,.nav__item:focus-within .nav__sub{opacity:1;visibility:visible;transform:none}
.nav__sub a{display:block;padding:9px 12px;border-radius:9px;font-size:.88rem;font-weight:500;color:var(--marine-800)}
.nav__sub a:hover{background:var(--ciel-100);color:var(--marine-900)}
.nav__sub a small{display:block;color:var(--gris-clair);font-size:.75rem;font-weight:400;margin-top:1px}
.nav__sub-tete{padding:8px 12px 4px;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ciel-600);font-weight:700}
/* ===== MÉGA-MENU (grille de cartes + bande CTA) ===== */
.nav__in{position:relative}
.nav__item{position:static}
.mega{position:absolute;top:calc(100% + 12px);left:0;right:0;z-index:70;background:#fff;border:1px solid rgba(11,37,64,.09);border-radius:18px;box-shadow:0 26px 64px -22px rgba(9,25,52,.30);padding:16px;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s ease,transform .2s ease,visibility .2s;pointer-events:none}
.mega::after{content:"";position:absolute;top:-16px;left:0;right:0;height:16px}
/* pont de survol : zone invisible sous le lien qui couvre le vide lien→panneau (sinon le méga se ferme avant qu'on l'atteigne) — desktop uniquement */
.nav__item>a{position:relative}
@media(min-width:1025px){.nav__item>a::after{content:"";position:absolute;left:-10px;right:-10px;top:100%;height:46px}}
.nav__item:hover>.mega,.nav__item:focus-within>.mega{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.mega__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.megac{display:flex;gap:11px;align-items:flex-start;padding:11px;border-radius:12px;transition:background .15s}
.megac:hover{background:var(--ciel-100)}
.megac__ic{flex:none;width:40px;height:40px;border-radius:11px;background:var(--ciel-100);color:var(--ciel-600);display:grid;place-items:center;transition:.15s}
.megac:hover .megac__ic{background:var(--ciel-500);color:#fff}
.megac__ic svg{width:20px;height:20px}
.megac__t b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:.9rem;color:var(--marine-900);font-weight:600;line-height:1.2}
.megac__t small{display:block;font-size:.76rem;color:var(--gris);margin-top:2px;line-height:1.32}
.mega__band{display:flex;align-items:center;gap:14px;margin-top:12px;padding:14px 20px;border-radius:14px;background:linear-gradient(115deg,var(--marine-900),var(--marine-700));color:#fff}
.mega__band:hover{filter:brightness(1.08)}
.mega__badge{flex:none;font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:.92rem;color:#fff;background:rgba(255,255,255,.16);padding:7px 14px;border-radius:100px}
.mega__bandtxt{flex:1;font-size:.85rem;color:rgba(224,241,251,.9)}
.mega__cta{flex:none;display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:.85rem;background:var(--ciel-500);color:#fff;padding:10px 16px;border-radius:9px;transition:.15s}
.mega__band:hover .mega__cta{background:var(--ciel-400)}
@media(prefers-reduced-motion:reduce){.mega{transition:none}}
/* CTA band : contenu calé sur la colonne (fond pleine largeur conservé) */
.ctaband{padding-inline:0}
/* Hero page interne avec photo */
.phero{position:relative;overflow:hidden;color:#fff;padding:clamp(40px,5vw,72px) 0;background:linear-gradient(165deg,var(--marine-900),var(--marine-800) 60%,var(--marine-950))}
.phero__in{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:0 24px}
.phero h1{color:#fff;max-width:18ch;margin-bottom:14px}
.phero p{color:rgba(220,241,251,.82);font-size:1.04rem;max-width:56ch}
.phero--photo .phero__in{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,4vw,54px);align-items:center}
.phero__img{border-radius:16px;overflow:hidden;box-shadow:var(--ombre-forte),0 0 0 1px rgba(138,211,241,.14);aspect-ratio:5/4;max-height:360px}
.phero__img img{width:100%;height:100%;object-fit:cover}
@media(max-width:820px){.phero--photo .phero__in{grid-template-columns:1fr}.phero__img{aspect-ratio:16/10;max-height:280px}}
.phero:not(.phero--photo){text-align:center}.phero:not(.phero--photo) h1{max-width:24ch;margin-left:auto;margin-right:auto}.phero:not(.phero--photo) p{margin-left:auto;margin-right:auto}
/* Contenu éditorial */
.contenu{padding:clamp(44px,6vw,84px) 0}
.contenu .wrap{max-width:var(--max)}
.contenu h2:not(:first-child){margin-top:40px}
.contenu h2{margin-bottom:14px}
.contenu p{color:var(--marine-800);opacity:.92;margin-bottom:13px;font-size:1.01rem;max-width:72ch}
.contenu ul.puces{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:9px 22px;margin:8px 0}
.contenu ul.puces li{display:flex;gap:10px;align-items:flex-start;font-size:.95rem;color:var(--marine-800)}
.contenu ul.puces li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ciel-500);flex:none;margin-top:8px}
@media(max-width:680px){.contenu ul.puces{grid-template-columns:1fr}}
.encart{margin:24px 0;padding:20px 22px;border-radius:14px;background:var(--ciel-100);border-left:3px solid var(--ciel-500)}
.encart h3{margin-bottom:6px}.encart p{color:var(--marine-700);font-size:.93rem;margin:0}
.encart--marine{background:linear-gradient(150deg,var(--marine-900),var(--marine-700));border-left-color:var(--ciel-400);color:#fff}
.encart--marine h3{color:#fff}.encart--marine p{color:rgba(220,241,251,.85)}
/* Galerie photos (portrait) */
.galsec{padding:clamp(40px,5vw,72px) 0}
.galerie{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.galerie figure{position:relative;margin:0;border-radius:12px;overflow:hidden;aspect-ratio:3/4;background:var(--marine-800);box-shadow:var(--ombre-douce)}
.galerie img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.galerie figure:hover img{transform:scale(1.06)}
.galerie figcaption{position:absolute;left:0;right:0;bottom:0;padding:20px 14px 12px;font-size:.76rem;color:#fff;background:linear-gradient(transparent,rgba(5,14,28,.8));opacity:0;transition:opacity .3s}
.galerie figure:hover figcaption{opacity:1}
@media(max-width:900px){.galerie{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.galerie{grid-template-columns:repeat(2,1fr);gap:10px}}
/* Bande CTA */
.ctaband{background:linear-gradient(150deg,var(--marine-900),var(--marine-700));color:#fff;text-align:center;padding:clamp(44px,6vw,72px) 24px}
.ctaband h2{color:#fff;margin-bottom:10px}
.ctaband p{color:rgba(220,241,251,.82);max-width:52ch;margin:0 auto 22px}
.ctaband .btn{margin:0 5px 8px}
/* Fil d'ariane */
.fil{background:var(--sable);border-bottom:1px solid rgba(11,37,64,.06)}
.fil__in{max-width:var(--max);margin:0 auto;padding:12px 24px;font-size:.8rem;color:var(--gris);display:flex;gap:8px;flex-wrap:wrap}
.fil__in a{color:var(--ciel-600)} .fil__in span{color:var(--gris-clair)}
/* FAQ */
.faq{display:grid;gap:11px}
.faq details{background:#fff;border:1px solid rgba(11,37,64,.09);border-radius:12px}
.faq details[open]{border-color:var(--ciel-300)}
.faq summary{list-style:none;cursor:pointer;padding:16px 18px;font-family:var(--display);font-weight:700;font-size:1rem;color:var(--marine-900);display:flex;justify-content:space-between;gap:14px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.3rem;color:var(--ciel-500);flex:none;transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .rep{padding:0 18px 18px;color:var(--gris);font-size:.95rem;line-height:1.7}
/* Sous-cartes piliers avec photo */
.souscartes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:1024px){.souscartes{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.souscartes{grid-template-columns:1fr}}
.scarte{display:flex;flex-direction:column;background:#fff;border:1px solid rgba(11,37,64,.08);border-radius:16px;overflow:hidden;box-shadow:var(--ombre-douce);transition:transform .3s,box-shadow .3s,border-color .3s;text-decoration:none}
.scarte:hover{transform:translateY(-5px);box-shadow:var(--ombre-carte);border-color:var(--ciel-300)}
.scarte__img{aspect-ratio:16/11;overflow:hidden;background:var(--marine-800)}
.scarte__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.scarte:hover .scarte__img img{transform:scale(1.05)}
.scarte__b{padding:16px 18px;display:flex;flex-direction:column;flex:1}
.scarte__b h3{margin-bottom:5px;font-size:1.08rem}
.scarte__b p{font-size:.87rem;color:var(--gris);margin:0}
.scarte__lien{margin-top:auto;padding-top:10px;font-size:.83rem;font-weight:600;color:var(--ciel-600);display:inline-flex;gap:6px;align-items:center}
/* A propos */
.about__grille{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,4vw,52px);align-items:center}
@media(max-width:900px){.about__grille{grid-template-columns:1fr}}
.about__photo{border-radius:16px;overflow:hidden;aspect-ratio:4/5;max-height:440px;box-shadow:var(--ombre-forte)}
.about__photo img{width:100%;height:100%;object-fit:cover}
.about__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}@media(max-width:420px){.about__stats{grid-template-columns:1fr}}
.about__stat{background:#fff;border:1px solid rgba(11,37,64,.08);border-radius:12px;padding:16px;text-align:center}
.about__stat b{display:block;font-family:var(--display);font-weight:800;font-size:1.6rem;color:var(--marine-900);line-height:1}
.about__stat span{font-size:.75rem;color:var(--gris)}
/* Zones détaillées */
.secteurs{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:820px){.secteurs{grid-template-columns:1fr}}
.secteur{background:#fff;border:1px solid rgba(11,37,64,.09);border-radius:14px;padding:24px}
.secteur h3{margin-bottom:5px}.secteur .vv{font-size:.88rem;color:var(--ciel-600);font-weight:600;margin-bottom:10px}
.secteur p{font-size:.92rem;color:var(--gris);margin-bottom:8px}
/* Pages légales */
.page-legale{max-width:820px;margin:0 auto;padding:clamp(40px,6vw,72px) 24px}
.page-legale h1{margin-bottom:8px}.page-legale .maj{color:var(--gris);font-size:.82rem;margin-bottom:28px}
.page-legale h2{font-size:1.3rem;margin:30px 0 10px}
.page-legale p,.page-legale li{color:var(--gris);font-size:.95rem;margin-bottom:9px}
.page-legale a{color:var(--ciel-600);text-decoration:underline}
.page-legale .retour{display:inline-flex;gap:8px;margin-bottom:22px;font-weight:600;color:var(--ciel-600)}
/* Menu mobile */
@media(max-width:1024px){
  .nav__in{position:relative;flex-wrap:wrap}
  .nav__liens{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:40;flex-direction:column;align-items:stretch;gap:2px;padding:10px;border-radius:14px;background:rgba(255,255,255,.99);backdrop-filter:blur(20px);box-shadow:var(--ombre-carte);border:1px solid rgba(11,37,64,.08);display:none;max-height:78vh;overflow:auto}
  .nav__liens.ouvert{display:flex}
  .nav__item{position:static}
  .nav__item>a{justify-content:space-between}
  .nav__sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-radius:0;padding:2px 0 6px 10px;min-width:0;background:transparent}
  /* méga-menu en mobile : liste compacte statique dans le tiroir */
  .mega{position:static;opacity:1;visibility:visible;transform:none;pointer-events:auto;box-shadow:none;border:0;border-radius:0;padding:2px 0 8px 8px;background:transparent}
  .mega::after{display:none}
  .mega__grid{grid-template-columns:1fr;gap:1px}
  .megac{padding:9px 8px;min-height:44px;align-items:center}
  .megac__ic{width:32px;height:32px;border-radius:9px}
  .megac__ic svg{width:17px;height:17px}
  .megac__t small{display:none}
  .mega__band{display:none}
  .burger.actif span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .burger.actif span:nth-child(2){opacity:0}
  .burger.actif span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}


/* ================= v3 : rythme uniforme + slider + footer + blocs ================= */
:root{--sy:clamp(60px,7.5vw,100px);--tete-gap:clamp(34px,4vw,52px);--gut:18px;--succes:#48D597;--etoile:#FFC53D}
/* Failsafe reveal : visible par défaut ; masqué/animé seulement si JS actif */
.rev{opacity:1;transform:none}
html.js .rev{opacity:0;transform:translateY(26px)}
html.js .rev.vu{opacity:1;transform:none}
.sec{padding:var(--sy) 0}
.contenu{padding:var(--sy) 0}
.galsec{padding:var(--sy) 0}
.ctaband{padding:var(--sy) 0}
.devis{padding:var(--sy) 0}
.phero{padding:clamp(52px,6.5vw,88px) 0}
.sec__tete{margin-bottom:var(--tete-gap)}
.souscartes,.galerie,.secteurs{gap:var(--gut)}
.contenu h2:not(:first-child){margin-top:var(--tete-gap)}
.wrap--etroit{max-width:900px}
.faq .rep{max-width:82ch}
.sec__sous{margin:6px 0 16px;color:var(--ciel-600);font-size:1.02rem;font-weight:700;font-family:var(--display)}
/* Méthode en 4 étapes */
.etapes{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:12px 0 6px;list-style:none}
@media(max-width:800px){.etapes{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.etapes{grid-template-columns:1fr}}
.etape{background:#fff;border:1px solid rgba(11,37,64,.09);border-radius:12px;padding:18px 18px 16px;position:relative}
.etape b{display:block;font-family:var(--display);font-weight:800;font-size:1.35rem;color:var(--ciel-500);line-height:1;margin-bottom:9px}
.etape h3{font-size:.98rem;margin-bottom:5px}
.etape p{font-size:.85rem;color:var(--gris);margin:0}
/* Pourquoi (arguments) */
.args{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;list-style:none;margin:8px 0}
@media(max-width:680px){.args{grid-template-columns:1fr}}
.args li{display:flex;gap:11px;align-items:flex-start;font-size:.95rem;color:var(--marine-800)}
.args svg{flex:none;margin-top:3px;color:var(--succes)}
/* Bandeau réassurance (4 piquets) */
.reassure-band{background:var(--sable);border-top:1px solid rgba(11,37,64,.06);border-bottom:1px solid rgba(11,37,64,.06)}
.reassure-band__in{max-width:var(--max);margin:0 auto;padding:24px;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:820px){.reassure-band__in{grid-template-columns:1fr 1fr;gap:16px}}
/* pas d'espace blanc entre la dernière section (avis) et le footer */
.pied{margin-top:0 !important}
/* cartes réassurance accueil : colonnes séparées + arrondies en permanence (fini le « collé + arrondi au survol ») */
.reassure__grille{gap:16px}
.rea,.rea:first-child,.rea:last-child,.rea:hover{border-radius:14px}
.rea{border-left:1px solid rgba(11,37,64,.07)!important}
.rb{display:flex;gap:12px;align-items:center}
.rb svg{flex:none;color:var(--ciel-600)}
.rb b{display:block;font-size:.9rem;color:var(--marine-900);line-height:1.2}
.rb span{font-size:.79rem;color:var(--gris)}
/* Prestations liées */
.liees{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--gut)}
@media(max-width:1024px){.liees{grid-template-columns:1fr 1fr}}@media(max-width:600px){.liees{grid-template-columns:1fr}}
.liee{display:block;padding:18px 20px;border-radius:12px;background:#fff;border:1px solid rgba(11,37,64,.09);text-decoration:none;transition:.25s}
.liee:hover{border-color:var(--ciel-300);transform:translateY(-3px);box-shadow:var(--ombre-douce)}
.liee b{color:var(--marine-900);font-size:1rem;display:block;margin-bottom:3px}
.liee span{color:var(--gris);font-size:.86rem}
.liee em{font-style:normal;color:var(--ciel-600);font-weight:600}
/* ================= Slider auto-rotatif ================= */
.slider{position:relative}
.slider__track{display:flex;gap:var(--gut);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding:6px 2px;scrollbar-width:none}
.slider__track::-webkit-scrollbar{display:none}
.slider__track>*{scroll-snap-align:start;flex:0 0 calc((100% - 2*var(--gut))/3)}
@media(max-width:1024px){.slider__track>*{flex-basis:calc((100% - var(--gut))/2)}}
@media(max-width:680px){.slider__track>*{flex-basis:87%}}
.slider__nav{position:absolute;top:calc(50% - 22px);transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:#fff;border:1px solid rgba(11,37,64,.12);box-shadow:var(--ombre-carte);display:grid;place-items:center;cursor:pointer;z-index:3;color:var(--marine-800);transition:.2s}
.slider__nav:hover{background:var(--ciel-500);color:#fff;border-color:var(--ciel-500)}
.slider__nav--prev{left:-10px}.slider__nav--next{right:-10px}
@media(max-width:1120px){.slider__nav{display:none}}
.slider__dots{display:flex;gap:7px;justify-content:center;margin-top:20px}
.slider__dot{width:8px;height:8px;border-radius:50%;background:rgba(11,37,64,.2);border:0;cursor:pointer;transition:.2s;padding:0}
.slider__dot.on{background:var(--ciel-500);width:22px;border-radius:5px}
.slider.avis .slider__track>*{flex-basis:calc((100% - 2*var(--gut))/3)}
@media(max-width:1024px){.slider.avis .slider__track>*{flex-basis:calc((100% - var(--gut))/2)}}
@media(max-width:680px){.slider.avis .slider__track>*{flex-basis:87%}}
@media(prefers-reduced-motion:reduce){.slider__track{scroll-behavior:auto}}
/* ================= Footer v3 (5 colonnes équilibrées) ================= */
.pied__grille{grid-template-columns:1.5fr 1fr 1fr 1fr 1.2fr}
@media(max-width:1024px){.pied__grille{grid-template-columns:1fr 1fr}.pied__marque{grid-column:1/-1}}
@media(max-width:560px){.pied__grille{grid-template-columns:1fr}}
.pied__args{display:grid;gap:8px;margin-top:16px;list-style:none}
.pied__args li{display:flex;gap:9px;align-items:center;font-size:.82rem;color:var(--ciel-200);opacity:.88;list-style:none}
.pied__args svg{flex:none;color:var(--ciel-400)}
.pied__horaires{margin-top:14px;font-size:.85rem;color:var(--ciel-200);opacity:.82;line-height:1.75}
.pied__horaires b{color:#fff}
.pied__contact{list-style:none;display:grid;gap:13px;margin-top:2px}
.pied__contact li{display:flex;gap:11px;align-items:flex-start;font-size:.85rem;color:var(--ciel-200);line-height:1.5}
.pied__contact svg{flex:none;width:18px;height:18px;color:var(--ciel-400);margin-top:1px}
.pied__contact a{color:var(--ciel-200);text-decoration:none}
.pied__contact a:hover{color:#fff}
.pied__contact b{color:#fff}
.pied__agence{display:inline-flex;align-items:center;gap:9px}
.pied__agence-logo{height:34px;width:auto;opacity:.9;transition:opacity .2s}
.pied__agence a:hover .pied__agence-logo{opacity:1}
.pied__bas{padding-right:78px}/* dégage la pastille chat en bas à droite */
@media(max-width:680px){.pied__bas{padding-right:0;gap:14px;padding-bottom:8px}}
.pied__communes{position:relative;z-index:2;border-top:1px solid rgba(138,211,241,.14);padding:20px 0 4px;font-size:.82rem;color:var(--ciel-200);opacity:.85;line-height:1.9}
.pied__communes b{color:#fff;opacity:1}
.pied__communes a{color:var(--ciel-300);text-decoration:underline;text-underline-offset:2px}
/* ---- correctifs vérification double-passe ---- */
@media(max-width:560px){.galerie{gap:10px}}
@media(max-width:1024px){.nav__in{gap:14px}.nav__cta{margin-left:auto}.nav__cta .btn{padding:11px 16px;font-size:.85rem}}
@media(max-width:680px){.reassure__grille{grid-template-columns:1fr}}
/* ---- correctifs responsive (analyse SEO) : cibles tactiles + lisibilité ---- */
@media(max-width:1024px){
  .burger{padding:11px 10px;min-width:44px;min-height:44px}
  .nav__liens>a,.nav__item>a,.nav__sub a{min-height:44px;display:flex;align-items:center}
}
@media(max-width:360px){.hero h1 em{white-space:normal}}
@media(max-width:680px){body:has(.sticky){padding-bottom:74px}.pied__bas{opacity:.8}}
@media(hover:none){.galerie figcaption{opacity:1;position:static;background:none;color:var(--gris);padding:8px 2px 0;font-weight:500}}
/* ---- correctifs passe visuelle : cibles tactiles confortables ---- */
.pied__soc .soc{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:680px){.sticky .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.pied__grille ul a{display:inline-flex;align-items:center;min-height:36px}}
/* ================= Slider CONTINU (marquee, sans boutons) ================= */
.mq{overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.mq__track{display:flex;gap:var(--gut);width:max-content;animation:mqscroll var(--mqd,52s) linear infinite}
.mq:hover .mq__track,.mq:focus-within .mq__track{animation-play-state:paused}
/* tactile : pas de :hover pour mettre en pause → on ralentit un peu et on garde le mouvement continu voulu (l'accessibilité est couverte par prefers-reduced-motion) */
@media(hover:none) and (pointer:coarse){.mq__track{animation-duration:calc(var(--mqd,52s) * 1.25)}}
.mq__set{display:flex;gap:var(--gut);margin:0;padding:18px 0 40px;list-style:none;flex:0 0 auto}
@keyframes mqscroll{to{transform:translateX(calc(-50% - (var(--gut) / 2)))}}
@keyframes mqscroll3{to{transform:translateX(calc(-33.3333% - (var(--gut) / 3)))}}
.mq--x3 .mq__track{animation-name:mqscroll3}
.mq--cartes{--gut:26px}
.mq--cartes .mq__set>*{flex:0 0 auto;width:clamp(258px,30vw,320px)}
.mq--photos{--gut:22px}
.mq--photos .mq__set>*{flex:0 0 auto;width:clamp(180px,22vw,240px)}
.mq--avis .mq__set>*{flex:0 0 auto;width:clamp(280px,33vw,360px)}
.av{box-shadow:var(--ombre-douce)}
.mq .scarte,.mq .av,.mq figure{margin:0}
/* photos du slider galerie : arrondies + ombre, comme les autres cartes */
.mq--photos figure{margin:0}
.mq--photos figure img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:16px;display:block;box-shadow:var(--ombre-douce)}
.mq--photos figcaption{font-size:.82rem;color:var(--gris);font-weight:500;margin-top:10px;line-height:1.35}
/* Carte Réunion (zones desservies) */
.rmap{display:flex;flex-direction:column;gap:16px}
.rmap__svg{width:100%;height:auto;overflow:visible}
.rmap__img{width:100%;height:auto;display:block}
.rmap__lab{font-family:"Bricolage Grotesque",sans-serif;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.rmap__lab--base{fill:#0B2540;font-size:18px}
.rmap__lab--maj{fill:#103154;font-size:13px}
.rmap__lab--sea{fill:#1B7BA8;font-size:12px;font-weight:600}
.rmap__lab--off{fill:#93A3B3;font-size:12px;font-weight:600}
.rmap__leg{display:flex;flex-wrap:wrap;gap:9px 20px;font-size:.82rem;color:var(--gris)}
.rmap__leg span{display:inline-flex;align-items:center;gap:8px}
.rmap__d{width:12px;height:12px;border-radius:50%;flex:none}
.rmap__d--base{background:#fff;box-shadow:0 0 0 2.5px #0B2540 inset}
.rmap__d--sea{background:#fff;box-shadow:0 0 0 2.5px #2E9BE6 inset}
.rmap__d--zone{background:radial-gradient(circle,rgba(91,192,255,.55),rgba(46,155,230,.28))}
.rmap__note{font-size:.9rem;color:var(--marine-800)}
.rmap__note a{color:var(--ciel-600);font-weight:600}
/* Mini-carte localisation entreprise (devis) */
/* carte de localisation = notre carte SVG Réunion (on-brand, pas OSM « obsolète ») dans une carte claire */
.locmap--svg{margin-top:20px;background:#fff;border-radius:18px;overflow:hidden;border:1px solid rgba(11,37,64,.08);box-shadow:0 20px 44px -22px rgba(0,0,0,.42)}
.locmap__head{display:flex;align-items:center;gap:8px;padding:15px 16px 2px;font-size:.82rem;font-weight:700;color:var(--marine-800)}
.locmap__head svg{flex:none;width:15px;height:15px;color:var(--ciel-600)}
.locmap__map{padding:4px 20px 14px}
.locmap__map .rmap__svg,.locmap__map .rmap__img{width:100%;height:auto}
.locmap__link{display:flex;align-items:center;justify-content:center;gap:9px;padding:13px 15px;font-size:.83rem;font-weight:700;color:var(--marine-800);text-decoration:none;background:rgba(11,37,64,.04);border-top:1px solid rgba(11,37,64,.07);transition:background .18s}
.locmap__link:hover{background:rgba(11,37,64,.08)}
.locmap__link svg{flex:none;width:16px;height:16px;color:var(--ciel-600)}
.hero__claim,.phero__claim{display:block;font-family:var(--display);font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.3;color:var(--ciel-300);margin-bottom:10px;font-weight:700}
.contenu .hero__claim,.phero p .hero__claim{color:var(--ciel-700)}
.champ__req{color:var(--ciel-500);font-weight:700}
.champ.champ--err input,.champ.champ--err select,.champ.champ--err textarea{border-color:var(--erreur);box-shadow:0 0 0 3px rgba(228,87,46,.16)}
.upload--info{cursor:default;border:1px solid var(--bord);background:var(--sable);position:static;transition:none}
.upload--info:hover,.upload--info.sur{border-color:var(--bord);background:var(--sable);transform:none}
.pied .logo{display:inline-flex;align-items:center;min-height:44px}
.pied__agence{display:inline-flex;align-items:center;min-height:44px}
/* Références : grille de logos, taille régulière, aucune animation */
:root{--bord:rgba(11,37,64,.09);--erreur:#E4572E}
/* Envoi serveur du formulaire de devis (remplace le mailto:) — 25/09/2026 */
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
/* Catalogues PDF à télécharger */
.cata__h{margin-bottom:18px}
.cata__h h2{font-size:clamp(1.5rem,3vw,2.1rem);margin-bottom:8px}
.cata__h p{color:var(--gris);max-width:46em}
.cata__liste{display:grid;gap:12px}
@media(min-width:720px){.cata__liste{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}
.cata__l{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--bord);
  border-radius:14px;padding:16px 18px;box-shadow:var(--ombre-douce);color:inherit;text-decoration:none;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.cata__l:hover{transform:translateY(-2px);box-shadow:var(--ombre-carte);border-color:var(--ciel-400)}
.cata__l>svg{flex:none;color:var(--ciel-600)}
.cata__t{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.cata__t b{font-weight:600;font-size:.98rem}
.cata__t small{color:var(--gris);font-size:.8rem}
.cata__dl{flex:none;font-size:.85rem;font-weight:600;color:var(--ciel-600);white-space:nowrap}
/* Pages de commune : contenu local (elles étaient dupliquées à 96,7 %) */
.loc__angle{font-size:1.05rem;color:var(--marine-700);font-weight:500;margin-bottom:18px}
.loc__h{margin:26px 0 10px;font-size:1.12rem}
.loc__q{margin:0 0 14px;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.loc__q li{background:var(--sable);border:1px solid var(--bord);border-radius:999px;padding:6px 14px;font-size:.88rem;color:var(--marine-800)}
.loc__conseil{margin-top:22px;padding:18px 22px;background:var(--ciel-100);border-left:3px solid var(--ciel-500);border-radius:0 10px 10px 0;max-width:40em}
/* Le bloc « 150 − 50 % = 75 » a été remplacé par les 3 étapes du crédit d'impôt :
   le site n'a pas à chiffrer un avantage qui dépend de la situation du client. */
.echelle__etapes{list-style:none;counter-reset:e;margin:14px 0 0;padding:0;display:grid;gap:12px}
.echelle__etapes li{counter-increment:e;position:relative;padding-left:38px;font-size:.95rem;line-height:1.55}
.echelle__etapes li::before{content:counter(e);position:absolute;left:0;top:1px;width:26px;height:26px;border-radius:50%;
  background:var(--ciel-500);color:#fff;font-weight:700;font-size:.82rem;display:grid;place-items:center}
.form__fb{margin:12px 0 0;padding:12px 14px;border-radius:10px;font-size:.92rem;line-height:1.5}
.form__fb.est-ok{background:#E8F6EC;border:1px solid #9FD6B0;color:#17512F}
.form__fb.est-ko{background:#FDECE7;border:1px solid #F3B6A3;color:#7A2B12}
.form__fb.est-attente{background:var(--sable);border:1px solid var(--bord);color:var(--gris)}
.btn[aria-busy="true"]{opacity:.6;pointer-events:none}
.partlogos{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(14px,1.8vw,26px);align-items:center}
.partlogos li{background:#fff;border:1px solid var(--bord);border-radius:14px;padding:6px;aspect-ratio:4/3;overflow:hidden}
.partlogos img{width:100%;height:100%;object-fit:cover;display:block;border-radius:10px}
@media(max-width:1024px){.partlogos{grid-template-columns:repeat(4,1fr)}}
@media(max-width:560px){.partlogos{grid-template-columns:repeat(3,1fr);gap:12px}.partlogos li{padding:10px}}
/* Accueil — les 2 univers (particuliers / professionnels) */
.univers{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.2vw,30px);margin-top:10px}
.uni{display:flex;flex-direction:column;background:#fff;border:1px solid var(--bord);border-radius:18px;overflow:hidden;box-shadow:var(--ombre-douce);transition:transform .25s ease,box-shadow .25s ease;color:inherit;text-decoration:none}
.uni:hover,.uni:focus-visible{transform:translateY(-4px);box-shadow:0 18px 40px -14px rgba(7,28,48,.24)}
.uni__img{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--sable)}
.uni__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.uni__txt{display:flex;flex-direction:column;gap:10px;padding:clamp(20px,2.2vw,30px)}
.uni__sur{font-family:var(--display);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ciel-600);font-weight:700}
.uni__h{font-family:var(--display);font-size:clamp(1.28rem,2vw,1.62rem);line-height:1.18;color:var(--marine-900);font-weight:700}
.uni__p{color:var(--gris);line-height:1.6}
.uni__l{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.uni__l li{position:relative;padding-left:24px;font-size:.95rem;color:var(--marine-800)}
.uni__l li::before{content:"";position:absolute;left:0;top:.45em;width:12px;height:12px;border-radius:50%;background:var(--ciel-300)}
.uni__cta{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-weight:700;color:var(--ciel-700)}
.uni__cta svg{width:18px;height:18px;flex:none}
@media(max-width:860px){.univers{grid-template-columns:1fr}}
/* galerie statique (< 5 photos) : grille centrée, pas de répétition */
.galgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,232px));gap:var(--gut);justify-content:center;margin-top:6px}
.galgrid figure{margin:0}
.galgrid figure img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:14px;display:block}
.galgrid figcaption{font-size:.82rem;color:var(--gris);font-weight:500;margin-top:8px;line-height:1.35}
@media(max-width:560px){.galgrid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}
/* Hero : diaporama de photos, chacune passe par l'effet nettoyage + fondu */
.vitre__scene img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity 1.3s ease}
.vitre__scene img.on{opacity:1}
.vitre__haze{animation:racletteLoop 3.2s cubic-bezier(.62,.02,.24,1) .35s forwards}
@keyframes racletteLoop{0%{clip-path:inset(0 0 0 0);opacity:0}8%{clip-path:inset(0 0 0 0);opacity:1}100%{clip-path:inset(0 0 0 101%);opacity:1}}
.vitre__lame{animation:lameLoop 3.2s cubic-bezier(.62,.02,.24,1) .35s forwards}
@keyframes lameLoop{0%,8%{left:0;opacity:0}14%{opacity:1}94%{opacity:1}100%{left:101%;opacity:0}}
@media(prefers-reduced-motion:reduce){.vitre__haze,.vitre__lame{animation:none;opacity:0}.vitre__scene img{transition:none}}
@media(prefers-reduced-motion:reduce){
  .mq{-webkit-mask-image:none;mask-image:none;overflow-x:auto;scroll-snap-type:x mandatory}
  .mq__track{animation:none}
  .mq__set:nth-child(2){display:none}
  .mq__set>*{scroll-snap-align:start}
}
/* ============ Pages services : bandes texte + image (fini le mur de texte à gauche) ============ */
.svc{padding:var(--sy) 0;display:flex;flex-direction:column;gap:clamp(40px,4.6vw,60px)}
.svc .wrap{max-width:var(--max)}
.svc h2{margin-bottom:12px}
.svc p{color:var(--marine-800);opacity:.93;margin-bottom:12px;font-size:1.03rem;line-height:1.6;max-width:56ch}
.svc p:last-child{margin-bottom:0}
.svc-band{width:100%}
/* Bande 2 colonnes : la photo ÉPOUSE la hauteur du texte (align stretch) → jamais de vide */
.svc-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,3.6vw,52px);align-items:stretch}
.svc-split--rev .svc-split__txt{order:2}
.svc-split__txt{min-width:0;display:flex;flex-direction:column;justify-content:center}
.svc-split__img{position:relative;min-width:0;min-height:300px;overflow:hidden;border-radius:18px;box-shadow:0 22px 44px -24px rgba(9,25,52,.42)}
.svc-split__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.svc-split__cap{position:absolute;left:14px;bottom:14px;z-index:2;background:rgba(7,28,48,.72);color:#fff;font-size:.75rem;font-weight:600;padding:6px 11px;border-radius:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
@media(max-width:860px){.svc-split{grid-template-columns:1fr;gap:18px}.svc-split--rev .svc-split__txt{order:0}.svc-split__img{min-height:0;aspect-ratio:16/10}.svc-split__img img{position:static;aspect-ratio:16/10;height:auto}.svc p{max-width:none}}
/* Surfaces : grille de « chips » (au lieu d'une liste à puces à gauche) */
.svc-chips{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:10px 16px;margin:4px 0 0}
@media(max-width:620px){.svc-chips{grid-template-columns:1fr}}
.svc-chips li{display:flex;gap:11px;align-items:flex-start;padding:13px 15px;background:#fff;border:1px solid rgba(11,37,64,.09);border-radius:12px;font-size:.95rem;color:var(--marine-800);font-weight:500;line-height:1.4}
.svc-chips li::before{content:"";flex:none;width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--ciel-500);box-shadow:0 0 0 4px rgba(46,155,230,.14)}
/* Encart mis en valeur (méthode, fréquence) */
.svc-callout{background:linear-gradient(160deg,var(--sable),#fff);border:1px solid rgba(11,37,64,.09);border-left:3px solid var(--ciel-500);border-radius:16px;padding:clamp(22px,3vw,34px)}
.svc-callout h2{font-size:1.4rem;margin-bottom:8px}
.svc-callout p{margin-bottom:0;max-width:none}
.svc-callout--marine{background:linear-gradient(150deg,var(--marine-900),var(--marine-700));border-color:transparent;border-left-color:var(--ciel-400)}
.svc-callout--marine h2{color:#fff}
.svc-callout--marine p{color:rgba(223,240,251,.9)}
/* Pourquoi + crédit d'impôt côte à côte */
.svc-pair{display:grid;grid-template-columns:1.35fr .95fr;gap:clamp(24px,3.4vw,46px);align-items:start}
@media(max-width:860px){.svc-pair{grid-template-columns:1fr;gap:22px}}
.svc-pair__txt{min-width:0}
.svc-pair .encart{margin:0}
.svc-solo{max-width:760px}

/* ===== Passe studio (finition direction de création) ===== */
:root{--ciel-700:#14739E;--gut-lg:24px}
/* Filet anti-étirement image : jamais sur svg (icônes intactes) */
img{height:auto}
/* H1 — accent ciel en TEXTE : grade lisible (AA) au lieu du ciel-600 délavé */
.liseré,.fil__in a,.srv__lien,.scarte__lien,.zone__t,.sec__sous,.liee em,.secteur .vv,
.rmap__note a,.locmap__link svg,.locmap__head svg,.page-legale a,.page-legale .retour{color:var(--ciel-700)}
/* M5 — gris-clair (pensé fond marine) illisible sur fond clair → gris */
.av__src,.fil__in span,.nav__sub a small{color:var(--gris)}
/* H2 — casser les enchaînements de sections de même fond (rythme vertical) */
.galsec{background:var(--sable)}
.contenu + .galsec,.galsec + .sec:not(.sec--sable),.sec:not(.sec--sable) + .galsec,
.svc + .galsec,.galsec + .svc,.sec:not(.sec--sable) + .sec:not(.sec--sable),.sec--sable + .sec--sable{
  padding-top:calc(var(--sy) * .55);border-top:1px solid rgba(11,37,64,.06)}
.devis + .ctaband{padding-top:calc(var(--sy) * .55);border-top:1px solid rgba(138,211,241,.12)}
/* H3 — tiroir burger opaque (fini le texte fantôme du hero) + voile plein écran */
@media(max-width:1024px){.nav__liens{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}
  .nav__liens .nav__cta-caret{display:none}}
.nav__liens.ouvert::before{content:"";position:fixed;inset:0;z-index:-1;background:rgba(4,18,31,.5)}
/* M1 — échelle de rayons : 3 paliers (14 cartes / 16 média / 18 panneaux) */
.impot{border-radius:18px}
.tk,.zone,.etape,.liee,.faq details,.about__stat{border-radius:14px}
/* M2 — survol de cartes unifié (-4px) + donner le hover aux cartes qui l'ont oublié */
.rea:hover,.srv:hover,.av:hover,.scarte:hover,.liee:hover,.secteur:hover,.etape:hover{
  transform:translateY(-4px);box-shadow:var(--ombre-carte);border-color:var(--ciel-300)}
.secteur,.etape{transition:transform .3s,box-shadow .3s,border-color .3s}
/* M3 — eyebrow/liseré : un seul token (police corps, poids 600, tracking .14em) */
.liseré,.hero__kicker,.echelle__t,.zone__t,.ct__l,.prix__l,.nav__sub-tete{
  font-family:var(--corps);font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.14em;line-height:1}
/* M4 — ombres et bleus branchés sur les tokens (fini le noir pur / bleus doublons) */
.locmap--svg{box-shadow:var(--ombre-forte)}
.ap__poignee{box-shadow:0 0 18px rgba(7,28,48,.45)}
.mega{box-shadow:0 26px 64px -22px rgba(7,28,48,.30)}
.mega__band:hover .mega__cta{background:var(--ciel-400)}
/* B1 — graisses réellement chargées (Bricolage max 800, IBM Plex max 600) */
.prix__n,.note__n,.tk__n,.echelle__moins,.logo__nom{font-weight:800}
h1,h2,h3,h4{font-synthesis:none}
.srv__tag,.upload__neuf,.impot__badge,.nav__sub-tete{font-weight:600}
/* B2 — respiration des titres courants + équilibrage des lignes */
h2,.contenu h2,.svc h2{line-height:1.12}
.hero h1{line-height:1.06}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
/* B3 — CTA « En savoir plus → » des cartes liées : sur sa propre ligne */
.liee{display:flex;flex-direction:column}
.liee span{flex:1}
.liee em{display:inline-flex;align-items:center;gap:6px;margin-top:10px;white-space:nowrap}
/* B4 — bande de sable orpheline sous la réassurance (transform → margin) */
.reassure__grille{transform:none;margin-top:-46px}
@media(max-width:1024px){.reassure__grille{margin-top:-30px}}
/* B6 — reflet du hero : masqué là où il chevauche (lu comme des résidus) */
@media(max-width:700px){.hero h1 em::after{display:none}}
/* B7 — gouttières sur token */
.reassure__grille,.etapes{gap:var(--gut)}
.mq--cartes,.mq--photos{--gut:var(--gut-lg)}
/* B8 — longueur de ligne de lecture plus tenue */
.faq .rep{max-width:70ch}
.contenu p{max-width:68ch}
/* Responsive — épurer le bas de page mobile (CTA header redondant, chevron trompeur) */
@media(max-width:680px){.nav__cta .btn{display:none}.pied__grille ul a{min-height:44px}}
/* ===== Passe v16 : échelle de corps unifiée (3 crans, fini le bruit de 12 tailles quasi-identiques) ===== */
:root{--fs-lead:1.02rem;--fs-body:.92rem;--fs-small:.82rem}
.hero__sub,.sec__tete p,.svc p,.contenu p,.about p{font-size:var(--fs-lead)}
.srv p,.scarte__b p,.secteur p,.rea p,.av__t,.faq .rep,.contenu ul.puces li,.zone__p,.liee p{font-size:var(--fs-body)}
.av__src,.liee span,.etape p,.pied ul a{font-size:var(--fs-small)}
/* Widgets flottants : ne pas chevaucher le tiroir menu mobile ouvert */
body:has(.nav__liens.ouvert) .rpc,body:has(.nav__liens.ouvert) .rpchat,body:has(.nav__liens.ouvert) .rpch{opacity:0;pointer-events:none}

/* 1) Icônes réassurance : tuiles bleues pleines + icône blanche (plus esthétique) */
.rea__ic{
  width:54px;height:54px;border-radius:15px;margin-bottom:18px;
  background:linear-gradient(145deg,var(--ciel-400),var(--ciel-600));
  color:#fff;
  box-shadow:0 15px 26px -12px rgba(39,165,224,.72),inset 0 1px 0 rgba(255,255,255,.42);
}
.rea__ic svg{width:26px;height:26px;stroke-width:1.85}

/* 2) Carte des zones : nettement réduite (jamais démesurée) et centrée dans sa colonne */
.rmap__img{max-width:400px;width:100%;height:auto;margin-inline:auto}
.rmap{max-width:420px;margin-inline:auto}
@media(min-width:1025px){.zones__grille{grid-template-columns:1.14fr .86fr}}
@media(max-width:1024px){.rmap,.rmap__img{max-width:360px}}
/* mini-carte du devis (page /devis/) : compacte elle aussi */
.locmap__map .rmap__img{max-width:340px}

/* 3) Devis : combler le vide à côté du formulaire avec une photo (home) */
.devis__grille:has(.devis__fill){align-items:stretch}
.devis__grille:has(.devis__fill)>.rev:first-child{display:flex;flex-direction:column}
.devis__fill{
  margin-top:26px;flex:1 1 auto;min-height:230px;position:relative;
  border-radius:16px;overflow:hidden;border:1px solid rgba(138,211,241,.18);
  box-shadow:0 30px 60px -30px rgba(0,0,0,.66);
}
.devis__fill img{width:100%;height:100%;min-height:230px;object-fit:cover;display:block}
.devis__fill::after{content:"";position:absolute;inset:0;background:linear-gradient(155deg,transparent 52%,rgba(11,37,64,.42))}
@media(max-width:1024px){.devis__fill{flex:none;min-height:0;aspect-ratio:16/10}.devis__fill img{min-height:0}}

/* 4) Flèches des sliders continus (marquee) : pour avancer plus vite */
.mqwrap{position:relative}
.mq__nav{
  position:absolute;top:calc(50% - 11px);transform:translateY(-50%);z-index:4;
  width:44px;height:44px;border-radius:50%;display:grid;place-items:center;cursor:pointer;
  background:#fff;color:var(--marine-800);border:1px solid rgba(11,37,64,.1);
  box-shadow:0 12px 26px -10px rgba(11,37,64,.42);
  transition:background .18s,color .18s,box-shadow .18s,transform .12s;
  -webkit-user-select:none;user-select:none;touch-action:none;
}
.mq__nav:hover{background:var(--marine-900);color:#fff;box-shadow:0 16px 30px -10px rgba(11,37,64,.55)}
.mq__nav:active{transform:translateY(-50%) scale(.92)}
.mq__nav:focus-visible{outline:3px solid var(--ciel-400);outline-offset:2px}
.mq__nav svg{width:20px;height:20px;pointer-events:none}
.mq__nav--prev{left:-8px}
.mq__nav--next{right:-8px}
@media(max-width:1240px){.mq__nav--prev{left:2px}.mq__nav--next{right:2px}}
@media(max-width:680px){.mq__nav{width:44px;height:44px}.mq__nav svg{width:18px;height:18px}}
@media(prefers-reduced-motion:reduce){.mq__nav:active{transform:translateY(-50%)}}

/* ═══════════ Modèle de page service UNIFIÉ — sections alternées blanc / bleu (2026-07-21) ═══════════ */
.sblock{padding:clamp(54px,7vw,96px) 0}
.sblock--white{background:#fff}
.sblock--blue{background:var(--sable)}
.sblock--marine{position:relative;overflow:hidden;color:#fff;
  background:radial-gradient(85% 95% at 100% 0,rgba(39,165,224,.22),transparent 60%),linear-gradient(160deg,var(--marine-900),var(--marine-800))}
.sblock--marine h2,.sblock--marine h3{color:#fff}
.sblock--marine p{color:rgba(223,240,251,.9)}
.sblock--marine .liseré{color:var(--ciel-300)}
.sblock .sec__tete{margin-bottom:clamp(24px,3.2vw,38px)}
/* split texte + image : la photo ÉPOUSE la hauteur du texte (jamais géante, jamais de vide) */
.ssplit{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,4vw,58px);align-items:stretch}
.ssplit--rev .ssplit__txt{order:2}
.ssplit__txt{min-width:0;align-self:center}
.ssplit__txt>.liseré:first-child,.ssplit__txt>h2:first-child{margin-top:0}
.ssplit__txt h2{margin-bottom:14px}
.ssplit__media{position:relative;min-height:330px;border-radius:20px;overflow:hidden;box-shadow:0 30px 58px -30px rgba(9,25,52,.5)}
.ssplit__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block}
.ssplit__cap{position:absolute;left:14px;bottom:14px;z-index:2;background:rgba(7,28,48,.72);color:#fff;font-size:.75rem;font-weight:600;padding:6px 12px;border-radius:9px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
@media(max-width:860px){.ssplit{grid-template-columns:1fr;gap:20px}.ssplit--rev .ssplit__txt{order:0}.ssplit__media{min-height:0;aspect-ratio:16/10}.ssplit__media img{position:static}}
/* liste "solutions" en coches */
.spts{list-style:none;display:grid;gap:12px;margin:18px 0 0}
.spts li{display:flex;gap:12px;align-items:flex-start;color:var(--marine-800);font-size:1.02rem;line-height:1.5}
.spts li>svg{flex:none;margin-top:3px;color:var(--succes,#1FB57A)}
/* surfaces traitées (sous-bloc du bloc matériel) */
.ssurf{margin-top:clamp(28px,3.6vw,44px)}
.ssurf h3{font-size:1.12rem;margin-bottom:14px}
/* bandeau highlight marine (crédit d'impôt part. / engagement pro) */
.shl{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,3vw,36px);align-items:center}
.shl__ic{width:66px;height:66px;border-radius:18px;display:grid;place-items:center;background:rgba(138,211,241,.15);color:var(--ciel-300);flex:none;box-shadow:inset 0 0 0 1px rgba(138,211,241,.22)}
.shl__ic svg{width:32px;height:32px}
.shl__t h2{font-size:clamp(1.35rem,2.3vw,1.85rem);margin-bottom:9px}
.shl__t p{max-width:66ch}
.shl__t em{font-style:normal;color:var(--ciel-200)}
@media(max-width:600px){.shl{grid-template-columns:1fr;gap:16px}}
.sblock--blue .etape{background:#fff}

/* ═══════════ Finitions Lambert #2 (2026-07-21) — eyebrow / résultat / pourquoi / réassurance ═══════════ */
/* 1) Trait bleu de l'eyebrow visible aussi hors .sec__tete (« LA PRESTATION » dans le split) */
.liseré.vu::before,.ssplit__txt .liseré::before{transform:scaleX(1)}
/* 2) Résultat/fréquence : aérer les deux sous-blocs empilés (comme partout) */
.ssplit__txt p{line-height:1.64}
.ssplit__txt p+h2{margin-top:32px}
.ssplit__txt>.spts{margin-top:20px}
.ssplit__txt>h2+p{margin-top:0}
/* 3) « Pourquoi nous choisir » : titre en tête, description dessous, plus d'air */
.args{grid-template-columns:1fr 1fr;gap:24px 40px}
.args li{align-items:flex-start;gap:13px}
.args li>div{min-width:0;color:var(--gris);font-size:.95rem;line-height:1.5}
.args li>div b{display:block;color:var(--marine-900);font-weight:700;font-size:1rem;margin-bottom:3px}
@media(max-width:680px){.args{grid-template-columns:1fr;gap:18px}}
/* 4) Cartes réassurance accueil : icône plus premium + cartes cohérentes */
.rea{padding:34px 30px;border:1px solid rgba(11,37,64,.08)}
.rea__ic{width:56px;height:56px;border-radius:16px;
  box-shadow:0 12px 22px -12px rgba(39,165,224,.55),inset 0 1px 0 rgba(255,255,255,.45)}
.rea__ic svg{width:27px;height:27px}
.rea h3{font-size:1.14rem;margin-bottom:9px}
.rea:hover{border-color:var(--ciel-300)}

/* ═══════════ Finitions Lambert #3 (2026-07-21) ═══════════ */
/* 1) Bandeau highlight (crédit d'impôt / engagement pro) CENTRÉ sur toutes les pages service */
.shl{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:760px;margin-inline:auto;gap:20px}
.shl__t p{max-width:62ch;margin-inline:auto}
@media(max-width:600px){.shl{gap:16px}}
/* 5) Photo du devis (accueil) : taille contenue, plus « à la bonne taille » */
.devis__fill{max-height:400px}
@media(max-width:1024px){.devis__fill{max-height:none}}
/* 3) Page zones : cartes secteurs alignées sur le nouveau design (arrondi + ombre) */
.secteur{padding:26px 28px;border-radius:16px;box-shadow:var(--ombre-douce)}
.secteur h3{font-size:1.16rem;margin-bottom:6px}
.secteur .vv{margin-bottom:12px}

/* ═══════════ Finitions Lambert #4 (2026-07-21) ═══════════ */
/* 1a) Section réassurance : vraie respiration haut + bas (fini le cramé, plus d'overlap agressif) */
.reassure{padding:clamp(48px,5.5vw,78px) 0}
.reassure__grille{transform:none!important;margin-top:0!important}
@media(max-width:1024px){.reassure__grille{transform:none!important;margin-top:0!important}}
/* 1b) Liens dans le texte : clairement VISIBLES, en bleu souligné (on doit voir qu'on peut cliquer) */
p a,.rep a,.puces a,.contenu li a,.zone__p a{color:var(--ciel-700);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:2.5px;font-weight:600;transition:color .18s}
p a:hover,.rep a:hover,.puces a:hover{color:var(--ciel-500)}
.sblock--marine p a,.devis p a,.devis__rassure a{color:var(--ciel-300)}
.sblock--marine p a:hover,.devis p a:hover{color:#fff}
/* 3) Grille réalisations : PLEINE LARGEUR du site (mêmes bords que les autres sections) */
.galgrid--full{grid-template-columns:repeat(4,1fr);justify-content:stretch;margin-top:8px}
.galgrid--full figure img{aspect-ratio:4/3}
@media(max-width:1024px){.galgrid--full{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.galgrid--full{grid-template-columns:repeat(2,1fr)}}
/* séparation subtile entre deux sections claires qui se suivent (pourquoi commune → zones) */
.sblock--white + section.sec:not(.sec--sable){box-shadow:inset 0 1px 0 rgba(11,37,64,.06)}
/* 6) Page devis : la carte remplit bien sa carte + colonne gauche à la taille du formulaire */
.devis__grille:has(.locmap--svg) .devis__rassure{display:none}  /* coches redondantes avec le sous-titre du formulaire */
/* la carte remplit la colonne gauche et s'aligne EXACTEMENT sur le bas du formulaire (desktop) ; image « contain » = pas de rognage des communes */
.devis__grille:has(.locmap--svg){align-items:stretch}
.devis__grille:has(.locmap--svg)>.rev:first-child{display:flex;flex-direction:column}
.devis__grille:has(.locmap--svg) .locmap--svg{flex:1 1 auto;min-height:300px;display:flex;flex-direction:column;overflow:hidden}
.devis__grille:has(.locmap--svg) .locmap__map{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:8px 18px 12px}
.devis__grille:has(.locmap--svg) .locmap__map .rmap__img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;margin:0}
@media(max-width:1024px){.devis__grille:has(.locmap--svg) .locmap--svg{flex:none;min-height:0}.devis__grille:has(.locmap--svg) .locmap__map .rmap__img{max-height:none;width:100%}}

/* ═══════════ Plan go-live — correctifs sûrs (2026-07-21) ═══════════ */
/* footer : titres de colonnes (ex-h4 → p) — même look, hors flux Hn (SEO outline propre) */
.pied__ct{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin:0 0 18px;font-weight:700}
/* formulaire : champs à 16px → pas de zoom auto iOS au focus (friction mobile) */
.champ input,.champ select,.champ textarea{font-size:16px}
/* consentement RGPD requis : retour visuel clair si non coché à l'envoi */
.rgpd--err{outline:2px solid var(--erreur);outline-offset:7px;border-radius:8px}
.rgpd--err input[type=checkbox]{outline:2px solid #ff7a5c;outline-offset:2px}

