/* ========================================================================== 
   Coformex / Plan-Your-Safety — SHOP child theme V2.2.1
   File: assets/css/pys-brand-v2-2-1.css
   Parent: Hummingbird / PrestaShop 9
   Scope: visual layer only. No cart/checkout override. No head.tpl override.
   Built from the real Hummingbird header/menu HTML observed on SHOP.
   ========================================================================== */

:root {
  --pys-blue-night: #071f36;
  --pys-blue-deep: #0b3558;
  --pys-blue-line: #08263f;
  --pys-cyan: #27b7d7;
  --pys-orange: #f08a24;
  --pys-white: #ffffff;
  --pys-soft: #f5f8fb;
  --pys-border: #dbe5ed;
  --pys-text: #172536;
  --pys-muted: #5c6b78;
  --pys-radius: 14px;
  --pys-shadow: 0 12px 30px rgba(7, 31, 54, 0.16);
}

html,
body {
  background: var(--pys-white);
  color: var(--pys-text);
}

body,
body.pys-coformex-shop-v221 {
  font-family: Candara, "Segoe UI", Arial, sans-serif;
}

h1, h2, h3, h4,
.h1, .h2, .h3, .h4,
.page-title,
.product-title,
.block-category h1 {
  color: var(--pys-blue-night);
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* --------------------------------------------------------------------------
   Header structure from Hummingbird
   Real blocks: .header-top, .header-bottom, .main-menu, .menu-container.
   -------------------------------------------------------------------------- */

#header {
  background: var(--pys-white) !important;
  border: 0 !important;
  box-shadow: 0 4px 18px rgba(7, 31, 54, 0.08);
  position: relative;
  z-index: 50;
}

#header .header__banner {
  display: none !important;
}

/* Top utility bar: must be white, not blue. */
#header .header-top {
  background: var(--pys-white) !important;
  color: var(--pys-text) !important;
  border-bottom: 1px solid rgba(7, 31, 54, 0.08);
  min-height: 48px;
}

#header .header-top .container-md,
#header .header-top-desktop {
  min-height: 48px;
  align-items: center;
}

#header .header-top a,
#header .header-top .contact-link a,
#header .header-top .header-block__action-btn,
#header .header-top .header-block__title,
#header .header-top .material-icons {
  color: var(--pys-text) !important;
  text-decoration: none;
}

#header .header-top a:hover,
#header .header-top .header-block__action-btn:hover {
  color: var(--pys-blue-deep) !important;
}

#header .header-top__right {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.45rem;
}

#header .header-top .form-select {
  border: 1px solid var(--pys-border);
  border-radius: 10px;
  color: var(--pys-text);
  background-color: var(--pys-white);
  min-height: 36px;
}

#header .header-top .header-block__badge {
  background: var(--pys-orange) !important;
  color: var(--pys-white) !important;
  border-radius: 999px;
  min-width: 1.45rem;
  height: 1.45rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  margin-left: .25rem;
}

/* Brand + menu line: this is the blue line requested at logo/menu level. */
#header .header-bottom {
  background: var(--pys-blue-night) !important;
  color: var(--pys-white) !important;
  border-bottom: 4px solid var(--pys-orange) !important;
}

#header .header-bottom__container,
#header .header-bottom__row {
  min-height: 78px;
}

#header .header-bottom__row {
  align-items: stretch !important;
}

#header .navbar-brand {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  background: var(--pys-white);
  border-radius: 0 0 12px 12px;
  padding: 8px 14px;
  min-height: 72px;
  box-shadow: 0 8px 18px rgba(7, 31, 54, 0.16);
}

#header .navbar-brand img,
#header img.logo {
  max-height: 58px !important;
  width: auto !important;
  object-fit: contain;
}

/* Search can disappear for the current SHOP MVP. */
#header #_desktop_search,
#header .search__mobile,
#header .search-widgets,
#header .search__offcanvas {
  display: none !important;
}

/* --------------------------------------------------------------------------
   Desktop dynamic menu
   Real HTML: #top-menu > li.js-menu-item-lvl-0 > a + .menu-container.
   -------------------------------------------------------------------------- */

