/* SECURIFORCE PRO SHOP — CUSTOM CSS
 * Base verifiee le 13/10/2026 — PrestaShop 9.2 / Hummingbird.
 * Fichier complet : remplace le custom.css actif, sans ajout en fin de fichier.
 * Français / néerlandais — ordinateur, tablette et GSM.
 * Boutons de collection anthracite / jaune ; banniere de devis sans deformation.
 * Les règles liées aux classes ajoutées par les modules/scripts sont conservées.
 * Les media queries et la couche ps-modules gardent leur portée d’origine.
 */

/* 01. Identite et variables */
:root {
  --sf-red: #e30613;
  --sf-red-rgb: 227, 6, 19;
  --sf-red-dark: #b9040f;
  --sf-red-dark-rgb: 185, 4, 15;
  --sf-yellow: #ffdf00;
  --sf-dark: #202427;
  --sf-light: #f5f6f8;
  --sf-text: #222222;
  --sf-consent: #263238;
  --sf-disabled: #68727c;

  --bs-primary: var(--sf-red);
  --bs-primary-rgb: var(--sf-red-rgb);
  --bs-primary-text-emphasis: var(--sf-red-dark);
  --bs-link-color: #202427;
  --bs-link-color-rgb: 32, 36, 39;
  --bs-link-hover-color: #202427;
  --bs-link-hover-color-rgb: 32, 36, 39;
}

/* Compatibilite avec les variables definies au niveau body par le theme. */
body {
  --bs-primary: var(--sf-red);
  --bs-primary-rgb: var(--sf-red-rgb);
  --bs-primary-text-emphasis: var(--sf-red-dark);
  --bs-link-color: #202427;
  --bs-link-color-rgb: 32, 36, 39;
  --bs-link-hover-color: #202427;
  --bs-link-hover-color-rgb: 32, 36, 39;

  border-top: 2px solid var(--sf-red) !important;
}

/* 02. Entete - ordinateur et tablette */
@media (min-width: 768px) {
  #header .header-bottom__row {
    display: grid !important;
    grid-template-columns: max-content minmax(0, 480px) minmax(max-content, 1fr);
    align-items: center;
    column-gap: 16px;
  }

  #header .header-bottom__logo {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: auto;
    min-width: 0;
    margin: 0 !important;
  }

  #header .header-bottom__logo img.logo {
    width: clamp(160px, 18vw, 260px);
    max-width: 260px;
    max-height: none;
    height: auto;
  }

  #header #_desktop_ps_searchbar {
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: center;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 480px !important;
    margin: 0 !important;
    position: static !important;
    transform: none !important;
  }

  #header #_desktop_ps_searchbar #ps_searchbar,
  #header #_desktop_ps_searchbar .ps-searchbar__form {
    position: relative !important;
    inset: auto !important;
    transform: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
  }

  #header #_desktop_ps_searchbar .ps-searchbar__input {
    box-sizing: border-box;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 37px !important;
    font-size: 16px;
    background-color: #f5f6f8;
    border-color: #e0e3e7;
  }

  #header .sf-header-actions {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end;
    align-self: center;
    display: flex;
    align-items: center;
    column-gap: 12px;
    width: max-content !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
  }

  #header .sf-header-actions .header-block__action-btn {
    white-space: nowrap;
  }
}

/* 03. Navigation principale et sous-menus */
@media (min-width: 992px) {
  .ps-mainmenu {
    flex: 1 1 auto;
    min-width: 0;
  }
  .ps-mainmenu__tree {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 18px;
    padding-left: 0;
  }
  .ps-mainmenu__tree-item {
    flex: 0 0 auto;
  }
  .ps-mainmenu__tree-link {
    white-space: nowrap;
    padding-inline: 4px;
  }
}

.ps-mainmenu__tree-link {
  font-weight: 700;
}
.ps-mainmenu--desktop .submenu__left-item,
.ps-mainmenu--desktop .submenu .menu-item {
  color: var(--sf-text) !important;
}

/* Seuls les liens actifs/survoles deviennent rouges. */
#header .ps-mainmenu__tree-link:hover,
#header .ps-mainmenu__tree-link:focus,
#header .ps-mainmenu__tree-link[aria-expanded="true"],
#header .ps-mainmenu--desktop .submenu a:hover,
#header .ps-mainmenu--desktop .submenu a:focus,
#header .ps-mainmenu--desktop .submenu__left-item:hover,
#header .ps-mainmenu--desktop .submenu__left-item:focus,
#header .ps-mainmenu--desktop .submenu__left-item:hover a,
#header .ps-mainmenu--desktop .submenu .menu-item:hover,
#header .ps-mainmenu--desktop .submenu .menu-item:focus {
  color: var(--sf-red) !important;
}

#header .ps-mainmenu--desktop .submenu__left-item:not(:hover):not(:focus-within),
#header .ps-mainmenu--desktop .submenu__left-item:not(:hover):not(:focus-within) a {
  color: var(--sf-text) !important;
}

#header select:focus {
  border-color: var(--sf-red) !important;
  box-shadow: 0 0 0 0.2rem rgba(var(--sf-red-rgb), 0.2) !important;
}

/* 04. Carrousel — réglages communs et variantes selon la taille */
#carousel,
#carousel .carousel-inner,
#carousel .carousel-item,
#carousel .carousel-item figure {
  height: auto !important;
  max-height: none !important;
}
#carousel .carousel-item img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center center !important;
}

/* 05. Boutons Bootstrap et navigation au clavier */
/* Boutons principaux : rouge, texte blanc. */
.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--sf-red);
  --bs-btn-border-color: var(--sf-red);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--sf-red-dark);
  --bs-btn-hover-border-color: var(--sf-red-dark);
  --bs-btn-focus-shadow-rgb: 227, 6, 19;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--sf-red-dark);
  --bs-btn-active-border-color: var(--sf-red-dark);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--sf-red);
  --bs-btn-disabled-border-color: var(--sf-red);
}

/* Voir détails, Voir tous les produits populaires, Tous les nouveaux produits. */
.btn-outline-primary {
  --bs-btn-color: var(--sf-red);
  --bs-btn-border-color: var(--sf-red);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--sf-red-dark);
  --bs-btn-hover-border-color: var(--sf-red-dark);
  --bs-btn-focus-shadow-rgb: 227, 6, 19;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--sf-red-dark);
  --bs-btn-active-border-color: var(--sf-red-dark);
  --bs-btn-disabled-color: var(--sf-red);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--sf-red);
}

/* Boutons présentés comme des liens. */
.btn-link {
  --bs-btn-color: var(--sf-red);
  --bs-btn-hover-color: var(--sf-red-dark);
  --bs-btn-active-color: var(--sf-red-dark);
  --bs-btn-focus-shadow-rgb: 227, 6, 19;
}

/* Le thème fixe une couleur bleue pour ces liens au survol. */
.link-primary:hover,
.link-primary:focus {
  color: rgba(var(--sf-red-dark-rgb), var(--bs-link-opacity, 1)) !important;
  text-decoration-color: rgba(
    var(--sf-red-dark-rgb),
    var(--bs-link-underline-opacity, 1)
  ) !important;
}

.pagination {
  --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(var(--sf-red-rgb), 0.25);
}

/* Repère clavier : contour sombre et accent jaune. */
.btn-primary:focus-visible,
.btn-outline-primary:focus-visible,
.btn-link:focus-visible {
  outline: 2px solid var(--sf-text);
  outline-offset: 3px;
  box-shadow: 0 0 0 5px var(--sf-yellow);
}

/* 06. Ajout panier : boutons sans classe .btn-primary */
.product-miniature .add-to-cart,
#product .product__add-to-cart-button {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--sf-red);
  --bs-btn-border-color: var(--sf-red);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--sf-red-dark);
  --bs-btn-hover-border-color: var(--sf-red-dark);
  --bs-btn-focus-shadow-rgb: 227, 6, 19;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--sf-red-dark);
  --bs-btn-active-border-color: var(--sf-red-dark);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--sf-red);
  --bs-btn-disabled-border-color: var(--sf-red);
}

/* 07. Cartes produit et fiches produit */
/* Noms des produits : gris foncé, sans changement de couleur au survol. */
.product-miniature .product-miniature__title,
.product-miniature .product-miniature__title a,
.product-miniature .product-miniature__title:hover,
.product-miniature .product-miniature__title a:hover {
  color: #4b5055 !important;
}

.product-miniature .product-miniature__title:focus-visible,
.product-miniature .product-miniature__title a:focus-visible {
  text-decoration: underline !important;
  text-underline-offset: 3px;
}

@media (min-width: 768px) and (hover: hover) and (pointer: fine) {
  .product-miniature .product-miniature__title:hover,
  .product-miniature .product-miniature__title a:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
  }
}

/* =========================================
   FICHE PRODUIT
   ========================================= */

/* Titre Description */
#product .accordion-button,
#product .product-description-title {
  color: var(--sf-red) !important;
}

/* Miniature sélectionnée */
#product .product__thumbnail.active .product__thumbnail-image,
#product .product__thumbnail:focus .product__thumbnail-image {
  border-color: var(--sf-red) !important;
  outline-color: var(--sf-red) !important;
}

/* 08. Boutons de collection (produits populaires / nouveautes) */
#index .ps-featuredproducts .module-products__buttons > .btn,
#index .ps-newproducts .module-products__buttons > .btn {
  --bs-btn-color: #ffffff;
  --bs-btn-bg: var(--sf-dark);
  --bs-btn-border-color: var(--sf-dark);
  --bs-btn-hover-color: var(--sf-dark);
  --bs-btn-hover-bg: var(--sf-yellow);
  --bs-btn-hover-border-color: var(--sf-yellow);
  --bs-btn-active-color: var(--sf-dark);
  --bs-btn-active-bg: var(--sf-yellow);
  --bs-btn-active-border-color: var(--sf-yellow);
  --bs-btn-focus-shadow-rgb: 32, 36, 39;
  --bs-btn-disabled-color: #ffffff;
  --bs-btn-disabled-bg: var(--sf-dark);
  --bs-btn-disabled-border-color: var(--sf-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  max-width: 100%;
  min-width: 0;
  padding: 12px 24px;
  border: 1px solid var(--sf-dark) !important;
  border-radius: 6px;
  background-color: var(--sf-dark) !important;
  color: #ffffff !important;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  white-space: normal;
  text-align: center;
  text-decoration: none !important;
  box-shadow: none;
}

/* Pas de survol persistant sur les ecrans tactiles. */
@media (hover: hover) and (pointer: fine) {
  #index .ps-featuredproducts .module-products__buttons > .btn:hover,
  #index .ps-newproducts .module-products__buttons > .btn:hover {
    background-color: var(--sf-yellow) !important;
    border-color: var(--sf-yellow) !important;
    color: var(--sf-dark) !important;
  }
}

#index .ps-featuredproducts .module-products__buttons > .btn:active,
#index .ps-newproducts .module-products__buttons > .btn:active {
  background-color: var(--sf-yellow) !important;
  border-color: var(--sf-yellow) !important;
  color: var(--sf-dark) !important;
}

#index .ps-featuredproducts .module-products__buttons > .btn:focus-visible,
#index .ps-newproducts .module-products__buttons > .btn:focus-visible {
  outline: 2px solid var(--sf-text);
  outline-offset: 3px;
  box-shadow: 0 0 0 5px var(--sf-yellow);
}

@media (max-width: 575.98px) {
  #index .ps-featuredproducts .module-products__buttons > .btn,
  #index .ps-newproducts .module-products__buttons > .btn {
    width: 100%;
    padding-inline: 16px;
  }
}

/* 08 bis. Banniere de devis : proportions naturelles, PC / GSM, FR / NL.
 * Le modele ps_banner.tpl corrige le chemin de l'image mobile FR.
 */
#index .ps-banner .banner > picture {
  display: block;
  max-width: 1110px;
  margin-inline: auto;
}

#index .ps-banner .banner > picture > img {
  display: block;
  max-width: 100%;
  height: auto;
  margin-inline: auto;
}

@media (max-width: 767.98px) {
  #index .ps-banner .banner > picture > img {
    width: 100%;
    object-fit: contain;
  }
}

/* 09. Entete - GSM (logo + recherche sur deux lignes) */
@media (max-width: 767.98px) {
  #header .header-bottom__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    column-gap: 12px;
    row-gap: 12px;
    margin-left: 0;
    margin-right: 0;
  }

  #header .header-bottom__logo {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    width: auto;
    min-width: 0;
    padding-left: 0;
    padding-right: 0;
  }

  #header .header-bottom__logo img.logo {
    width: 180px;
    max-width: 100%;
    max-height: none;
    height: auto;
  }

  #header #_mobile_ps_customersignin {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    width: auto;
    padding-left: 0;
    padding-right: 0;
  }

  #header #_mobile_ps_shoppingcart {
    grid-column: 3;
    grid-row: 1;
    align-self: center;
    width: auto;
    padding-left: 0;
    padding-right: 0;
  }

  #header .sf-mobile-search {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    min-width: 0;
    padding-left: 0;
    padding-right: 0;
  }

  #header .sf-mobile-search #_mobile_ps_searchbar,
  #header .sf-mobile-search #ps_searchbar,
  #header .sf-mobile-search .ps-searchbar__form {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
  }

  #header .sf-mobile-search .ps-searchbar__input {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: 44px;
    font-size: 16px;
  }
}

