

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: auto; }

body {
  margin: 0;
  background: var(--fond);
  color: var(--texte);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 18px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { margin: 0; padding: 0; list-style: none; }

h1, h2, h3, h4 {
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 800;
  margin: 0;
  letter-spacing: -.035em;
  line-height: 1.06;
}
h1 { font-size: clamp(38px, 5.4vw, 80px); }
h2 { font-size: clamp(30px, 3.9vw, 56px); line-height: 1.12; }

h1[data-rang="2"] { font-size: clamp(30px, 3.9vw, 56px); }
h3 { font-size: 24px; line-height: 1.2; letter-spacing: -.02em; }
h4 { font-size: 16px; letter-spacing: -.01em; }

.body { color: var(--texte-doux); margin: 0; }
.body--just { text-align: justify; }

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

.section { padding: 120px 0; }
.section--court { padding: 60px 0; }
.section--doux { background: var(--fond-2); }

.section--sombre { background:var(--texte);--sur-bande:var(--sur-texte,var(--fond)); color: var(--fond); }
.section--sombre h2, .section--sombre h3 { color: var(--fond); }
.section--sombre h2 span { color: var(--encre-accent, var(--accent))!important; }
.section--sombre .body { color: var(--fond); opacity: .68; }
.section--sombre .eyebrow { color: var(--encre-accent, var(--accent)); }

.tete { max-width: 720px; margin-bottom: 56px; }
.tete--centre { margin-left: auto; margin-right: auto; text-align: center; }
.tete--large { max-width: 900px; }

.eyebrow {
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color:var(--encre-marque,var(--marque));
  margin: 0 0 14px;
}

.eyebrow--pill {
  display: inline-block;
  padding: 8px 18px;
  border-radius: 999px;
  background: var(--fond-2);
  border: 1px solid var(--bordure);
  color:var(--encre-marque,var(--marque));
  margin-bottom: 20px;
}
.section--sombre .eyebrow--pill { background: transparent; border-color: rgba(255,255,255,.18); color: var(--accent-clair, var(--fond)); } 

.btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 26px;
  border-radius: 999px;
  background: var(--accent);
  color: var(--sur-accent, var(--texte)); 
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: -.01em;
  border: 1px solid transparent;
  transition: transform .18s ease, box-shadow .18s ease;
}
.btn:hover { transform: translateY(-2px); box-shadow: 0 12px 26px -12px rgba(0,0,0,.45); }
.btn__fl {
  width: 22px; height: 22px;
  display: inline-grid; place-items: center;
  border-radius: 999px;
  background:var(--texte);--sur-bande:var(--sur-texte,var(--fond));
  color: var(--accent);
  font-size: 11px;
}
.btn--marque { background:var(--marque);--sur-bande:var(--sur-marque); color:var(--sur-bande,var(--sur-marque)); }
.btn--marque .btn__fl { background: var(--sur-marque); color:var(--encre-marque,var(--marque)); }
.btn--plat {
  border-radius: 10px;
  background: var(--fond);
  color: var(--texte);
  border-color: var(--bordure);
  padding: 13px 20px;
}
.btn--plat .btn__fl { background:var(--marque);--sur-bande:var(--sur-marque); color:var(--sur-bande,var(--sur-marque)); }
.btn--clair { background: var(--fond); color: var(--texte); }
.btn--clair .btn__fl { background:var(--marque);--sur-bande:var(--sur-marque); color:var(--sur-bande,var(--sur-marque)); }

.frame {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  background: var(--fond-2);
  min-height: 220px;
  display: flex; align-items: center; justify-content: center;
  text-align: center;
  color: var(--texte-doux);
  font-size: 13px;
  padding: 12px;
}
.frame img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.frame--grand { border-radius: 31px; min-height: 420px; }
.frame--rond { border-radius: 999px; }

