/* ============================================================
   LADB : Global CSS
   Design tokens + all component styles
   ============================================================ */

@font-face {
  font-family: "Bricolage Grotesque";
  src: url("../fonts/BricolageGrotesque-VariableFont_opsz_wdth_wght.ttf") format("truetype-variations"),
       url("../fonts/BricolageGrotesque-VariableFont_opsz_wdth_wght.ttf") format("truetype");
  font-weight: 200 800;
  font-stretch: 75% 100%;
  font-style: normal;
  font-display: swap;
}

/* ───────── TOKENS ───────── */
:root {
  --blue-stellaire: #0B1A33;
  --blue-abyssal:   #060D1A;
  --blue-indigo:    #0A1428;
  --blue-encre:     #142C4D;

  --copper-light:   #D9A066;
  --copper:         #B87333;
  --copper-deep:    #9A5E27;
  --copper-rose:    #C67B45;

  --gradient-copper: linear-gradient(135deg, #D9A066 0%, #B87333 45%, #9A5E27 100%);
  --gradient-copper-soft: linear-gradient(135deg, #E6BD8B 0%, #C68A4E 50%, #A8682E 100%);
  --gradient-copper-deep: linear-gradient(135deg, #C68A4E 0%, #9A5E27 45%, #7A4A1F 100%);

  --cream:  #FAF8F4;
  --ivory:  #FBFAF7;
  --white:  #FFFFFF;
  --sand:   #F5F1EA;
  /* Bordure fine chaude des cartes blanches posees sur le creme (design Sandwich) */
  --cream-border: #E8E2D8;

  --green-dispo:  #1FA35F;
  --red-urgence:  #C8412E;

  --bg:           var(--blue-stellaire);
  --bg-deep:      var(--blue-abyssal);
  --bg-elevated:  #14233F;
  --bg-section:   var(--cream);
  --surface:      #161B24;
  --surface-2:    #1B212C;

  --fg:             #FFFFFF;
  --fg-soft:        #E8EDF5;
  --fg-mute:        #A9B5CB;
  --fg-dim:         #8493A8;
  --fg-onlight:     #1A1F2E;
  --fg-onlight-mute:#5A6473;

  --accent:          var(--copper);
  --accent-light:    var(--copper-light);
  --accent-deep:     var(--copper-deep);
  --accent-gradient: var(--gradient-copper);

  --border:         rgba(255,255,255,.10);
  --border-strong:  rgba(255,255,255,.18);
  --border-copper:  rgba(184,115,51,.34);
  --border-onlight: rgba(11,26,51,.10);

  --shadow-sm:     0 1px 2px rgba(0,0,0,.30);
  --shadow:        0 8px 24px rgba(0,0,0,.35);
  --shadow-lg:     0 20px 50px rgba(0,0,0,.45);
  --shadow-copper: 0 12px 30px rgba(184,115,51,.32);

  --radius-xs:  6px;
  --radius-sm:  8px;
  --radius:     10px;
  --radius-md:  12px;
  --radius-lg:  16px;
  --radius-xl:  22px;
  --radius-pill:999px;

  --space-1:  4px; --space-2:  8px; --space-3:  12px; --space-4:  16px;
  --space-5:  20px; --space-6: 24px; --space-8:  32px; --space-10: 40px;
  --space-12: 48px; --space-16:64px; --space-20: 80px;

  --ease-out:    cubic-bezier(.22,.61,.36,1);
  --ease-in-out: cubic-bezier(.65,.05,.36,1);
  --dur-fast:    140ms;
  --dur:         220ms;
  --dur-slow:    380ms;

  --font-display: "Bricolage Grotesque", "Inter", system-ui, sans-serif;
  --font-body:    "Hanken Grotesk", "Inter", system-ui, sans-serif;
  --font-mono:    "JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;

  --t-eyebrow: 11px; --t-eyebrow-ls: 1.4px;
  --t-body-sm: 13px; --t-body: 15px; --t-body-lg: 17px;
  --t-h6: 16px; --t-h5: 19px; --t-h4: 23px; --t-h3: 28px; --t-h2: 34px;
  --t-h1: 42px; --t-display: 56px;
}

/* ───────── BASE ───────── */
*,*::before,*::after { box-sizing: border-box; }
html { -webkit-font-smoothing: antialiased; text-size-adjust: 100%; }
body {
  font-family: var(--font-body);
  font-size: var(--t-body);
  line-height: 1.55;
  color: var(--fg-soft);
  background: var(--bg);
  font-feature-settings: "ss01","kern";
  margin: 0;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }

/* ============================================================
   HOVER LIENS : zero bleu Blocksy, effet cuivre sur tout le contenu.
   Cause racine : Blocksy applique `a:hover{color:var(--theme-link-hover-color)}`
   (et `.ct-menu-link{color:var(--theme-link-hover-color)}`), avec
   --theme-link-hover-color = --theme-palette-color-2 (#1559ed, bleu), declare
   dans un <style> inline charge APRES ce fichier. On surcharge les variables de
   lien Blocksy avec les tokens cuivre. Selecteur `:root:root` (specificite
   0,0,2,0) pour l'emporter sur la declaration `:root` inline plus tardive, sans
   `!important`. Les liens de contenu qui ne fixent pas leur couleur de hover
   (ex. .ladb-autres-expertises__link) heritent donc du cuivre ; leur
   soulignement de hover propre est conserve (accessibilite). */
:root:root {
  --theme-link-initial-color: var(--copper-light); /* repos : cuivre clair, lisible sur fond sombre */
  --theme-link-hover-color:   var(--copper);        /* hover : cuivre soutenu, lisible sur fond clair */
  --theme-link-active-color:  var(--copper);
}
/* Menu : le header ET le panneau mobile offcanvas portent tous deux la classe
   .ct-header. Couleur au REPOS inchangee (--theme-palette-color-8, l'original
   Blocksy) ; seuls le SURVOL et l'etat actif passent du bleu Blocksy
   (--theme-palette-color-2) au cuivre de la charte. Blocksy applique ces
   variables sur .ct-menu-link (liens de menu) uniquement : les boutons du header
   (Demander mon devis, telephone) sont des elements Bouton Blocksy (.ct-button /
   couleurs de bouton dediees), ils n'utilisent PAS --theme-link-hover-color et
   restent donc strictement inchanges. */
.ct-header {
  --theme-link-initial-color: var(--theme-palette-color-8);
  --theme-link-hover-color:   var(--copper);
  --theme-link-active-color:  var(--copper);
}
::selection { background: var(--copper); color: #2A1A09; }

/* ============================================================================
   FOND DU DOCUMENT ALIGNE SUR LE FOND DU CONTENU
   ----------------------------------------------------------------------------
   Cause identifiee du bandeau bleu nuit vu en bas d'ecran pendant le scroll,
   apres elimination formelle de tous les elements fixes de la page (seuls
   .ladb-mobilecta, .ladb-wa et .ct-panel sont en position fixed, et aucun
   n'est une bande pleine largeur bleu nuit) :

   le <body> restait sur var(--bg), bleu nuit, alors que le creme n'etait pose
   que sur main#main.site-main. Le document avait donc un fond bleu nuit sous
   un contenu creme. Toute surface du viewport que main ne couvre pas laissait
   voir ce bleu nuit pleine largeur : la bande de reserve du CTA en bas de
   document, et surtout, pendant un scroll rapide, les tuiles pas encore
   rasterisees, que Safari remplit avec la couleur de fond du document.

   Regle generale : le fond du document doit correspondre au fond DOMINANT de
   main, jamais l'inverse. C'est une couleur de secours, elle doit ressembler
   a ce que l'utilisateur voit.

   html ne declare aucun fond : le fond du body est donc propage au canvas par
   le navigateur, y compris dans les zones de rebond. Il suffit de traiter body.

   Pages passees en creme (leur main est creme) :
     - body.ladb-sandwich ....... accueil, piliers, villes, hubs Herault, urgence
     - body.single-post ......... articles de blog (creme depuis le Lot 2)
     - gabarit page-standard-ladb  devis, contact, a-propos, faq, avis, juridiques

   Pages LAISSEES en bleu nuit, leur main etant majoritairement sombre :
     - /gallery/ ................ hero en degrade #0B1A33 vers #060D1A
     - /category/blog/ .......... hero sur var(--bg), cartes creme sur fond sombre
     - pages legacy Elementor ... aucun fond creme
   ============================================================================ */
body.ladb-sandwich,
body.single-post,
body.page-template-page-standard-ladb {
  background: var(--cream);
}

/* Override Blocksy's default body padding-bottom when mobile CTA is present */
/* GOAL-50 3.3, simplifie apres la QA iPhone : la reserve de place lit
   desormais UNE SEULE valeur, --ladb-cta-h, la hauteur reellement mesuree de
   la barre CTA par initMobileCta() (assets/js/frontend.js). Cette hauteur
   inclut deja le padding, la bordure et la zone sure de l'ecran, puisque la
   barre absorbe env(safe-area-inset-bottom) en padding bas et non en offset
   (voir assets/css/mobile-cta.css). Plus aucun calcul en double entre la
   barre, la reserve et la bulle WhatsApp. */
body.ladb-has-mobilecta {
  padding-bottom: var(--ladb-cta-h, 84px);
}
@media (min-width: 900px) { body.ladb-has-mobilecta { padding-bottom: 0; } }

/* Neutralize Blocksy's content padding on full-width homepage */
.ladb-main { padding: 0 !important; margin: 0 !important; max-width: none !important; }
.site .ladb-main .entry-content { padding: 0 !important; margin: 0 !important; max-width: none !important; }

/* ───────── LAYOUT ───────── */
.container { max-width: 1180px; margin: 0 auto; padding: 0 20px; }
@media (min-width: 768px) { .container { padding: 0 32px; } }

/* ───────── EYEBROW / v5 style ───────── */
.ladb-eyebrow,
[class*="ladb-"] .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
  color: var(--copper-light);
  text-transform: none;
  margin-bottom: 10px;
}
.ladb-eyebrow::before,
[class*="ladb-"] .eyebrow::before {
  content: "";
  display: inline-block;
  width: 28px;
  height: 2px;
  background: var(--gradient-copper);
  border-radius: 1px;
  flex-shrink: 0;
}

/* ───────── BUTTONS ───────── */
.ladb-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 13px 22px; border-radius: var(--radius);
  font-family: var(--font-display); font-weight: 700; font-size: 14px;
  border: none; cursor: pointer; text-decoration: none; letter-spacing: -0.005em;
  transition: transform var(--dur-fast) var(--ease-out),
              box-shadow var(--dur) var(--ease-out),
              filter var(--dur) var(--ease-out);
}
.ladb-btn:active { transform: scale(.985); }
.ladb-btn--primary {
  background: var(--gradient-copper); color: #2A1A09;
  box-shadow: var(--shadow-copper);
}
.ladb-btn--primary:hover,
.ladb-btn--primary:focus-visible {
  background: var(--gradient-copper-deep); color: #2A1A09;
  box-shadow: 0 16px 38px rgba(184,115,51,.42);
}
.ladb-btn--secondary {
  background: rgba(255,255,255,.06); color: #fff;
  border: 1px solid rgba(255,255,255,.18);
}
.ladb-btn--secondary:hover,
.ladb-btn--secondary:focus-visible {
  background: rgba(255,255,255,.10); color: #fff;
  border-color: rgba(255,255,255,.28);
}
.ladb-btn--outline {
  background: transparent; color: var(--copper-light);
  border: 1.5px solid rgba(217,160,102,.5);
}
.ladb-btn--outline:hover,
.ladb-btn--outline:focus-visible {
  background: rgba(217,160,102,.10); color: var(--copper-light);
  border-color: rgba(217,160,102,.8);
}
.ladb-btn--urgent { background: var(--red-urgence); color: #fff; }
.ladb-btn--urgent:hover,
.ladb-btn--urgent:focus-visible {
  background: var(--red-deep, #9A2D24); color: #fff;
  filter: brightness(1.08);
}
.ladb-btn--sm { padding: 10px 16px; font-size: 13px; }
.ladb-btn--full { width: 100%; }

/* ───────── SECTION ───────── */
.ladb-section { padding: 56px 0; }
@media (min-width: 900px) { .ladb-section { padding: 88px 0; } }
.ladb-section--cream { background: var(--cream); color: var(--fg-onlight); }
.ladb-section--cream h2, .ladb-section--cream h3 { color: var(--fg-onlight); }
.ladb-section--cream p { color: var(--fg-onlight-mute); }
.ladb-section__head { max-width: 680px; margin: 0 0 36px; }
.ladb-section__head h2 {
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(28px,4.5vw,42px); line-height: 1.08;
  letter-spacing: -0.015em; margin: 0 0 12px; color: #fff;
}
.ladb-section--cream .ladb-section__head h2 { color: var(--fg-onlight); }
.ladb-section__head p { font-size: 16px; line-height: 1.55; color: var(--fg-mute); margin: 0; }
.ladb-section--cream .ladb-section__head p { color: var(--fg-onlight-mute); }

/* ───────── HERO ───────── */
.ladb-hero { position: relative; background: var(--blue-stellaire); overflow: hidden; }
.ladb-hero__grain {
  position: absolute; inset: 0; pointer-events: none; mix-blend-mode: overlay; opacity: .12;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.7'/></svg>");
}
.ladb-hero__inner { position: relative; z-index: 1; padding: 32px 0 40px; }
@media (min-width: 900px) { .ladb-hero__inner { padding: 48px 0 56px; } }
.ladb-hero__top { display: flex; align-items: center; padding-bottom: 28px; }
.ladb-hero__est {
  /* gap porte a 20px depuis le retrait du separateur decoratif (GOAL-44 2.6) :
     les deux libelles ne doivent pas se lire comme une seule suite. */
  display: flex; align-items: center; gap: 20px; color: var(--copper-light);
  font-family: var(--font-mono); font-size: 11px; text-transform: uppercase;
  letter-spacing: 1.5px; font-weight: 500;
}
.ladb-hero__live {
  display: inline-flex; align-items: center; gap: 8px;
  color: #3FD08A; font-family: var(--font-mono); font-size: 11px;
  letter-spacing: 1.5px; text-transform: uppercase; font-weight: 600;
}
.ladb-hero__live .dot {
  width: 8px; height: 8px; border-radius: 50%; background: #3FD08A;
  animation: ladb-ping 2.2s ease-out infinite;
}
@keyframes ladb-ping {
  0%   { box-shadow: 0 0 0 0 rgba(63,208,138,.7); }
  70%  { box-shadow: 0 0 0 8px rgba(63,208,138,0); }
  100% { box-shadow: 0 0 0 0 rgba(63,208,138,0); }
}
.ladb-hero__body { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: start; }
@media (min-width: 900px) { .ladb-hero__body { grid-template-columns: 1.25fr .95fr; gap: 48px; } }
.ladb-hero__kicker {
  color: var(--copper-light); letter-spacing: 1.6px; font-size: 11px; font-weight: 600;
  text-transform: uppercase; margin: 0 0 18px;
}
.ladb-hero__title {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(46px,9vw,96px); line-height: .92;
  letter-spacing: -0.035em; margin: 0; color: #fff;
}
.ladb-hero__title .l1 { display: block; }
.ladb-hero__title .l2 {
  display: block; margin-top: 4px;
  font-size: clamp(54px,10vw,108px); line-height: .9;
  letter-spacing: -0.04em; font-weight: 700; font-style: italic;
  background: linear-gradient(115deg,#E6BD8B 0%,#D9A066 18%,#B87333 42%,#8C5524 70%,#C68A4E 88%,#D9A066 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 1px 0 rgba(0,0,0,.3));
}
.ladb-hero__title .l3 {
  display: block; margin-top: 10px;
  font-family: var(--font-body); font-size: clamp(28px,5.4vw,52px);
  font-weight: 300; font-style: italic;
  color: #D6DEEA; letter-spacing: -0.015em; line-height: 1.05;
}
.ladb-hero__lede { margin-top: 24px; font-size: 17px; line-height: 1.5; color: var(--fg-mute); max-width: 480px; }
.ladb-hero__ctas { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.ladb-hero__photo {
  position: relative; min-height: 300px; align-self: stretch;
  border: 1px solid rgba(217,160,102,.32);
  background: radial-gradient(ellipse at 50% 40%, rgba(217,160,102,.18), transparent 55%),
              linear-gradient(160deg,#0F1F3E 0%, #060D1A 60%, #0B1A33 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.5); overflow: hidden;
}
@media (min-width: 900px) { .ladb-hero__photo { min-height: 430px; margin-top: 42px; } }
.ladb-hero__photo--real::before,
.ladb-hero__photo--real::after { display: none; }
.ladb-hero__photoImg {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center 30%; display: block;
}
.ladb-hero__photoOverlay {
  position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background: linear-gradient(180deg, rgba(11,26,51,.18) 0%, transparent 25%, transparent 55%, rgba(6,13,26,.86) 100%),
              radial-gradient(ellipse at 50% 30%, rgba(217,160,102,.10), transparent 55%);
}
.ladb-hero__photocap {
  position: absolute; top: 22px; left: 22px; color: var(--copper-light); z-index: 3;
  display: flex; align-items: center; gap: 10px;
  font-family: var(--font-mono); text-transform: uppercase;
  letter-spacing: 1.5px; font-size: 11px; font-weight: 500;
  background: rgba(11,26,51,.6); backdrop-filter: blur(6px);
  padding: 6px 12px; border-radius: 6px; border: 1px solid rgba(217,160,102,.32);
}
.ladb-hero__photocap .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--copper-light); }
.ladb-hero__photobadge { position: absolute; bottom: 22px; left: 22px; right: 22px; z-index: 3; color: #fff; }
.ladb-hero__photobadge .t { font-family: var(--font-display); font-weight: 600; font-size: 22px; line-height: 1.15; }
.ladb-hero__bottom { margin-top: 36px; }
@media (min-width: 900px) { .ladb-hero__bottom { margin-top: 48px; } }
.ladb-hero__hair {
  height: 1px;
  background: linear-gradient(90deg,transparent,rgba(217,160,102,.65) 8%,rgba(217,160,102,.65) 92%,transparent);
}
.ladb-hero__markers { display: grid; grid-template-columns: 1fr; gap: 18px; margin-top: 20px; }
@media (min-width: 640px) { .ladb-hero__markers { grid-template-columns: repeat(3,1fr); gap: 32px; } }
.ladb-hero__marker { display: flex; align-items: baseline; gap: 12px; }
.ladb-hero__marker .n {
  font-family: var(--font-display); font-weight: 800;
  font-size: 36px; line-height: 1; letter-spacing: -0.03em; color: var(--copper-light);
}
.ladb-hero__marker .l { display: block; color: #fff; font-family: var(--font-display); font-weight: 600; font-size: 16px; letter-spacing: -0.005em; }
.ladb-hero__marker .s { display: block; color: var(--fg-dim); font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: 1.4px; margin-top: 2px; }

/* ───────── TRUST STRIP ───────── */
/* GOAL-45 3.1 : blanc pur + filet plus marque, pour se distinguer de la
   section "Nos prestations" juste en dessous (creme sous le sandwich,
   quasi identique visuellement a var(--cream) sans cette difference). */
.ladb-trust {
  background: #FFFFFF; color: var(--fg-onlight);
  padding: 18px 0; border-top: 1px solid var(--border-onlight); border-bottom: 1px solid rgba(11,26,51,.16);
}
.ladb-trust__row {
  display: flex; flex-wrap: wrap; justify-content: space-evenly; align-items: center;
  gap: 14px 36px; font-size: 13px; font-weight: 600;
}
.ladb-trust__item { display: inline-flex; align-items: center; gap: 8px; color: var(--fg-onlight); }
.ladb-trust__item .ic { width: 18px; height: 18px; color: var(--copper); }
.ladb-trust__item--lead {
  flex: 1; justify-content: center;
  font-family: var(--font-display); display: inline-flex; align-items: center; gap: 12px;
  padding-right: 24px; border-right: 1px solid rgba(11,26,51,.12);
}
.ladb-trust__item--lead .ic { width: 26px; height: 26px; color: var(--copper); }
.ladb-trust__item--lead strong { display: block; font-weight: 700; font-size: 20px; line-height: 1; color: var(--fg-onlight); letter-spacing: -0.01em; }
.ladb-trust__item--lead em { display: block; font-style: normal; font-weight: 500; font-size: 12px; color: var(--fg-onlight-mute); font-family: var(--font-body); letter-spacing: .2px; margin-top: 3px; }
@media (max-width: 640px) { .ladb-trust__item--lead { padding-right: 0; border-right: none; width: 100%; justify-content: center; } }

/* ───────── SERVICE CARDS ───────── */
.ladb-services__grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 760px) { .ladb-services__grid { grid-template-columns: repeat(3,1fr); } }
.ladb-service {
  background: var(--surface); border: 1px solid var(--border); border-radius: 14px;
  padding: 24px; display: flex; flex-direction: column; gap: 12px;
  transition: border-color var(--dur) var(--ease-out), transform var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);
}
.ladb-service:hover { border-color: var(--border-strong); transform: translateY(-2px); box-shadow: var(--shadow-lg); }
.ladb-service__ic {
  width: 48px; height: 48px; border-radius: 12px;
  background: rgba(217,160,102,.10); border: 1px solid rgba(217,160,102,.32);
  display: flex; align-items: center; justify-content: center; color: var(--copper-light);
}
.ladb-service h3 { font-family: var(--font-display); font-weight: 700; font-size: 22px; letter-spacing: -0.01em; margin: 8px 0 0; color: #fff; }
.ladb-service p { font-size: 14px; line-height: 1.55; color: var(--fg-mute); margin: 0; }
.ladb-service__list { list-style: none; padding: 0; margin: 6px 0 0; display: flex; flex-direction: column; gap: 6px; }
.ladb-service__list li { font-size: 13px; color: var(--fg-soft); display: flex; align-items: center; gap: 8px; }
.ladb-service__list li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--copper-light); flex-shrink: 0; }
.ladb-service__link {
  margin-top: auto; padding-top: 14px;
  font-family: var(--font-display); font-weight: 600; font-size: 14px;
  color: var(--copper-light); display: inline-flex; align-items: center; gap: 6px;
}
.ladb-service__link::after { content: "→"; transition: transform var(--dur) var(--ease-out); }
.ladb-service:hover .ladb-service__link::after { transform: translateX(4px); }

/* ───────── HOW IT WORKS ───────── */
.ladb-steps { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 760px) { .ladb-steps { grid-template-columns: repeat(3,1fr); gap: 24px; } }
.ladb-step {
  position: relative; padding: 24px; border-radius: 14px;
  background: rgba(6,13,26,.62); backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,.12);
}
.ladb-step__n {
  font-family: var(--font-display); font-weight: 800; font-size: 38px;
  background: var(--gradient-copper); -webkit-background-clip: text;
  background-clip: text; color: transparent; line-height: 1; letter-spacing: -0.04em;
}
.ladb-step h3 { font-family: var(--font-display); font-weight: 700; font-size: 18px; color: #fff; margin: 10px 0 6px; }
.ladb-step p { font-size: 14px; color: var(--fg-mute); line-height: 1.55; margin: 0; }
/* GOAL-45 3.2/3.3 : fond de secours bleu nuit (evite tout liseret creme
   visible si l'image absolue laisse un sous-pixel de la section a nu :
   c'etait la "barre bizarre" a la jonction avec la section suivante). */
.ladb-hiw-photo { position: relative; overflow: hidden; background: var(--blue-stellaire); }
.ladb-hiw-photo__bg {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center 40%; display: block;
  filter: saturate(0.7) brightness(0.55);
}
.ladb-hiw-photo__overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(6,13,26,.80) 0%, rgba(6,13,26,.64) 40%, rgba(6,13,26,.86) 100%);
}
.ladb-hiw-photo .container { position: relative; z-index: 2; }

/* ───────── REVIEWS ───────── */
.ladb-reviews__head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; margin-bottom: 28px; flex-wrap: wrap;
}
.ladb-reviews__score {
  display: flex; align-items: center; gap: 18px;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 14px; padding: 16px 22px;
}
.ladb-reviews__scoreInner { display: flex; flex-direction: column; gap: 4px; }
.ladb-reviews__scoreRow { display: flex; align-items: center; gap: 12px; }
.ladb-reviews__score .big { font-family: var(--font-display); font-weight: 800; font-size: 38px; color: #fff; letter-spacing: -0.02em; line-height: 1; }
.ladb-reviews__starsLg { display: inline-flex; gap: 2px; }
.ladb-reviews__score .meta { font-size: 12px; color: var(--fg-mute); }
.ladb-reviews__score .meta strong { color: #fff; font-weight: 700; }
.ladb-reviews__grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 760px) { .ladb-reviews__grid { grid-template-columns: repeat(3,1fr); } }
.ladb-review--google {
  background: #fff; color: #202124; border: 1px solid #DADCE0;
  box-shadow: 0 1px 2px rgba(60,64,67,.12); border-radius: 14px; padding: 20px;
  display: flex; flex-direction: column; gap: 10px;
  font-family: "Google Sans","Hanken Grotesk",system-ui,sans-serif;
}
.ladb-review--google .ladb-review__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ladb-review--google .ladb-review__top { display: flex; align-items: center; gap: 10px; }
.ladb-review--google .ladb-review__av {
  width: 38px; height: 38px; border-radius: 50%; color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-weight: 500; font-size: 14px; flex-shrink: 0;
}
.ladb-review--google .ladb-review__nm { font-weight: 500; font-size: 14px; color: #202124; display: inline-flex; align-items: center; gap: 5px; line-height: 1.2; }
.ladb-review--google .ladb-review__meta { font-size: 12px; color: #70757A; font-weight: 400; }
.ladb-review--google .ladb-review__stars { display: inline-flex; gap: 1px; }
.ladb-review--google .ladb-review__quote { font-size: 14px; line-height: 1.5; color: #3C4043; margin: 0; font-weight: 400; }
.ladb-review--google .ladb-review__footer {
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  margin-top: 6px; padding-top: 10px; border-top: 1px solid #ECECEC;
  font-size: 11px; color: #70757A;
}

/* ───────── FAQ ───────── */
.ladb-faq-section { position: relative; overflow: hidden; }
.ladb-faq-section__bg {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center; display: block;
  filter: saturate(0.5) brightness(0.4);
}
.ladb-faq-section__overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(6,13,26,.80) 0%, rgba(6,13,26,.62) 40%, rgba(6,13,26,.85) 100%);
}
.ladb-faq-section .container { position: relative; z-index: 2; }
.ladb-faq { display: flex; flex-direction: column; gap: 8px; max-width: 780px; }
.ladb-faq__item {
  background: rgba(6,13,26,.55); backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.13);
  border-radius: 12px; overflow: hidden;
  transition: border-color var(--dur) var(--ease-out);
}
.ladb-faq__item.is-open { border-color: rgba(217,160,102,.4); }
.ladb-faq__btn {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; padding: 18px 20px; background: transparent; border: none; cursor: pointer;
  font-family: var(--font-display); font-weight: 600; font-size: 15px; color: #fff; text-align: left;
}
.ladb-faq__plus {
  width: 22px; height: 22px; flex-shrink: 0; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: rgba(217,160,102,.16); color: var(--copper-light);
  font-family: var(--font-display); font-weight: 600; font-size: 14px; line-height: 1;
  transition: transform var(--dur) var(--ease-out);
}
.ladb-faq__item.is-open .ladb-faq__plus { transform: rotate(45deg); }
.ladb-faq__body { padding: 0 20px 18px; font-size: 14px; line-height: 1.6; color: var(--fg-mute); display: none; }
.ladb-faq__item.is-open .ladb-faq__body { display: block; }

/* ───────── CONTACT SECTION ───────── */
.ladb-contact-section {
  position: relative;
  background: radial-gradient(ellipse at 70% 20%, rgba(217,160,102,.10), transparent 50%), var(--blue-stellaire);
  color: #fff; padding: 56px 0 0; overflow: hidden;
}
@media (min-width: 900px) { .ladb-contact-section { padding: 96px 0 0; } }
.ladb-contact-section__grain {
  position: absolute; top: 0; left: 0; right: 0; height: 60%; z-index: 1; pointer-events: none;
  mix-blend-mode: overlay; opacity: .10;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.7'/></svg>");
}
.ladb-contact-section__inner { position: relative; z-index: 2; }
.ladb-contact { display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 900px) { .ladb-contact { grid-template-columns: 1.2fr .8fr; gap: 32px; } }

/* CF7 form wrapper */
.ladb-cf7-wrapper {
  background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 22px;
}
.ladb-cf7-wrapper .wpcf7-form { display: flex; flex-direction: column; gap: 14px; }
.ladb-cf7-wrapper label { font-size: 12px; font-weight: 600; color: var(--fg-mute); display: block; margin-bottom: 6px; }
.ladb-cf7-wrapper input[type="text"],
.ladb-cf7-wrapper input[type="email"],
.ladb-cf7-wrapper input[type="tel"],
.ladb-cf7-wrapper textarea,
.ladb-cf7-wrapper select {
  width: 100%; background: #0E1A30; border: 1px solid var(--border);
  border-radius: var(--radius); padding: 13px 14px;
  color: #fff; font-family: var(--font-body); font-size: 14px;
  outline: none; transition: border-color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);
}
.ladb-cf7-wrapper input:focus,
.ladb-cf7-wrapper textarea:focus,
.ladb-cf7-wrapper select:focus {
  border-color: var(--copper-light); box-shadow: 0 0 0 3px rgba(217,160,102,.18);
}
.ladb-cf7-wrapper input::placeholder,
.ladb-cf7-wrapper textarea::placeholder { color: #7C8AA0; }
.ladb-cf7-wrapper textarea { resize: vertical; min-height: 100px; }
.ladb-cf7-wrapper input[type="submit"] {
  background: var(--gradient-copper); color: #2A1A09;
  box-shadow: var(--shadow-copper); border: none; cursor: pointer;
  font-family: var(--font-display); font-weight: 700; font-size: 14px;
  border-radius: var(--radius); padding: 13px 22px;
  transition: filter var(--dur) var(--ease-out), transform var(--dur-fast) var(--ease-out);
  width: 100%;
}
.ladb-cf7-wrapper input[type="submit"]:hover { filter: brightness(1.05); }
.ladb-cf7-wrapper .wpcf7-not-valid-tip { color: var(--red-urgence); font-size: 12px; margin-top: 4px; }
.ladb-cf7-wrapper .wpcf7-response-output { border-radius: var(--radius-sm); padding: 10px 14px; margin-top: 8px; font-size: 13px; }
.ladb-cf7-wrapper .wpcf7-mail-sent-ok { background: rgba(31,163,95,.12); border-color: var(--green-dispo); color: var(--green-dispo); }
.ladb-cf7-wrapper .wpcf7-mail-sent-ng,
.ladb-cf7-wrapper .wpcf7-spam-blocked { background: rgba(200,65,46,.12); border-color: var(--red-urgence); color: var(--red-urgence); }
.ladb-cf7-wrapper .ladb-form__legal { font-size: 11px; color: var(--fg-mute); margin: 0; text-align: center; }

.ladb-contact__side { display: flex; flex-direction: column; gap: 14px; }
.ladb-contactcard {
  background: linear-gradient(160deg, #14233F 0%, #0B1A33 100%);
  border: 1px solid var(--border-strong); border-radius: 16px; padding: 24px;
}
.ladb-contactcard .ladb-eyebrow { display: block; margin-bottom: 8px; }
.ladb-contactcard .tel {
  font-family: var(--font-display); font-weight: 700; font-size: 30px;
  color: #fff; letter-spacing: -0.02em; line-height: 1.1;
  display: flex; align-items: center; gap: 10px;
}
.ladb-contactcard p { font-size: 14px; color: var(--fg-mute); margin: 10px 0 16px; }
.ladb-contactcard .hours { display: flex; align-items: center; gap: 10px; font-size: 13px; color: #3FD08A; font-weight: 600; }
.ladb-contactcard .hours .dot { width: 8px; height: 8px; border-radius: 50%; background: #3FD08A; box-shadow: 0 0 8px #3FD08A; }

/* ───────── MAP ZONES ───────── */
.ladb-mapcard {
  background: linear-gradient(160deg, #14233F 0%, #0B1A33 100%);
  border: 1px solid var(--border-strong); border-radius: 16px; padding: 22px;
  display: flex; flex-direction: column; gap: 14px;
}
.ladb-mapcard__title { font-family: var(--font-display); font-weight: 700; font-size: 22px; color: #fff; letter-spacing: -0.01em; }
.ladb-mapcard__title span { color: var(--copper-light); font-weight: 600; font-size: 16px; }
.ladb-map {
  position: relative; width: 100%; aspect-ratio: 5/4;
  background: #0A1428; border-radius: 12px; border: 1px solid var(--border); overflow: hidden;
}
.ladb-map__img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  filter: invert(1) hue-rotate(180deg) saturate(0) brightness(.85) sepia(.55) hue-rotate(-15deg) saturate(1.6);
  mix-blend-mode: screen; opacity: .78;
}
.ladb-map__overlay {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(ellipse at 48% 50%, transparent 0%, rgba(11,26,51,.45) 70%, rgba(11,26,51,.75) 100%),
              linear-gradient(180deg, rgba(217,160,102,.05) 0%, transparent 25%, transparent 75%, rgba(11,26,51,.4) 100%);
}
.ladb-map__pin {
  position: absolute; transform: translate(-50%,-50%); z-index: 3;
  display: inline-flex; align-items: center; gap: 6px;
  text-decoration: none; color: #fff; font-size: 10px; font-weight: 600; font-family: var(--font-body); letter-spacing: .1px;
}
.ladb-map__pinDot {
  width: 11px; height: 11px; border-radius: 50%; background: var(--copper-light);
  box-shadow: 0 0 0 3px rgba(11,26,51,.92), 0 0 14px rgba(217,160,102,.7);
  flex-shrink: 0; animation: ladb-pinpulse 2.2s ease-out infinite;
}
@keyframes ladb-pinpulse {
  0%   { box-shadow: 0 0 0 3px rgba(11,26,51,.92), 0 0 0 0 rgba(217,160,102,.7); }
  70%  { box-shadow: 0 0 0 3px rgba(11,26,51,.92), 0 0 0 12px rgba(217,160,102,0); }
  100% { box-shadow: 0 0 0 3px rgba(11,26,51,.92), 0 0 0 0 rgba(217,160,102,0); }
}
.ladb-map__pinLabel {
  background: rgba(11,26,51,.9); backdrop-filter: blur(4px);
  padding: 3px 8px; border-radius: 4px; border: 1px solid rgba(217,160,102,.4);
  white-space: nowrap; font-size: 10px; font-family: var(--font-mono);
  text-transform: uppercase; letter-spacing: 1px; color: var(--copper-light);
}
.ladb-map__inset {
  position: absolute; bottom: 14px; left: 14px; z-index: 4; width: 112px;
  border: 1px solid rgba(217,160,102,.5); border-radius: 6px; overflow: hidden;
  box-shadow: 0 8px 22px rgba(0,0,0,.45); transform: rotate(-3deg); background: #0B1A33;
}
.ladb-map__inset img { width: 100%; height: 72px; object-fit: cover; object-position: center 65%; display: block; }
.ladb-map__insetCap {
  display: block; padding: 5px 8px;
  font-family: var(--font-mono); font-size: 9px; text-transform: uppercase; letter-spacing: 1.2px;
  color: rgba(255,255,255,.85); background: rgba(6,13,26,.85);
}
.ladb-map__legend {
  position: absolute; bottom: 14px; right: 14px; z-index: 4;
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--font-mono); font-size: 9px; text-transform: uppercase; letter-spacing: 1.2px;
  color: rgba(217,160,102,.92); background: rgba(11,26,51,.85);
  padding: 5px 10px; border-radius: 4px; border: 1px solid rgba(217,160,102,.35);
}
.ladb-map__legend .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--copper-light); box-shadow: 0 0 8px rgba(217,160,102,.6); }
.ladb-mapcard__chips, .ladb-mapcard__services { display: flex; flex-wrap: wrap; gap: 6px; }
.ladb-mapcard__services { padding-top: 10px; border-top: 1px solid var(--border); }
/* GOAL-50 2.5 : ancre de saut invisible (cible de /devis-gratuit/#formulaire).
   Hauteur nulle, aucun impact sur le flux ; scroll-margin-top pour que la
   section ne passe pas sous l'en-tete collant a l'arrivee. */
.ladb-anchor { display: block; height: 0; overflow: hidden; scroll-margin-top: 90px; }

.ladb-chip {
  display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px;
  background: rgba(255,255,255,.05); border: 1px solid var(--border);
  font-size: 12px; font-weight: 500; color: #D6DEEA; text-decoration: none;
  transition: all .15s ease-out;
}
.ladb-chip:hover { background: rgba(217,160,102,.14); border-color: rgba(217,160,102,.45); color: var(--copper-light); }
.ladb-chip--more { color: var(--copper-light); background: rgba(217,160,102,.10); border-color: rgba(217,160,102,.35); }

/* GOAL-45 3.4 : sur la carte de zone (fond bleu nuit), le chip par defaut
   (fond blanc 5%, bordure blanche 10%) est trop plat pour se lire comme une
   vraie pastille de charte. Bordure cuivre + fond bleu nuit legerement
   eclairci, texte clair. */
.ladb-mapcard__chips .ladb-chip,
.ladb-mapcard__services .ladb-chip--service {
  background: rgba(217,160,102,.08);
  border-color: rgba(217,160,102,.30);
  color: #E7E3DB;
}
.ladb-mapcard__chips .ladb-chip--muted { color: #E7E3DB; }

/* ───────── BLOG TEASER ───────── */
.ladb-blog { margin-top: 48px; padding-top: 48px; border-top: 1px solid var(--border); }
@media (min-width: 900px) { .ladb-blog { margin-top: 80px; padding-top: 64px; } }
.ladb-blog__head { max-width: 760px; margin: 0 0 28px; }
.ladb-blog__head h2 { font-family: var(--font-display); font-weight: 700; color: #fff; font-size: clamp(24px,3.4vw,32px); letter-spacing: -0.015em; margin: 8px 0 10px; }
.ladb-blog__head p { font-size: 15px; color: var(--fg-mute); margin: 0; line-height: 1.55; }
.ladb-blog__head p a { color: var(--copper-light); font-weight: 600; text-decoration: none; }
.ladb-blog__head p a:hover { text-decoration: underline; }
.ladb-blog__grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (min-width: 640px) { .ladb-blog__grid { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1000px) { .ladb-blog__grid { grid-template-columns: repeat(4,1fr); } }
.ladb-post {
  position: relative; background: var(--surface); border: 1px solid var(--border);
  border-radius: 12px; overflow: hidden; text-decoration: none; color: #fff;
  transition: all .25s ease-out; min-height: 260px; display: block; isolation: isolate;
}
.ladb-post:hover { border-color: rgba(217,160,102,.5); transform: translateY(-3px); box-shadow: 0 14px 30px rgba(0,0,0,.4); }
.ladb-post__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; z-index: 0; transition: transform .6s var(--ease-out); filter: saturate(.95); }
.ladb-post:hover .ladb-post__img { transform: scale(1.05); }
.ladb-post__overlay { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(11,26,51,.18) 0%, rgba(11,26,51,.45) 45%, rgba(6,13,26,.92) 100%); }
.ladb-post__body { position: relative; z-index: 2; padding: 18px; height: 100%; display: flex; flex-direction: column; gap: 8px; justify-content: flex-end; min-height: 260px; }
.ladb-post__cat { align-self: flex-start; font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: 1.4px; color: #2A1A09; font-weight: 700; background: var(--gradient-copper); padding: 4px 9px; border-radius: 4px; }
.ladb-post h4 { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 17px; line-height: 1.22; letter-spacing: -0.01em; color: #fff; text-wrap: balance; text-shadow: 0 2px 12px rgba(0,0,0,.55); }
.ladb-post__meta { font-size: 11px; color: rgba(255,255,255,.78); text-shadow: 0 1px 4px rgba(0,0,0,.5); }
.ladb-blog__no-posts { color: var(--fg-mute); font-size: 14px; padding: 20px 0; }

/* ───────── PHOTO BANNER ───────── */
.ladb-contact-photo {
  position: relative; margin: 56px 0 0; width: 100%; min-height: 420px;
  overflow: hidden; background: #060D1A;
}
@media (min-width: 900px) { .ladb-contact-photo { margin-top: 88px; min-height: 620px; } }
.ladb-contact-photo__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; display: block; }
.ladb-contact-photo__overlay {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(180deg, rgba(11,26,51,.55) 0%, transparent 22%, transparent 60%, rgba(6,13,26,.94) 100%),
              linear-gradient(90deg, rgba(11,26,51,.5) 0%, transparent 35%, transparent 70%, rgba(6,13,26,.45) 100%);
}
.ladb-contact-photo__grain {
  position: absolute; inset: 0; z-index: 3; pointer-events: none; mix-blend-mode: overlay; opacity: .10;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
.ladb-contact-photo__cap {
  position: absolute; top: 20px; left: 24px; z-index: 4;
  display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.85);
  font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 1.5px; font-weight: 500;
}
.ladb-contact-photo__cap .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--copper-light); box-shadow: 0 0 8px rgba(217,160,102,.6); }
.ladb-contact-photo__title {
  position: absolute; bottom: 28px; left: 24px; right: 24px; z-index: 4;
  display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap;
}
.ladb-contact-photo__title h3 {
  margin: 0; font-family: var(--font-display); font-weight: 700;
  font-size: clamp(26px, 4.2vw, 48px); letter-spacing: -0.025em; line-height: 1.02; color: #fff; max-width: 780px;
}
.ladb-contact-photo__title h3 em {
  font-style: italic; font-weight: 700;
  background: linear-gradient(115deg,#E6BD8B 0%,#D9A066 35%,#B87333 70%,#8C5524 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.ladb-contact-photo__title .sub {
  font-family: var(--font-mono); font-size: 11px; text-transform: uppercase;
  letter-spacing: 1.5px; color: rgba(255,255,255,.7); text-align: right; line-height: 1.6;
}

/* ───────── FOOTER ───────── */
.ladb-footer {
  position: relative; background: var(--blue-abyssal);
  padding: 36px 0 20px; color: var(--fg-mute); overflow: hidden;
}
.ladb-footer__bg {
  position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0;
  object-fit: cover; object-position: center 50%;
  opacity: .10; filter: blur(2px) saturate(.6); pointer-events: none;
}
.ladb-footer__overlay {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(6,13,26,.85) 0%, rgba(6,13,26,.95) 100%);
}
.ladb-footer__inner { position: relative; z-index: 2; }
.ladb-footer__grid { display: grid; grid-template-columns: 1fr; gap: 32px; margin-bottom: 32px; }
@media (min-width: 760px) { .ladb-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
/* Lockup horizontal depuis le GOAL-44 : width auto pour que le ratio 3,3:1
   soit respecte quelle que soit la taille du fichier servi. */
.ladb-footer__brand img { height: 64px; width: auto; max-width: 100%; margin-bottom: 12px; }
.ladb-footer__brand p { font-size: 14px; color: var(--fg-mute); margin: 0; max-width: 280px; }
.ladb-footer__socials { display: flex; gap: 8px; margin-top: 14px; }
.ladb-social {
  width: 36px; height: 36px; border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.06); border: 1px solid var(--border); color: var(--fg-soft);
  transition: all .15s ease-out;
}
.ladb-social:hover { background: rgba(217,160,102,.14); border-color: rgba(217,160,102,.5); color: var(--copper-light); }
.ladb-footer__coltitle {
  font-family: var(--font-display); font-weight: 700; font-size: 13px;
  text-transform: uppercase; letter-spacing: 1.2px; color: var(--copper-light); margin: 0 0 12px;
}
.ladb-footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.ladb-footer ul a { font-size: 13px; color: var(--fg-mute); }
.ladb-footer ul li { font-size: 13px; color: var(--fg-mute); }
.ladb-footer ul a:hover { color: var(--copper-light); }
.ladb-footer__bottom {
  border-top: 1px solid var(--border); padding-top: 18px;
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px;
  font-size: 11px; color: var(--fg-dim);
}
.ladb-footer__bottom a { color: var(--fg-mute); text-decoration: none; }
.ladb-footer__bottom a:hover { color: var(--copper-light); }


/* ───────── HEADER BLOCKSY ───────── */
[data-header*="type-1"] .ct-header [data-row="middle"] {
  background-color: #0B1A33 !important;
}
[data-header*="type-1"] .ct-header [data-row="middle"] a,
[data-header*="type-1"] .ct-header [data-row="middle"] .ct-menu > li > a {
  color: #ffffff !important;
}

/* Lien téléphone header (injecté en JS avant le CTA) */
[data-header*="type-1"] .ct-header [data-row="middle"] a.ladb-header-tel {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-right: 18px;
  color: var(--copper-light) !important;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  white-space: nowrap;
  letter-spacing: -0.005em;
  transition: color var(--dur-fast) var(--ease-out);
}
[data-header*="type-1"] .ct-header [data-row="middle"] a.ladb-header-tel:hover {
  color: #fff !important;
}
.ladb-header-tel svg { flex-shrink: 0; }
/* Blocs autonomes map-zones + blog-teaser : recadrer dans le container */
.ladb-mapcard,
.ladb-blog {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
@media (min-width: 768px) {
  .ladb-mapcard,
  .ladb-blog {
    padding-left: 32px;
    padding-right: 32px;
  }
}
@media (max-width: 767px) {
  .ladb-mapcard,
  .ladb-blog {
    padding-left: 20px;
    padding-right: 20px;
  }
}

/* Masquer la loupe de recherche (absente de la maquette) */
[data-header*="type-1"] .ct-header [data-id="search"] {
  display: none !important;
}

/* ============================================================
   LOT TYPO : Micro-labels Hanken + menu + bouton header
   ============================================================ */

/* Micro-labels : sortir du mono+MAJ (tue l'effet "IA") */
.ladb-hero__est,
.ladb-hero__live,
.ladb-hero__kicker,
.ladb-hero__photocap,
.ladb-hero__marker .s,
.ladb-map__legend,
.ladb-map__pinLabel,
.ladb-map__insetCap,
.ladb-contact-photo__cap,
.ladb-contact-photo__title .sub {
  font-family: var(--font-body) !important;
  text-transform: none !important;
  letter-spacing: .2px !important;
}

/* Menu : retirer les MAJUSCULES forcées par Blocksy */
[data-header*="type-1"] .ct-header [data-id="menu"] .ct-menu-link {
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

/* Bouton header "Demander mon devis" = style bouton hero */
[data-header*="type-1"] .ct-header [data-id="button"] .ct-button {
  background: var(--gradient-copper) !important;
  color: #2A1A09 !important;
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: -0.005em !important;
  text-transform: none !important;
  border: none !important;
  border-radius: var(--radius) !important;
  padding: 13px 22px !important;
  box-shadow: var(--shadow-copper) !important;
}
[data-header*="type-1"] .ct-header [data-id="button"] .ct-button:hover {
  filter: brightness(1.05) !important;
  box-shadow: 0 16px 38px rgba(184,115,51,.42) !important;
  color: #2A1A09 !important;
}
[data-header*="type-1"] .ct-header [data-id="button"] .ct-button::after {
  content: " →"; white-space: pre;
}


/* ============================================================
   FIX : Select du formulaire devis (option rognée + lisibilité)
   ============================================================ */
.ladb-cf7-wrapper select {
  height: auto;
  line-height: 1.4;
  min-height: 48px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23D9A066' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'></polyline></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 40px;
}
.ladb-cf7-wrapper select option {
  background: #0E1A30;
  color: #fff;
}

/* La mapcard dans le bloc contact prend toute la largeur de sa colonne */
.ladb-contact__side .ladb-mapcard {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding-left: 22px;
  padding-right: 22px;
}
	  
/* Pages de contenu editorial (legal, guides, blog) sur fond bleu nuit */
.entry-content,
.entry-content p,
.entry-content li {
  color: #E7E3DB;
  font-family: 'Hanken Grotesk', sans-serif;
}
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.page-title,
.entry-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  color: #FAF8F4;
}
.entry-content h2 { color: #E1AA6E; }
.entry-content a { color: #E1AA6E; text-decoration: underline; }
.entry-content a:hover { color: #C07A3E; }
.entry-content strong { color: #FAF8F4; }

/* ============================================================
   BREADCRUMB HERO : fil d'Ariane intégré dans ladb-hero
   ============================================================ */
.ladb-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 6px;
  margin-bottom: 20px;
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--fg-dim);
  line-height: 1.4;
}
.ladb-breadcrumb a {
  color: var(--fg-mute);
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-out);
}
.ladb-breadcrumb a:hover { color: var(--copper-light); }
.ladb-breadcrumb span[aria-current="page"] { color: var(--copper-light); font-weight: 500; }
.ladb-breadcrumb__sep { color: var(--fg-dim); font-size: 11px; }

/* ============================================================
   SECTIONS EDITORIALES : expertise + guide vitrage
   Fond cream, texte sombre, alternance avec les blocs dark.
   ============================================================ */
.ladb-editorial {
  background: var(--cream);
  color: var(--fg-onlight);
  padding: 56px 0;
}
@media (min-width: 900px) { .ladb-editorial { padding: 88px 0; } }

/* Container interne : aligner avec le reste du theme */
.ladb-editorial > .wp-block-group__inner-container,
.ladb-editorial.wp-block-group > .wp-block-group__inner-container {
  max-width: var(--container-width, 1180px);
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 768px) {
  .ladb-editorial > .wp-block-group__inner-container,
  .ladb-editorial.wp-block-group > .wp-block-group__inner-container {
    padding-left: 32px;
    padding-right: 32px;
  }
}

/* Titres et textes sur fond cream */
.ladb-editorial h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(28px, 4.5vw, 42px);
  line-height: 1.08;
  letter-spacing: -0.015em;
  color: var(--fg-onlight);
  margin: 0 0 20px;
}
.ladb-editorial h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(18px, 2.5vw, 22px);
  letter-spacing: -0.01em;
  color: var(--fg-onlight);
  margin: 32px 0 10px;
}
.ladb-editorial h3:first-child { margin-top: 0; }
.ladb-editorial p {
  font-size: 16px;
  line-height: 1.65;
  color: var(--fg-onlight-mute);
  max-width: 760px;
}
.ladb-editorial a { color: var(--copper); font-weight: 600; text-decoration: none; }
.ladb-editorial a:hover { text-decoration: underline; }

/* Bandeau de chiffres cles */
.ladb-editorial__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 32px;
  margin-top: 40px;
  padding-top: 28px;
  border-top: 1px solid rgba(11,26,51,.12);
}
.ladb-editorial__stat {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 15px;
  color: var(--fg-onlight) !important;
  letter-spacing: -0.005em;
  max-width: none !important;
  margin: 0 !important;
}
.ladb-editorial__stat::before {
  content: "/ ";
  color: var(--copper);
  font-weight: 400;
}

/* Zone CTA en bas du guide vitrage */
.ladb-editorial__cta {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid rgba(11,26,51,.12);
}
.ladb-editorial__cta p {
  font-size: 15px;
  color: var(--fg-onlight-mute);
  margin-bottom: 20px;
}
.ladb-editorial__cta .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.ladb-editorial__cta .wp-block-button a,
.ladb-editorial__cta .wp-block-button__link {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: -0.005em;
  border-radius: var(--radius);
  padding: 13px 22px;
  text-decoration: none;
  transition: filter var(--dur-fast) var(--ease-out);
}
/* Bouton primaire (reutilise le style copper) */
.ladb-editorial__cta .wp-block-button:not(.is-style-outline) .wp-block-button__link {
  background: var(--gradient-copper);
  color: #2A1A09;
  box-shadow: var(--shadow-copper);
}
.ladb-editorial__cta .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
  filter: brightness(1.05);
  color: #2A1A09;
}
/* Bouton outline telephone */
.ladb-editorial__cta .wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--copper);
  border: 1.5px solid var(--copper);
}
.ladb-editorial__cta .wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: rgba(184,115,51,.08);
  color: var(--copper);
}