/* 10. Alignements du menu, hauteur d'entete, badges masques */
/* Aligner Gardiennage sous le logo */
@media (min-width: 1200px) {
  #header .header-nav-full-width > .ps-mainmenu {
    box-sizing: border-box;
    width: 100%;
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 8px;
    padding-right: 8px;
  }
}

@media (min-width: 1400px) {
  #header .header-nav-full-width > .ps-mainmenu {
    max-width: 1320px;
  }
}
/* Masquer les badges Neuf */
.product-flags .new {
  display: none !important;
}
/* Agrandir la hauteur du bandeau blanc */
#header .header-bottom {
  padding-top: 16px !important;
  padding-bottom: 16px !important;
}

/* 11. Newsletter, reseaux sociaux, reassurance et pied de page */
/* 1. Fond unifié : plus de bande blanche entre les modules. */
#footer,
#footer .footer__before,
#footer .footer__main,
#footer .ps-socialfollow,
#footer .blockreassurance--dark {
  background-color: var(--sf-dark) !important;
}

/* 2. Newsletter : carte claire, textes fonces et lisibles.
   L'ID correspond au <section> inspecte dans Opera. */
#emailsubscription_anchor_displayFooterBefore,
#emailsubscription_anchor_displayFooterBefore.ps-emailsubscription.bg-body-tertiary {
  --bs-tertiary-bg: var(--sf-light);
  --bs-body-color: var(--sf-dark);
  background: var(--sf-light) !important;
  color: var(--sf-dark) !important;
  padding: 18px 0 !important;
  border-top: 1px solid #e8ebef !important;
  border-bottom: 1px solid #e8ebef !important;
}

#footer #emailsubscription_anchor_displayFooterBefore .row {
  align-items: center;
  row-gap: 16px;
}

/* Titre newsletter Hummingbird : <p class="h3 col-lg-4">. */
#emailsubscription_anchor_displayFooterBefore .h3,
#emailsubscription_anchor_displayFooterBefore h3 {
  color: var(--sf-dark) !important;
  font-size: clamp(20px, 1.55vw, 24px) !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: -0.015em;
}

/* Garder les colonnes souples sur ordinateur. */
#footer #emailsubscription_anchor_displayFooterBefore form {
  min-width: 0;
}

#footer #emailsubscription_anchor_displayFooterBefore form > .d-flex {
  gap: 10px !important;
  min-width: 0;
}

#footer #emailsubscription_anchor_displayFooterBefore input[type="email"],
#footer #emailsubscription_anchor_displayFooterBefore input[type="text"] {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  min-height: 48px;
  background-color: #ffffff !important;
  border: 1px solid #d8dee4 !important;
  border-radius: 6px !important;
  color: var(--sf-dark) !important;
  font-size: 16px;
  box-shadow: none !important;
}

#footer #emailsubscription_anchor_displayFooterBefore input[type="email"]:focus,
#footer #emailsubscription_anchor_displayFooterBefore input[type="text"]:focus {
  border-color: var(--sf-red) !important;
  box-shadow: 0 0 0 3px rgba(var(--sf-red-rgb), 0.18) !important;
  outline: 2px solid transparent;
}

/* Bouton actif : rouge officiel de la boutique, sans effet rose. */
#footer #emailsubscription_anchor_displayFooterBefore .btn,
#footer #emailsubscription_anchor_displayFooterBefore button[type="submit"],
#footer #emailsubscription_anchor_displayFooterBefore input[type="submit"] {
  --bs-btn-bg: var(--sf-red);
  --bs-btn-border-color: var(--sf-red);
  --bs-btn-hover-bg: var(--sf-red-dark);
  --bs-btn-hover-border-color: var(--sf-red-dark);
  --bs-btn-disabled-opacity: 1;
  flex: 0 0 auto;
  min-height: 48px;
  padding: 10px 20px;
  border: 1px solid var(--sf-red) !important;
  border-radius: 6px !important;
  background-color: var(--sf-red) !important;
  color: #ffffff !important;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
  opacity: 1 !important;
  white-space: nowrap;
  box-shadow: none !important;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease;
}

#footer #emailsubscription_anchor_displayFooterBefore .btn:hover:not(:disabled):not(.disabled),
#footer #emailsubscription_anchor_displayFooterBefore button[type="submit"]:hover:not(:disabled),
#footer #emailsubscription_anchor_displayFooterBefore input[type="submit"]:hover:not(:disabled) {
  background-color: var(--sf-red-dark) !important;
  border-color: var(--sf-red-dark) !important;
  color: #ffffff !important;
}

/* Bouton non utilisable : gris honnête plutôt qu'un rouge délavé. */
#footer #emailsubscription_anchor_displayFooterBefore .btn:disabled,
#footer #emailsubscription_anchor_displayFooterBefore .btn.disabled,
#footer #emailsubscription_anchor_displayFooterBefore button[type="submit"]:disabled,
#footer #emailsubscription_anchor_displayFooterBefore input[type="submit"]:disabled,
#footer #emailsubscription_anchor_displayFooterBefore [aria-disabled="true"] {
  background-color: #202427 !important;
  border-color: #202427 !important;
  color: #ffffff !important;
  opacity: 1 !important;
  cursor: not-allowed;
}

/* Consentement RGPD : contraste fort meme si le theme force text-white.
   Les descendants couvrent les <span> et les textes internes du module RGPD. */
#emailsubscription_anchor_displayFooterBefore form .fs-6,
#emailsubscription_anchor_displayFooterBefore form .fs-6 *,
#emailsubscription_anchor_displayFooterBefore form label,
#emailsubscription_anchor_displayFooterBefore form label *,
#emailsubscription_anchor_displayFooterBefore form .form-check-label,
#emailsubscription_anchor_displayFooterBefore form .psgdpr_consent_message,
#emailsubscription_anchor_displayFooterBefore form .psgdpr_consent_message * {
  color: var(--sf-consent) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
}

#emailsubscription_anchor_displayFooterBefore form a {
  color: var(--sf-dark) !important;
  text-decoration: underline !important;
  text-decoration-color: #6b7280 !important;
  text-underline-offset: 2px;
}

#emailsubscription_anchor_displayFooterBefore form a:hover {
  color: var(--sf-red-dark) !important;
}

#footer #emailsubscription_anchor_displayFooterBefore input[type="checkbox"] {
  flex-shrink: 0;
  width: 16px !important;
  height: 16px !important;
}

/* 3. Réseaux sociaux : fond sombre, pas de bande blanche. */
#footer .footer__before .ps-socialfollow,
#footer .ps-socialfollow {
  padding: 16px 0 !important;
  text-align: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

#footer .ps-socialfollow a,
#footer .ps-socialfollow a i,
#footer .ps-socialfollow a svg {
  color: #ffffff !important;
}

#footer .ps-socialfollow a:hover,
#footer .ps-socialfollow a:hover i,
#footer .ps-socialfollow a:hover svg {
  color: #ffdf00 !important;
}

/* 4. Réassurance : conserver le rouge des icônes et le blanc des titres. */
#footer .blockreassurance--dark {
  padding-top: 22px !important;
  padding-bottom: 22px !important;
}

#footer .blockreassurance--dark .reassurance__title {
  color: #ffffff !important;
  font-weight: 500;
  line-height: 1.45;
}

/* 5. Bas du footer : titres jaunes, liens clairs. */
#footer .footer__main-top .footer-block__title,
#footer .footer__main-top .footer-block__title a,
#footer .footer__main-top .footer-block__title a:visited,
#footer .footer__main-top .footer-block__title a:hover,
#footer .footer__main-top .footer-block__title a:focus {
  color: var(--sf-yellow) !important;
  font-weight: 600;
}

#footer .footer-block__content a {
  color: #e5e9ed;
}

#footer .footer__main a:hover,
#footer .footer__main a:focus {
  color: var(--sf-yellow) !important;
  text-decoration: none !important;
}

/* 6. Copyright : gris clair neutre, pas rouge. */
#footer .copyright,
#footer .copyright span,
#footer .copyright a {
  color: #cdd3d9 !important;
  text-align: center;
  font-size: 14px;
}

/* 7. TABLETTE : le titre ne doit pas écraser le formulaire. */
@media (min-width: 768px) and (max-width: 991.98px) {
  #footer #emailsubscription_anchor_displayFooterBefore {
    padding: 26px 0 !important;
  }
  #footer #emailsubscription_anchor_displayFooterBefore .h3 {
    font-size: 22px !important;
  }
}

/* 8. GSM : champs empilés, consentement lisible, footer compact. */
@media (max-width: 767.98px) {
  #emailsubscription_anchor_displayFooterBefore {
    padding: 16px 0 !important;
  }

  #footer #emailsubscription_anchor_displayFooterBefore .container {
    padding-left: 16px;
    padding-right: 16px;
  }

  #footer #emailsubscription_anchor_displayFooterBefore .h3,
  #footer #emailsubscription_anchor_displayFooterBefore h3 {
    font-size: 20px !important;
    line-height: 1.3 !important;
    margin-bottom: 4px !important;
    text-align: left;
  }

  #footer #emailsubscription_anchor_displayFooterBefore form > .d-flex {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }

  #footer #emailsubscription_anchor_displayFooterBefore input[type="email"],
  #footer #emailsubscription_anchor_displayFooterBefore input[type="text"],
  #footer #emailsubscription_anchor_displayFooterBefore .btn,
  #footer #emailsubscription_anchor_displayFooterBefore button[type="submit"],
  #footer #emailsubscription_anchor_displayFooterBefore input[type="submit"] {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 46px;
  }

  #emailsubscription_anchor_displayFooterBefore form .fs-6,
  #emailsubscription_anchor_displayFooterBefore form label {
    font-size: 14px !important;
    line-height: 1.45 !important;
  }

  #footer .ps-socialfollow {
    padding: 12px 0 !important;
  }

  /* Garanties sur GSM : trois lignes rapprochees, icones alignees. */
  #footer .blockreassurance--dark {
    padding-top: 8px !important;
  }

  #footer .blockreassurance--horizontal,
  #footer .blockreassurance--horizontal .row {
    row-gap: 0 !important;
  }

  /* Eviter les espaces imposes par les colonnes du module. */
  #footer .blockreassurance--horizontal .row > * {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  #footer .blockreassurance--horizontal .reassurance {
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 12px !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 6px 0 !important;
  }

  #footer .blockreassurance--dark .reassurance__title {
    font-size: 14px !important;
    line-height: 1.35 !important;
    margin: 0 !important;
  }

  /* Reduire l'intervalle entre garanties et menus du footer. */
  #footer .footer__main {
    padding-top: 8px !important;
  }

  #footer .footer__main-top {
    row-gap: 0 !important;
  }

  #footer .footer__main-top > * {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  /* Titres des accordéons Hummingbird : compacte sans cacher les liens. */
  #footer .footer__main-top .footer-block__title {
    font-size: 15px !important;
    line-height: 1.35 !important;
    margin: 0 !important;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
  }

  #footer .copyright {
    padding: 18px 12px !important;
    line-height: 1.5;
  }
  #footer .copyright,
  #footer .copyright span,
  #footer .copyright a {
    font-size: 12px !important;
  }
}

/* Respect des utilisateurs qui désactivent les animations. */
@media (prefers-reduced-motion: reduce) {
  #footer #emailsubscription_anchor_displayFooterBefore .btn,
  #footer #emailsubscription_anchor_displayFooterBefore button[type="submit"],
  #footer #emailsubscription_anchor_displayFooterBefore input[type="submit"] {
    transition: none !important;
  }
}

/* 12. Mode contraste élevé Windows - indication du focus visible */
@media (forced-colors: active) {
  #footer #emailsubscription_anchor_displayFooterBefore input[type="email"]:focus,
  #footer #emailsubscription_anchor_displayFooterBefore input[type="text"]:focus,
  .btn-primary:focus-visible,
  .btn-outline-primary:focus-visible {
    outline: 2px solid Highlight !important;
    outline-offset: 2px;
  }
}

/* SECURIFORCE - ESPACE AVANT NEWSLETTER */
#index #center-column {
  padding-bottom: 8px !important;
}

/* ============================================================
   Compatibilité des anciens boutons de cartes — PC, tablette et GSM
   Conservé pour les anciennes classes de bouton ; les cartes actuelles masquent le panier.
   N'affecte pas le gros bouton d'une fiche produit (#product).
   ============================================================ */

.product-miniature button.product-miniature__add,
.product-miniature button[data-button-action="add-to-cart"],
.product-miniature button.add-to-cart {
  --bs-btn-color: var(--sf-red);
  --bs-btn-bg: #ffffff;
  --bs-btn-border-color: var(--sf-red);
  --bs-btn-hover-color: var(--sf-red);
  --bs-btn-hover-bg: #fff4f4;
  --bs-btn-hover-border-color: var(--sf-red);
  --bs-btn-active-color: var(--sf-red);
  --bs-btn-active-bg: #fff4f4;
  --bs-btn-active-border-color: var(--sf-red);
  --bs-btn-disabled-color: var(--sf-disabled);
  --bs-btn-disabled-bg: #ffffff;
  --bs-btn-disabled-border-color: #a1a8b0;

  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 46px;
  width: 46px !important;
  min-width: 46px;
  height: 46px;
  padding: 0 !important;
  background: #ffffff !important;
  color: var(--sf-red) !important;
  border: 1px solid var(--sf-red) !important;
  border-radius: 5px;
  box-shadow: none;
  -webkit-text-fill-color: var(--sf-red) !important;
}

