/* Private B2B shop: hide all registration entry points.
 * Account creation is admin-only via back-office.
 */
.no-account,
a[href$="/inscription"],
a[href*="/inscription?"],
a[href*="create_account=1"],
a[data-link-action="display-register-form"],
#register-form,
.register-form {
    display: none !important;
}

/* Hide the search bar on public pages (login / password recovery / 404).
 * Search remains available to authenticated resellers on category/product pages.
 * Note: #search_widget already has class .search-widgets — same element.
 */
.page-authentication #search_widget,
.page-password #search_widget,
.page-pagenotfound #search_widget {
    display: none !important;
}

/* Top menu dropdown : afficher les sous-catégories en colonne (1 par ligne)
 * au lieu de la disposition horizontale par défaut du thème classic.
 */
.top-menu .sub-menu ul[data-depth="1"] > li {
    float: none !important;
    display: block !important;
    margin: 0 !important;
}
.top-menu .sub-menu ul[data-depth="1"] > li > a {
    display: block;
    padding: 8px 16px;
    border-bottom: 1px solid #f0f0f0;
}
.top-menu .sub-menu ul[data-depth="1"] > li:last-child > a {
    border-bottom: none;
}
.top-menu .sub-menu ul[data-depth="1"] > li > a:hover {
    background: #f5f5f5;
}
/* Largeur fixe du dropdown pour éviter qu'il s'étale sur toute la largeur */
.top-menu .popover.sub-menu {
    width: auto;
    min-width: 280px;
    max-width: 380px;
}

/* Positionnement du dropdown sous l'item survolé (pas à gauche de la page).
 * On ancre le popover dans son parent <li> via position: relative + absolute.
 */
#top-menu > li.category {
    position: relative !important;
}
#top-menu > li.category > .popover.sub-menu {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: auto !important;
    transform: none !important;
    margin-top: 0;
}

/* Sidebar gauche : cacher le lien "ACCUEIL" (racine du category tree) qui
 * mène vers la page catégorie Accueil vide.
 * Le wrapper réel dans le thème classic est .block-categories > .category-top-menu.
 */
.block-categories .category-top-menu > li:first-child {
    display: none !important;
}

/* Bloc "Sous-catégories" en bas des pages catégorie : c'est moche surtout
 * quand pas d'images, et c'est redondant avec le menu top + la sidebar.
 */
#subcategories {
    display: none !important;
}

/* Prix public HT (avant remise) — module hartmanngrouppricing */
.hartmann-pub-price{font-size:.8rem;color:#8a8a8a;margin-top:3px;line-height:1.35;}
.hartmann-pub-price__lbl{}
.hartmann-pub-price__amt{text-decoration:line-through;}
.hartmann-pub-price__disc{color:#2fb5d2;font-weight:600;margin-left:6px;}

/* Badge stock — module hartmannstock */
.hartmann-stock{display:inline-flex;align-items:center;gap:7px;font-size:.85rem;font-weight:600;margin:8px 0;}
.hartmann-stock__dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:0 0 auto;}
.hartmann-stock--in{color:#247a37;} .hartmann-stock--in .hartmann-stock__dot{background:#2a9e44;}
.hartmann-stock--out{color:#b9770e;} .hartmann-stock--out .hartmann-stock__dot{background:#e08e0b;}
.product-miniature .hartmann-stock{font-size:.78rem;margin:4px 0 0;}

/* B2B : masquer la case "utiliser cette adresse pour la facturation" (facturation forcée = revendeur) */
#use_same_address, label[for="use_same_address"] { display:none !important; }
.form-group.row:has(#use_same_address) { display:none !important; }

/* Affichage de la référence sous le titre produit */
.product-reference-top { margin: 2px 0 12px; color: #666; font-size: .9rem; }
.product-reference-top .label { font-weight: 600; }

/* B2B : masquer le lien "Avoirs" (bons d'avoir) dans Mon compte */
#order-slips-link, a[href*="/avoirs"], li:has(> a[href*="/avoirs"]) { display: none !important; }

/* Footer : centrer les 3 colonnes de liens (ligne displayFooter), desktop uniquement */
@media (min-width: 768px) {
  .footer-container > .container > .row:first-of-type {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
  .footer-container > .container > .row:first-of-type > div[class*="col-md"] {
    flex: 0 0 auto;
    width: auto;
    min-width: 220px;
    max-width: 340px;
    margin: 0 20px;
  }
}

/* Pages CMS : empêcher tout débordement de la zone de contenu */
#content .page-content, #content .rte-content, .page-cms { overflow-wrap: break-word; }
#content .page-content *, .page-cms * { max-width: 100%; }
#content .page-content table, .page-cms table { display: block; overflow-x: auto; max-width: 100%; }
#content .page-content img, .page-cms img { height: auto; }

/* Footer — correctif : ps_linklist imbrique un col-md-6 dans un col-md-6.
   On force ce sous-conteneur à pleine largeur (sinon le titre est coupé, ex. "É" seul). */
@media (min-width: 768px) {
  .footer-container > .container > .row:first-of-type > div[class*="col-md"] {
    min-width: 260px !important;
    max-width: 320px !important;
  }
  .footer-container .links .wrapper {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .footer-container .links .row { margin-left: 0 !important; margin-right: 0 !important; }
  .footer-container .block-contact,
  .footer-container .block-contact a { overflow-wrap: break-word; word-break: break-word; }
}