/* ============================================================
   SECTION AUTRES EXPERTISES
   Styles deplaces dans blocks/ladb-autres-expertises/style.css
   (bloc custom ladb/autres-expertises, remplace l'ancien bloc core group).
   ============================================================ */

/* ZONE INTERVENTION */
.vp-zone-section { padding: 80px 0; }
.vp-section-kicker {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--copper-light);
  margin: 0 0 12px;
}
.vp-section-h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(26px, 3.8vw, 42px);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--fg);
  margin: 0 0 16px;
}
.vp-section-lead {
  font-size: 16px;
  line-height: 1.65;
  color: var(--fg-mute);
  max-width: 560px;
  margin: 0;
}
.vp-zone-grid { display: grid; grid-template-columns: 1fr; gap: 40px; margin-top: 40px; align-items: start; }
@media (min-width: 900px) { .vp-zone-grid { grid-template-columns: 1fr 1fr; gap: 56px; } }
/* GOAL-45 4.4 : fond de carte eclairci (etait #0A1428 quasi noir + filtre
   tres assombri, peu visible depuis la bascule de la section en creme). */
.vp-map-ph { width: 100%; aspect-ratio: 16/10; background: var(--bg-elevated); border: 1px solid var(--border); border-radius: 14px; overflow: hidden; display: flex; align-items: center; justify-content: center; position: relative; }
.vp-map-ph img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  filter: saturate(.15) brightness(.85); opacity: .88;
  transition: opacity var(--dur-fast) var(--ease-out);
}
.vp-zone-map a { display: block; text-decoration: none; }
.vp-zone-map a:hover .vp-map-ph img { opacity: .75; }
.vp-map-caption {
  margin: 12px 0 0;
  font-size: 13px;
  color: var(--copper-light);
  text-align: center;
}
.vp-zone-list__group { margin-bottom: 24px; }
.vp-zone-list__group h3 { font-family: var(--font-body); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--fg-dim); margin: 0 0 10px; }
.vp-zone-list__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.vp-zone-text { padding: 6px 12px; border-radius: 7px; background: rgba(255,255,255,.03); font-size: 13px; color: var(--fg-mute); cursor: default; }
.vp-zone-text--featured {
  background: rgba(217,160,102,.08);
  border: 1px solid rgba(217,160,102,.3);
  color: var(--copper-light);
  font-weight: 700;
}
.vp-zone-text--link { text-decoration: none; cursor: pointer; transition: all .15s ease-out; }
.vp-zone-text--link:hover { background: rgba(217,160,102,.14); border-color: rgba(217,160,102,.45); color: var(--copper-light); }
.vp-zone-note a { color: var(--copper-light); text-decoration: underline; }