/* Ne pas modifier les autres boutons rouges (offres, achat sur fiche). */
.product-miniature button.product-miniature__add:hover:not(:disabled),
.product-miniature button[data-button-action="add-to-cart"]:hover:not(:disabled),
.product-miniature button.add-to-cart:hover:not(:disabled),
.product-miniature button.product-miniature__add:active:not(:disabled),
.product-miniature button[data-button-action="add-to-cart"]:active:not(:disabled),
.product-miniature button.add-to-cart:active:not(:disabled) {
  background: #fff4f4 !important;
  color: var(--sf-red) !important;
  border-color: var(--sf-red) !important;
}

/* Icone Material Icons de Hummingbird : evite le blanc sur blanc. */
.product-miniature button.product-miniature__add .material-icons,
.product-miniature button[data-button-action="add-to-cart"] .material-icons,
.product-miniature button.add-to-cart .material-icons,
.product-miniature button.product-miniature__add i,
.product-miniature button[data-button-action="add-to-cart"] i,
.product-miniature button.add-to-cart i {
  color: var(--sf-red) !important;
  -webkit-text-fill-color: var(--sf-red) !important;
  opacity: 1 !important;
}

.product-miniature button.product-miniature__add svg,
.product-miniature button[data-button-action="add-to-cart"] svg,
.product-miniature button.add-to-cart svg {
  color: var(--sf-red) !important;
}

/* Produits indisponibles : etat grise, sans fond rouge. */
.product-miniature button.product-miniature__add:disabled,
.product-miniature button[data-button-action="add-to-cart"]:disabled,
.product-miniature button.add-to-cart:disabled {
  background: #ffffff !important;
  color: var(--sf-disabled) !important;
  border-color: #a1a8b0 !important;
  -webkit-text-fill-color: var(--sf-disabled) !important;
  opacity: 1;
}
.product-miniature button.product-miniature__add:disabled i,
.product-miniature button[data-button-action="add-to-cart"]:disabled i,
.product-miniature button.add-to-cart:disabled i,
.product-miniature button.product-miniature__add:disabled svg,
.product-miniature button[data-button-action="add-to-cart"]:disabled svg,
.product-miniature button.add-to-cart:disabled svg {
  color: var(--sf-disabled) !important;
  -webkit-text-fill-color: var(--sf-disabled) !important;
}

/* Une icone seule sur PC et GSM. Le aria-label du bouton est conserve. */
.product-miniature button.product-miniature__add .product-miniature__add-text {
  display: none !important;
}
/* =========================================
   GSM — compatibilité avec les anciennes actions de cartes
   sur les cartes produits
   ========================================= */
@media (max-width: 767.98px) {
  /* oeil aperçu rapide */
  .product-miniature .quick-view,
  .product-miniature .product-miniature__quickview,
  .product-miniature .js-quick-view,
  .product-miniature a.quick-view {
    display: none !important;
  }

  /* liste d'envie / coeur */
  .product-miniature .wishlist-button-add,
  .product-miniature .st-wishlist-button,
  .product-miniature .addToWishlist,
  .product-miniature .wishlist,
  .product-miniature [data-rel="wishlist"],
  .product-miniature [class*="wishlist"] {
    display: none !important;
  }
}
/* SECURIFORCE - MASQUER APERCU RAPIDE SUR GSM */
@media (max-width: 767.98px) {
  .product-miniature .product-miniature__quickview-touch,
  .product-miniature .product-miniature__quickview-button,
  .product-miniature button.js-quickview[data-ps-action="open-quickview"] {
    display: none !important;
  }

  /* SECURIFORCE - QUANTITE + PANIER SUR UNE LIGNE */
  .product-miniature form.product-miniature__form {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    width: 100%;
  }

  .product-miniature form.product-miniature__form > .quantity-button {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  .product-miniature form.product-miniature__form .quantity-button__group {
    width: 100% !important;
    min-width: 0 !important;
    flex-wrap: nowrap !important;
  }

  .product-miniature form.product-miniature__form .quantity-button__group > .form-control {
    min-width: 0 !important;
    width: 1% !important;
  }

  .product-miniature form.product-miniature__form > button.product-miniature__add {
    --bs-btn-bg: #fff;
    --bs-btn-color: #e30613;
    --bs-btn-border-color: #e30613;
    box-sizing: border-box !important;
    flex: 0 0 44px !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #fff !important;
    border: 1px solid #e30613 !important;
    color: #e30613 !important;
  }

  .product-miniature form.product-miniature__form > button.product-miniature__add .material-icons {
    font-size: 18px !important;
    line-height: 1 !important;
    color: #e30613 !important;
    -webkit-text-fill-color: #e30613 !important;
  }

  .product-miniature
    form.product-miniature__form
    > button.product-miniature__add
    .product-miniature__add-text {
    display: none !important;
  }
} /* Fin des regles GSM (max-width: 767.98px) */

/* SECURIFORCE - ALIGNEMENT PRIX ET BOUTONS PC + GSM */

.product-miniature {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.product-miniature .product-miniature__inner {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
  border-radius: 8px;
  background-color: #ffffff;
  border: 2px solid #e5e7eb !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color 200ms ease !important;
}

.product-miniature .product-miniature__bottom {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.product-miniature .product-miniature__infos {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

.product-miniature .product-miniature__prices {
  margin-top: var(--sf-price-offset, 0px);
}

/* Les hauteurs sont harmonisées par rangée, sans tronquer les noms. */
.product-miniature .product-miniature__title {
  display: block !important;
  min-height: var(--sf-title-row-height, 0px) !important;
}

/* Conserver les vrais avis, masquer uniquement les compteurs à zéro. */
.product-miniature .product-list-review[data-sf-has-reviews="false"] {
  display: none !important;
}
/* SECURIFORCE — Bande et CTA sous chaque slide du carrousel Hummingbird */

#ps_imageslider .ps-imageslider__figure {
  margin: 0;
}

#ps_imageslider .sf-slider-cta-band {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 74px;
  padding: 12px 16px;
  background: #202427;
}

#ps_imageslider .sf-slider-cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 46px;
  padding: 10px 24px;
  border-radius: 6px;
  background: #ffdf00;
  color: #161616;
  font-size: 15px;
  line-height: 1.25;
  font-weight: 700;
  text-align: center;
  box-shadow: 0 2px 7px rgba(0, 0, 0, 0.14);
  transition:
    background-color 0.18s ease,
    transform 0.18s ease;
}

#ps_imageslider .ps-imageslider__link:hover .sf-slider-cta-button {
  background: #f3cb00;
}

#ps_imageslider .ps-imageslider__link:focus-visible .sf-slider-cta-button {
  outline: 3px solid #ffffff;
  outline-offset: 3px;
}

/* Les commandes et indicateurs restent sur l'image, pas sur le bouton. */
#ps_imageslider .carousel-control-prev,
#ps_imageslider .carousel-control-next {
  bottom: 74px;
}
#ps_imageslider .carousel-indicators {
  bottom: 74px;
}

@media (max-width: 767.98px) {
  /* SecuriForce : couper exactement 35 px uniquement EN BAS des 3 images.
     La hauteur du visuel s'adapte a la largeur reelle du carrousel.
     Garder les boutons jaunes et la version PC inchanges. */
  #index #ps_imageslider .ps-imageslider__figure {
    height: auto !important;
    overflow: hidden !important;
    margin: 0 !important;
  }

  #index #ps_imageslider .ps-imageslider__figure img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    margin-bottom: -35px !important;
  }

  #ps_imageslider .sf-slider-cta-band {
    min-height: 64px;
    padding: 10px 12px;
  }
  #ps_imageslider .sf-slider-cta-button {
    min-height: 42px;
    padding: 9px 14px;
    font-size: 13px;
    gap: 8px;
    max-width: 100%;
  }
  #ps_imageslider .carousel-control-prev,
  #ps_imageslider .carousel-control-next,
  #ps_imageslider .carousel-indicators {
    bottom: 64px;
  }
}

@media (prefers-reduced-motion: reduce) {
  #ps_imageslider .sf-slider-cta-button {
    transition: none;
  }
}
/* SECURIFORCE — Correctif carrousel PC / portable / grand écran
   Le rendu GSM (moins de 768 px) reste inchangé. */
@media (min-width: 768px) {
  #ps_imageslider,
  #ps_imageslider .carousel-inner,
  #ps_imageslider .carousel-item,
  #ps_imageslider .ps-imageslider__link {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  #ps_imageslider .ps-imageslider__link {
    display: flex !important;
    flex-direction: column !important;
    width: 100%;
  }

  #ps_imageslider .ps-imageslider__figure {
    display: block;
    flex: 0 0 auto;
    height: clamp(330px, 33vw, 450px) !important;
    overflow: hidden !important;
    margin: 0 !important;
  }

  #ps_imageslider .ps-imageslider__figure img {
    max-height: none !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
  }

  #ps_imageslider .sf-slider-cta-band {
    display: flex !important;
    position: static !important;
    flex: 0 0 auto;
    width: 100%;
    min-height: 74px;
    margin: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}

/* SecuriForce - Icônes réseaux sociaux */
.ps-socialfollow a {
  color: #ffffff !important;
}

.ps-socialfollow a:hover {
  color: #ffda00 !important;
}

/* SECURIFORCE - Newsletter mobile plus compacte */
@media (max-width: 767.98px) {
  #emailsubscription_anchor_displayFooterBefore {
    padding-bottom: 8px !important;
  }

  #emailsubscription_anchor_displayFooterBefore form > .fs-6.mb-2 {
    margin-bottom: 0 !important;
  }

  #emailsubscription_anchor_displayFooterBefore .gdpr-consent .form-check-label p:last-child {
    margin-bottom: 0 !important;
  }
}

/* SECURIFORCE - Réduire vraiment l’espace avant les rubriques sur mobile */
@media (max-width: 767.98px) {
  #footer .blockreassurance--dark {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  #footer .footer__main-top {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  #footer .footer__main-top .footer-block {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}

/* SECURIFORCE - Espacement case RGPD */
#emailsubscription_anchor_displayFooterBefore .gdpr-consent .form-check-input {
  margin-right: 8px !important;
  border-width: 1.5px !important;
  border-style: solid !important;
}

/* SECURIFORCE - Accent jaune titre Newsletter */

#emailsubscription_anchor_displayFooterBefore .h3 {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  color: #202427 !important;
}

#emailsubscription_anchor_displayFooterBefore .h3::before {
  content: "";
  display: block;
  flex: 0 0 4px;
  width: 4px;
  height: 32px;
  background-color: #ffdf00;
  border-radius: 2px;
}

/* SECURIFORCE - Espace avant newsletter */
#index .ps-newproducts .module-products__buttons {
  padding-bottom: 24px !important;
}

/* SECURIFORCE - Réassurance sous carrousel */

/* PC : réduire l'espace blanc */
#index #content > .sf-reassurance-after-slider {
  margin-top: -40px !important;
  padding: 8px 0 !important;
  background-color: #202427 !important;
  color: #dfe4e8 !important;
}

/* Smartphone */
@media (max-width: 767.98px) {
  /* Réduire l'espace après le carrousel */
  #index #content > .sf-reassurance-after-slider {
    margin-top: -40px !important;
    padding: 8px 0 !important;
  }

  /* Rapprocher les garanties */
  #index .sf-reassurance-after-slider .blockreassurance--horizontal {
    row-gap: 4px !important;
    padding: 0 16px !important;
  }

  /* Alignement et hauteur de chaque garantie */
  #index .sf-reassurance-after-slider .reassurance {
    min-height: 36px !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 3px 0 !important;
  }

  /* Taille uniforme des icônes */
  #index .sf-reassurance-after-slider .reassurance__image {
    width: 32px !important;
    height: 32px !important;
    flex: 0 0 32px !important;
  }

  /* Texte lisible */
  #index .sf-reassurance-after-slider .reassurance__title {
    font-size: 14px !important;
    line-height: 1.35 !important;
  }
}

/* Réassurance — titre, couleur et graisse regroupés. */
#index .sf-reassurance-after-slider .reassurance__title {
  color: #ffffff !important;
  font-weight: 600 !important;
}

/* Accueil — palette de la zone produits et réassurance */

/* Fond clair pour les produits */
#index #content,
#index .ps-featuredproducts,
#index .ps-newproducts {
  background-color: #f5f6f8 !important;
}

/* Supprimer les fonds clairs internes */
#index .sf-reassurance-after-slider .blockreassurance--horizontal,
#index .sf-reassurance-after-slider .blockreassurance--light,
#index .sf-reassurance-after-slider .reassurance {
  background-color: transparent !important;
}

/* SECURIFORCE - Descriptions réassurance */
#index .sf-reassurance-after-slider .reassurance__desc {
  color: #dfe4e8 !important;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.35;
}

/* Liens sur fond sombre */
#index .sf-reassurance-after-slider a {
  color: #dfe4e8 !important;
}
/* SECURIFORCE - Réassurance compacte sur GSM */
@media (max-width: 767.98px) {
  #index .sf-reassurance-after-slider .reassurance__desc {
    display: none !important;
  }
}
/* Menu GSM — hamburger dans la ligne du logo.
 * Activé seulement si le script a déplacé le composant de menu natif.
 */