@media (min-width: 1200px) {
  #header .main-menu {
    min-height: 78px;
    align-items: stretch !important;
  }

  #header .js-menu-desktop,
  #header #top-menu,
  #header .main-menu__tree {
    height: 100%;
  }

  #header #top-menu,
  #header .main-menu__tree {
    display: flex !important;
    align-items: stretch;
    gap: 0;
    margin: 0;
    padding: 0 0 0 1.25rem;
    list-style: none;
  }

  #header .main-menu__tree__item,
  #header .js-menu-item-lvl-0 {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    height: 100%;
  }

  #header .main-menu__tree__item > .main-menu__tree__link,
  #header .js-menu-item-lvl-0 > .main-menu__tree__link {
    color: var(--pys-white) !important;
    display: flex;
    align-items: center;
    height: 100%;
    padding: 0 1.05rem;
    text-decoration: none;
    font-weight: 650;
    letter-spacing: .01em;
    white-space: nowrap;
    border-left: 1px solid rgba(255,255,255,0.06);
  }

  #header .main-menu__tree__item.current > .main-menu__tree__link,
  #header .main-menu__tree__item:hover > .main-menu__tree__link,
  #header .main-menu__tree__item:focus-within > .main-menu__tree__link {
    background: rgba(255,255,255,0.09);
    color: var(--pys-white) !important;
  }

  #header .main-menu__tree__link.dropdown-toggle::after {
    margin-left: .45rem;
    color: var(--pys-orange);
  }

  /* Dropdown: compact white window under selected item with orange left line. */
  #header .js-menu-item-lvl-0 > .menu-container {
    display: block !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    min-width: 310px;
    max-width: min(460px, 90vw);
    width: max-content;
    background: var(--pys-white) !important;
    color: var(--pys-text) !important;
    border: 1px solid var(--pys-border) !important;
    border-left: 5px solid var(--pys-orange) !important;
    border-radius: 0 0 14px 14px !important;
    box-shadow: var(--pys-shadow) !important;
    padding: .75rem 0 !important;
    margin: 0 !important;
    z-index: 1050;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    pointer-events: none;
    transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
  }

  #header .js-menu-item-lvl-0:hover > .menu-container,
  #header .js-menu-item-lvl-0:focus-within > .menu-container {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }

  #header .js-menu-item-lvl-0:nth-last-child(-n+2) > .menu-container {
    left: auto !important;
    right: 0 !important;
  }

  #header .menu-container > .container {
    max-width: none !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  #header .menu-container ul,
  #header .menu-container .row,
  #header .menu-container .row-cols-4 {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
  }

  #header .menu-container li,
  #header .menu-container .row > * {
    width: 100% !important;
    max-width: none !important;
    flex: none !important;
    padding: 0 !important;
  }

  #header .menu-container .dropdown-item,
  #header .menu-container .main-menu__tree__link[data-depth="1"] {
    display: block;
    padding: .62rem 1.2rem .62rem 1rem !important;
    color: var(--pys-blue-night) !important;
    background: transparent !important;
    text-decoration: none;
    line-height: 1.25;
    white-space: nowrap;
    font-weight: 520;
  }

  #header .menu-container .dropdown-item:hover,
  #header .menu-container .main-menu__tree__link[data-depth="1"]:hover,
  #header .menu-container .main-menu__tree__link[data-depth="1"]:focus {
    background: var(--pys-soft) !important;
    color: var(--pys-blue-deep) !important;
  }
}

/* --------------------------------------------------------------------------
   Header blocks / cart / account. Visual only; do not alter cart behavior.
   -------------------------------------------------------------------------- */

#header .header-block,
#header .header-block__action-btn {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

#header .header-bottom .header-block__action-btn,
#header .header-bottom .header-block__title,
#header .header-bottom .header-block__icon,
#header .header-bottom .material-icons {
  color: var(--pys-white) !important;
  text-decoration: none;
}

#header .header-bottom .header-block__badge {
  background: var(--pys-orange) !important;
  color: var(--pys-white) !important;
}

/* --------------------------------------------------------------------------
   Mobile header and offcanvas menu
   -------------------------------------------------------------------------- */

@media (max-width: 1199.98px) {
  #header .header-top {
    display: none !important;
  }

  #header .header-bottom {
    background: var(--pys-blue-night) !important;
    border-bottom: 4px solid var(--pys-orange) !important;
  }

  #header .header-bottom__container,
  #header .header-bottom__row {
    min-height: 72px;
  }

  #header .navbar-brand {
    min-height: 58px;
    padding: 6px 10px;
    border-radius: 10px;
    box-shadow: none;
  }

  #header .navbar-brand img,
  #header img.logo {
    max-height: 46px !important;
  }

  #header .main-menu {
    order: 10;
  }

  #header .main-menu .header-block__action-btn,
  #header #_mobile_user_info .header-block__action-btn,
  #header #_mobile_cart .header-block__action-btn {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.10);
    color: var(--pys-white) !important;
  }

  #header .main-menu .material-icons,
  #header #_mobile_user_info .material-icons,
  #header #_mobile_cart .material-icons {
    color: var(--pys-white) !important;
    font-size: 26px;
  }

  #header #_mobile_cart .header-block__badge {
    position: absolute;
    transform: translate(14px, -15px);
    background: var(--pys-orange) !important;
    color: var(--pys-white) !important;
  }

  #mobileMenu.main-menu__offcanvas,
  #header .main-menu__offcanvas {
    background: var(--pys-white) !important;
    color: var(--pys-text) !important;
    width: min(88vw, 390px) !important;
    border-right: 4px solid var(--pys-orange);
  }

  #mobileMenu .offcanvas-header {
    min-height: 64px;
    background: var(--pys-blue-night);
    color: var(--pys-white);
    border-bottom: 4px solid var(--pys-orange);
  }

  #mobileMenu .btn-close {
    filter: invert(1) grayscale(1) brightness(2);
  }

  #mobileMenu .main-menu__back-button .btn,
  #mobileMenu .main-menu__back-button .material-icons,
  #mobileMenu .js-menu-back-title {
    color: var(--pys-white) !important;
  }

  #mobileMenu .main-menu__mobile {
    padding: .65rem 0;
  }

  #mobileMenu .menu__list {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  #mobileMenu .menu__list > li {
    display: flex;
    align-items: center;
    min-height: 48px;
    border-bottom: 1px solid rgba(7,31,54,0.08);
  }

  #mobileMenu .menu__link {
    color: var(--pys-blue-night) !important;
    text-decoration: none;
    flex: 1;
    display: block;
    padding: .85rem 1rem;
    font-weight: 600;
    line-height: 1.25;
  }

  #mobileMenu .menu__link:hover,
  #mobileMenu .menu__link:focus {
    background: var(--pys-soft);
    color: var(--pys-blue-deep) !important;
  }

  #mobileMenu .main-menu__toggle-child {
    width: 48px;
    min-width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--pys-orange);
    cursor: pointer;
  }

  #mobileMenu .main-menu__toggle-child .material-icons {
    color: var(--pys-orange) !important;
  }

  #mobileMenu .main-menu__title {
    display: block !important;
    width: 100%;
    padding: 1rem 1rem .5rem;
    margin: 0;
    color: var(--pys-blue-night);
    font-size: 1.1rem;
    font-weight: 700;
    border-bottom: 2px solid var(--pys-orange);
  }

  #mobileMenu .js-menu-child {
    display: none;
  }

  #mobileMenu .js-menu-child.pys-menu-active {
    display: block;
  }

  #mobileMenu .js-menu-current.pys-menu-hidden {
    display: none;
  }

  #mobileMenu .main-menu__additionnals {
    padding: 1rem;
    border-top: 1px solid var(--pys-border);
    background: var(--pys-soft);
  }
}