/* CORRECTIONS QA VITRERIE (kickers, expertise, guide, zone note) */

/* Chantier 8 : harmoniser les eyebrows (reviews, faq, ressources) sur le style kicker cuivre uppercase, sans tiret. Scope .ladb-pillar : n'affecte que les pages pilier, pas l'accueil. */
.ladb-pillar .ladb-eyebrow {
  display: inline-block;
  gap: 0;
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--copper-light);
  margin-bottom: 12px;
}
.ladb-pillar .ladb-eyebrow::before { display: none; }

/* Chantier 3 : bloc Expertise, grille 2 colonnes (prose a gauche, panneau de stats a droite) */
.vp-expertise { padding: 80px 0; }
.vp-expertise__grid { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: start; }
@media (min-width: 900px) { .vp-expertise__grid { grid-template-columns: 1.3fr 1fr; gap: 64px; } }
.vp-prose p { font-size: 16px; line-height: 1.75; color: var(--fg-mute); margin: 0 0 16px; }
.vp-prose p:last-child { margin-bottom: 0; }
.vp-prose strong { color: var(--fg-soft); font-weight: 700; }
.vp-statpanel { display: flex; flex-direction: column; gap: 12px; }
.vp-statrow { background: var(--surface); border: 1px solid var(--border); border-radius: 13px; padding: 18px 20px; display: flex; align-items: center; gap: 16px; transition: border-color var(--dur) var(--ease-out); }
.vp-statrow:hover { border-color: var(--border-strong); }
.vp-statrow__ic { width: 44px; height: 44px; flex-shrink: 0; border-radius: 11px; background: rgba(217,160,102,.10); border: 1px solid rgba(217,160,102,.28); display: flex; align-items: center; justify-content: center; color: var(--copper-light); }
.vp-statrow__ic svg { width: 22px; height: 22px; }
.vp-statrow strong { font-family: var(--font-display); font-weight: 800; font-size: 18px; color: #fff; display: block; }
.vp-statrow span { font-size: 12px; color: var(--fg-mute); }

/* Chantier 4 : guide vitrage (alignement gauche pleine largeur, H3 a puce cuivre, CTA encadre) */
.vp-guide { padding: 80px 0; border-top: 1px solid var(--border); }
.vp-guide__prose { max-width: 760px; }
.vp-guide__prose p { font-size: 16px; line-height: 1.8; color: var(--fg-mute); margin: 0 0 18px; }
.vp-guide__prose p:last-child { margin-bottom: 0; }
.vp-guide__prose strong { color: var(--fg-soft); font-weight: 700; }
.vp-guide__prose a:not(.ladb-btn) { color: var(--copper-light); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.vp-guide__prose a:not(.ladb-btn):hover { color: var(--copper); }
.vp-guide__h3 { font-family: var(--font-display); font-size: clamp(17px, 2vw, 20px); font-weight: 700; color: var(--fg-soft); margin: 36px 0 10px; display: flex; align-items: center; gap: 10px; }
.vp-guide__h3::before { content: ""; display: inline-block; width: 14px; height: 2px; background: var(--copper-light); flex-shrink: 0; border-radius: 2px; }
.vp-guide__cta { margin-top: 40px; padding: 28px 32px; background: var(--bg-elevated); border: 1px solid rgba(217,160,102,.22); border-radius: 14px; }
.vp-guide__cta p { font-size: 15px; line-height: 1.7; color: var(--fg-soft); margin: 0 0 20px; }
.vp-guide__cta-btns { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* Chantier 5 : note de bas de zone d'intervention (texte simple, lien Herault active en V2) */
.vp-zone-note { font-size: 13px; line-height: 1.65; color: var(--fg-dim); margin-top: 16px; }

/* ============================================================
   SITUATIONS D'URGENCE (page urgence vitrerie) : grille de cas.
   Cartes picto duotone cuivre, coherentes avec les cartes vp-* du site.
   ============================================================ */
.vp-cases { padding: 80px 0; border-top: 1px solid var(--border); }
.vp-cases__grid { display: grid; grid-template-columns: 1fr; gap: 16px; margin-top: 36px; }
@media (min-width: 620px) { .vp-cases__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) { .vp-cases__grid { grid-template-columns: repeat(3, 1fr); } }
.vp-case {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 24px 22px;
  transition: border-color var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);
}
.vp-case:hover { border-color: var(--border-strong); transform: translateY(-2px); }
.vp-case__ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: rgba(217,160,102,.10);
  border: 1px solid rgba(217,160,102,.28);
  color: var(--copper-light);
  margin-bottom: 16px;
}
.vp-case__ic svg { width: 24px; height: 24px; }
.vp-case__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 17px;
  color: var(--fg-soft);
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}
.vp-case__text { font-size: 14px; line-height: 1.6; color: var(--fg-mute); margin: 0; }
.vp-cases__cross { max-width: 760px; margin: 32px 0 0; font-size: 15px; line-height: 1.7; color: var(--fg-soft); }
.vp-cases__cross a { color: var(--copper-light); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.vp-cases__cross a:hover { color: var(--copper); }

/* ============================================================
   MAILLAGE PRESTATIONS (shortcode ladb_maillage_vitrerie) : cartes-liens
   reutilisant le langage visuel .vp-case (coherence avec "situations
   d'urgence"). Titres en cuivre clair lisible, descriptions en gris clair,
   hover cuivre. Grille auto-fit alignee sur le .container (4 a 5 cartes).
   ============================================================ */
.ladb-maillage-vitrerie__grid {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.vp-case--link {
  display: flex;
  flex-direction: column;
  text-decoration: none;
}
.vp-case--link .vp-case__title {
  color: var(--copper-light);
  transition: color var(--dur) var(--ease-out);
}
.vp-case--link .vp-case__arrow {
  display: inline-block;
  transition: transform var(--dur) var(--ease-out);
}
.vp-case--link:hover .vp-case__title {
  color: #E6BD8B;
}
.vp-case--link:hover .vp-case__arrow {
  transform: translateX(3px);
}

/* ─────────────────────────────────────────────────────────
   LOGO HEADER : caler le container du header Blocksy sur celui
   de la page (max-width 1180px, padding 20/32px) pour que le
   bord gauche du logo tombe sur le meme axe que le breadcrumb
   "Accueil > Vitrerie" et le contenu de la page.
   ───────────────────────────────────────────────────────── */
.ct-header .ct-container {
  max-width: 1180px;
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 768px) {
  .ct-header .ct-container {
    padding-left: 32px;
    padding-right: 32px;
  }
}

/* ─────────────────────────────────────────────────────────
   PAGES STANDARD LADB (template page-standard-ladb.php)
   Gabarit sobre sur fond creme pour les pages structurelles :
   devis, faq, a propos, contact, mentions legales, confidentialite.
   Toutes les regles scopees sous .ladb-standard : zero impact
   sur l'accueil, les piliers et le blog.
   ───────────────────────────────────────────────────────── */
.ladb-standard {
  background: var(--cream);
  color: var(--fg-onlight);
  padding: 0 0 72px;
}
.ladb-standard .container { max-width: 920px; }
.ladb-standard .ladb-std-wide .container { max-width: 1180px; }

/* Hero sobre */
.ladb-std-hero {
  background: var(--bg);
  color: var(--fg-soft);
  padding: 64px 0 56px;
  border-bottom: 3px solid var(--copper);
}
.ladb-std-hero__eyebrow {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 12px;
  font-weight: 700;
  color: var(--copper-light);
  margin: 0 0 14px;
}
.ladb-std-hero h1 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(28px, 4.4vw, 44px);
  line-height: 1.08;
  color: #fff;
  margin: 0 0 18px;
}
.ladb-std-hero__lede {
  font-size: 18px;
  line-height: 1.55;
  color: var(--fg-soft);
  max-width: 62ch;
  margin: 0;
}

/* Chips reassurance */
.ladb-std-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}
.ladb-std-trust li {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 600;
  color: var(--fg-soft);
  background: rgba(217,160,102,.12);
  border: 1px solid rgba(217,160,102,.28);
  border-radius: var(--radius-pill);
  padding: 7px 14px;
}