#header .sf-mobile-menu-slot {
  display: none;
}

@media (max-width: 767.98px) {
  html.sf-mobile-menu-inline #header .header-bottom__row {
    grid-template-columns: 44px minmax(0, 1fr) 42px 42px 42px;
    column-gap: 4px;
  }

  html.sf-mobile-menu-inline #header .sf-mobile-menu-slot {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-width: 0;
    grid-column: 1;
    grid-row: 1;
  }

  html.sf-mobile-menu-inline #header .header-bottom__logo {
    margin: 0 !important;
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
  }

  html.sf-mobile-menu-inline #header .header-bottom__logo img.logo {
    width: min(158px, 36vw);
    max-width: 100%;
    height: auto;
  }

  html.sf-mobile-menu-inline #header #_mobile_ps_customersignin {
    grid-column: 4;
    grid-row: 1;
  }

  html.sf-mobile-menu-inline #header #_mobile_ps_shoppingcart {
    grid-column: 5;
    grid-row: 1;
  }

  html.sf-mobile-menu-inline #header .sf-mobile-search {
    grid-column: 1/-1;
    grid-row: 2;
  }

  html.sf-mobile-menu-inline #header .sf-mobile-menu-slot > .ps-mainmenu--desktop {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    flex: 0 0 44px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html.sf-mobile-menu-inline #header .sf-mobile-menu-slot .menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
  }

  /* Ne pas masquer le conteneur du menu coulissant (offcanvas). */
  html.sf-mobile-menu-inline #header .header-nav-full-width {
    min-height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}
/* SECURIFORCE — Acces a la liste d'envies dans l'en-tete.
 * Sans changement des cœurs sur les cartes/fiches produits.
 */
#header .sf-wishlist-header {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 44px;
  flex: 0 0 42px;
  color: #151b20;
  text-decoration: none;
}
#header .sf-wishlist-header:hover,
#header .sf-wishlist-header:focus-visible {
  color: #e30613;
}
#header .sf-wishlist-header:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
  border-radius: 6px;
}
#header .sf-wishlist-header svg {
  display: block;
}

/* Sur PC : coeur en dernier dans le groupe des actions (a cote du panier). */
@media (min-width: 768px) {
  #header .sf-wishlist-header--desktop {
    width: 36px;
    height: 40px;
    flex-basis: 36px;
  }
}

/* Sur GSM, trois actions parfaitement centrees dans les colonnes existantes.
   Le coeur est personnalise ; compte et panier sont les modules Hummingbird.
   Ne change rien au logo, au hamburger, a la recherche ni au header PC. */
@media (max-width: 767.98px) {
  html.sf-mobile-menu-inline #header
  :is(#sf-mobile-wishlist, #_mobile_ps_customersignin, #_mobile_ps_shoppingcart) {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center;
    box-sizing: border-box;
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html.sf-mobile-menu-inline #header #sf-mobile-wishlist {
    grid-column: 3;
    grid-row: 1;
  }

  /* Annuler les marges et paddings internes propres aux modules. */
  #header :is(#_mobile_ps_customersignin, #_mobile_ps_shoppingcart)
  :is(.header-block, .ps-customersignin, .ps-shoppingcart) {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100%;
    height: 100%;
    margin: 0 !important;
    padding: 0 !important;
  }

  #header #sf-mobile-wishlist .sf-wishlist-header,
  #header #_mobile_ps_customersignin .header-block__action-btn,
  #header #_mobile_ps_shoppingcart .header-block__action-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative;
    box-sizing: border-box;
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
  }

  /* Trois pictogrammes de 24 px, mais des zones tactiles de 42 x 44 px. */
  #header #sf-mobile-wishlist .sf-wishlist-header svg {
    display: block;
    width: 24px !important;
    height: 24px !important;
    flex: 0 0 24px;
  }

  #header :is(#_mobile_ps_customersignin, #_mobile_ps_shoppingcart)
  .header-block__icon {
    display: block;
    width: 24px !important;
    height: 24px !important;
    font-size: 24px !important;
    line-height: 24px !important;
    text-align: center;
  }

  /* Masquer le 0, mais conserver la pastille si le panier contient un article.
     Le module natif ajoute .header-block--active lorsque le panier est rempli. */
  #header #_mobile_ps_shoppingcart .header-block__badge {
    display: none !important;
  }
  #header #_mobile_ps_shoppingcart .header-block--active .header-block__badge {
    display: flex !important;
  }
}
/* SECURIFORCE — Cartes épurées sur PC et GSM.
   La photo et le nom conservent leurs liens vers la fiche produit. */
.product-miniature a.product-miniature__details {
  display: none !important;
}

/* Masquer l'espace d'action seulement s'il ne contient que ce lien. */
.product-miniature .product-miniature__actions:has(> a.product-miniature__details:only-child) {
  display: none !important;
}

/* Neutraliser le zoom natif du thème, notamment sur les écrans tactiles. */
.product-miniature .product-miniature__image,
.product-miniature .product-miniature__inner:hover .product-miniature__image {
  transform: none;
  transition: transform 180ms ease;
}

@media (prefers-reduced-motion: reduce) {
  .product-miniature .product-miniature__image,
  .product-miniature .product-miniature__inner:hover .product-miniature__image,
  .product-miniature .product-miniature__image-link:hover .product-miniature__image {
    transform: none;
    transition: none;
  }
}

/* SECURIFORCE — INSCRIPTION : alignement RGPD et correction GSM.
 * 10/10/2026. Base : custom.css partage a 22h02.
 * Le doublon de confidentialite a ete supprime dans les modules.
 * Alignement RGPD sur PC/GSM ; entete compact sur GSM uniquement.
 * Portee : page d'inscription FR/NL. Rendu a verifier apres transfert.
 */
body#registration #customer-form label[for="field-psgdpr"] p {
  display: inline !important;
  margin: 0 !important;
}

@media (max-width: 767.98px) {
  /* L'en-tete reste dans le flux pour ne pas masquer les champs au defilement. */
  body#registration #header {
    position: relative !important;
    top: auto !important;
    transform: none !important;
  }

  body#registration #customer-form section > .mb-3:has(> .form-check > input[type="checkbox"]) {
    margin-bottom: 12px !important;
  }

  body#registration #customer-form .form-check:has(> input[type="checkbox"]) {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    align-items: start;
    column-gap: 10px;
    min-height: 44px;
    padding-left: 0;
  }

  body#registration #customer-form .form-check > input[type="checkbox"] {
    float: none;
    width: 20px;
    height: 20px;
    margin: 3px 0 0;
  }

  body#registration #customer-form .form-check:has(> input[type="checkbox"]) > label {
    min-width: 0;
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    overflow-wrap: break-word;
  }

  body#registration #customer-form label[for="field-newsletter"] em:empty,
  body#registration #customer-form label[for="field-newsletter"] br:has(+ em:empty) {
    display: none;
  }
}
/* SECURIFORCE - Réassurance visible uniquement sur la page d'accueil.
   Sur toutes les autres pages (catégories, produits, espace pro, compte,
   panier, commande, contact, etc.), masquer les blocs de réassurance.
   Aucun changement de la réassurance déjà placée sous le carrousel d'accueil. */
body:not(#index) .blockreassurance,
body:not(#index) .sf-reassurance-after-slider {
  display: none !important;
}

/* ============================================================
   SECURIFORCE - FORMULAIRE DE CREATION DE COMPTE
   Style uniquement sur /inscription : bouton anthracite, oeil discret.
   Aucun changement aux boutons des autres pages.
   ============================================================ */

/* Créez votre compte : anthracite et texte blanc. */
body#registration #customer-form button.form-control-submit.btn-primary {
  --bs-btn-bg: #202427;
  --bs-btn-border-color: #202427;
  --bs-btn-color: #ffffff;
  --bs-btn-hover-bg: #ffdf00;
  --bs-btn-hover-border-color: #ffdf00;
  --bs-btn-hover-color: #202427;
  --bs-btn-active-bg: #202427;
  --bs-btn-active-border-color: #202427;
  --bs-btn-active-color: #ffffff;
  background-color: #202427 !important;
  border-color: #202427 !important;
  color: #ffffff !important;
}

/* Survol jaune uniquement avec une vraie souris. */
@media (hover: hover) and (pointer: fine) {
  body#registration #customer-form button.form-control-submit.btn-primary:hover {
    background-color: #ffdf00 !important;
    border-color: #ffdf00 !important;
    color: #202427 !important;
  }
}

/* Afficher le mot de passe : fond blanc, bord gris et oeil anthracite. */
body#registration #customer-form .password-field button[data-ps-action="toggle-password"] {
  --bs-btn-bg: #ffffff;
  --bs-btn-border-color: #d8dee4;
  --bs-btn-color: #202427;
  --bs-btn-hover-bg: #f5f6f8;
  --bs-btn-hover-border-color: #d8dee4;
  --bs-btn-hover-color: #202427;
  --bs-btn-active-bg: #e9edf0;
  --bs-btn-active-border-color: #d8dee4;
  --bs-btn-active-color: #202427;
  background-color: #ffffff !important;
  border-color: #d8dee4 !important;
  color: #202427 !important;
}

body#registration #customer-form .password-field button[data-ps-action="toggle-password"]:hover {
  background-color: #f5f6f8 !important;
  border-color: #d8dee4 !important;
  color: #202427 !important;
}

body#registration
  #customer-form
  .password-field
  button[data-ps-action="toggle-password"]
  .material-icons {
  color: #202427 !important;
  -webkit-text-fill-color: #202427 !important;
}

/* Focus clavier lisible. */
body#registration #customer-form button.form-control-submit.btn-primary:focus-visible,
body#registration
  #customer-form
  .password-field
  button[data-ps-action="toggle-password"]:focus-visible {
  outline: 2px solid #e30613 !important;
  outline-offset: 3px;
}

/* ============================================================
   SECURIFORCE - PAGE CONNEXION (Hummingbird 2.1.2)
   Ne concerne que body#authentication, PC et GSM.
   ============================================================ */

/* Bouton Connexion : fond anthracite et texte blanc. */
body#authentication #login-form #submit-login {
  --bs-btn-bg: #202427;
  --bs-btn-border-color: #202427;
  --bs-btn-color: #ffffff;
  --bs-btn-hover-bg: #ffdf00;
  --bs-btn-hover-border-color: #ffdf00;
  --bs-btn-hover-color: #202427;
  --bs-btn-active-bg: #202427;
  --bs-btn-active-border-color: #202427;
  --bs-btn-active-color: #ffffff;
  background-color: #202427 !important;
  border-color: #202427 !important;
  color: #ffffff !important;
}

/* Survol jaune uniquement avec une souris. */
@media (hover: hover) and (pointer: fine) {
  body#authentication #login-form #submit-login:hover:not(:disabled) {
    background-color: #ffdf00 !important;
    border-color: #ffdf00 !important;
    color: #202427 !important;
  }
}

/* Oeil mot de passe : fond blanc, bord gris, icone anthracite. */
body#authentication #login-form .password-field button[data-ps-action="toggle-password"] {
  --bs-btn-bg: #ffffff;
  --bs-btn-border-color: #d8dee4;
  --bs-btn-color: #202427;
  --bs-btn-hover-bg: #f5f6f8;
  --bs-btn-hover-border-color: #d8dee4;
  --bs-btn-hover-color: #202427;
  --bs-btn-active-bg: #e9edf0;
  --bs-btn-active-border-color: #d8dee4;
  --bs-btn-active-color: #202427;
  background-color: #ffffff !important;
  border-color: #d8dee4 !important;
  color: #202427 !important;
}

body#authentication #login-form .password-field button[data-ps-action="toggle-password"]:hover {
  background-color: #f5f6f8 !important;
  border-color: #d8dee4 !important;
  color: #202427 !important;
}

body#authentication
  #login-form
  .password-field
  button[data-ps-action="toggle-password"]
  .material-icons {
  color: #202427 !important;
  -webkit-text-fill-color: #202427 !important;
}

/* Bouton secondaire Creer mon compte : contour anthracite. */
body#authentication .login__register-prompt a[data-link-action="display-register-form"] {
  --bs-btn-color: #202427;
  --bs-btn-border-color: #202427;
  --bs-btn-hover-color: #202427;
  --bs-btn-hover-bg: #ffdf00;
  --bs-btn-hover-border-color: #ffdf00;
  border: 1px solid #202427 !important;
  background-color: transparent !important;
  color: #202427 !important;
}

@media (hover: hover) and (pointer: fine) {
  body#authentication .login__register-prompt a[data-link-action="display-register-form"]:hover {
    background-color: #ffdf00 !important;
    border-color: #ffdf00 !important;
    color: #202427 !important;
  }
}

/* Focus clavier. */
body#authentication #login-form #submit-login:focus-visible,
body#authentication
  #login-form
  .password-field
  button[data-ps-action="toggle-password"]:focus-visible,
body#authentication
  .login__register-prompt
  a[data-link-action="display-register-form"]:focus-visible {
  outline: 2px solid #e30613 !important;
  outline-offset: 3px;
}
/* Contact — épaisseur de la case RGPD. */
body#contact .contact-form .gdpr-consent .form-check-input {
  border-width: 1.5px !important;
  border-style: solid !important;
}