/* --------------------------------------------------------------------------
   Breadcrumb and category content
   -------------------------------------------------------------------------- */

.breadcrumb__wrapper {
  background: linear-gradient(180deg, #f8fafc 0%, #eef4f8 100%);
  border-bottom: 1px solid rgba(7,31,54,0.08);
}

.breadcrumb-link,
.breadcrumb a {
  color: var(--pys-blue-deep) !important;
  text-decoration: none;
}

.block-category,
.category-cover,
#js-product-list-header {
  background: var(--pys-white);
}

.category-description,
.block-category .category-description,
.block-category__description {
  color: var(--pys-muted);
  max-width: 980px;
  font-size: 1rem;
  line-height: 1.45;
}

/* --------------------------------------------------------------------------
   Product cards and buttons. Visual only.
   -------------------------------------------------------------------------- */

.product-miniature,
.js-product-miniature,
.product {
  border-radius: 18px;
}

.product-miniature .thumbnail-container,
.product-miniature .product-description,
.js-product-miniature .thumbnail-container,
.js-product-miniature .product-description {
  background: var(--pys-white);
  border-radius: 18px;
}

.product-miniature,
.js-product-miniature {
  border: 1px solid rgba(39,183,215,0.35);
  box-shadow: 0 10px 24px rgba(7,31,54,0.07);
  transition: transform .14s ease, box-shadow .14s ease;
}

.product-miniature:hover,
.js-product-miniature:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 32px rgba(7,31,54,0.12);
}

.product-title a,
.product-miniature .product-title a {
  color: var(--pys-blue-deep) !important;
  text-decoration: none;
}

.product-price,
.current-price,
.price {
  color: var(--pys-text) !important;
  font-weight: 800;
}

.btn-primary,
.add-to-cart,
.product-add-to-cart .btn,
.product-actions .btn-primary,
.cart-detailed-actions .btn-primary {
  background: var(--pys-orange) !important;
  border-color: var(--pys-orange) !important;
  color: var(--pys-white) !important;
  border-radius: 999px;
  font-weight: 700;
  box-shadow: 0 8px 16px rgba(240,138,36,0.25);
}

.btn-primary:hover,
.add-to-cart:hover,
.product-add-to-cart .btn:hover,
.product-actions .btn-primary:hover,
.cart-detailed-actions .btn-primary:hover {
  filter: brightness(.96);
}

/* Quantity controls on product cards: preserve native behavior. */
.product-miniature .qty,
.product-miniature input[type="number"],
.product-miniature .input-group {
  border-radius: 999px;
}
/* ==========================================================================
   SHOP PYS — Product card link color refinement — HF3B
   Objectif : remplacer le bleu lien HTML standard dans les vignettes produits
   ========================================================================== */

body#index .product-miniature a,
body#index .product-miniature h2 a,
body#index .product-miniature h3 a,
body#index .product-miniature .h3 a,
body#index .product-miniature .product-title a,
body#index .product-miniature .product-name a,
body#index .product-miniature .product-description a,
body#index .product-miniature__title a,
body#index .js-product-miniature a,
body#index article.product-miniature a,

body#category .product-miniature a,
body#category .product-miniature h2 a,
body#category .product-miniature h3 a,
body#category .product-miniature .h3 a,
body#category .product-miniature .product-title a,
body#category .product-miniature .product-name a,
body#category .product-miniature .product-description a,
body#category .product-miniature__title a,
body#category .js-product-miniature a,
body#category article.product-miniature a,

body .products .product-miniature a,
body .featured-products .product-miniature a,
body #js-product-list .product-miniature a,
body #products .product-miniature a {
  color: #062b49 !important;
  text-decoration: none !important;
}

