/* ============================================================================
 *  CB-link — re-skin du thème PrestaShop « classic ».
 *
 *  Applique le look de la maquette boutique (site pilote NOREXI) au thème
 *  classic SANS toucher au cœur : ce fichier ne fait que surcharger des styles.
 *  Cibles = sélecteurs standard de classic (PrestaShop 1.7.6+ / 8.x, Bootstrap 4).
 *
 *  Installation (voir README.md) :
 *    (a) rapide  : copier ce fichier dans le thème actif -> assets/css/custom.css
 *                  (classic charge automatiquement custom.css) ;
 *    (b) propre  : utiliser le thème enfant « cblink » (config/theme.yml).
 *
 *  Confidentialité : aucun secret, aucun nom de fournisseur/gérant ici.
 * ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700&family=Raleway:wght@500;600;700;800&display=swap');

:root{
  --cbl-primary:#FFC20E;      /* jaune CB-link */
  --cbl-primary-d:#E0A200;
  --cbl-primary-dd:#B37D00;
  --cbl-ink:#22262B;          /* anthracite */
  --cbl-ink2:#2C3238;
  --cbl-g50:#F6F7F8;  --cbl-g100:#ECEEF0; --cbl-g200:#DFE3E7; --cbl-g300:#C3C9CF;
  --cbl-g400:#8A929B; --cbl-g500:#616970; --cbl-g600:#454C53; --cbl-g700:#2C3238;
  --cbl-green:#1B8A3A; --cbl-green-bg:#E8F5E9;
  --cbl-red:#B3261E;   --cbl-blue:#1663B0; --cbl-blue-bg:#E7F0FA;
  --cbl-ft:"Raleway",-apple-system,Segoe UI,Roboto,sans-serif;  /* titres */
  --cbl-fb:"Open Sans",-apple-system,Segoe UI,Roboto,sans-serif; /* texte  */
  --cbl-radius:14px; --cbl-radius-btn:10px;
  --cbl-shadow:0 10px 30px rgba(34,38,43,.10);
}

