/* =========================================================
   custom.css — Overrides (loaded AFTER theme.css)
   Theme: Universal (Prestacrea) — PrestaShop 8.x
   Règle : on met UNIQUEMENT les overrides ici (jamais dans theme.css)
   cache-bust: 20260429-1910
   ========================================================= */

/* =========================================================
   1) Fiche produit — Galerie images
   Objectif validé :
   - Desktop: image principale bien intégrée au flux + miniatures verticales à droite
   - Scroll miniatures OK, sans grosse barre grise
   - Mobile: comportement d'origine (miniatures en bas / slider OK)
   ========================================================= */

/* --- Desktop --- */
@media (min-width: 992px){

  /* === GALERIE PRODUIT DESKTOP : image + grille miniatures a droite === */
  #product .product-detail-primary .images-container {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 8px !important;
    text-align: left !important;
    justify-content: flex-start !important;
  }

  .product-cover {
    flex: 0 0 auto !important;
    max-width: 500px !important;
    position: relative !important;
    overflow: hidden !important;
  }
  .product-cover img {
    width: 100% !important;
    height: auto !important;
    max-height: 500px !important;
    object-fit: contain !important;
    margin: 0 !important;
    cursor: pointer !important;
  }

  .images-container .product-images {
    flex: 0 1 auto !important;
    width: auto !important;
    max-width: none !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 0 !important;
  }

  /* Desactiver Owl Carousel - utiliser CSS grid */
  #js-product-images .owl-stage-outer {
    width: 100% !important;
  }
  #js-product-images .owl-stage {
    display: grid !important;
    grid-template-rows: repeat(4, 1fr) !important;
    grid-auto-flow: column !important;
    gap: 4px !important;
    transform: none !important;
    width: 100% !important;
  }
  #js-product-images .owl-item {
    width: 100% !important;
    min-width: 0 !important;
  }
  #js-product-images .owl-nav {
    display: none !important;
  }

  .product-images .thumb-container {
    width: 100% !important;
    cursor: pointer !important;
  }
  .product-images .thumb-container img {
    width: 100% !important;
    height: 65px !important;
    object-fit: contain !important;
    border: none !important;
    border-radius: 0 !important;
    transition: opacity 0.2s !important;
    background: transparent !important;
  }
  .product-images .thumb-container img:hover,
  .product-images .thumb-container img.selected,
  .product-images .thumb-container img.js-thumb-selected {
    opacity: 0.7 !important;
  }

}

/* --- Mobile / Tablette : revenir au comportement thème d'origine --- */
@media (max-width: 991.98px){

  #product .product-detail-primary .images-container{
    display: block !important;
    max-width: none !important;
    margin: 0 !important;
  }

  /* Laisser Owl fonctionner en horizontal sur mobile */
  #product .product-detail-primary #js-product-images .owl-stage{
    flex-direction: row !important;
    transform: translate3d(0,0,0) !important;
    width: auto !important;
  }

  #product .product-detail-primary #js-product-images .owl-nav{
    display: block !important;
  }
  #product .product-detail-primary #js-product-images .owl-nav [class*="owl-"]{
    pointer-events: auto !important;
    opacity: 1 !important;
  }
}

/* =========================================================
   CHECKOUT – Paiement : 1 seul carré + rond centré + hover/selected + PayPal off
   ========================================================= */

#checkout-payment-step .payment-option{
  margin: 0 0 10px 0 !important;
}

/* Carte */
#checkout-payment-step .payment-option label{
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;

  padding: 10px 14px !important;
  margin: 0 !important;

  border: 1px solid rgba(0,0,0,.12) !important;
  border-radius: 6px !important;
  background: #fff !important;

  line-height: 1.2 !important;
  font-size: 14px !important;

  cursor: pointer !important;
  transition: background-color .15s ease, border-color .15s ease !important;
}

#checkout-payment-step .payment-option label:hover{
  background: rgba(0,0,0,.04) !important;
  border-color: rgba(0,0,0,.18) !important;
}

#checkout-payment-step .payment-option.checked label{
  background: rgba(0,0,0,.06) !important;
  border-color: rgba(0,0,0,.22) !important;
}

/* ---------------------------
   RADIO : on simplifie à 1 seul carré
---------------------------- */

/* Le carré du thème : on garde UNE couche */
#checkout-payment-step .payment-option label .custom-radio{
  width: 34px !important;
  height: 34px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  border: 1px solid rgba(0,0,0,.15) !important;
  border-radius: 6px !important;
  background: #fff !important;

  flex: 0 0 34px !important;
  padding: 0 !important;
  margin: 0 !important;

  position: relative !important;
}

/* On supprime les couches internes (c’est elles qui créent les 4 carrés) */
#checkout-payment-step .payment-option label .custom-radio > span{
  display: none !important;
}

/* On affiche l'input radio, et on le centre AU PIXEL */
#checkout-payment-step .payment-option input[type="radio"]{
  appearance: auto !important;
  -webkit-appearance: radio !important;

  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;

  width: 14px !important;
  height: 14px !important;
  margin: 0 !important;

  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;

  z-index: 2 !important;
  pointer-events: auto !important;
}

/* Texte */
#checkout-payment-step .payment-option .payment-option-label{
  flex: 0 0 auto !important;
    max-width: 500px !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ---------------------------------------------------------
   Masquer logos PayPal
   --------------------------------------------------------- */
#checkout-payment-step .payment-option label img[src*="paypal"],
#checkout-payment-step .payment-option label img[alt*="PayPal" i],
#checkout-payment-step .payment-option label img[title*="PayPal" i],
#checkout-payment-step .payment-option label svg[data-funding-source="paypal"],
#checkout-payment-step .payment-option label [data-funding-source="paypal"],
#checkout-payment-step .payment-option label .paypal-mark,
#checkout-payment-step .payment-option label .paypal-marks,
#checkout-payment-step .payment-option label .paypal-button-card,
#checkout-payment-step .payment-option label .ps_checkout-mark,
#checkout-payment-step .payment-option label .ps_checkout__logo{
  display: none !important;
}


/* =========================================================
   MENU COMPLET — centpourcent-menuiseries.com
   Consolidé : CSS ex-template + custom + tablette + touch
   ========================================================= */

:root{
  --cpcm-dark:#2F2F2E;
  --cpcm-orange:#C96E21;
  --cpcm-white:#ffffff;
}

/* ---------- Barre principale ---------- */
.header-menu.menu-bg,
.menu-bg,
#_desktop_top_menu,
nav.menu.js-top-menu,
nav#_desktop_top_menu.menu,
nav#_desktop_top_menu.menu > ul#top-menu {
  background: var(--cpcm-dark) !important;
}

nav.menu.js-top-menu,
nav#_desktop_top_menu.menu {
  position: relative !important;
}

#_desktop_top_menu #top-menu,
nav#_desktop_top_menu ul#top-menu {
  background: var(--cpcm-dark) !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Items niveau 0 — LI */
#_desktop_top_menu #top-menu > li,
nav#_desktop_top_menu ul#top-menu > li {
  position: static !important;
  flex: 1 1 0% !important;
  min-width: 0 !important;
  width: 0 !important;
  text-align: center !important;
  background: var(--cpcm-dark) !important;
  border-right: 1px solid rgba(255,255,255,.22);
}
#_desktop_top_menu #top-menu > li:last-child {
  border-right: 0;
}

/* Items niveau 0 — LIEN (a ou span) */
#_desktop_top_menu #top-menu > li > a.dropdown-item,
#_desktop_top_menu #top-menu > li > span.dropdown-item,
nav#_desktop_top_menu ul#top-menu > li > .dropdown-item[data-depth="0"] {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 48px !important;
  padding: 0 10px !important;
  color: var(--cpcm-white) !important;
  font-weight: 400 !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  background: transparent !important;
  white-space: nowrap !important;
  transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

/* HOVER menu principal : ORANGE */
#_desktop_top_menu #top-menu > li:hover > a.dropdown-item,
#_desktop_top_menu #top-menu > li:hover > span.dropdown-item,
#_desktop_top_menu #top-menu > li > a.dropdown-item:hover,
#_desktop_top_menu #top-menu > li > span.dropdown-item:hover,
nav#_desktop_top_menu ul#top-menu > li:hover > .dropdown-item[data-depth="0"] {
  background: var(--cpcm-orange) !important;
  color: var(--cpcm-white) !important;
  transform: translateY(-1px);
}

/* Actif (classes thème) */
#_desktop_top_menu #top-menu > li.current > a.dropdown-item,
#_desktop_top_menu #top-menu > li.current > span.dropdown-item,
#_desktop_top_menu #top-menu > li.active > a.dropdown-item,
#_desktop_top_menu #top-menu > li.active > span.dropdown-item,
#_desktop_top_menu #top-menu > li.selected > a.dropdown-item,
#_desktop_top_menu #top-menu > li.selected > span.dropdown-item,
#_desktop_top_menu #top-menu > li.open > a.dropdown-item,
#_desktop_top_menu #top-menu > li.open > span.dropdown-item,
#_desktop_top_menu #top-menu > li > a.dropdown-item[aria-current="page"]{
  background: var(--cpcm-orange) !important;
  color: var(--cpcm-white) !important;
  transform: none !important;
}

/* ---------- Sous-menu (commun) ---------- */
#_desktop_top_menu #top-menu .sub-menu,
nav#_desktop_top_menu ul#top-menu > li > div.sub-menu {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  top: 48px !important;
  z-index: 9999;
  background: #fff !important;
  padding: 4px 14px !important;
  margin: 0 !important;
  border: 1px solid rgba(0,0,0,.10) !important;
  border-top: none !important;
  box-shadow: 0 6px 18px rgba(0,0,0,.12);
  box-sizing: border-box !important;
  overflow: visible !important;
}

/* Pont invisible */
nav#_desktop_top_menu ul#top-menu > li > div.sub-menu::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: -10px !important;
  left: 0 !important;
  right: 0 !important;
  height: 10px !important;
  background: transparent !important;
}

/* Reset backgrounds hérités */
nav#_desktop_top_menu ul#top-menu > li > div.sub-menu * {
  background-color: transparent !important;
}
nav#_desktop_top_menu ul#top-menu > li > div.sub-menu {
  background-color: #fff !important;
}

/* Items sous-menu depth 1 — layout */
#_desktop_top_menu #top-menu [data-depth="1"] {
  display: flex !important;
  flex-wrap: nowrap !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

#_desktop_top_menu #top-menu [data-depth="1"] > li {
  position: relative;
  padding: 0 10px;
  flex: 0 0 auto !important;
  min-width: 0 !important;
  overflow: visible !important;
}

/* Séparateurs verticaux sous-menu */
#_desktop_top_menu #top-menu [data-depth="1"] > li:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 6px;
  width: 1px;
  height: calc(100% - 12px);
  background: rgba(47,47,46,.20);
}

/* Lien sous-menu */
#_desktop_top_menu #top-menu [data-depth="1"] .dropdown-item {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 34px !important;
  height: auto !important;
  padding: 6px 10px !important;
  color: var(--cpcm-dark) !important;
  font-weight: 400 !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
  background: transparent !important;
  overflow: visible !important;
  white-space: nowrap !important;
  border: 1px solid transparent;
  border-radius: 3px;
  cursor: pointer !important;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

#_desktop_top_menu #top-menu [data-depth="1"] .dropdown-item:hover {
  background: var(--cpcm-orange) !important;
  color: var(--cpcm-white) !important;
  border-color: var(--cpcm-dark) !important;
}

/* Focus clavier */
#_desktop_top_menu #top-menu a.dropdown-item:focus,
#_desktop_top_menu #top-menu .dropdown-item:focus {
  outline: 2px solid var(--cpcm-orange);
  outline-offset: 2px;
}

/* ---------- Desktop (≥ 992px) ---------- */
@media (min-width: 992px) {
  nav#_desktop_top_menu ul#top-menu > li > div.sub-menu {
    display: none !important;
    height: auto !important;
    overflow: visible !important;
  }

  nav#_desktop_top_menu ul#top-menu > li:hover > div.sub-menu {
    display: block !important;
  }

  /* GRILLE sous-menu */
  nav#_desktop_top_menu ul#top-menu > li > div.sub-menu > ul.top-menu[data-depth="1"] {
    display: grid !important;
    grid-template-columns: repeat(6, 1fr) !important;
    gap: 6px 8px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  nav#_desktop_top_menu ul#top-menu > li > div.sub-menu > ul.top-menu[data-depth="1"] > li {
    flex: none !important;
    max-width: 100% !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0 !important;
    position: relative !important;
  }

  nav#_desktop_top_menu ul#top-menu > li > div.sub-menu > ul.top-menu[data-depth="1"] > li:not(:nth-child(6n))::after {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    right: -4px !important;
    width: 1px !important;
    height: 18px !important;
    background: rgba(0,0,0,.15) !important;
    transform: translateY(-50%) !important;
  }

  nav#_desktop_top_menu ul#top-menu > li > div.sub-menu > ul.top-menu[data-depth="1"] > li > .dropdown-item[data-depth="1"] {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    font-size: 13px !important;
    padding: 6px 8px !important;
    line-height: 1.25 !important;
    min-height: 34px !important;
    color: #2F2F2E !important;
    background: transparent !important;
    border-radius: 0 !important;
    text-align: center !important;
    white-space: normal !important;
    word-break: break-word !important;
    overflow: hidden !important;
    cursor: pointer !important;
    transition: background .2s ease, color .2s ease !important;
  }

  nav#_desktop_top_menu ul#top-menu > li > div.sub-menu > ul.top-menu[data-depth="1"] > li > .dropdown-item[data-depth="1"]:hover {
    background: rgba(232, 123, 42, .12) !important;
    color: #E87B2A !important;
  }

  nav#_desktop_top_menu ul#top-menu > li > div.sub-menu ul *::before,
  nav#_desktop_top_menu ul#top-menu > li > div.sub-menu ul *::after {
    content: none !important;
  }
}