.pills { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.pill {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 16px;
  border-radius: 999px;
  border: 1px solid var(--bordure);
  background: var(--fond);
  font-size: 14px;
  color: var(--texte-doux);
  color: var(--texte);
}
.pill__p { width: 7px; height: 7px; border-radius: 999px; background: var(--accent); flex: 0 0 auto; }
.section--sombre .pill { background: transparent; border-color: rgba(255,255,255,.2); color: var(--fond); }

.puces li {
  position: relative;
  padding-left: 30px;
  margin-bottom: 12px;
  color: var(--texte-doux);
  font-size: 16px;
}
.puces li::before {
  content: '';
  position: absolute; left: 0; top: 8px;
  width: 16px; height: 16px;
  border-radius: 999px;
  background: var(--accent);
  box-shadow: inset 0 0 0 4px var(--fond);
}
.section--sombre .puces li { color: var(--fond); }
.section--sombre .puces li::before { box-shadow: inset 0 0 0 4px var(--texte); }

.gr { display: grid; gap: 24px; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); }
.gr > * { min-width: 0; }
.gr--2 { --n: 2; }
.gr--3 { --n: 3; }
.gr--4 { --n: 4; }
.gr--6 { --n: 6; }
@media (max-width: 1200px) {
  .gr--4 { --n: 3; }
  .gr--6 { --n: 4; }
}
@media (max-width: 1000px) {
  .gr--3, .gr--4 { --n: 2; }
  .gr--6 { --n: 3; }
}
@media (max-width: 640px) {
  .gr, .gr--2, .gr--3, .gr--4, .gr--6 { --n: 1; }
}

.duels { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(460px, 100%), 1fr)); gap: 40px; }

.carte {
  background: var(--fond);
  border: 1px solid var(--bordure);
  border-radius: 16px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  transition: box-shadow .2s ease, transform .2s ease;
}
.carte--douce { background: var(--fond-2); border-color: transparent; }
.carte:hover { box-shadow: 0 12px 26px -14px rgba(0,0,0,.22); }
a.carte:hover { transform: translateY(-3px); }
.carte h3 { margin-top: 20px; }
.carte .body { margin-top: 12px; font-size: 16px; }
.carte__fl {
  margin-top: auto;
  padding-top: 22px;
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 700; font-size: 14px;
  color:var(--encre-marque,var(--marque));
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
}

.header {
  position: sticky; top: 0; z-index: 60;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 9px 34px;
  background: var(--fond);
  border-bottom: 1px solid var(--bordure);
}
.header__logo {
  display: flex; align-items: center; gap: 12px;
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 800; font-size: 20px; letter-spacing: -.03em;
  min-width: 0;
}
.header__goutte {
  width: 30px; height: 30px; flex: 0 0 auto;
  border-radius: 999px 999px 999px 4px;
  background:var(--marque);--sur-bande:var(--sur-marque);
  display: inline-block;
}
.header__nav {
  display: flex; align-items: center; gap: 6px;
  padding: 6px;
  border: 1px solid var(--bordure);
  border-radius: 999px;
  background: var(--fond-2);
}
.header__nav > a, .drop__tete {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 18px;
  border-radius: 999px;
  font-size: 15px;
  color: var(--texte-doux);
  white-space: nowrap;
}
.header__nav > a:hover, .drop__tete:hover { color: var(--texte); }
.header__nav > a.is-active, .drop__tete.is-active { background: var(--fond); color: var(--texte); box-shadow: 0 2px 6px -2px rgba(0,0,0,.12); }
.drop { position: relative; }
.drop__chev { font-size: 10px; opacity: .6; }
.drop__panneau {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
  
  padding-top: 14px;
  opacity: 0; visibility: hidden;
  transition: opacity .16s ease;
}
.drop:hover .drop__panneau, .drop:focus-within .drop__panneau { opacity: 1; visibility: visible; }
.drop__grille {
  display: flex; align-items: flex-start; gap: 34px;
  padding: 28px 32px;
  background: var(--fond);
  border: 1px solid var(--bordure);
  border-radius: 16px;
  box-shadow: 0 26px 46px -22px rgba(0,0,0,.3);
  
  width: max-content; min-width: 560px; max-width: min(94vw, 900px);
}
.drop__col { min-width: 190px; flex: 0 0 auto; display: block; }

