

:root {
  --r-card: 16px;
  --r-card-lg: 24px;
  --r-img: 12px;
  --r-pill: 999px;

  --f-titre: "Onest", system-ui, sans-serif;
  --f-texte: "Inter", system-ui, sans-serif;

  --pad-section: 120px;
  --max: 1280px;

  
  --sur-fonce: var(--sur-accent-bande, var(--fond)); 
  --verre: color-mix(in srgb, var(--fond) 5%, transparent);
  --verre-fort: color-mix(in srgb, var(--sur-fonce) 8%, transparent);
  --trait-fonce: color-mix(in srgb, var(--fond) 12%, transparent);
  --encre-fonce-doux: var(--sur-fonce); 
  --encre-fonce-faible: var(--sur-fonce); 
}

* { box-sizing: border-box; }

html, body {
  margin: 0; padding: 0;
  background: var(--fond); color: var(--texte);
  font-family: var(--f-texte);
  font-size: 16px; line-height: 1.55; letter-spacing: -.01em;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1, h2, h3, h4 {
  font-family: var(--f-titre); font-weight: 500;
  letter-spacing: -.04em; line-height: 1.08; margin: 0;
  text-wrap: balance;
}
h1 { font-size: clamp(38px, 6vw, 72px); line-height: 1.05; letter-spacing: -.045em; }
h2 { font-size: clamp(30px, 4.5vw, 56px); letter-spacing: -.04em; }

h1[data-rang="2"] { font-size: clamp(30px, 4.5vw, 56px); }
h3 { font-size: clamp(21px, 2.2vw, 32px); line-height: 1.16; letter-spacing: -.025em; }
h4 { font-size: clamp(17px, 1.6vw, 22px); line-height: 1.3; letter-spacing: -.015em; }
p { margin: 0; text-wrap: pretty; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

.vz-wrap { width: 100%; max-width: var(--max); margin-inline: auto; padding-inline: 24px; }
@media (min-width: 768px) { .vz-wrap { padding-inline: 40px; } }

.sec { padding-block: clamp(64px, 9vw, var(--pad-section)); }
.sec--alt { background: var(--fond-2); }
.sec--fonce { background: var(--accent-bande, var(--accent)); color: var(--sur-fonce); }

.sec--fonce h1, .sec--fonce h2, .sec--fonce h3, .sec--fonce h4,
.cta h1, .cta h2, .cta h3, .cta h4 { color: var(--sur-fonce); }
.sec--fonce .body, .cta .body { color: var(--encre-fonce-doux); }

.body { color: var(--texte-doux); font-size: 16px; }
.body--grand { font-size: 18px; }

.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 14px 6px 10px; margin: 0 0 22px;
  background:var(--marque);--sur-bande:var(--sur-marque); color:var(--sur-bande,var(--sur-marque));
  border-radius: var(--r-pill);
  font-family: var(--f-texte); font-size: 12px; font-weight: 500;
  letter-spacing: .02em; text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 8px; height: 8px; border-radius: var(--r-pill); background: var(--sur-marque); flex: none; }
.sec--fonce .eyebrow, .cta .eyebrow { background: var(--verre-fort); color: var(--sur-fonce); }
.sec--fonce .eyebrow::before, .cta .eyebrow::before { background:var(--marque);--sur-bande:var(--sur-marque); }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 22px; border-radius: var(--r-pill);
  font-size: 14px; font-weight: 500; letter-spacing: -.005em;
  background:var(--marque);--sur-bande:var(--sur-marque); color:var(--sur-bande,var(--sur-marque));
  transition: transform .22s ease, background .22s ease;
  max-width: 100%;
}
.btn:hover { transform: translateY(-1px); }
.btn__fleche {
  width: 26px; height: 26px; border-radius: var(--r-pill); flex: none;
  background: var(--sur-marque); color:var(--encre-marque,var(--marque));
  display: inline-flex; align-items: center; justify-content: center; font-size: 13px;
}
.btn--fonce { background: var(--accent-bande, var(--accent)); color: var(--sur-fonce); }
.btn--fonce .btn__fleche { background:var(--marque);--sur-bande:var(--sur-marque); color:var(--sur-bande,var(--sur-marque)); }
.btn--fantome { background: transparent; color: var(--texte); border: 1px solid var(--bordure); }
.btn--fantome .btn__fleche { background:var(--texte);--sur-bande:var(--sur-texte,var(--fond)); color: var(--fond); }
.sec--fonce .btn--fantome, .hero .btn--fantome, .cta .btn--fantome { color: var(--sur-fonce); border-color: var(--trait-fonce); }
.sec--fonce .btn--fantome .btn__fleche, .hero .btn--fantome .btn__fleche, .cta .btn--fantome .btn__fleche { background: var(--sur-fonce); color: var(--accent); }

.carte { background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-card); overflow: hidden; }
.carte--verre { background: var(--verre); border-color: var(--trait-fonce); color: var(--sur-fonce); }
.num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: var(--r-pill); flex: none;
  background:var(--marque);--sur-bande:var(--sur-marque); color:var(--sur-bande,var(--sur-marque));
  font-family: var(--f-titre); font-size: 14px; font-weight: 500;
}
.sur-titre { font-size: 12px; text-transform: uppercase; letter-spacing: .18em; color: var(--texte-doux); }

.sec--fonce .sur-titre, .hero .sur-titre, .cta .sur-titre { color: var(--encre-fonce-faible); }

.chip {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 16px; border-radius: var(--r-pill);
  border: 1px solid var(--bordure); background: var(--fond);
  font-size: 14px; color: var(--texte); max-width: 100%; overflow-wrap: anywhere;
}
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
.sec--fonce .chip, .hero .chip, .cta .chip { background: var(--verre); border-color: var(--trait-fonce); color: var(--sur-fonce); }

.puces { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 11px; }
.puces li { position: relative; padding-left: 26px; color: var(--texte-doux); }
.puces li::before {
  content: ""; position: absolute; left: 0; top: .5em;
  width: 9px; height: 9px; border-radius: var(--r-pill); background:var(--marque);--sur-bande:var(--sur-marque);
}
.sec--fonce .puces li, .hero .puces li, .cta .puces li { color: var(--encre-fonce-doux); }

.g2, .g3, .g4 { display: grid; gap: 16px; align-items: stretch; }
.g2 > *, .g3 > *, .g4 > * { min-width: 0; }
.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 980px) { .g3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) {
  .g2, .g3, .g4 { grid-template-columns: minmax(0, 1fr); }
}