body#index .product-miniature a:hover,
body#category .product-miniature a:hover,
body .products .product-miniature a:hover,
body .featured-products .product-miniature a:hover,
body #js-product-list .product-miniature a:hover,
body #products .product-miniature a:hover {
  color: #f28c1b !important;
  text-decoration: none !important;
}
/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

#footer,
.footer-container {
  background: #f8fafc;
  border-top: 1px solid rgba(7,31,54,0.08);
  color: var(--pys-text);
}

#footer a,
.footer-container a {
  color: var(--pys-blue-deep);
  text-decoration: none;
}

#footer a:hover,
.footer-container a:hover {
  color: var(--pys-orange);
}


/* ========================================================================== 
   V2.2.1 — Corrections ciblées après test réel
   Objectifs : logo sur fond bleu, sous-catégories non rappelées dans la page,
   bloc catégorie adouci, menu mobile avec sous-rubriques visibles directement.
   ========================================================================== */

/* Logo: ne plus créer de cartouche blanc dans la ligne bleue. */
#header .header-bottom .logo,
#header .header-bottom .navbar-brand {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

#header .header-bottom .navbar-brand {
  padding: 6px 12px !important;
  min-height: 72px;
}

#header .header-bottom .navbar-brand img,
#header .header-bottom img.logo {
  background: transparent !important;
  filter: none;
}

/* Bloc titre / description des rubriques : fond doux, sans pousser trop bas. */
body.page-category #js-product-list-header,
body.page-category .block-category {
  background: linear-gradient(135deg, #eef8fb 0%, #ffffff 58%, #fff6ec 100%) !important;
  border: 1px solid rgba(39, 183, 215, 0.22) !important;
  border-left: 5px solid var(--pys-orange) !important;
  border-radius: 18px !important;
  padding: clamp(1.1rem, 2vw, 1.7rem) !important;
  margin: 1rem 0 1.25rem !important;
  box-shadow: 0 10px 26px rgba(7,31,54,0.06);
}

body.page-category #js-product-list-header h1,
body.page-category .block-category h1,
body.page-category .h1 {
  margin-bottom: .65rem !important;
}

body.page-category .category-description,
body.page-category .block-category .category-description,
body.page-category .block-category__description {
  margin-bottom: 0 !important;
  color: var(--pys-text) !important;
}

/* Ne pas afficher le rappel des sous-catégories dans la page catégorie.
   Le menu dynamique garde les sous-rubriques ; on masque seulement le contenu page. */
main#wrapper #subcategories,
main#wrapper .subcategories,
main#wrapper .subcategory-list,
main#wrapper .category-subcategories,
main#wrapper .category__subcategories,
main#wrapper .category-miniature,
main#wrapper .category-miniature-list,
main#wrapper .category-miniature-grid,
main#wrapper .subcategories-list {
  display: none !important;
}

/* Mobile: afficher les sous-rubriques directement sous chaque rubrique parente. */
@media (max-width: 1199.98px) {
  #header .header-bottom .navbar-brand {
    background: transparent !important;
    padding: 4px 8px !important;
  }

  #mobileMenu .main-menu__toggle-child,
  #mobileMenu .main-menu__back-button {
    display: none !important;
  }

  #mobileMenu .menu__list > li.menu--childrens,
  #mobileMenu .menu__list > li.category {
    display: block !important;
  }

  #mobileMenu .menu__list > li.menu--childrens > .menu__link,
  #mobileMenu .menu__list > li.category > .menu__link {
    display: block !important;
    width: 100% !important;
    font-weight: 700;
  }

  #mobileMenu .js-menu-child {
    display: none !important;
  }

  #mobileMenu .pys-mobile-inline-submenu {
    display: block;
    margin: 0 .85rem .85rem 1.15rem;
    padding: .35rem 0 .35rem .75rem;
    list-style: none;
    background: #f7fbfd;
    border-left: 4px solid var(--pys-orange);
    border-radius: 0 10px 10px 0;
  }

  #mobileMenu .pys-mobile-inline-submenu li {
    display: block !important;
    min-height: auto !important;
    border-bottom: 1px solid rgba(7,31,54,0.06) !important;
  }

  #mobileMenu .pys-mobile-inline-submenu li:last-child {
    border-bottom: 0 !important;
  }

  #mobileMenu .pys-mobile-inline-submenu a {
    display: block;
    padding: .58rem .7rem !important;
    color: var(--pys-blue-deep) !important;
    text-decoration: none;
    font-weight: 520 !important;
    line-height: 1.25;
  }

  #mobileMenu .pys-mobile-inline-submenu a:hover,
  #mobileMenu .pys-mobile-inline-submenu a:focus {
    background: #eef8fb !important;
    color: var(--pys-blue-night) !important;
  }
}


/* ========================================================================== 
   V2.2.1 — Correction bloc titre / description catégorie
   Objectif : supprimer l'effet double cadre imbriqué observé sur les pages
   catégorie/sous-catégorie. Un seul bloc éditorial doux doit rester visible.
   ========================================================================== */

body.page-category #js-product-list-header {
  background: transparent !important;
  border: 0 !important;
  border-left: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 1rem 0 1.25rem !important;
}

