/**
 * Fiche produit Elementor � alignement & espacements (sans changer couleurs/typos prod).
 * Cible le hero : m�dia (52 %) � texte + CTA (48 %, doc + devis sur une ligne).
 */

body.template-product-elementor {
  --ck-page-pad-x: 24px;
  --ck-section-max-width: min(100%, 1400px);
  --ck-section-pad-x: var(--ck-page-pad-x);
  /* Hero, grille ic�nes, tableau specs � m�me largeur visuelle */
  --ck-product-content-max-width: min(100%, 860px);
  /* Hero desktop : visuel 360 de 610 px + description de 430 px. */
  --ck-product-hero-max-width: min(100%, 1040px);
  --ck-product-section-gap: 24px;
  /* Grille features (tokens Elementor T.A.M.) */
  --line: #e8edf2;
  --bg: #fff;
  --brand: #000;
  --text-muted: #555;
}

body.template-product-elementor .ck-product-elementor {
  overflow-x: clip;
}

/* Conteneur page produit (template 2600) � grille d�alignement (layout only) */
body.template-product-elementor .ck-product-elementor.elementor-2600 {
  --ck-hero-gap: 36px;
  --ck-hero-media-pct: 52%;
  --ck-hero-summary-pct: 48%;
  --ck-icons-gap: 0;
  --ck-picto-row-gap: 4px;
  --ck-spin-thumb: 42px;
  --ck-spin-gallery-gap: 18px;
  /* Un peu plus large : la photo peut s�agrandir pour caler haut/bas sur la colonne texte */
  --ck-spin-max-width: 560px;
  --ck-spin-media-inset: calc(var(--ck-spin-thumb) + var(--ck-spin-gallery-gap));
  --ck-icons-offset-x: 0px;
  --ck-hero-content-span: calc(
    var(--ck-hero-media-pct) + var(--ck-hero-gap) + var(--ck-hero-summary-pct)
  );
  --ck-specs-offset-x: 0px;
  --ck-specs-width: calc(
    var(--ck-hero-media-pct) + var(--ck-hero-gap) + 16%
  );
  width: 100%;
  box-sizing: border-box;
}

/* Ligne hero */
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-1fbf6fe.e-con,
body.template-product-elementor .ck-product-elementor.ck-has-product-hero .ck-product-hero-row.e-con {
  --ck-hero-gap: 28px;
  width: 100% !important;
  max-width: calc(
    var(--ck-product-hero-max-width, 1040px) + 2 * var(--ck-page-pad-x, 24px)
  ) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-top: 28px !important;
  padding-bottom: 28px !important;
  padding-left: var(--ck-page-pad-x, 24px) !important;
  padding-right: var(--ck-page-pad-x, 24px) !important;
  box-sizing: border-box !important;
  /* Homog�n�it� : image et titre partagent la m�me ligne de base haute */
  align-items: flex-start !important;
  column-gap: var(--ck-hero-gap) !important;
  row-gap: var(--ck-hero-gap) !important;
}