.drop__vit { flex: 0 0 240px; display: grid; gap: 8px; align-content: start; }
.drop__vitPh { min-height: 0; height: 128px; width: 100%; border-radius: 12px; overflow: hidden; }
.drop__vitPh img { width: 100%; height: 100%; object-fit: cover; }
.drop__vitN { font-size: 16px; line-height: 1.3; color: var(--texte); }
.drop__vitX { font-size: 14px; color: var(--texte-doux); line-height: 1.5; }
.drop__vitZ { font-size: 14px; font-weight: 600; color:var(--encre-marque,var(--marque)); justify-self: start; }
.drop__titre {
  display: block;
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 700; font-size: 12px; letter-spacing: .1em; text-transform: uppercase;
  color:var(--encre-marque,var(--marque)); margin-bottom: 12px;
}
.drop__lien { display: flex; align-items: center; gap: 10px; padding: 7px 0; font-size: 15px; color: var(--texte-doux); }
.drop__lien:hover { color:var(--encre-marque,var(--marque)); }
.header__cta { flex: 0 0 auto; }
@media (max-width: 1100px) {
  .header { flex-wrap: wrap; padding: 16px 20px; }
  .header__nav { order: 3; width: 100%; overflow-x: auto; border-radius: 16px; justify-content: flex-start; }
  .drop__panneau { position: static; transform: none; opacity: 1; visibility: visible; padding-top: 0; display: none; }
  .drop__grille { flex-direction: column; gap: 14px; width: auto; min-width: 0; max-width: none; }
  
  .drop__vit { display: none; }
}

.hero { padding: 0; }
.hero > .wrap { max-width: none; padding: 0; }
.hero__scene {
  position: relative;
  min-height: calc(100vh - var(--entete, 72px));
  border-radius: 0;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  background: var(--fond-2);
}
.hero__scene .frame { position: absolute; inset: 0; border-radius: 0; min-height: 0; }
.hero__voile {
  position: absolute; inset: 0;
  
  background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.62) 62%, rgba(0,0,0,.82) 100%);
}