body.page-category #js-product-list-header > .block-category,
body.page-category .block-category:not(#js-product-list-header) {
  background: linear-gradient(135deg, #eef8fb 0%, #ffffff 66%, #fff7ef 100%) !important;
  border: 1px solid rgba(39, 183, 215, 0.28) !important;
  border-left: 5px solid var(--pys-orange) !important;
  border-radius: 18px !important;
  padding: clamp(1rem, 1.7vw, 1.45rem) clamp(1.15rem, 2vw, 1.8rem) !important;
  margin: 0 0 1.25rem !important;
  box-shadow: 0 10px 24px rgba(7,31,54,0.055) !important;
}

body.page-category #js-product-list-header > .block-category h1,
body.page-category .block-category:not(#js-product-list-header) h1 {
  margin: 0 0 .45rem !important;
  color: var(--pys-blue-night) !important;
}

body.page-category #js-product-list-header > .block-category .category-description,
body.page-category .block-category:not(#js-product-list-header) .category-description,
body.page-category #js-product-list-header > .block-category .block-category__description,
body.page-category .block-category:not(#js-product-list-header) .block-category__description {
  margin: 0 !important;
  max-width: 1120px !important;
  color: var(--pys-text) !important;
  line-height: 1.42 !important;
}

/* Cas où Hummingbird injecte directement le titre/description dans le header sans .block-category enfant. */
body.page-category #js-product-list-header:not(:has(.block-category)) {
  background: linear-gradient(135deg, #eef8fb 0%, #ffffff 66%, #fff7ef 100%) !important;
  border: 1px solid rgba(39, 183, 215, 0.28) !important;
  border-left: 5px solid var(--pys-orange) !important;
  border-radius: 18px !important;
  padding: clamp(1rem, 1.7vw, 1.45rem) clamp(1.15rem, 2vw, 1.8rem) !important;
  box-shadow: 0 10px 24px rgba(7,31,54,0.055) !important;
}
/* =========================================================
   PYS / Coformex — Product service cleanup
   Masquer les détails techniques inutiles pour les prestations
   ========================================================= */

/* Masque le contenu technique classique */
body#product #product-details,
body#product .product-details,
body#product .js-product-details,
body#product .product-features,
body#product .product-quantities,
body#product .product-reference,
body#product .product-condition,
body#product .product-manufacturer,
body#product .product-availability,
body#product #product-availability,
body#product .product-minimal-quantity {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Masque les boutons / liens d’accordéon vers détails produit */
body#product [href="#product-details"],
body#product [data-target="#product-details"],
body#product [data-bs-target="#product-details"],
body#product [aria-controls="product-details"],
body#product button[data-bs-target="#product-details"],
body#product button[aria-controls="product-details"] {
  display: none !important;
}

/* Masque le bloc parent de l’accordéon si le navigateur supporte :has() */
body#product .accordion-item:has(#product-details),
body#product .accordion-item:has([data-bs-target="#product-details"]),
body#product .accordion-item:has([aria-controls="product-details"]),
body#product .accordion:has(#product-details) {
  display: none !important;
}

/* Sécurité : masque les onglets détails produit si affichés en tabs */
body#product .tabs .nav-link[href="#product-details"],
body#product .tabs .nav-item a[href="#product-details"],
body#product .product-tabs a[href="#product-details"] {
  display: none !important;
}


/* =========================================================
   PYS / Coformex — Masquer accordéon "Détails du produit"
   Produits de service / packs / missions
   ========================================================= */

body#product div#product-details.info.js-product-details.accordion-item,
body#product #product-details,
body#product #product-details-heading,
body#product #product-details-collapse,
body#product .product__details,
body#product .product__details .detail,
body#product .product__details .detail__left,
body#product .product__details .detail__right {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  max-height: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Sécurité : masque le bouton d’accordéon par son texte technique */
body#product button[data-bs-target="#product-details-collapse"],
body#product button[aria-controls="product-details-collapse"] {
  display: none !important;
  visibility: hidden !important;
}

/* Sécurité : masque la ligne stock */
body#product span[data-stock],
body#product span[data-allow-oosp],
body#product .detail__title {
  display: none !important;
  visibility: hidden !important;
}
/* ========================================================================== 
   V2.2.1 — Footer SHOP aligné Plan-Your-Safety + accueil SHOP
   Objectif : harmoniser le footer avec PYS, sans toucher au panier/checkout.
   ========================================================================== */

/* Footer custom PYS / Coformex */
#footer.pys-shop-footer-wrapper,
footer#footer.pys-shop-footer-wrapper {
  background: #ffffff !important;
  border-top: 0 !important;
  color: var(--pys-text) !important;
  margin-top: 3rem;
}

.pys-shop-footer {
  position: relative;
  background: #ffffff;
  color: var(--pys-text);
  padding: 3.1rem 0 1.5rem;
  border-top: 1px solid rgba(7,31,54,0.08);
}

.pys-shop-footer::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 5px;
  background: linear-gradient(90deg, var(--pys-cyan) 0%, var(--pys-cyan) 72%, var(--pys-orange) 72%, var(--pys-orange) 100%);
}

.pys-shop-footer a {
  color: var(--pys-blue-deep) !important;
  text-decoration: none !important;
}