.frame {
  position: relative; overflow: hidden; border-radius: var(--r-img);
  background: var(--fond-2);
  background-image: repeating-linear-gradient(135deg,
    var(--bordure) 0 1px, transparent 1px 11px);
  display: grid; place-items: center; padding: 18px;
  min-height: 190px;
  font-size: 13px; color: var(--texte-doux); text-align: center;
}
.frame img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }

.hero__bg > .frame, .cta__bg > .frame { position: absolute; inset: 0; min-height: 0; border-radius: 0; }

.hd { position: fixed; inset-inline: 0; top: 0; z-index: 50; padding-block: 16px; transition: background .25s ease, box-shadow .25s ease; }
.hd__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.hd__logo { display: inline-flex; align-items: center; gap: 10px; font-family: var(--f-titre); font-size: 18px; color: var(--texte); }
.hd__mark {
  width: 36px; height: 36px; border-radius: var(--r-pill); flex: none;
  object-fit: cover; background: #fff; display: inline-block;
}
.hd__nav { display: flex; align-items: center; gap: 2px; padding: 6px; border-radius: var(--r-pill); background: var(--fond-2); border: 1px solid var(--bordure); }
.hd__lien { padding: 9px 16px; border-radius: var(--r-pill); font-size: 14px; color: var(--texte); white-space: nowrap; cursor: pointer; }
.hd__lien:hover { background: var(--fond); }
.hd__cta { flex: none; }

.hd__bascule { display: none; width: 42px; height: 42px; padding: 0; flex: none;
  border: 1px solid var(--bordure); border-radius: var(--r-pill); background: var(--fond-2);
  cursor: pointer; flex-direction: column; align-items: center; justify-content: center; gap: 5px; }
.hd__bascule i { display: block; width: 17px; height: 2px; border-radius: 2px; background: currentColor; transition: transform .18s ease, opacity .18s ease; }
.hd--ouvert .hd__bascule i:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hd--ouvert .hd__bascule i:nth-child(2) { opacity: 0; }
.hd--ouvert .hd__bascule i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.hd:has(+ .hero):not(.is-scrolle) { background: transparent; }
.hd:has(+ .hero):not(.is-scrolle) .hd__bascule { color: var(--sur-fonce); background: var(--verre-fort); border-color: var(--trait-fonce); }
.hd:has(+ .hero):not(.is-scrolle) .hd__logo { color: var(--sur-fonce); }
.hd:has(+ .hero):not(.is-scrolle) .hd__nav { background: var(--verre-fort); border-color: var(--trait-fonce); }
.hd:has(+ .hero):not(.is-scrolle) .hd__lien { color: var(--sur-fonce); }
.hd:has(+ .hero):not(.is-scrolle) .hd__lien:hover { background: var(--verre-fort); }

.hd:has(+ .hero):not(.is-scrolle) .btn--fantome { color: var(--sur-fonce); border-color: var(--trait-fonce); }
.hd:has(+ .hero):not(.is-scrolle) .btn--fantome .btn__fleche { background: var(--sur-fonce); color: var(--accent); }

.hd.is-scrolle {
  background: color-mix(in srgb, var(--fond) 88%, transparent);
  backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 var(--bordure);
}

.drop { position: relative; }

.drop .hd__lien { display: inline-flex; align-items: center; gap: 7px; }
.drop__chev {
  width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg); transition: transform .18s ease;
}
.drop:hover .drop__chev, .drop:focus-within .drop__chev { transform: translateY(1px) rotate(225deg); }