/* Sections de contenu */
.ladb-std-section { padding: 48px 0 0; }
.ladb-std-section > .container > h2,
.ladb-std-section h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(22px, 3vw, 30px);
  line-height: 1.15;
  color: var(--fg-onlight);
  margin: 0 0 16px;
}
.ladb-prose { font-size: 16.5px; line-height: 1.7; color: #33404f; }
.ladb-prose p { margin: 0 0 16px; }
.ladb-prose h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 19px;
  color: var(--fg-onlight);
  margin: 26px 0 10px;
}
.ladb-prose a { color: var(--copper-deep); text-decoration: underline; text-underline-offset: 2px; }
.ladb-prose a:hover { color: var(--copper); }
.ladb-prose strong { color: var(--fg-onlight); }
.ladb-prose ul { margin: 0 0 16px; padding-left: 20px; }
.ladb-prose li { margin: 0 0 8px; }

/* FAQ visuelle (Q/R) */
.ladb-std-qa { margin: 0 0 8px; }
.ladb-std-qa__q {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 17px;
  color: var(--fg-onlight);
  margin: 22px 0 6px;
}
.ladb-std-qa__a { font-size: 16px; line-height: 1.65; color: #33404f; margin: 0; }

/* NAP / coordonnees */
.ladb-std-nap {
  list-style: none;
  margin: 8px 0 0;
  padding: 22px;
  background: #fff;
  border: 1px solid #ece7df;
  border-radius: var(--radius-md);
}
.ladb-std-nap li { margin: 0 0 12px; font-size: 16px; color: #33404f; }
.ladb-std-nap li:last-child { margin: 0; }
.ladb-std-nap strong { color: var(--fg-onlight); display: inline-block; min-width: 92px; }
.ladb-std-nap a { color: var(--copper-deep); font-weight: 600; text-decoration: none; }
.ladb-std-nap a:hover { text-decoration: underline; }

/* Bloc equipe (AMOVIBLE : sa suppression ne laisse aucun trou) */
.ladb-std-team {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 18px;
  margin: 8px 0 0;
}
.ladb-std-team__card {
  background: #fff;
  border: 1px solid #ece7df;
  border-radius: var(--radius-md);
  padding: 20px;
  text-align: center;
}
.ladb-std-team__ph {
  width: 84px;
  height: 84px;
  border-radius: 50%;
  margin: 0 auto 12px;
  background: linear-gradient(135deg, var(--copper-light), var(--copper-deep));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 26px;
  color: #fff;
}
.ladb-std-team__name { font-family: var(--font-display); font-weight: 700; font-size: 17px; color: var(--fg-onlight); margin: 0 0 4px; }
.ladb-std-team__role { font-size: 14px; color: var(--copper-deep); font-weight: 600; margin: 0; }

/* Placeholder photo d'equipe honnete (aucune stock photo, aucune fausse image) */
.ladb-std-team-photo {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
  min-height: 180px;
  margin: 0 0 24px;
  padding: 32px;
  background: var(--blue-stellaire);
  border: 1px solid rgba(217,160,102,.35);
  border-radius: var(--radius-md);
}
.ladb-std-team-photo__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 16px;
  color: var(--copper-light);
}
.ladb-std-team-photo__desc {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--fg-mute);
}