.pys-shop-footer a:hover,
.pys-shop-footer a:focus {
  color: var(--pys-orange) !important;
  text-decoration: none !important;
}

.pys-shop-footer__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 2.2rem;
}

.pys-shop-footer__brand {
  display: flex;
  align-items: center;
  gap: 1.35rem;
  max-width: 740px;
}

.pys-shop-footer__logo {
  width: 92px;
  min-width: 92px;
  height: auto;
  object-fit: contain;
}

.pys-shop-footer__title {
  margin: 0 0 .35rem;
  font-size: clamp(1.35rem, 2vw, 1.9rem);
  line-height: 1.1;
  color: var(--pys-blue-night);
  font-weight: 800;
}

.pys-shop-footer__text {
  margin: 0;
  color: #405164;
  font-size: 1.02rem;
  line-height: 1.45;
}

.pys-shop-footer__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .45rem 1.25rem;
  border-radius: 999px;
  border: 1px solid rgba(39,183,215,.48);
  background: #eefaff;
  color: var(--pys-blue-deep);
  font-weight: 750;
  white-space: nowrap;
  box-shadow: 0 6px 18px rgba(7,31,54,.05);
}

.pys-shop-footer__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.45rem;
  margin-bottom: 2rem;
}

.pys-shop-footer__card {
  min-height: 190px;
  border: 1px solid rgba(7,31,54,0.12);
  border-radius: 18px;
  background: linear-gradient(135deg, #ffffff 0%, #f8fbfd 100%);
  padding: 1.35rem 1.55rem;
  box-shadow: 0 10px 24px rgba(7,31,54,0.045);
}

.pys-shop-footer__card h3 {
  margin: 0 0 .85rem;
  font-size: 1.05rem;
  line-height: 1.2;
  color: var(--pys-blue-night);
  font-weight: 800;
}

.pys-shop-footer__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.pys-shop-footer__list li + li {
  margin-top: .42rem;
}

.pys-shop-footer__list a {
  font-size: 1rem;
  line-height: 1.25;
}

.pys-shop-footer__cta-text {
  color: #405164;
  line-height: 1.42;
  margin: 0 0 1.2rem;
}

.pys-shop-footer__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: .65rem 1rem;
  border: 1px solid var(--pys-orange);
  border-radius: 12px;
  background: #fff8f1;
  color: var(--pys-blue-night) !important;
  font-weight: 800;
  box-shadow: 0 8px 18px rgba(240,138,36,.12);
}

.pys-shop-footer__button:hover,
.pys-shop-footer__button:focus {
  background: var(--pys-orange) !important;
  color: #ffffff !important;
}

.pys-shop-footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(7,31,54,0.12);
  color: #445466;
}

.pys-shop-footer__legal {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .55rem .75rem;
  justify-content: flex-end;
}

.pys-shop-footer__dot {
  color: #7b8794;
}

@media (max-width: 991.98px) {
  .pys-shop-footer {
    padding-top: 2.35rem;
  }

  .pys-shop-footer__top {
    display: block;
  }

  .pys-shop-footer__brand {
    margin-bottom: 1.15rem;
  }

  .pys-shop-footer__badge {
    white-space: normal;
    text-align: center;
  }

  .pys-shop-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pys-shop-footer__bottom {
    display: block;
  }

  .pys-shop-footer__legal {
    justify-content: flex-start;
    margin-top: .75rem;
  }
}

@media (max-width: 575.98px) {
  .pys-shop-footer__brand {
    align-items: flex-start;
  }

  .pys-shop-footer__logo {
    width: 68px;
    min-width: 68px;
  }

  .pys-shop-footer__grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .pys-shop-footer__card {
    min-height: auto;
    padding: 1.1rem 1.2rem;
  }
}

/* Page index SHOP : rendre l’accueil cohérent avec les pages catégories. */
body#index #wrapper,
body.page-index #wrapper {
  background: #ffffff;
}