.drop__panneau {
  position: absolute; left: 50%; top: 100%; padding-top: 12px;
  opacity: 0; visibility: hidden; transform: translate(-50%, -6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.drop:hover .drop__panneau, .drop:focus-within .drop__panneau { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.drop__grille {
  background: var(--fond); border: 1px solid var(--bordure); border-radius: var(--r-card-lg);
  padding: 14px; display: flex; align-items: flex-start; gap: 18px;
  min-width: 560px; max-width: min(94vw, 820px);
  box-shadow: 0 30px 70px color-mix(in srgb, var(--accent) 18%, transparent);
}
.drop__liste { display: grid; gap: 2px; align-content: start; flex: 1 1 auto; min-width: 0; }

.drop__col {
  font-family: var(--f-titre); font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--texte-doux); padding: 6px 14px 8px;
}

.drop__vit { flex: 0 0 250px; display: grid; gap: 8px; align-content: start; padding: 8px 8px 12px; }
.drop__vitPh { min-height: 0; height: 130px; width: 100%; border-radius: var(--r-card); }
.drop__vitN { font-size: 16px; line-height: 1.3; }
.drop__vitX { font-size: 13px; color: var(--texte-doux); line-height: 1.5; }

.drop__vitZ { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--texte); justify-self: start; }
.drop__vit .eyebrow { justify-self: start; }
.drop__vitZ .btn__fleche { width: 24px; height: 24px; font-size: 12px; }
.drop__liste a { padding: 10px 14px; border-radius: var(--r-card); font-size: 14px; color: var(--texte); }
.drop__liste a:hover { background: var(--fond-2); }

.hero { position: relative; isolation: isolate; overflow: hidden; background: var(--accent-bande, var(--accent)); color: var(--sur-fonce); display: flex; flex-direction: column; }
.hero__bg { position: absolute; inset: 0; z-index: -2; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.hero__voile {
  position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(to bottom,
    color-mix(in srgb, var(--accent) 45%, transparent) 0%,
    color-mix(in srgb, var(--accent) 35%, transparent) 40%,
    color-mix(in srgb, var(--accent) 88%, transparent) 100%);
}
.hero__inner { display: flex; flex-direction: column; justify-content: space-between; gap: 40px; width: 100%; min-height: 100svh; padding-block: 130px 56px; }
.hero__haut { max-width: 900px; }
.hero__socle-zone { width: 100%; padding-bottom: 64px; }
.hero__grille { display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-end; }
.hero__txt { flex: 1 1 58%; min-width: min(100%, 320px); }
.hero__txt h1 { color: var(--sur-fonce); }

.hero__accent { color: color-mix(in srgb, var(--marque) 42%, var(--texte)); }
.hero .hero__accent, .sec--fonce .hero__accent, .cta .hero__accent { color:var(--encre-marque,var(--marque)); }
.hero__sous { margin-top: 24px; max-width: 560px; font-size: 17px; color: var(--encre-fonce-doux); }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

.actes { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.actes > * { min-width: 0; }
.hero__carte {
  flex: 1 1 30%; min-width: min(100%, 280px);
  border-radius: var(--r-card-lg); border: 1px solid var(--trait-fonce);
  background: var(--verre); backdrop-filter: blur(12px); padding: 24px;
}
.hero__phrase { margin-top: 12px; font-family: var(--f-titre); font-size: 22px; font-weight: 500; line-height: 1.2; color: var(--sur-fonce); }

.hero__socle { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: 14px; margin-top: 40px; }
.hero__stat { min-width: 0; border-radius: var(--r-card); background: var(--verre); padding: 16px; }
.hero__stat b { display: block; font-family: var(--f-titre); font-size: 28px; font-weight: 500; color:var(--encre-marque,var(--marque)); }
.hero__stat span { display: block; margin-top: 4px; font-size: 12px; color: var(--encre-fonce-doux); }

.intro { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; }
.intro > * { min-width: 0; }
.intro__g { flex: 1 1 38%; min-width: min(100%, 280px); position: sticky; top: 112px; }
.intro__d { flex: 1 1 52%; min-width: min(100%, 300px); }
.intro__lead { font-family: var(--f-titre); font-size: clamp(19px, 2.1vw, 24px); font-weight: 400; line-height: 1.45; color: var(--texte); }
.intro__d p + p { margin-top: 16px; }

.tete { display: flex; flex-wrap: wrap; gap: 28px; align-items: flex-end; justify-content: space-between; }
.tete__g { flex: 1 1 48%; min-width: min(100%, 300px); }
.tete__d { flex: 1 1 38%; min-width: min(100%, 280px); }

.svc { display: flex; flex-direction: column; transition: transform .3s ease; }
.svc:hover { transform: translateY(-4px); }

.svc__img { position: relative; aspect-ratio: 4 / 5; max-height: 400px; min-height: 0; border-radius: 0; }

.svc__img > .frame { position: absolute; inset: 0; min-height: 0; }
.svc__num { position: absolute; left: 16px; top: 16px; z-index: 2; }
.svc__corps { display: flex; flex-direction: column; gap: 12px; padding: 20px; flex: 1; }
.svc__lien { margin-top: auto; padding-top: 12px; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; }

.mat-duo { display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; }
.mat-duo__intitule { flex: 1 1 34%; min-width: min(100%, 300px); }
.mats { flex: 1 1 52%; min-width: min(100%, 300px); display: flex; flex-wrap: wrap; gap: 16px; }
.mat { flex: 1 1 44%; min-width: min(100%, 240px); padding: 24px; }
.mat__vig { width: 64px; height: 64px; min-height: 0; border-radius: var(--r-img); overflow: hidden; }
.mat__titre { margin: 20px 0 10px; }
@media (min-width: 1000px) { .mat-duo__intitule { position: sticky; top: 104px; } }

.bloc { display: flex; flex-wrap: wrap; gap: 44px; align-items: center; margin-top: 56px; }
.bloc > * { min-width: 0; }
.bloc__txt { flex: 1 1 46%; min-width: min(100%, 300px); }
.bloc .frame { flex: 1 1 44%; min-width: min(100%, 280px); min-height: 380px; border-radius: var(--r-card-lg); }
.bloc--inv .frame { order: -1; }
.bloc p + p { margin-top: 16px; }
.bloc__lien { display: inline-flex; align-items: center; gap: 8px; margin-top: 24px; font-weight: 500; }

.feats { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 48px; }
.feat { flex: 1 1 45%; min-width: min(100%, 240px); display: flex; gap: 14px; align-items: flex-start; }
.feat .num { width: 30px; height: 30px; font-size: 13px; }

.marquee { overflow: hidden; }
.marquee__track { display: flex; width: max-content; gap: 16px; animation: defile 38s linear infinite; }
.marquee__item {
  border: 1px solid var(--bordure); border-radius: var(--r-card-lg);
  padding: 14px 22px; font-family: var(--f-titre); font-size: 15px;
  color: var(--texte-doux); white-space: nowrap; flex: none;
}
.sec--fonce .marquee__item { border-color: var(--trait-fonce); background: var(--verre); color: var(--encre-fonce-doux); }
@keyframes defile { to { transform: translateX(-50%); } }

.b2b { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 48px; }
.b2b > * { min-width: 0; }
.b2b__carte { min-width: 0; position: relative; overflow: hidden; padding: 28px; border-radius: var(--r-card); border: 1px solid var(--bordure); background: var(--fond); }
.b2b__num { font-size: 12px; text-transform: uppercase; letter-spacing: .18em; color: var(--texte-doux); }

.b2b__img { margin: -28px -28px 22px; }
.b2b__img > .frame { height: 190px; min-height: 190px; border-radius: var(--r-card) var(--r-card) 0 0; }
.b2b__halo { position: absolute; right: -40px; bottom: -40px; width: 160px; height: 160px; border-radius: var(--r-pill); background: color-mix(in srgb, var(--marque) 22%, transparent); filter: blur(34px); }

.zones { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 36px; }
.zones > * { min-width: 0; }
.zone-ligne {
  flex: 1 1 46%; min-width: min(100%, 280px);
  display: flex; align-items: baseline; gap: 14px;
  padding: 16px 20px; border-radius: var(--r-card);
  border: 1px solid var(--bordure); background: var(--fond); font-size: 15px;
}
.zone-ligne__num { font-size: 12px; letter-spacing: .18em; color: var(--texte-doux); flex: none; }
.zone-ligne__nom { font-family: var(--f-titre); font-weight: 500; min-width: 0; overflow-wrap: anywhere; }
.zone-ligne__fl { margin-left: auto; flex: none; color: var(--texte-doux); }
.zone-ligne:hover { border-color:var(--encre-marque,var(--marque)); background: var(--fond-2); }
.zone-ligne:hover .zone-ligne__fl { color:var(--encre-marque,var(--marque)); }
.zone-bande { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 36px; }
.zone-bande .frame { flex: 1 1 30%; min-width: min(100%, 250px); height: 200px; min-height: 200px; border-radius: var(--r-card-lg); }

.etapes { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 48px; list-style: none; }
.etape { flex: 1 1 30%; min-width: min(100%, 270px); position: relative; overflow: hidden; padding: 28px; border-radius: var(--r-card); }
.etape__haut { display: flex; align-items: center; gap: 14px; }
.etape h3 { margin-top: 26px; }
.etape p { margin-top: 12px; }
.etape__halo { position: absolute; right: -40px; bottom: -40px; width: 160px; height: 160px; border-radius: var(--r-pill); background: color-mix(in srgb, var(--marque) 18%, transparent); filter: blur(34px); }

.chiffres-panneau { display: grid; gap: 24px; }
.chiffres__vue { border-radius: var(--r-card-lg); min-height: 280px; }
.chiffres { display: flex; flex-wrap: wrap; gap: 16px; list-style: none; }
.chiffre {
  flex: 1 1 22%; min-width: min(100%, 200px);
  padding: 20px 24px; border-radius: var(--r-card-lg);
  border: 1px solid var(--bordure); background: var(--fond);
}
.chiffre__val { font-family: var(--f-titre); font-size: 30px; font-weight: 500; color: var(--texte); }
.chiffre__lib { margin-top: 6px; font-size: 13px; color: var(--texte-doux); }
.sec--fonce .chiffre { background: var(--verre); border-color: var(--trait-fonce); }
.sec--fonce .chiffre__val { color: var(--sur-fonce); } 
.sec--fonce .chiffre__lib { color: var(--encre-fonce-doux); }

.loc { margin-top: 44px; }
.loc__vue { position: relative; padding-bottom: 40px; }
.loc__vue > .frame { min-height: 420px; border-radius: var(--r-card-lg); }
.loc__carte {
  position: absolute; bottom: 0; inset-inline: 28px;
  padding: 26px 30px; border-radius: var(--r-card-lg);
  border: 1px solid var(--bordure); background: var(--fond);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .10);
}
.loc__carte p { margin-bottom: 6px; }
.loc__carte p:last-child { margin-bottom: 0; }
.loc__phare { font-family: var(--f-titre); font-size: clamp(19px, 2vw, 24px); font-weight: 500; line-height: 1.2; overflow-wrap: anywhere; }
.loc__chips { margin-top: 28px; }

.avis-piste { overflow: hidden; margin-top: 48px; }
.avis-piste__track { display: flex; width: max-content; gap: 16px; animation: defile 46s linear infinite; }
.avis { flex: none; width: 320px; max-width: 86vw; padding: 24px; border-radius: var(--r-card); }
.avis__etoiles { color:var(--encre-marque,var(--marque)); letter-spacing: 3px; font-size: 14px; }
.avis__cite { margin-top: 20px; overflow-wrap: anywhere; }
.avis__pied { display: flex; align-items: center; gap: 12px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--trait-fonce); }
.avis__portrait { width: 40px; height: 40px; border-radius: var(--r-pill); flex: none; overflow: hidden; }
.avis__portrait img { width: 100%; height: 100%; object-fit: cover; }
.avis__qui { display: grid; min-width: 0; }
.avis__av { width: 40px; height: 40px; border-radius: var(--r-pill); flex: none; display: grid; place-items: center; background:var(--marque);--sur-bande:var(--sur-marque); color:var(--sur-bande,var(--sur-marque)); font-family: var(--f-titre); font-size: 15px; }
.avis__nom { font-size: 14px; font-weight: 500; }
.avis__role { font-size: 12px; color: var(--encre-fonce-faible); }

.reas { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 48px; }
.reas > * { min-width: 0; }
.rea-une { flex: 1 1 56%; min-width: min(100%, 300px); position: relative; }
.rea-une .frame { aspect-ratio: 4 / 3; min-height: 260px; border-radius: var(--r-card-lg); }
.rea-une__pave {
  position: absolute; inset-inline: 20px; bottom: 20px;
  display: flex; align-items: flex-end; justify-content: space-between; gap: 16px;
  padding: 18px; border-radius: var(--r-card); background: var(--fond);
}
.rea-une__rond { width: 46px; height: 46px; flex: none; border-radius: var(--r-pill); background:var(--marque);--sur-bande:var(--sur-marque); color:var(--sur-bande,var(--sur-marque)); display: grid; place-items: center; }
.rea-liste { flex: 1 1 34%; min-width: min(100%, 280px); display: flex; flex-direction: column; gap: 16px; }
.rea { display: flex; gap: 14px; padding: 12px; border-radius: var(--r-card); border: 1px solid var(--bordure); background: var(--fond); }
.rea .frame { width: 110px; height: 90px; min-height: 90px; flex: none; border-radius: var(--r-img); padding: 6px; font-size: 11px; }
.rea__corps { min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 6px; }

.faq { display: grid; gap: 12px; margin-top: 44px; }
.faq-item { border: 1px solid var(--bordure); border-radius: var(--r-card); background: var(--fond); padding: 20px 24px; }
.faq-item summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 18px;
  font-family: var(--f-titre); font-size: 17px; font-weight: 500; color: var(--texte);
}
.faq-item__num { font-family: var(--f-titre); font-size: 12px; letter-spacing: .18em; color: var(--texte-doux); flex: none; margin-right: 16px; }
.faq-item__q { flex: 1; min-width: 0; overflow-wrap: anywhere; }