/* CTA band */
.ladb-std-cta {
  margin: 48px 0 0;
  padding: 32px;
  background: var(--bg);
  border-radius: var(--radius-lg);
  text-align: center;
}
.ladb-std-cta h2 { color: #fff; font-family: var(--font-display); font-weight: 800; font-size: 24px; margin: 0 0 10px; }
.ladb-std-cta p { color: var(--fg-soft); margin: 0 0 20px; }
.ladb-std-cta__btns { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }

/* Carte statique contact */
.ladb-std-map { display: block; margin: 8px 0 0; border-radius: var(--radius-md); overflow: hidden; border: 1px solid #ece7df; }
.ladb-std-map img { display: block; width: 100%; height: auto; }

	  
/* ============================================================
   AVIS : widget cartes style Google (page /avis/, shortcode
   [ladb_avis_widget]). Cartes blanches sur fond creme herite de
   .ladb-std-section, tokens charte. Etoiles or (#FBBC04), pastille
   initiale coloree, badge Avis Google.
   ============================================================ */
.ladb-avw { margin: 1.5rem 0 0; }
.ladb-avw__grid {
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) { .ladb-avw__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .ladb-avw__grid { grid-template-columns: repeat(3, 1fr); } }

.ladb-avw__card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: #fff;
  border: 1px solid #ece7df;
  border-radius: var(--radius-md, 14px);
  padding: 22px 22px 20px;
  box-shadow: 0 1px 2px rgba(11,26,51,.04);
}
.ladb-avw__head { display: flex; align-items: center; gap: 12px; }
.ladb-avw__avatar {
  width: 42px; height: 42px; flex-shrink: 0;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-weight: 700; font-size: 16px;
  font-family: var(--font-display, sans-serif);
}
.ladb-avw__who { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.ladb-avw__name { font-weight: 700; color: var(--fg-onlight, #0B1A33); font-size: 15px; }
.ladb-avw__when { color: var(--fg-onlight-mute, #5A6473); font-size: 13px; }
.ladb-avw__source { margin-left: auto; display: inline-flex; }
.ladb-avw__stars { display: inline-flex; gap: 2px; }
.ladb-avw__stars svg { display: block; }
.ladb-avw__text {
  margin: 0; color: var(--fg-onlight, #0B1A33);
  font-size: 14.5px; line-height: 1.6; flex: 1;
}
.ladb-avw__badge {
  display: inline-flex; align-items: center; gap: 6px;
  align-self: flex-start;
  font-size: 12px; font-weight: 600;
  color: var(--fg-onlight-mute, #5A6473);
  background: #f6f2ea; border: 1px solid #ece7df;
  border-radius: 999px; padding: 4px 10px;
}
.ladb-avw__foot { margin-top: 24px; text-align: center; }

/* ───────── MISSION-GOAL-8 : photos de corps de page (figure/figcaption) ───────── */
.vp-photo-section { padding: 48px 0; }
.vp-photo { margin: 0 auto; max-width: 820px; }
.vp-photo__img { width: 100%; height: auto; display: block; border-radius: 14px; border: 1px solid var(--border); }
.vp-photo figcaption { margin: 12px 0 0; font-size: 13px; color: var(--fg-mute); text-align: center; }

/* ───────── MISSION-GOAL-8 : bloc ladb/vitrage-table ───────── */
.ladb-vitrage-table-section { padding: 56px 0; }
.ladb-vitrage-table__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 28px; }
.ladb-vitrage-table { width: 100%; min-width: 640px; border-collapse: collapse; background: var(--surface); border: 1px solid var(--border); border-radius: 12px; }
.ladb-vitrage-table th, .ladb-vitrage-table td { padding: 12px 16px; text-align: left; font-size: 14px; line-height: 1.5; border-bottom: 1px solid var(--border); }
.ladb-vitrage-table thead th { font-family: var(--font-body); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--copper-light); background: rgba(217,160,102,.06); }
.ladb-vitrage-table tbody th { font-weight: 700; color: #fff; white-space: nowrap; }
.ladb-vitrage-table tbody td { color: var(--fg-mute); }
.ladb-vitrage-table tbody tr:last-child th, .ladb-vitrage-table tbody tr:last-child td { border-bottom: none; }
.ladb-vitrage-table a { color: var(--copper-light); }
.ladb-vitrage-table__note { margin: 16px 0 0; font-size: 14px; color: var(--fg-mute); }

/* ───────── MISSION-GOAL-8 : bloc ladb/communes-voisines ───────── */
.ladb-communes-voisines-section { padding: 48px 0; }
.ladb-communes-voisines__intro { margin: 12px 0 0; font-size: 15px; color: var(--fg-mute); }
.ladb-communes-voisines__list { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 0; padding: 0; list-style: none; }
.ladb-communes-voisines__item { margin: 0; }
.ladb-chip--muted { cursor: default; opacity: .65; }
.ladb-chip--muted:hover { background: rgba(255,255,255,.05); border-color: var(--border); color: #D6DEEA; }

/* ───────── MISSION-GOAL-28 + GOAL-29 : bloc ladb/communes-desservies (hub, sans cap) ─────────
   Layout REUTILISABLE serrurerie-herault / miroiterie-herault : intro 2 colonnes
   (texte a gauche, image a droite) + grille de villes en chips groupees. */
.ladb-communes-desservies-section { padding: 56px 0; }

/* Intro : texte gauche + image droite. Mobile = 1 colonne, image SOUS le texte. */
.ladb-communes-desservies__intro-row {
  display: grid; grid-template-columns: 1fr; gap: 22px; align-items: center;
}
@media (min-width: 860px) {
  .ladb-communes-desservies__intro-row { grid-template-columns: 1.15fr 1fr; gap: 40px; }
}
.ladb-communes-desservies__intro-col { min-width: 0; }
.ladb-communes-desservies__title { margin: 0; }
.ladb-communes-desservies__intro { margin: 12px 0 0; font-size: 15px; line-height: 1.55; color: var(--fg-mute); max-width: 640px; }

/* Media : photo vitrerie ou placeholder cuivre estompe, meme gabarit 4/3. */
.ladb-communes-desservies__media { min-width: 0; }
.ladb-communes-desservies__img {
  display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover;
  border-radius: 14px; border: 1px solid var(--border);
}
.ladb-communes-desservies__placeholder {
  display: flex; align-items: center; justify-content: center;
  width: 100%; aspect-ratio: 4 / 3; border-radius: 14px;
  border: 1px dashed rgba(217,160,102,.45);
  background: linear-gradient(135deg, rgba(217,160,102,.16), rgba(192,122,62,.05));
}
.ladb-communes-desservies__placeholder span {
  font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 1.5px;
  color: rgba(217,160,102,.85);
}

/* GOAL-45 5.3 : carte Herault (embed Google Maps, lazy-load, meme cadre
   que les autres visuels de carte du site : ratio contenu, bordure,
   arrondi coherents avec .ladb-communes-desservies__img). */
.ladb-communes-desservies__map {
  margin: 28px 0 0;
  aspect-ratio: 16 / 8;
  border-radius: 14px;
  border: 1px solid var(--border);
  overflow: hidden;
}
.ladb-communes-desservies__mapframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* GOAL-45 5.2 : groupes de communes par proximite/zone (Montpellier et 1ere
   couronne, littoral, est/Lunellois, nord garrigues), au lieu d'une liste
   fourre-tout. Sous-titre discret par groupe, meme langage visuel que
   .vp-zone-list__group h3 (pillar). */
.ladb-communes-desservies__groups { margin: 28px 0 0; }
.ladb-communes-desservies__group { margin: 0 0 20px; }
.ladb-communes-desservies__group:last-child { margin-bottom: 0; }
.ladb-communes-desservies__group-title {
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--fg-dim);
  margin: 0 0 10px;
}

/* Villes en chips groupees (coherent avec .ladb-communes-voisines__list) : flow naturel, wrap, gap regulier. */
.ladb-communes-desservies__grid {
  display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none;
}
.ladb-communes-desservies__item { margin: 0; }

/* ============================================================
   PAGE /gallery/ : realisations avant / apres + urgence
   Gabarit distinct des pages metier (pas de bloc reassurance
   pilier, pas de compteur d'avis importe).
   ============================================================ */

/* Utilitaire lecteur d'ecran, local au theme pour ne pas dependre du parent. */
.ladb-ba__srlabel {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%);
  white-space: nowrap; border: 0;
}

/* ---------- Hero sobre ---------- */
.ladb-gal-hero {
  background: linear-gradient(180deg, #0B1A33 0%, #060D1A 100%);
  padding: 72px 0 56px;
  border-bottom: 1px solid rgba(217,160,102,.18);
}
.ladb-gal-hero__inner { max-width: 820px; }
.ladb-gal-hero__kicker {
  font-family: var(--font-mono, "JetBrains Mono", monospace);
  font-size: 12px; letter-spacing: 1.6px; text-transform: uppercase;
  color: var(--copper-light); margin: 0 0 14px;
}
.ladb-gal-hero__h1 {
  font-family: var(--font-display);
  font-weight: 700; line-height: 1.08;
  font-size: clamp(30px, 5vw, 50px);
  color: #fff; margin: 0 0 16px;
}
.ladb-gal-hero__sub {
  font-size: clamp(15px, 2vw, 18px); line-height: 1.6;
  color: var(--fg-mute); margin: 0; max-width: 640px;
}

/* ---------- Sections ---------- */
.ladb-gal-section { padding: 64px 0; }
.ladb-gal-section--vitrerie { background: var(--cream); }
.ladb-gal-section--expertises { background: var(--cream); padding: 40px 0; border-top: 1px solid rgba(11,26,51,.08); }
.ladb-gal-section--urgence  { background: #140B09; }

.ladb-gal-head { max-width: 720px; margin: 0 0 36px; }
.ladb-gal-head__h2 {
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(24px, 3.4vw, 34px); line-height: 1.15;
  margin: 0 0 12px;
}
.ladb-gal-section--vitrerie .ladb-gal-head__h2,
.ladb-gal-section--expertises .ladb-gal-head__h2 { color: #0B1A33; }
.ladb-gal-section--urgence  .ladb-gal-head__h2 { color: #fff; }
.ladb-gal-head__p { margin: 0; font-size: 16px; line-height: 1.65; }
.ladb-gal-section--vitrerie .ladb-gal-head__p,
.ladb-gal-section--expertises .ladb-gal-head__p { color: #45516A; }
.ladb-gal-section--urgence  .ladb-gal-head__p { color: #C4B0A8; }

.ladb-gal-grid {
  display: grid; gap: 24px;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
}

/* ---------- Carte avant / apres ---------- */
.ladb-ba {
  background: #fff; border: 1px solid rgba(11,26,51,.10);
  border-radius: 12px; overflow: hidden;
  box-shadow: 0 2px 10px rgba(11,26,51,.06);
  display: flex; flex-direction: column;
}

/* Etat par defaut, sans JS : les deux photos cote a cote. */
.ladb-ba__media {
  position: relative;
  display: grid; grid-template-columns: 1fr 1fr; gap: 2px;
  background: #0B1A33;
}
.ladb-ba__pane { position: relative; margin: 0; overflow: hidden; }
.ladb-ba__img {
  display: block; width: 100%; height: 100%;
  aspect-ratio: 4 / 3; object-fit: cover;
}
.ladb-ba__tag {
  position: absolute; left: 10px; bottom: 10px; z-index: 2;
  font-family: var(--font-mono, "JetBrains Mono", monospace);
  font-size: 11px; letter-spacing: 1.2px; text-transform: uppercase;
  padding: 4px 9px; border-radius: 4px; color: #fff;
  background: rgba(6,13,26,.82); border: 1px solid rgba(255,255,255,.16);
}
.ladb-ba__tag--after { left: auto; right: 10px; }
.ladb-ba__range, .ladb-ba__handle { display: none; }

/* Mode curseur : active par le JS uniquement (hors reduced-motion). */
.ladb-ba.is-slider .ladb-ba__media {
  display: block; aspect-ratio: 4 / 3; overflow: hidden;
  touch-action: pan-y;
}
.ladb-ba.is-slider .ladb-ba__pane { position: absolute; inset: 0; }
.ladb-ba.is-slider .ladb-ba__pane--before {
  clip-path: inset(0 calc(100% - var(--ladb-ba-pos, 50%)) 0 0);
}
.ladb-ba.is-slider .ladb-ba__img { height: 100%; aspect-ratio: auto; }
.ladb-ba.is-slider .ladb-ba__tag--before { left: 10px; right: auto; }
.ladb-ba.is-slider .ladb-ba__tag--after  { right: 10px; left: auto; }

/* Le range couvre toute la zone : il porte le glisser natif et le focus clavier.
   Il reste transparent, la poignee visible sert de rendu. */
.ladb-ba.is-slider .ladb-ba__range {
  display: block; position: absolute; inset: 0; z-index: 4;
  width: 100%; height: 100%; margin: 0; padding: 0;
  background: transparent; border: 0; opacity: 0;
  cursor: ew-resize; -webkit-appearance: none; appearance: none;
}
.ladb-ba.is-slider .ladb-ba__range::-webkit-slider-thumb {
  -webkit-appearance: none; width: 44px; height: 100%; cursor: ew-resize;
}
.ladb-ba.is-slider .ladb-ba__range::-moz-range-thumb {
  width: 44px; height: 100%; border: 0; border-radius: 0; cursor: ew-resize;
}
.ladb-ba.is-slider .ladb-ba__handle {
  display: block; position: absolute; z-index: 3; top: 0; bottom: 0;
  left: var(--ladb-ba-pos, 50%); width: 2px; margin-left: -1px;
  background: var(--copper-light);
  pointer-events: none;
}
.ladb-ba.is-slider .ladb-ba__handle::after {
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 36px; height: 36px; margin: -18px 0 0 -18px;
  border-radius: 50%; background: var(--copper-light);
  border: 2px solid #fff; box-shadow: 0 2px 8px rgba(6,13,26,.45);
}
/* Focus clavier : le range etant transparent, c'est la poignee qui doit le montrer. */
.ladb-ba.is-slider .ladb-ba__range:focus-visible ~ .ladb-ba__handle::after {
  box-shadow: 0 0 0 4px #0B1A33, 0 0 0 7px var(--copper-light);
}

.ladb-ba__body { padding: 18px 18px 20px; }
.ladb-ba__title {
  font-family: var(--font-display); font-weight: 700; font-size: 18px;
  line-height: 1.25; margin: 0 0 4px; color: #0B1A33;
}
.ladb-ba__place {
  font-family: var(--font-mono, "JetBrains Mono", monospace);
  font-size: 11px; letter-spacing: 1.1px; text-transform: uppercase;
  color: var(--copper); margin: 0 0 8px;
}
.ladb-ba__text { margin: 0; font-size: 14px; line-height: 1.6; color: #45516A; }

/* ---------- Carte urgence ---------- */
.ladb-urg {
  background: #1B0F0C; border: 1px solid rgba(200,65,46,.28);
  border-radius: 12px; overflow: hidden; display: flex; flex-direction: column;
}
.ladb-urg__media { position: relative; }
.ladb-urg__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,11,9,0) 55%, rgba(20,11,9,.75) 100%);
}
.ladb-urg__img {
  display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover;
}
.ladb-urg__body { padding: 16px 18px 20px; }
.ladb-urg__title {
  font-family: var(--font-display); font-weight: 700; font-size: 17px;
  margin: 0 0 4px; color: #fff;
}
.ladb-urg__place {
  font-family: var(--font-mono, "JetBrains Mono", monospace);
  font-size: 11px; letter-spacing: 1.1px; text-transform: uppercase;
  color: #C8412E; margin: 0 0 8px;
}
.ladb-urg__text { margin: 0; font-size: 14px; line-height: 1.6; color: #C4B0A8; }

/* ---------- Bandeau conversion ---------- */
.ladb-gal-cta {
  background: #0B1A33; padding: 44px 0;
  border-top: 1px solid rgba(217,160,102,.2);
}
.ladb-gal-cta__inner {
  display: flex; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: 20px;
}
.ladb-gal-cta__txt { margin: 0; color: #fff; font-size: 17px; font-weight: 600; }
.ladb-gal-cta__sub { margin: 4px 0 0; color: var(--fg-mute); font-size: 14px; }
.ladb-gal-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; }

@media (max-width: 640px) {
  .ladb-gal-grid { grid-template-columns: 1fr; }
  .ladb-gal-hero { padding: 52px 0 40px; }
  .ladb-gal-section { padding: 44px 0; }
  .ladb-gal-cta__inner { flex-direction: column; align-items: flex-start; }
}

/* Motion reduite : on force le cote a cote meme si le JS a marque is-slider.
   Le JS s'en abstient deja, cette regle couvre un changement de reglage
   intervenu apres le chargement de la page. */
@media (prefers-reduced-motion: reduce) {
  .ladb-ba.is-slider .ladb-ba__media {
    display: grid; grid-template-columns: 1fr 1fr; gap: 2px; aspect-ratio: auto;
  }
  .ladb-ba.is-slider .ladb-ba__pane { position: relative; inset: auto; }
  .ladb-ba.is-slider .ladb-ba__pane--before { clip-path: none; }
  .ladb-ba.is-slider .ladb-ba__img { aspect-ratio: 4 / 3; }
  .ladb-ba.is-slider .ladb-ba__range, .ladb-ba.is-slider .ladb-ba__handle { display: none; }
}

/* Section expertises : bloc court, le titre n'a pas besoin de la marge des grosses sections. */
.ladb-gal-section--expertises .ladb-gal-head { margin-bottom: 0; max-width: 760px; }
.ladb-gal-section--expertises .ladb-gal-head__h2 { font-size: clamp(20px, 2.4vw, 26px); margin-bottom: 8px; }

/* Liens de maillage dans les intros : lisibles sur fond clair comme sur fond sombre. */
.ladb-gal-head__p a, .ladb-gal-hero__sub a { color: var(--copper); text-decoration: underline; text-underline-offset: 2px; }
.ladb-gal-head__p a:hover, .ladb-gal-hero__sub a:hover { color: var(--copper-deep); }
.ladb-gal-section--urgence .ladb-gal-head__p a { color: var(--copper-light); }
.ladb-gal-section--urgence .ladb-gal-head__p a:hover { color: #fff; }
.ladb-gal-hero__sub a { color: var(--copper-light); }
.ladb-gal-hero__sub a:hover { color: #fff; }

/* ===== Section "En images" : grille simple sans slider =====
   Sous-blocs A/B/C, chacun avec son intertitre. La grille reutilise
   .ladb-gal-grid (auto-fill minmax 320px : 3 col desktop / 2 tablette / 1 mobile). */
.ladb-gal-section--images { background: var(--cream); }
.ladb-gal-section--images .ladb-gal-head__h2 { color: #0B1A33; }
.ladb-gal-section--images .ladb-gal-head__p { color: #45516A; }
.ladb-gal-section--images .ladb-gal-head__p a { color: var(--copper); text-decoration: underline; text-underline-offset: 2px; }
.ladb-gal-section--images .ladb-gal-head__p a:hover { color: var(--copper-deep); }

/* Intertitre de sous-groupe : un cran sous le h2 de section. */
.ladb-gal-subgroup + .ladb-gal-subgroup { margin-top: 48px; }
.ladb-gal-subhead { max-width: 760px; margin: 0 0 22px; }
.ladb-gal-subhead__h3 {
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(19px, 2.2vw, 24px); line-height: 1.2;
  margin: 0 0 6px; color: #0B1A33;
}
.ladb-gal-subhead__p { margin: 0; font-size: 15px; line-height: 1.6; color: #45516A; }
.ladb-gal-subhead__p a { color: var(--copper); text-decoration: underline; text-underline-offset: 2px; }
.ladb-gal-subhead__p a:hover { color: var(--copper-deep); }

/* Carte image (bloc ladb/gallery-image). */
.ladb-gimg {
  margin: 0; background: #fff; border: 1px solid rgba(11,26,51,.10);
  border-radius: 12px; overflow: hidden;
  box-shadow: 0 2px 10px rgba(11,26,51,.06);
  display: flex; flex-direction: column;
}
.ladb-gimg__media { position: relative; }
.ladb-gimg__img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ladb-gimg__cap {
  padding: 12px 16px 14px;
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px;
}
.ladb-gimg__place {
  font-family: var(--font-mono, "JetBrains Mono", monospace);
  font-size: 11px; letter-spacing: 1.1px; text-transform: uppercase;
  color: var(--copper); margin: 0;
}
.ladb-gimg__link {
  font-size: 12px; color: var(--copper);
  text-decoration: underline; text-underline-offset: 2px;
}
.ladb-gimg__link:hover { color: var(--copper-deep); }

/* Ligne communes en pied de la section En images. */
.ladb-gal-communes { margin: 40px 0 0; font-size: 15px; line-height: 1.6; color: #45516A; }
.ladb-gal-communes a { color: var(--copper); text-decoration: underline; text-underline-offset: 2px; }
.ladb-gal-communes a:hover { color: var(--copper-deep); }


/* ============================================================================
   DESIGN SANDWICH (GOAL-44, Phase 1)
   ----------------------------------------------------------------------------
   Principe : le HERO, le HEADER et le FOOTER restent bleu nuit. Tout le CORPS
   de page passe sur fond creme, cartes blanches a bordure chaude.
   Bandes sombres qui rythment la lecture, jamais basculees en creme :
     .ladb-contact-section  (formulaire + carte de zone)
     .ladb-faq-section      (photo de fond + calque sombre)
     .ladb-hiw-photo        (Comment ca marche, photo de fond + calque sombre,
                              exclue au GOAL-45 3.2 : la reassignation de
                              tokens rendait le H2/sous-titre illisibles,
                              texte fonce sur photo sombre)
   Ces sections sont INTRINSEQUEMENT sombres (visuel de carte, photo) :
   on ne les touche pas, elles servent de respiration.

   Methode : plutot que de reecrire chaque descendant, on REASSIGNE les tokens
   a l'interieur des sections basculees. Tout ce qui consomme var(--fg-mute),
   var(--surface), var(--border) suit automatiquement. Seules les valeurs
   ecrites en dur (#fff et consorts) sont reprises nommement plus bas.

   Portee : classe "ladb-sandwich" posee sur body par ladb_sandwich_body_class()
   (functions.php) pour l'accueil et les pages du gabarit page-service-pillar.php.
   Les pages .ladb-standard (contact, devis, avis, faq, a-propos) sont DEJA dans
   cet esprit et servent de reference : elles ne sont pas touchees.

   REVERSIBILITE : supprimer ce bloc + le filtre body_class rend le rendu
   anterieur a l'identique. Aucune regle existante n'a ete modifiee.
   ============================================================================ */

/* ---- 1. Surface de corps ------------------------------------------------- */
body.ladb-sandwich .ladb-pillar,
body.ladb-sandwich main#main.site-main {
  background: var(--cream);
}

/* ---- 2. Sections basculees : reassignation des tokens -------------------- */
body.ladb-sandwich .ladb-section:not(.ladb-contact-section):not(.ladb-faq-section):not(.ladb-hiw-photo),
body.ladb-sandwich .ladb-review-section,
body.ladb-sandwich .ladb-pillar-services,
body.ladb-sandwich .ladb-realisations,
body.ladb-sandwich .ladb-garanties,
body.ladb-sandwich .ladb-team,
body.ladb-sandwich .ladb-equipe,
body.ladb-sandwich .ladb-secteurs,
body.ladb-sandwich .ladb-communes-desservies,
body.ladb-sandwich .ladb-communes-voisines,
body.ladb-sandwich .ladb-autres-expertises,
body.ladb-sandwich .ladb-blog,
body.ladb-sandwich .vp-cases,
body.ladb-sandwich .vp-guide,
body.ladb-sandwich .vp-expertise,
body.ladb-sandwich .vp-zone-section {
  /* surfaces */
  --surface:       #FFFFFF;
  --surface-2:     #FFFFFF;
  --bg-elevated:   var(--cream);
  --bg:            var(--cream);
  /* textes */
  --fg:            var(--fg-onlight);
  --fg-soft:       var(--fg-onlight);
  --fg-mute:       var(--fg-onlight-mute);
  --fg-dim:        var(--fg-onlight-mute);
  /* bordures : fine et chaude sur creme */
  --border:        var(--cream-border);
  --border-strong: rgba(11,26,51,.18);
  --border-copper: rgba(184,115,51,.30);
  /* accents : le cuivre clair manque de contraste sur creme, on descend d'un cran */
  --copper-light:  var(--copper-deep);
  /* ombres : portees douces, pas de noir profond sur fond clair */
  --shadow-sm:     0 1px 2px rgba(11,26,51,.06);
  --shadow:        0 8px 22px rgba(11,26,51,.08);
  --shadow-lg:     0 18px 40px rgba(11,26,51,.10);

  background: var(--cream);
  color: var(--fg-onlight);
}

/* Les blocs qui declarent leur fond en dur : on les ramene explicitement
   sur le creme (la reassignation de token ne suffit pas quand la valeur
   est ecrite en dur dans le style.css du bloc). */
body.ladb-sandwich .ladb-pillar-services,
body.ladb-sandwich .ladb-garanties,
body.ladb-sandwich .ladb-autres-expertises {
  background-color: var(--cream);
}
body.ladb-sandwich .ladb-realisations,
body.ladb-sandwich .ladb-team,
body.ladb-sandwich .ladb-equipe {
  background: var(--cream);
}

/* ---- 3. Cartes : blanc + bordure chaude ---------------------------------- */
body.ladb-sandwich .ladb-service,
body.ladb-sandwich .ladb-step,
body.ladb-sandwich .ladb-reviews__score,
body.ladb-sandwich .ladb-pillar-services__card,
body.ladb-sandwich .ladb-garanties__card,
body.ladb-sandwich .ladb-autres-expertises__card,
body.ladb-sandwich .ladb-secteurs__card,
body.ladb-sandwich .ladb-team__photo,
body.ladb-sandwich .ladb-vitrage-table,
body.ladb-sandwich .vp-statrow,
body.ladb-sandwich .vp-case {
  background: #FFFFFF;
  border: 1px solid var(--cream-border);
}
body.ladb-sandwich .ladb-service:hover,
body.ladb-sandwich .ladb-pillar-services__card:hover,
body.ladb-sandwich .ladb-garanties__card:hover,
body.ladb-sandwich .ladb-autres-expertises__card:hover,
body.ladb-sandwich .ladb-secteurs__card:hover {
  border-color: rgba(184,115,51,.42);
  box-shadow: 0 18px 40px rgba(11,26,51,.10);
}

/* ---- 4. Textes ecrits en dur (#fff) a l'interieur des sections creme ------ */
body.ladb-sandwich .ladb-section:not(.ladb-contact-section):not(.ladb-faq-section):not(.ladb-hiw-photo) .ladb-section__head h2,
body.ladb-sandwich .ladb-service h3,
body.ladb-sandwich .ladb-step h3,
body.ladb-sandwich .ladb-reviews__score .big,
body.ladb-sandwich .ladb-reviews__score .meta strong,
body.ladb-sandwich .ladb-blog__head h2,
body.ladb-sandwich .ladb-pillar-services .ladb-section-h2,
body.ladb-sandwich .ladb-garanties .ladb-section-h2,
body.ladb-sandwich .ladb-realisations .ladb-section-h2,
body.ladb-sandwich .ladb-team .ladb-section-h2,
body.ladb-sandwich .ladb-secteurs .ladb-section-h2,
body.ladb-sandwich .ladb-autres-expertises .ladb-section-h2,
body.ladb-sandwich .vp-statrow strong,
body.ladb-sandwich .ladb-vitrage-table tbody th {
  color: var(--fg-onlight);
}

/* GOAL-50 2.1 : titres des cartes "Blog et guides pratiques" des piliers.
   .ladb-blog-card tire son fond de var(--surface), reassigne a #FFFFFF par la
   section creme ci-dessus, mais son titre garde un color:#fff ecrit en dur
   dans pillar-vitrerie.css : blanc sur blanc, titre invisible. Regle dediee
   plutot qu'ajout a la liste ci-dessus, car il faut battre la specificite du
   selecteur d'origine (.ladb-blog-card p.ladb-blog-card__title). */
body.ladb-sandwich .ladb-blog-card p.ladb-blog-card__title {
  color: var(--fg-onlight);
}
/* Vignette de la carte : lisere accorde au creme. */
body.ladb-sandwich .ladb-blog-card__thumb {
  border-color: var(--cream-border);
}

/* GOAL-45 6.3 : .ladb-step devient une carte blanche sous le sandwich
   (regle "cartes" plus haut, non conditionnee par la section parente),
   mais son texte de description reste sur var(--fg-mute), qui n'est
   reassigne QUE si la section ambiante l'est. Sur .ladb-hiw-photo,
   volontairement exclue de la reassignation (3.2), --fg-mute restait donc
   a la valeur racine (gris clair pense pour fond sombre) : gris clair sur
   carte blanche, illisible. Nommee explicitement, comme .ladb-step h3
   juste au-dessus. */
body.ladb-sandwich .ladb-step p {
  color: var(--fg-onlight-mute);
}

/* Kickers et sur-titres : cuivre fonce pour tenir le contraste sur creme */
body.ladb-sandwich .ladb-pillar-services .ladb-section-kicker,
body.ladb-sandwich .ladb-garanties .ladb-section-kicker,
body.ladb-sandwich .ladb-realisations .ladb-section-kicker,
body.ladb-sandwich .ladb-team .ladb-section-kicker,
body.ladb-sandwich .ladb-secteurs .ladb-section-kicker,
body.ladb-sandwich .ladb-autres-expertises .ladb-section-kicker,
body.ladb-sandwich .ladb-section__kicker,
body.ladb-sandwich .ladb-blog__head .kicker {
  color: var(--copper-deep);
}

/* Liens de section sur creme */
body.ladb-sandwich .ladb-service__link,
body.ladb-sandwich .ladb-blog__head p a {
  color: var(--copper-deep);
}

/* Pastille d'icone : le voile clair devient un aplat cuivre tres pale */
body.ladb-sandwich .ladb-service__ic {
  background: rgba(184,115,51,.10);
  border-color: rgba(184,115,51,.28);
  color: var(--copper-deep);
}

/* ---- 5. Cartes blog : la vignette photo garde son texte blanc ------------ */
/* .ladb-post est une carte-photo (texte blanc sur image assombrie) : on ne
   touche ni son fond ni sa typo, seulement son lisere pour l'accorder au creme. */
body.ladb-sandwich .ladb-post {
  border: 1px solid var(--cream-border);
}
body.ladb-sandwich .ladb-blog { border-top-color: var(--cream-border); }

/* ---- 6. Boutons secondaires : lisibles sur creme ------------------------- */
body.ladb-sandwich .ladb-section:not(.ladb-contact-section):not(.ladb-faq-section):not(.ladb-hiw-photo) .ladb-btn--secondary,
body.ladb-sandwich .ladb-pillar-services .ladb-btn--secondary,
body.ladb-sandwich .ladb-garanties .ladb-btn--secondary,
body.ladb-sandwich .ladb-realisations .ladb-btn--secondary,
body.ladb-sandwich .vp-guide .ladb-btn--secondary {
  background: transparent;
  color: var(--fg-onlight);
  border: 1px solid rgba(11,26,51,.22);
}
body.ladb-sandwich .ladb-section:not(.ladb-contact-section):not(.ladb-faq-section):not(.ladb-hiw-photo) .ladb-btn--secondary:hover,
body.ladb-sandwich .ladb-pillar-services .ladb-btn--secondary:hover,
body.ladb-sandwich .ladb-garanties .ladb-btn--secondary:hover,
body.ladb-sandwich .ladb-realisations .ladb-btn--secondary:hover,
body.ladb-sandwich .vp-guide .ladb-btn--secondary:hover {
  background: rgba(11,26,51,.05);
  border-color: rgba(11,26,51,.35);
}

/* ---- 7. Separateurs et filets -------------------------------------------- */
body.ladb-sandwich .ladb-section:not(.ladb-contact-section):not(.ladb-faq-section):not(.ladb-hiw-photo) hr,
body.ladb-sandwich .ladb-realisations hr,
body.ladb-sandwich .ladb-team hr {
  border-color: var(--cream-border);
}

/* ---- 8. Reprise de contraste (audit 1.5 sur le rendu reel) ---------------
   Classes dont la couleur est ecrite EN DUR dans le CSS des blocs : la
   reassignation de tokens ne les atteint pas, il faut les nommer.
   Liste etablie par analyse du HTML rendu des 7 pages du perimetre, pas
   a la main : voir contrast-check2.php dans le rapport. */
body.ladb-sandwich .vp-section-h2,
body.ladb-sandwich .ladb-pillar-services__title,
body.ladb-sandwich .ladb-garanties__title,
body.ladb-sandwich .ladb-realisations__heading,
body.ladb-sandwich .ladb-team__heading,
body.ladb-sandwich .ladb-team__name,
body.ladb-sandwich .ladb-autres-expertises__h2,
body.ladb-sandwich .ladb-secteurs__title,
body.ladb-sandwich .ladb-secteurs__card-title {
  color: var(--fg-onlight);
}

/* Chips : le gris bleute #D6DEEA disparait sur le creme. Fond blanc,
   texte bleu nuit, lisere chaud, coherent avec les cartes. */
body.ladb-sandwich .ladb-chip {
  background: #FFFFFF;
  border: 1px solid var(--cream-border);
  color: var(--fg-onlight);
}
body.ladb-sandwich .ladb-chip:hover {
  background: rgba(184,115,51,.10);
  border-color: rgba(184,115,51,.42);
  color: var(--copper-deep);
}
/* GOAL-50 2.3 : une commune sans page cible est rendue en <span class="ladb-chip
   ladb-chip--muted">, mais elle heritait ici du MEME survol cuivre qu'un chip
   cliquable : elle se donnait a lire comme un lien alors qu'elle n'en est pas
   un. Le chip inerte ne bouge plus du tout (ni fond, ni bordure, ni couleur,
   ni curseur). Le comportement de lien reviendra tout seul le jour ou la page
   commune existera, puisque le rendu bascule alors sur un <a class="ladb-chip">. */
body.ladb-sandwich .ladb-chip--muted,
body.ladb-sandwich .ladb-chip--muted:hover,
body.ladb-sandwich .ladb-chip--muted:focus {
  background: #FFFFFF;
  border-color: var(--cream-border);
  color: var(--fg-onlight);
  cursor: default;
}
body.ladb-sandwich .ladb-chip--more {
  background: rgba(184,115,51,.10);
  border-color: rgba(184,115,51,.35);
  color: var(--copper-deep);
}

/* Placeholder communes : le cuivre a 85% d'opacite passe mal sur creme. */
body.ladb-sandwich .ladb-communes-desservies__placeholder span {
  color: var(--copper-deep);
}

/* GOAL-45 4.4 : chips de la section "Vitrier pres de chez vous, 30 km"
   (.vp-zone-text, section pilier). Fond bleu nuit leger + bordure cuivre
   sur les variantes actives, pour lire une vraie pastille de charte plutot
   qu'un texte flottant sans cadre (fond blanc 3% quasi invisible sur creme). */
body.ladb-sandwich .vp-zone-text {
  background: rgba(11,26,51,.06);
  border: 1px solid var(--cream-border);
}
body.ladb-sandwich .vp-zone-text--featured {
  background: rgba(184,115,51,.10);
  border-color: rgba(184,115,51,.35);
  color: var(--copper-deep);
}
body.ladb-sandwich .vp-zone-text--link:hover {
  background: rgba(184,115,51,.14);
  border-color: rgba(184,115,51,.42);
  color: var(--copper-deep);
}

/* Survol d'une carte de cas : #E6BD8B est trop clair sur une carte blanche. */
body.ladb-sandwich .vp-case--link .vp-case__title,
body.ladb-sandwich .vp-case--link:hover .vp-case__title {
  color: var(--copper-deep);
}

/* NOTE : .ladb-post / .ladb-post h4 / .ladb-post__meta restent en blanc.
   Ce sont les vignettes photo du blog : texte blanc sur image assombrie,
   avec text-shadow. Contraste correct, ne pas basculer. */

/* ============================================================================
   LOGO HEADER : lockup horizontal (GOAL-44, Phase 2)
   ----------------------------------------------------------------------------
   Le lockup d'origine est CARRE (fiole au-dessus, lettrage en dessous). Rendu
   a la hauteur d'un header (88 a 96 px), son lettrage tombe sous 20 px et
   devient illisible. On sert donc au header une variante HORIZONTALE (fiole a
   gauche, lettrage a droite) reconstruite depuis la source vectorielle, sans
   redessin : attachment 4865, 608x184, soit 304x92 en rendu 1x (export 2x).

   Le lockup CARRE reste l'asset officiel de la marque : schema Organization
   (Yoast, attachment 4867), reseaux sociaux et print. Il n'est pas remplace.

   La variante fond clair (attachment 4866, lettrage sombre) est disponible en
   .ladb-logo--light pour tout futur emplacement sur fond creme ou blanc.
   ============================================================================ */

/* Hauteur d'affichage : la largeur suit le ratio du lockup (3,3:1). */
.ct-header [data-id="logo"] .site-logo-container img,
.ct-header .site-branding .site-logo-container img,
.ct-header img.default-logo {
  height: 92px;
  width: auto;
  max-height: 92px;
  max-width: 100%;
  object-fit: contain;
}

/* Le container ne doit pas rogner le lockup ni le centrer de travers. */
.ct-header [data-id="logo"] .site-logo-container {
  display: flex;
  align-items: center;
}

/* Tablette : on resserre un peu avant le passage en burger. */
@media (max-width: 999px) {
  .ct-header [data-id="logo"] .site-logo-container img,
  .ct-header .site-branding .site-logo-container img,
  .ct-header img.default-logo {
    height: 76px;
    max-height: 76px;
  }
}

/* Mobile : 64 px, hauteur qui laisse le burger respirer. */
@media (max-width: 767px) {
  .ct-header [data-id="logo"] .site-logo-container img,
  .ct-header .site-branding .site-logo-container img,
  .ct-header img.default-logo {
    height: 64px;
    max-height: 64px;
  }
}

/* Variante fond clair, pour un futur footer clair ou une page speciale. */
.ladb-logo--light img,
img.ladb-logo--light {
  height: 92px;
  width: auto;
  max-width: 100%;
}
@media (max-width: 767px) {
  .ladb-logo--light img,
  img.ladb-logo--light { height: 64px; }
}

/* ============================================================================
   FORMULAIRE DEVIS : compactage + champs photo (GOAL-44, Phase 5)
   ----------------------------------------------------------------------------
   Objectif : le formulaire complet doit tenir dans un ecran sans scroll
   excessif. On resserre les marges verticales et la hauteur des champs, sans
   descendre sous 44 px de zone tactile (cible mobile). La reassurance et le
   bouton restent colles.
   ============================================================================ */

/* Marges verticales : c'est la ou se perdait le plus de hauteur. */
.ladb-cf7-wrapper .ladb-cf7-field { margin: 0 0 12px; }
.ladb-cf7-wrapper form p { margin: 0 0 12px; }
.ladb-cf7-wrapper form p:last-child { margin-bottom: 0; }
.ladb-cf7-wrapper label { margin-bottom: 4px; }

/* Champs : padding resserre, hauteur tactile preservee. */
.ladb-cf7-wrapper input[type="text"],
.ladb-cf7-wrapper input[type="email"],
.ladb-cf7-wrapper input[type="tel"],
.ladb-cf7-wrapper select {
  padding: 10px 13px;
  min-height: 44px;
}
.ladb-cf7-wrapper textarea {
  padding: 10px 13px;
  min-height: 72px;
}
.ladb-cf7-wrapper select { min-height: 44px; }

/* Bouton : garde sa presence, gagne un peu de hauteur. */
.ladb-cf7-wrapper input[type="submit"] { padding: 12px 22px; }

/* Reassurance : collee au bouton plutot que flottante. */
.ladb-cf7-wrapper .ladb-form__legal { margin-top: 8px !important; line-height: 1.45; }

/* ---- Champs photo (GOAL-45, Lot 2) ---------------------------------------
   Replies derriere un toggle : un seul element visible par defaut, les 3
   [file] restent des vrais inputs natifs CF7, seul l'affichage est reduit.
   Sans JS, .ladb-cf7-files__body reste visible (progressive enhancement,
   voir la regle .no-js plus bas) : le formulaire fonctionne quand meme. */
.ladb-cf7-files {
  margin: 0 0 12px;
  padding: 10px 13px;
  border: 1px dashed rgba(217,160,102,.34);
  border-radius: var(--radius);
  background: rgba(217,160,102,.05);
}
.ladb-cf7-files__toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 700;
  color: var(--copper-light);
  background: none;
  border: none;
  padding: 2px 0;
  margin: 0;
  cursor: pointer;
  text-align: left;
}
.ladb-cf7-files__toggle::before {
  content: "+";
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1px solid rgba(217,160,102,.5);
  font-size: 14px;
  line-height: 1;
  transition: transform var(--dur) var(--ease-out);
}
.ladb-cf7-files.is-open .ladb-cf7-files__toggle::before { transform: rotate(45deg); }
.ladb-cf7-files__body {
  display: none;
  margin-top: 10px;
}
.ladb-cf7-files.is-open .ladb-cf7-files__body { display: block; }
/* CF7 ajoute lui-meme .no-js sur .wpcf7 tant que son propre script n'a pas
   tourne : on s'appuie dessus plutot que de recreer un mecanisme JS-ready. */
.wpcf7.no-js .ladb-cf7-files__toggle { display: none; }
.wpcf7.no-js .ladb-cf7-files__body { display: block; }
.ladb-cf7-files__label {
  display: block;
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 700;
  color: var(--copper-light);
  margin-bottom: 2px;
}
.ladb-cf7-files__hint {
  display: block;
  font-size: 11px;
  color: var(--fg-mute);
  margin-bottom: 8px;
}
.ladb-cf7-files .wpcf7-form-control-wrap { display: block; margin-bottom: 6px; }
.ladb-cf7-files .wpcf7-form-control-wrap:last-of-type { margin-bottom: 0; }
.ladb-cf7-wrapper input[type="file"] {
  width: 100%;
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--fg-mute);
  background: transparent;
  border: none;
  padding: 0;
}
/* Le bouton natif "Parcourir" : on le met a la charte sans casser
   l'accessibilite (l'input reste un vrai input file). */
.ladb-cf7-wrapper input[type="file"]::file-selector-button {
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 600;
  color: var(--copper-light);
  background: rgba(217,160,102,.12);
  border: 1px solid rgba(217,160,102,.34);
  border-radius: var(--radius-sm);
  padding: 7px 12px;
  margin-right: 10px;
  cursor: pointer;
  transition: background var(--dur) var(--ease-out);
}
.ladb-cf7-wrapper input[type="file"]::file-selector-button:hover {
  background: rgba(217,160,102,.20);
}

/* Sur les sections creme du design Sandwich, le bloc photo doit rester lisible. */
body.ladb-sandwich .ladb-cf7-files__hint { color: var(--fg-onlight-mute); }

/* ============================================================================
   ANCRE DU FORMULAIRE (GOAL-44, 5.6)
   Le CTA devis des pages piliers et villes pointe sur #contact plutot que vers
   une autre page. Le header de ce site n'est PAS sticky : rien ne masque la
   cible. On garde neanmoins une marge de confort pour que le titre de la
   section ne colle pas au bord haut de l'ecran.
   ============================================================================ */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
#contact { scroll-margin-top: 24px; }

/* ============================================================================
   GOAL-49 Lot 8 : finitions design (page devis + mobile)
   ============================================================================ */

/* ─────────────────────────────────────────────────────────
   8.1  /devis-gratuit/ : hero resserre (desktop)
   Le H1 passait sur deux lignes et le hero occupait une hauteur
   disproportionnee avant le formulaire, qui est pourtant le seul
   objectif de la page. Scope .ladb-page-devis : les autres pages du
   gabarit standard (contact, faq, avis, pages juridiques) gardent
   leur rythme actuel.
   ───────────────────────────────────────────────────────── */
body.ladb-page-devis .ladb-std-hero {
  padding: 40px 0 34px;
}
body.ladb-page-devis .ladb-std-hero h1 {
  font-size: clamp(26px, 3.3vw, 36px);
  margin-bottom: 12px;
}
body.ladb-page-devis .ladb-std-hero__lede {
  font-size: 17px;
  line-height: 1.5;
  max-width: 70ch;
}
body.ladb-page-devis .ladb-std-trust {
  margin-top: 16px;
}
/* Section formulaire (fond bleu) : le libelle et le H2 remontent. */
body.ladb-page-devis .ladb-contact-section {
  padding-top: 36px;
}
@media (min-width: 900px) {
  body.ladb-page-devis .ladb-contact-section { padding-top: 52px; }
}
body.ladb-page-devis .ladb-contact-section .ladb-section__head {
  margin-bottom: 24px;
}

/* ─────────────────────────────────────────────────────────
   8.2  Hero mobile : garantir la gouttiere laterale
   Le contenu du hero venait toucher les bords de l'ecran. La regle
   ci-dessous reaffirme les 20 px du .container a toutes les variantes
   de hero sous 900 px, quelle que soit la surcharge amont.
   ───────────────────────────────────────────────────────── */
@media (max-width: 899px) {
  .ladb-hero .container,
  .ladb-hero--pillar .container,
  .ladb-hero--form .container {
    padding-left: 20px;
    padding-right: 20px;
  }
  .ladb-hero--pillar .ladb-hero__body,
  .ladb-hero--form .ladb-hero__body {
    padding-left: 0;
    padding-right: 0;
  }
}

/* ─────────────────────────────────────────────────────────
   8.3  Hero pilier et ville, mobile : CTA et badge centres
   Sur mobile le bouton telephone, le bouton devis et le badge de
   disponibilite etaient cales a gauche sous un titre pleine largeur,
   ce qui donnait une colonne bancale. Ils sont centres sous 900 px.
   Le titre, le kicker et l'accroche restent alignes a gauche.
   ───────────────────────────────────────────────────────── */
@media (max-width: 899px) {
  .ladb-hero--pillar .ladb-hero__ctas {
    justify-content: center;
  }
  .ladb-hero--pillar .ladb-hero__avail {
    align-self: center;
  }
}

/* ─────────────────────────────────────────────────────────
   8.4  Menu burger : espacement vertical resserre
   Blocksy pilote l'espacement des items par --items-vertical-spacing.
   Le reglage du customizer laissait beaucoup de vide pour six entrees.
   ───────────────────────────────────────────────────────── */
#offcanvas .mobile-menu {
  --items-vertical-spacing: 7px;
}

/* ============================================================================
   GOAL-50 Lot 3 : mobile
   ============================================================================ */

/* ─────────────────────────────────────────────────────────
   3.1  Gouttiere laterale garantie sur TOUS les templates
   Le .container porte la gouttiere (20px, 32px des 768px), mais plusieurs
   blocs redeclarent un padding EN RACCOURCI sur ce meme element, ce qui
   remet silencieusement les cotes a zero. Le cas type est
   `.ladb-hero__inner { padding: 32px 0 40px; }` (global.css) : meme
   specificite que `.container`, declare plus bas, donc gagnant, et le
   contenu du hero vient toucher le bord de l'ecran.
   Le correctif du GOAL-49 traitait le hero au cas par cas. On reaffirme ici
   le bareme pour tout le monde, en fin de feuille donc en dernier mot du
   cascade, et SANS changer les valeurs existantes (20px sous 768px, 32px
   au-dessus) pour ne rien degrader sur tablette.
   ───────────────────────────────────────────────────────── */
@media (max-width: 767px) {
  .container {
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media (min-width: 768px) and (max-width: 899px) {
  .container {
    padding-left: 32px;
    padding-right: 32px;
  }
}

/* ─────────────────────────────────────────────────────────
   3.6  Chips de communes inertes : garde-fou de forme
   (ajoute apres la QA du Lot 2)
   La regle du Lot 2 ciblait .ladb-chip--muted. Or un bloc pouvait rendre une
   commune sans page en simple <span class="ladb-chip">, sans le modificateur :
   c'etait le cas de ladb_zone_chip(), donc de la carte de zone de l'accueil,
   ou Saint-Gely-du-Fesc, Le Cres et Perols reagissaient encore au survol.
   Le modificateur est desormais pose a la source, mais on verrouille aussi la
   regle sur la FORME : un chip qui n'est pas un lien ne doit jamais se
   comporter comme un lien, quel que soit le bloc qui le rend et quelle que
   soit la page. Vaut sur fond sombre comme sur creme.
   ───────────────────────────────────────────────────────── */
span.ladb-chip,
span.ladb-chip:hover,
span.ladb-chip:focus,
.ladb-chip--muted,
.ladb-chip--muted:hover,
.ladb-chip--muted:focus {
  cursor: default;
}
body.ladb-sandwich span.ladb-chip,
body.ladb-sandwich span.ladb-chip:hover,
body.ladb-sandwich span.ladb-chip:focus {
  background: #FFFFFF;
  border-color: var(--cream-border);
  color: var(--fg-onlight);
}
body:not(.ladb-sandwich) span.ladb-chip,
body:not(.ladb-sandwich) span.ladb-chip:hover,
body:not(.ladb-sandwich) span.ladb-chip:focus {
  background: rgba(255,255,255,.05);
  border-color: var(--border);
  color: #D6DEEA;
}
/* La carte de zone garde son habillage propre, y compris pour les chips
   inertes : on ne neutralise que la reaction au survol, pas le style. */
.ladb-mapcard__chips span.ladb-chip,
.ladb-mapcard__chips span.ladb-chip:hover,
.ladb-mapcard__chips span.ladb-chip:focus {
  background: rgba(217,160,102,.08);
  border-color: rgba(217,160,102,.30);
  color: #E7E3DB;
}
body.ladb-sandwich .ladb-mapcard__chips span.ladb-chip,
body.ladb-sandwich .ladb-mapcard__chips span.ladb-chip:hover,
body.ladb-sandwich .ladb-mapcard__chips span.ladb-chip:focus {
  background: #FFFFFF;
  border-color: var(--cream-border);
  color: var(--fg-onlight);
}

/* ───────── GOAL-55 (3) : alignement mobile des 3 chiffres cles du hero ───────── */
/* En mobile les 3 marqueurs sont empiles (.ladb-hero__markers passe a
   grid-template-columns: 1fr sous 640px). Les chiffres "‹24h", "10" et "52"
   n'ont pas la meme largeur, donc les libelles et les sous-lignes 01/02/03
   ne demarrent pas sur un bord gauche commun. Une largeur minimale sur le
   chiffre cale la colonne de texte des 3 items.
   Le breakpoint est l'inverse exact de celui du bloc (min-width: 640px) et
   non 767px : entre 640 et 767px les marqueurs sont deja cote a cote, la
   regle y creerait un espace inutile. */
@media (max-width: 639.98px) {
  .ladb-hero__marker .n {
    display: inline-block;
    min-width: 4.5ch;
  }
}