body#index .custom-text,
body#index #custom-text,
body#index .page-content,
body.page-index .custom-text,
body.page-index #custom-text,
body.page-index .page-content {
  background: linear-gradient(135deg, #eef8fb 0%, #ffffff 66%, #fff7ef 100%);
  border: 1px solid rgba(39, 183, 215, 0.28);
  border-left: 5px solid var(--pys-orange);
  border-radius: 18px;
  padding: clamp(1rem, 1.7vw, 1.45rem) clamp(1.15rem, 2vw, 1.8rem);
  margin: 1.25rem 0;
  box-shadow: 0 10px 24px rgba(7,31,54,0.055);
}

body#index .featured-products,
body#index .products-section,
body.page-index .featured-products,
body.page-index .products-section {
  margin-top: 1.5rem;
}


/* ========================================================================== 
   V2.2.1 — Correction accueil SHOP : titre + description uniquement
   Problème observé : double imbrication sur index.php lorsque .page-content et
   .custom-text reçoivent tous deux le style carte.
   Décision : ne pas styliser le conteneur global de page d'accueil. Seul le
   bloc éditorial d'accueil reçoit le fond doux / bordure orange.
   ========================================================================== */

/* Le conteneur global de la page d'accueil reste neutre. */
body#index #wrapper,
body.page-index #wrapper,
body#index .page-content,
body.page-index .page-content,
body#index #content,
body.page-index #content {
  background: #ffffff !important;
  border: 0 !important;
  border-left: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Ne pas encadrer les sliders / carrousels / bannières de l'accueil. */
body#index .carousel,
body#index .carousel-inner,
body#index .homeslider,
body#index .pshomeslider,
body#index .swiper,
body#index .banner,
body#index .featured-products,
body#index .products-section,
body.page-index .carousel,
body.page-index .carousel-inner,
body.page-index .homeslider,
body.page-index .pshomeslider,
body.page-index .swiper,
body.page-index .banner,
body.page-index .featured-products,
body.page-index .products-section {
  border: 0 !important;
  border-left: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Seul le bloc texte d'accueil est mis en évidence. */
body#index .custom-text,
body#index #custom-text,
body#index .ps_customtext,
body#index .customtext,
body.page-index .custom-text,
body.page-index #custom-text,
body.page-index .ps_customtext,
body.page-index .customtext {
  background: linear-gradient(135deg, #eef8fb 0%, #ffffff 70%, #fff7ef 100%) !important;
  border: 1px solid rgba(39, 183, 215, 0.28) !important;
  border-left: 5px solid var(--pys-orange) !important;
  border-radius: 18px !important;
  padding: clamp(1.05rem, 1.7vw, 1.5rem) clamp(1.15rem, 2vw, 1.85rem) !important;
  margin: 1.25rem 0 1.5rem !important;
  box-shadow: 0 10px 24px rgba(7,31,54,0.055) !important;
}

body#index .custom-text h1,
body#index #custom-text h1,
body#index .ps_customtext h1,
body#index .customtext h1,
body.page-index .custom-text h1,
body.page-index #custom-text h1,
body.page-index .ps_customtext h1,
body.page-index .customtext h1,
body#index .custom-text h2,
body#index #custom-text h2,
body#index .ps_customtext h2,
body#index .customtext h2,
body.page-index .custom-text h2,
body.page-index #custom-text h2,
body.page-index .ps_customtext h2,
body.page-index .customtext h2 {
  margin: 0 0 .45rem !important;
  color: var(--pys-blue-night) !important;
}

body#index .custom-text p,
body#index #custom-text p,
body#index .ps_customtext p,
body#index .customtext p,
body.page-index .custom-text p,
body.page-index #custom-text p,
body.page-index .ps_customtext p,
body.page-index .customtext p {
  margin-bottom: .45rem !important;
  color: var(--pys-text) !important;
  line-height: 1.45 !important;
}

body#index .custom-text p:last-child,
body#index #custom-text p:last-child,
body#index .ps_customtext p:last-child,
body#index .customtext p:last-child,
body.page-index .custom-text p:last-child,
body.page-index #custom-text p:last-child,
body.page-index .ps_customtext p:last-child,
body.page-index .customtext p:last-child {
  margin-bottom: 0 !important;
}
/* =========================================================
   PYS / Coformex - Pages CMS Infos SHOP
   Compatible PrestaShop CMS nettoyé
   Front 03
   ========================================================= */

#content.page-cms.rich-text {
  --pys-night: #071b33;
  --pys-blue: #0b3f73;
  --pys-blue-soft: #eaf5fb;
  --pys-cyan: #16a6c9;
  --pys-orange: #f28c28;
  --pys-red: #b42318;
  --pys-red-soft: #fff1f0;
  --pys-warm: #fff8ef;
  --pys-warm-2: #fffdf8;
  --pys-card: #ffffff;
  --pys-border: #ead8c2;
  --pys-text: #26384a;

  max-width: 1080px;
  margin: 0 auto;
  padding: 2rem 1rem 3rem;
  font-family: Candara, Calibri, Arial, sans-serif;
  color: var(--pys-text);
  line-height: 1.65;
  background: linear-gradient(180deg, var(--pys-warm-2) 0%, #ffffff 42%);
  border-radius: 22px;
}

/* Bandeau haut recréé à partir des premiers éléments CMS */
#content.page-cms.rich-text > .pys-label,
#content.page-cms.rich-text > h1,
#content.page-cms.rich-text > h1 + p {
  position: relative;
  z-index: 1;
}

#content.page-cms.rich-text > .pys-label {
  display: inline-block;
  margin: 1.5rem 0 0.85rem;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: var(--pys-blue);
  color: #ffffff;
  font-size: 0.9rem;
  letter-spacing: 0.02em;
}

#content.page-cms.rich-text > h1 {
  margin: 0 0 0.75rem;
  padding: 1.6rem 1.8rem 0.2rem;
  color: #ffffff;
  font-size: 2.15rem;
  line-height: 1.15;
  font-weight: 700;
  background:
    radial-gradient(circle at top right, rgba(242, 140, 40, 0.28), transparent 34%),
    linear-gradient(135deg, var(--pys-night), var(--pys-blue));
  border-radius: 22px 22px 0 0;
}

#content.page-cms.rich-text > h1 + p {
  margin: -0.2rem 0 1.5rem;
  padding: 0.3rem 1.8rem 1.5rem;
  color: #eef8fb;
  font-size: 1.08rem;
  background: linear-gradient(135deg, var(--pys-night), var(--pys-blue));
  border-bottom: 6px solid var(--pys-orange);
  border-radius: 0 0 22px 22px;
}

