.elementor-249 .elementor-element.elementor-element-e37535a{--display:flex;--margin-top:75px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:50px;--padding-bottom:50px;--padding-left:0px;--padding-right:0px;}.elementor-249 .elementor-element.elementor-element-e37535a:not(.elementor-motion-effects-element-type-background), .elementor-249 .elementor-element.elementor-element-e37535a > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-a872a72 );}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-249 .elementor-element.elementor-element-589d118{text-align:center;}.elementor-249 .elementor-element.elementor-element-589d118 .elementor-heading-title{font-family:"Poppins", Sans-serif;font-size:25px;font-weight:800;color:#FFFFFF;}.elementor-widget-divider{--divider-color:var( --e-global-color-secondary );}.elementor-widget-divider .elementor-divider__text{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-divider.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-secondary );}.elementor-widget-divider.elementor-view-framed .elementor-icon, .elementor-widget-divider.elementor-view-default .elementor-icon{color:var( --e-global-color-secondary );border-color:var( --e-global-color-secondary );}.elementor-widget-divider.elementor-view-framed .elementor-icon, .elementor-widget-divider.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-secondary );}.elementor-249 .elementor-element.elementor-element-87abf28{--divider-border-style:solid;--divider-color:#FFFFFF;--divider-border-width:5px;}.elementor-249 .elementor-element.elementor-element-87abf28 .elementor-divider-separator{width:18%;margin:0 auto;margin-center:0;}.elementor-249 .elementor-element.elementor-element-87abf28 .elementor-divider{text-align:center;padding-block-start:5px;padding-block-end:5px;}.elementor-249 .elementor-element.elementor-element-e1032e6{--display:flex;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:20px;--padding-bottom:100px;--padding-left:0px;--padding-right:0px;}.elementor-249 .elementor-element.elementor-element-e1032e6:not(.elementor-motion-effects-element-type-background), .elementor-249 .elementor-element.elementor-element-e1032e6 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FAF9F7;}@media(min-width:768px){.elementor-249 .elementor-element.elementor-element-e1032e6{--content-width:900px;}}@media(max-width:767px){.elementor-249 .elementor-element.elementor-element-e37535a{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-249 .elementor-element.elementor-element-589d118{padding:0px 10px 0px 10px;}.elementor-249 .elementor-element.elementor-element-589d118 .elementor-heading-title{font-size:22px;}.elementor-249 .elementor-element.elementor-element-72bf7a0{padding:0px 0px 0px 0px;}}/* Start custom CSS for shortcode, class: .elementor-element-72bf7a0 *//* === VARIABLES ===================================================== */
:root{
  --vw-bg:#faf9f7;
  --vw-card:#ffffff;
  --vw-text:#1d1d1b;
  --vw-muted:#6a6a6a;
  --vw-line:#e9e4de;
  --vw-accent:#ffd400;           /* jaune principal */
  --vw-accent-weak:#fff6bf;      /* jaune clair */
  --vw-shadow:0 8px 24px rgba(0,0,0,.05);
  --vw-radius:12px;

  /* --- Offsets/échelles/arrondis PAR VITRE --- */
  /* Pare-brise */
  --pb-x: -5px; --pb-y: 14px; --pb-sx: 1.2; --pb-sy: 0.9;
  --pb-rx: 8px; --pb-ry: 50px;

  /* Vitre latérale gauche */
  --lg-x: -10px; --lg-y: 0px; --lg-sx: 0.7; --lg-sy: 1;
  --lg-rx: 25px; --lg-ry: 25px;

  /* Vitre latérale droite */
  --ld-x: 13px; --ld-y: 0px; --ld-sx: 0.7; --ld-sy: 1.02;
  --ld-rx: 20px; --ld-ry: 20px;

  /* Lunette arrière */
  --la-x: 0px; --la-y: -4px; --la-sx: 1; --la-sy: 1;
  --la-rx: 3px; --la-ry: 5px;
}

/* === STRUCTURE GÉNÉRALE ============================================ */
.vw-wrap{
  max-width:1150px;
  margin:0 auto;
  padding:0 18px;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--vw-text);
  font-size:16px;
  background:var(--vw-bg);
  letter-spacing:.1px;

  /* PATCH anti-rogne */
  overflow-x:clip;               /* coupe juste l’overflow horizontal */
  /* fallback anciens navigateurs */
  /* overflow-x:hidden; */
  scrollbar-gutter: stable both-edges;
}
/* assure AUCUN débordement des enfants */
.vw-wrap *, .vw-wrap *::before, .vw-wrap *::after{
  box-sizing:border-box;
  max-inline-size:100%;
}