/* Inscription — épaisseur des cases à cocher. */
body#registration #customer-form input[type="checkbox"] {
  border-width: 1.5px !important;
  border-style: solid !important;
}

/* Masquer le menu lateral des categories sur mobile */
@media (max-width: 767.98px) {
  #left-column .ps-categorytree {
    display: none !important;
  }
}
/* Masquer la barre de la page sur mobile */
@media (max-width: 767.98px) {
  html,
  body {
    scrollbar-width: none !important;
  }

  html::-webkit-scrollbar,
  body::-webkit-scrollbar {
    display: none !important;
    width: 0;
    height: 0;
  }
}

/* BEGIN SECURIFORCE CATEGORY READMORE v2 */
body#category .sf-category-readmore-button {
  display: none;
}

/* One typography for category and subcategory introductions, FR and NL. */
body#category .category__header .category__description {
  font-family: var(--bs-body-font-family, inherit);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--bs-body-color, #212529);
  text-align: start;
}

body#category .category__header .category__description p {
  margin-block: 0 0.625rem;
}

body#category .category__header .category__description strong,
body#category .category__header .category__description b {
  font-weight: 600;
}

body#category .category__header .category__description > :last-child {
  margin-block-end: 0;
}

body#category .category__header .category__description p:empty {
  display: none;
}

@media (max-width: 767.98px) {
  body#category .category__description.sf-category-readmore {
    --sf-readmore-enabled: 1;
    margin-block-end: 0;
  }

  body#category .sf-category-readmore > :first-child {
    margin-block-start: 0;
  }

  body#category .sf-category-readmore.sf-readmore-collapsed {
    max-height: var(--sf-readmore-height, 4.5em);
    overflow: hidden;
  }

  body#category .sf-category-readmore-button:not([hidden]) {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin: 0 0 4px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #b80517;
    font: inherit;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
  }

  body#category .sf-category-readmore-button:focus-visible {
    outline: 2px solid #b80517;
    outline-offset: 3px;
    border-radius: 2px;
  }

  /* Restore a small gap when a short description has no visible button. */
  body#category
    .category__header
    .category__description:has(+ .sf-category-readmore-button[hidden]) {
    margin-block-end: 0.625rem;
  }

  body#category .category__header h1 {
    margin-block-end: 0.75rem;
  }

  body#category .category__header .subcategory__list {
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-block: 2px 4px;
    margin-block-end: 0.75rem;
  }

  body#category .category__header .subcategory__list::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }
}

@media print {
  body#category .sf-category-readmore {
    max-height: none !important;
    overflow: visible !important;
  }
  body#category .sf-category-readmore-button {
    display: none !important;
  }
}
/* END SECURIFORCE CATEGORY READMORE v2 */
/* SecuriForce — catégories Hummingbird — 11/10/2026
 * Sélecteurs vérifiés sur la catégorie Pantalons de la boutique.
 * FR / NL : styles indépendants de la langue, textes inchangés.
 */

/* Lire la suite / Lire moins : conserver le masquage et le JS existants. */
body#category .sf-category-readmore-button:not([hidden]) {
  color: #202427;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

body#category .sf-category-readmore-button:not([hidden]):hover {
  color: #202427;
  text-decoration-thickness: 2px;
}

body#category .sf-category-readmore-button:focus-visible {
  outline: 2px solid #202427;
  outline-offset: 3px;
}

/* Barre de tri et de filtres sur GSM / tablette, sans modifier la grille. */
@media (max-width: 991.98px) {
  body#category #search_filter_toggler,
  body#category #sort_dropdown_button {
    min-height: 44px;
    box-sizing: border-box;
    padding-block: 8px;
    line-height: 1.4;
    box-shadow: none;
  }

  /* Filtrer : variables Bootstrap pour conserver tous les états natifs. */
  body#category #search_filter_toggler {
    --bs-btn-color: #ffdf00;
    --bs-btn-bg: #202427;
    --bs-btn-border-color: #202427;
    --bs-btn-hover-color: #ffdf00;
    --bs-btn-hover-bg: #30363a;
    --bs-btn-hover-border-color: #30363a;
    --bs-btn-active-color: #ffdf00;
    --bs-btn-active-bg: #30363a;
    --bs-btn-active-border-color: #30363a;
    --bs-btn-disabled-color: #ffdf00;
    --bs-btn-disabled-bg: #202427;
    --bs-btn-disabled-border-color: #202427;
    --bs-btn-focus-shadow-rgb: 32, 36, 39;
  }

  body#category #search_filter_toggler .material-icons {
    color: inherit;
  }

  /* Pertinence et autres tris : fond blanc, bordure gris clair. */
  body#category #sort_dropdown_button {
    --bs-btn-color: #202427;
    --bs-btn-bg: #ffffff;
    --bs-btn-border-color: #d7dde2;
    --bs-btn-hover-color: #202427;
    --bs-btn-hover-bg: #f7f8f9;
    --bs-btn-hover-border-color: #202427;
    --bs-btn-active-color: #202427;
    --bs-btn-active-bg: #f7f8f9;
    --bs-btn-active-border-color: #202427;
    --bs-btn-disabled-color: #202427;
    --bs-btn-disabled-bg: #ffffff;
    --bs-btn-disabled-border-color: #d7dde2;
    --bs-btn-focus-shadow-rgb: 32, 36, 39;
  }

  body#category #sort_dropdown_button::after {
    color: inherit;
  }

  body#category #search_filter_toggler:focus-visible,
  body#category #sort_dropdown_button:focus-visible {
    outline: 2px solid #202427;
    outline-offset: 3px;
    box-shadow: none;
  }
}
/* SecuriForce — prix et badges des cartes produits — 11/10/2026
 * Cartes Hummingbird uniquement : accueil, catégories et listes de produits.
 * Aucune modification des prix, réductions, dates ou traductions FR / NL.
 * Les badges sont ceux générés par PrestaShop ; aucun texte fictif ajouté.
 */

/* Prix actuel : légèrement plus grand, gras, anthracite. */
.product-miniature .product-miniature__price {
  color: #202427;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
}

/* Ancien prix natif d'une vraie réduction : discret et barré. */
.product-miniature .product-miniature__regular-price {
  color: #626a70;
  font-size: 0.875rem;
  font-weight: 400;
  text-decoration: line-through;
}

/* Conserver la position native en haut à gauche et l'espace du favori. */
.product-miniature .product-flags {
  gap: 0.375rem;
}

.product-miniature .product-flags .badge:is(.new, .discount, .on-sale) {
  padding: 0.35rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 1.2;
  text-transform: none;
  white-space: normal;
  overflow-wrap: anywhere;
  max-width: 100%;
}

/* Nouveauté : réafficher le badge que le CSS actuel masque. */
.product-miniature .product-flags .badge.new {
  display: inline-flex !important;
  background-color: #ffdf00;
  border: 1px solid #ffdf00;
  color: #202427;
}

/* Promotion / réduction réellement générée par PrestaShop. */
.product-miniature .product-flags .badge:is(.discount, .on-sale) {
  background-color: #e30613;
  border: 1px solid #e30613;
  color: #ffffff;
}

/* Une promotion prend le dessus sur le badge de nouveauté. */
.product-miniature .product-flags:has(.badge:is(.discount, .on-sale)) .badge.new {
  display: none !important;
}

/* Si pourcentage + libellé promo existent, conserver le pourcentage natif. */
.product-miniature .product-flags:has(.badge.discount) .badge.on-sale {
  display: none;
}
/* Masquer le second prix HT sous le prix TTC */
.product__taxless-price {
  display: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .product-miniature .product-miniature__inner {
    transition: none !important;
  }
}
.product-miniature button.js-quickview[data-ps-action="open-quickview"] {
  display: none !important;
}
/* Actions des cartes — cœur anthracite/jaune et disposition à droite du prix.
 * Les anciennes classes de panier restent compatibles ; le panier des cartes
 * est masqué plus bas. Le panier de l’en-tête et des fiches reste indépendant.
 */
.product-miniature .product-miniature__image-container {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 46px 46px minmax(0, 1fr);
  column-gap: 10px;
  row-gap: 8px;
  align-items: center;
  padding-bottom: 4px;
}

.product-miniature .product-miniature__image-container .product-miniature__image-link {
  grid-column: 1 / -1;
  grid-row: 1;
  min-width: 0;
  aspect-ratio: 1 / 1;
}

.product-miniature .product-miniature__image-link > picture {
  display: block;
  width: 100%;
  height: 100%;
}

.product-miniature .product-miniature__image-link .product-miniature__image {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.product-miniature
  :is(.product-miniature__image-container, .sf-card-price-actions)
  button.wishlist-button-add {
  display: inline-flex !important;
  grid-column: 2;
  grid-row: 2;
  position: static !important;
  inset: auto !important;
  transform: none !important;
  float: none;
  box-sizing: border-box;
  width: 46px !important;
  min-width: 46px;
  max-width: 46px;
  height: 46px !important;
  min-height: 46px;
  margin: 0 !important;
  padding: 0 !important;
  align-items: center;
  justify-content: center;
  gap: 0;
  border: 0 !important;
  border-radius: 6px !important;
  background: #ffffff !important;
  color: #202427 !important;
  box-shadow: none !important;
  cursor: pointer;
}

.product-miniature
  :is(.product-miniature__image-container, .sf-card-price-actions)
  button.wishlist-button-add
  .material-icons {
  display: inline-block !important;
  font-size: 24px;
  line-height: 1;
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}

.product-miniature
  :is(.product-miniature__image-container, .sf-card-price-actions)
  button.wishlist-button-add::after {
  content: none !important;
}

.product-miniature :is(.product-miniature__image-container, .sf-card-price-actions) .sf-card-cart {
  grid-column: 3;
  grid-row: 2;
  margin: 0;
  padding: 0;
  width: 46px;
}

.product-miniature
  :is(.product-miniature__image-container, .sf-card-price-actions)
  .sf-card-cart-button {
  display: inline-flex !important;
  position: static;
  box-sizing: border-box;
  width: 46px !important;
  min-width: 46px;
  height: 46px !important;
  margin: 0 !important;
  padding: 0 !important;
  align-items: center;
  justify-content: center;
  border: 0 !important;
  border-radius: 6px;
  background: #ffffff !important;
  color: #202427 !important;
  -webkit-text-fill-color: #202427 !important;
  text-decoration: none !important;
  box-shadow: none;
  cursor: pointer;
}

.product-miniature
  :is(.product-miniature__image-container, .sf-card-price-actions)
  .sf-card-cart-button
  svg {
  width: 24px;
  height: 24px;
  color: inherit !important;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.product-miniature
  :is(.product-miniature__image-container, .sf-card-price-actions)
  button.wishlist-button-add:focus-visible,
.product-miniature
  :is(.product-miniature__image-container, .sf-card-price-actions)
  .sf-card-cart-button:focus-visible {
  outline: 2px solid #202427 !important;
  outline-offset: 2px;
}

@media (hover: hover) and (pointer: fine) {
  .product-miniature
    :is(.product-miniature__image-container, .sf-card-price-actions)
    button.wishlist-button-add:hover,
  .product-miniature
    :is(.product-miniature__image-container, .sf-card-price-actions)
    .sf-card-cart-button:hover:not(:disabled) {
    background: #202427 !important;
    color: #ffdf00 !important;
    -webkit-text-fill-color: #ffdf00 !important;
    opacity: 1 !important;
  }
}

.product-miniature
  :is(.product-miniature__image-container, .sf-card-price-actions)
  .sf-card-cart-button:disabled {
  color: var(--sf-disabled) !important;
  -webkit-text-fill-color: var(--sf-disabled) !important;
  cursor: wait;
}

/* Le script déplace les boutons natifs sans les recréer. */
.product-miniature .product-miniature__image-container.sf-card-image-clean {
  display: block;
  padding-bottom: 0;
}

.product-miniature .sf-card-price-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px 8px;
  margin-top: var(--sf-price-offset, 0px);
  width: 100%;
  min-width: 0;
}

.product-miniature .sf-card-price-row .product-miniature__prices {
  flex: 1 1 auto;
  margin: 0;
  min-width: 0;
}

.product-miniature .sf-card-price-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  margin-left: auto;
}

/* Confirmation après un ajout au panier réussi ; aucune requête supplémentaire. */
.sf-cart-confirmation {
  position: fixed;
  z-index: 1060;
  right: 16px;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  max-width: min(360px, calc(100vw - 32px));
  padding: 12px 16px;
  border: 1px solid #ffdf00;
  border-radius: 8px;
  background: #202427;
  color: #ffffff;
  box-shadow: 0 4px 16px rgba(32, 36, 39, 0.18);
  font-size: 14px;
  line-height: 1.4;
  pointer-events: none;
}
.sf-cart-confirmation[hidden] {
  display: none !important;
}
/* Favoris — style natif dans la couche ps-modules de Hummingbird. */