/* Introduction */
#content.page-cms.rich-text .pys-intro {
  display: grid;
  grid-template-columns: 1.35fr 0.95fr;
  gap: 1rem;
  margin: 1.5rem 0 2rem;
}

#content.page-cms.rich-text .pys-intro-box {
  background: var(--pys-card);
  border: 1px solid var(--pys-border);
  border-radius: 18px;
  padding: 1.3rem 1.4rem;
  box-shadow: 0 6px 18px rgba(7, 27, 51, 0.07);
}

#content.page-cms.rich-text .pys-intro-box strong {
  color: var(--pys-blue);
}

#content.page-cms.rich-text .pys-intro-box.warning {
  background: var(--pys-red-soft);
  border: 1px solid #ffc9c4;
  border-left: 7px solid var(--pys-red);
}

#content.page-cms.rich-text .pys-intro-box.warning strong {
  color: var(--pys-red);
}

/* Titres */
#content.page-cms.rich-text h2 {
  margin: 1.8rem 0 0.85rem;
  padding: 0.85rem 1rem;
  color: var(--pys-blue);
  font-size: 1.34rem;
  line-height: 1.25;
  font-weight: 700;
  background: #ffffff;
  border: 1px solid #e5edf5;
  border-left: 7px solid var(--pys-orange);
  border-radius: 14px;
  box-shadow: 0 4px 12px rgba(7, 27, 51, 0.045);
}

#content.page-cms.rich-text p {
  margin: 0 0 0.8rem;
}

/* Listes */
#content.page-cms.rich-text ul {
  margin: 0.4rem 0 0.8rem 1.2rem;
  padding: 0;
}

#content.page-cms.rich-text li {
  margin-bottom: 0.35rem;
}

/* Infos importantes */
#content.page-cms.rich-text .pys-important {
  margin: 0.9rem 0 1.1rem;
  padding: 0.95rem 1rem;
  border-radius: 14px;
  background: var(--pys-red-soft);
  border: 1px solid #ffc9c4;
  border-left: 6px solid var(--pys-red);
  color: #5f1f1a;
}

#content.page-cms.rich-text .pys-important strong {
  color: var(--pys-red);
}

/* Synthèses */
#content.page-cms.rich-text .pys-summary {
  margin: 1rem 0 1.1rem;
  padding: 1rem 1.1rem;
  border-radius: 16px;
  background: var(--pys-blue-soft);
  border: 1px solid #b9dff0;
  border-left: 6px solid var(--pys-cyan);
  color: #24445f;
}

#content.page-cms.rich-text .pys-summary strong {
  color: var(--pys-blue);
}

/* Encadré final */
#content.page-cms.rich-text .pys-final {
  margin-top: 1.8rem;
  padding: 1.45rem;
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(242, 140, 40, 0.16), rgba(22, 166, 201, 0.12)),
    #ffffff;
  border: 1px solid var(--pys-border);
  color: var(--pys-text);
}

#content.page-cms.rich-text .pys-final strong {
  color: var(--pys-blue);
}

/* Mobile */
@media (max-width: 768px) {
  #content.page-cms.rich-text {
    padding: 1rem 0.65rem 2rem;
    border-radius: 14px;
  }

  #content.page-cms.rich-text > h1 {
    font-size: 1.65rem;
    padding: 1.3rem 1.2rem 0.2rem;
    border-radius: 16px 16px 0 0;
  }

  #content.page-cms.rich-text > h1 + p {
    padding: 0.3rem 1.2rem 1.2rem;
    border-radius: 0 0 16px 16px;
  }

  #content.page-cms.rich-text .pys-intro {
    grid-template-columns: 1fr;
  }

  #content.page-cms.rich-text h2 {
    font-size: 1.18rem;
    padding: 0.8rem 0.9rem;
  }
}
/* TEST VISUEL TEMPORAIRE - À SUPPRIMER APRÈS TEST */
#content.page-cms.rich-text {
  outline: 8px solid red !important;
  background: yellow !important;
}
/* =========================================================
   PYS / Coformex - Pages CMS Infos SHOP
   Sélecteurs robustes CMS PrestaShop
   ========================================================= */

body#cms #content.page-cms.rich-text,
body#cms section#content.page-content.page-cms.rich-text,
body.cms #content.page-cms.rich-text,
#cms #content.page-cms.rich-text {
  --pys-night: #071b33;
  --pys-blue: #0b3f73;
  --pys-blue-soft: #eaf5fb;
  --pys-cyan: #16a6c9;
  --pys-orange: #f28c28;
  --pys-red: #b42318;
  --pys-red-soft: #fff1f0;
  --pys-warm-2: #fffdf8;
  --pys-card: #ffffff;
  --pys-border: #ead8c2;
  --pys-text: #26384a;

  max-width: 1080px !important;
  margin: 0 auto !important;
  padding: 2rem 1rem 3rem !important;
  font-family: Candara, Calibri, Arial, sans-serif !important;
  color: var(--pys-text) !important;
  line-height: 1.65 !important;
  background: linear-gradient(180deg, var(--pys-warm-2) 0%, #ffffff 42%) !important;
  border-radius: 22px !important;
}