.faq-item[open] .faq-item__num { color: var(--texte); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: "+"; flex: none; width: 30px; height: 30px; border-radius: var(--r-pill);
  background: var(--fond-2); color: var(--texte);
  display: grid; place-items: center; font-size: 18px; transition: transform .22s ease;
}
.faq-item[open] summary::after { transform: rotate(45deg); background:var(--marque);--sur-bande:var(--sur-marque); color:var(--sur-bande,var(--sur-marque)); }
.faq-item p { margin-top: 14px; color: var(--texte-doux); }

.faq-encart { margin-top: 28px; padding: 28px; }
.faq-encart h4 { font-family: var(--f-titre); font-size: 20px; line-height: 1.25; }

.liens { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 40px; }
.liens > * { min-width: 0; }
.lien-card { flex: 1 1 30%; min-width: min(100%, 260px); display: flex; flex-direction: column; gap: 10px; padding: 22px; border-radius: var(--r-card); border: 1px solid var(--bordure); background: var(--fond); transition: transform .25s ease; }
.lien-card:hover { transform: translateY(-3px); }
.lien-card__img { margin: -22px -22px 6px; }
.lien-card__img > .frame { height: 150px; min-height: 150px; border-radius: var(--r-card) var(--r-card) 0 0; }
.lien-card__meta { margin-top: auto; padding-top: 12px; font-size: 13px; color: var(--texte-doux); display: inline-flex; align-items: center; gap: 8px; }