@layer ps-modules {
  body .product-miniature .sf-card-price-actions button.wishlist-button-add {
    display: inline-flex !important;
    box-sizing: border-box;
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 0 !important;
    align-items: center;
    justify-content: center;
    border: 0 !important;
    border-radius: 6px !important;
    background: #ffffff !important;
    color: #202427 !important;
    -webkit-text-fill-color: #202427 !important;
    box-shadow: none !important;
    opacity: 1 !important;
  }

  body .product-miniature .sf-card-price-actions button.wishlist-button-add .material-icons {
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
  }

  @media (hover: hover) and (pointer: fine) {
    body .product-miniature .sf-card-price-actions button.wishlist-button-add:hover {
      background: #202427 !important;
      color: #ffdf00 !important;
      -webkit-text-fill-color: #ffdf00 !important;
      opacity: 1 !important;
    }
  }
}
/* Retirer le panier des cartes sur PC et GSM */
.product-miniature .sf-card-cart {
  display: none !important;
}
/* SecuriForce — survol PC plus visible.
   Photos stables sur les écrans tactiles et si les animations sont réduites. */
@media (min-width: 768px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .product-miniature .product-miniature__image {
    transition: transform 240ms ease !important;
  }
  .product-miniature .product-miniature__image-link:hover .product-miniature__image {
    transform: scale(1.06) !important;
  }
}
@media (min-width: 768px) and (hover: hover) and (pointer: fine) {
  .product-miniature
    .product-miniature__inner:has(.product-miniature__image-link:hover)
    .product-miniature__title {
    text-decoration: underline !important;
    text-underline-offset: 3px;
  }
}
/* Cartes produit — bordure au survol et repères de focus. */

@media (hover: hover) and (pointer: fine) {
  .product-miniature .product-miniature__inner:hover {
    border-color: #7b8490 !important;
    outline: none !important;
    box-shadow: none !important;
  }
}

/* La largeur reste identique au repos et au survol.
   Les reperes de focus des liens et boutons sont conserves. */
.product-miniature .product-miniature__inner:has(:focus-visible) {
  border-color: #7b8490 !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Cases à cocher — composant commun anthracite, FR/NL, PC/GSM. */

body input[type="checkbox"],
body #footer #emailsubscription_anchor_displayFooterBefore input[type="checkbox"],
body#contact .contact-form .gdpr-consent .form-check-input[type="checkbox"],
body#registration #customer-form input[type="checkbox"] {
  accent-color: #202427 !important;
  border-color: #202427 !important;
}

/* Hummingbird dessine les cases avec .form-check-input.
 * Le pictogramme de coche natif est conservé.
 */
body input.form-check-input[type="checkbox"]:not(:checked):not(:indeterminate),
body
  #footer
  #emailsubscription_anchor_displayFooterBefore
  input[type="checkbox"]:not(:checked):not(:indeterminate),
body#contact
  .contact-form
  .gdpr-consent
  .form-check-input[type="checkbox"]:not(:checked):not(:indeterminate),
body#registration #customer-form input[type="checkbox"]:not(:checked):not(:indeterminate) {
  background-color: #ffffff !important;
}

body input[type="checkbox"]:checked,
body input[type="checkbox"]:indeterminate,
body #footer #emailsubscription_anchor_displayFooterBefore input[type="checkbox"]:checked,
body #footer #emailsubscription_anchor_displayFooterBefore input[type="checkbox"]:indeterminate,
body#contact .contact-form .gdpr-consent .form-check-input[type="checkbox"]:checked,
body#contact .contact-form .gdpr-consent .form-check-input[type="checkbox"]:indeterminate,
body#registration #customer-form input[type="checkbox"]:checked,
body#registration #customer-form input[type="checkbox"]:indeterminate {
  background-color: #202427 !important;
  border-color: #202427 !important;
}

body input[type="checkbox"]:focus,
body #footer #emailsubscription_anchor_displayFooterBefore input[type="checkbox"]:focus,
body#contact .contact-form .gdpr-consent .form-check-input[type="checkbox"]:focus,
body#registration #customer-form input[type="checkbox"]:focus {
  border-color: #202427 !important;
  box-shadow: 0 0 0 0.2rem rgba(32, 36, 39, 0.18) !important;
}

body input[type="checkbox"]:focus-visible,
body #footer #emailsubscription_anchor_displayFooterBefore input[type="checkbox"]:focus-visible,
body#contact .contact-form .gdpr-consent .form-check-input[type="checkbox"]:focus-visible,
body#registration #customer-form input[type="checkbox"]:focus-visible {
  outline: 2px solid #202427 !important;
  outline-offset: 3px;
}

@media (max-width: 767.98px) {
  .blockreassurance--horizontal > .reassurance:has(img[src*="casque"]) {
    display: none !important;
  }
}
/* SECURIFORCE — Fil d'Ariane : gris anthracite adouci sur GSM uniquement.
   La règle de navigation du module utilise html body .breadcrumb__wrapper;
   ici la spécificité supérieure fonctionne sur catégories ET fiches produits.
   Ne modifie ni le header ni la top bar. */
@media (max-width: 767.98px) {
  html body nav.breadcrumb__wrapper {
    background-color: #3C4349 !important;
  }
}
/* BEGIN SECURIFORCE PANIER / GUIDE / REASSURANCE — 19/10/2026
 * Portée limitée au panier, à sa confirmation, au guide et aux trois badges.
 * Les boutons du catalogue et le formulaire d'inscription gardent leur style.
 */

/* Commander : jaune précis validé, y compris le panier en fenêtre. */
body#cart .cart-summary__actions .btn-primary,
#blockcart-modal .modal-footer > .btn-primary {
  --bs-btn-color: #202427;
  --bs-btn-bg: #ffd400;
  --bs-btn-border-color: #ffd400;
  --bs-btn-hover-color: #202427;
  --bs-btn-hover-bg: #f0c800;
  --bs-btn-hover-border-color: #f0c800;
  --bs-btn-active-color: #202427;
  --bs-btn-active-bg: #e0bb00;
  --bs-btn-active-border-color: #e0bb00;
  --bs-btn-disabled-color: #202427;
  --bs-btn-disabled-bg: #ffd400;
  --bs-btn-disabled-border-color: #ffd400;
  --bs-btn-focus-shadow-rgb: 32, 36, 39;
  font-weight: 700;
}

/* Continuer mes achats : blanc, texte et contour anthracite. */
body#cart .cart__continue-shopping,
#blockcart-modal .modal-footer > .btn-outline-primary {
  --bs-btn-color: #202427;
  --bs-btn-bg: #fff;
  --bs-btn-border-color: #202427;
  --bs-btn-hover-color: #202427;
  --bs-btn-hover-bg: #f5f6f8;
  --bs-btn-hover-border-color: #202427;
  --bs-btn-active-color: #202427;
  --bs-btn-active-bg: #eceef0;
  --bs-btn-active-border-color: #202427;
  --bs-btn-focus-shadow-rgb: 32, 36, 39;
  font-weight: 600;
}

.sf-size-guide-link {
  display: table;
  color: #202427;
  margin: 0 0 0.5rem;
  padding: 0.25rem 0;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.sf-size-guide-link:hover { color: #202427; text-decoration-thickness: 2px; }
.sf-size-guide-link:focus-visible,
.sf-size-dialog a:focus-visible,
.sf-size-dialog__close:focus-visible,
.sf-trust__link:focus-visible {
  outline: 2px solid #202427;
  outline-offset: 3px;
  box-shadow: 0 0 0 5px #ffd400;
}

.sf-size-dialog {
  width: min(760px, calc(100% - 2rem));
  max-height: calc(100dvh - 2rem);
  margin: auto;
  padding: 1.25rem;
  border: 1px solid #d8dce0;
  border-radius: 8px;
  color: #202427;
  background: #fff;
  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.22);
  overflow: auto;
  overscroll-behavior: contain;
}
.sf-size-dialog::backdrop { background: rgba(20, 23, 25, 0.65); }
.sf-size-dialog__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid #ffd400;
}
.sf-size-dialog__header h2 { margin: 0; font-size: 1.25rem; }
.sf-size-dialog__close {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border: 1px solid #202427;
  border-radius: 4px;
  color: #202427;
  background: #fff;
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
}
.sf-size-dialog__status:empty { display: none; }
.sf-size-dialog__content {
  max-width: 100%;
  overflow-x: auto;
  font-size: 0.9375rem;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.sf-size-dialog__content :is(h1, h2) { font-size: 1.125rem; margin: 1.2rem 0 0.75rem; }
.sf-size-dialog__content :is(h3, h4, h5, h6) { font-size: 1rem; margin: 1rem 0 0.5rem; }
.sf-size-dialog__content img { max-width: 100%; height: auto; }
.sf-size-dialog__content table { width: 100%; margin: 1rem 0; border-collapse: collapse; }
.sf-size-dialog__content :is(th, td) { padding: 0.5rem; border: 1px solid #d8dce0; vertical-align: top; }
.sf-size-dialog__content th { background: #f5f6f8; font-weight: 700; }
.sf-size-dialog__footer { margin: 1rem 0 0; padding-top: 0.75rem; border-top: 1px solid #e2e5e8; font-size: 0.875rem; }
.sf-size-dialog a { color: #202427; text-decoration: underline; text-underline-offset: 0.15em; }
body:has(.sf-size-dialog[open]) { overflow: hidden; }

/* Liste indépendante des anciens blocs masqués sur les fiches et le panier. */
.sf-trust {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  color: #202427;
}
.sf-trust__item { min-width: 0; margin: 0; padding: 0; }
.sf-trust__item + .sf-trust__item { border-top: 1px solid #e2e5e8; }
.sf-trust__link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 60px;
  padding: 0.75rem 0;
  color: #202427;
  text-decoration: none;
}
.sf-trust__link:hover { color: #202427; text-decoration: none; }
.sf-trust__link:hover .sf-trust__title { text-decoration: underline; text-underline-offset: 0.2em; }
.sf-trust__icon { flex: 0 0 25px; width: 25px; height: 25px; color: #202427; }
.sf-trust__title { display: block; font-size: 0.875rem; font-weight: 600; line-height: 1.4; }
.sf-trust__description { display: block; margin-top: 0.125rem; color: #515a61; font-size: 0.8125rem; line-height: 1.4; }
body#cart .sf-trust { margin-top: 1rem; }

/* Accueil : même emplacement, trois engagements sur fond clair lisible. */
#index #content > .sf-reassurance-after-slider:has(.sf-trust) {
  background-color: #fff !important;
  color: #202427 !important;
}
#index .sf-trust-wrapper { padding: 0; background: #fff; }
#index .sf-trust-wrapper .blockreassurance--horizontal { display: block; padding: 0; }
#index .sf-trust-wrapper .sf-trust {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
  max-width: 1320px;
  margin-inline: auto;
  padding-inline: 1rem;
}
#index .sf-trust-wrapper .sf-trust__item + .sf-trust__item { border-top: 0; }
#index .sf-reassurance-after-slider .sf-trust__link { color: #202427 !important; }
@media (max-width: 767.98px) {
  #index .sf-trust-wrapper .sf-trust { grid-template-columns: 1fr; gap: 0; }
  #index .sf-trust-wrapper .sf-trust__item + .sf-trust__item { border-top: 1px solid #e2e5e8; }
  #index .sf-trust-wrapper .sf-trust__link { min-height: 48px; padding-block: 0.5rem; }
  .sf-size-dialog { padding: 1rem; }
}
/* END SECURIFORCE PANIER / GUIDE / REASSURANCE */


/* BEGIN SECURIFORCE RESTAURATION ET COMMANDE 20261019 */

/* SecuriForce — panier et récapitulatif de commande, FR/NL.
   Aucun sélecteur ne cible l'accueil ni les fiches produits. */
body#cart .ps-featuredproducts .module-products__buttons > .btn {
  --bs-btn-color: #fff;
  --bs-btn-bg: #202427;
  --bs-btn-border-color: #202427;
  --bs-btn-hover-color: #202427;
  --bs-btn-hover-bg: #ffd400;
  --bs-btn-hover-border-color: #ffd400;
  --bs-btn-active-color: #202427;
  --bs-btn-active-bg: #ffd400;
  --bs-btn-active-border-color: #ffd400;
  --bs-btn-focus-shadow-rgb: 32, 36, 39;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  max-width: 100%;
  min-width: 0;
  padding: 12px 24px;
  border: 1px solid #202427 !important;
  border-radius: 6px;
  background-color: #202427 !important;
  color: #fff !important;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  white-space: normal;
  text-align: center;
  text-decoration: none !important;
  box-shadow: none;
}
@media (hover: hover) and (pointer: fine) {
  body#cart .ps-featuredproducts .module-products__buttons > .btn:hover {
    background-color: #ffd400 !important;
    border-color: #ffd400 !important;
    color: #202427 !important;
  }
}
body#cart .ps-featuredproducts .module-products__buttons > .btn:active {
  background-color: #ffd400 !important;
  border-color: #ffd400 !important;
  color: #202427 !important;
}
body#cart .ps-featuredproducts .module-products__buttons > .btn:focus-visible {
  outline: 2px solid #202427;
  outline-offset: 3px;
  box-shadow: 0 0 0 5px #ffd400;
}

/* Encadré commun aux deux récapitulatifs. */
body#cart .cart-grid__aside-wrapper,
body#checkout .checkout-grid__aside-wrapper {
  box-sizing: border-box;
  min-width: 0;
  padding: 20px;
  border: 1px solid #e1e5e9;
  border-top: 4px solid #ffd400;
  border-radius: 10px;
  background: #f5f6f8;
  color: #202427;
  box-shadow: 0 4px 16px rgba(32, 36, 39, 0.05);
}
body#cart .cart-grid__aside-wrapper > h2 {
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid #d8dce0;
  color: #202427;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.35;
}
body#cart .cart-summary__line,
body#checkout .cart-summary__line {
  gap: 12px;
  color: #202427;
}
body#cart .cart-summary__label,
body#checkout .cart-summary__label { min-width: 0; }
body#cart .cart-summary__value,
body#checkout .cart-summary__value { flex-shrink: 0; color: #202427; }
body#cart .cart-summary__total,
body#checkout .cart-summary__total {
  border-color: #d8dce0;
  color: #202427;
}
body#cart .cart-summary__actions .btn-primary {
  --bs-btn-color: #202427;
  --bs-btn-bg: #ffd400;
  --bs-btn-border-color: #ffd400;
  min-height: 48px;
  border-color: #ffd400;
  border-radius: 6px;
  background-color: #ffd400;
  color: #202427;
  font-weight: 700;
}
body#cart .cart-summary__actions .btn-primary:focus-visible {
  outline: 2px solid #202427;
  outline-offset: 3px;
  box-shadow: none;
}
body#cart .cart-grid__aside-wrapper > hr,
body#cart .cart-grid__aside-wrapper .sf-trust__item + .sf-trust__item,
body#checkout .sf-trust__item + .sf-trust__item { border-color: #d8dce0; }