/* ---------- Tablette (< 1200px) — répartition pleine largeur ---------- */
@media (max-width: 1199.98px) {
  nav#_desktop_top_menu #top-menu > li {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    width: 0 !important;
  }

  nav#_desktop_top_menu #top-menu > li > span.dropdown-item[data-depth="0"],
  nav#_desktop_top_menu #top-menu > li > a.dropdown-item[data-depth="0"] {
    font-size: 0.72rem !important;
    padding: 10px 4px !important;
    letter-spacing: -0.02em !important;
    white-space: normal !important;
    line-height: 1.15 !important;
    height: auto !important;
    min-height: 44px !important;
    word-break: break-word !important;
    text-align: center !important;
  }
}

/* ---------- Mobile (< 992px) ---------- */
@media (max-width: 991.98px) {
  nav#_desktop_top_menu ul#top-menu > li {
    position: relative !important;
  }

  nav#_desktop_top_menu ul#top-menu > li > div.sub-menu {
    position: static !important;
    box-shadow: none !important;
    border: 0 !important;
    padding: 0 !important;
  }

  nav#_desktop_top_menu ul#top-menu > li > .dropdown-item[data-depth="0"] {
    justify-content: flex-start !important;
  }

  nav#_desktop_top_menu ul#top-menu > li > div.sub-menu .dropdown-item {
    padding: 10px 14px !important;
  }
}

/* ---------- Touch-open (JS double-tap tablettes) ---------- */
#top-menu > li.touch-open > .sub-menu,
#top-menu > li.touch-open > .popover {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* =========================================================
   PAGE ACTIVE — rubrique en cours = orange clair permanent
   ========================================================= */

nav#_desktop_top_menu ul#top-menu > li.menu-active > .dropdown-item[data-depth="0"] {
  background: rgba(232, 123, 42, .20) !important;
  color: #E87B2A !important;
}

nav#_desktop_top_menu ul#top-menu > li.menu-active > .dropdown-item[data-depth="0"],
nav#_desktop_top_menu ul#top-menu > li.menu-active + li > .dropdown-item[data-depth="0"] {
  border-left-color: transparent !important;
}

nav#_desktop_top_menu ul#top-menu > li.menu-active:hover > .dropdown-item[data-depth="0"] {
  background: #E87B2A !important;
  color: #fff !important;
}

/* =========================================================
CONFIGURATOR
========================================================= */

/* RECAP – Quantité alignée a gauche sous le prix */
#configurator_preview_buttons .form-group{
  display: block !important;
  margin-top: 20px !important;
}

/* label "Quantité" — aligne a gauche */
#configurator_preview_buttons .form-group label{
  width: 100% !important;
  margin: 0 0 6px 0 !important;
  font-weight: 700 !important;
  text-align: left !important;
}

/* champ quantité */
#configurator_preview_buttons .form-group input{
  width: 80px !important;
  max-width: 80px !important;
  padding: 6px 6px !important;
  text-align: center !important;
  margin: 0 !important;
}

/* RECAP - Quantité : label + champ a gauche */
#quantity-configurator-label{
  display: block !important;
  width: auto !important;
  text-align: left !important;
  margin-top: 14px !important;
  margin-bottom: 6px !important;
}

/* conteneur input quantité a gauche */
.configurator-qty{
  float: none !important;
  width: auto !important;
  text-align: left !important;
}

/* input compact a gauche */
.configurator-qty input{
  width: 80px !important;
  max-width: 80px !important;
  text-align: center !important;
  display: block !important;
}

/* évite un 2e séparateur ultra light */
#configurator_preview .dl-final-price{
  border-top: 0 !important;
  box-shadow: none !important;
}

/* RECAP - Quantité : bloc a gauche + espacement */
#configurator_preview_buttons .configurator-qty-wrapper{
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  margin-top: 16px !important;
}

#configurator_preview_buttons .configurator-qty-wrapper #quantity-configurator-label{
  margin: 0 0 6px 0 !important;
  text-align: left !important;
  width: auto !important;
  font-weight: 700 !important;
}

#configurator_preview_buttons .configurator-qty-wrapper .configurator-qty{
  width: auto !important;
  float: none !important;
}

#configurator_preview_buttons .configurator-qty-wrapper .form-group{
  margin: 0 !important;
}

/* FORCE ABSOLUE : input quantite a gauche */
#configurator_preview_buttons #quantity-configurator,
#configurator_preview_buttons .configurator-qty input,
#configurator_preview_buttons .configurator-qty .form-group input,
#configurator_preview_buttons .configurator-qty .form-control,
.configurator-qty input#quantity-configurator {
  float: none !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  display: block !important;
  width: 80px !important;
  max-width: 80px !important;
  text-align: center !important;
}

#configurator_preview_buttons .configurator-qty,
#configurator_preview_buttons .configurator-qty .form-group {
  display: block !important;
  text-align: left !important;
  float: none !important;
  width: auto !important;
  justify-content: flex-start !important;
  align-items: center !important;
}

#configurator_preview_buttons .configurator-qty-wrapper input{
  width: 72px !important;
  max-width: 72px !important;
  text-align: center !important;
}

#configurator_preview_buttons .configurator-qty-separator{
  border: 0;
  border-top: 1px solid #eee;
  margin: 16px 0;
}

/* CONFIGURATOR – Récap + prix en colonne (layout vertical propre) */

/* on laisse Bootstrap gérer la largeur, mais on empile visuellement */
#configurator_preview .row{
  display: block !important;
}

/* récapitulatif */
#configurator_preview .col-lg-6{
  max-width: 100% !important;
  width: 100% !important;
}

/* espace clair entre récap et bloc prix */
#configurator_preview_buttons{
  margin-top: 20px !important;
  padding-top: 16px !important;
}

/* évite les retours à la ligne dégueu dans le récap */
#configurator_preview ul li{
  white-space: normal !important;
  overflow-wrap: break-word !important;
}

/* =========================================================
   État + Référence : alignés en bas de la colonne intro
   ========================================================= */

/* =========================================================
   Fiche produit — Répartition colonnes + layout vertical
   Bloc unique (pas de doublon @media)
   ========================================================= */

@media (min-width: 992px) {

  /* --- Ratio colonnes : full width stacked --- */
  #product .product-detail-primary > .row > .product-intro.col-lg-5 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }

  #product .product-detail-primary > .row > .product-images.col-lg-7 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }

  /* --- Colonne texte : flex column pour État/Référence en bas --- */
  #product .product-detail-primary .product-intro {
    display: flex !important;
    flex-direction: column !important;
  }

  #product-meta-move-target {
    display: none !important;
    
  }

  /* --- Colonne images : ne s'étire pas verticalement --- */
  #product .product-detail-primary > .row > .product-images.col-lg-7 {
    height: fit-content !important;
    align-self: flex-start !important;
  }
}

.configurator-intro-summary{
  border-top: 1px solid #e5e5e5;
  border-bottom: 1px solid #e5e5e5;
  padding: 15px 0;
  margin: 10px 0;
}

h1.product-title{
  font-size: 1.6rem;
}

@media (max-width: 767.98px){
  .configurator_heading{
    font-size: 1.1rem;
    font-weight: 500;
  }
}

/* =========================================================
   CONFIGURATEUR – HUBLOTS (liste quantité) : CSS FINAL
   Cible les steps hublots (collapse IDs) :
   858, 1135, 1188, 1147, 1167
   ========================================================= */

/* ⚠️ ATTENTION : Les IDs ci-dessous (#collapse_858, #collapse_1135, #collapse_1188,
   #collapse_1147, #collapse_1167) sont des IDs dynamiques de la base de données.
   Si les steps du configurateur sont recréés, ces IDs changeront et ce CSS
   ne s'appliquera plus. Envisager un sélecteur par classe/data-attribute. */

/* 0) Liste des conteneurs hublots */
:root{
  /* juste un repère, pas utilisé */
}

/* 1) Ligne option : flex, hauteur stable, hover léger */
#collapse_858 .option.option_group,
#collapse_1135 .option.option_group,
#collapse_1188 .option.option_group,
#collapse_1147 .option.option_group,
#collapse_1167 .option.option_group{
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 6px 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  min-height: 44px !important;
}

#collapse_858 .option.option_group:hover,
#collapse_1135 .option.option_group:hover,
#collapse_1188 .option.option_group:hover,
#collapse_1147 .option.option_group:hover,
#collapse_1167 .option.option_group:hover{
  background: rgba(0,0,0,.04) !important;
}

/* 2) Quantité AVANT le nom + centrage vertical garanti */
#collapse_858 .option.option_group > .quantity_wanted,
#collapse_1135 .option.option_group > .quantity_wanted,
#collapse_1188 .option.option_group > .quantity_wanted,
#collapse_1147 .option.option_group > .quantity_wanted,
#collapse_1167 .option.option_group > .quantity_wanted{
  order: 1 !important;
  flex: 0 0 250px !important;
  margin: 0 !important;
  padding: 0 !important;

  display: flex !important;
  align-items: center !important;
  align-self: center !important;
  min-height: 44px !important;

  position: relative !important;
  top: 0 !important;
}

/* 3) Label après : prend la place, centré vertical */
#collapse_858 .option.option_group > label,
#collapse_1135 .option.option_group > label,
#collapse_1188 .option.option_group > label,
#collapse_1147 .option.option_group > label,
#collapse_1167 .option.option_group > label{
  order: 2 !important;
  flex: 0 0 auto !important;
    max-width: 500px !important;
  margin: 0 !important;
  padding: 0 !important;

  display: flex !important;
  align-items: center !important;
  min-height: 44px !important;

  line-height: 1.2 !important;
}

/* 4) Input-group : pas de décalage bas (Bootstrap fix) */
#collapse_858 .quantity_wanted .input-group,
#collapse_1135 .quantity_wanted .input-group,
#collapse_1188 .quantity_wanted .input-group,
#collapse_1147 .quantity_wanted .input-group,
#collapse_1167 .quantity_wanted .input-group{
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  height: 34px !important;
  margin: 0 !important;
  float: none !important;
  vertical-align: middle !important;
}

#collapse_858 .quantity_wanted .input-group-btn,
#collapse_1135 .quantity_wanted .input-group-btn,
#collapse_1188 .quantity_wanted .input-group-btn,
#collapse_1147 .quantity_wanted .input-group-btn,
#collapse_1167 .quantity_wanted .input-group-btn{
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  float: none !important;
}

/* 5) Tailles +/- et input (compact & aligné) */
#collapse_858 .quantity_wanted .input-group-btn .btn,
#collapse_1135 .quantity_wanted .input-group-btn .btn,
#collapse_1188 .quantity_wanted .input-group-btn .btn,
#collapse_1147 .quantity_wanted .input-group-btn .btn,
#collapse_1167 .quantity_wanted .input-group-btn .btn{
  min-width: 34px !important;
  height: 34px !important;
  padding: 4px 8px !important;
  line-height: 1 !important;
}

#collapse_858 .quantity_wanted input.qty,
#collapse_1135 .quantity_wanted input.qty,
#collapse_1188 .quantity_wanted input.qty,
#collapse_1147 .quantity_wanted input.qty,
#collapse_1167 .quantity_wanted input.qty{
  height: 34px !important;
  padding: 4px 6px !important;
  text-align: center !important;
  line-height: normal !important;
}

/* 6) Mobile : même logique, largeur qty un peu plus petite */
@media (max-width: 767.98px){
  #collapse_858 .option.option_group,
  #collapse_1135 .option.option_group,
  #collapse_1188 .option.option_group,
  #collapse_1147 .option.option_group,
  #collapse_1167 .option.option_group{
    padding: 8px 0 !important;
  }

  #collapse_858 .option.option_group > .quantity_wanted,
  #collapse_1135 .option.option_group > .quantity_wanted,
  #collapse_1188 .option.option_group > .quantity_wanted,
  #collapse_1147 .option.option_group > .quantity_wanted,
  #collapse_1167 .option.option_group > .quantity_wanted{
    flex: 0 0 110px !important;
  }
}

/* =========================================================
   FOOTER BAS (#footer-after) — Version finale CPCM
   ========================================================= */

/* Fond brun comme le menu */
#footer-after {
  background: #3a3126 !important;
  color: #fff !important;
}

/* Par défaut tout en blanc */
#footer-after,
#footer-after * {
  color: #fff !important;
}

/* (1) Copyright : tout en orange (texte unique dans un seul span) */
#footer-after .cpcm-footer-copy {
  color: #C96E21 !important;
}

/* (2) Icônes sociales : blanc → hover orange */
#footer-after .cpcm-footer-social-icons span {
  opacity: 1 !important;
}

/* Les icônes (qu'elles soient en background, ::before ou contenu) */
#footer-after .cpcm-footer-social-icons span,
#footer-after .cpcm-footer-social-icons span::before,
#footer-after .cpcm-footer-social-icons span::after,
#footer-after .cpcm-footer-social-icons span * {
  color: #fff !important;
  fill: #fff !important;
  filter: brightness(0) invert(1) !important;
}