.cta { position: relative; isolation: isolate; overflow: hidden; border-radius: var(--r-card-lg); padding: clamp(40px, 6vw, 72px); background: var(--accent-bande, var(--accent)); color: var(--sur-fonce); }
.cta__bg { position: absolute; inset: 0; z-index: -2; }
.cta__bg img { width: 100%; height: 100%; object-fit: cover; }
.cta__voile { position: absolute; inset: 0; z-index: -1; background: color-mix(in srgb, var(--accent) 86%, transparent); }
.cta__grille { display: flex; flex-wrap: wrap; gap: 32px; align-items: center; justify-content: space-between; }
.cta__txt { flex: 1 1 52%; min-width: min(100%, 300px); }
.cta__form { flex: 1 1 36%; min-width: min(100%, 280px); }

.urgence {
  position: relative; overflow: hidden;
  display: flex; flex-wrap: wrap; gap: 32px; align-items: center;
  padding: clamp(28px, 4vw, 52px); border-radius: var(--r-card-lg);
  background: var(--accent-bande, var(--accent)); color: var(--sur-fonce);
}
.urgence > * { min-width: 0; }
.urgence__halo { position: absolute; right: -60px; top: -60px; width: 320px; height: 320px; border-radius: var(--r-pill); background: color-mix(in srgb, var(--marque) 30%, transparent); filter: blur(34px); }
.urgence__txt { position: relative; flex: 1 1 52%; min-width: min(100%, 300px); }
.urgence__txt h2, .urgence__txt .h2 { color: var(--sur-fonce); }
.urgence__txt .body { color: var(--encre-fonce-doux); }
.urgence__txt .sur-titre { color: var(--encre-fonce-faible); }
.urgence__txt .puces li { color: var(--encre-fonce-doux); }
.urgence__pave {
  position: relative; flex: 1 1 30%; min-width: min(100%, 260px);
  padding: 30px; border-radius: var(--r-card);
  background: var(--verre); border: 1px solid var(--trait-fonce);
}
.urgence__tel { display: inline-block; font-family: var(--f-titre); font-size: clamp(26px, 3vw, 40px); font-weight: 500; line-height: 1.05; color: var(--sur-fonce); overflow-wrap: anywhere; }

.contact { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; margin-top: 44px; }
.contact > * { min-width: 0; }
.contact__form { flex: 1 1 55%; min-width: min(100%, 320px); }
.contact__col { flex: 1 1 32%; min-width: min(100%, 280px); display: grid; gap: 16px; }

.champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 8px; }
.champ { min-width: 0; display: grid; gap: 7px; font-size: 13px; color: var(--texte-doux); }

.champ--long, .champs > .champs__pied { grid-column: 1 / -1; }
.champs__pied { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.champ input, .champ textarea {
  font: inherit; font-size: 15px; color: var(--texte);
  padding: 13px 16px; border-radius: var(--r-card); border: 1px solid var(--bordure); background: var(--fond);
}
.champ textarea { min-height: 130px; resize: vertical; }
.cta .champ { color: var(--encre-fonce-doux); }
.cta .champ input, .cta .champ textarea { background: var(--verre); border-color: var(--trait-fonce); color: var(--sur-fonce); }

.art__hero { padding-top: 150px; padding-bottom: 40px; background: var(--fond-2); }
.art { display: flex; flex-wrap: wrap; gap: 44px; align-items: flex-start; margin-top: 44px; }
.art > * { min-width: 0; }
.art__som { flex: 1 1 26%; min-width: min(100%, 250px); position: sticky; top: 100px; padding: 22px; border-radius: var(--r-card-lg); border: 1px solid var(--bordure); background: var(--fond-2); }
.art__som ol { margin: 12px 0 0; padding-left: 18px; display: grid; gap: 9px; font-size: 14px; color: var(--texte-doux); }
.art__corps { flex: 1 1 62%; min-width: min(100%, 300px); }
.art__corps h2 { margin-top: 44px; }
.art__corps h3 { margin-top: 32px; }
.art__corps p { margin-top: 16px; color: var(--texte-doux); }
.art__corps ul { margin-top: 16px; padding-left: 20px; color: var(--texte-doux); display: grid; gap: 9px; }
.art__encadre { margin-top: 28px; padding: 24px; border-radius: var(--r-card); background: var(--fond-2); border-left: 4px solid var(--marque); }
.art__corps .frame { margin-top: 28px; min-height: 300px; border-radius: var(--r-card-lg); }

.legal-sec { padding-top: 150px; }
.legal { max-width: 760px; margin-inline: auto; display: grid; gap: 40px; }
.legal__tete { padding-bottom: 8px; }
.legal__maj { margin-top: 14px; }
.legal__bloc { display: flex; gap: 20px; align-items: flex-start; }
.legal__bloc > * { min-width: 0; }
.legal__corps { flex: 1; min-width: 0; }
.legal__bloc h2 { font-size: clamp(20px, 2vw, 26px); }
.legal__bloc p { margin-top: 14px; color: var(--texte-doux); }

.fil { padding-top: 130px; }
.fil__chaine { display: flex; flex-wrap: wrap; align-items: baseline; font-size: 12px; text-transform: uppercase; letter-spacing: .18em; color: var(--texte-doux); }
.fil__pas { display: inline-flex; align-items: baseline; min-width: 0; overflow-wrap: anywhere; }
.fil__sep { margin-inline: 10px; opacity: .45; }
.fil__ici { color: var(--texte); }
.fil a:hover { color:var(--encre-marque,var(--marque)); }

.footer { background: var(--accent-bande, var(--accent)); color: var(--sur-fonce); padding-block: 80px 32px; }
.footer h4 { color: var(--sur-fonce); }
.footer a { color: var(--encre-fonce-doux); }
.footer a:hover { color:var(--encre-marque,var(--marque)); }

.footer__grille { display: flex; flex-wrap: wrap; gap: 40px; }
.footer__grille > * { min-width: 0; }
.footer__marque-col { flex: 1 1 40%; min-width: min(100%, 300px); }
.footer__col { flex: 1 1 22%; min-width: min(100%, 180px); }
.footer__marque { display: inline-flex; align-items: center; gap: 10px; font-family: var(--f-titre); font-size: 20px; color: var(--sur-fonce); margin-bottom: 16px; }
.footer__phrase { font-family: var(--f-titre); font-size: clamp(20px, 2.4vw, 28px); font-weight: 400; line-height: 1.25; color: var(--sur-fonce); max-width: 30ch; }
.footer .body { color: var(--encre-fonce-doux); }
.footer .sur-titre { color: var(--encre-fonce-faible); }
.footer__liste { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 10px; font-size: 14px; }
.footer__nap { margin-top: 32px; }
.footer__nap-grille { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: 14px; }
.footer__nap-case { flex: 1 1 40%; min-width: min(100%, 200px); font-size: 14px; color: var(--encre-fonce-doux); overflow-wrap: anywhere; }
.footer__bas { margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--trait-fonce); display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; font-size: 13px; color: var(--encre-fonce-faible); }
.footer__bas-liens { display: flex; flex-wrap: wrap; gap: 20px; }