/* L'accordéon conserve ses fonctions, avec les couleurs de la charte. */
body#checkout .checkout__summary-accordion-item {
  border: 0;
  background: transparent;
  color: #202427;
}
body#checkout .checkout__summary-accordion-header .accordion-button {
  padding: 0 0 16px;
  border-bottom: 1px solid #d8dce0;
  border-radius: 0;
  background: transparent;
  color: #202427;
  box-shadow: none;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.35;
}
body#checkout .checkout__summary-accordion-header .accordion-button::after {
  filter: grayscale(1);
}
body#checkout .checkout__summary-accordion-header .accordion-button:focus-visible {
  outline: 2px solid #202427;
  outline-offset: 3px;
}
body#checkout .sf-checkout-trust { margin-top: 1rem; }
@media (max-width: 575.98px) {
  body#cart .ps-featuredproducts .module-products__buttons > .btn {
    width: 100%;
    padding-inline: 16px;
  }
  body#cart .cart-grid__aside-wrapper,
  body#checkout .checkout-grid__aside-wrapper { padding: 16px; }
}


/* SecuriForce — commande sur une page (ps_onepagecheckout), FR/NL.
   Présentation uniquement : aucune condition de validation n'est changée. */
body#checkout .one-page-checkout__title {
  color: #202427;
  font-weight: 700;
}
body#checkout .opc-address-item {
  --bs-primary-rgb: 32, 36, 39;
  --bs-primary: #202427;
  border-color: #d8dce0 !important;
  background-color: #fff;
  color: #202427;
}
body#checkout .opc-address-item.selected {
  border-color: #202427 !important;
  background-color: #f5f6f8;
  box-shadow: inset 4px 0 #ffd400;
}
body#checkout .delivery-option__label {
  color: #202427;
}
body#checkout .delivery-option__item:has(input[name='delivery_option']:checked) {
  background-color: #f5f6f8;
  box-shadow: inset 4px 0 #ffd400;
}
body#checkout #opc-payment-methods .payment-option__form-check {
  box-sizing: border-box;
  padding: 14px 14px 14px 38px;
  border: 1px solid #d8dce0;
  border-radius: 6px;
  background-color: #fff;
  color: #202427;
}
body#checkout #opc-payment-methods .payment-option__form-check:has(input:checked) {
  border-color: #202427;
  background-color: #f5f6f8;
  box-shadow: inset 4px 0 #ffd400;
}
body#checkout .checkout-grid__content .form-check-input:not(.is-invalid):not([aria-invalid='true']) {
  border-color: #a8afb5;
}
body#checkout .checkout-grid__content .form-check-input:checked:not(.is-invalid):not([aria-invalid='true']) {
  border-color: #202427 !important;
  background-color: #202427 !important;
}
body#checkout .checkout-grid__content .form-check-input:focus-visible,
body#checkout .checkout-grid__content .form-control:focus:not(.is-invalid):not([aria-invalid='true']),
body#checkout .checkout-grid__content .form-select:focus:not(.is-invalid):not([aria-invalid='true']) {
  border-color: #202427;
  outline: 2px solid #202427;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px rgba(255, 212, 0, 0.3);
}
body#checkout .step__account a.text-danger,
body#checkout .js-terms a {
  color: #202427 !important;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
body#checkout .step__account a.text-danger:hover,
body#checkout .js-terms a:hover {
  text-decoration-color: #ffd400;
}
body#checkout .step__account a.text-danger:focus-visible,
body#checkout .js-terms a:focus-visible {
  outline: 2px solid #202427;
  outline-offset: 3px;
}
body#checkout #opc-pay-button,
body#checkout #opc-form .modal .btn-primary {
  --bs-btn-color: #202427;
  --bs-btn-bg: #ffd400;
  --bs-btn-border-color: #ffd400;
  --bs-btn-hover-color: #202427;
  --bs-btn-hover-bg: #e8c100;
  --bs-btn-hover-border-color: #e8c100;
  --bs-btn-active-color: #202427;
  --bs-btn-active-bg: #e0ba00;
  --bs-btn-active-border-color: #e0ba00;
  --bs-btn-disabled-color: #202427;
  --bs-btn-disabled-bg: #ffd400;
  --bs-btn-disabled-border-color: #ffd400;
  min-height: 48px;
  padding: 12px 20px;
  border: 1px solid #ffd400 !important;
  border-radius: 6px;
  background-color: #ffd400 !important;
  color: #202427 !important;
  font-weight: 700;
  line-height: 1.4;
  white-space: normal;
}
@media (hover: hover) and (pointer: fine) {
  body#checkout #opc-pay-button:not(:disabled):not(.disabled):hover,
  body#checkout #opc-form .modal .btn-primary:not(:disabled):not(.disabled):hover {
    border-color: #e8c100 !important;
    background-color: #e8c100 !important;
  }
}
body#checkout #opc-pay-button:disabled,
body#checkout #opc-pay-button.disabled,
body#checkout #opc-form .modal .btn-primary:disabled {
  opacity: 0.55;
}
body#checkout #opc-pay-button:focus-visible,
body#checkout #opc-form .modal .btn-primary:focus-visible {
  outline: 2px solid #202427;
  outline-offset: 3px;
  box-shadow: none;
}
body#checkout .checkout-grid__aside-wrapper > .sf-trust {
  margin-top: 1rem;
  padding-top: 0.5rem;
  border-top: 1px solid #d8dce0;
}
@media (max-width: 575.98px) {
  body#checkout #opc-pay-button { padding-inline: 12px; font-size: 1rem; }
}

/* Complément : état invité, messages d'information et consentements.
   Les erreurs et avertissements conservent leurs couleurs fonctionnelles. */
body#checkout .checkout-grid__content .alert.alert-info {
  --bs-alert-color: #202427;
  --bs-alert-bg: #f5f6f8;
  --bs-alert-border-color: #d8dce0;
  --bs-alert-link-color: #202427;
  background-color: #f5f6f8;
  color: #202427;
  border-color: #d8dce0;
  border-inline-start: 4px solid #ffd400;
}
body#checkout .js-opc-contact-section a {
  --bs-primary-rgb: 32, 36, 39;
  --bs-danger-rgb: 32, 36, 39;
  --bs-link-color: #202427;
  --bs-link-color-rgb: 32, 36, 39;
  --bs-link-hover-color: #202427;
  --bs-link-hover-color-rgb: 32, 36, 39;
  color: #202427 !important;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
body#checkout .js-opc-contact-section a:hover {
  text-decoration-color: #ffd400;
  text-decoration-thickness: 2px;
}
body#checkout .js-opc-contact-section a:focus-visible {
  outline: 2px solid #202427;
  outline-offset: 3px;
}

/* Le paragraphe riche du module RGPD ne doit pas commencer une autre ligne
   après l'astérisque. La case garde son association native au libellé. */
body#checkout .js-opc-contact-section .form-check:has(> input[type='checkbox']) {
  display: grid;
  grid-template-columns: 1rem minmax(0, 1fr);
  align-items: start;
  column-gap: 8px;
  padding-inline-start: 0;
}
body#checkout .js-opc-contact-section .form-check > input[type='checkbox'] {
  grid-column: 1;
  grid-row: 1;
  float: none;
  margin: 0.25em 0 0;
}
body#checkout .js-opc-contact-section .form-check > .form-check-label {
  grid-column: 2;
  grid-row: 1;
  display: block;
  min-width: 0;
  margin: 0;
  line-height: 1.5;
}
body#checkout .js-opc-contact-section .form-check-label p {
  display: inline;
  margin: 0;
  padding: 0;
}
body#checkout .js-opc-contact-section .form-check-label.required::before {
  margin-inline-end: 4px;
  color: #202427;
}


/* SECURIFORCE — complément COMMANDE FR/NL, GSM et ordinateur.
   À ajouter TOUT EN BAS du custom.css existant. */

/* Accordéons : mêmes couleurs ouverts et fermés. */
html body#checkout .checkout-grid .accordion {
  --bs-accordion-color: #202427;
  --bs-accordion-bg: #f5f6f8;
  --bs-accordion-active-color: #202427;
  --bs-accordion-active-bg: #f5f6f8;
  --bs-accordion-btn-color: #202427;
  --bs-accordion-btn-bg: #f5f6f8;
  --bs-accordion-btn-focus-box-shadow: none;
}
html body#checkout .checkout-grid .accordion-button,
html body#checkout .checkout-grid .accordion-button:not(.collapsed) {
  color: #202427 !important;
  background-color: transparent !important;
  box-shadow: none !important;
}
html body#checkout .checkout-grid .accordion-button::after {
  filter: grayscale(1);
}
html body#checkout .checkout-grid .accordion-button:focus-visible {
  outline: 2px solid #ffd400;
  outline-offset: -2px;
}

/* Noms des produits, connexion et déconnexion. */
html body#checkout .cart-summary-product__link,
html body#checkout .js-opc-contact-section a {
  --bs-primary-rgb: 32, 36, 39;
  --bs-danger-rgb: 32, 36, 39;
  --bs-link-color-rgb: 32, 36, 39;
  --bs-link-hover-color-rgb: 32, 36, 39;
  color: #202427 !important;
}
html body#checkout .js-opc-contact-section a {
  text-decoration: underline;
  text-underline-offset: 3px;
}
html body#checkout .cart-summary-product__link:hover,
html body#checkout .js-opc-contact-section a:hover {
  text-decoration: underline;
  text-decoration-color: #ffd400;
}
html body#checkout .cart-summary-product__link:focus-visible,
html body#checkout .js-opc-contact-section a:focus-visible {
  outline: 2px solid #202427;
  outline-offset: 3px;
}

/* Le contour Bootstrap utilise cette variable, même quand sa règle
   prioritaire empêche un simple border-color de prendre effet. */
html body#checkout .opc-address-item {
  --bs-primary-rgb: 32, 36, 39;
  --bs-primary: #202427;
}
html body#checkout .opc-address-item.selected {
  --bs-border-color: #202427;
  border-color: #202427 !important;
  background-color: #f5f6f8 !important;
  box-shadow: inset 4px 0 #ffd400;
}

/* Informations de livraison et de paiement : gris, anthracite, jaune. */
html body#checkout .checkout-grid__content .alert.alert-info {
  --bs-alert-color: #202427;
  --bs-alert-bg: #f5f6f8;
  --bs-alert-border-color: #d8dce0;
  --bs-alert-link-color: #202427;
  color: #202427 !important;
  background-color: #f5f6f8 !important;
  border-color: #d8dce0 !important;
  border-inline-start: 4px solid #ffd400 !important;
}

/* Case RGPD et libellé alignés ; le paragraphe reste sur la même ligne
   que l'astérisque, puis revient naturellement à la ligne sur GSM. */
html body#checkout .js-opc-contact-section .form-check:has(> input[type='checkbox']) {
  display: grid;
  grid-template-columns: 1rem minmax(0, 1fr);
  align-items: start;
  gap: 0 8px;
  padding-inline-start: 0;
}
html body#checkout .js-opc-contact-section .form-check > input[type='checkbox'] {
  grid-column: 1;
  grid-row: 1;
  float: none;
  margin: 0.25em 0 0;
}
html body#checkout .js-opc-contact-section .form-check > .form-check-label {
  grid-column: 2;
  grid-row: 1;
  display: block;
  min-width: 0;
  margin: 0;
  line-height: 1.5;
}
html body#checkout .js-opc-contact-section .form-check-label p {
  display: inline;
  margin: 0;
  padding: 0;
}
html body#checkout .js-opc-contact-section .form-check-label.required::before {
  color: #202427;
  margin-inline-end: 4px;
}


/* END SECURIFORCE RESTAURATION ET COMMANDE 20261019 */


/* SECURIFORCE — liens de contenu harmonises, 20/10/2026, FR/NL.
   Cette regle s'applique aussi aux descriptions conservees sans grille.
   Les boutons, cartes produits et couleurs fonctionnelles restent distincts. */