/* Hover : passe en orange */
#footer-after .cpcm-footer-social-icons span:hover,
#footer-after .cpcm-footer-social-icons span:hover::before,
#footer-after .cpcm-footer-social-icons span:hover::after,
#footer-after .cpcm-footer-social-icons span:hover * {
  filter: brightness(0) saturate(100%) invert(47%) sepia(72%) saturate(1200%) hue-rotate(4deg) brightness(92%) contrast(95%) !important;
}

/* Séparateurs */
#footer-after .cpcm-footer-sep {
  background: rgba(201,110,33,.35) !important;
}

/* (3) Avis Google : pas d'encadré */
#footer-after .cpcm-google-reviews-link {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* "Avis Google" en blanc */
#footer-after .cpcm-gr-title {
  color: #fff !important;
}

/* 4,9 + étoiles en orange fixe */
#footer-after .cpcm-gr-meta,
#footer-after .cpcm-gr-meta * {
  color: #C96E21 !important;
  fill: #C96E21 !important;
}

/* Footer : email hover orange */
#footer .footer-company-email a:hover {
  color: #C96E21 !important;
}

/* BLOG (YBC) : pleine largeur, pas de colonne gauche */
body#ybc_blog_page #left-column{
  display: none !important;
}

/* Annule la "right column" et force le contenu à prendre toute la ligne */
body#ybc_blog_page #content-wrapper{
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
}

/* Sécurité : certains thèmes gardent une marge/padding via .left-column */
body#ybc_blog_page #content-wrapper.left-column{
  padding-left: 0 !important;
}

/* BLOG YBC : supprime la bande orange / page-header vide */
body#ybc_blog_page header.page-header{
  display: none !important;
}

/* BLOG YBC : supprimer les puces (marker) à gauche des vignettes */
ul.ybc-blog-list.blog-main-page{
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

ul.ybc-blog-list.blog-main-page > li{
  list-style: none !important;
}

/* BLOG YBC : effet hover sur l'encart article */
ul.ybc-blog-list.blog-main-page li .post-wrapper{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 8px;
  overflow: hidden;
  transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}

/* Option : rendre évident que tout est cliquable */
ul.ybc-blog-list.blog-main-page li .post-wrapper,
ul.ybc-blog-list.blog-main-page li .post-wrapper *{
  cursor: pointer;
}

/* Hover propre et discret (gris clair) */
ul.ybc-blog-list.blog-main-page li:hover .post-wrapper,
ul.ybc-blog-list.blog-main-page li .post-wrapper:hover{
  background: rgba(0,0,0,.035);
  border-color: rgba(0,0,0,.12);
  box-shadow: 0 8px 18px rgba(0,0,0,.08);
  transform: translateY(-1px);
}

/* Bonus : titre en orange au hover */
ul.ybc-blog-list.blog-main-page li:hover .ybc_title_block,
ul.ybc-blog-list.blog-main-page li .post-wrapper:hover .ybc_title_block{
  color: #C96E21 !important;
}


/* ================================
   CPCM — Slider stable (SEO-safe)
   ================================ */

#slider-container .owl-slide{
  position: relative;
  height: 400px;
}

#slider-container picture,
#slider-container img{
  width: 100%;
  height: 100%;
  display: block;
}

#slider-container img{
  object-fit: cover;
  object-position: center;
}

/* Lien pleine surface (important) */
#slider-container .owl-link{
  display: block;
  width: 100%;
  height: 100%;
}

/* ================================
   CPCM — Slider Cinematic Reveal
   ================================ */

/* Transitions image (zoom + darken) */
#slider-container .owl-slide{
  overflow: hidden;
}
#slider-container .owl-slide img{
  transition: transform 0.6s ease, filter 0.6s ease;
}

/* Overlay gradient sombre depuis le bas */
#slider-container .owl-slide::after{
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0) 100%);
  opacity: 0;
  transition: opacity 0.5s ease;
  z-index: 1;
  pointer-events: none;
}

/* Caption : repositionnee en bas centre, invisible par defaut */
.slider-caption{
  pointer-events: none;
  z-index: 2;
  bottom: 40px !important;
  top: auto !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  padding: 0 8% !important;
}

/* Texte : cache via opacity (SEO-safe + animable) */
.slider-title,
.slider-subtitle,
.slider-description{
  position: relative !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  clip: unset !important;
  white-space: normal !important;
  opacity: 0;
  transform: translateY(25px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

/* Accent orange sous le titre */
.slider-title{
  display: inline-block;
  padding-bottom: 8px;
  border-bottom: 3px solid transparent;
  transition: opacity 0.5s ease, transform 0.5s ease, border-color 0.4s ease 0.3s;
}

/* ======= HOVER : Cinematic Reveal ======= */

#slider-container .owl-slide:hover img{
  transform: scale(1.05);
  filter: brightness(0.45);
}

#slider-container .owl-slide:hover::after{
  opacity: 1;
}

#slider-container .owl-slide:hover .slider-title{
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.1s;
  border-bottom-color: #e67e22;
  text-shadow: 0 2px 8px rgba(0,0,0,0.6);
}

#slider-container .owl-slide:hover .slider-subtitle{
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.2s;
  text-shadow: 0 2px 6px rgba(0,0,0,0.5);
}

#slider-container .owl-slide:hover .slider-description{
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.3s;
  text-shadow: 0 1px 4px rgba(0,0,0,0.5);
}

/* =========================================
   CPCM — Slider Mobile : texte visible permanent
   ========================================= */

@media (max-width: 767.98px){
  #slider-container .owl-slide::after{
    opacity: 1;
    height: 50%;
  }
  .slider-caption{
    bottom: 25px !important;
    padding: 0 5% !important;
  }
  .slider-title{
    opacity: 1 !important;
    transform: translateY(0) !important;
    font-size: 1.2rem !important;
    text-shadow: 0 2px 8px rgba(0,0,0,0.7);
    border-bottom-color: #e67e22 !important;
  }
  .slider-subtitle{
    opacity: 1 !important;
    transform: translateY(0) !important;
    font-size: 0.95rem !important;
    text-shadow: 0 1px 4px rgba(0,0,0,0.5);
  }
  .slider-description{
    display: none !important;
  }
}

/* =========================================
   CPCM — Slider FIX MOBILE (Universal Theme)
   ========================================= */

@media (max-width: 767.98px){

  /* Hauteur réelle du slide */
  #slider-container .owl-slide{
    height: 350px !important;
  }

  /* Empêcher Owl / thème de déformer */
  #slider-container .owl-item,
  #slider-container .owl-stage-outer,
  #slider-container .owl-stage{
    height: 350px !important;
  }

  /* Image : comportement propre */
  #slider-container img.owl-img{
    width: 100% !important;
    height: 350px !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block;
  }

  /* Supprimer tout débordement parasite */
  #slider-container .owl-slide picture{
    width: 100%;
    height: 350px;
    display: block;
  }

  /* Sécurité anti-zoom bizarre du thème */
  #slider-container{
    overflow: hidden;
  }
}

/* ===========================================
   Encarts produit – Style cards configurateur
   =========================================== */

/* Card : même style que les blocs configurateur */
.product-card-block {
  background: #ffffff;
  border: 1px solid #d9d9d9;
  border-radius: 8px;
  padding: 25px 30px;
  margin-bottom: 15px;
}

/* Titre dans la card : gros, sans trait en dessous */
.product-card-block-title {
  font-size: 1.4rem;
  font-weight: 700;
  color: #333;
  margin: 0 0 18px 0;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

/* ===========================================
   Caractéristiques techniques – Liste ✅ fond gris uniforme
   =========================================== */

.product-features-list {
  columns: 1;
  margin: 0;
}

.product-feature-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background-color: #f3f3f3;
  border-radius: 6px;
  font-size: 0.95rem;
  line-height: 1.5;
  transition: background-color 0.2s ease;
}

/* Hover : illumination au survol */
.product-feature-item:hover {
  background-color: #e6e6e6;
}

.feature-check {
  flex-shrink: 0;
  font-size: 1rem;
}

.feature-value {
  font-weight: 500;
  color: #333;
}

/* 2 colonnes sur desktop */
@media (min-width: 768px) {
  .product-features-list {
    columns: 2;
    column-gap: 20px;
  }
  .product-feature-item {
    break-inside: avoid;
  }
}

/* ===========================================
   Téléchargements – Cartes empilées verticalement
   =========================================== */

/* Liste empilée (1 colonne toujours) */
.attachments-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.attachment-card {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 16px 20px;
  background: #f3f3f3;
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.attachment-card:hover {
  background: #e6e6e6;
  border-color: #ccc;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.attachment-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  background: #fdf2f2;
  border-radius: 8px;
}

.attachment-info {
  flex: 1;
  min-width: 0;
}

.attachment-name {
  font-weight: 600;
  font-size: 0.95rem;
  color: #333;
  margin: 0 0 2px 0;
}

.attachment-desc {
  font-size: 0.85rem;
  color: #777;
  margin: 0;
}

.attachment-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: #2d7f4f;
  color: #ffffff !important;
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  text-decoration: none;
  white-space: nowrap;
}

.attachment-btn:hover {
  background: #245f3d;
  box-shadow: 0 2px 6px rgba(45, 127, 79, 0.3);
}

.attachment-btn svg {
  flex-shrink: 0;
}

/* Légende alt sous les miniatures produit */
.product-images .thumb-container {
  position: relative !important;
}
.thumb-alt-caption {
  display: block;
  text-align: center;
  font-size: 0.7rem;
  color: #666;
  line-height: 1.2;
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 150px;
}

/* =========================================================
   MOBILE — Barre de navigation + bouton MENU
   ========================================================= */
@media (max-width: 991.98px) {
  .header-nav {
    background: var(--cpcm-dark) !important;
  }

  #menu-icon {
    background: #c69b72 !important;
    color: #fff !important;
    border-radius: 5px;
    padding: 8px 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px;
  }

  #menu-icon i {
    color: #fff !important;
    font-size: 1.1rem;
  }

  #menu-icon span {
    color: #fff !important;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.5px;
  }

  /* Icônes compte + panier en blanc sur fond sombre */
  .header-nav .mobile-user-info i,
  .header-nav .mobile-shopping-cart i {
    color: #fff !important;
  }

  .header-nav .mobile-shopping-cart .badge {
    background: #c69b72 !important;
    color: #fff !important;
  }
}

/* =========================================================
   MOBILE — Image produit principale hauteur réduite
   ========================================================= */
@media (max-width: 767.98px) {
  #product .product-cover img.js-qv-product-cover {
    max-height: 400px !important;
    width: auto !important;
    object-fit: contain !important;
    margin: 0 auto !important;
    display: block !important;
  }
}


/* =========================================================
   LISTING MINIATURES — CTA boutons + Disponibilité
   ========================================================= */

/* --- Prix + dispo sur la même ligne --- */
.product-miniature .product-price-shipping {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: baseline !important;
  gap: 0 8px !important;
}

/* TTC après le prix */
.product-miniature .cpcm-ttc {
  font-size: 0.75rem;
  color: #666;
  margin-left: 2px;
  font-weight: 400;
}

/* Disponibilité inline avec le prix */
.product-miniature .cpcm-availability {
  font-size: 0.78rem;
  font-weight: 600;
}

.product-miniature .cpcm-availability--in {
  color: #2d7f4f;
}

.product-miniature .cpcm-availability--in .material-icons {
  font-size: 14px;
  vertical-align: middle;
}

.product-miniature .cpcm-availability--out {
  color: #c0392b;
}

/* --- Boutons + loupe sur la ligne du dessous --- */
.product-miniature .product-price-and-shipping {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
}

/* Boutons à gauche */
.product-miniature .cpcm-btn-wrap {
  display: inline-flex !important;
  align-items: center !important;
  gap: 14px !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

/* Loupe alignée à droite */
.product-miniature .product-actions {
  margin-left: auto !important;
  display: flex !important;
  align-items: center !important;
}

.product-miniature .product-actions .quick-view {
  display: none !important;
}

/* --- BASE commune boutons CPCM --- */
.product-miniature .cpcm-mid-btn,
.product-miniature .cpcm-add-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 9px 14px !important;
  border: 1px solid #2F2F2E !important;
  border-radius: 6px !important;
  background: #2F2F2E !important;
  color: #fff !important;
  text-decoration: none !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}

.product-miniature .cpcm-mid-btn:hover,
.product-miniature .cpcm-add-btn:hover {
  background: #C96E21 !important;
  border-color: #C96E21 !important;
  color: #fff !important;
  transform: translateY(-1px);
}

.product-miniature .cpcm-mid-btn:active,
.product-miniature .cpcm-add-btn:active {
  transform: translateY(0);
}

.product-miniature .cpcm-mid-btn:focus,
.product-miniature .cpcm-add-btn:focus {
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(201, 110, 33, 0.25) !important;
}

.product-miniature .cpcm-add-form {
  display: inline-flex !important;
  margin: 0 !important;
}

.product-miniature .cpcm-add-btn {
  appearance: none !important;
  -webkit-appearance: none !important;
}

/* Responsive libellé */
.product-miniature .cpcm-mid-btn .cpcm-btn-long { display: inline; }
.product-miniature .cpcm-mid-btn .cpcm-btn-short { display: none; }