/* Titres */
.vw-h2{
  font-size:20px;
  margin:0 0 8px;
  font-weight:700;
  line-height:1.2;
  position:relative;
}
.vw-h2:after{
  content:"";
  display:block;
  width:32px;
  height:3px;
  background:var(--vw-accent);
  border-radius:2px;
  margin-top:6px;
}
.vw-sub{margin:0 0 14px;color:var(--vw-muted);font-size:14.5px}

/* Cartes */
.vw-card{
  background:var(--vw-card);
  border-radius:var(--vw-radius);
  padding:20px;
  margin:18px 0;
  box-shadow:var(--vw-shadow);

  /* PATCH : évite tout scroll interne parasite */
  overflow:hidden;
}

/* Champs */
.vw-field{margin:12px 0}
.vw-field label{display:block;font-weight:700;margin:0 0 6px}
.vw-field input,.vw-field select,.vw-plate input{
  width:100%;
  padding:10px 12px;
  border:1px solid var(--vw-line);
  border-radius:10px;
  background:#fff;
  font-size:15.5px;
  transition:border .15s, box-shadow .15s;
}
.vw-field input:focus,.vw-field select:focus,.vw-plate input:focus{
  outline:none;
  border-color:var(--vw-accent);
  box-shadow:0 0 0 3px var(--vw-accent-weak);
}

/* === GRILLES ======================================================== */
.vw-grid{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:20px;
}
/* PATCH : permet aux colonnes/enfants de rétrécir sans déborder */
.vw-grid > *{ min-width:0; }

@media (max-width:900px){.vw-grid{grid-template-columns:1fr}}

/* === VOITURE + HOTSPOTS ============================================ */
.vw-car{position:relative; overflow:clip;} /* PATCH : clippe les calques SVG */
.vw-car-figure{
  position:relative;
  width:210px;
  max-width:100%;
  aspect-ratio:148 / 301;
}

.vw-car-svg,
.vw-hotspots{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:100%;               /* PATCH : pas plus large que le conteneur */
}
.vw-car-svg svg{width:100%;height:100%;display:block}

/* Hotspots génériques */
.vw-hotspots rect{
  cursor:pointer;
  transition:fill .15s, opacity .15s, transform .15s;
  transform-origin: 0 0;
  transform-box: fill-box;
  -webkit-tap-highlight-color: transparent;
}
@media (hover:hover){
  .vw-hotspots rect:hover{fill:var(--vw-accent);opacity:.2}
}

/* Pare-brise */
.vw-hotspots rect[data-choice="Pare-brise"]{
  transform: translate(var(--pb-x), var(--pb-y)) scale(var(--pb-sx), var(--pb-sy));
  rx: var(--pb-rx); ry: var(--pb-ry);
}
/* Vitre latérale gauche */
.vw-hotspots rect[data-choice="Vitre latérale gauche"]{
  transform: translate(var(--lg-x), var(--lg-y)) scale(var(--lg-sx), var(--lg-sy));
  rx: var(--lg-rx); ry: var(--lg-ry);
}
/* Vitre latérale droite */
.vw-hotspots rect[data-choice="Vitre latérale droite"]{
  transform: translate(var(--ld-x), var(--ld-y)) scale(var(--ld-sx), var(--ld-sy));
  rx: var(--ld-rx); ry: var(--ld-ry);
}
/* Lunette arrière */
.vw-hotspots rect[data-choice="Lunette arrière"]{
  transform: translate(var(--la-x), var(--la-y)) scale(var(--la-sx), var(--la-sy));
  rx: var(--la-rx); ry: var(--la-ry);
}