body main :is(.rich-text, .rte) a[href]:not(:where(.btn, [role="button"], [class*="button"], [class*="btn"], [class*="__action"], [class*="__cta"], [style*="background"], .text-danger, .link-danger, .text-success, .link-success, .alert a, .product-miniature a)),
body main a.link-primary:not(:where(.btn, [role="button"], .text-danger, .link-danger, .text-success, .link-success, .alert a, .product-miniature a)) {
  color: #202427 !important;
  text-decoration: underline;
  text-decoration-color: currentColor;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
body main :is(.rich-text, .rte) a[href]:not(:where(.btn, [role="button"], [class*="button"], [class*="btn"], [class*="__action"], [class*="__cta"], [style*="background"], .text-danger, .link-danger, .text-success, .link-success, .alert a, .product-miniature a)):is(:hover, :focus-visible),
body main a.link-primary:not(:where(.btn, [role="button"], .text-danger, .link-danger, .text-success, .link-success, .alert a, .product-miniature a)):is(:hover, :focus-visible) {
  color: #202427 !important;
  text-decoration-color: #ffd400 !important;
  text-decoration-thickness: 2px;
}
body main :is(.rich-text, .rte) a[href]:not(:where(.btn, [role="button"], [class*="button"], [class*="btn"], [class*="__action"], [class*="__cta"], [style*="background"], .text-danger, .link-danger, .text-success, .link-success, .alert a, .product-miniature a)):focus-visible,
body main a.link-primary:not(:where(.btn, [role="button"], .text-danger, .link-danger, .text-success, .link-success, .alert a, .product-miniature a)):focus-visible {
  outline: 2px solid #202427;
  outline-offset: 3px;
}
/* Actions textuelles natives : leur fond et leur comportement sont conserves. */
body main .btn-link:not(:where(.text-danger, .link-danger, .text-success, .link-success, .alert .btn-link, .product-miniature .btn-link, .wishlist-button-add)) {
  --bs-btn-color: #202427;
  --bs-btn-hover-color: #202427;
  --bs-btn-active-color: #202427;
  --bs-btn-focus-shadow-rgb: 32, 36, 39;
}
/* Le consentement newsletter utilise deja une regle explicite au survol. */
#emailsubscription_anchor_displayFooterBefore form a:hover,
#emailsubscription_anchor_displayFooterBefore form a:focus-visible {
  color: #202427 !important;
  text-decoration-color: #ffd400 !important;
}


/* SECURIFORCE — ESPACE CLIENT — 20/10/2026
   Complément intégré au custom.css existant du thème securiforce_child.
   Même présentation FR/NL. Aucune modification des textes ou des commandes.
   Pour annuler, supprimer uniquement ce bloc entre les deux repères.
   DEBUT SF-COMPTE-20261020 */

/* Menu du compte : conserver la structure responsive du thème. */
main .account-menu__link {
  border-inline-start: 3px solid transparent;
  color: #202427;
  transition: background-color .15s ease, color .15s ease;
}
main .account-menu__link:hover,
main .account-menu__link:focus-visible {
  color: #202427 !important;
  background-color: #fff8d6;
}
main .account-menu__link--active,
main .account-menu__link[aria-current="page"] {
  color: #202427 !important;
  background-color: #fff8d6 !important;
  border-inline-start-color: #ffd400;
  font-weight: 600;
}
main .account-menu__link--signout {
  color: #202427 !important;
}
main .account-menu__link:focus-visible {
  outline: 2px solid #202427;
  outline-offset: 2px;
}

/* Périmètre : les pages montrées, le détail et le suivi des commandes.
   Les variables des boutons Bootstrap sont locales au contenu central. */
body:is(#identity, #addresses, #address, #history, #order-detail,
  #order-slip, #order-follow, #guest-tracking,
  #module-ps_emailalerts-account, #module-psgdpr-gdpr) #center-column {
  --sf-account-ink: #202427;
  --sf-account-yellow: #ffd400;
}

body:is(#identity, #addresses, #address, #history, #order-detail,
  #order-slip, #order-follow, #guest-tracking,
  #module-ps_emailalerts-account, #module-psgdpr-gdpr)
  #center-column .page-title-section {
  color: #202427;
  border-inline-start: 4px solid #ffd400;
  padding-inline-start: 14px;
  line-height: 1.25;
}

/* Actions principales : enregistrer, ajouter, suivre une commande. */
body:is(#identity, #addresses, #address, #history, #order-detail,
  #order-slip, #order-follow, #guest-tracking,
  #module-ps_emailalerts-account, #module-psgdpr-gdpr)
  #center-column .btn-primary {
  --bs-btn-color: #202427;
  --bs-btn-bg: #ffd400;
  --bs-btn-border-color: #ffd400;
  --bs-btn-hover-color: #ffd400;
  --bs-btn-hover-bg: #202427;
  --bs-btn-hover-border-color: #202427;
  --bs-btn-active-color: #ffd400;
  --bs-btn-active-bg: #202427;
  --bs-btn-active-border-color: #202427;
  --bs-btn-disabled-color: #202427;
  --bs-btn-disabled-bg: #ffd400;
  --bs-btn-disabled-border-color: #ffd400;
  color: #202427 !important;
  background-color: #ffd400 !important;
  border-color: #ffd400 !important;
  font-weight: 600;
}

/* Actions secondaires : détails, nouvelle commande, exports CSV/PDF. */
body:is(#identity, #addresses, #address, #history, #order-detail,
  #order-slip, #order-follow, #guest-tracking,
  #module-ps_emailalerts-account, #module-psgdpr-gdpr)
  #center-column :is(.btn-outline-primary, .btn-outline-tertiary) {
  --bs-btn-color: #202427;
  --bs-btn-border-color: #202427;
  --bs-btn-hover-color: #202427;
  --bs-btn-hover-bg: #ffd400;
  --bs-btn-hover-border-color: #ffd400;
  --bs-btn-active-color: #202427;
  --bs-btn-active-bg: #ffd400;
  --bs-btn-active-border-color: #ffd400;
  color: #202427 !important;
  background-color: #fff !important;
  border-color: #202427 !important;
}

body:is(#identity, #addresses, #address, #history, #order-detail,
  #order-slip, #order-follow, #guest-tracking,
  #module-ps_emailalerts-account, #module-psgdpr-gdpr)
  #center-column .btn-primary:is(:hover, :active):not(:disabled):not(.disabled) {
  color: #ffd400 !important;
  background-color: #202427 !important;
  border-color: #202427 !important;
}
body:is(#identity, #addresses, #address, #history, #order-detail,
  #order-slip, #order-follow, #guest-tracking,
  #module-ps_emailalerts-account, #module-psgdpr-gdpr)
  #center-column :is(.btn-outline-primary, .btn-outline-tertiary):is(:hover, :active):not(:disabled):not(.disabled) {
  color: #202427 !important;
  background-color: #ffd400 !important;
  border-color: #ffd400 !important;
}
body:is(#identity, #addresses, #address, #history, #order-detail,
  #order-slip, #order-follow, #guest-tracking,
  #module-ps_emailalerts-account, #module-psgdpr-gdpr)
  #center-column .btn:focus-visible {
  outline: 2px solid #202427;
  outline-offset: 3px;
  box-shadow: 0 0 0 4px #fff8d6 !important;
}

/* Boutons œil : anthracite, puis jaune au survol. */
#identity #content button[data-ps-action="toggle-password"] {
  color: #fff !important;
  background-color: #202427 !important;
  border-color: #202427 !important;
}
#identity #content button[data-ps-action="toggle-password"]:is(:hover, :active) {
  color: #202427 !important;
  background-color: #ffd400 !important;
  border-color: #ffd400 !important;
}

/* Champs : focus visible, sans masquer les erreurs de validation. */
body:is(#identity, #address, #guest-tracking) #content
  :is(.form-control, .form-select):focus:not(.is-invalid):not([aria-invalid="true"]) {
  border-color: #202427;
  box-shadow: 0 0 0 3px rgb(255 212 0 / 25%);
}
body:is(#identity, #address, #guest-tracking) #content .form-check-input:checked {
  background-color: #202427;
  border-color: #202427;
}
body:is(#identity, #address, #guest-tracking) #content .form-check-input:focus {
  box-shadow: 0 0 0 3px rgb(255 212 0 / 25%);
}

/* Informations neutres : remplacer les encadrés bleus uniquement. */
body:is(#identity, #addresses, #address, #history, #order-detail,
  #order-slip, #order-follow, #guest-tracking,
  #module-ps_emailalerts-account, #module-psgdpr-gdpr) #content .alert-info {
  --bs-alert-color: #202427;
  --bs-alert-bg: #f5f6f7;
  --bs-alert-border-color: #e0e3e5;
  --bs-alert-link-color: #202427;
  color: #202427;
  background-color: #f5f6f7;
  border-color: #e0e3e5;
  border-inline-start: 4px solid #ffd400;
}

/* Historique : boutons lisibles et espacés, structure mobile native. */
#history .order-history__header {
  color: #202427;
  background-color: #f5f6f7;
}
#history .order-history__cell--actions .btn {
  min-height: 36px;
  padding: 7px 10px;
  line-height: 1.35;
  font-weight: 600;
  white-space: normal;
}
#history .order-history__cell--actions .btn + .btn {
  margin-top: 6px;
}
/* Couleur d'attente de virement observée sur la boutique.
   Les autres états conservent leur propre couleur fonctionnelle. */
#history .order-history__status[style*="#34209E" i] {
  color: #202427 !important;
  background-color: #fff3b0 !important;
  border: 1px solid #e3cf64;
  padding: 6px 8px;
  line-height: 1.3;
}

/* Adresses : bordure discrète ; rouge conservé pour Supprimer. */
#addresses #content .address-card {
  border-color: #d9dde0;
}
#addresses #content .address-card--add-address:is(:hover, :focus-visible) {
  color: #202427;
  border-color: #202427;
  background-color: #fffbea;
}
#addresses #content .address-card__edit {
  color: #202427;
  text-decoration: underline;
  text-underline-offset: 3px;
}
#addresses #content .address-card__delete {
  color: #e30613;
}

/* FIN SF-COMPTE-20261020 */

/* SECURIFORCE — Référence des articles sur les cartes, 2026-10-21 */
.product-miniature .product-miniature__reference {
  display: block;
  min-height: 1.4em;
  margin: 0.25rem 0 0.5rem;
  color: #5f666b;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.product-miniature .product-miniature__reference-label {
  white-space: nowrap;
}


/* SF-SEPARATEUR-GARDIENNAGE-20261021 — ordinateur uniquement */
@media (min-width: 1200px) {
  #top-menu > li[data-id="cms-page-9"] {
    position: relative;
    padding-right: 16px !important;
    margin-right: 16px !important;
  }

  #top-menu > li[data-id="cms-page-9"]::after {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 20px;
    background-color: #c5c9cd;
    pointer-events: none;
  }
}


/* SF-MENU-COMPACT-20261021 — conserve les sept liens sur ecran moyen */
@media (min-width: 1200px) and (max-width: 1399.98px) {
  #header #top-menu {
    column-gap: 6px !important;
  }

  #header #top-menu > li[data-id="cms-page-9"] {
    padding-right: 10px !important;
    margin-right: 6px !important;
  }

  #header #top-menu > li > .ps-mainmenu__tree-item-wrapper > .ps-mainmenu__tree-link {
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
}


/* SF-AJOUT-PANIER-JAUNE-V2-20261022 — bouton principal des fiches produits */
html body#product #add-to-cart-or-refresh .product__add-to-cart-button {
  --bs-btn-color: #202427;
  --bs-btn-bg: #ffd400;
  --bs-btn-border-color: #ffd400;
  --bs-btn-hover-color: #202427;
  --bs-btn-hover-bg: #e8c100;
  --bs-btn-hover-border-color: #e8c100;
  --bs-btn-active-color: #202427;
  --bs-btn-active-bg: #e0ba00;
  --bs-btn-active-border-color: #e0ba00;
  --bs-btn-focus-shadow-rgb: 32, 36, 39;
  --bs-btn-disabled-color: #202427;
  --bs-btn-disabled-bg: #dfe2e4;
  --bs-btn-disabled-border-color: #dfe2e4;
  background-color: #ffd400 !important;
  border-color: #ffd400 !important;
  color: #202427 !important;
  -webkit-text-fill-color: #202427 !important;
  font-weight: 700;
}

@media (hover: hover) {
  html body#product #add-to-cart-or-refresh .product__add-to-cart-button:not(:disabled):not(.disabled):hover {
    background-color: #e8c100 !important;
    border-color: #e8c100 !important;
  }
}

html body#product #add-to-cart-or-refresh .product__add-to-cart-button:not(:disabled):not(.disabled):active {
  background-color: #e0ba00 !important;
  border-color: #e0ba00 !important;
}

html body#product #add-to-cart-or-refresh .product__add-to-cart-button:focus-visible {
  outline: 2px solid #202427;
  outline-offset: 3px;
  box-shadow: none;
}

html body#product #add-to-cart-or-refresh .product__add-to-cart-button:disabled,
html body#product #add-to-cart-or-refresh .product__add-to-cart-button.disabled {
  background-color: #dfe2e4 !important;
  border-color: #dfe2e4 !important;
  color: #202427 !important;
}

html body#product #add-to-cart-or-refresh .product__add-to-cart-button :is(i, svg, .material-icons) {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}