/* ---------- Base ---------- */
body{font-family:var(--cbl-fb);color:var(--cbl-g700);background:var(--cbl-g50);
  line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,.h1,.h2,.h3,.h4,.h5,
.page-header h1,.product-title,.products-section-title{font-family:var(--cbl-ft);color:var(--cbl-ink);font-weight:800}
a{color:var(--cbl-ink)}
a:hover,a:focus{color:var(--cbl-primary-dd)}
.page-content,.card,#content-wrapper{color:var(--cbl-g700)}

/* ---------- Boutons ---------- */
.btn{font-family:var(--cbl-ft);font-weight:700;border-radius:var(--cbl-radius-btn);transition:.15s}
.btn-primary,.add-to-cart,.btn.btn-primary{background:var(--cbl-primary);border-color:var(--cbl-primary);color:var(--cbl-ink)}
.btn-primary:hover,.add-to-cart:hover,.btn-primary:focus,.btn-primary:active{
  background:var(--cbl-primary-d)!important;border-color:var(--cbl-primary-d)!important;color:var(--cbl-ink)!important;box-shadow:none}
.btn-secondary,.btn-tertiary,.btn-outline-secondary{
  background:#fff;border:1.5px solid var(--cbl-g200);color:var(--cbl-g600);border-radius:var(--cbl-radius-btn)}
.btn-secondary:hover,.btn-tertiary:hover{border-color:var(--cbl-g400);color:var(--cbl-ink);background:#fff}
.btn-dark{background:var(--cbl-ink);border-color:var(--cbl-ink);color:#fff}

/* ---------- En-tête ---------- */
#header{background:#fff;box-shadow:0 1px 0 var(--cbl-g200)}
#header .header-top{background:#fff;border-bottom:1px solid var(--cbl-g200)}
#header a,.header-top a{color:var(--cbl-g600)}
#header a:hover{color:var(--cbl-ink)}
/* Barre du haut : on garde la mise en page NATIVE de classic (barre claire) —
   ne pas forcer un fond sombre, sinon le panier/compte (prévus clairs) jurent. */
.header-nav{font-size:12.5px}
/* Recherche : on laisse le style NATIF de classic (loupe centrée). Seul accent :
   la bordure du champ au focus passe au jaune de marque. Le repositionnement de
   la loupe à droite est reporté (à faire avec le DOM réel sous les yeux). */
#search_widget input[type=text]:focus,.search-widgets input[type=text]:focus{border-color:var(--cbl-primary);box-shadow:none;outline:none}
/* Panier : on NE reforme PAS le bloc (laisser classic) ; seul le compteur passe
   à la couleur de marque. */
.blockcart .cart-products-count{background:var(--cbl-primary);color:var(--cbl-ink);font-weight:800}

/* ---------- Menu principal ---------- */
#top-menu .top-menu a.dropdown-item,.top-menu a{font-family:var(--cbl-ft);font-weight:700;color:var(--cbl-g600)}
#top-menu .top-menu a:hover,.top-menu a:hover{color:var(--cbl-ink)}
.menu-dropdown,.top-menu .sub-menu{border-radius:var(--cbl-radius);box-shadow:var(--cbl-shadow)}

/* ---------- Fil d'Ariane ---------- */
.breadcrumb{background:transparent;padding-left:0}
.breadcrumb a{color:var(--cbl-primary-dd);font-weight:600}

/* ---------- Fiche produit (miniature / grille) ---------- */
.product-miniature .thumbnail-container,
.product-miniature .card,
.js-product-miniature{background:#fff;border:1px solid var(--cbl-g200);border-radius:var(--cbl-radius);overflow:hidden;transition:.15s}
.product-miniature:hover .thumbnail-container,
.product-miniature:hover .card{box-shadow:var(--cbl-shadow);transform:translateY(-2px);border-color:var(--cbl-g300)}
.product-miniature .product-title{font-family:var(--cbl-ft);font-weight:700;font-size:14.5px;line-height:1.3}
.product-miniature .product-title a{color:var(--cbl-ink)}
.product-miniature .manufacturer-name,.product-brand{font-size:11.5px;color:var(--cbl-g400);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.product-price-and-shipping .price,.product-miniature .price{font-family:var(--cbl-ft);font-weight:800;color:var(--cbl-ink)}
.product-price-and-shipping .regular-price{color:var(--cbl-g400)}
.product-flags .discount,.product-flags .discount-percentage,.product-flags .on-sale{
  background:var(--cbl-red);color:#fff;border-radius:6px;font-family:var(--cbl-ft);font-weight:800}
.product-flags .new,.product-flags li.product-flag{background:var(--cbl-ink);color:#fff;border-radius:6px;font-family:var(--cbl-ft);font-weight:800}

/* Disponibilité */
.product-availability,#product-availability{font-weight:700}
.product-availability .material-icons.product-available,.text-success{color:var(--cbl-green)!important}

/* ---------- Page produit (PDP) ---------- */
.product-prices .current-price .price,.current-price span{font-family:var(--cbl-ft);font-weight:800;color:var(--cbl-ink)}
.product-prices .regular-price{color:var(--cbl-g400)}
.product-information h1,.product-detail-name{font-family:var(--cbl-ft);font-weight:800;color:var(--cbl-ink)}
.product-add-to-cart .add-to-cart{padding:11px 22px}
.tax-shipping-delivery-label,.product-reference,.product-quantities{color:var(--cbl-g500)}
.nav-tabs .nav-link{font-family:var(--cbl-ft);font-weight:700;color:var(--cbl-g500);border:none}
.nav-tabs .nav-link.active{color:var(--cbl-ink);border-bottom:2px solid var(--cbl-primary);background:transparent}
.product-features dt,.data-sheet dt{font-family:var(--cbl-ft);font-weight:700;color:var(--cbl-g600)}

/* ---------- Filtres (facettes) ---------- */
#search_filters,.block-categories,.card{border-radius:var(--cbl-radius);border-color:var(--cbl-g200)}
#search_filters .facet-title,.block-categories .h6,.products-section-title{
  font-family:var(--cbl-ft);font-weight:800;color:var(--cbl-ink);text-transform:uppercase;letter-spacing:.04em}
.custom-checkbox input[type=checkbox]:checked+span,.custom-radio input:checked+span{background:var(--cbl-primary);border-color:var(--cbl-primary)}
.facet .facet-label a{color:var(--cbl-g600)}
.facet .facet-label a:hover{color:var(--cbl-ink)}
.active_filters .filter-block{background:var(--cbl-g100);color:var(--cbl-g600);border-radius:100px}

/* ---------- Panier / commande ---------- */
.cart-grid-body .card,.cart-summary,.card{border-radius:var(--cbl-radius)}
.cart-summary-line .value,.cart-total .value{font-family:var(--cbl-ft);font-weight:800;color:var(--cbl-ink)}
.checkout .btn-primary,.cart-detailed-actions .btn-primary{width:auto}
.step-title,.checkout-step .step-title{font-family:var(--cbl-ft);color:var(--cbl-ink)}
.done .step-title .material-icons{color:var(--cbl-green)}

/* ---------- Formulaires ---------- */
.form-control{border:1.5px solid var(--cbl-g200);border-radius:var(--cbl-radius-btn)}
.form-control:focus{border-color:var(--cbl-primary);box-shadow:none}
.form-control-label,.label{font-family:var(--cbl-ft);font-weight:700;color:var(--cbl-g600)}

/* ---------- Bandeau promo / réassurance ---------- */
.reassurance,.block-reassurance{background:#fff;border-top:1px solid var(--cbl-g200)}
.block-reassurance li .block-reassurance-item span{color:var(--cbl-g600)}

/* ---------- Pied de page ---------- */
#footer{background:#fff;border-top:1px solid var(--cbl-g200);color:var(--cbl-g500)}
#footer .h3,#footer .title,.footer-container .h3{font-family:var(--cbl-ft);font-weight:800;color:var(--cbl-ink);text-transform:none}
#footer a{color:var(--cbl-g600)}
#footer a:hover{color:var(--cbl-primary-dd)}
.footer-container{box-shadow:none;margin-top:0}
/* Mention « propulsée par » (ajoutée par le thème enfant, cf. README) */
.cbl-powered{display:block;text-align:center;color:var(--cbl-g400);font-size:12px;padding:14px 0;border-top:1px solid var(--cbl-g100)}

/* ---------- Notifications ---------- */
.alert-success{background:var(--cbl-green-bg);border-color:var(--cbl-green);color:#12592a}
.alert-info{background:var(--cbl-blue-bg);border-color:var(--cbl-blue);color:#0e3f73}

/* ---------- Pagination ---------- */
.pagination .current a,.page-item.active .page-link{background:var(--cbl-ink);border-color:var(--cbl-ink);color:#fff}
.page-link{color:var(--cbl-g600)}

/* ---------- Bandeau CTA pro / grands comptes (accueil) ---------- */
.cbl-pro-cta{background:var(--cbl-ink);color:#fff;border-radius:var(--cbl-radius);padding:24px 26px;margin:0 0 26px}
.cbl-pro-cta .in{display:flex;gap:28px;flex-wrap:wrap}
.cbl-pro-cta .col{flex:1 1 300px;display:flex;flex-direction:column;align-items:flex-start}
.cbl-pro-cta .col h3{font-family:var(--cbl-ft);font-weight:800;font-size:19px;color:var(--cbl-primary);margin:0 0 4px}
.cbl-pro-cta .col p{color:#d7dbe0;font-size:14px;margin:0 0 14px;line-height:1.5}
.cbl-pro-cta .col .btn{margin-top:auto}
.cbl-pro-cta .col + .col{border-left:1px solid rgba(255,255,255,.14);padding-left:28px}
@media(max-width:640px){.cbl-pro-cta .col + .col{border-left:none;padding-left:0}}
/* CBLINK-CATBUTTON:BEGIN — bouton « Catégories » + arbre repliable (bloc géré, ne pas éditer)
   À APPENDRE au custom.css du thème ACTIF (classic). Fonctionne avec
   deploy/boutique/custom.js (themes/classic/assets/js/custom.js), qui DÉPLACE
   l'arbre dans .cbl-catpanel et ajoute les chevrons.
   Desktop : bouton unique -> arbre repliable type explorateur. Mobile (<768px) :
   hamburger natif de classic. Repli : sans JS (.cbl-js absent), menu classique. */

/* --- Bouton --- */
.cbl-cats-btn{display:none;align-items:center;gap:8px;font-family:var(--cbl-ft,inherit);font-weight:700;
  background:var(--cbl-ink,#22262B);color:#fff;border:0;border-radius:var(--cbl-radius-btn,10px);
  padding:10px 16px;cursor:pointer;font-size:15px;line-height:1}
@media(min-width:768px){.cbl-cats-btn{display:inline-flex}}
.cbl-cats-btn:hover{background:var(--cbl-ink2,#2C3238)}
.cbl-cats-btn .cbl-burger{font-size:16px;line-height:1}
.cbl-cats-open .cbl-cats-btn{background:var(--cbl-primary,#FFC20E);color:var(--cbl-ink,#22262B)}

/* --- Ancien menu étalé : masqué (l'arbre est déplacé dans .cbl-catpanel) --- */
/* Masqué DÈS LE DÉPART pour éviter le flash. Le menu étalé = #_desktop_top_menu > #top-menu
   (pas de div .menu). Sélecteur enfant direct : masque le menu étalé avant le JS, et se
   libère une fois #top-menu déplacé dans .cbl-catpanel (il n'est plus enfant direct). */
#_desktop_top_menu{position:relative}
#_desktop_top_menu > #top-menu{display:none !important}

/* --- Panneau --- */
.cbl-catpanel{display:none}
.cbl-cats-open .cbl-catpanel{
  display:block;position:absolute;top:calc(100% + 10px);left:0;z-index:1050;
  width:340px;max-width:92vw;max-height:76vh;overflow:auto;
  background:#fff;border:1px solid var(--cbl-g200,#DFE3E7);border-radius:var(--cbl-radius,14px);
  box-shadow:var(--cbl-shadow,0 10px 30px rgba(34,38,43,.12));padding:6px 4px}

/* --- Arbre : une ligne par catégorie, interligne serré --- */
.cbl-catpanel #top-menu{display:block!important;margin:0!important;padding:0!important;list-style:none!important;columns:auto!important}
.cbl-catpanel #top-menu li{display:block!important;float:none!important;margin:0!important;padding:0!important;position:relative!important;width:auto!important}
.cbl-catpanel .sub-menu{display:block!important;position:static!important;visibility:visible!important;opacity:1!important;
  box-shadow:none!important;border:0!important;background:transparent!important;
  width:auto!important;min-width:0!important;max-width:none!important;padding:0 0 0 14px!important;margin:0!important;
  transform:none!important;left:auto!important;top:auto!important}
.cbl-catpanel li.cbl-collapsed > .sub-menu{display:none!important}

/* Lignes (liens) */
.cbl-catpanel a{display:block!important;padding:3px 8px 3px 24px!important;color:var(--cbl-g700,#2C3238);
  font-weight:600;font-size:13px;line-height:1.3;border:0!important;border-radius:6px;text-decoration:none}
.cbl-catpanel a:hover{background:var(--cbl-g50,#F6F7F8);color:var(--cbl-ink,#22262B)}
.cbl-catpanel > #top-menu > li > a{font-family:var(--cbl-ft,inherit);font-weight:800;color:var(--cbl-ink,#22262B);font-size:13.5px}

/* Chevron : absolu, aligné à gauche du libellé (n'occupe pas de ligne) */
.cbl-catpanel .cbl-tog{position:absolute;left:2px;top:0;width:20px;height:24px;display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:var(--cbl-g500,#616970);user-select:none;z-index:1}
.cbl-catpanel .cbl-tog::before{content:"\25B8";font-size:10px;transition:transform .12s}
.cbl-catpanel li.cbl-has:not(.cbl-collapsed) > .cbl-tog::before{transform:rotate(90deg)}

/* Responsive : panneau plein écran sur mobile */
@media(max-width:767px){
  .cbl-cats-open .cbl-catpanel{position:fixed;left:8px;right:8px;top:64px;width:auto;max-width:none}
}

/* Indice sous le champ SIRET (compte pro) */
.cbl-siret-hint{display:block;margin-top:4px;color:var(--cbl-g500,#616970);font-size:12.5px;line-height:1.4}

/* Section « Particulier / Professionnel » (inscription + compte) */
.cbl-protoggle{margin:0 0 18px;padding:14px 16px;border:1px solid var(--cbl-g200,#DFE3E7);border-radius:12px;background:var(--cbl-g50,#F6F7F8)}
.cbl-pt-q{font-family:var(--cbl-ft,inherit);font-weight:700;color:var(--cbl-ink,#22262B);margin:0 0 10px}
.cbl-pt-btns{display:flex;gap:10px;flex-wrap:wrap}
.cbl-pt-btn{flex:1 1 160px;padding:10px 14px;border:2px solid var(--cbl-g200,#DFE3E7);border-radius:var(--cbl-radius-btn,10px);
  background:#fff;color:var(--cbl-g600,#454C53);font-family:var(--cbl-ft,inherit);font-weight:700;cursor:pointer;font-size:14px}
.cbl-pt-btn:hover{border-color:var(--cbl-primary,#FFC20E)}
.cbl-pt-btn.is-active{border-color:var(--cbl-primary,#FFC20E);background:var(--cbl-ink,#22262B);color:#fff}
.cbl-pt-hint{margin-top:8px;font-size:12.5px;color:var(--cbl-g500,#616970)}
.cbl-js form.cbl-reg .cbl-pro-field{display:none}
.cbl-js form.cbl-reg.cbl-show-pro .cbl-pro-field{display:block}
.cbl-req{color:var(--cbl-red,#B3261E)}
/* Champ auto-rempli/verrouillé depuis l'INSEE */
.cbl-locked{background:var(--cbl-g100,#ECEEF0) !important;color:var(--cbl-g600,#454C53);cursor:not-allowed}

/* Logos des options de paiement : cap la taille (sinon le logo Stripe s'affiche en géant) */
.payment-options img,
.payment-options .payment-option img,
.payment-option label img{max-height:30px !important;width:auto !important;vertical-align:middle;display:inline-block}

/* Réassurance : titre + description alignés à gauche, sans retrait d'icône vide.
   Deux gabarits possibles : .blockreassurance (colonnes) et .blockreassurance_product
   (checkout : un <span.item-product> icône+&nbsp; poussait le titre à droite). */
.blockreassurance .block-icon,
.blockreassurance_product .item-product{display:none !important}
.blockreassurance .block-title,
.blockreassurance_product .block-title{display:block !important;text-align:left !important;margin:0 0 2px !important;padding:0 !important;font-weight:700}
.blockreassurance p,
.blockreassurance_product p{text-align:left !important;margin:0 0 12px !important;padding:0 !important}
.blockreassurance [class*="col-"]{text-align:left}

/* Bloc catégories colonne gauche : retirer les icônes « + / - » (débordent sur les libellés) */
.block-categories .collapse-icons,
.block-categories .category-arrows,
.block-categories li .arrows,
.block-categories .navbar-toggler{display:none !important}
.block-categories .category-sub-menu > li > a,
.block-categories .category-top-menu > li > a{padding-right:0 !important}
/* --- Vignette produit orientée PRO (accueil, catégories, recherche, accessoires) ---
   Image plus compacte + carte dense alignée à gauche + marque/réf/desc + prix HT lisible.
   Fonctionne avec le gabarit deploy/boutique/templates/.../miniatures/product.tpl. */
.product-miniature .product-thumbnail img{max-height:150px !important;width:auto !important;margin:0 auto;display:block}
.product-miniature .thumbnail-container,
.product-miniature .thumbnail-top{height:auto !important}
.product-miniature .product-description{padding:8px 10px 12px !important;text-align:left !important;margin-top:0 !important;border-top:1px solid var(--cbl-g100,#ECEEF0)}
.cbl-mini .cbl-mini-brand{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--cbl-g500,#616970);margin:0 0 2px;line-height:1.2}
.product-miniature .product-title{margin:0 0 4px !important;font-size:14px;line-height:1.25;min-height:0}
.product-miniature .product-title a{color:var(--cbl-ink,#22262B);font-weight:700}
.cbl-mini .cbl-mini-ref{font-size:12px;color:var(--cbl-g500,#616970);margin:0 0 5px}
.cbl-mini .cbl-mini-ref span{font-variant-numeric:tabular-nums;font-weight:600;color:var(--cbl-g700,#2C3238)}
.cbl-mini .cbl-mini-desc{font-size:12.5px;line-height:1.4;color:var(--cbl-g600,#454C53);margin:0 0 7px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-miniature .product-price-and-shipping{margin-top:2px}
.product-miniature .price{font-size:16px;font-weight:800;color:var(--cbl-ink,#22262B)}
/* CBLINK-CATBUTTON:END */