@media (max-width: 1100px) {
  .product-miniature .cpcm-mid-btn { padding: 9px 12px !important; }
  .product-miniature .cpcm-mid-btn .cpcm-btn-long { display: none; }
  .product-miniature .cpcm-mid-btn .cpcm-btn-short { display: inline; }
}

@media (max-width: 768px) {
  .product-miniature .cpcm-mid-btn { padding: 9px 10px !important; }
  .product-miniature .cpcm-mid-btn .cpcm-btn-long { display: none; }
  .product-miniature .cpcm-mid-btn .cpcm-btn-short { display: inline; }
}

@media (max-width: 575px) {
  .product-miniature .cpcm-mid-btn,
  .product-miniature .cpcm-add-btn {
    padding: 9px 12px !important;
  }
}


/* =========================================================
   CPCM — Micro-résumé catégorie sous le H1 — 2026-02-23
   ========================================================= */
.category-summary {
  color: #666;
  font-size: 0.95rem;
  margin-bottom: 1rem;
  line-height: 1.5;
}
.category-summary p { margin: 0; }


/* =========================================================
   CPCM — Listing : description courte
   Desktop = texte complet  |  Mobile = tronqué + "En savoir plus"
   ========================================================= */

.product-miniature .product-description-short {
  display: block !important;
  -webkit-line-clamp: unset !important;
  -webkit-box-orient: unset !important;
  overflow: visible !important;
  font-size: 0.82rem;
  color: #555;
  line-height: 1.45;
}

/* Desktop : texte complet visible, tronqué masqué */
.product-miniature .product-desc-full { display: block !important; }
.product-miniature .product-desc-truncated { display: none !important; }

/* --- HOMEPAGE UNIQUEMENT : description tronquée à 2 lignes --- */
.page-index .product-miniature .product-desc-full {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  max-height: 2.9em !important;
}
/* Homepage mobile : garder le tronqué mobile mais plus court */
@media (max-width: 991px) {
  .page-index .product-miniature .product-desc-truncated {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }
  .page-index .product-miniature .cpcm-dots,
  .page-index .product-miniature .cpcm-voir-plus { display: none !important; }
}

/* Mobile (< 992px) : tronqué visible, complet masqué */
@media (max-width: 991px) {
  .product-miniature .product-desc-full { display: none !important; }
  .product-miniature .product-desc-truncated { display: block !important; }
}

/* Style "En savoir plus" (mobile) */
.product-miniature .cpcm-dots {
  color: #999;
}
.product-miniature .cpcm-voir-plus {
  color: #333;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  font-size: 0.82rem;
}
.product-miniature .cpcm-voir-plus:hover {
  text-decoration: underline;
  color: #000;
}

/* Titre : espacement réduit avant la description */
.product-miniature .product-title {
  margin-bottom: 0.35rem !important;
}

/* Prix : suit la description sans espace vide (retire l'ancien mt-auto) */
.product-miniature .product-price-and-shipping {
  margin-top: 0.75rem !important;
}

/* =========================================================
   CPCM — Listing Mobile : image réduite, titres + cartes
   ========================================================= */
@media (max-width: 991px) {

  /* Photo produit : réduite à 65% et centrée */
  .product-miniature .thumbnail-container {
    max-width: 65% !important;
    margin: 0 auto;
  }

  /* Titre produit : 4px de plus que la description (desc=13px → titre=17px) */
  .product-miniature .product-title {
    font-size: 1.06rem !important;
  }

  /* Titre catégorie H1 : réduit de 35px à 22px */
  h1.category-title,
  .category-header h1,
  #js-product-list-header {
    font-size: 1.375rem !important;
  }

  /* Carte produit : bordure visible pour bien séparer */
  .product-miniature .product-block {
    border: 1px solid rgba(0, 0, 0, 0.12) !important;
    border-radius: 6px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    margin-bottom: 12px;
    padding: 10px;
  }

  /* Breadcrumb (fil d'Ariane) : réduit sur mobile */
  .breadcrumb {
    font-size: 0.69rem !important;
  }
  .breadcrumb-item,
  .breadcrumb-item a {
    font-size: 0.69rem !important;
  }
}

/* =========================================================
   CPCM — Vidéos YouTube responsive dans fiche produit
   ========================================================= */
.product-description iframe {
  max-width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9;
}

/* =========================================================
   FIX CONDITIONS CONFIGURATEUR MOBILE v2
   Filet de securite : meme si front_17.css est en cache,
   ces regles dans custom.css (theme) forcent le bon comportement.
   Les options du configurateur ne doivent apparaitre en flex/block
   QUE quand le JS a confirme data-display="true".
   ========================================================= */
@media (max-width: 768px) {
  /* Masquer explicitement les elements caches par le JS */
  #configurator_block .option.option_group[data-display="false"],
  #configurator_block .option_input.option_group[data-display="false"],
  #configurator_block .configurator-card[data-display="false"],
  #configurator_block [data-display="false"] {
    display: none !important;
  }

  /* Ne PAS forcer display:flex/block sur les options qui n'ont pas
     encore ete traitees par le JS (pas de data-display).
     Laisser le style="display:none" inline du template agir. */
  #configurator_block .option.option_group:not([data-display="true"]) {
    display: none !important;
  }
  #configurator_block .option_input.option_group:not([data-display="true"]) {
    display: none !important;
  }

  /* Afficher en flex UNIQUEMENT les options confirmees visibles */
  #configurator_block .option.option_group[data-display="true"] {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
  }
  #configurator_block .option_input.option_group[data-display="true"] {
    display: block !important;
  }
}

/* =========================================
   CPCM — Alt Column Blocks : Cinematic Reveal
   3 blocs image homepage (hook displayAltColumn)
   ========================================= */

/* Container image : clip pour le zoom */
.theme-block.img .block-content{
  overflow: hidden;
  border-radius: 6px;
}

/* Image : zoom doux au hover */
.theme-block.img .block-img{
  transition: transform 0.8s ease, filter 0.8s ease;
}
.theme-block.img .block-content:hover .block-img{
  transform: scale(1.06);
  filter: brightness(0.4);
}

/* Degrade sombre permanent en bas pour lisibilite texte */
.theme-block.img .block-link::after{
  background: none !important;
  border: none !important;
}
.theme-block.img .block-content::after{
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 80%;
  background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.45) 40%, transparent 100%);
  z-index: 1;
  pointer-events: none;
  transition: height 0.6s ease, background 0.6s ease;
}
.theme-block.img .block-content:hover::after{
  height: 100%;
  background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.5) 60%, rgba(0,0,0,0.3) 100%);
}

/* Texte : au dessus du degrade */
.theme-block.img .block-text{
  z-index: 2;
}

/* Titre : toujours visible + accent or au hover */
.theme-block.img .block-title{
  opacity: 1;
  transform: translateY(0);
  transition: transform 0.5s ease, border-color 0.4s ease 0.2s, text-shadow 0.4s ease;
  border-bottom: 3px solid transparent;
  padding-bottom: 6px;
  font-weight: 700;
  text-shadow: 0 2px 12px rgba(0,0,0,0.9), 0 0 20px rgba(0,0,0,0.6);
}
.theme-block.img .block-content:hover .block-title{
  transform: translateY(-4px);
  border-bottom-color: #c69b72;
  text-shadow: 0 2px 16px rgba(0,0,0,1), 0 0 30px rgba(0,0,0,0.7);
}

/* Description : visible en permanence, renforcee au hover */
.theme-block.img .block-description{
  opacity: 0.85;
  transform: translateY(0);
  transition: opacity 0.5s ease 0.1s, transform 0.5s ease 0.1s;
  font-weight: 500;
  text-shadow: 0 1px 8px rgba(0,0,0,0.9), 0 0 16px rgba(0,0,0,0.5);
}
.theme-block.img .block-content:hover .block-description{
  opacity: 1;
  transform: translateY(-2px);
}

/* Bordure coins au hover : z-index au dessus du degrade */
.theme-block.img .block-link::before{
  z-index: 3;
}

/* ======= Alt Column Mobile : texte toujours visible ======= */
@media (max-width: 767.98px){
  .theme-block.img .block-title{
    opacity: 1;
    transform: translateY(0);
    font-size: 1.15rem;
    text-shadow: 0 2px 8px rgba(0,0,0,0.8);
    border-bottom-color: #c69b72;
  }
  .theme-block.img .block-description{
    opacity: 1;
    transform: translateY(0);
    font-size: 0.85rem;
  }
  .theme-block.img .block-content::after{
    height: 75%;
  }
}

/* =========================================
   CPCM — Homepage sections : nettoyage
   ========================================= */

/* Bouton "Voir tout" blog : vire + espace supprime */
.blog_view_all_button{
  display: none !important;
}
#index .ybc_block_latest .block_content{
  margin-bottom: 0 !important;
}
#index .ybc_block_latest{
  padding-bottom: 0 !important;
  margin-bottom: 1rem !important; /* etait 60px par defaut */
}

/* Lien "Tous les produits >" : vire */
#index .featured-products .all-product-link{
  display: none !important;
}

/* Espacement entre sections */
#index #alt-column-container{
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
#index .featured-products{
  padding-bottom: 0.5rem;
}

/* =========================================
   CPCM — Titres sections homepage
   Injectes en JS comme <h2 class="h1">
   Le theme fait automatiquement les traits dores
   ========================================= */

/* Titres "Notre savoir-faire" et "Nos guides & conseils" : espacement */
#index #alt-column > .h1,
#index .ybc_block_latest > .h1{
  margin-bottom: 1rem;
}

/* =========================================
   CPCM — Blog homepage : animation hover + couleurs
   ========================================= */

/* Image : zoom + assombrissement au hover */
#index .ybc_block_latest a.ybc_item_img{
  display: block;
  overflow: hidden;
  border-radius: 6px;
  transition: box-shadow 0.4s ease;
}
#index .ybc_block_latest a.ybc_item_img img{
  transition: transform 0.6s ease, filter 0.4s ease;
}
#index .ybc_block_latest .ybc_blog_content_block_item:hover a.ybc_item_img{
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}
#index .ybc_block_latest .ybc_blog_content_block_item:hover a.ybc_item_img img{
  transform: scale(1.08);
  filter: brightness(0.85);
}

/* Encadrement subtil du bloc au hover */
#index .ybc_block_latest .ybc_blog_content_block_item{
  transition: box-shadow 0.4s ease;
  border-radius: 6px;
  padding: 0.5rem;
}
#index .ybc_block_latest .ybc_blog_content_block_item:hover{
  box-shadow: 0 2px 20px rgba(198, 155, 114, 0.25);
}

/* Couleurs : orange au lieu de bleu */
#index .ybc_block_latest a.ybc_title_block:hover,
#index .ybc_block_latest a.read_more,
#index .ybc_block_latest a.read_more:hover{
  color: #c69b72 !important;
}
#index .ybc_block_latest .ybc-blog-like-span:hover i,
#index .ybc_block_latest .ybc-blog-like-span:hover{
  color: #c69b72 !important;
}

/* Titre blog : couleur au hover */
#index .ybc_block_latest a.ybc_title_block{
  transition: color 0.3s ease;
}

/* "Lire la suite" style discret */
#index .ybc_block_latest a.read_more{
  color: #c69b72 !important;
  border-bottom-color: #c69b72 !important;
}



/* ============================================================
   CONFIGURATEUR PORTAIL ACIER — Styles custom (28/03/2026)
   ============================================================ */

/* Hover surlignage options radio/checkbox */
#configurator_block .option.option_group {
    padding: 4px 8px;
    margin: 0 -8px;
    border-radius: 4px;
    transition: background-color 0.2s ease;
}
#configurator_block .option.option_group:hover {
    background-color: #f7f3ef;
}

/* Step group hover — bordure doree + ombre */
#configurator_block .step_group:hover {
    box-shadow: 0 4px 14px rgba(0,0,0,.09);
    border-left-color: #c69b72 !important;
}

/* Radios custom dore */
#configurator_block input[type="radio"]:hover {
    border-color: #c69b72 !important;
}
#configurator_block input[type="radio"]:checked {
    border-color: #c69b72 !important;
    box-shadow: inset 0 0 0 5px #c69b72 !important;
}

/* Checkboxes custom dore */
#configurator_block input[type="checkbox"]:hover {
    border-color: #c69b72 !important;
    box-shadow: 0 0 0 3px rgba(198,155,114,.12) !important;
}
#configurator_block input[type="checkbox"]:checked {
    border-color: #c69b72 !important;
    background: #c69b72 !important;
}
#configurator_block input[type="checkbox"]:checked::after {
    content: "\2713";
    color: #fff;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Bouton "Plus d'infos" sur les titres de step — pulsant */
#configurator_block .label.label-info {
    background: #fff !important;
    border: 1px solid #c69b72 !important;
    color: #c69b72 !important;
    font-weight: 700;
    cursor: pointer;
    border-radius: 4px;
    font-size: 12px;
    padding: 2px 8px;
}

/* Bouton "AIDE" discret sur chaque option (au bout de la ligne) */
#configurator_block .option.option_group > .label.label-info {
    display: inline !important;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    animation: none !important;
    padding: 0 !important;
    margin-left: 6px;
    color: #c69b72 !important;
    font-size: 11px !important;
    float: right;
    line-height: 24px;
}
#configurator_block .option.option_group > .label.label-info:hover {
    color: #a5571a !important;
    text-decoration: underline;
}