/* Surbrillance quand sélectionné (sans bordure) */
.vw-car[data-vitre="Pare-brise"] .vw-hotspots rect[data-choice="Pare-brise"],
.vw-car[data-vitre="Vitre latérale gauche"] .vw-hotspots rect[data-choice="Vitre latérale gauche"],
.vw-car[data-vitre="Vitre latérale droite"] .vw-hotspots rect[data-choice="Vitre latérale droite"],
.vw-car[data-vitre="Lunette arrière"] .vw-hotspots rect[data-choice="Lunette arrière"]{
  fill:var(--vw-accent);
  opacity:.45;
  outline:none !important;
  stroke:none !important;
  stroke-width:0 !important;
}

/* === BOUTONS OPTIONS =============================================== */
.vw-options{display:grid;gap:10px;align-content:start; max-width:100%;} /* PATCH */
.vw-btn{
  display:block;
  width:100%;
  text-align:left;
  background:#fff;
  border:1px solid var(--vw-line);
  border-radius:10px;
  padding:12px 14px;
  font-size:16px;
  font-weight:700;
  cursor:pointer;
  transition:box-shadow .15s, background .15s, border-color .15s, transform .05s;
  white-space:normal;            /* PATCH : casse proprement le texte long */
  overflow-wrap:anywhere;        /* PATCH : évite un dépassement d’un mot long */
}
.vw-btn:hover{box-shadow:var(--vw-shadow)}
.vw-btn:active{transform:translateY(1px)}
.vw-btn.is-on{background:var(--vw-accent);border-color:var(--vw-accent);color:var(--vw-text)}

/* === TUILES ======================================================== */
.vw-tiles{display:grid;gap:14px}
.vw-tiles-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.vw-tiles-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.vw-tiles-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:980px){.vw-tiles-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.vw-tiles-3,.vw-tiles-2,.vw-tiles-4{grid-template-columns:1fr}}