.abs { display: flex; flex-wrap: wrap; gap: 32px; margin-top: 40px; }
.ab-cas { flex: 0 1 44%; max-width: calc(50% - 12px); min-width: min(100%, 300px); margin: 0; } 
.ab-cas__repere { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.ab__titre { min-width: 0; }
.ab-cas__texte { margin-top: 10px; }
.ab { position: relative; --pos: 50%; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--r-card-lg); touch-action: pan-y; margin-top: 20px; }
.ab__vue { position: absolute; inset: 0; }
.ab__vue .frame { width: 100%; height: 100%; border-radius: 0; min-height: 0; }
.ab__vue--avant { clip-path: inset(0 calc(100% - var(--pos)) 0 0); z-index: 2; }

.ab__barre { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; margin-left: -1px; background: var(--fond); z-index: 3; }
.ab__lab { position: absolute; top: 50%; z-index: 4; margin-top: -13px; padding: 7px 15px; border-radius: var(--r-pill); font-size: 12px; font-weight: 500; white-space: nowrap; text-transform: uppercase; letter-spacing: .06em; background: var(--fond); color: var(--texte); }
.ab__lab--avant { right: 34px; }
.ab__lab--apres { left: 34px; background:var(--marque);--sur-bande:var(--sur-marque); color:var(--sur-bande,var(--sur-marque)); }
.ab__poignee {
  position: absolute; top: 50%; left: 1px; z-index: 4;
  width: 44px; height: 44px; margin: -22px 0 0 -22px;
  border-radius: var(--r-pill); background: var(--fond); color: var(--texte);
  display: grid; place-items: center; font-size: 15px;
  box-shadow: 0 8px 24px color-mix(in srgb, var(--accent) 30%, transparent);
}
.ab__range { position: absolute; inset: 0; z-index: 5; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; -webkit-appearance: none; appearance: none; background: transparent; }

.ab__range::-webkit-slider-thumb { -webkit-appearance: none; width: 2px; height: 100%; cursor: ew-resize; }
.ab__range::-moz-range-thumb { width: 2px; height: 100%; border: 0; background: transparent; cursor: ew-resize; }
.ab__range:focus-visible { opacity: 1; outline: 3px solid var(--marque); outline-offset: 3px; }

.fac { display: flex; flex-wrap: wrap; gap: 12px; }
.fac__i {
  display: inline-flex; align-items: center; gap: 12px; min-width: 0;
  padding: 12px 22px 12px 12px; border-radius: var(--r-pill);
  border: 1px solid var(--bordure); background: var(--fond);
  color: var(--texte); font-size: 15px; font-weight: 500;
}
.fac__i .num { flex: none; }
a.fac__i:hover { border-color:var(--encre-marque,var(--marque)); }
.fac__i--ici { background:var(--marque);--sur-bande:var(--sur-marque); border-color:var(--encre-marque,var(--marque)); color:var(--sur-bande,var(--sur-marque)); font-weight: 700; }
.fac__i--ici .num { background: var(--sur-marque); color:var(--encre-marque,var(--marque)); }

.prod__prix { margin-top: 4px; }
.prod__chiffre { font-family: var(--f-titre); font-size: 30px; line-height: 1.1; margin-top: 4px; }
.prod__chiffre--grand { font-size: 42px; }
.prod .svc__lien { padding-top: 16px; }

.specs { margin: 0; }
.spec { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 26px; }
.spec__v { margin: 0; font-family: var(--f-titre); font-size: 26px; line-height: 1.15; min-width: 0; }
.spec__l { color: var(--texte-doux); font-size: 14px; text-transform: uppercase; letter-spacing: .12em; min-width: 0; }

@media (max-width: 1080px) {
  .hero__inner { padding-block: 120px 44px; }
  .bloc { gap: 28px; }
}

@media (max-width: 900px) {
  
  .b2b { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  
  .hd__bascule { display: flex; }
  .hd__nav { display: none; position: absolute; top: 100%; left: 16px; right: 16px;
    flex-direction: column; align-items: stretch; gap: 2px; padding: 12px;
    border-radius: var(--r-card-lg); background: var(--fond); border: 1px solid var(--bordure);
    box-shadow: var(--ombre); max-height: calc(100vh - 110px); overflow-y: auto; }
  .hd--ouvert .hd__nav { display: flex; }
  .hd:has(+ .hero):not(.is-scrolle) .hd__nav { background: var(--fond); border-color: var(--bordure); }
  .hd:has(+ .hero):not(.is-scrolle) .hd__nav .hd__lien { color: var(--texte); }
  .drop { position: static; }
  .drop__chev { display: none; }
  .drop__panneau { position: static; opacity: 1; visibility: visible; transform: none;
    min-width: 0; padding: 0 0 4px 12px; }
  .drop__grille { display: block; background: none; border: 0; box-shadow: none; padding: 0;
    min-width: 0; max-width: none; }
  .drop__liste { background: none; border: 0; box-shadow: none; padding: 0; }
  
  .drop__vit { display: none; }
  .art__som { position: static; }
  .avis { width: 300px; }
  
  .intro__g { position: static; top: auto; }
}

@media (max-width: 640px) {
  .b2b, .champs { grid-template-columns: minmax(0, 1fr); }
  
  .sec { padding-block: 56px; }
  .hero__inner { padding-block: 104px 40px; }
  .hero__grille, .bloc, .tete, .intro, .contact, .cta__grille, .urgence, .art, .footer__grille { gap: 24px; }
  .hero__txt, .hero__carte, .bloc__txt, .bloc .frame, .tete__g, .tete__d,
  .intro__g, .intro__d, .urgence__txt, .urgence__pave, .zone-ligne,
  .footer__marque-col, .footer__col, .footer__nap-case, .contact__form, .contact__col,
  .cta__txt, .cta__form, .art__som, .art__corps, .rea-une, .rea-liste { flex-basis: 100%; }
  .cta { padding: 32px 24px; }
  .rea-une__pave { position: static; inset: auto; margin-top: 12px; }
  
  .loc__vue { padding-bottom: 0; }
  .loc__carte { position: static; inset: auto; margin-top: 12px; }
  .footer__bas { flex-direction: column; }
}

@media (max-width: 860px) {
  .hero__socle { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 430px) {
  .hero__socle { grid-template-columns: minmax(0, 1fr); }
  .rea { flex-direction: column; }
  .rea .frame { width: 100%; height: 140px; min-height: 140px; }
}

.carte, .svc, .etape, .b2b__carte, .loc__carte, .mat__vig, .rea__corps,
.lien-card, .faq-item, .spec, .chiffres-panneau { border-radius: 12px; }
.chip, .fac__i, .avis__etoiles { border-radius: 11px; }

.chips li, .loc__chips li, .eyebrow, .btn--fantome { border-radius: 100px; }
.svc__num, .etape__haut .num, .b2b__num, .avis__av, .faq-item__num { border-radius: 100%; }

.zone-ligne, .fil__pas, .spec__l, .avis__cite { border-radius: 2px 0 0 2px; }

.hero__voile, .cta__voile { background: color-mix(in srgb, var(--texte) 44%, transparent); }

.carte, .svc { box-shadow: 0 1px 2px 0 color-mix(in srgb, var(--texte) 25%, transparent); }

.carte { position: relative; }
.carte::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--texte) 10%, transparent);
}
.svc { position: relative; }
.svc::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--texte) 8%, transparent);
}
.etape { position: relative; }
.etape::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--texte) 7%, transparent);
}
.mat__vig { position: relative; }
.mat__vig::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--texte) 7%, transparent);
}