/* Bouton option : masquer texte original, afficher AIDE */
#configurator_block .option.option_group > .label.label-info {
    font-size: 0 !important;
}
#configurator_block .option.option_group > .label.label-info::after {
    content: "AIDE" !important;
    font-size: 11px !important;
    color: #c69b72;
    letter-spacing: 0.5px;
}
#configurator_block .option.option_group > .label.label-info:hover::after {
    color: #a5571a;
    text-decoration: underline;
}

/* ============================================================
   FILTRE PORTAIL ACIER — Barre checkboxes (28/03/2026)
   ============================================================ */
.cpcd-filters {
  background: #2f2f2e;
  border: none;
  border-radius: 6px;
  padding: 8px 14px !important;
}
.cpcd-filters-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.8rem;
  justify-content: center;
}
.cpcd-filters-label {
  font-weight: 700;
  font-size: 0.88rem;
  color: #fff;
  margin-right: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.cpcd-filter-item {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 500;
  color: #fff;
  padding: 5px 14px;
  border: 2px solid #c69b72;
  border-radius: 25px;
  background: transparent;
  transition: all 0.25s;
  margin: 0;
  user-select: none;
}
.cpcd-filter-item:hover {
  background: rgba(198,155,114,0.2);
  color: #fff;
}
.cpcd-filter-item input[type="checkbox"] {
  accent-color: #c69b72;
  width: 17px;
  height: 17px;
  cursor: pointer;
}
.cpcd-filter-item:has(input:checked) {
  background: #c69b72;
  color: #fff;
  border-color: #c69b72;
  box-shadow: 0 2px 8px rgba(198,155,114,0.4);
}
.cpcd-filter-reset {
  background: none;
  border: 1px solid rgba(255,255,255,0.4);
  border-radius: 25px;
  padding: 5px 12px;
  font-size: 0.85rem;
  color: rgba(255,255,255,0.7);
  cursor: pointer;
  transition: all 0.2s;
}
.cpcd-filter-reset:hover {
  background: rgba(255,255,255,0.1);
  border-color: #fff;
  color: #fff;
}
@media (max-width: 767px) {
  .cpcd-filters-inner {
    gap: 0.4rem 0.5rem;
  }
  .cpcd-filter-item {
    font-size: 0.85rem;
    padding: 6px 14px;
  }
  .cpcd-filters-label {
    font-size: 0.9rem;
    width: 100%;
    text-align: center;
  }
}


/* ============================================================
   PORTAIL ACIER (cat 3865) — Recadrage images paysage dans portrait
   Temporaire en attendant regeneration images au bon format portrait
   Le theme charge home_portrait_default (360x540) = paysage padde en portrait
   On force un ratio 3/2 paysage + object-fit:cover pour couper le blanc
   ============================================================ */
body.category-id-3865 .thumbnail-container {
    overflow: hidden !important;
}
body.category-id-3865 .product-miniature .thumbnail-container .product-img,
body.category-id-3865 .product-miniature .thumbnail-container .product-img-alt {
    aspect-ratio: 4/3 !important;
    object-fit: cover !important;
    object-position: center center !important;
    width: 100% !important;
    height: auto !important;
}
/* Mode liste */
body.category-id-3865 .products.list .product-miniature .thumbnail-container {
    max-width: 300px !important;
}
body.category-id-3865 .products.list .product-miniature .thumbnail-container .product-img,
body.category-id-3865 .products.list .product-miniature .thumbnail-container .product-img-alt {
    aspect-ratio: 3/2 !important;
    object-fit: cover !important;
}


/* ============================================================
   CPCM - Mode liste (01/04/2026)
   Le template products.tpl force class=list en dur
   Les boutons sont masqués dans products-top.tpl
   ============================================================ */


/* ============================================================
   CPCM - Page accueil : images produits hauteur réduite (01/04/2026)
   ============================================================ */
.page-index .product-miniature .thumbnail-container {
    overflow: hidden !important;
}
.page-index .product-miniature .thumbnail-container .product-img,
.page-index .product-miniature .thumbnail-container .product-img-alt {
    max-height: 350px !important;
    object-fit: contain !important;
    width: 100% !important;
}


/* ====================================================
   CPCM 01/04/2026 — Variantes produit (déclinaisons)
   Boutons de sélection propres + responsive
   ==================================================== */

/* Supprimer la contrainte 200px sur les listes radio/color */
.product-detail-primary .product-variants .radio-list,
.product-detail-primary .product-variants .color-list {
  width: auto !important;
  gap: 6px;
  justify-content: flex-start !important;
}

/* Ligne variante : label a gauche, boutons a droite, centrage vertical */
.product-detail-primary .product-variants .product-variants-item {
  flex-wrap: wrap;
  gap: 8px;
}

/* Label du groupe (ex: Finition) */
.product-detail-primary .product-variants .product-variants-item .control-label {
  min-width: 150px;
  flex-shrink: 0;
}

/* Zone boutons : prend l espace restant, wrap si besoin */
.product-detail-primary .product-variants .product-variants-item .control-item {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-start;
}

/* Boutons radio : style propre */
.product-detail-primary .product-variants .radio-list .input-container {
  margin: 0 !important;
}

.product-detail-primary .product-variants .radio-list .radio-label {
  font-size: 0.85rem;
  padding: 6px 14px !important;
  white-space: nowrap;
  transition: all 0.15s ease;
  cursor: pointer;
}

.product-detail-primary .product-variants .radio-list .radio-label:hover {
  border-color: #c69b72;
}

/* Mobile : boutons pleine largeur, centres */
@media (max-width: 575px) {
  .product-detail-primary .product-variants .product-variants-item {
    flex-direction: column;
    align-items: stretch !important;
  }
  .product-detail-primary .product-variants .product-variants-item .control-item {
    justify-content: flex-start;
  }
  .product-detail-primary .product-variants .radio-list,
  .product-detail-primary .product-variants .color-list {
    justify-content: flex-start !important;
  }
}
/* ============================================================
   CPCM - Fix zoom modal : images paysage 16:9
   Force Owl Carousel a adapter sa hauteur a l'image reelle.
   ============================================================ */
#product-modal .modal-dialog {
    max-width: 1000px !important;
    margin: 1.75rem auto !important;
}
#product-modal .owl-stage-outer {
    height: auto !important;
}
#product-modal .owl-item {
    height: auto !important;
}
#product-images-modal .owl-item img {
    width: 100% !important;
    height: auto !important;
}
/* ============================================================
   CPCM - Mode liste : images plus grandes (04/04/2026)
   L image prend toute la hauteur de la ligne produit
   ============================================================ */
@media (min-width: 576px) {
  .products.list .product-block {
    align-items: stretch !important;
  }
  .products.list .thumbnail-container {
    width: 350px !important;
    min-width: 350px !important;
    align-self: stretch !important;
  }
  .products.list .thumbnail-container .product-thumbnail {
    display: block !important;
    height: 100% !important;
  }
  .products.list .thumbnail-container .product-img,
  .products.list .thumbnail-container .product-img-alt {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }
}
@media (min-width: 992px) {
  .products.list .thumbnail-container {
    width: 400px !important;
    min-width: 400px !important;
  }
}

/* Masquer Etat et Reference sur page produit */
.product-condition.product-variants-item,
.product-reference.product-variants-item {
  display: none !important;
}

/* Reduire espace au-dessus du configurateur */
.product-configurator.col-12.mt-3 {
  margin-top: 0.5rem !important;
}

/* Reduire espace sous descriptif image (avant configurateur) */
.product-image-alt {
  margin-bottom: 0 !important;
  padding-bottom: 0.25rem !important;
}
#product .product-detail-primary > .row > .product-images.col-lg-7 {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Reduire espace entre descriptif image et prix */
#product .product-detail-primary .row > .product-info.col-12.mt-3 {
  margin-top: 0 !important;
}
/* ============================================================
   ALIGNEMENT GAUCHE — prix/stock/panier sur produits sans configurateur
   (accessoires, moteurs, etc.)
   Ajout 2026-04-04
   ============================================================ */

/* Le template met text-right sur .product-add-to-cart : on force text-left */
#product .product-info .product-add-to-cart {
  text-align: left !important;
}

/* Ligne quantite + bouton Ajouter au panier : aligner a gauche */
#product .product-info .product-quantity .d-flex.justify-content-end {
  justify-content: flex-start !important;
}

/* Bloc bouton Ajouter : aligner a gauche au lieu de align-items-end */
#product .product-info .product-quantity .add {
  align-items: flex-start !important;
}

/* Prix : forcer alignement gauche */
#product .product-info .product-prices {
  text-align: left !important;
}

/* Bloc actions produit (hooks PayPal, etc.) */
#product .product-info .product-actions {
  text-align: left !important;
}

/* Infos additionnelles (reassurance, livraison, etc.) */
#product .product-info .product-additional-info {
  text-align: left !important;
}

/* Partage reseaux sociaux */
#product .product-info .social-sharing {
  justify-content: flex-start !important;
  text-align: left !important;
}

/* Hook displayProductActions (bouton PayPal Express, etc.) */
#product .product-info .product-quantity > div:last-child {
  text-align: left !important;
  display: flex;
  justify-content: flex-start !important;
}

/* ============================================================
   FICHE PRODUIT STANDARD (sans configurateur) :
   Reordonnancement complet via JS (#product-reorder-target)
   Refonte 2026-04-05
   ============================================================ */

/* --- Conteneur reordonne --- */
#product-reorder-target {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 10px !important;
  margin-top: 3px !important;
  width: 100% !important;
}

/* --- Prix plus visible --- */
#product-reorder-target .product-price .price {
  font-size: 2rem !important;
}

/* --- Stock/livraison : espacement serre --- */
#product-reorder-target #product-availability,
#product-reorder-target .shipping-delivery-label,
#product-reorder-target .product-price-info {
  margin: 0 !important;
  padding: 0 !important;
}

/* --- Logo marque : petit, aligne gauche --- */
#product-reorder-target .product-manufacturer {
  position: static !important;
  text-align: left !important;
  margin-top: 5px !important;
  margin-bottom: 0 !important;
  float: none !important;
  right: auto !important;
  top: auto !important;
}
#product-reorder-target .product-manufacturer img {
  max-height: 35px !important;
  width: auto !important;
}

/* --- Bloc Paiement 100 pourcent securise --- */
#product-reorder-target #ps_checkout-payment-method-logo-block-container {
  margin-top: 8px !important;
  text-align: left !important;
}

/* --- Boutons PayPal/GPay express : alignement gauche --- */
#product-reorder-target #ps-checkout-express-button,
#product-reorder-target .ps_checkout-express-button {
  text-align: left !important;
  margin-top: 5px !important;
}

/* Masquer boutons Partager sur page produit */
#product .social-sharing {
  display: none !important;
}

/* Masquer texte Paiement 100% securise */
#ps_checkout-payment-method-logo-block-container {
  display: none !important;
}

/* Masquer logo marque sur page produit */
#product .product-manufacturer {
  display: none !important;
}

/* Masquer lignes horizontales page produit */
#product .product-description-short.border-top,
#product .product-description-short.border-bottom {
  border-top: none !important;
  border-bottom: none !important;
}
#product .configurator-intro-summary {
  border-top: none !important;
  border-bottom: none !important;
}
#product .product-image-alt.border-bottom {
  border-bottom: none !important;
}

/* Encadrer le bloc produit principal (meme style que Description) */
#product .product-detail-primary {
  background: #ffffff !important;
  border: 1px solid #d9d9d9 !important;
  border-radius: 8px !important;
  padding: 25px 30px !important;
  margin-bottom: 15px !important;
}

/* Fix hauteur images carrousels produits associes (images paysage 16:9) */
.products-carousel .carousel-product-thumbnail {
  display: flex;
  align-items: center;
  justify-content: center;
}
.products-carousel .carousel-product-thumbnail img {
  height: auto !important;
  max-height: 180px !important;
  width: auto !important;
  max-width: 100% !important;
  object-fit: contain !important;
}

/* Bouton Configurer sur nouvelle ligne */
.product-miniature .product-price-and-shipping {
  flex-wrap: wrap !important;
}
.product-miniature .cpcm-mid-btn {
  flex-basis: 100% !important;
  margin-top: 8px !important;
  text-align: center !important;
  justify-content: center !important;
}

/* Liste produits : prix + livraison alignés à gauche (surcharge justify-content-between) */
.products.list .product-miniature .product-price-and-shipping.d-flex.justify-content-between {
  justify-content: flex-start !important;
  gap: 10px !important;
}






/* =========================================================
   CPCM — Accessoires : masquer Ajouter au panier,
   Voir le produit pleine largeur style Configurer — 2026-04-05
   ========================================================= */

/* Masquer le bouton Ajouter au panier dans les miniatures accessoires */
.product-miniature .cpcm-btn-wrap .cpcm-add-form {
  display: none !important;
}

/* Voir le produit : pleine largeur, même style que Configurer */
.product-miniature .cpcm-btn-wrap {
  display: flex !important;
  width: 100% !important;
}

.product-miniature .cpcm-btn-wrap .cpcm-mid-btn {
  flex: 1 !important;
  width: 100% !important;
  text-align: center !important;
  justify-content: center !important;
}

/* Masquage affichage promo (CGV / Omnibus) - 2026-04-21 */
.regular-price,.discount-percentage,.product-discount,span.discount{display:none !important}
#configurator_preview dl.dl-horizontal:not(.dl-final-price),#configurator_preview #old_price,#configurator_preview .badge-reduction{display:none !important}