/* Sans 360� CK : masquer WebRotate r�siduel hors colonne m�dia */
body.template-product-elementor .ck-product-elementor:not(.has-ck-spin-360) .webrotate360,
body.template-product-elementor .ck-product-elementor:not(.has-ck-spin-360) .wr360-gallery,
body.template-product-elementor
  .ck-product-elementor:not(.has-ck-spin-360)
  .elementor-widget-webrotate-360 {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Colonne m�dia : r�afficher galerie statique (markup WebRotate sans JS local) */
body.template-product-elementor
  .ck-product-elementor:not(.has-ck-spin-360)
  :is(.elementor-element-c52ee4c, .ck-product-hero-media)
  :is(.webrotate360, .wr360-gallery, .elementor-widget[class*="360"], .elementor-widget-webrotate-360),
body.template-product-elementor
  .ck-product-elementor.elementor-2600:not(.has-ck-spin-360)
  .elementor-element-c52ee4c
  :is(.webrotate360, .wr360-gallery) {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

/* Descendants WR360 : visibility:hidden du masque global / CSS plugin */
body.template-product-elementor
  .ck-product-elementor:not(.has-ck-spin-360)
  :is(.elementor-element-c52ee4c, .ck-product-hero-media)
  :is(.webrotate360, .wr360-gallery)
  :is(*, img) {
  visibility: visible !important;
}

body.template-product-elementor
  .ck-product-elementor:not(.has-ck-spin-360)
  :is(.elementor-element-c52ee4c, .ck-product-hero-media)
  .wr360-gal-main
  img {
  display: block !important;
  width: auto !important;
  max-width: min(100%, 580px) !important;
  height: auto !important;
  margin: 0 auto !important;
  object-fit: contain !important;
}

body.template-product-elementor
  .ck-product-elementor:not(.has-ck-spin-360)
  :is(.elementor-element-c52ee4c, .ck-product-hero-media) {
  height: auto !important;
  min-height: 0 !important;
  align-self: center !important;
}

body.template-product-elementor
  .ck-product-elementor:not(.has-ck-spin-360)
  :is(.elementor-element-c52ee4c, .ck-product-hero-media)
  :is(.wr360-gal-main, .wr360-swiper-view, .swiper-wrapper, .swiper-slide) {
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}

/* Galerie statique : masquer chrome WebRotate inactif (pas de JS plugin en local) */
body.template-product-elementor
  .ck-product-elementor:not(.has-ck-spin-360)
  :is(.wr360-arrow-container-left, .wr360-arrow-container-right, .wr360-gal-navigation, .wr360-close-zoom) {
  display: none !important;
}

body.template-product-elementor
  .ck-product-elementor:not(.has-ck-spin-360)
  .elementor-widget-theme-post-featured-image,
body.template-product-elementor
  .ck-product-elementor:not(.has-ck-spin-360)
  .elementor-element-c52ee4c
  .elementor-widget-image:not([class*="webrotate"]) {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
}

body.template-product-elementor
  .ck-product-elementor:not(.has-ck-spin-360)
  .elementor-widget-theme-post-featured-image
  img {
  display: block !important;
  width: auto !important;
  max-width: min(100%, 580px) !important;
  height: auto !important;
  margin: 0 auto !important;
  object-fit: contain !important;
}

/* Colonne m�dia / 360� */
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-c52ee4c.e-con,
body.template-product-elementor .ck-product-elementor.ck-has-product-hero .ck-product-hero-media.e-con {
  flex: 0 0 var(--ck-hero-media-pct, 52%) !important;
  width: var(--ck-hero-media-pct, 52%) !important;
  max-width: var(--ck-hero-media-pct, 52%) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto;
  margin: 0 !important;
  padding: 0 !important;
  align-self: flex-start !important;
  justify-content: flex-start !important;
  box-sizing: border-box;
  display: flex !important;
  flex-direction: column !important;
}

/* Hero CK Spin : alignement haut (homog�ne avec le titre) */
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-1fbf6fe.e-con,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360.ck-has-product-hero .ck-product-hero-row.e-con {
  align-items: flex-start !important;
  align-content: flex-start !important;
  justify-content: center !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c.e-con,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-media.e-con,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-ed56dce.e-con,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-summary.e-con {
  align-self: flex-start !important;
  height: auto !important;
  min-height: 0 !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c .elementor-widget-container,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-media .elementor-widget-container,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-fa17757,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-media .elementor-widget[class*="360"] {
  align-items: flex-start !important;
  justify-content: flex-start !important;
  height: auto !important;
  flex: 0 1 auto !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c .ck-spin-360__img {
  display: block !important;
  margin: 0 auto !important;
  max-width: 100% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: top center !important;
  image-rendering: auto;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c .ck-spin-360__viewport {
  min-height: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  align-items: flex-start !important;
  justify-content: center !important;
  overflow: hidden !important;
}

/* Rotation 360 : cadre fixe, pictos et contenu en dessous inchang�s */
body.template-product-elementor .ck-spin-360--size-locked.ck-spin-360--embed {
  height: auto !important;
  flex: 0 0 auto !important;
}

body.template-product-elementor .ck-spin-360--size-locked .ck-spin-360__main {
  flex: 0 0 auto !important;
  min-height: 0 !important;
}

body.template-product-elementor .ck-spin-360--size-locked .ck-spin-360__viewport {
  flex: 0 0 auto !important;
  min-height: 0 !important;
  width: auto;
  max-width: 100%;
  background: transparent !important;
  align-items: flex-start !important;
  justify-content: center !important;
  padding: 0 !important;
}

body.template-product-elementor .ck-spin-360--size-locked .ck-spin-360__stage {
  display: inline-block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  line-height: 0;
}

body.template-product-elementor .ck-spin-360--size-locked .ck-spin-360__layer,
body.template-product-elementor .ck-spin-360--size-locked .ck-spin-360__img {
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: top center !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360__controls {
  background: transparent !important;
  padding: 0 !important;
  margin-top: 12px !important;
  box-shadow: none !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--embed .ck-spin-360__main {
  gap: 0 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-c52ee4c .elementor-widget,
body.template-product-elementor .ck-product-elementor .ck-product-hero-media .elementor-widget {
  width: 100% !important;
  max-width: 100% !important;
  margin-bottom: 0 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-c52ee4c .elementor-widget-container,
body.template-product-elementor .ck-product-elementor .ck-product-hero-media .elementor-widget-container {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  height: 100% !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-fa17757,
body.template-product-elementor .ck-product-elementor .ck-product-hero-media .elementor-widget[class*="360"] {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  flex: 1 1 auto !important;
  --container-widget-width: 100% !important;
  align-self: stretch !important;
}

/* Moins d'espace au-dessus de la photo (colonne m�dia CK Spin uniquement) */
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c > .e-con-inner,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-media > .e-con-inner {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600.has-ck-spin-360 .elementor-element-c52ee4c .elementor-widget,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-media .elementor-widget {
  margin-top: 0 !important;
  padding-top: 0 !important;
  height: auto !important;
  flex: 0 1 auto !important;
  align-self: flex-start !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600.has-ck-spin-360 .elementor-element-c52ee4c .elementor-widget-container,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-media .elementor-widget-container {
  align-items: flex-start !important;
  justify-content: flex-start !important;
  height: auto !important;
  flex: 0 1 auto !important;
  padding-top: 0 !important;
  margin-top: 0 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600.has-ck-spin-360 .elementor-element-fa17757,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c .elementor-widget[class*="360"] {
  height: auto !important;
  flex: 0 1 auto !important;
  align-self: flex-start !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-c52ee4c :is(img, svg, video),
body.template-product-elementor .ck-product-elementor .ck-product-hero-media :is(img, svg, video) {
  max-width: 100% !important;
  height: auto;
  object-fit: contain;
}

body.template-product-elementor
  .ck-product-elementor.elementor-2600:not(.has-ck-spin-360)
  .elementor-element-c52ee4c
  .webrotate360,
body.template-product-elementor
  .ck-product-elementor.elementor-2600:not(.has-ck-spin-360)
  .elementor-element-c52ee4c
  .wr360-gallery {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
}

/* Fiche avec CK Spin : masquer WebRotate seulement apr�s montage CK (�vite colonne vide) */
body.template-product-elementor .ck-product-elementor.has-ck-spin-360.ck-spin-360-mounted .elementor-element-c52ee4c .webrotate360,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360.ck-spin-360-mounted .elementor-element-c52ee4c .wr360-gallery,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360.ck-spin-360-mounted .elementor-element-fa17757 .webrotate360,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360.ck-spin-360-mounted .elementor-element-fa17757 .wr360-gallery {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360:not(.ck-spin-360-mounted) .ck-spin-360-mount {
  display: none !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360.ck-spin-360-mounted .elementor-element-fa17757 {
  display: block !important;
  width: 100% !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360.ck-spin-360-mounted .elementor-element-fa17757 .elementor-widget-container {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  width: 100% !important;
}

/* CK Spin + galerie */
body.template-product-elementor .ck-product-elementor .elementor-element-c52ee4c .ck-spin-360--embed.ck-spin-360--gallery,
body.template-product-elementor .ck-product-elementor .ck-product-hero-media .ck-spin-360--embed.ck-spin-360--gallery {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  flex: 1 1 auto !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c .ck-spin-360--embed.ck-spin-360--gallery,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-media .ck-spin-360--embed.ck-spin-360--gallery {
  --ck-spin-gallery-gap: 18px;
  --ck-spin-thumb: 42px;
  --ck-spin-max-width: 560px;
  width: 100% !important;
  max-width: min(
    100%,
    calc(var(--ck-spin-thumb, 42px) + var(--ck-spin-gallery-gap, 18px) + var(--ck-spin-max-width))
  ) !important;
  height: auto !important;
  flex: 0 1 auto !important;
  align-items: flex-start !important;
  gap: var(--ck-spin-gallery-gap, 18px) !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .elementor-element-c52ee4c
  .ck-spin-360--embed.ck-spin-360--gallery.is-fullscreen,
body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-product-hero-media
  .ck-spin-360--embed.ck-spin-360--gallery.is-fullscreen {
  position: fixed !important;
  inset: 0 !important;
  z-index: 999999 !important;
  width: 100vw !important;
  max-width: none !important;
  height: 100vh !important;
  min-height: 100vh !important;
  margin: 0 !important;
  padding: 20px 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360--embed.ck-spin-360--gallery.is-fullscreen
  .ck-spin-360__main {
  width: auto !important;
  max-width: calc(100vw - 128px) !important;
  height: auto !important;
  min-height: 0 !important;
  align-items: center !important;
  justify-content: center !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360--embed.ck-spin-360--gallery.is-fullscreen
  .ck-spin-360__viewport {
  width: min(78vw, 980px) !important;
  max-width: min(78vw, 980px) !important;
  height: calc(100vh - 112px) !important;
  min-height: 0 !important;
  max-height: calc(100vh - 112px) !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360.ck-spin-360-mounted
  .ck-spin-360--embed:not(.ck-spin-360--size-locked) {
  visibility: visible !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360.ck-spin-360-mounted
  .ck-spin-360--embed.ck-spin-360--size-locked {
  visibility: visible !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360--square-frame:not(.is-fullscreen):not(.is-still-mode)
  .ck-spin-360__img {
  transform: scale(1.1) translateZ(0) !important;
  transform-origin: center center !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360.is-still-mode:not(.is-fullscreen)
  .ck-spin-360__img,
body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360--static:not(.is-fullscreen)
  .ck-spin-360__img {
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360--situation-view.is-still-mode:not(.is-fullscreen)
  .ck-spin-360__img {
  max-width: none !important;
  object-position: center center !important;
}

/* Vignettes : cellule 42 px homogene, image entiere visible, transform none. */
body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360--embed.ck-spin-360--gallery
  .ck-spin-360__thumb
  img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
}

/* BOX CB / BOX ACC : memes regles de miniatures que les autres produits. */
body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360--portrait-gallery.ck-spin-360--embed.ck-spin-360--gallery
  .ck-spin-360__thumb[data-gallery-role="situation"]
  img {
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
  transform-origin: center center !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360--static.ck-spin-360--square-frame:not(.is-fullscreen)
  .ck-spin-360__img {
  height: auto !important;
  max-height: 100% !important;
  max-width: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
  width: auto !important;
}

body.template-product-elementor:not(.postid-2851):not(.postid-3814):not(.postid-6080):not(.postid-6618):not(.postid-6726):not(.postid-4215):not(.postid-4380):not(.postid-4628)
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360--square-frame.is-still-mode:not(.is-fullscreen)
  .ck-spin-360__img {
  object-position: top center !important;
  transform: scale(1.1) translateZ(0) !important;
  transform-origin: center center !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360--embed.ck-spin-360--gallery.is-fullscreen
  .ck-spin-360__stage {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c.e-con,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-media.e-con {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: min(
    100%,
    calc(var(--ck-spin-thumb, 42px) + var(--ck-spin-gallery-gap, 18px) + var(--ck-spin-max-width, 520px))
  ) !important;
  align-items: flex-start !important;
}

body.template-product-elementor .ck-product-elementor .elementor-element-c52ee4c .ck-spin-360--embed .ck-spin-360__main,
body.template-product-elementor .ck-product-elementor .ck-product-hero-media .ck-spin-360--embed .ck-spin-360__main {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c .ck-spin-360--embed .ck-spin-360__main,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-media .ck-spin-360--embed .ck-spin-360__main {
  flex: 0 1 auto !important;
}

/* Ligne CTA : Documentation + devis (m�me baseline, style pilule Casquette) */
body.template-product-elementor .ck-product-cta-row {
  --ck-cta-height: 58px;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  align-content: center;
  gap: 10px;
  margin-top: 0;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  box-sizing: border-box !important;
  overflow: visible;
}

/* Shortcode devis : titre/lead au-dessus, boutons dans .ck-product-cta-row */
body.template-product-elementor .ck-cta-row-merged #ckwash-quote .wrap {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  text-align: left !important;
  max-width: 100% !important;
  width: 100% !important;
}

body.template-product-elementor .ck-cta-row-merged #ckwash-quote .lead {
  margin-bottom: 16px !important;
  text-align: left !important;
}

body.template-product-elementor .ck-product-cta-row > .elementor-element,
body.template-product-elementor .ck-product-cta-row > .ck-product-cta-devis {
  display: flex !important;
  align-items: center !important;
  align-self: center !important;
  width: auto !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  --width: auto !important;
  --container-widget-width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.template-product-elementor .ck-product-cta-row > .elementor-element > .elementor-widget,
body.template-product-elementor .ck-product-cta-row > .elementor-element > .e-con {
  width: auto !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  --width: auto !important;
}

body.template-product-elementor .ck-product-cta-row .elementor-widget-container,
body.template-product-elementor .ck-product-cta-row .eael-creative-button-wrapper,
body.template-product-elementor .ck-product-cta-row .cklaundry-container {
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}

body.template-product-elementor .ck-product-cta-row .ckw-cta,
body.template-product-elementor .ck-product-cta-row .ck-product-cta-devis .ckw-cta {
  display: inline-flex !important;
  align-items: center !important;
  min-height: var(--ck-cta-height) !important;
  height: var(--ck-cta-height) !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  vertical-align: middle !important;
}

/* Widget HTML � devis � (ligne CTA fusionn�e) : masquer le configurateur inline */
body.template-product-elementor .ck-product-cta-row .elementor-element-fb8934e .elementor-widget-html,
body.template-product-elementor .ck-product-cta-row .elementor-element-fb8934e .elementor-widget-container {
  overflow: hidden !important;
  max-height: var(--ck-cta-height, 58px) !important;
}

body.template-product-elementor .ck-product-cta-row .elementor-element-fb8934e .ck-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  min-height: var(--ck-cta-height) !important;
  height: var(--ck-cta-height) !important;
  padding: 0 6px 0 14px !important;
  margin: 0 !important;
  font-size: 14px !important;
  flex-shrink: 1;
  min-width: 0;
  font-weight: 600 !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
  vertical-align: middle !important;
  border-radius: 999px !important;
}

body.template-product-elementor .ck-product-cta-row .elementor-element-fb8934e .ck-btn > span:last-child,
body.template-product-elementor .ck-product-cta-row .elementor-element-fb8934e .ck-btn > span[style*="border-radius"],
body.template-product-elementor .ck-product-cta-row .elementor-element-fb8934e .icon-wrapper {
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  min-height: 32px !important;
  max-width: 32px !important;
  max-height: 32px !important;
  flex-shrink: 0;
}

body.template-product-elementor .ck-product-cta-row .elementor-element-fb8934e .icon-wrapper svg {
  width: 18px !important;
  height: 18px !important;
}

/* Cat�gorie sous les boutons Documentation / Devis */
body.template-product-elementor .elementor-element.ck-product-category,
body.template-product-elementor .elementor-element-a148339.ck-product-category {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  margin: 20px 0 0 !important;
  padding: 16px 0 0 !important;
  border-top: 1px solid var(--line);
}

body.template-product-elementor .ck-product-category .elementor-widget-container,
body.template-product-elementor .ck-product-category .product_meta {
  margin: 0 !important;
  padding: 0 !important;
}

body.template-product-elementor .ck-product-category .posted_in.detail-container {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 8px;
  margin: 0 !important;
}

body.template-product-elementor .ck-product-category .detail-label {
  font-weight: 600;
  color: #001a48;
}

body.template-product-elementor .ck-product-category .detail-content a {
  color: #3399ff !important;
  text-decoration: none;
}

body.template-product-elementor .ck-product-category .detail-content a:hover {
  color: #0066b2 !important;
  text-decoration: underline;
}

body.template-product-elementor .ck-cta-row-merged .elementor-element-b60b4e2.ck-product-cta-col--empty {
  display: none !important;
  flex: 0 0 0 !important;
  width: 0 !important;
  max-width: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
}

/* Colonne texte produit */
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-ed56dce.e-con,
body.template-product-elementor .ck-product-elementor.ck-has-product-hero .ck-product-hero-summary.e-con {
  flex: 0 0 var(--ck-hero-summary-pct, 48%) !important;
  width: var(--ck-hero-summary-pct, 48%) !important;
  max-width: min(var(--ck-hero-summary-pct, 48%), 520px) !important;
  min-width: 0 !important;
  align-self: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  height: auto !important;
  gap: 6px !important;
  row-gap: 6px !important;
  box-sizing: border-box;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 {
  --ck-product-content-max-width: min(100%, 960px);
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-ed56dce.e-con,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-summary.e-con {
  flex: 1 1 0 !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  overflow: visible !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
  align-self: flex-start !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-ed56dce > .elementor-element,
body.template-product-elementor .ck-product-elementor .ck-product-hero-summary > .elementor-element {
  width: 100% !important;
  max-width: 100% !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Badge � Fabriqu� en France � � cartouche au contenu (comme la prod), pas pleine largeur */
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-9db4852,
body.template-product-elementor .ck-product-elementor .ck-product-hero-summary > .elementor-element-9db4852 {
  width: auto !important;
  max-width: 100% !important;
  flex: 0 0 auto !important;
  align-self: flex-start !important;
  --width: auto !important;
  --container-widget-width: auto !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-9db4852 .wpr-button-wrap {
  display: inline-block !important;
  width: auto !important;
  max-width: 246px !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-9db4852 .wpr-button {
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  max-width: 100% !important;
  background-color: #e9edf0 !important;
  border-radius: 2px !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-9db4852 .wpr-button-content {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-9db4852 .wpr-button-text {
  font-family: "Poppins", sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #000 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-9db4852.wpr-button-icon-position-left .wpr-button-icon {
  margin-right: 11px !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-9db4852 .wpr-button-icon svg {
  width: 25px !important;
  height: 25px !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-ed56dce .elementor-widget-container,
body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-397db60 .product_title,
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-397db60 h1 {
  margin: 0 0 12px 0 !important;
  padding: 0 !important;
  line-height: 1.1 !important;
}

/* Titre cal� sur le haut de l�image (pas de padding qui d�cale la baseline) */
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-397db60 {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-070bb9b,
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-722532b,
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511,
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-966003c {
  margin: 0 !important;
  padding: 0 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-070bb9b,
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-722532b {
  margin: 0 0 8px 0 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-9db4852 {
  margin: 7px 0 11px 0 !important;
  padding: 0 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-070bb9b p,
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-722532b p {
  margin: 0 0 0.2em !important;
  line-height: 1.35 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-9db4852 .wpr-button-wrap,
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-9db4852 a {
  margin: 0 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511,
body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-7626511 {
  text-align: left !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511 .woocommerce-product-details__short-description,
body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .woocommerce-product-details__short-description {
  font-family: "Poppins", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.68;
  color: #353535;
  text-align: left !important;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  margin: 0 !important;
  padding: 0 !important;
  hyphens: none !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511 section.product-description,
body.template-product-elementor .ck-product-elementor .ck-product-hero-summary section.product-description,
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511 .product-description,
body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .product-description {
  font-family: "Poppins", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.68;
  color: #353535;
  text-align: left !important;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  hyphens: none !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511 p,
body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-7626511 p,
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511 section.product-description p {
  margin: 0 0 0.95em !important;
  line-height: 1.68 !important;
  text-align: left !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511 p:last-child,
body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-7626511 p:last-child,
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511 section.product-description p:last-child {
  margin-bottom: 0 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511 h3,
body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-7626511 h3 {
  font-size: 16px !important;
  font-weight: 600 !important;
  margin: 1.1em 0 0.45em !important;
  line-height: 1.35 !important;
  color: #001a48 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511 h3:first-child,
body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-7626511 h3:first-child {
  margin-top: 0 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511 ul,
body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-7626511 ul {
  margin: 0 0 0.75em !important;
  padding-left: 1.15em !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511 li,
body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-7626511 li {
  margin-bottom: 0.35em !important;
  line-height: 1.68 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511 .woocommerce-product-details__short-description,
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511 .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
}

/* Hero description � typographie homog�ne (r�f. T.A.M) */
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511 hr,
body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-7626511 hr {
  display: none !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-7626511 section.product-description,
body.template-product-elementor .ck-product-elementor .ck-product-hero-summary section.product-description {
  display: contents;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-966003c .eael-creative-button,
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-966003c .eael-creative-button-wrapper {
  margin: 0 !important;
}

/* Colonne devis / CTA */
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-b60b4e2.e-con,
body.template-product-elementor .ck-product-elementor.ck-has-product-hero .ck-product-hero-cta.e-con {
  flex: 0 0 22% !important;
  width: 22% !important;
  max-width: 22% !important;
  min-width: 0 !important;
  align-self: flex-start !important;
  justify-content: flex-start !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 12px !important;
  row-gap: 12px !important;
  box-sizing: border-box;
}

@media (min-width: 769px) {
  body.template-product-elementor
    .ck-product-elementor.elementor-2600
    .elementor-element-b60b4e2.e-con:not(.ck-product-cta-col--empty),
  body.template-product-elementor
    .ck-product-elementor.ck-has-product-hero
    .ck-product-hero-cta.e-con:not(.ck-product-cta-col--empty) {
    min-width: 170px !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    :is(.elementor-element-b60b4e2, .ck-product-hero-cta)
    .elementor-element-6883427 {
    width: max-content !important;
    max-width: none !important;
    min-width: max-content !important;
    align-self: flex-start !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    :is(.elementor-element-b60b4e2, .ck-product-hero-cta)
    .elementor-element-6883427
    :is(p, .elementor-widget-container) {
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
  }
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-b60b4e2 > .elementor-element,
body.template-product-elementor .ck-product-elementor .ck-product-hero-cta > .elementor-element {
  margin: 0 !important;
  padding: 0 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-6883427,
body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-fb8934e {
  margin: 0 !important;
  padding: 0 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-6883427 p {
  margin: 0 !important;
  line-height: 1.3 !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-b60b4e2 .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
}

/* Sections sous le hero : m�me cadre 1280 px + marges que le hero */
body.template-product-elementor .ck-product-elementor.elementor-2600 > .e-con.e-parent:not(.elementor-element-1fbf6fe):not(.ck-product-hero-row),
body.template-product-elementor .ck-product-elementor.elementor-2600 > .elementor-element.e-con.e-parent:not(.elementor-element-1fbf6fe) {
  width: 100% !important;
  /* M�me cadre que le hero : content-max-width + 2 paddings (sinon d�calage gauche/droite) */
  max-width: calc(var(--ck-product-content-max-width, 860px) + 2 * var(--ck-page-pad-x, 24px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--ck-section-pad-x, var(--ck-page-pad-x)) !important;
  padding-right: var(--ck-section-pad-x, var(--ck-page-pad-x)) !important;
  box-sizing: border-box;
}

/* Blocs align�s : grille ic�nes � tableau specs (hero : r�gle d�di�e 860 px ci-dessus) */
body.template-product-elementor .ck-features-grid,
body.template-product-elementor .elementor-element-c945c87.e-con,
body.template-product-elementor .elementor-2600 .elementor-element-c945c87.e-con {
  width: 100% !important;
  /* M�me cadre que le hero : content-max-width + 2 paddings (sinon d�calage gauche/droite) */
  max-width: calc(var(--ck-product-content-max-width, 860px) + 2 * var(--ck-page-pad-x, 24px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--ck-section-pad-x, var(--ck-page-pad-x)) !important;
  padding-right: var(--ck-section-pad-x, var(--ck-page-pad-x)) !important;
  box-sizing: border-box !important;
}

body.template-product-elementor .elementor-element-c945c87 > .elementor-element-5f93e38,
body.template-product-elementor .elementor-element-c945c87 > #spec-container,
body.template-product-elementor #spec-container.elementor-element-5f93e38 {
  width: 100% !important;
  max-width: var(--ck-product-content-max-width, 860px) !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

body.template-product-elementor .elementor-element-c945c87.e-con {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  margin-top: var(--ck-product-section-gap, 24px) !important;
  padding-top: 0 !important;
}

body.template-product-elementor .elementor-element-c945c87 > .elementor-element-5f93e38,
body.template-product-elementor #spec-container.elementor-element-5f93e38 {
  --ck-specs-offset-x: 0px !important;
  min-width: 0 !important;
  flex: 0 0 auto !important;
  --width: 100% !important;
  --container-widget-width: 100% !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c945c87 > .elementor-element-5f93e38,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 #spec-container.elementor-element-5f93e38 {
  --ck-specs-offset-x: 0px !important;
}

body.template-product-elementor .elementor-element-c945c87 .elementor-element-5f93e38 .elementor-widget-container {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box;
}

/* Barres ic�nes Elementor legacy (doublon si body non nettoy�) */
body.template-product-elementor .elementor-element-1887273,
body.template-product-elementor .elementor-element-45c0810 {
  display: none !important;
}

/* Grille features CMS (remplace 1887273 / 45c0810) � 6 colonnes desktop */
body.template-product-elementor .ck-features-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0;
  width: 100% !important;
  max-width: var(--ck-product-content-max-width, min(100%, 860px)) !important;
  margin-top: var(--ck-product-section-gap, 24px) !important;
  margin-bottom: 0 !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 8px 0 !important;
  box-sizing: border-box !important;
  background: transparent;
  border-top: 1px solid #e8edf2;
  border-bottom: 1px solid #e8edf2;
}

body.template-product-elementor .ck-features-grid__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  padding: 16px 8px;
  gap: 3px;
  min-width: 0;
  background: transparent;
}

body.template-product-elementor .ck-features-grid__icon {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

body.template-product-elementor .ck-features-grid__icon img {
  width: 44px;
  height: 44px;
  object-fit: contain;
  display: block;
}

body.template-product-elementor .ck-features-grid__label {
  display: block;
  font-size: clamp(0.62rem, 0.55vw + 0.48rem, 0.78rem);
  font-weight: 700;
  color: var(--brand);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1.15;
  max-width: 100%;
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

body.template-product-elementor .ck-features-grid__sub {
  display: block;
  font-size: 0.78rem;
  color: var(--text-muted);
  line-height: 1.3;
  margin-top: 1px;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

@media (max-width: 900px) {
  body.template-product-elementor .ck-features-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.template-product-elementor .ck-features-grid__item {
    padding: 20px 12px;
  }
}

@media (max-width: 600px) {
  body.template-product-elementor .ck-features-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: calc(100% - 48px) !important;
    max-width: calc(100% - 48px) !important;
  }

  body.template-product-elementor .ck-features-grid__item {
    padding: 18px 10px;
  }
}

/* Tableau specs : m�me largeur visuelle que le hero, centr� (style lignes = wp-custom-css) */
body.template-product-elementor .product-specs-container,
body.template-product-elementor #spec-container {
  width: 100% !important;
  max-width: var(--ck-product-content-max-width, 860px) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

body.template-product-elementor .product-specs-container > p:empty,
body.template-product-elementor #spec-container > p:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Tableau specs � lignes coll�es au titre (pas de bande blanche au survol) */
body.template-product-elementor .product-specs-container .section-title,
body.template-product-elementor #spec-container .section-title {
  margin: 0 !important;
}

body.template-product-elementor .product-specs-container .product-info-row,
body.template-product-elementor #spec-container .product-info-row {
  margin: 0 !important;
}

/* Fiches sur-mesure (Startbox�) : markup ACF product-spec-title-container + info-value
   TPM 6080 : pas de wrapper .product-specs-container ? cibler aussi #spec-container */
body.template-product-elementor .product-specs-container .product-spec-title-container,
body.template-product-elementor #spec-container .product-spec-title-container {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  min-width: 36% !important;
  max-width: 36% !important;
  flex-shrink: 0 !important;
}

body.template-product-elementor .product-specs-container .product-spec-title-container br,
body.template-product-elementor #spec-container .product-spec-title-container br {
  display: none !important;
}

body.template-product-elementor .product-specs-container .product-spec-title-container .product-spec-title,
body.template-product-elementor #spec-container .product-spec-title-container .product-spec-title {
  font-weight: 600 !important;
  color: #001a48 !important;
  line-height: 1.35 !important;
}

body.template-product-elementor .product-specs-container .info-value,
body.template-product-elementor #spec-container .info-value {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  font-size: 0.92rem !important;
  color: #001a48 !important;
  line-height: 1.5 !important;
  font-weight: 400 !important;
}

body.template-product-elementor .product-specs-container .product-info-row:hover,
body.template-product-elementor #spec-container .product-info-row:hover {
  background: #f5f8fc !important;
}

body.template-product-elementor .product-specs-container .product-spec-left br,
body.template-product-elementor #spec-container .product-spec-left br {
  display: none !important;
}

@media (max-width: 768px) {
  body.template-product-elementor .product-specs-container .product-spec-title-container,
  body.template-product-elementor #spec-container .product-spec-title-container {
    min-width: 100% !important;
    max-width: 100% !important;
  }

  body.template-product-elementor .product-specs-container .info-value,
  body.template-product-elementor #spec-container .info-value {
    width: 100% !important;
    padding-left: 52px !important;
  }
}

/* Tablette */
@media (max-width: 1024px) {
  body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-1fbf6fe.e-con,
  body.template-product-elementor .ck-product-elementor.ck-has-product-hero .ck-product-hero-row.e-con {
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    row-gap: 28px !important;
  }

  body.template-product-elementor .ck-product-elementor .ck-product-hero-media.e-con,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary.e-con {
    align-self: flex-start !important;
  }

  body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-c52ee4c.e-con,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-media.e-con {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0;
  }

  body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-ed56dce.e-con,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary.e-con {
    flex: 0 0 62% !important;
    width: 62% !important;
    max-width: 62% !important;
  }

  body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-b60b4e2.e-con,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-cta.e-con {
    flex: 0 0 36% !important;
    width: 36% !important;
    max-width: 36% !important;
  }

  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c .ck-spin-360--embed .ck-spin-360__viewport {
    min-height: 0 !important;
    max-height: none;
    height: auto;
  }

  body.template-product-elementor .ck-cta-row-merged .elementor-element-ed56dce.e-con,
  body.template-product-elementor .ck-cta-row-merged .ck-product-hero-summary.e-con {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Mobile */
@media (max-width: 768px) {
  body.template-product-elementor .ck-product-cta-row {
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 8px;
    max-width: 100% !important;
  }

  body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-1fbf6fe.e-con,
  body.template-product-elementor .ck-product-elementor.ck-has-product-hero .ck-product-hero-row.e-con {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-c52ee4c.e-con,
  body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-ed56dce.e-con,
  body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-b60b4e2.e-con,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-media.e-con,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary.e-con,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-cta.e-con {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
  }

  body.template-product-elementor .ck-product-elementor .elementor-element-c52ee4c .ck-spin-360--embed {
    min-height: 0;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--embed.ck-spin-360--gallery {
    align-items: center !important;
    justify-content: flex-start !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--embed.ck-spin-360--gallery
    .ck-spin-360__main {
    width: 100% !important;
    max-width: 100% !important;
    align-items: center !important;
    justify-content: flex-start !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--embed.ck-spin-360--gallery
    .ck-spin-360__viewport {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--embed.ck-spin-360--gallery
    .ck-spin-360__thumbs {
    display: none !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--embed.ck-spin-360--gallery
    .ck-spin-360__controls {
    justify-content: center !important;
  }

  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c .ck-spin-360--embed .ck-spin-360__viewport {
    min-height: 0 !important;
    max-height: none;
    height: auto;
  }

  body.template-product-elementor .elementor-element-1887273 > .e-con-inner {
    justify-content: flex-start !important;
    gap: var(--ck-icons-gap, 8px) !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  body.template-product-elementor .elementor-element-4c10bd3 > .e-con.e-child,
  body.template-product-elementor .elementor-element-71b95c3 > .e-con.e-child {
    flex: 0 0 auto !important;
    width: max-content !important;
    max-width: 9.5rem !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    :is(.elementor-widget, .elementor-widget-container) {
    max-width: 100% !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    .elementor-element-7626511 {
    width: 100% !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    .elementor-element-7626511
    :is(.woocommerce-product-details__short-description, .product-description) {
    width: min(calc(100% - 16px), 34rem) !important;
    max-width: 34rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    :is(.elementor-element-722532b, .elementor-element-070bb9b) {
    width: 100% !important;
    text-align: center !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    .elementor-element-9db4852
    :is(.elementor-widget-container, .elementor-button-wrapper, .wpr-button-wrap) {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    .elementor-element-9db4852
    :is(.elementor-button, a, .elementor-button-link, .eael-creative-button) {
    width: fit-content !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
    justify-content: center !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    .elementor-element-9db4852 {
    width: fit-content !important;
    max-width: 100% !important;
    align-self: center !important;
    text-align: center !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    .elementor-element-9db4852
    .wpr-button {
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 5px 12px !important;
  }

  body.template-product-elementor .ck-product-cta-row > .elementor-element,
  body.template-product-elementor .ck-product-cta-row > .elementor-element > .elementor-widget,
  body.template-product-elementor .ck-product-cta-row > .elementor-element > .e-con {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    min-width: 0 !important;
  }

  body.template-product-elementor .ck-product-cta-row .eael-creative-button,
  body.template-product-elementor .ck-product-cta-row .ck-btn {
    display: inline-flex !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    justify-content: center !important;
    box-sizing: border-box !important;
  }

  body.template-product-elementor .ck-product-cta-row .elementor-widget-container,
  body.template-product-elementor .ck-product-cta-row .eael-creative-button-wrapper,
  body.template-product-elementor .ck-product-cta-row .cklaundry-container,
  body.template-product-elementor .ck-product-cta-row .cklaundry-form-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    a.eael-creative-button,
  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    .ck-btn {
    display: flex !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    box-sizing: border-box !important;
  }

  body.template-product-elementor .ck-product-category {
    width: 100% !important;
    max-width: 100% !important;
    padding-top: 8px !important;
    border-top: 1px solid #e8edf2 !important;
  }

  body.template-product-elementor .ck-product-category .elementor-widget-container,
  body.template-product-elementor .ck-product-category .product_meta {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 4px 8px !important;
    line-height: 1.35 !important;
  }
}

@media (max-width: 768px) {
  body.template-product-elementor .ck-product-cta-row {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
  }

  body.template-product-elementor .ck-product-cta-row > .elementor-element,
  body.template-product-elementor .ck-product-cta-row > .elementor-element > .elementor-widget,
  body.template-product-elementor .ck-product-cta-row > .elementor-element > .e-con,
  body.template-product-elementor .ck-product-cta-row .elementor-widget-container,
  body.template-product-elementor .ck-product-cta-row .eael-creative-button-wrapper,
  body.template-product-elementor .ck-product-cta-row .cklaundry-container,
  body.template-product-elementor .ck-product-cta-row .cklaundry-form-wrapper {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: 0 1 auto !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    a.eael-creative-button,
  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    .ck-btn {
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: calc((100vw - 48px - 8px) / 2) !important;
    flex: 0 1 auto !important;
    padding-left: 13px !important;
    padding-right: 13px !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 370px) {
  body.template-product-elementor .ck-product-cta-row {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  body.template-product-elementor .ck-product-cta-row > .elementor-element,
  body.template-product-elementor .ck-product-cta-row .elementor-widget-container,
  body.template-product-elementor .ck-product-cta-row .eael-creative-button-wrapper,
  body.template-product-elementor .ck-product-cta-row .cklaundry-container {
    width: 100% !important;
    max-width: 100% !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    a.eael-creative-button,
  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    .ck-btn {
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (max-width: 768px) {
  body.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary,
  body.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    .elementor-widget-container,
  body.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    :is(h1, h2, h3, p, span, div) {
    text-align: center !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    .elementor-element-7626511
    :is(.woocommerce-product-details__short-description, .product-description) {
    width: min(calc(100% - 16px), 34rem) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    .elementor-element-7626511
    :is(p, li) {
    text-align: center !important;
  }

  body.template-product-elementor .ck-product-category .elementor-widget-container,
  body.template-product-elementor .ck-product-category .product_meta {
    justify-content: center !important;
    text-align: center !important;
  }

  body.template-product-elementor .ck-product-cta-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.18fr);
    align-items: stretch !important;
    justify-content: center !important;
    gap: 8px !important;
    width: min(100%, 355px) !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.template-product-elementor .ck-product-cta-row > .elementor-element,
  body.template-product-elementor .ck-product-cta-row > .elementor-element > .elementor-widget,
  body.template-product-elementor .ck-product-cta-row > .elementor-element > .e-con,
  body.template-product-elementor .ck-product-cta-row .elementor-widget-container,
  body.template-product-elementor .ck-product-cta-row .eael-creative-button-wrapper,
  body.template-product-elementor .ck-product-cta-row .cklaundry-container,
  body.template-product-elementor .ck-product-cta-row .cklaundry-form-wrapper {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    a.eael-creative-button,
  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    .ck-btn {
    display: inline-flex !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    justify-content: center !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
    font-size: 13px !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    :is(.eael-creative-button-icon-left, .ck-btn-icon, svg) {
    flex: 0 0 auto !important;
  }
}

@media (max-width: 390px) {
  body.template-product-elementor .ck-product-cta-row {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: min(100%, 327px) !important;
  }
}

@media (max-width: 768px) {
  body.template-product-elementor .ck-product-cta-row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.template-product-elementor .ck-product-cta-row > .elementor-element,
  body.template-product-elementor .ck-product-cta-row > .elementor-element > .elementor-widget,
  body.template-product-elementor .ck-product-cta-row > .elementor-element > .e-con,
  body.template-product-elementor .ck-product-cta-row .elementor-widget-container,
  body.template-product-elementor .ck-product-cta-row .eael-creative-button-wrapper,
  body.template-product-elementor .ck-product-cta-row .cklaundry-container,
  body.template-product-elementor .ck-product-cta-row .cklaundry-form-wrapper {
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    a.eael-creative-button,
  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    .ck-btn {
    display: inline-flex !important;
    width: max-content !important;
    min-width: 0 !important;
    max-width: calc(100vw - 48px) !important;
    flex: 0 0 auto !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    font-size: 12.5px !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
  }
}

@media (min-width: 1025px) {
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-1fbf6fe.e-con,
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360.ck-has-product-hero
    .ck-product-hero-row.e-con {
    align-items: flex-start !important;
    align-content: flex-start !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-c52ee4c.e-con,
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-media.e-con,
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-ed56dce.e-con,
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-summary.e-con {
    align-self: flex-start !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--square-frame:not(.ck-spin-360--static):not(.is-fullscreen):not(.is-still-mode)
    .ck-spin-360__img {
    transform: scale(1.16) translateZ(0) !important;
  }

  body.template-product-elementor:not(.postid-2851):not(.postid-3814):not(.postid-6080):not(.postid-6618):not(.postid-6726):not(.postid-4215):not(.postid-4380):not(.postid-4628)
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--square-frame:not(.ck-spin-360--static).is-still-mode:not(.is-fullscreen)
    .ck-spin-360__img {
    transform: scale(1.16) translateZ(0) !important;
  }

  /* T.A.M � T.A.P � T.E.P � L.A.P � T.P.M � cadre carr� 554 px + zoom r�f�rence */
  body.template-product-elementor:is(.postid-2851, .postid-3814, .postid-4380, .postid-6080, .postid-6618, .postid-6726)
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-c52ee4c
    .ck-spin-360--embed.ck-spin-360--gallery,
  body.template-product-elementor:is(.postid-2851, .postid-3814, .postid-4380, .postid-6080, .postid-6618, .postid-6726)
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-media
    .ck-spin-360--embed.ck-spin-360--gallery {
    --ck-spin-max-width: 554px;
  }

  body.template-product-elementor:is(.postid-2851, .postid-3814, .postid-4380, .postid-6080, .postid-6618, .postid-6726)
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-c52ee4c.e-con,
  body.template-product-elementor:is(.postid-2851, .postid-3814, .postid-4380, .postid-6080, .postid-6618, .postid-6726)
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-media.e-con {
    max-width: min(
      100%,
      calc(var(--ck-spin-thumb, 42px) + var(--ck-spin-gallery-gap, 18px) + 554px)
    ) !important;
  }

  body.template-product-elementor:is(.postid-2851, .postid-3814, .postid-4380, .postid-6080, .postid-6618, .postid-6726)
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--square-frame.is-still-mode:not(.is-fullscreen)
    .ck-spin-360__img,
  body.template-product-elementor:is(.postid-2851, .postid-3814, .postid-4380, .postid-6080, .postid-6618, .postid-6726)
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360.ck-spin-360--static.ck-spin-360--square-frame:not(.is-fullscreen)
    .ck-spin-360__img {
    transform: scale(1.16) translateZ(0) !important;
    transform-origin: center center !important;
  }

  /* BOX CB / BOX ACC � hero cal� en haut (pas de vide sous la photo) */
  body.template-product-elementor.postid-4215
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-row.e-con,
  body.template-product-elementor.postid-4215
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-1fbf6fe.e-con,
  body.template-product-elementor.postid-4628
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-row.e-con,
  body.template-product-elementor.postid-4628
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-1fbf6fe.e-con,
  body.template-product-elementor.postid-4380
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-row.e-con,
  body.template-product-elementor.postid-4380
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-1fbf6fe.e-con {
    align-items: flex-start !important;
    align-content: flex-start !important;
    justify-content: flex-start !important;
  }

  body.template-product-elementor.postid-4215
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-ed56dce.e-con,
  body.template-product-elementor.postid-4215
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-summary.e-con,
  body.template-product-elementor.postid-4628
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-ed56dce.e-con,
  body.template-product-elementor.postid-4628
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-summary.e-con,
  body.template-product-elementor.postid-4380
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-ed56dce.e-con,
  body.template-product-elementor.postid-4380
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-summary.e-con {
    align-self: flex-start !important;
  }

  /* BOX CB (4215) / BOX ACC (4628) � cadre photo align� T.A.M (554 px), pas de d�bordement */
  body.template-product-elementor.postid-4215
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-c52ee4c
    .ck-spin-360--embed.ck-spin-360--gallery,
  body.template-product-elementor.postid-4215
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-media
    .ck-spin-360--embed.ck-spin-360--gallery,
  body.template-product-elementor.postid-4628
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-c52ee4c
    .ck-spin-360--embed.ck-spin-360--gallery,
  body.template-product-elementor.postid-4628
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-media
    .ck-spin-360--embed.ck-spin-360--gallery,
  body.template-product-elementor.postid-4380
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-c52ee4c
    .ck-spin-360--embed.ck-spin-360--gallery,
  body.template-product-elementor.postid-4380
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-media
    .ck-spin-360--embed.ck-spin-360--gallery {
    --ck-spin-max-width: 554px;
  }

  body.template-product-elementor.postid-4215
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-c52ee4c.e-con,
  body.template-product-elementor.postid-4215
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-media.e-con,
  body.template-product-elementor.postid-4628
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-c52ee4c.e-con,
  body.template-product-elementor.postid-4628
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-media.e-con,
  body.template-product-elementor.postid-4380
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-c52ee4c.e-con,
  body.template-product-elementor.postid-4380
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-media.e-con {
    max-width: min(
      100%,
      calc(var(--ck-spin-thumb, 42px) + var(--ck-spin-gallery-gap, 18px) + 554px)
    ) !important;
  }

  body.template-product-elementor.postid-4215
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--size-locked
    .ck-spin-360__main,
  body.template-product-elementor.postid-4628
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--size-locked
    .ck-spin-360__main,
  body.template-product-elementor.postid-4380
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--size-locked
    .ck-spin-360__main {
    max-width: 100% !important;
    overflow: hidden;
  }

  body.template-product-elementor.postid-4215
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--size-locked
    .ck-spin-360__viewport,
  body.template-product-elementor.postid-4628
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--size-locked
    .ck-spin-360__viewport,
  body.template-product-elementor.postid-4380
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--size-locked
    .ck-spin-360__viewport {
    max-width: 100% !important;
  }

  /* BOX CB / BOX ACC � colonne description �troite (m�me grille hero) */
  body.template-product-elementor.postid-4215
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-ed56dce.e-con,
  body.template-product-elementor.postid-4215
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-summary.e-con,
  body.template-product-elementor.postid-4628
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-ed56dce.e-con,
  body.template-product-elementor.postid-4628
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-summary.e-con,
  body.template-product-elementor.postid-4380
    .ck-product-elementor.has-ck-spin-360
    .elementor-element-ed56dce.e-con,
  body.template-product-elementor.postid-4380
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-summary.e-con {
    flex: 0 1 315px !important;
    width: auto !important;
    max-width: 315px !important;
    min-width: 0 !important;
  }

  /* BOX CB / ACC � remonter la grille si le texte allonge le hero sous la photo */
  body.template-product-elementor:is(.postid-4215, .postid-4380, .postid-4628) .ck-features-grid {
    margin-top: calc(
      var(--ck-product-section-gap, 24px) - var(--ck-hero-grid-pull, 0px)
    ) !important;
  }
}

/* =============================================================================
 * Fiche produit mobile — finition responsive commune (2026-07-29)
 * ============================================================================= */
@media (max-width: 768px) {
  /* Photo principale : format portrait du catalogue, largeur fluide et aucun
     recadrage. Le cadre ne peut jamais dépasser la largeur de l'écran. */
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--static:not(.is-fullscreen):not(.ck-spin-360--summary-stretch)
    .ck-spin-360__viewport {
    aspect-ratio: 2 / 3 !important;
    width: min(100%, 360px) !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: min(72vh, 540px) !important;
    margin-right: auto !important;
    margin-left: auto !important;
    overflow: hidden !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--static:not(.is-fullscreen):not(.ck-spin-360--summary-stretch)
    .ck-spin-360__viewport
    .ck-spin-360__img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
  }

  /* Grille d'icônes : deux colonnes égales et contenu centré. */
  body.template-product-elementor .ck-features-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: start !important;
    gap: 24px 14px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.template-product-elementor .ck-features-grid__item {
    display: grid !important;
    grid-template-rows: 36px auto auto !important;
    align-items: start !important;
    align-content: start !important;
    justify-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
    text-align: center !important;
  }

  body.template-product-elementor
    .ck-features-grid__item
    :is(.ck-features-grid__icon, .ck-feature-icon) {
    align-self: start !important;
    justify-self: center !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  body.template-product-elementor .ck-features-grid__label,
  body.template-product-elementor .ck-features-grid__sub {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: auto !important;
    margin-left: auto !important;
    text-align: center !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
  }
}

@media (max-width: 600px) {
  /* Les deux CTA ne sont plus comprimés côte à côte : ils s'empilent et
     restent entièrement visibles, centrés, même à 320 px de large. */
  body.template-product-elementor .ck-product-cta-row,
  body.template-product-elementor .ck-product-elementor .ck-product-cta-row,
  body.template-product-elementor .ck-cta-row-merged .ck-product-cta-row {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-right: auto !important;
    margin-left: auto !important;
    gap: 10px !important;
    overflow: visible !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    > :is(.elementor-element, .ck-product-cta-devis),
  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    :is(.elementor-widget, .elementor-widget-container, .eael-creative-button-wrapper) {
    flex: 0 0 auto !important;
    width: min(100%, 300px) !important;
    min-width: 0 !important;
    max-width: 300px !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    :is(.eael-creative-button, .ckw-cta, .ck-btn) {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 300px !important;
    min-width: 0 !important;
    margin-right: auto !important;
    margin-left: auto !important;
    box-sizing: border-box !important;
  }
}

/* Aper�u grand format : garde-fou final contre les r�gles historiques
   du mod�le Elementor charg�es apr�s le viewer. */
html.ck-spin-360-modal-open
  body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360.is-fullscreen {
  position: fixed !important;
  inset: 0 !important;
  z-index: 999999 !important;
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: 54px minmax(0, 1fr) !important;
  grid-template-rows: minmax(0, 1fr) !important;
  align-items: center !important;
  justify-content: stretch !important;
  width: 100vw !important;
  max-width: none !important;
  height: 100vh !important;
  height: 100dvh !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding:
    max(18px, env(safe-area-inset-top))
    max(22px, env(safe-area-inset-right))
    max(18px, env(safe-area-inset-bottom))
    max(22px, env(safe-area-inset-left)) !important;
  gap: clamp(14px, 2vw, 28px) !important;
  overflow: hidden !important;
  background:
    radial-gradient(circle at 50% 38%, rgba(255, 255, 255, 0.98) 0 26%, rgba(245, 249, 252, 0.96) 70%),
    linear-gradient(145deg, #eef6fb 0%, #ffffff 52%, #edf4f8 100%) !important;
}

html.ck-spin-360-modal-open
  body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360.is-fullscreen
  > .ck-spin-360__main {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: 100% !important;
  max-height: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
}

html.ck-spin-360-modal-open
  body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360.is-fullscreen
  .ck-spin-360__viewport {
  box-sizing: border-box !important;
  flex: 1 1 auto !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: calc(100vh - 104px) !important;
  height: calc(100dvh - 104px) !important;
  max-height: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: clamp(10px, 2vw, 28px) !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  border-radius: clamp(18px, 2vw, 26px) !important;
  background: rgba(255, 255, 255, 0.76) !important;
  box-shadow:
    0 28px 70px rgba(5, 63, 92, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.96) !important;
}

html.ck-spin-360-modal-open
  body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360.is-fullscreen
  :is(.ck-spin-360__stage, .ck-spin-360__img, .ck-spin-360__layer) {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
}

html.ck-spin-360-modal-open
  body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360.is-fullscreen
  .ck-spin-360__controls {
  width: max-content !important;
  max-width: calc(100vw - 32px) !important;
  min-height: 48px !important;
  margin: 12px auto 0 !important;
  padding: 6px !important;
  gap: 4px !important;
}

html.ck-spin-360-modal-open
  body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360.is-fullscreen
  .ck-spin-360__ctrl--fullscreen {
  position: fixed !important;
  z-index: 5 !important;
  top: max(18px, env(safe-area-inset-top)) !important;
  right: max(18px, env(safe-area-inset-right)) !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  border-radius: 14px !important;
  background: var(--ck-spin-navy) !important;
  color: #fff !important;
}

@media (max-width: 768px) {
  html.ck-spin-360-modal-open
    body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360.is-fullscreen {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    padding:
      max(10px, env(safe-area-inset-top))
      max(10px, env(safe-area-inset-right))
      max(9px, env(safe-area-inset-bottom))
      max(10px, env(safe-area-inset-left)) !important;
    gap: 8px !important;
  }

  html.ck-spin-360-modal-open
    body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360.is-fullscreen
    > .ck-spin-360__main {
    order: 1 !important;
    flex: 1 1 auto !important;
    height: auto !important;
  }

  html.ck-spin-360-modal-open
    body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360.is-fullscreen
    .ck-spin-360__viewport {
    width: 100% !important;
    height: calc(100vh - 78px) !important;
    height: calc(100dvh - 78px) !important;
    padding: 8px !important;
    border-radius: 18px !important;
  }

  html.ck-spin-360-modal-open
    body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360.is-fullscreen
    > .ck-spin-360__thumbs {
    order: 2 !important;
    display: flex !important;
    flex: 0 0 50px !important;
    flex-direction: row !important;
    width: 100% !important;
    max-width: none !important;
    height: 50px !important;
    max-height: 50px !important;
    padding: 1px 2px 2px !important;
    gap: 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
  }

  html.ck-spin-360-modal-open
    body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360.is-fullscreen
    .ck-spin-360__controls {
    position: absolute !important;
    z-index: 3 !important;
    left: 50% !important;
    bottom: 10px !important;
    transform: translateX(-50%) !important;
    margin: 0 !important;
  }

  html.ck-spin-360-modal-open
    body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360.is-fullscreen
    .ck-spin-360__ctrl--fullscreen {
    top: max(14px, env(safe-area-inset-top)) !important;
    right: max(14px, env(safe-area-inset-right)) !important;
  }
}

/* ------------------------------------------------------------------ */
/* Tableau specs : remplir tout le cadre du hero/grille (m�me axe G/D) */
/* Le wrapper c945c87 est cal� sur 960 px ; on neutralise le cap 860   */
/* px h�rit� d'Elementor sur #spec-container pour aligner le bord droit */
/* de la description avec la grille features et le tableau specs.       */
/* ------------------------------------------------------------------ */
body.template-product-elementor .elementor-element-c945c87 > #spec-container,
body.template-product-elementor .elementor-element-c945c87 > .elementor-element-5f93e38,
body.template-product-elementor #spec-container.elementor-element-5f93e38,
body.template-product-elementor .product-specs-container {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ------------------------------------------------------------------ */
/* Alignement haut : le haut de la colonne photo est cal� sur le nom    */
/* du produit (haut de la colonne texte). Photo, description et         */
/* espacements inchang�s.                                               */
/* C�te � c�te uniquement (desktop) ; en mobile les colonnes sont       */
/* empil�es et la r�gle n'a aucun effet ind�sirable.                    */
/* ------------------------------------------------------------------ */
@media (min-width: 1025px) {
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c.e-con {
    align-self: flex-start !important;
  }
}

@media (min-width: 1025px) {
  body.template-product-elementor.single-product.postid-4002
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--size-locked:not(.is-fullscreen)
    .ck-spin-360__viewport,
  body.template-product-elementor.single-product.postid-6714
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--size-locked:not(.is-fullscreen)
    .ck-spin-360__viewport {
    margin-left: -44.5px !important;
    margin-right: -44.5px !important;
  }

  body.template-product-elementor.single-product:is(.postid-2851, .postid-3814, .postid-6080, .postid-6618, .postid-6726)
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--square-frame:not(.is-fullscreen)
    .ck-spin-360__img,
  html body.template-product-elementor.single-product:is(.postid-2851, .postid-3814, .postid-6080, .postid-6618, .postid-6726)
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360.ck-spin-360--square-frame:not(.is-fullscreen)
    .ck-spin-360__img {
    transform: scale(1.16) translateZ(0) !important;
    transform-origin: center center !important;
  }

  body.template-product-elementor.single-product.postid-4002
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--square-frame:not(.ck-spin-360--static):not(.is-fullscreen):not(.is-still-mode)
    .ck-spin-360__img,
  body.template-product-elementor.single-product.postid-4002
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--square-frame:not(.ck-spin-360--static).is-still-mode:not(.is-fullscreen)
    .ck-spin-360__img {
    transform: scale(1.16) translateZ(0) !important;
    transform-origin: center center !important;
  }

  html body.template-product-elementor.single-product.postid-4002
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360.ck-spin-360--square-frame.is-still-mode:not(.is-fullscreen)
    .ck-spin-360__img {
    transform: scale(1.16) translateZ(0) !important;
    transform-origin: center center !important;
  }

  body.template-product-elementor.single-product.postid-6714
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--square-frame:not(.ck-spin-360--static):not(.is-fullscreen)
    .ck-spin-360__img,
  html body.template-product-elementor.single-product.postid-6714
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360.ck-spin-360--square-frame.is-still-mode:not(.is-fullscreen)
    .ck-spin-360__img {
    transform: scale(1.16) translateZ(0) !important;
    transform-origin: center center !important;
  }

  body.template-product-elementor.single-product.postid-6716
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--square-frame:not(.ck-spin-360--static):not(.is-fullscreen):not(.is-still-mode)
    .ck-spin-360__img {
    transform: scale(1.16) translateZ(0) !important;
    transform-origin: center center !important;
  }

  html body.template-product-elementor.single-product.postid-6716
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360.ck-spin-360--square-frame.is-still-mode:not(.is-fullscreen)
    .ck-spin-360__img {
    transform: scale(1.16) translateZ(0) !important;
    transform-origin: center center !important;
  }
}

/* Mises en situation � l�gende sous la galerie (vignettes Situ 1 / Situ 2) */
body.template-product-elementor .ck-spin-360__situation-caption {
  width: 100%;
  max-width: 100%;
  margin: 12px 0 0;
  padding: 12px 14px;
  font-family: "Poppins", "Inter", system-ui, sans-serif;
  font-size: 0.88rem;
  line-height: 1.55;
  color: #4a5568;
  background: #f7fafc;
  border-left: 3px solid #3399ff;
  border-radius: 0 8px 8px 0;
  box-sizing: border-box;
}

body.template-product-elementor .ck-spin-360__situation-caption[hidden] {
  display: none !important;
}

body.template-product-elementor .ck-spin-360--has-situation-caption .ck-spin-360__controls {
  margin-top: 0;
}

/* Mises en situation : format T.A.M uniforme, centre et sans debordement. */
body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360--situation-view.is-still-mode:not(.is-fullscreen) {
  min-height: 0 !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360--situation-view.is-still-mode:not(.is-fullscreen)
  .ck-spin-360__main {
  min-height: 0 !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360--situation-view.is-still-mode:not(.is-fullscreen)
  .ck-spin-360__viewport {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 554px !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  align-items: flex-start !important;
  justify-content: center !important;
  overflow: hidden !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360--situation-view.is-still-mode:not(.is-fullscreen)
  .ck-spin-360__stage {
  display: flex !important;
  width: min(500px, 100%) !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: none !important;
  aspect-ratio: 1 / 1;
  align-items: center !important;
  justify-content: center !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360--situation-view.is-still-mode:not(.is-fullscreen)
  .ck-spin-360__img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
}

/* Mises en situation � bloc texte (accessoires sans galerie situation) */
body.template-product-elementor .ck-situation-section {
  margin-top: 1.25em;
  padding-top: 1em;
  border-top: 1px solid #e6e8ee;
}

body.template-product-elementor .ck-situation-section h3 {
  margin: 0 0 0.75em !important;
  font-size: 0.95rem;
  font-weight: 600;
  color: #1a202c;
  letter-spacing: 0.02em;
}

body.template-product-elementor .ck-situation-scene {
  margin: 0 0 0.85em !important;
  font-size: 0.9rem;
  line-height: 1.55;
  color: #4a5568;
}

body.template-product-elementor .ck-situation-scene:last-child {
  margin-bottom: 0 !important;
}

/* Les photos principales occupent mieux leur cadre, sans modifier le bloc texte. */
@media (min-width: 1025px) {
  body.template-product-elementor {
    --ck-product-hero-max-width: min(100%, 1120px);
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--embed.ck-spin-360--gallery:not(.is-fullscreen) {
    --ck-spin-max-width: 600px !important;
    max-width: min(
      100%,
      calc(
        var(--ck-spin-thumb, 42px) + var(--ck-spin-gallery-gap, 18px) + 600px
      )
    ) !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    :is(.elementor-element-c52ee4c, .ck-product-hero-media).e-con {
    max-width: min(
      100%,
      calc(
        var(--ck-spin-thumb, 42px) + var(--ck-spin-gallery-gap, 18px) + 600px
      )
    ) !important;
  }
}

body.template-product-elementor .ck-situation-scene__label {
  display: block;
  margin-bottom: 0.2em;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #3399ff;
}

/* Mode statique, avant le verrouillage JS : l'image occupe la largeur pleine et
   sa hauteur decoule des attributs width/height -> espace reserve des le premier
   rendu (le width:auto !important generique la reduisait a 0 avant chargement).
   Apres le lock (--size-locked), les regles d'origine reprennent la main. */
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c .ck-spin-360--static .ck-spin-360__img,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-media .ck-spin-360--static .ck-spin-360__img {
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center !important;
}

/* Le cadre statique tient par l'aspect-ratio inline (dimensions reelles). */
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--static .ck-spin-360__viewport {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

/* Grille pictos : autant de colonnes que de cartes reellement remplies.
   La grille figee a 6 colonnes laissait des cellules vides, qui affichaient le
   fond gris du conteneur a droite des icones (produits avec moins de 6 pictos). */
body.template-product-elementor .ck-features-grid {
  display: flex !important;
  flex-wrap: wrap;
  grid-template-columns: none !important;
}

body.template-product-elementor .ck-features-grid__item {
  flex: 1 1 0 !important;
  min-width: 0;
}

@media (max-width: 900px) {
  body.template-product-elementor .ck-features-grid__item {
    flex: 1 1 calc(33.333% - 1px) !important;
  }
}

@media (max-width: 600px) {
  body.template-product-elementor .ck-features-grid__item {
    flex: 1 1 calc(50% - 1px) !important;
  }
}

/* Aucune caracteristique technique saisie : pas de zone vide sous la grille. */
body.ck360-no-specs .elementor-element-c945c87,
body.ck360-no-specs #spec-container,
body.ck360-no-specs .product-specs-container {
  display: none !important;
}

/* --- Mise en page hero adaptee a CKWash ---------------------------------
   Les largeurs heritees de CKLaundry (media fixe a 700px) ecrasaient la colonne
   texte a ~20px sur ce site. Repartition en pourcentage, empilement sur mobile. */
body.template-product-elementor .ck-product-elementor .elementor-element-1fbf6fe {
  max-width: min(100%, 1200px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  gap: 40px !important;
  align-items: flex-start !important;
  flex-wrap: wrap !important;
}

body.template-product-elementor .ck-product-elementor .elementor-element-c52ee4c {
  flex: 1 1 52% !important;
  width: auto !important;
  max-width: 52% !important;
  min-width: 0 !important;
}

body.template-product-elementor .ck-product-elementor .elementor-element-ed56dce {
  flex: 1 1 40% !important;
  width: auto !important;
  max-width: none !important;
  min-width: 300px !important;
}

body.template-product-elementor .ck-product-elementor .elementor-element-c52ee4c .ck-spin-360 {
  width: 100% !important;
  max-width: 100% !important;
}

/* Description produit : vrai paragraphe lisible (comme sur CKLaundry). */
body.template-product-elementor .ck-product-elementor .elementor-element-ed56dce .elementor-widget-text-editor p {
  line-height: 1.6;
  margin-bottom: 10px;
}

@media (max-width: 1024px) {
  body.template-product-elementor .ck-product-elementor .elementor-element-c52ee4c,
  body.template-product-elementor .ck-product-elementor .elementor-element-ed56dce {
    flex: 1 1 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

/* --- Hero CKWash : les regles d'origine sont verrouillees sur .elementor-2600
   (template CKLaundry) et ne s'appliquaient pas au template CKWash, laissant la
   colonne texte a ~20px. Memes proportions, sans dependre de l'ID du template. */
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-1fbf6fe.e-con {
  max-width: min(100%, 1240px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  gap: 32px !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c.e-con {
  flex: 0 1 var(--ck-hero-media-pct, 52%) !important;
  width: var(--ck-hero-media-pct, 52%) !important;
  max-width: var(--ck-hero-media-pct, 52%) !important;
  min-width: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-ed56dce.e-con {
  /* Colonne texte plafonnee : trop large a 42% (540px) sur les grands ecrans,
     ce qui desequilibrait la fiche (texte plus imposant que la photo, surtout
     sur les produits a photo portrait). Meme largeur max sur toutes les fiches. */
  flex: 1 1 42% !important;
  width: auto !important;
  max-width: 440px !important;
  min-width: 300px !important;
  margin-left: 0 !important;
  align-self: flex-start !important;
}

@media (max-width: 1024px) {
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c.e-con,
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-ed56dce.e-con {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

/* Description produit : alignement a gauche (le texte justifie etirait les mots)
   et paragraphes espaces pour la lisibilite. */
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-ed56dce .elementor-widget-text-editor,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-ed56dce .elementor-widget-text-editor p {
  text-align: left !important;
  line-height: 1.65 !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-ed56dce .elementor-widget-text-editor p + p {
  margin-top: 12px !important;
}

/* Hero : colonne texte calee en haut ; photo etiree titre ? recommandations. */
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-1fbf6fe.e-con {
  align-items: flex-start !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-ed56dce.e-con {
  align-self: flex-start !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c.e-con {
  align-self: flex-start !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--static .ck-spin-360__main {
  justify-content: flex-start !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--static .ck-spin-360__viewport {
  align-items: flex-start !important;
  justify-content: center !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--static .ck-spin-360__img,
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c .ck-spin-360--static .ck-spin-360__img {
  object-position: top center !important;
  margin: 0 auto !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--static .ck-spin-360__thumbs {
  align-self: flex-start !important;
}


@media (max-width: 1024px) {
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-1fbf6fe.e-con {
    align-items: stretch !important;
  }
}

/* Ast�risques options / notes l�gales (specs ACF) */
body.template-product-elementor .ck-asterisk {
  color: #e10600 !important;
  font-weight: 700;
}

/* Vignettes sous l'image plutot qu'en colonne isolee a gauche : avec une seule
   vignette, la bande verticale laissait un picto orphelin loin de l'image. */
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--static.ck-spin-360--gallery {
  flex-direction: column !important;
  align-items: center !important;
  gap: 14px !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--static .ck-spin-360__main {
  order: 1 !important;
  width: 100% !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--static .ck-spin-360__thumbs {
  order: 2 !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-self: center !important;
  width: auto !important;
  flex: 0 0 auto !important;
  gap: 10px !important;
}

/* Vignettes : bande verticale a gauche calee en haut, comme sur CKLaundry
   (annule le placement sous l'image essaye precedemment). */
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--static.ck-spin-360--gallery {
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 14px !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--static .ck-spin-360__thumbs {
  order: 0 !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  justify-content: flex-start !important;
  align-self: flex-start !important;
  width: 48px !important;
  flex: 0 0 48px !important;
  gap: 10px !important;
}

body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--static .ck-spin-360__main {
  order: 1 !important;
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
}

/* Mobile : vignettes en rangee sous l'image (bande verticale trop etroite). */
@media (max-width: 767px) {
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--static.ck-spin-360--gallery {
    flex-direction: column !important;
    align-items: center !important;
  }
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--static .ck-spin-360__thumbs {
    order: 2 !important;
    flex-direction: row !important;
    width: auto !important;
    flex: 0 0 auto !important;
    align-self: center !important;
  }
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--static .ck-spin-360__main {
    order: 1 !important;
    width: 100% !important;
  }
}

/* Le widget description (copie du widget dynamique CKLaundry) a un
   widget-container en display:flex/row herite : avec plusieurs paragraphes
   (description decoupee), ca les alignait cote a cote en colonnes au lieu de
   les empiler. Force l'empilement vertical normal. */
body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-ckwdesc1 .elementor-widget-container {
  display: block !important;
}

/* Premier affichage : Elementor livre d'abord trois colonnes et une image non
   dimensionnee, puis le JS regroupe les CTA et verrouille la galerie. Masquer
   ce seul etat transitoire evite le flash 586x878 -> 480x720. Le bootstrap
   pose un attribut de secours apres 1,8 s si l'alignement ne peut pas finir. */
body.template-product-elementor
  [data-elementor-type="product"]:not([data-ck-layout-ready]) {
  visibility: hidden !important;
}

body.template-product-elementor
  [data-elementor-type="product"][data-ck-layout-ready] {
  visibility: visible !important;
}

/* ------------------------------------------------------------------ */
/* Uniformisation finale des fiches produit - desktop / tablette / mobile */
/* ------------------------------------------------------------------ */
body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-product-hero-row.e-con {
  align-items: flex-start !important;
  align-content: flex-start !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  :is(.ck-product-hero-media.e-con, .ck-product-hero-summary.e-con) {
  align-self: flex-start !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-product-cta-col--empty {
  display: none !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360__viewport {
  aspect-ratio: 1 / 1 !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}

body.template-product-elementor
  .ck-product-elementor.has-ck-spin-360
  .ck-spin-360__viewport
  :is(.ck-spin-360__img, .ck-spin-360__layer) {
  object-fit: contain !important;
  object-position: center center !important;
}

/* Desktop : cadre photo etire titre ? bas du bloc recommandations (pas carre). */
@media (min-width: 1025px) {
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--summary-stretch
    .ck-spin-360__viewport,
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--static.ck-spin-360--summary-stretch
    .ck-spin-360__viewport {
    aspect-ratio: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--summary-stretch
    .ck-spin-360__viewport
    :is(.ck-spin-360__img, .ck-spin-360__layer) {
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
    transform-origin: center center !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--summary-stretch.ck-spin-360--gallery {
    align-items: stretch !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--summary-stretch
    .ck-spin-360__main {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    min-height: 0 !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--summary-stretch
    .ck-spin-360__controls {
    margin-top: auto !important;
    flex: 0 0 auto !important;
  }
}

@media (min-width: 1025px) {
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-row.e-con {
    flex-wrap: nowrap !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-media.e-con {
    flex: 0 1 660px !important;
    width: min(100%, 660px) !important;
    max-width: 660px !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-summary.e-con {
    flex: 1 1 420px !important;
    width: auto !important;
    max-width: 440px !important;
    min-width: 300px !important;
  }
}

@media (min-width: 841px) and (max-width: 1024px) {
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-row.e-con {
    display: grid !important;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr) !important;
    gap: 28px !important;
    padding-left: clamp(24px, 4vw, 40px) !important;
    padding-right: clamp(24px, 4vw, 40px) !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    :is(.ck-product-hero-media.e-con, .ck-product-hero-summary.e-con) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

@media (min-width: 601px) and (max-width: 840px) {
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-row.e-con {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 24px !important;
    padding-left: 28px !important;
    padding-right: 28px !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-media.e-con {
    width: min(100%, 540px) !important;
    max-width: 540px !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-summary.e-con {
    width: min(100%, 640px) !important;
    max-width: 640px !important;
  }
}

@media (max-width: 600px) {
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-row.e-con {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 24px !important;
    padding: 20px !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    :is(.ck-product-hero-media.e-con, .ck-product-hero-summary.e-con) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-summary
    :is(.product-description, .woocommerce-product-details__short-description, p, li) {
    text-align: center !important;
  }
}

@media (max-width: 600px) {
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-summary
    .product_title {
    display: block !important;
    width: 100% !important;
    margin-right: auto !important;
    margin-left: auto !important;
    text-align: center !important;
  }

  body.template-product-elementor .ck-product-category,
  body.template-product-elementor .ck-product-category .elementor-widget-container,
  body.template-product-elementor .ck-product-category .product_meta {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    justify-content: center !important;
    text-align: center !important;
  }

  body.template-product-elementor
    .ck-product-category
    .posted_in.detail-container {
    display: flex !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin-right: auto !important;
    margin-left: auto !important;
    align-items: baseline !important;
    justify-content: center !important;
    gap: 4px 8px !important;
    text-align: center !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    :is(.ck-spin-360, .ck-spin-360__main, .ck-spin-360__viewport, .ck-spin-360__img) {
    visibility: visible !important;
    opacity: 1 !important;
  }
}

/*
 * CTA CKWash � source visuelle unique cal�e sur CKLaundry.
 * Les liens et les gestionnaires CKWash restent port�s par le HTML existant.
 */
body.template-product-elementor .ck-product-cta-row {
  --ck-cta-height: 44px;
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
  gap: 8px !important;
  overflow: visible !important;
}

body.template-product-elementor
  .ck-product-cta-row
  > :is(.elementor-element, .ck-product-cta-devis),
body.template-product-elementor
  .ck-product-cta-row
  :is(
    .elementor-widget,
    .elementor-widget-container,
    .eael-creative-button-wrapper
  ) {
  display: flex !important;
  align-items: center !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 auto !important;
}

body.template-product-elementor
  .ck-product-elementor
  .ck-product-cta-row
  :is(.eael-creative-button, .ckw-cta) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: var(--ck-cta-height) !important;
  min-height: var(--ck-cta-height) !important;
  margin: 0 !important;
  padding: 0 10px !important;
  gap: 8px !important;
  box-sizing: border-box !important;
  font-family:
    Poppins, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  vertical-align: middle !important;
  transition:
    transform 180ms ease,
    background-color 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    color 180ms ease !important;
}

body.template-product-elementor
  .ck-product-elementor
  .ck-product-cta-row
  .eael-creative-button {
  border: 0 !important;
  border-radius: 5px !important;
  background: #0c5895 !important;
  background-image: none !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

body.template-product-elementor
  .ck-product-elementor
  .ck-product-cta-row
  .eael-creative-button
  .creative-button-inner {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
}

body.template-product-elementor
  .ck-product-elementor
  .ck-product-cta-row
  .eael-creative-button
  :is(.eael-creative-button-icon-left, .eael-creative-button-icon-right) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 20px !important;
  min-width: 20px !important;
  height: 20px !important;
  min-height: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  color: #ffffff !important;
}

body.template-product-elementor
  .ck-product-elementor
  .ck-product-cta-row
  .eael-creative-button
  :is(.eael-creative-button-icon-left, .eael-creative-button-icon-right)
  svg {
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  fill: currentColor !important;
}

body.template-product-elementor
  .ck-product-elementor
  .ck-product-cta-row
  .ckw-cta {
  overflow: hidden !important;
  border: 1px solid #0c5895 !important;
  border-radius: 50px !important;
  background: #ffffff !important;
  color: #001a48 !important;
  box-shadow: none !important;
  padding: 0 6px 0 14px !important;
}

body.template-product-elementor
  .ck-product-elementor
  .ck-product-cta-row
  .ckw-cta__icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  min-width: 32px !important;
  max-width: 32px !important;
  height: 32px !important;
  min-height: 32px !important;
  max-height: 32px !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 32px !important;
  border-radius: 50% !important;
  background: #0c5895 !important;
  color: #ffffff !important;
}

body.template-product-elementor
  .ck-product-elementor
  .ck-product-cta-row
  .ckw-cta__icon
  svg {
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  fill: none !important;
  stroke: #ffffff !important;
  stroke-width: 2.3 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

body.template-product-elementor
  .ck-product-elementor
  .ck-product-cta-row
  .eael-creative-button:hover,
body.template-product-elementor
  .ck-product-elementor
  .ck-product-cta-row
  .eael-creative-button:focus-visible {
  border-color: transparent !important;
  background: #084778 !important;
  color: #ffffff !important;
  box-shadow: 0 7px 16px rgba(12, 88, 149, 0.2) !important;
  transform: translateY(-1px);
}

body.template-product-elementor
  .ck-product-elementor
  .ck-product-cta-row
  .eael-creative-button:hover
  :is(.eael-creative-button-icon-left, .eael-creative-button-icon-right),
body.template-product-elementor
  .ck-product-elementor
  .ck-product-cta-row
  .eael-creative-button:focus-visible
  :is(.eael-creative-button-icon-left, .eael-creative-button-icon-right) {
  color: #ffffff !important;
}

body.template-product-elementor
  .ck-product-elementor
  .ck-product-cta-row
  .ckw-cta:hover,
body.template-product-elementor
  .ck-product-elementor
  .ck-product-cta-row
  .ckw-cta:focus-visible {
  border-color: #0c5895 !important;
  background: #f2f8fc !important;
  color: #001a48 !important;
  box-shadow: 0 7px 16px rgba(12, 88, 149, 0.14) !important;
  transform: translateY(-1px);
}

body.template-product-elementor
  .ck-product-elementor
  .ck-product-cta-row
  :is(.eael-creative-button, .ckw-cta):focus-visible {
  outline: 3px solid rgba(0, 91, 234, 0.22) !important;
  outline-offset: 2px !important;
}

@media (max-width: 768px) {
  body.template-product-elementor .ck-product-cta-row {
    width: max-content !important;
    max-width: 100% !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }
}

@media (max-width: 380px) {
  body.template-product-elementor .ck-product-cta-row {
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
  }

  body.template-product-elementor
    .ck-product-cta-row
    > :is(.elementor-element, .ck-product-cta-devis),
  body.template-product-elementor
    .ck-product-cta-row
    :is(
      .elementor-widget,
      .elementor-widget-container,
      .eael-creative-button-wrapper
    ),
  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    :is(.eael-creative-button, .ckw-cta) {
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    :is(.eael-creative-button, .ckw-cta) {
    transition: none !important;
  }
}

/* ==========================================================================
   Photo statique : cadre resserr� + zoom soft. Galeries 360 inchang�es.
   ========================================================================== */
@media (min-width: 1025px) {
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360:has(.ck-spin-360--static)
    :is(.elementor-element-c52ee4c, .ck-product-hero-media).e-con {
    flex: 0 1 480px !important;
    width: min(100%, 480px) !important;
    max-width: 480px !important;
    min-width: 0 !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--static.ck-spin-360--embed.ck-spin-360--gallery:not(.is-fullscreen) {
    --ck-spin-thumb: 0px !important;
    --ck-spin-gallery-gap: 0px !important;
    --ck-spin-max-width: 480px !important;
    width: 100% !important;
    max-width: min(100%, 480px) !important;
    gap: 0 !important;
    min-height: 0 !important;
    height: auto !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--static:not(.is-fullscreen)
    .ck-spin-360__viewport {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--static.ck-spin-360--square-frame:not(.is-fullscreen):not(.ck-spin-360--summary-stretch)
    .ck-spin-360__img,
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--static:not(.is-fullscreen):not(.ck-spin-360--summary-stretch)
    .ck-spin-360__viewport
    .ck-spin-360__img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: scale(1.28) translateZ(0) !important;
    transform-origin: center center !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--summary-stretch:not(.is-fullscreen)
    .ck-spin-360__viewport
    .ck-spin-360__img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
    transform-origin: center center !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360:has(.ck-spin-360--static)
    .ck-product-hero-summary.e-con {
    flex: 1 1 395px !important;
    width: auto !important;
    max-width: 440px !important;
    min-width: 300px !important;
    align-self: flex-start !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360:has(.ck-spin-360--static)
    .ck-product-hero-row.e-con {
    gap: 28px !important;
    align-items: flex-start !important;
  }
}

/* =============================================================================
   MOBILE TEMPLATE � axe central (toutes fiches body.template-product-elementor)
   v3.2.47 : �tendu � 1024px (surcharge colonne 62% tablette + align JS)
   ============================================================================= */
@media (max-width: 1024px) {
  body.template-product-elementor .ck-product-elementor.ck-has-product-hero .ck-product-hero-row.e-con,
  body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-1fbf6fe.e-con,
  body.template-product-elementor .ck-product-hero-row.e-con {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.template-product-elementor .ck-product-elementor .ck-product-hero-media.e-con,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary.e-con,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-cta.e-con,
  body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-c52ee4c.e-con,
  body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-ed56dce.e-con,
  body.template-product-elementor .ck-product-elementor.elementor-2600 .elementor-element-b60b4e2.e-con {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    align-self: center !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360--embed.ck-spin-360--gallery,
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .elementor-element-c52ee4c .ck-spin-360--embed.ck-spin-360--gallery,
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-media .ck-spin-360--embed.ck-spin-360--gallery {
    --ck-spin-thumb: 0px !important;
    --ck-spin-gallery-gap: 0px !important;
    --ck-spin-max-width: 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360__main,
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360__viewport,
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360__controls {
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360__thumbs {
    display: none !important;
  }

  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-spin-360__controls {
    justify-content: center !important;
    width: 100% !important;
  }

  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary > .elementor-element-397db60,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary > .elementor-element-070bb9b,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary > .elementor-element-722532b,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary > .elementor-element-9db4852 {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    align-self: center !important;
    text-align: center !important;
  }

  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .product_title,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-397db60 h1 {
    width: 100% !important;
    text-align: center !important;
  }

  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-070bb9b p,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-722532b p,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-070bb9b,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-722532b,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-722532b :is(.elementor-widget-container, p) {
    text-align: center !important;
  }

  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary > .elementor-element-9db4852 {
    width: fit-content !important;
    max-width: 100% !important;
    align-self: center !important;
  }

  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-9db4852 .wpr-button-wrap,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-9db4852 .wpr-button-content {
    justify-content: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-7626511,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .woocommerce-product-details__short-description,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .product-description {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: center !important;
  }

  /* Bloc devis � titre + sous-titre centr�s au-dessus des boutons CTA */
  body.template-product-elementor .ck-cta-row-merged #ckwash-quote .wrap {
    align-items: center !important;
    text-align: center !important;
  }

  body.template-product-elementor .ck-cta-row-merged #ckwash-quote :is(h2, .title, .lead) {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.template-product-elementor .ck-cta-row-merged .ck-product-devis-intro,
  body.template-product-elementor .ck-cta-row-merged .ck-product-hero-summary > .elementor-element-6883427.ck-product-devis-intro {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    align-self: center !important;
    text-align: center !important;
  }

  body.template-product-elementor .ck-cta-row-merged .ck-product-devis-intro :is(p, .elementor-widget-container) {
    text-align: center !important;
  }

  body.template-product-elementor .ck-cta-row-merged .ck-product-cta-row {
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* =============================================================================
   MOBILE � hero enti�rement centr� (v3.2.49 � miroir CKLaundry 3.0.188)
   Sp�cificit� max (.elementor-2600) pour battre les r�gles desktop left-align.
   ============================================================================= */
@media (max-width: 1024px) {
  body.template-product-elementor .ck-product-elementor.elementor-2600 .ck-product-hero-summary .elementor-element-7626511,
  body.template-product-elementor .ck-product-elementor.elementor-2600 .ck-product-hero-summary .elementor-element-7626511 .elementor-widget-container,
  body.template-product-elementor .ck-product-elementor.elementor-2600 .ck-product-hero-summary .elementor-element-7626511 .woocommerce-product-details__short-description,
  body.template-product-elementor .ck-product-elementor.elementor-2600 .ck-product-hero-summary .elementor-element-7626511 section.product-description,
  body.template-product-elementor .ck-product-elementor.elementor-2600 .ck-product-hero-summary .elementor-element-7626511 .product-description,
  body.template-product-elementor .ck-product-elementor.elementor-2600 .ck-product-hero-summary .elementor-element-7626511 :is(p, li, h3, strong, span),
  body.template-product-elementor .ck-product-elementor.elementor-2600 .ck-product-hero-summary > .elementor-element-6883427,
  body.template-product-elementor .ck-product-elementor.elementor-2600 .ck-product-hero-summary > .elementor-element-6883427.ck-product-devis-intro,
  body.template-product-elementor .ck-product-elementor.elementor-2600 .ck-product-hero-summary .elementor-element-6883427 :is(p, .elementor-widget-container, h2, h3, span) {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    text-align: center !important;
  }
}

/* =============================================================================
   CTA boutons � formes distinctes (v3.2.53, miroir CKLaundry live)
   Documentation (.eael-creative-button) = 5px rectangle l�g�rement arrondi
   Devis (.ckw-cta / .ck-btn) = 50px pilule
   Couleurs CKWash conserv�es (#0c5895).
   ============================================================================= */
body.template-product-elementor .ck-product-elementor.elementor-2600 .ck-product-cta-row a.eael-creative-button,
body.template-product-elementor .ck-product-elementor .ck-product-cta-row a.eael-creative-button,
html body.template-product-elementor .ck-product-elementor .ck-product-cta-row .eael-creative-button {
  border-radius: 5px !important;
}

body.template-product-elementor .ck-product-elementor.elementor-2600 .ck-product-cta-row :is(.ckw-cta, .ck-btn),
body.template-product-elementor .ck-product-elementor .ck-product-cta-row :is(.ckw-cta, .ck-btn),
html body.template-product-elementor .ck-product-elementor .ck-product-cta-row .ckw-cta {
  border-radius: 50px !important;
}

/* =============================================================================
   MOBILE � description + devis CKWash (v3.2.56)
   Widget description = .elementor-element-ckwdesc1 (pas 7626511 sur toutes fiches).
   Devis intro = .elementor-element-a7c3f0d.
   IMPORTANT: ne jamais forcer width:100% sur span/div du shortcode devis
   (#ckwash-quote .ckw-cta__icon) � ca ecrasait l'icone a ~18px et creait
   le grand vide blanc a droite de la pastille.
   ============================================================================= */
@media (max-width: 1024px) {
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-ckwdesc1,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-ckwdesc1 .elementor-widget-container,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-ckwdesc1 :is(p, li, h3, strong),
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-a7c3f0d,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-a7c3f0d .elementor-widget-container,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .elementor-element-a7c3f0d :is(p, h2, h3),
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .ck-product-devis-intro,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary .ck-product-devis-intro :is(p, h2, h3, .elementor-widget-container) {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  /* Shortcode devis : centrer le wrap, sans etirer le bouton / l'icone */
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary #ckwash-quote,
  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary #ckwash-quote .wrap {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: center !important;
  }
}

/* =============================================================================
   CTA mobile � pas de d�bordement (v3.2.51b)
   Les wrappers enfants passaient � 100% (358px) chacun ? Documentation coup�e.
   ============================================================================= */
@media (max-width: 1024px) {
  body.template-product-elementor .ck-product-elementor .ck-product-cta-row {
    display: flex !important;
    flex-flow: row nowrap !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    gap: 8px !important;
    overflow: visible !important;
  }

  body.template-product-elementor .ck-product-elementor .ck-product-cta-row > :is(.elementor-element, .ck-product-cta-devis),
  body.template-product-elementor .ck-product-elementor .ck-product-cta-row :is(.elementor-widget, .elementor-widget-container, .eael-creative-button-wrapper) {
    flex: 0 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: calc(50% - 4px) !important;
  }

  body.template-product-elementor .ck-product-elementor .ck-product-cta-row :is(.eael-creative-button, .ckw-cta, .ck-btn) {
    width: auto !important;
    max-width: 100% !important;
  }

  body.template-product-elementor .ck-product-elementor .ck-product-cta-row .eael-creative-button {
    border-radius: 5px !important;
  }

  body.template-product-elementor .ck-product-elementor .ck-product-cta-row :is(.ckw-cta, .ck-btn) {
    border-radius: 50px !important;
  }
}

/* =============================================================================
   CTA devis � padding interne equilibre (v3.2.56)
   Cible AUSSI #ckwash-quote / #openQuote (Ck-light etc. : bouton hors .ck-product-cta-row).
   Spec ID shortcode (#ckwash-quote .ckw-cta { padding: 0 10px }) battue via body+#id.
   padding 0 6px 0 14px : inset droit ~6px = inset gauche texte ~14px visuel equilibre
   avec pastille 32px (hauteur bouton 44px).
   ============================================================================= */
body.template-product-elementor .ck-product-elementor .ck-product-cta-row .ckw-cta,
body.template-product-elementor .ck-product-elementor .ck-product-cta-row .ck-btn,
html body.template-product-elementor .ck-product-elementor .ck-product-cta-row .ckw-cta,
body.template-product-elementor .ck-product-elementor #ckwash-quote .ckw-cta,
body.template-product-elementor .ck-product-elementor #ckwash-quote #openQuote,
body.template-product-elementor .ck-product-elementor button.ckw-cta,
html body.template-product-elementor #ckwash-quote .ckw-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: fit-content !important;
  max-width: 100% !important;
  gap: 8px !important;
  padding: 0 6px 0 14px !important;
  box-sizing: border-box !important;
}

body.template-product-elementor .ck-product-elementor .ck-product-cta-row .ckw-cta__icon,
body.template-product-elementor .ck-product-elementor .ck-product-cta-row .ck-btn .icon-wrapper,
body.template-product-elementor .ck-product-elementor #ckwash-quote .ckw-cta__icon,
body.template-product-elementor .ck-product-elementor #ckwash-quote .ckw-cta .ckw-cta__icon,
html body.template-product-elementor #ckwash-quote .ckw-cta__icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  min-height: 32px !important;
  max-width: 32px !important;
  max-height: 32px !important;
  margin: 0 !important;
  flex: 0 0 32px !important;
  flex-shrink: 0 !important;
  box-sizing: border-box !important;
}

/* Label : contenu natif, pas flex-grow (sinon bouton etire = vide a droite). */
body.template-product-elementor .ck-product-elementor .ck-product-cta-row .ckw-cta .ckw-cta__label,
body.template-product-elementor .ck-product-elementor .ck-product-cta-row .ckw-cta > span:not(.ckw-cta__icon),
body.template-product-elementor .ck-product-elementor #ckwash-quote .ckw-cta .ckw-cta__label,
body.template-product-elementor .ck-product-elementor #ckwash-quote .ckw-cta > span:not(.ckw-cta__icon) {
  min-width: 0 !important;
  flex: 0 1 auto !important;
  width: auto !important;
  max-width: none !important;
}

/* Sous-titre hero (Eclairage LED) : surcharger text-align:left du bloc has-ck-spin-360 */
@media (max-width: 1024px) {
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-summary .elementor-element-070bb9b,
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-summary .elementor-element-070bb9b.elementor-widget-text-editor,
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-summary .elementor-element-070bb9b .elementor-widget-container,
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-summary .elementor-element-070bb9b p,
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-summary .elementor-element-722532b,
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-summary .elementor-element-722532b p {
    text-align: center !important;
  }

  body.template-product-elementor .ck-product-elementor .ck-product-hero-summary > .elementor-element-9db4852,
  body.template-product-elementor .ck-product-elementor.has-ck-spin-360 .ck-product-hero-summary > .elementor-element-9db4852 {
    width: fit-content !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    align-self: center !important;
  }

  body.template-product-elementor .ck-product-category,
  body.template-product-elementor .ck-product-category .elementor-widget-container,
  body.template-product-elementor .ck-product-category .product_meta,
  body.template-product-elementor .ck-product-category .posted_in.detail-container {
    text-align: center !important;
    justify-content: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* =============================================================================
   SPECS mobile � alignement homogene icon / titre / valeur (v3.2.57)
   padding-left:52px (wp-custom-css + regle legacy) decale la description quand
   le titre long ("EQUIPEMENTS PILOTES") wrap : grille 40px + 1fr a la place.
   ============================================================================= */
@media (max-width: 768px) {
  body.template-product-elementor .product-specs-container .product-info-row,
  body.template-product-elementor #spec-container .product-info-row {
    display: grid !important;
    grid-template-columns: var(--ck-spec-icon-size, 40px) minmax(0, 1fr) !important;
    column-gap: 12px !important;
    row-gap: 6px !important;
    align-items: start !important;
    align-content: start !important;
  }

  body.template-product-elementor .product-specs-container .product-spec-title-container,
  body.template-product-elementor #spec-container .product-spec-title-container,
  body.template-product-elementor .product-specs-container .product-spec-left,
  body.template-product-elementor #spec-container .product-spec-left {
    display: contents !important;
    min-width: 0 !important;
    max-width: none !important;
    width: auto !important;
  }

  body.template-product-elementor .product-specs-container .product-spec-icon,
  body.template-product-elementor #spec-container .product-spec-icon,
  body.template-product-elementor .product-specs-container .product-spec-left .product-spec-icon,
  body.template-product-elementor #spec-container .product-spec-left .product-spec-icon {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: start !important;
    justify-self: start !important;
  }

  body.template-product-elementor .product-specs-container .product-spec-title,
  body.template-product-elementor #spec-container .product-spec-title,
  body.template-product-elementor .product-specs-container .product-spec-left .product-spec-title,
  body.template-product-elementor #spec-container .product-spec-left .product-spec-title {
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: center !important;
    text-align: left !important;
  }

  body.template-product-elementor .product-specs-container .info-value,
  body.template-product-elementor #spec-container .info-value,
  body.template-product-elementor .product-specs-container .product-spec-value,
  body.template-product-elementor #spec-container .product-spec-value {
    grid-column: 2 !important;
    grid-row: 2 !important;
    width: auto !important;
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    text-align: left !important;
  }
}

/* Grille pictos mobile : label + sous-titre sur le meme axe gauche */
@media (max-width: 600px) {
  body.template-product-elementor .ck-features-grid__item {
    align-items: flex-start !important;
    text-align: left !important;
  }

  body.template-product-elementor .ck-features-grid__label,
  body.template-product-elementor .ck-features-grid__sub {
    width: 100% !important;
    max-width: 100% !important;
    text-align: left !important;
  }
}

/* v3.2.63 � Desktop CTA ferre a gauche (garde photo 600px + design boutons recent) */
@media (min-width: 769px) {
  body.template-product-elementor .ck-product-cta-row,
  body.template-product-elementor .ck-product-elementor .ck-product-cta-row,
  body.template-product-elementor .ck-cta-row-merged .ck-product-cta-row {
    justify-content: flex-start !important;
    align-content: flex-start !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.template-product-elementor .ck-cta-row-merged #ckwash-quote .wrap,
  body.template-product-elementor .ck-cta-row-merged #ckwash-quote .lead {
    align-items: flex-start !important;
    text-align: left !important;
  }
}

/* Documentation: rectangle 5px bleu CKWash ; Devis: pilule 50px, icone 32px */
html body.template-product-elementor .ck-product-elementor .ck-product-cta-row a.eael-creative-button,
html body.template-product-elementor .ck-product-elementor .ck-product-cta-row .eael-creative-button {
  border-radius: 5px !important;
  background: #0c5895 !important;
  color: #ffffff !important;
  height: 44px !important;
  min-height: 44px !important;
}

html body.template-product-elementor .ck-product-elementor .ck-product-cta-row :is(.ckw-cta, .ck-btn) {
  border-radius: 50px !important;
  padding: 0 6px 0 14px !important;
  height: 44px !important;
  min-height: 44px !important;
}

html body.template-product-elementor .ck-product-elementor .ck-product-cta-row .ckw-cta__icon {
  width: 32px !important;
  min-width: 32px !important;
  max-width: 32px !important;
  height: 32px !important;
  min-height: 32px !important;
  max-height: 32px !important;
  flex: 0 0 32px !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* =============================================================================
 * CKWASH - cadrage de la photo produit (fiches produit, desktop) - 2026-07-29
 *
 * Mesure du catalogue : sur 49 photos produit, 43 sont en portrait et 33 sont
 * exactement en 800x1200 (rapport 2:3). Le cadre carre herite de CKLaundry
 * (dont les visuels sont carres 1500x1500) etait donc inadapte :
 *   - photo portrait dans un cadre carre = marges laterales, visuel trop petit
 *   - le zoom "soft" scale(1.28) compensait en agrandissant, mais le cadre est
 *     en overflow:hidden, donc l'image passait a 614px de haut dans 480px et le
 *     haut et le bas du produit etaient coupes.
 *
 * Correction : cadre au format dominant (2:3) et plus aucun zoom. La photo
 * remplit son cadre, elle est plus grande qu'avant ET jamais rognee.
 * Les vraies galeries 360 ne sont pas concernees (selecteurs limites a --static).
 * ============================================================================= */
@media (min-width: 1025px) {
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--static:not(.is-fullscreen):not(.ck-spin-360--summary-stretch)
    .ck-spin-360__viewport {
    aspect-ratio: 2 / 3 !important;
    width: auto !important;
    height: 620px !important;
    max-width: 100% !important;
    max-height: none !important;
    margin-inline: auto !important;
  }

  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--static:not(.is-fullscreen):not(.ck-spin-360--summary-stretch)
    .ck-spin-360__viewport
    .ck-spin-360__img,
  body.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-spin-360--static.ck-spin-360--square-frame:not(.is-fullscreen):not(.ck-spin-360--summary-stretch)
    .ck-spin-360__img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
  }
}

/* =============================================================================
 * Fiches produit — contrat mobile final
 * Photo portrait non rognée, actions centrées et grille de pictogrammes 2 × 3.
 * ============================================================================= */
@media (max-width: 768px) {
  html
    body.single-product.template-product-elementor
    .ck-spin-360:not(.is-fullscreen):not(:fullscreen),
  html
    body.single-product.template-product-elementor
    .ck-spin-360--embed.ck-spin-360--gallery:not(.is-fullscreen):not(:fullscreen),
  html
    body.single-product.template-product-elementor
    .ck-spin-360:not(.is-fullscreen):not(:fullscreen)
    .ck-spin-360__viewport {
    touch-action: pan-y pinch-zoom !important;
  }

  html
    body.single-product.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-media
    :is(
      .elementor-widget-shortcode,
      .elementor-widget-container,
      .elementor-shortcode,
      .ck-spin-360--static,
      .ck-spin-360__main
    ) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  html
    body.single-product.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-media
    .ck-spin-360--static:not(.is-fullscreen):not(.ck-spin-360--summary-stretch)
    .ck-spin-360__viewport {
    position: relative !important;
    aspect-ratio: 2 / 3 !important;
    width: min(100%, 360px) !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: min(72vh, 540px) !important;
    margin-inline: auto !important;
    overflow: hidden !important;
  }

  html
    body.single-product.template-product-elementor
    .ck-product-elementor.has-ck-spin-360
    .ck-product-hero-media
    .ck-spin-360--static:not(.is-fullscreen):not(.ck-spin-360--summary-stretch)
    .ck-spin-360__viewport
    img.ck-spin-360__img {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
  }

  html
    body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 12px !important;
    overflow: visible !important;
  }

  html
    body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    > :is(.elementor-element, .ck-product-cta-devis) {
    width: min(100%, 300px) !important;
    max-width: 300px !important;
    margin-inline: auto !important;
  }

  html
    body.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    :is(
      .elementor-widget-container,
      .eael-creative-button-wrapper,
      .eael-creative-button,
      .ckw-cta,
      .ck-btn
    ) {
    width: 100% !important;
    max-width: 300px !important;
    margin-inline: auto !important;
  }

  html
    body.single-product.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    a.eael-creative-button,
  html
    body.single-product.template-product-elementor
    .ck-product-elementor
    .ck-product-cta-row
    button.ckw-cta {
    width: 100% !important;
    max-width: 300px !important;
    margin-inline: auto !important;
  }

  html
    body.single-product.template-product-elementor
    .ck-product-elementor
    #ckwash-quote
    .ck-product-cta-row
    #openQuote.ckw-cta {
    width: 300px !important;
    max-width: 100% !important;
    margin-inline: auto !important;
  }

  html
    body.template-product-elementor
    .ck-features-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: start !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-inline: 20px !important;
    column-gap: 16px !important;
    row-gap: 24px !important;
  }

  html
    body.template-product-elementor
    .ck-features-grid__item {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: 44px auto auto !important;
    align-items: start !important;
    justify-content: stretch !important;
    justify-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
    row-gap: 5px !important;
  }

  html
    body.template-product-elementor
    .ck-features-grid__icon {
    display: grid !important;
    place-items: center !important;
    width: 44px !important;
    height: 44px !important;
    margin: 0 auto !important;
  }

  html
    body.template-product-elementor
    .ck-features-grid__icon
    :is(img, svg) {
    display: block !important;
    width: 44px !important;
    height: 44px !important;
    max-width: 44px !important;
    max-height: 44px !important;
    object-fit: contain !important;
  }

  html
    body.template-product-elementor
    :is(.ck-features-grid__label, .ck-features-grid__sub) {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
}

/* =============================================================================
 * Fiches produit - actions et descriptions mobiles vraiment fluides.
 *
 * Les fiches avec un seul bouton Devis n'utilisent pas toujours
 * `.ck-product-cta-row`. Elles restaient donc en largeur de contenu, tandis que
 * les fiches avec Documentation utilisaient 300 px. Tous les boutons partagent
 * maintenant la meme largeur cible, qui se reduit automatiquement sur les
 * ecrans de 320 px. Les textes de presentation sont centres comme les titres.
 * ============================================================================= */
@media (max-width: 768px) {
  html
    body.single-product.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    :is(
      .ck-product-cta-row,
      #ckwash-quote,
      #ckwash-quote .wrap,
      .eael-creative-button-wrapper
    ) {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-inline: auto !important;
    align-items: center !important;
    justify-content: center !important;
  }

  html
    body.single-product.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    .ck-product-cta-row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
  }

  html
    body.single-product.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    :is(
      .ck-product-cta-row > .elementor-element,
      .ck-product-cta-row > .ck-product-cta-devis,
      [data-widget_type^="eael-creative-button"]
    ) {
    box-sizing: border-box !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: 0 1 auto !important;
    margin: 0 !important;
  }

  html
    body.single-product.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    :is(
      a.eael-creative-button,
      #ckwash-quote #openQuote.ckw-cta,
      #ckwash-quote button.ckw-cta,
      .ck-product-cta-row button.ckw-cta,
      .ck-product-cta-row .ck-btn
    ) {
    box-sizing: border-box !important;
    display: inline-flex !important;
    width: fit-content !important;
    max-width: calc(100vw - 32px) !important;
    min-width: 0 !important;
    min-height: 44px !important;
    height: 44px !important;
    margin-inline: auto !important;
    justify-content: center !important;
    white-space: nowrap !important;
  }

  html
    body.single-product.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    :is(
      .elementor-widget-text-editor,
      .woocommerce-product-details__short-description,
      .product-description
    ),
  html
    body.single-product.template-product-elementor
    .ck-product-elementor
    .ck-product-hero-summary
    :is(
      .elementor-widget-text-editor,
      .woocommerce-product-details__short-description,
      .product-description
    )
    :is(.elementor-widget-container, p, li, h2, h3, strong, em) {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: auto !important;
    text-align: center !important;
  }
}

/* ---------------------------------------------------------------------------
 * Tableau caracteristiques : cellule de valeur au mauvais gabarit.
 *
 * Le markup ACF de certaines lignes repete .product-spec-title-container sur la
 * cellule de droite au lieu d'utiliser .info-value. Cette ligne herite alors du
 * gabarit du libelle (max-width 36%, flex 0 0 auto, 16px, texte noir) : elle se
 * casse sur 3 lignes dans 331 px au lieu de 571 px et ne ressemble pas aux
 * autres lignes du tableau.
 *
 * CE BLOC A ETE RETIRE PUIS REMIS LE 2026-08-12, et voici pourquoi.
 * Il a ete retire au motif que les 7 lignes fautives etaient corrigees a la
 * source dans le champ ACF caracteristique_technique_ des 5 fiches concernees
 * (19553, 19584, 19587, 19590, 19593). C'est vrai — EN LOCAL. Releve DOM du
 * meme jour, lignes portant deux .product-spec-title-container :
 *     Pupitouch mural       local 0   prod 2
 *     Pupitouch encastrable local 0   prod 2
 *     Pupinox mural         local 0   prod 1
 *     Pupinox encastrable   local 0   prod 1
 *     STARTBOX Evo Color    local 0   prod 1
 * La correction vit dans la BASE, elle ne part donc pas par FTP : deployer ce
 * fichier sans elle recasse les 7 lignes en production.
 *
 * Le bloc est inerte la ou le markup est correct — le selecteur
 * « title-container ~ title-container » n'y trouve rien. Il ne coute donc rien
 * en local et protege la prod. A retirer seulement quand les 5 fiches auront
 * ete corrigees EN PRODUCTION aussi, en revalidant le releve ci-dessus.
 * --------------------------------------------------------------------------- */
body.template-product-elementor .product-specs-container .product-spec-title-container ~ .product-spec-title-container,
body.template-product-elementor #spec-container .product-spec-title-container ~ .product-spec-title-container {
  display: block !important;
  gap: 0 !important;
  min-width: 0 !important;
  max-width: none !important;
  flex: 1 1 auto !important;
  font-size: 0.92rem !important;
  color: #001a48 !important;
  line-height: 1.5 !important;
  font-weight: 400 !important;
}

/* Mobile : la cellule mal balisee doit aussi passer en rangee 2.
   Sous 768px chaque ligne devient une grille icone / libelle / valeur, ou le
   libelle est en rangee 1 et la valeur en rangee 2. Sans cette regle la cellule
   mal balisee herite de la rangee 1 du libelle et les deux textes se
   superposent (mesure sur Pupinox : libelle 3427-3446, valeur 3403-3469). */
@media (max-width: 768px) {
  body.template-product-elementor .product-specs-container .product-spec-title-container ~ .product-spec-title-container,
  body.template-product-elementor #spec-container .product-spec-title-container ~ .product-spec-title-container {
    grid-column: 2 !important;
    grid-row: 2 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    overflow-wrap: anywhere !important;
  }
}