.vw-tile{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  border:1px solid var(--vw-line);
  border-radius:12px;
  padding:14px;
  background:#fff;
  cursor:pointer;
  transition:box-shadow .15s, background .15s, border-color .15s;
}
.vw-tile:hover{box-shadow:var(--vw-shadow)}
.vw-tile input{display:none}
.vw-tile-img{width:130px;height:90px;border:1px solid #efefef;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#fff}
.vw-tile-label{font-size:15px;font-weight:700;text-align:center;line-height:1.25}
.vw-tile:has(input:checked){background:var(--vw-accent);border-color:var(--vw-accent)}
.vw-tile:has(input:checked) .vw-tile-img{background:#fff;border-color:#f0e9df}
.vw-tile:has(input:checked) .vw-tile-label{color:#1f1f1f}

/* === PLAQUE & BOUTONS ============================================== */
.vw-plate-block{transition:opacity .2s}
.vw-plate{display:flex;align-items:center;gap:10px}
.vw-flag{
  width:40px;height:46px;background:#2d65bd;color:#fff;font-weight:800;
  border-radius:7px;display:flex;align-items:center;justify-content:center;
  font-size:14px;
  box-shadow:inset 0 0 0 2px #fff, 0 2px 6px rgba(0,0,0,.08);
}
.vw-plate input{text-transform:uppercase;letter-spacing:.5px}
.vw-search{
  width:44px;height:44px;border-radius:10px;border:0;background:var(--vw-accent);
  position:relative;cursor:pointer;
}
.vw-search:before{content:"";width:14px;height:14px;border:3px solid #111;border-radius:50%;position:absolute;left:12px;top:10px}
.vw-search:after{content:"";width:10px;height:3px;background:#111;position:absolute;left:24px;top:24px;transform:rotate(45deg)}

.vw-actions{display:flex;justify-content:flex-end;margin-top:14px}
.vw-next,.vw-submit{
  background:#1d1d1b;color:#fff;border:0;border-radius:10px;
  padding:10px 14px;font-weight:800;font-size:15.5px;
  cursor:pointer;transition:opacity .15s, transform .05s;
}
.vw-next:hover,.vw-submit:hover{opacity:.9}
.vw-next:active,.vw-submit:active{transform:translateY(1px)}

/* === ALERTES ======================================================= */
.vw-alert{border-radius:10px;padding:10px 12px;margin-bottom:12px;font-size:15px}
.vw-error{background:#fff2f0;border:1px solid #ffccc7;color:#a8071a}
.vw-success{background:#f6ffed;border:1px solid #b7eb8f;color:#135200}

/* === ACCESSIBILITÉ ================================================= */
.vw-btn:focus-visible,
.vw-tile:focus-within,
.vw-next:focus-visible,.vw-submit:focus-visible,
.vw-search:focus-visible{
  outline:3px solid var(--vw-accent-weak);
  outline-offset:3px;
  border-radius:10px;
}

/* === RESPONSIVE ==================================================== */
@media (max-width:900px){
  .vw-h2{font-size:20px}
  .vw-car-figure{width:180px}
}
@media (max-width:600px){
  .vw-h2{font-size:19px}
  .vw-btn{font-size:15.5px;padding:10px 12px}
  .vw-tile-img{width:118px;height:82px}
}

/* === OVERRIDE TEXTE NOIR & SÉLECTION JAUNE SUR LES OPTIONS === */
.vw-wrap .vw-options .vw-btn,
.vw-wrap .vw-options .vw-btn:visited,
.vw-wrap .vw-options .vw-btn:hover,
.vw-wrap .vw-options .vw-btn:focus,
.vw-wrap .vw-options .vw-btn:active {
  background:#fff !important;              /* fond blanc quand non sélectionné */
  border-color:var(--vw-line) !important;
  color:#1d1d1b !important;                /* texte noir */
  box-shadow:var(--vw-shadow) !important;
  outline:none !important;
}

.vw-wrap .vw-options .vw-btn.is-on,
.vw-wrap .vw-options .vw-btn.is-on:hover,
.vw-wrap .vw-options .vw-btn.is-on:focus,
.vw-wrap .vw-options .vw-btn.is-on:active {
  background:var(--vw-accent) !important;  /* jaune */
  border-color:var(--vw-accent) !important;
  color:#1d1d1b !important;                /* texte noir */
/* === PATCH MOBILE (débordement à droite en réel, OK dans l’aperçu Elementor) === */

/* 1) Coupe tout overflow horizontal et autorise le rétrécissement */
.vw-wrap{ overflow-x:hidden !important; }
.vw-card{ overflow:hidden !important; }
.vw-grid > *{ min-width:0 !important; }          /* indispensable en Grid */

/* 2) Boutons : neutralise l’1-2px de dépassement dû aux arrondis mobile */
.vw-options{ overflow:hidden; padding-right:1px; margin-right:-1px; }
.vw-btn{ width:calc(100% - 2px) !important; box-sizing:border-box; }

/* 3) SVG voiture : aucun débordement possible */
.vw-car{ overflow:hidden !important; }
.vw-car-figure{ max-width:100%; width:min(220px, 92vw); }
.vw-car-svg, .vw-hotspots{ max-width:100%; height:100%; left:0; right:0; }

/* 4) iOS Safari : empêche les micro-shifts de layout sur les calques */
@supports (-webkit-touch-callout: none){
  .vw-car, .vw-card{ contain:layout paint; }
}

/* 5) Cas spécifique Elementor : certaines colonnes ajoutent 1px “fantôme” */
.elementor-widget-container .vw-wrap{ overflow-x:hidden !important; }
.elementor-column .elementor-widget-wrap{ overflow-x:hidden; }

/* 6) Ultra-sûr sur téléphones (coarse pointer) */
@media (pointer:coarse) and (max-width:560px){
  .vw-grid{ grid-template-columns:1fr !important; }
  .vw-btn{ min-height:48px; }
  .vw-tile-img{ width:100%; height:auto; aspect-ratio:16/11; }
}

/* 7) (optionnel si tu vois encore une barre globale) */
/* html, body{ overflow-x:hidden; } *//* End custom CSS */