/* ===========================================================================
 * Override Omnibus - 2026-04-23 - Affiche prix barres / badges UNIQUEMENT
 * pour les produits en PROMO DATEE (specific_price.to != 0000-00-00).
 * La classe .promo-datee est ajoutee par le module cpcm_promoflag via la
 * variable Smarty $cpcm_dated_promo_ids, appliquee par les templates :
 *   - layouts/layout-both-columns.tpl (body sur fiche produit)
 *   - catalog/_partials/miniatures/product.tpl (article miniature)
 * Le reste du catalogue reste masque par la regle ligne 2561 (CGV/Omnibus).
 * =========================================================================== */
body.promo-datee .regular-price,
body.promo-datee .discount-percentage,
body.promo-datee .product-discount,
body.promo-datee span.discount,
.product-miniature.promo-datee .regular-price,
.product-miniature.promo-datee .discount-percentage,
.product-miniature.promo-datee .product-discount,
.product-miniature.promo-datee span.discount
{ display: inline !important; }


/* ===========================================================================
 * CPCM 2026-04-23 — Bouton "Promotions" dans le menu principal (fond rouge)
 * Cible la <li class="lnk-promotions"> + son <a> enfant
 * Specificite elevee (id nav) pour battre les regles Bootstrap (bg-transparent)
 * =========================================================================== */
/* Specificite 2 IDs pour battre la regle existante #_desktop_top_menu #top-menu>li{background:var(--cpcm-dark)} */
#_desktop_top_menu #top-menu > li.lnk-promotions,
nav#_desktop_top_menu ul#top-menu > li.lnk-promotions,
#mobile_top_menu_wrapper li.lnk-promotions {
  background: #dc3545 !important;
  background-color: #dc3545 !important;
  border-radius: 4px !important;
}
#_desktop_top_menu #top-menu > li.lnk-promotions > a.dropdown-item,
#_desktop_top_menu #top-menu > li.lnk-promotions > a,
nav#_desktop_top_menu ul#top-menu > li.lnk-promotions > a.dropdown-item,
#mobile_top_menu_wrapper li.lnk-promotions > a {
  background: #dc3545 !important;
  background-color: #dc3545 !important;
  color: #fff !important;
  font-weight: 600 !important;
}
#_desktop_top_menu #top-menu > li.lnk-promotions:hover,
#_desktop_top_menu #top-menu > li.lnk-promotions:hover > a,
#_desktop_top_menu #top-menu > li.lnk-promotions:hover > a.dropdown-item,
#_desktop_top_menu #top-menu > li.lnk-promotions > a.dropdown-item:hover,
#_desktop_top_menu #top-menu > li.lnk-promotions > a.dropdown-item:focus {
  background: #b02a37 !important;
  background-color: #b02a37 !important;
  color: #fff !important;
}


/* ===========================================================================
 * CPCM 2026-04-23 — Bouton menu principal ACTIF (page courante) = fond dore #c69b72
 * Classe .menu-active ajoutee via JS dans layout-both-columns.tpl
 * Specificite 2 IDs + 1 classe pour battre la regle #_desktop_top_menu #top-menu>li{background:var(--cpcm-dark)}
 * =========================================================================== */
/* Specificite renforcee avec [data-depth="0"] pour battre la regle existante */
#_desktop_top_menu #top-menu > li.menu-active,
nav#_desktop_top_menu ul#top-menu > li.menu-active,
#mobile_top_menu_wrapper li.menu-active {
  background: #c69b72 !important;
  background-color: #c69b72 !important;
}
nav#_desktop_top_menu ul#top-menu > li.menu-active > a.dropdown-item[data-depth="0"],
nav#_desktop_top_menu ul#top-menu > li.menu-active > span.dropdown-item[data-depth="0"],
#_desktop_top_menu #top-menu > li.menu-active > a.dropdown-item[data-depth="0"],
#_desktop_top_menu #top-menu > li.menu-active > a[data-depth="0"],
#mobile_top_menu_wrapper li.menu-active > a.dropdown-item[data-depth="0"],
#mobile_top_menu_wrapper li.menu-active > a[data-depth="0"] {
  background: #c69b72 !important;
  background-color: #c69b72 !important;
  color: #fff !important;
}
/* Maintient l'effet au hover aussi (ne pas revenir au fond gris) */
nav#_desktop_top_menu ul#top-menu > li.menu-active:hover > a.dropdown-item[data-depth="0"],
#_desktop_top_menu #top-menu > li.menu-active:hover > a.dropdown-item[data-depth="0"] {
  background: #b08760 !important;
  background-color: #b08760 !important;
  color: #fff !important;
}


/* ===========================================================================
 * CPCM 2026-04-23 — Bulle "Economisez XX EUR" : passer de rounded-circle a
 * rounded-pill pour que le texte ne deborde plus (cas amount, contrairement
 * aux % qui rentrent dans un cercle).
 * =========================================================================== */
.product-miniature .discount-amount,
.product-miniature span.discount-amount,
.product-flags .discount-amount,
span.discount-amount {
  border-radius: 50rem !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  padding: 5px 12px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  text-align: center !important;
  display: inline-flex !important;
  justify-content: center !important;
  align-items: center !important;
  box-sizing: border-box !important;
}
/* Neutralise px-2 de Bootstrap qui ajoute du padding horizontal asymetrique avec notre padding */
.product-miniature .discount-amount.px-2,
.product-miniature span.discount-amount.px-2 {
  padding-left: 12px !important;
  padding-right: 12px !important;
}


/* CPCM 2026-04-23 — Bulle remise positionnee en haut-droite */
.product-miniature .discount-amount,
.product-miniature span.discount-amount,
.product-miniature .discount-percentage,
.product-miniature span.discount-percentage {
  right: -20px !important;
  left: auto !important;
  top: -10px !important;
  z-index: 10 !important;
}

/* hash-bust-1776925539 */


/* CPCM 2026-04-23 — overflow:visible partout pour laisser la bulle remise deborder */
body .product-miniature,
body .product-miniature .product-block,
body .product-miniature .thumbnail-container,
body .product-miniature .product-block .thumbnail-container,
.page-index .product-miniature .thumbnail-container,
.page-category .product-miniature .thumbnail-container,
.page-prices-drop .product-miniature .thumbnail-container,
.page-best-sales .product-miniature .thumbnail-container,
.page-new-products .product-miniature .thumbnail-container,
body.category-id-3865 .thumbnail-container {
  overflow: visible !important;
}


/* ===========================================================================
 * CPCM 2026-04-23 — Garde le H1 visible (bon pour SEO) mais retire le
 * bandeau orange/beige autour. Si h1 vide -> masque le bandeau entier.
 * =========================================================================== */
/* Retire le fond et le cadre orange, garde juste le texte H1 */
.page-header {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: none !important;
  box-shadow: none !important;
}
.page-header .container h1,
.page-header .container h1.mb-0 {
  padding: 1rem 0 !important;
  margin-bottom: 0.5rem !important;
  color: #3a3a3a !important;
  font-weight: 700 !important;
}

/* CPCM 2026-05-15 — fix texte blanc dans .page-header (description marque etc.)
   theme.css force color:#fff sur .page-header, on l override partout */
.page-header,
.page-header .container,
.page-header .container *,
.page-header > div,
.page-header > div * {
  color: #3a3a3a;
}
.page-header a, .page-header a:hover { color: #c69b72; }

/* Masque le H1 si vide (cas prices-drop apres patch layout) */
.page-header .container h1:empty {
  display: none !important;
}
/* Masque tout le bandeau si aucun h1 ou h1 vide (navigateurs avec :has()) */
.page-header:has(h1:empty),
.page-header:not(:has(h1)) {
  display: none !important;
}


/* ===== CPCM Countdown Promo (23/04/2026 — v4 home) ===== */
/* cpcm-countdown.css — compte a rebours promo (carte + mini)
 * Charte doree cpcm : #c69b72 / #a87a52 / #f6ecdf / #e7d4bd
 * Cree 2026-04-23
 */

.cd2{
  --cd-gold:#c69b72;
  --cd-gold-deep:#a87a52;
  --cd-gold-tint:#f6ecdf;
  --cd-gold-line:#e7d4bd;
  --cd-orange:#e8773b;
  --cd-ink:#1d1a17;
  --cd-ink-soft:#4a4742;
  --cd-muted:#8a857d;
  --cd-line:#e9e4dd;
  background:#fff;
  border:1px solid var(--cd-line);
  border-radius:16px;
  padding:28px 32px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:28px;
  align-items:center;
  color:var(--cd-ink);
  -webkit-font-smoothing:antialiased;
  margin:18px 0 22px;
}
/* Variante sur fiche produit : un peu plus d'air au-dessus+en-dessous */
.product-prices .cd2{ margin:20px 0 24px; }
.cd2 .cd-eyebrow{
  font-size:11px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--cd-gold-deep);
  font-weight:700;
}
.cd2 h2{
  margin:6px 0 4px;
  font-family:Georgia,'Times New Roman',serif;
  font-weight:600;
  font-size:24px;
  color:var(--cd-ink);
  letter-spacing:-.01em;
  line-height:1.2;
}
.cd2 .cd-sub{ font-size:13px; color:var(--cd-ink-soft); }
.cd2 .cd-progress{
  margin-top:14px;
  height:6px;
  border-radius:999px;
  background:var(--cd-gold-tint);
  overflow:hidden;
  max-width:360px;
}
.cd2 .cd-progress .cd-bar{
  height:100%;
  background:linear-gradient(90deg, var(--cd-gold) 0%, var(--cd-orange) 100%);
  width:0%;
  border-radius:999px;
  transition:width .8s ease;
}
.cd2 .cd-progress-meta{
  margin-top:6px;
  font-size:11px;
  color:var(--cd-muted);
  display:flex;
  justify-content:space-between;
  max-width:360px;
}
.cd2 .cd-grid{
  display:grid;
  grid-template-columns:repeat(4, 72px);
  gap:8px;
}
.cd2 .cd-cell{
  background:var(--cd-gold-tint);
  border-radius:10px;
  padding:12px 8px 10px;
  text-align:center;
}
.cd2 .cd-cell .cd-num{
  font-family:Georgia,'Times New Roman',serif;
  font-weight:600;
  font-size:30px;
  line-height:1;
  color:var(--cd-ink);
  font-variant-numeric:tabular-nums;
}
.cd2 .cd-cell .cd-lbl{
  margin-top:6px;
  font-size:9px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--cd-gold-deep);
  font-weight:700;
}
.cd2 .cd-ended-msg{
  display:none;
  margin-top:12px;
  padding:8px 14px;
  border-radius:999px;
  background:var(--cd-gold-tint);
  color:var(--cd-gold-deep);
  font-weight:700;
  font-size:13px;
  border:1px solid var(--cd-gold-line);
  align-items:center;
  gap:10px;
  width:max-content;
}
.cd2.cd-ended .cd-grid,
.cd2.cd-ended .cd-progress,
.cd2.cd-ended .cd-progress-meta{ display:none; }
.cd2.cd-ended .cd-ended-msg{ display:inline-flex; }

@media (max-width:720px){
  .cd2{
    grid-template-columns:1fr;
    padding:20px 18px;
  }
  .cd2 .cd-grid{ grid-template-columns:repeat(4, 1fr); }
  .cd2 h2{ font-size:20px; }
}

/* ==========================================================
 * Variante MINI — listing miniatures categorie & /promotions
 * Reset du grid + styles compacts a droite du prix/"En stock"
 * ========================================================== */