.hero__bg {
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 65%, #000 100%);
  mask-image: linear-gradient(180deg, transparent 0, #000 65%, #000 100%);
}
.chiffres__vue {
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 60%, #000 100%);
  mask-image: linear-gradient(180deg, transparent 0, #000 60%, #000 100%);
}

@media (max-width: 480px) {
  .hd__cta, .actes { flex: 1 1 auto; min-width: 0; gap: 8px; justify-content: flex-end; }
  .hd__cta .btn { min-width: 0; padding-inline: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .hd__cta .btn__fleche { display: none; }
  
  .hd__cta .btn--fantome { display: none; }
  .hd__cta, .actes { flex-wrap: nowrap; }
}

.frame { min-width: 0; max-width: 100%; box-sizing: border-box; }
.frame > * { min-width: 0; max-width: 100%; }

:root {
  --cadre-vide-fond: #e6e9ec;
  --cadre-vide-trame: rgba(0, 0, 0, .045);
  --cadre-vide-encre: rgba(17, 22, 28, .68);
  --cadre-vide-filet: rgba(0, 0, 0, .10);
}

[data-slot]:not(:has(img)):not(:has(video)) {
  background-color: var(--cadre-vide-fond);
  
  background-image: repeating-linear-gradient(135deg,
    transparent 0 13px, var(--cadre-vide-trame) 13px 14px);
  box-shadow: inset 0 0 0 1px var(--cadre-vide-filet);
  color: var(--cadre-vide-encre);
  
  container-type: inline-size;
}

[data-slot]:not(:has(img)):not(:has(video)) > * {
  font-size: 0 !important;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--cadre-vide-encre);
  -webkit-text-fill-color: var(--cadre-vide-encre);
  opacity: 1;
  max-width: 34ch;
  text-align: center;
  text-shadow: none;
}

@container (min-width: 260px) {
  [data-slot]:not(:has(img)):not(:has(video)) > * {
    font-size: clamp(11px, .95vw, 14px) !important;
  }
}

[data-slot="drop__vitPh"]:not(:has(img)):not(:has(video)) {
  --cadre-vide-fond: #0d0d0d;
  --cadre-vide-trame: rgba(255, 255, 255, .05);
  --cadre-vide-encre: rgba(255, 255, 255, .82);
  --cadre-vide-filet: rgba(255, 255, 255, .10);
}
[data-slot="drop__vitPh"]:not(:has(img)):not(:has(video)) > * {
  font-size: 0 !important;
}
[data-slot="frame--hro"]:not(:has(img)):not(:has(video)) {
  --cadre-vide-fond: #0d0d0d;
  --cadre-vide-trame: rgba(255, 255, 255, .05);
  --cadre-vide-encre: rgba(255, 255, 255, .82);
  --cadre-vide-filet: rgba(255, 255, 255, .10);
}
[data-slot="frame--hro"]:not(:has(img)):not(:has(video)) > * {
  font-size: 0 !important;
}

.sec--fonce .avis__etoiles { color: var(--sur-fonce); } 

.urgence .btn--fantome { color: var(--sur-fonce); border-color: var(--trait-fonce); }
.urgence .btn--fantome .btn__fleche { background: var(--sur-fonce); color: var(--accent); }

.fac__i--ici .num { color: var(--encre-marque-pastille, var(--marque)); }

.g3 > * { flex-grow: 0 !important; }
.g2 > * { flex: 0 1 calc(33.333% - 20px) !important; min-width: min(240px, 100%) !important; }

.zx-brandlogo{height:1.7em;width:auto;max-height:40px;vertical-align:middle;margin-right:.5em;object-fit:contain;border-radius:6px;flex:0 0 auto}
header [data-cta-devis="clone"],header [data-cta-tel="clone"]{white-space:nowrap;flex:0 0 auto}
header:has([data-cta-devis="clone"]),header:has([data-cta-tel="clone"]){gap:16px}
header:has([data-cta-devis="clone"]) nav,header:has([data-cta-tel="clone"]) nav{gap:18px}
header [data-cta-devis="clone"]{margin-left:8px;padding-inline:16px}
@media (max-width:480px){header [data-cta-devis="clone"]{display:none}}
.zx-send{display:inline-block;margin-top:.6rem;padding:.85em 1.7em;border:0;border-radius:8px;background:var(--accent,var(--marque,#141414));color:var(--sur-marque,#fff);font:inherit;font-weight:700;line-height:1;cursor:pointer}
.zx-send:hover{filter:brightness(1.08)}
.zx-marques{padding:1.5rem 1rem;background:var(--fond,#f6f6f6);border-top:1px solid rgba(0,0,0,.06);border-bottom:1px solid rgba(0,0,0,.06)}
.zx-marques__in{max-width:1100px;margin:0 auto;text-align:center}
.zx-marques__t{margin:0 0 .9rem;font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--texte,#333);opacity:.55}
.zx-marques__u{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.6rem 2.4rem}
.zx-marques__u img{height:34px;width:auto;object-fit:contain;filter:grayscale(1);opacity:.7;transition:.2s}
.zx-marques__u img:hover{filter:none;opacity:1}
.zx-marques__u span{font-weight:700;color:var(--texte,#333);opacity:.55}
.zx-certs{padding:3rem 1rem;background:var(--sur-marque,#fff)}
.zx-certs__in{max-width:1100px;margin:0 auto}
.zx-certs__e{margin:0 0 .3rem;font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--encre-accent,var(--accent,#c62828));font-weight:700}
.zx-certs__h{margin:0 0 1.6rem;font-size:1.9rem;color:var(--texte,#1a1a1a)}
.zx-certs__u{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.1rem}
.zx-certs__i{display:flex;gap:.8rem;align-items:flex-start;padding:1.1rem;background:var(--fond,#f7f7f7);border-radius:12px}
.zx-certs__ic{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--accent,#c62828);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700}
.zx-certs__t{margin:0 0 .2rem;font-weight:700;color:var(--texte,#1a1a1a)}
.zx-certs__x{margin:0;font-size:.9rem;line-height:1.4;color:var(--texte,#555);opacity:.8}
.zx-certs__lg{flex:0 0 auto;width:auto;max-width:150px;height:60px;object-fit:contain;background:#fff;border-radius:8px;padding:6px;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.zx-mesh{padding:2.6rem 1rem;background:var(--fond-2,#f6f6f4)}
.zx-mesh__in{max-width:1100px;margin:0 auto}
.zx-bc{max-width:1200px;margin:0 auto;padding:.5rem 1rem;font-size:.85rem}.zx-bc__ol{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0}.zx-bc__ol li+li::before{content:"›";margin-right:.35rem;opacity:.6}.zx-bc a{color:inherit;text-decoration:underline}
.zx-mesh__e{margin:0 0 .3rem;font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--encre-accent,var(--accent,#c62828));font-weight:700}
.zx-mesh__in--suite{margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--bordure,rgba(0,0,0,.08))}
[class$="__chev"],[class$="__chevron"],[class*="__chev "],[class*="__chevron "]{font-size:14px!important;line-height:1;opacity:.9!important;vertical-align:middle}
.zx-mesh__h{margin:0 0 1rem;font-size:1.5rem;color:var(--texte,#1a1a1a)}
.zx-mesh__u{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.5rem 1.4rem}
.zx-mesh__u a{color:var(--texte,#1a1a1a);text-decoration:underline;text-underline-offset:3px;font-size:.98rem}
.zx-mesh__u a:hover{color:var(--encre-marque,var(--marque,#1a1a1a))}
@media (max-width:480px){header a[href^="tel:"] .zx-tel-num{display:none}}

[data-role="avantApres"] :has(> figure:nth-child(2)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
[data-role="avantApres"] :has(> figure:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}
[data-role="avantApres"] :has(> figure:nth-child(4)){display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding-bottom:8px}
[data-role="avantApres"] :has(> figure:nth-child(4)) > figure{flex:0 0 calc((100% - 48px)/3);min-width:280px;scroll-snap-align:start}
[data-role="avantApres"] :has(> figure:nth-child(2)) > figure{margin:0;min-width:0;max-width:none;flex-basis:auto}
@media (max-width:900px){[data-role="avantApres"] :has(> figure:nth-child(3)){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){[data-role="avantApres"] :has(> figure:nth-child(2)){grid-template-columns:minmax(0,1fr)}}

html,body{overflow-x:clip;max-width:100%}
img,video,iframe,table,svg{max-width:100%}

.sec--alt,
.carte,
.chip,
.frame,
.hd__mark,
.hd__nav,
.hd__lien:hover,
.hd__bascule,
.drop__grille,
.drop__liste a:hover,
.b2b__carte,
.zone-ligne,
.zone-ligne:hover,
.chiffre,
.loc__carte,
.rea-une__pave,
.rea,
.faq-item,
.faq-item summary::after,
.lien-card,
.champ input,
.champ textarea,
.art__hero,
.art__som,
.art__encadre,
.ab__barre,
.ab__lab,
.ab__poignee,
.fac__i,
.hd:has(+ .hero):not(.is-scrolle) .hd__nav,
.zx-certs__lg { --texte-doux: var(--texte-doux-sol, var(--texte-doux)); --encre-accent: var(--encre-accent-sol, var(--accent)); color: var(--texte) }

.btn--fantome .btn__fleche { --texte-doux: var(--texte-doux-inverse); --encre-accent: var(--encre-accent-inverse, var(--accent)); --encre-marque: var(--fond); color: var(--fond) }

.eyebrow,
.sec--fonce .eyebrow::before,
.cta .eyebrow::before,
.num,
.puces li::before,
.avis__av,
.rea-une__rond,
.faq-item[open] summary::after,
.ab__lab--apres,
.fac__i--ici { --texte-doux: var(--texte-doux-sur-marque, var(--sur-marque)); --encre-accent: var(--encre-accent-inverse, var(--sur-marque)); --encre-marque: var(--sur-marque) }

.zx-sur{color:var(--encre-accent,var(--accent))}

/* === PLANCHER DE CONTRASTE (factory) — filet mesuré : encre garantie sur le fond réel === */
body section.sec.sec--fonce > div.vz-wrap > div.tete > div.tete__g > h2 > span.hero__accent{color:rgb(255,255,255)!important}
body article.avis.carte.carte--verre:nth-child(3) > div.avis__pied > span.avis__qui > span.avis__nom{color:rgb(255,255,255)!important}
body article.avis.carte.carte--verre:nth-child(1) > div.avis__pied > span.avis__qui > span.avis__nom{color:rgb(255,255,255)!important}
body article.avis.carte.carte--verre:nth-child(2) > div.avis__pied > span.avis__qui > span.avis__nom{color:rgb(255,255,255)!important}
body article.avis.carte.carte--verre:nth-child(4) > div.avis__pied > span.avis__qui > span.avis__nom{color:rgb(255,255,255)!important}
/* fin plancher */