.hero__texte {
  position: relative;
  width: 100%;
  max-width: calc((1268px - 48px) / 2 + 110px);
  padding: 64px 24px 60px max(24px, calc((100vw - 1268px) / 2 + 24px));
  color: #FFFFFF;
}
.hero__texte h1 { color: #FFFFFF; }

.hero__ac { color: var(--accent-clair, #FFFFFF); }
.hero__sous { color: #FFFFFF; opacity: .86; margin: 22px 0 32px; max-width: 620px; }
.hero__pills .pill { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.28); color: #FFFFFF; }

.hero__b { display: flex; flex-wrap: wrap; gap: 14px; }

.hero__bandeau { background: var(--fond-2); border-bottom: 1px solid var(--bordure); }
.hero__at {
  display: grid; gap: 12px;
  grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr));
  max-width: 1268px; margin: 0 auto; padding: 26px 24px;
}
.hero__at > * { min-width: 0; }
.hero__at .pill {
  display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
  padding: 16px 18px; text-align: left;
  background: var(--fond); border-color: var(--bordure); color: var(--texte);
}
@media (max-width: 1200px) { .hero__at { --n: 2; } }
@media (max-width: 640px) { .hero__at { --n: 1; } }
.hero__at .pill b { font-size: 16px; }
.hero__at .pill span { font-size: 14px; color: var(--texte-doux); }
@media (max-width: 1100px) {
  .hero__texte { max-width: 100%; padding: 48px 24px 44px; }
}
@media (max-width: 760px) {
  .hero__scene { min-height: 520px; }
  .hero__texte { padding: 32px 24px 40px; }
}

.etape { position: relative; }
.etape .frame { min-height: 260px; }
.etape__num {
  position: absolute; top: 16px; left: 16px; z-index: 2;
  width: 46px; height: 46px;
  display: grid; place-items: center;
  border-radius: 999px;
  background: var(--accent);
  color: var(--sur-accent, var(--texte));
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 800; font-size: 17px;
}

.duo { display: flex; flex-wrap: wrap; gap: 48px; align-items: center; }
.duo > * { flex: 1 1 46%; min-width: 0; }

.duo > .duo__col { flex: 1 1 54%; }
.duo > .frame { flex: 0 1 40%; min-width: min(100%, 300px); }
.duo--inv { flex-direction: row-reverse; }
.duo__col { display: flex; flex-direction: column; }
@media (max-width: 900px) {
  .duo { gap: 34px; }
  .duo > * { flex: 1 1 100%; }
  .duo--inv { flex-direction: row; }
}

.ab {
  position: relative;
  border-radius: 31px;
  overflow: hidden;
  min-height: 520px;
  background: var(--fond-2);
  touch-action: pan-y;
}
.ab__vue { position: absolute; inset: 0; }
.ab__vue .frame { position: absolute; inset: 0; border-radius: 0; min-height: 0; }
.ab__vue--avant { clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.ab__lab {
  position: absolute; bottom: 24px; z-index: 3;
  padding: 9px 18px;
  border-radius: 999px;
  font-size: 14px; font-weight: 700;
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  background: var(--fond); color: var(--texte);
}
.ab__lab--avant { left: 24px; }
.ab__lab--apres { right: 24px; background: var(--accent); color: var(--sur-accent, var(--texte)); } 
.ab__barre {
  position: absolute; top: 0; bottom: 0; z-index: 3;
  left: var(--pos);
  width: 3px; margin-left: -1.5px;
  background: var(--fond);
  pointer-events: none;
}
.ab__poignee {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 54px; height: 54px;
  display: grid; place-items: center;
  border-radius: 999px;
  background: var(--fond); color: var(--texte);
  font-size: 18px;
  box-shadow: 0 10px 26px -10px rgba(0,0,0,.5);
}
.ab__range {
  position: absolute; inset: 0; z-index: 4;
  width: 100%; height: 100%;
  margin: 0; padding: 0;
  opacity: 0; cursor: ew-resize;
  -webkit-appearance: none; appearance: none;
  background: transparent;
}
.ab__range:focus-visible + .ab__barre .ab__poignee { box-shadow: 0 0 0 4px var(--marque); }
.ab__pied { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; margin-top: 28px; }

.ab__pied > * { flex: 1 1 46%; min-width: min(100%, 240px); }
@media (max-width: 760px) { .ab { min-height: 380px; } }

.marquee { overflow: hidden; padding: 34px 0; border-top: 1px solid var(--bordure); border-bottom: 1px solid var(--bordure); }
.marquee__piste { display: flex; gap: 64px; white-space: nowrap; animation: defile 26s linear infinite; min-width: 0; }
.marquee__item {
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 800; font-size: 22px; letter-spacing: -.02em;
  color: var(--texte-doux); opacity: .5;
}
@keyframes defile { to { transform: translateX(-50%); } }

.bande {
  display: flex; flex-wrap: wrap;
  border: 1px solid var(--bordure);
  border-radius: 16px;
  overflow: hidden;
  background: var(--fond);
}
.bande > * { flex: 0 1 25%; min-width: min(100%, 220px); padding: 34px 30px; border-left: 1px solid var(--bordure); } 
.bande > *:first-child { border-left: 0; }
.chiffre b {
  display: block;
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 800; font-size: 46px; line-height: 1; letter-spacing: -.04em;
  color:var(--encre-marque,var(--marque));
}
.chiffre span { display: block; margin-top: 10px; font-size: 15px; color: var(--texte-doux); }

.prix {
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 800; font-size: 42px; line-height: 1; letter-spacing: -.04em;
  color: var(--texte); margin: 14px 0 0;
}

.prix__u { display: block; margin: 8px 0 0; font-size: 14px; color: var(--texte-doux); }
.tarif__x { margin-top: auto; padding-top: 24px; }

.filtre { display: flex; flex-wrap: wrap; gap: 26px 44px; align-items: flex-end; }
.filtre > * { min-width: 0; }
.filtre__g { flex: 1 1 300px; }
.filtre__d { flex: 2 1 420px; display: flex; flex-wrap: wrap; gap: 10px; }
.filtre__l {
  display: inline-flex; align-items: center; max-width: 100%;
  padding: 11px 20px; border-radius: 999px;
  border: 1px solid var(--bordure); background: var(--fond);
  font-size: 15px; color: var(--texte); text-decoration: none;
  overflow-wrap: anywhere;
}
.filtre__l:hover { border-color:var(--encre-marque,var(--marque)); color:var(--encre-marque,var(--marque)); }
.filtre__l--ici { background:var(--marque);--sur-bande:var(--sur-marque); border-color:var(--encre-marque,var(--marque)); color:var(--sur-bande,var(--sur-marque)); }

.prod__x {
  display: flex; flex-wrap: wrap; gap: 14px 20px;
  align-items: flex-end; justify-content: space-between;
  margin-top: auto; padding-top: 24px;
}
.prod__x > * { min-width: 0; }

.prod__p { flex: 1 1 100%; }
.prix--menu { font-size: 30px; margin-top: 10px; }
.carac__v {
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 800; font-size: 26px; line-height: 1.1; letter-spacing: -.03em;
  color: var(--texte); margin-top: 12px; overflow-wrap: anywhere;
}
.duo--haut { align-items: flex-start; }

.btn { max-width: 100%; flex-wrap: wrap; overflow-wrap: anywhere; }

.sect { display: flex; flex-wrap: wrap; gap: 40px; align-items: stretch; margin-bottom: 24px; }
.sect > * { flex: 1 1 46%; min-width: 0; }
.sect--inv { flex-direction: row-reverse; }
.sect .frame { min-height: 100%; border-radius: 31px; }
.sect__c { background: var(--fond-2); border-radius: 31px; padding: 44px; display: flex; flex-direction: column; }
.sect__m {
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 800; font-size: 13px; letter-spacing: .12em; text-transform: uppercase;
  color:var(--encre-marque,var(--marque));
}
@media (max-width: 900px) { .sect > * { flex: 1 1 100%; } .sect--inv { flex-direction: row; } .sect .frame { min-height: 260px; } }

.map { position: relative; }
.map .frame { min-height: 480px; border-radius: 31px; }
.map__carte {
  position: absolute; left: 34px; bottom: 34px; z-index: 2;
  max-width: 380px;
  background: var(--fond);
  border-radius: 16px;
  padding: 28px;
  box-shadow: 0 22px 42px -22px rgba(0,0,0,.4);
}
@media (max-width: 760px) {
  .map .frame { min-height: 320px; }
  
  .map__carte { position: relative; left: 0; bottom: 0; z-index: 2; max-width: none;
    margin-top: -40px; margin-left: 16px; margin-right: 16px; }
}

.avis {
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px;
  padding: 30px;
  display: flex; flex-direction: column;
  background: rgba(255,255,255,.04);
}
.avis__t { color: var(--fond); }
.avis__texte { color: var(--fond); opacity: .74; margin: 14px 0 0; font-size: 16px; }
.avis__etoiles { color: var(--encre-marque, var(--accent)); letter-spacing: 3px; margin-top: 22px; }
.section--sombre .avis__etoiles, .avis--sombre .avis__etoiles { color: var(--accent-clair, var(--fond)); } 
.avis__pied { display: flex; align-items: center; gap: 14px; margin-top: auto; padding-top: 24px; }
.avis__av {
  width: 46px; height: 46px; flex: 0 0 auto;
  display: grid; place-items: center;
  border-radius: 999px;
  background: var(--accent); color: var(--texte);
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 800;
}
.avis__nom { color: var(--fond); font-weight: 700; font-size: 15px; }
.avis__role { color: var(--fond); opacity: .6; font-size: 14px; }

.faq { max-width: 860px; margin: 0 auto; }

.faq__e { max-width: 860px; margin: 26px auto 0; display: grid; gap: 12px; justify-items: flex-start; }
.faq-item {
  border: 1px solid var(--bordure);
  border-radius: 16px;
  padding: 22px 26px;
  margin-bottom: 14px;
  background: var(--fond);
}
.faq-item summary {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  cursor: pointer; list-style: none;
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 700; font-size: 19px; letter-spacing: -.02em;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item p { color: var(--texte-doux); margin: 16px 0 0; font-size: 16px; }
.rond {
  width: 34px; height: 34px; flex: 0 0 auto;
  display: grid; place-items: center;
  border-radius: 999px;
  background: var(--fond-2);
  color:var(--encre-marque,var(--marque));
  font-size: 15px;
}
.faq-item[open] .rond { background: var(--accent); color: var(--texte); }

.zone { position: relative; border-radius: 16px; overflow: hidden; display: block; }
.zone .frame { min-height: 200px; border-radius: 0; }
.zone__voile { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.72) 100%); }
.zone__n {
  position: absolute; left: 16px; right: 16px; bottom: 14px; z-index: 2;
  color: #FFFFFF;
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 700; font-size: 16px; letter-spacing: -.02em;
}
.zone__tag { display: block; font-size: 12px; opacity: .75; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }

.urg { display: flex; flex-wrap: wrap; gap: 40px; align-items: center; justify-content: space-between; }
.urg > * { flex: 1 1 46%; min-width: 0; }
.urg__tel {
  display: inline-block;
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 800; font-size: clamp(30px, 4vw, 50px); letter-spacing: -.04em;
  color: var(--encre-accent, var(--accent));
  margin-bottom: 18px;
}

.cta {
  background:var(--marque);--sur-bande:var(--sur-marque);
  color:var(--sur-bande,var(--sur-marque));
  border-radius: 31px;
  padding: 64px;
  display: flex; flex-wrap: wrap; gap: 48px; align-items: center;
}
.cta > * { flex: 1 1 46%; min-width: 0; }
.cta h2, .cta .eyebrow { color:var(--sur-bande,var(--sur-marque)); }
.cta .body { color:var(--sur-bande,var(--sur-marque)); opacity: .82; }

.cta__v { margin-top: 24px; height: 190px; border-radius: 16px; overflow: hidden; }
.cta__form { display: flex; flex-wrap: wrap; gap: 14px; }
.cta__form input, .cta__form textarea {
  flex: 1 1 100%;
  font: inherit; font-size: 16px;
  padding: 15px 18px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.4);
  background: rgba(255,255,255,.12);
  color:var(--sur-bande,var(--sur-marque));
}
.cta__form input::placeholder, .cta__form textarea::placeholder { color:var(--sur-bande,var(--sur-marque)); opacity: .7; }
@media (max-width: 760px) { .cta { padding: 36px 26px; gap: 30px; } }

.champs { display: flex; flex-wrap: wrap; gap: 16px; }
.champ { flex: 1 1 46%; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.champ--long { flex: 1 1 100%; }
.champ span { font-size: 14px; font-weight: 600; color: var(--texte); }
.champ input, .champ textarea {
  font: inherit; font-size: 16px;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid var(--bordure);
  background: var(--fond-2);
  color: var(--texte);
  width: 100%;
}
.champ input:focus, .champ textarea:focus { outline: 2px solid var(--marque); outline-offset: 1px; }

.ariane { padding-top: 26px; padding-bottom: 6px; font-size: 14px; color: var(--texte-doux); }
.ariane a:hover { color:var(--encre-marque,var(--marque)); }

.art { display: flex; flex-wrap: wrap; gap: 56px; align-items: flex-start; margin-top: 48px; }
.art__som { flex: 1 1 26%; min-width: min(100%, 250px); position: sticky; top: 110px; }
.art__corps { flex: 1 1 60%; min-width: 0; }
.art__corps p { color: var(--texte-doux); }
.art__hero { min-height: 460px; border-radius: 31px; margin-top: 40px; }
@media (max-width: 900px) { .art__som { position: static; flex: 1 1 100%; } }

.legal { display: flex; flex-wrap: wrap; gap: 30px; }
.legal__b { flex: 1 1 46%; min-width: 0; background: var(--fond-2); border-radius: 16px; padding: 30px; }

.footer { background:var(--texte);--sur-bande:var(--sur-texte,var(--fond)); color: var(--fond); padding: 90px 0 40px; }
.footer h4 { color: var(--fond); margin-bottom: 18px; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; opacity: .6; }
.footer .body { color: var(--fond); opacity: .62; margin-top: 18px; font-size: 15px; }
.footer li { margin-bottom: 10px; }
.footer a { color: var(--fond); opacity: .75; font-size: 15px; }
.footer a:hover { opacity: 1; color: var(--encre-accent, var(--accent)); }
.footer__marque {
  display: flex; align-items: center; gap: 12px;
  font-family: 'Manrope', 'Inter', system-ui, sans-serif;
  font-weight: 800; font-size: 21px; letter-spacing: -.03em;
}
.footer__nap div { display: flex; gap: 10px; margin-bottom: 12px; font-size: 15px; opacity: .78; }
.footer__nap i { font-style: normal; color: var(--encre-accent, var(--accent)); }
.footer__bas {
  display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between;
  margin-top: 64px; padding-top: 26px;
  border-top: 1px solid rgba(255,255,255,.14);
  font-size: 14px; opacity: .6;
}

.carac__v { position: relative; }
.carac__v::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  -webkit-mask-image: linear-gradient(to right, #000 0 50%, transparent 50%);
  mask-image: linear-gradient(to right, #000 0 50%, transparent 50%);
  background: linear-gradient(90deg, color-mix(in srgb, var(--texte) 18%, transparent) 0%, transparent 100%);
}
.map__carte { position: relative; }
.map__carte::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  -webkit-mask-image: linear-gradient(to right, #000 0 50%, transparent 50%);
  mask-image: linear-gradient(to right, #000 0 50%, transparent 50%);
  background: linear-gradient(90deg, color-mix(in srgb, var(--texte) 12%, transparent) 0%, transparent 100%);
}

.sect__c { position: relative; }
.sect__c::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);
}

.carte, .sect__c {
  box-shadow:
    0 6px 8px color-mix(in srgb, var(--texte) 3%, transparent),
    0 22px 14px color-mix(in srgb, var(--texte) 2%, transparent),
    0 48px 19px color-mix(in srgb, var(--texte) 1%, transparent),
    0 75px 21px transparent;
}

.bande, .avis__av {
  box-shadow: 0 4px 12px color-mix(in srgb, var(--texte) 4%, transparent);
}

.hero__voile, .zone__voile {
  background-image: linear-gradient(
    180deg,
    transparent 0%,
    color-mix(in srgb, var(--texte) 82%, transparent) 100%);
}

.sect .frame {
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 22%, #000 100%);
  mask-image: linear-gradient(180deg, transparent 0, #000 22%, #000 100%);
}

.cta__v { border-radius: 16px 16px 0 0; }

.paire { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; min-width: 0; }
.header__cta { flex: 0 1 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; min-width: 0; }
.header__cta .btn { padding: 11px 22px; }
.header__cta .btn__fl { width: 20px; height: 20px; }

.btn--creux {
  background: transparent;
  color: inherit;
  border-color: currentColor;
}
.btn--creux .btn__fl { background: transparent; border: 1px solid currentColor; color: inherit; }

.cta__form .paire--pied { flex: 1 1 100%; }
.cta__form .btn--creux { color:var(--sur-bande,var(--sur-marque)); }
@media (max-width: 560px) {
  .header__cta .btn { padding: 12px 16px; font-size: 14px; }
}

: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="wk--hro"]:not(:has(img)):not(:has(video)) {
  --cadre-vide-fond: #171b20;
  --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="wk--hro"]:not(:has(img)):not(:has(video)) > * {
  font-size: 0 !important;
}
[data-slot="wk--zon"]:not(:has(img)):not(:has(video)) {
  --cadre-vide-fond: #171b20;
  --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="wk--zon"]:not(:has(img)):not(:has(video)) > * {
  font-size: 0 !important;
}

.gr--3 > * { flex-grow: 0 !important; }
.gr--2 > * { flex: 0 1 calc(33.333% - 20px) !important; min-width: min(240px, 100%) !important; }
.ab__pied > * { 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%}

.btn,
.pill__p,
.puces li::before,
.etape__num,
.ab__lab--apres,
.avis__av,
.faq-item[open] .rond { color: var(--sur-accent); --texte-doux: var(--sur-accent-doux, var(--sur-accent)); --encre-accent: var(--sur-accent); --encre-marque: var(--sur-accent) }

.section--doux,
.eyebrow--pill,
.btn--plat,
.btn--clair,
.frame,
.pill,
.carte,
.carte--douce,
.header,
.header__nav,
.header__nav > a.is-active,
.drop__tete.is-active,
.drop__grille,
.hero__scene,
.hero__bandeau,
.hero__at .pill,
.ab,
.ab__lab,
.ab__barre,
.ab__poignee,
.bande,
.filtre__l,
.sect__c,
.map__carte,
.faq-item,
.rond,
.champ input,
.champ textarea,
.legal__b,
.zx-certs__lg { --texte-doux: var(--texte-doux-sol, var(--texte-doux)); --encre-accent: var(--encre-accent-sol, var(--accent)); color: var(--texte) }

.section--sombre,
.btn__fl,
.footer { --texte-doux: var(--texte-doux-inverse); --encre-accent: var(--encre-accent-inverse, var(--accent)); --encre-marque: var(--fond); color: var(--fond) }

.section--sombre .eyebrow--pill,
.section--sombre .pill { --texte-doux: var(--texte-doux-inverse); --encre-accent: var(--encre-accent-inverse, var(--accent)); --encre-marque: var(--fond); color: var(--fond) }

.section--sombre h2,
.section--sombre h3,
.section--sombre .body,
.section--sombre .pill,
.section--sombre .puces li,
.hero__texte,
.hero__texte h1,
.hero__sous,
.hero__pills .pill,
.avis__t,
.avis__texte,
.avis__nom,
.avis__role,
.zone__n,
.footer h4,
.footer .body { --encre-accent: var(--encre-accent-inverse, var(--accent)); --encre-marque: var(--encre-accent-inverse, var(--fond)) }

.header__goutte,
.filtre__l--ici,
.cta { --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 div.avis:nth-child(1) > div.avis__etoiles{color:rgb(255,255,255)!important}
body div.avis:nth-child(3) > div.avis__etoiles{color:rgb(255,255,255)!important}
body div.avis:nth-child(2) > div.avis__etoiles{color:rgb(255,255,255)!important}
/* fin plancher */