.cd2.cd-mini{
  display:inline-flex;
  flex-direction:column;
  gap:4px;
  align-items:flex-end;
  padding:0;
  margin:0;
  background:transparent;
  border:0;
  border-radius:0;
  grid-template-columns:none;
}
.cd2.cd-mini .cd-mini-row{
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.cd2.cd-mini .cd-mini-icon{
  color:var(--cd-gold-deep);
  font-size:13px;
  line-height:1;
  margin-right:2px;
}
.cd2.cd-mini .cd-grid{
  display:inline-flex;
  gap:3px;
  grid-template-columns:none;
}
.cd2.cd-mini .cd-cell{
  padding:4px 2px 3px;
  min-width:28px;
  border-radius:5px;
}
.cd2.cd-mini .cd-cell .cd-num{
  font-size:14px;
  font-weight:600;
}
.cd2.cd-mini .cd-cell .cd-lbl{
  margin-top:1px;
  font-size:7px;
  letter-spacing:.08em;
}
.cd2.cd-mini .cd-progress{
  margin-top:2px;
  height:3px;
  width:140px;
  max-width:100%;
  background:var(--cd-gold-tint);
}
.cd2.cd-mini .cd-progress-meta,
.cd2.cd-mini .cd-eyebrow,
.cd2.cd-mini h2,
.cd2.cd-mini .cd-sub,
.cd2.cd-mini .cd-ended-msg{ display:none; }
.cd2.cd-mini.cd-ended{
  font-size:11px;
  color:var(--cd-gold-deep);
  font-weight:700;
}
.cd2.cd-mini.cd-ended::after{
  content:'● Promo terminée';
}

/* Placement dans la miniature : sur la meme ligne que prix + En stock */
.product-price-and-shipping .cd2.cd-mini{
  margin-left:auto;
  padding-left:8px;
}

@media (max-width:575px){
  .product-price-and-shipping{ flex-wrap:wrap; }
  .cd2.cd-mini{
    width:100%;
    align-items:flex-start;
    margin-top:8px;
    margin-left:0;
  }
  .cd2.cd-mini .cd-progress{ width:100%; }
}

/* ==========================================================
 * Allegement page d'accueil : bloc menu mobile cpcm_categories
 * desktop >= 768px => le navigateur SKIP le layout+paint du bloc
 * (les images ne se chargent pas non plus grace a loading=lazy)
 * Mobile : bloc actif et rendu normalement
 * ========================================================== */
@media (min-width: 768px){
  .cpcm-categories-section{
    content-visibility: hidden;
    contain-intrinsic-size: 0 0;
  }
}

/* ==========================================================
 * Bloc "Offres du moment" (cpcm_promoflag sur home)
 * Reutilise le style natif .featured-products, petits ajouts
 * ========================================================== */
.cpcm-home-promos .products-section-title{
  text-align:center;
}
.cpcm-home-promos .all-product-link{
  color:#c69b72;
}

/* Bloc Offres du moment : aligner sur le rendu Produits populaires (hover, bouton, prix centre) */
.cpcm-home-promos .product-miniature{
  margin-bottom:1.5rem;
}
.cpcm-home-promos .product-block{
  border:1px solid #eee;
  border-radius:8px;
  background:#fff;
  transition:box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
/* thumbnail-container reste en overflow:visible pour laisser la pastille -5% deborder
   du coin comme le badge -50€ des miniatures Somfy */
.cpcm-home-promos .thumbnail-container{
  overflow:visible !important;
}
.cpcm-home-promos .product-block:hover{
  box-shadow:0 8px 24px rgba(0,0,0,.10);
  border-color:#d8c9b4;
  transform:translateY(-2px);
}
.cpcm-home-promos .product-img{
  display:block;
}
.cpcm-home-promos .product-title a,
.featured-products .product-title a,
section[data-type="popularproducts"] .product-title a{
  color:#1d1a17;
  text-decoration:none;
  font-size:16px;
  line-height:1.3;
}
/* Force 3 lignes mini sur le titre + meme font-size sur le h3 lui-meme pour que
   l'unite "em" du min-height soit identique entre Offres du moment et Produits populaires.
   Align flex-start (haut) pour que le titre commence toujours au meme niveau quel que soit
   le nombre de lignes (1, 2 ou 3) → prix/bouton parfaitement alignes entre les cards. */
.cpcm-home-promos .product-title,
.featured-products .product-title,
section[data-type="popularproducts"] .product-title{
  font-size:16px !important;
  line-height:1.3 !important;
  min-height:3.9em;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  margin-top:0.5rem !important;
  margin-bottom:0.5rem !important;
}
/* Tronque la description courte des "Produits populaires" home a 2 lignes.
   On cible UNIQUEMENT .product-desc-full (desktop), pas .product-desc-truncated (mobile)
   sinon les 2 s'affichent simultanement = texte duplique. */
.featured-products .product-miniature .product-desc-full,
section[data-type="popularproducts"] .product-miniature .product-desc-full{
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  min-height:2.9em !important;
  max-height:2.9em !important;
  font-size:0.82rem !important;
  line-height:1.45 !important;
}
.cpcm-home-promos .product-title a:hover,
.featured-products .product-title a:hover,
section[data-type="popularproducts"] .product-title a:hover{
  color:#c69b72;
}
.cpcm-home-promos .cpcm-home-price-row{
  text-align:center;
  justify-content:center !important;
}
.cpcm-home-promos .cpcm-home-price-row .price{
  color:#c69b72;
  font-weight:700;
  font-size:18px;
}
.cpcm-home-promos .cpcm-home-price-row .regular-price{
  color:#999;
  text-decoration:line-through;
  font-size:13px;
  margin-bottom:2px;
}
.cpcm-home-promos .cpcm-home-price-row .cpcm-ttc{
  color:#888;
  font-size:11px;
  margin-left:4px;
  vertical-align:middle;
}
/* Bouton "Offres du moment" : taille IDENTIQUE aux "Produits populaires" du haut.
   Padding explicite + width 100% via width (pas flex-basis car parent est flex-column). */
.cpcm-home-promos .cpcm-home-promo-item .cpcm-mid-btn{
  display:inline-flex !important;
  flex-basis:auto !important;
  flex-grow:0 !important;
  width:100% !important;
  padding:9px 14px !important;
  margin-top:8px !important;
  text-align:center !important;
  justify-content:center !important;
}
.cpcm-home-promos .cpcm-btn-short{ display:none; }
@media (max-width:575px){
  .cpcm-home-promos .cpcm-btn-long{ display:none; }
  .cpcm-home-promos .cpcm-btn-short{ display:inline; }
}
/* Le countdown mini centre dans la card (pour SP datee Somfy) */
.cpcm-home-promos .info-container .cd2.cd-mini{
  margin-left:auto;
  margin-right:auto;
  align-items:center !important;
}
.cpcm-home-promos .info-container .cd2.cd-mini .cd-progress{
  margin-left:auto;
  margin-right:auto;
}

/* ==========================================================
 * Variante CAMPAGNE (cart_rule auto-applique) — 2026-04-29
 * Distincte visuellement de la SP datee : fond gold-tint discret
 * Mise en avant du code promo
 * ========================================================== */
.cd2.cd-campaign{
  background:linear-gradient(135deg, var(--cd-gold-tint) 0%, #fff 60%);
  border-color:var(--cd-gold-line);
  padding:14px 20px;
  gap:18px;
  margin:12px 0 14px;
  align-items:center;
}
.cd2.cd-campaign h2{
  font-size:17px;
  margin:0 0 2px;
  font-family:Georgia,'Times New Roman',serif;
  font-weight:600;
  line-height:1.25;
}
.cd2.cd-campaign h2 .cd-camp-label{
  color:var(--cd-gold-deep);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-size:.95em;
  margin-right:6px;
}
.cd2.cd-campaign .cd-sub{
  font-size:12px;
  margin-top:2px;
}
.cd2.cd-campaign .cd-code{
  font-family:Georgia,'Times New Roman',serif;
  font-weight:700;
  color:var(--cd-orange);
  letter-spacing:.04em;
  font-size:1em;
  padding:0 2px;
  white-space:nowrap;
  text-decoration:none;
  border-bottom:none;
}
/* Cacher l'eyebrow : on integre tout dans le h2 maintenant */
.cd2.cd-campaign .cd-eyebrow{ display:none; }
/* Cacher la barre de progression et meta sur la carte campagne (espace recupere) */
.cd2.cd-campaign .cd-progress,
.cd2.cd-campaign .cd-progress-meta{ display:none; }
.cd2.cd-campaign .cd-grid{
  grid-template-columns:repeat(4, 52px);
  gap:5px;
}
.cd2.cd-campaign .cd-cell{
  padding:7px 5px 6px;
}
.cd2.cd-campaign .cd-cell .cd-num{
  font-size:20px;
}
.cd2.cd-campaign .cd-cell .cd-lbl{
  font-size:8px;
  margin-top:3px;
}
.cd2.cd-mini.cd-campaign .cd-cell{
  background:var(--cd-gold-tint);
}

/* "A partir de" DM Concept laisse intact (genere par module + JS clone) */

/* Badge campagne sur miniature : pilule rouge, ancree top-right, bien dans l'angle */
.product-miniature .cpcm-campaign-badge,
.cpcm-campaign-badge{
  position:absolute !important;
  top:-10px !important;
  right:-20px !important;
  bottom:auto !important;
  left:auto !important;
  margin:0 !important;
  z-index:11;
  width:auto;
  min-width:50px;
  height:38px;
  padding:0 14px;
  border-radius:50rem;
  background:linear-gradient(135deg,#dc3545 0%,#b02a37 100%) !important;
  color:#fff !important;
  font-weight:700;
  font-size:15px;
  letter-spacing:.02em;
  box-shadow:0 3px 8px rgba(176,42,55,.45);
  text-align:center;
  line-height:38px;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
}
@media (max-width:575px){
  .cpcm-campaign-badge{
    height:32px !important;
    line-height:32px;
    font-size:13px;
    padding:0 11px;
    min-width:44px;
  }
}

/* Flag NOUVEAU : pilule compacte bien collee top-left (force absolute pour eviter decalage) */
.product-miniature .new,
.products .new{
  position:absolute !important;
  top:0px !important;
  left:0px !important;
  right:auto !important;
  bottom:auto !important;
  margin:0 !important;
  height:30px !important;
  line-height:30px !important;
  padding:0 12px !important;
  border-radius:50rem !important;
  font-size:11px !important;
  letter-spacing:.05em;
  font-weight:700;
  background-color:rgba(40,40,40,.92) !important;
  z-index:10;
  display:inline-flex !important;
  align-items:center;
}
@media (max-width:575px){
  .product-miniature .new,
  .products .new{
    height:26px !important;
    line-height:26px !important;
    padding:0 10px !important;
    font-size:10px !important;
  }
}

/* Mini-countdown overlay VERTICAL compact : juste sous la pastille -5% en haut-droite */
.cd2.cd-mini.cd-overlay{
  position:absolute !important;
  top:42px !important;       /* sous la pastille -5% (top:6 + height:30 + 6) */
  right:6px !important;
  bottom:auto !important;
  left:auto !important;
  z-index:10;
  display:flex !important;
  flex-direction:column;
  align-items:center;
  gap:2px;
  background:rgba(255,255,255,.94);
  padding:4px 4px 3px;
  border-radius:7px;
  box-shadow:0 2px 5px rgba(0,0,0,.13);
  width:auto;
  margin:0 !important;
}
.cd2.cd-mini.cd-overlay .cd-mini-row{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
}
.cd2.cd-mini.cd-overlay .cd-mini-icon{
  font-size:11px;
  color:var(--cd-gold-deep);
  margin:0;
  line-height:1;
}
.cd2.cd-mini.cd-overlay .cd-grid{
  display:flex !important;
  flex-direction:column;
  gap:2px;
  grid-template-columns:none;
}
.cd2.cd-mini.cd-overlay .cd-cell{
  background:var(--cd-gold-tint);
  min-width:26px !important;
  width:26px !important;
  padding:1px 3px 1px !important;
  border-radius:4px;
  text-align:center;
}
.cd2.cd-mini.cd-overlay .cd-cell .cd-num{
  font-size:11px;
  font-weight:700;
  line-height:1.05;
}
.cd2.cd-mini.cd-overlay .cd-cell .cd-lbl{
  font-size:6px;
  letter-spacing:.04em;
  margin-top:0;
  line-height:1;
}
/* Suppression de la barre de progression sur l'overlay */
.cd2.cd-mini.cd-overlay .cd-progress{ display:none !important; }
@media (max-width:575px){
  .cd2.cd-mini.cd-overlay{
    top:36px !important;
    padding:3px 3px 2px;
  }
  .cd2.cd-mini.cd-overlay .cd-cell{
    min-width:22px !important;
    width:22px !important;
  }
  .cd2.cd-mini.cd-overlay .cd-cell .cd-num{
    font-size:10px;
  }
  .cd2.cd-mini.cd-overlay .cd-cell .cd-lbl{
    font-size:5px;
  }
}

/* =========================================================
   CPCM 2026-04-29 — Alignement titres bloc category-products
   Bloc "Autres produits dans la meme categorie" (carousel Owl).
   Truncate visuel a 3 lignes (le nom complet reste dans le DOM
   pour SEO + tooltip natif via attribut title si present), avec
   min-height pour homogeneiser la position prix/countdown/bouton
   entre cards adjacentes.
   ========================================================= */
section[data-type="categoryproducts"] .product-title{
  font-size:16px !important;
  line-height:1.3 !important;
  min-height:3.9em;
  margin-top:0.5rem !important;
  margin-bottom:0.5rem !important;
  display:-webkit-box !important;
  -webkit-line-clamp:3 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  text-align:center;
}
section[data-type="categoryproducts"] .product-title a{
  color:#1d1a17;
  text-decoration:none;
  font-size:16px;
  line-height:1.3;
}
section[data-type="categoryproducts"] .product-title a:hover{
  color:#c69b72;
}


/* CPCM 2026-04-29 — Espacement entre cards bloc category-products
   Le carousel Owl pose les cards bord a bord. On ajoute du padding
   horizontal sur chaque .owl-item pour creer un gap visuel. */
section[data-type="categoryproducts"] .owl-stage{
  padding-top:4px;
}
section[data-type="categoryproducts"] .owl-item{
  padding:0 8px;
}
section[data-type="categoryproducts"] .cpcm-home-promo-item{
  border:1px solid rgba(0,0,0,0.06);
  border-radius:8px;
  background:#fff;
  transition:box-shadow .2s ease, transform .2s ease;
}
section[data-type="categoryproducts"] .cpcm-home-promo-item:hover{
  box-shadow:0 6px 18px rgba(0,0,0,0.08);
  transform:translateY(-2px);
}

/* ============================================================================
   CPCM 2026-04-30 — EXPRESS 5 JOURS (categorie stores 3870, 9 produits MATEST)
   Pastille "Livraison sous 5 jours" + cornet "Expedie en 24h"
   ============================================================================ */

/* Wrapper pastille fiche produit (positionnee en haut du configurateur) */
.cpcm-product-page-pill {
  margin: 0 0 16px 0;
}

/* --- Pastille verte "Livraison sous 5 jours" (miniature + fiche produit) --- */
.cpcm-availability--express5j,
.delivery-information.cpcm-delivery-pill--express5j {
  display: inline-flex !important;
  align-items: center !important;
  margin-top: 6px !important;
  padding: 4px 10px !important;
  background: #198754 !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
  border-radius: 3px !important;
  border: 1px solid rgba(255, 255, 255, 0.85) !important;
  width: auto !important;
  max-width: max-content !important;
  text-decoration: none !important;
  animation: cpcm-halo-pulse 2.6s ease-in-out infinite !important;
}

/* Masque l'icone "check" du parent .cpcm-availability--in quand express */
.product-miniature .cpcm-availability--express5j .material-icons {
  display: none;
}

/* Halo orange CPCM qui pulse autour de la pastille (discret) */
@keyframes cpcm-halo-pulse {
  0%   { box-shadow: 0 0 0 0   rgba(232, 119, 59, 0.45); }
  70%  { box-shadow: 0 0 0 5px rgba(232, 119, 59, 0);    }
  100% { box-shadow: 0 0 0 0   rgba(232, 119, 59, 0);    }
}

/* --- Cornet "Expedie en 24h" : effet coin de page retournee (Claudia v10)
   - degrade pour simuler la courbure du papier
   - fine ligne d'ombre sur l'hypotenuse = le pli
   - double drop-shadow asymetrique = decollement de l'image --- */
.product-miniature .cpcm-corner-24h {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 88px;
  height: 88px;
  z-index: 5;
  overflow: visible;
  pointer-events: none;
  background: linear-gradient(135deg,
    transparent 48%,
    rgba(0, 0, 0, 0.4) 49.5%,
    #0a4a2a 50%,
    #15703f 56%,
    #198754 75%,
    #1ea25f 100%);
  filter:
    drop-shadow(2px 3px 5px rgba(0, 0, 0, 0.4))
    drop-shadow(-1px -1px 2px rgba(0, 0, 0, 0.18));
}

/* Texte "Expedie en 24h" rotate (V10d - ne plus toucher) */
.product-miniature .cpcm-corner-24h__text {
  position: absolute;
  bottom: 13px;
  right: -39px;
  width: 130px;
  text-align: center;
  color: #ffffff;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  transform: rotate(-45deg);
  transform-origin: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
  z-index: 2;
}

@media (max-width: 767.98px) {
  .product-miniature .cpcm-corner-24h {
    width: 86px;
    height: 86px;
  }
  /* Triangle 86x86 -> barycentre (57, 57). Box 110x~22 centree. */
  .product-miniature .cpcm-corner-24h__text {
    width: 110px;
    font-size: 11px;
    bottom: 18px;
    right: -27px;
  }
}

/* ============================================================================
   CPCM 2026-05-05 — Cornets "Sur mesure" (orange) / "Standard" (bleu)
   Memes proportions et typo que .cpcm-corner-24h (degrade diagonal pli papier).
   Cible : produits avec configurateur DM Concept hors stores Matest.
   ============================================================================ */

/* --- Cornet "Sur mesure" : orange CPCM (#E87B2A) --- */
.product-miniature .cpcm-corner-sm {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 88px;
  height: 88px;
  z-index: 5;
  overflow: visible;
  pointer-events: none;
  background: linear-gradient(135deg,
    transparent 48%,
    rgba(0, 0, 0, 0.4) 49.5%,
    #5c2806 50%,
    #94491a 56%,
    #c0651e 75%,
    #e87b2a 100%);
  filter:
    drop-shadow(2px 3px 5px rgba(0, 0, 0, 0.4))
    drop-shadow(-1px -1px 2px rgba(0, 0, 0, 0.18));
}

.product-miniature .cpcm-corner-sm__text {
  position: absolute;
  bottom: 14px;
  right: -37px;
  width: 130px;
  text-align: center;
  color: #ffffff;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  transform: rotate(-45deg);
  transform-origin: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
  z-index: 2;
}

/* --- Cornet "Standard" : bleu sobre --- */
.product-miniature .cpcm-corner-std {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 88px;
  height: 88px;
  z-index: 5;
  overflow: visible;
  pointer-events: none;
  background: linear-gradient(135deg,
    transparent 48%,
    rgba(0, 0, 0, 0.4) 49.5%,
    #062f4e 50%,
    #0d4571 56%,
    #1e6091 75%,
    #2a7bb8 100%);
  filter:
    drop-shadow(2px 3px 5px rgba(0, 0, 0, 0.4))
    drop-shadow(-1px -1px 2px rgba(0, 0, 0, 0.18));
}

.product-miniature .cpcm-corner-std__text {
  position: absolute;
  bottom: 23px;
  right: -36px;
  width: 130px;
  text-align: center;
  color: #ffffff;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  transform: rotate(-45deg);
  transform-origin: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
  z-index: 2;
}

@media (max-width: 767.98px) {
  .product-miniature .cpcm-corner-sm,
  .product-miniature .cpcm-corner-std {
    width: 86px;
    height: 86px;
  }
  .product-miniature .cpcm-corner-sm__text {
    width: 110px;
    font-size: 11px;
    bottom: 18px;
    right: -27px;
  }
  .product-miniature .cpcm-corner-std__text {
    width: 110px;
    font-size: 11px;
    bottom: 18px;
    right: -31px;
  }
}

/* ============================================================
   CPCM v2.0 — Bandeau code promo campagne (panier)
   Affiche le code PORTAILFER05 au-dessus du champ Have a promo code,
   meme si l'auto-apply a ete retire (necessaire pour validation GMC)
   ============================================================ */
.cpcm-promo-banner {
  background: linear-gradient(135deg, #fff8ed 0%, #fff2dc 100%);
  border: 1px solid #d8a85a;
  border-radius: 6px;
  padding: 12px 14px;
  text-align: center;
  font-family: 'Calibri', 'Segoe UI', Arial, sans-serif;
  color: #5b4220;
  line-height: 1.45;
}
.cpcm-promo-banner-label {
  font-size: 14px;
  font-weight: 600;
}
.cpcm-promo-banner-label strong {
  color: #c0392b;
}
.cpcm-promo-banner-code {
  font-size: 16px;
  margin-top: 4px;
  letter-spacing: 0.3px;
}
.cpcm-promo-banner-code strong {
  font-family: 'Georgia', serif;
  color: #d8732e;
  font-style: italic;
  font-weight: 700;
  letter-spacing: 1px;
}
.cpcm-promo-banner-end {
  font-size: 12px;
  color: #7e6238;
  margin-top: 4px;
  font-style: italic;
}

/* ============================================================
   CPCM 2026-05-02 — Code promo cliquable (bloc "Cliquez sur le code")
   Style inspire du bouton "Plus d'infos" du configurateur DM Concept
   + animation pulse douce + fleche discrete
   ============================================================ */
.cart-summary .promo-discounts .code.pointer {
  display: inline-block;
  background: #f5e9d3;
  border: 1px solid #b08855;
  color: #5b4220;
  padding: 4px 12px;
  border-radius: 4px;
  font-family: 'Calibri', Arial, sans-serif;
  font-weight: 600;
  letter-spacing: 0.6px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  animation: cpcm-promo-pulse 2.4s ease-in-out infinite;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  margin-right: 6px;
}
.cart-summary .promo-discounts .code.pointer:hover {
  background: #e8d6b3;
  transform: translateY(-1px);
  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.15);
  animation: none;
}
@keyframes cpcm-promo-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(176, 136, 85, 0.5),
                0 1px 2px rgba(0, 0, 0, 0.1);
  }
  50% {
    box-shadow: 0 0 0 6px rgba(176, 136, 85, 0),
                0 1px 2px rgba(0, 0, 0, 0.1);
  }
}


/* ─────────────────────────────────────────────────────────────────── */


/* ─────────────────────────────────────────────────────────────────── */


/* ─────────────────────────────────────────────────────────────────── */
/* CPCM 06/05/2026 v3 — Fix CLS configurateur DM Concept               */
/* ─────────────────────────────────────────────────────────────────── */
/* v2 (avec buttons) → v3 : retiré la règle #configurator_preview_buttons */
/* car le bloc reste vide la plupart du temps (Add to cart n'apparaît  */
/* qu'à la fin du config) → réservait du vide inutile.                 */
/* Sélecteurs SPÉCIFIQUES au configurateur DM Concept : ZÉRO impact    */
/* sur fiches produit simples.                                         */
/* ─────────────────────────────────────────────────────────────────── */

/* 1. Aperçu principal (était 0.1944) */
#configurator_preview_container {
    min-height: 700px;
}
@media (max-width: 1199px) {
    #configurator_preview_container {
        min-height: 560px;
    }
}
@media (max-width: 768px) {
    #configurator_preview_container {
        min-height: 480px; /* MAJ 2026-05-07 phase 2 : ancienne valeur 360px insuffisante (hauteur réelle mobile mesurée = 473px) */
    }
}

/* 2. Liste des étapes (scopée sous #configurator_block) */
#configurator_block .step_list {
    min-height: 800px;
}
@media (max-width: 991px) {
    #configurator_block .step_list {
        min-height: 500px;
    }
}
@media (max-width: 768px) {
    #configurator_block .step_list {
        min-height: 350px;
    }
}

/* ── FIN Fix CLS configurateur DM Concept ── */

/* ============================================================
 * CPCM 2026-05-07 — Hierarchie H1/H2 home
 * Les <h2 class="products-section-title h1"> de 5 modules
 * (cpcm_promoflag, ps_featuredproducts, ps_bestsellers,
 * ps_newproducts, ps_specials) etaient styles 44px = identique au H1.
 * Override : retour a 30px desktop pour restaurer la hierarchie visuelle.
 * ============================================================ */
.products-section-title.h1 {
  font-size: 1.875rem !important;
}
@media (max-width: 991px) {
  .products-section-title.h1 {
    font-size: 1.65rem !important;
  }
}
@media (max-width: 767px) {
  .products-section-title.h1 {
    font-size: 1.5rem !important;
  }
}

/* ============================================================
 * CPCM 2026-05-07 — Patch CLS (Core Web Vitals)
 * Reservations d'espace pour eviter les decalages visuels au chargement.
 *
 * 1. #product-details (Caracteristiques techniques) : 0.38 -> ~0
 *    La liste des features est injectee/expand par JS apres init,
 *    pousse tout le contenu sous = layout shift majeur.
 *
 * 2. .products-carousel .owl-carousel : 0.11 -> ~0
 *    Owl Carousel JS init apres render -> bloc passe de 0px a ~400px.
 *    Couvre top featured, cross-sell, autres produits.
 * ============================================================ */
#product-details {
  min-height: 350px;
}
@media (max-width: 768px) {
  #product-details {
    min-height: 250px;
  }
}

.products-carousel .owl-carousel {
  min-height: 380px;
}
@media (max-width: 768px) {
  .products-carousel .owl-carousel {
    min-height: 280px;
  }
}

/* ============================================================
 * CPCM 2026-05-07 — Patch CLS phase 2 (calibré mesures réelles Chrome)
 * Hauteurs mesurées sur fiche configurateur garage sectionnelle :
 *   Desktop (1140px) : carousel cat 482 / preview 700 / images 272
 *   Mobile  (304px)  : carousel cat 422 / preview 473 / images 78
 * ============================================================ */

/* Wrapper carousel miniatures de la galerie (Owl init shift) */
.product-images.position-relative.p-3 {
  min-height: 280px;
}
@media (max-width: 991px) {
  .product-images.position-relative.p-3 {
    min-height: 90px;
  }
}

/* Section bloc "Autres produits dans la même catégorie" (cascade bas) */
.category-products.products-carousel.cpcm-home-promos {
  min-height: 490px;
}
@media (max-width: 991px) {
  .category-products.products-carousel.cpcm-home-promos {
    min-height: 430px;
  }
}

/* ============================================
   CLS FIX 10/05/2026 — anti layout-shift desktop
   ============================================ */

/* Patch 2 : intro configurateur — pré-rendu côté Smarty.
   Description-short visible par défaut (produits sans configurator),
   masquée si body.has-configurator. À l'inverse pour le summary. */
.configurator-intro-summary.configurator-only { display: none; }
body.has-configurator .configurator-intro-summary.configurator-only { display: block; }
body.has-configurator .product-description-short.no-configurator-only { display: none; }

/* Patch 2bis (11/05/2026) : DM Concept inject AUSSI un bloc
   <div id="product-description-short-{id}"> directement dans #configurator_block
   en haut du configurateur. Comme on a déjà rendu la même chose dans
   .configurator-intro-summary en haut de page, on cache ce doublon. */
#configurator_block > [id^="product-description-short-"] { display: none; }

/* Patch 3 : largeur fixe vignettes carrousel image produit (desktop),
   pour éviter le shift de 61→128 px à l'init du JS owl-carousel. */
@media (min-width: 992px){
  .product-images .thumb-container,
  .product-images .js-thumb-container {
    min-width: 128px !important;
  }
}

/* Patch 4 : réserve la hauteur des promo-items home pour éviter le shift
   "0,0 0x0 → 360x327" au moment où le layout grid s'applique. */
.cpcm-home-promo-item { min-height: 422px; }
@media (max-width: 991px){
  .cpcm-home-promo-item { min-height: 380px; }
}
@media (max-width: 575px){
  .cpcm-home-promo-item { min-height: 360px; }
}

/* Patch 5 : aspect-ratio 16:9 sur les miniatures produit (toutes les images
   chargées sur le site sont en 1920×1080 = 16:9, mais le tpl PS déclare
   width/height = MAX du image type 400×600 → ratio faux = shift au scroll).
   Cible : home + listings + catégories + prices-drop + best-sales. */
.product-img.lazy,
.product-img-alt.lazy {
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
