/* ------------------------------------------------------------------
   Digic Child — Phase 4
   Chargee APRES digic-style-template (dependance declaree dans functions.php).
   1. Poppins servie en local (OFL), remplace fonts.googleapis.com
   2. Hauteur du logo d'en-tete (leve le plafond max-height:22px du parent)
   3. Badge Adobe Certified Reseller dans la sous-barre
   ------------------------------------------------------------------ */

/* 1. Poppins locale — graisses relevees dans digic/css/template.css :
      300 (13), 400 (68), 500 (201), 600 (79), 700 (59), 900 (9) + italique 400 */
@font-face{font-family:'Poppins';font-style:normal;font-weight:300;font-display:swap;
  src:url('../fonts/poppins/poppins-latin-300-normal.woff2') format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/poppins/poppins-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Poppins';font-style:italic;font-weight:400;font-display:swap;
  src:url('../fonts/poppins/poppins-latin-400-italic.woff2') format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/poppins/poppins-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/poppins/poppins-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;
  src:url('../fonts/poppins/poppins-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:900;font-display:swap;
  src:url('../fonts/poppins/poppins-latin-900-normal.woff2') format('woff2');}

/* 2. Logo — le parent impose .bwp-header .wpbingoLogo img{max-height:22px}
      (digic/css/template.css:1462). On le releve ici. */
.bwp-header .wpbingoLogo img,
.bwp-header .wpbingoLogo-sticky img{
  max-height:none;
  height:60px;
  width:auto;
  display:block;
}
/* en-tete sticky : logo visible et plus compact */
.bwp-header .header-sticky .wpbingoLogo,
.bwp-header .header-sticky .wpbingoLogo-sticky,
.wpbingoLogo-sticky{
  display:block;
}
.bwp-header .header-sticky .wpbingoLogo img,
.bwp-header .header-sticky .wpbingoLogo-sticky img{
  height:44px;
}
@media (max-width:991px){
  .bwp-header .wpbingoLogo img,
  .bwp-header .wpbingoLogo-sticky img,
  .bwp-header .header-sticky .wpbingoLogo img{
    height:40px;
  }
}

/* 3. Badge Adobe — remplace la mention livraison a droite de la sous-barre.
      Non cliquable, masque sous 992px. */
.bwp-header .adobe-badge{
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
.bwp-header .adobe-badge img{
  height:32px;
  width:auto;
  max-height:none;
  display:block;
}
@media (max-width:991px){
  .bwp-header .adobe-badge{ display:none; }
}

/* 4. Menu principal horizontal — masquer les descriptions d'entrées.
      Le walker du parent (digic/inc/megamenu/mega_menu_custom_walker.php:44 et 309)
      injecte <span class="menu-item-desc"> dès qu'une entrée porte une description.
      Portée volontairement restreinte : .bwp-navigation.primary-navigation vise le
      menu principal (ordinateur + sticky). Le menu vertical des catégories
      (.bwp-vertical-navigation) et le menu mobile (construit côté client par
      jquery.mmenu) ne sont pas touchés. */
.bwp-header .header-desktop .bwp-navigation.primary-navigation .std-menu .menu-item-desc,
.bwp-header .header-sticky .bwp-navigation.primary-navigation .std-menu .menu-item-desc{
  display:none;
}

/* 5. Lignes de totaux — panier et page de commande.
      Le parent ne met en ligne que .cart-subtotal et .order-total
      (template.css : 23856-23873 pour le panier, 20856-20866 pour la commande).
      Les autres lignes de WooCommerce restent sans mise en forme.
      Observees sur un panier invite avec un produit simple a prix :
        rendues      -> cart-subtotal, tax-rate, order-total
        non rendues  -> cart-discount, shipping, fee, tax-total
      .tax-rate est donc corrigee sur observation ; les quatre autres le sont
      par anticipation, avec les memes declarations que l existant. */

/* Panier */
.woocommerce-cart .cart-collaterals .cart-discount,
.woocommerce-cart .cart-collaterals .shipping,
.woocommerce-cart .cart-collaterals .fee,
.woocommerce-cart .cart-collaterals .tax-rate,
.woocommerce-cart .cart-collaterals .tax-total{
  display:flex;
  padding:15px 30px;
  align-items:center;
}
.woocommerce-cart .cart-collaterals .cart-discount>*,
.woocommerce-cart .cart-collaterals .shipping>*,
.woocommerce-cart .cart-collaterals .fee>*,
.woocommerce-cart .cart-collaterals .tax-rate>*,
.woocommerce-cart .cart-collaterals .tax-total>*{
  flex:1;
}
.woocommerce-cart .cart-collaterals .cart-discount>* .woocommerce-Price-amount,
.woocommerce-cart .cart-collaterals .shipping>* .woocommerce-Price-amount,
.woocommerce-cart .cart-collaterals .fee>* .woocommerce-Price-amount,
.woocommerce-cart .cart-collaterals .tax-rate>* .woocommerce-Price-amount,
.woocommerce-cart .cart-collaterals .tax-total>* .woocommerce-Price-amount{
  font-size:20px;
  color:#000;
}

/* Page de commande */
.checkout .woocommerce-checkout-review-order .cart-discount,
.checkout .woocommerce-checkout-review-order .fee,
.checkout .woocommerce-checkout-review-order .tax-rate,
.checkout .woocommerce-checkout-review-order .tax-total{
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid #dedede;
  padding:27px 0;
}
.checkout .woocommerce-checkout-review-order .cart-discount .subtotal-price,
.checkout .woocommerce-checkout-review-order .fee .subtotal-price,
.checkout .woocommerce-checkout-review-order .tax-rate .subtotal-price,
.checkout .woocommerce-checkout-review-order .tax-total .subtotal-price{
  color:#000;
}

/* ------------------------------------------------------------------
   6. D8 visuel — « Prix sur devis »
   Mise en forme du balisage produit par digic-child/inc/quote-price.php.
   #1a6b4f est l assombrissement de la couleur principale #218663, reserve
   a l etat survol : ce n est pas une nouvelle couleur de marque.
   ------------------------------------------------------------------ */

/* 19px/700 : sur les sections a fond #F5F7F6 de l accueil, #218663 ne mesure
   que 4,19:1 (4,51:1 sur blanc). Au-dela de 18,66px en gras, le seuil WCAG AA
   applicable est celui des grands textes, soit 3:1 — satisfait dans les deux cas. */
.digic-child-quote-price{
  display:inline-block;
  font-size:19px;
  font-weight:700;
  line-height:1.4;
  color:#218663;
}

/* Fiche produit : le prix y est plus grand que sur les cartes. Le <span> traverse
   le wp_kses du parent (voir inc/quote-price.php), la classe est donc disponible. */
.price-single .digic-child-quote-price{
  font-size:22px;
}

.digic-child-quote-button{
  display:inline-block;
  padding:12px 26px;
  border:1px solid #218663;
  border-radius:4px;
  background:#218663;
  color:#fff;
  font-size:13px;
  font-weight:600;
  line-height:1.2;
  letter-spacing:.04em;
  text-transform:uppercase;
  white-space:nowrap;
  transition:.2s;
}
.digic-child-quote-button:hover,
.digic-child-quote-button:focus{
  border-color:#1a6b4f;
  background:#1a6b4f;
  color:#fff;
}
.digic-child-quote-button:focus-visible{
  outline:3px solid #333;
  outline-offset:2px;
}

/* Carte produit : la barre .product-button est une bande de survol de 45px de
   haut. Le bouton y est compacte pour tenir sans deborder. */
.product-button .digic-child-quote-button--loop{
  padding:8px 16px;
  font-size:11px;
}

.digic-child-quote-single{
  margin:0 0 20px;
}

/* ------------------------------------------------------------------
   7. Finitions A6 et A14 visibles sur l accueil
   ------------------------------------------------------------------ */

/* A6 — titre des cartes produits : #216FE6 (herite de la demo Digic) -> texte
   de marque. Meme selecteur que digic-child/css/template.css, cette feuille
   etant chargee apres. */
.products-list.grid .product-wapper .products-content h3.product-title a{
  color:#333;
}
.products-list.grid .product-wapper .products-content h3.product-title a:hover,
.products-list.grid .product-wapper .products-content h3.product-title a:focus{
  color:#218663;
}

/* A14 — etiquette « Hot » : orange #FF9900 -> couleur principale. */
.hot{
  background:#218663;
}

/* A14 — cartes sans avis : le parent rend une rangee d etoiles vides suivie de
   « (0) ». Le bloc entier est masque, un compteur seul n ayant pas de sens. */
.products-list .product-wapper .rating.none{
  display:none;
}

/* ------------------------------------------------------------------
   8. Accueil V1 — appoints de composition
   ------------------------------------------------------------------ */

/* Cartes guides : les deux images mises en avant n ont pas le meme rapport
   (768x644 et 768x240). Un cadrage commun aligne les titres des deux cartes.
   Le lien enveloppant est inline-block : sans display:block, sa largeur est
   ajustee au contenu et le width:100% de l image se resout sur cette largeur. */
/* Focus visible. Mesure du 16/09/2026 : le parent rend outline-style:none sur
   les boutons, onglets et liens de contenu ; aucun composant de l accueil ne
   montrait sa prise de focus au clavier.
   Le double anneau tient sur les deux fonds de la page : l anneau blanc interne
   se detache du vert #218663 (4,51:1), l anneau #1A6B4F externe se detache du
   blanc et du #F5F7F6 (6,36:1). L outline transparent conserve un repere en
   mode contraste force, ou box-shadow n est pas rendu.
   Portee limitee au contenu Elementor : le reste du site n est pas touche. */
.elementor .elementor-button:focus-visible,
.elementor .elementor-tab-title:focus-visible,
.elementor .elementor-icon-box-wrapper a:focus-visible,
.elementor .elementor-heading-title a:focus-visible,
.elementor .smg-guide-image a:focus-visible{
  outline:2px solid transparent;
  outline-offset:2px;
  box-shadow:0 0 0 2px #fff, 0 0 0 5px #1a6b4f;
}

.smg-guide-image a{
  display:block;
}
.smg-guide-image img{
  width:100%;
  height:210px;
  object-fit:cover;
  display:block;
  border-radius:4px;
}

/* ------------------------------------------------------------------
   9. Pied de page SMG (modele bwp_footer, V2-2)
   Rendu sur tout le site : ces regles vivent dans phase4.css, chargee partout,
   et non dans la feuille conditionnelle de l accueil.
   ------------------------------------------------------------------ */

.bwp-footer .smg-pied-logo img{
  width:auto;
  max-width:190px;
  height:auto;
}
/* Puces retirees : ce sont des listes de navigation, pas des enumerations. */
.bwp-footer .smg-pied-liens .elementor-icon-list-items{
  margin:0;
  padding:0;
  list-style:none;
}
.bwp-footer .smg-pied-liens .elementor-icon-list-item{
  margin:0;
}
.bwp-footer .smg-pied-liens a{
  text-decoration:none;
}
.bwp-footer .smg-pied-liens a:hover,
.bwp-footer .smg-pied-liens a:focus{
  color:#218663;
}
.bwp-footer .smg-pied-bas p{
  margin:0;
}
/* Focus visible : le parent rend outline-style:none sur tout le site. */
.bwp-footer a:focus-visible{
  outline:2px solid transparent;
  outline-offset:2px;
  box-shadow:0 0 0 2px #fff, 0 0 0 5px #1a6b4f;
}
/* A14 — le bouton de retour en haut est fixe en bas a droite : la barre basse
   lui reserve la place pour qu il ne recouvre jamais la derniere ligne. */
.bwp-footer .smg-pied-bas{
  padding-right:80px;
}
@media (max-width:767px){
  .bwp-footer .smg-pied-bas{ padding-right:15px; padding-bottom:64px; }
}

/* ------------------------------------------------------------------
   D-2.1 — En-tete colle : hauteur constante et fond opaque.

   Diagnostic D-2, mesures faisant foi. digic/js/functions.js:268-284 ajoute la
   classe « sticky » a .bwp-header au defilement montant et la retire au
   defilement descendant. Or digic/css/template.css:4262 declare
   « .sticky{ background:#f5f5f5; padding:30px 30px 25px; } » — la regle de
   l article mis en une de WordPress, la ligne suivante etant
   « .sticky .entry-meta > span:nth-child(2) ». Collision de noms de classe :
   l en-tete heritait d un retrait qui ne lui etait pas destine.

   L en-tete changeait donc de hauteur de 55 px, et le document de 56, au-dessus
   de la zone visible. Le navigateur compensait par ancrage au defilement en
   decalant scrollY d autant, ce decalage emettait un evenement scroll de sens
   oppose, le gestionnaire rebasculait la classe, et le cycle se refermait sur
   lui-meme : un seul basculement produisait quatorze evenements en bas de page.

   Cette feuille est chargee sur tout le site, a la difference d accueil.css,
   bornee a la page d accueil : l en-tete, lui, est partout.

   1. Geometrie. Le retrait de l en-tete NON colle vaut zero sur les quatre
      cotes, mesure — la valeur n est pas choisie par principe, elle est reprise
      de l etat non colle. Les quatre cotes sont remis a cette valeur : le
      retrait lateral de 30 px decalait aussi le contenu horizontalement.
      Aucune autre propriete relevee ne fait varier la hauteur : marges,
      bordures et transform de .bwp-header sont identiques dans les deux etats.
      Le transform de .header-sticky, lui, existe bien — animation « f » de
      0,9 s, une descente d entree — mais il porte sur un element en
      position:fixed, hors flux : il ne touche pas la hauteur du document et
      reste en place.

   2. Fond de .bwp-header. Remis a la valeur de l etat non colle, mesuree
      transparente. Le #F5F5F5 venait de la meme collision et peignait un
      bandeau gris derriere l en-tete normal, que rien ne demandait.

   3. Fond de la barre collee. Le theme la pose a rgba(255,255,255,.93) et
      aucun conteneur interieur ne peint de fond opaque derriere elle — releve
      au DOM : .header-sticky est le seul peintre de son sous-arbre. Le contenu
      de la page transparaissait donc a 7 % pendant le defilement. Le blanc du
      theme est conserve, puisque l en-tete non colle se lit blanc lui aussi —
      body, html et .bwp-main sont transparents, c est la toile du navigateur
      qui donne cette couleur — mais il est rendu opaque. Rien ne change a
      l oeil, sinon que plus rien ne transparait.

   Portee : la classe « sticky » du blog garde son style, la regle etant bornee
   a .bwp-header. Specificites 0,0,2,0 et 0,0,3,0, superieures aux 0,0,1,0 et
   0,0,2,0 du parent : aucun !important.
   ------------------------------------------------------------------ */
.bwp-header.sticky{
  padding:0;
  background-color:transparent;
}
.bwp-header.sticky .header-sticky{
  background-color:#fff;
}

/* ------------------------------------------------------------------
   C-12.2 — moyens de paiement, bande basse du pied 101394.

   Cette feuille, et non accueil.css : le pied est rendu sur toutes les
   pages, tandis que accueil.css est conditionnee a is_front_page()
   (functions.php:71). Une regle posee la-bas n aurait tenu que sur
   l accueil.

   Rangee. Les trois logos vivent dans un seul widget HTML : trois widgets
   image ne pourraient pas former une rangee sans lever le « width:100% »
   qu Elementor pose sur chaque widget d une colonne. Alignee a droite au
   dessus de 767 px, centree en dessous, ou la bande s empile.

   Hauteurs. Egalisees a l OPTIQUE, jamais a la boite : Orange Money
   verrouille deux lignes de texte et demande 32 px pour rester lisible ;
   la tuile carree de Wave pese le plus a hauteur egale et tombe a 24 ;
   PayPal se tient entre les deux a 26. Seule la hauteur est posee, la
   largeur reste « auto » : les trois rapports natifs — 3,735, 2,277 et
   3,922 — sont conserves au rendu.

   Aucun cadre, aucun fond, aucune bordure, aucune ombre, aucun filtre :
   les couleurs officielles sont rendues telles quelles.
   ------------------------------------------------------------------ */
.smg-paiement{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:22px;
  margin:0;
}
.smg-paiement img{
  display:block;
  width:auto;
  max-width:100%;
}
.smg-paiement .smg-paiement__orange-money{
  height:32px;
}
.smg-paiement .smg-paiement__wave{
  height:24px;
}
.smg-paiement .smg-paiement__paypal{
  height:26px;
}
@media (max-width:767px){
  .smg-paiement{
    justify-content:center;
    gap:20px;
  }
}

/* P11-C1 — bouton « retour en haut » (div.back-top, digic/footer.php:34 ;
   template.css:13168, fixe a 70 px du bas, masque sous 768 px) et logos
   ci-dessus. Quand le parent construit les panneaux mobiles (jquery.mmenu,
   largeur de contenu de 991 px ou moins, mesuree par script : jusqu a
   1006 px de fenetre avec une barre de defilement classique), leurs deux
   enveloppes restent dans le flux sous le pied (44 px) : en fin de page, le
   bouton (70-110 px du bas) recouvrait le logo Wave (haut a 94-105 px du
   bas ; 153,7 px sur la fiche produit, qui reserve en plus la barre mobile).
   Le bouton passe a 170 px du bas de 768 a 1199 px, au-dessus du logo le
   plus haut, quelle que soit la largeur de la barre de defilement. A partir
   de 1200 px, logos a 22-55 px du bas : inchange. */
@media (min-width:768px) and (max-width:1199px){
  .back-top{
    bottom:170px;
  }
}

/* C-17 — voile du menu mobile.
   Separe le panneau du contenu sans assombrir franchement l ecran : #333333,
   la couleur de texte de la charte, jamais un noir pur, a 45 % d opacite.
   Le z-index est immediatement sous celui du panneau, mesure a 999999 sur
   .bwp-canvas-navigation.
   Purement visuel : sans evenement de pointeur, il ne capte ni les clics ni le
   focus, et il ne ferme pas le menu — comportement hors perimetre de ce lot.
   Aucune transition : l etat d ouverture est instantane, ce qui evite aussi
   d avoir a traiter la reduction de mouvement. */
.smg-voile-menu{
  display:none;
  position:fixed;
  top:0;
  right:0;
  bottom:0;
  left:0;
  z-index:999998;
  background:#333333;
  opacity:0.45;
  pointer-events:none;
}
.smg-voile-menu--visible{
  display:block;
}

/* ------------------------------------------------------------------
   T-1 — casse francaise des titres et des menus de navigation.

   Le parent capitalise chaque mot par text-transform:capitalize, ce qui rend
   « Questions Fréquentes », « Demande De Devis », « Logiciels Adobe Au
   Sénégal ». Les libelles sont enregistres en casse francaise : la casse
   ecrite doit s afficher telle quelle. Regles relevees en T-0 dans
   css/template.css (copie recoloree du parent, produite par
   recolor-digic-css.php, jamais modifiee a la main) :
     l. 546   menu vertical des categories, entrees de premier niveau ;
     l. 3073  barre de titre des pages ;
     l. 14318 sous-menus du panneau mobile (sous @media max-width 991px).
   Memes selecteurs, donc meme specificite : cette feuille est declaree en
   dependance de digic-style-template (functions.php), elle est servie apres
   template.css et l emporte sans !important.

   Inchanges : les menus en capitales de la charte (menu principal, titres
   de colonnes du pied), qui relevent de text-transform:uppercase. */
.bwp-main .page-title h1,
.categories-vertical-menu .bwp-vertical-navigation>div ul.menu li.level-0>a,
.bwp-canvas-navigation .mm-menu .sub-menu li>a:not(.mm-next),
.bwp-canvas-navigation .mm-menu .sub-menu li span.title,
.bwp-canvas-vertical .mm-menu .sub-menu li>a:not(.mm-next),
.bwp-canvas-vertical .mm-menu .sub-menu li span.title{
  text-transform:none;
}

/* T-1.1 — titres d articles, meme cause, memes regles relevees dans
   css/template.css :
     l. 5823-5826 .entry-title : listes (page des articles, archives) et
                  article seul ;
     l. 5336-5339 liens « Precedent / Suivant » de l article seul.
   Le bloc Guides de l accueil n en porte aucune (mesure T-1.1). La casse
   ENREGISTREE de certains titres reste a arbitrer : non modifiee ici. */
.entry-title,
.post-single .prevNextArticle .nextArticle a,
.post-single .prevNextArticle .previousArticle a{
  text-transform:none;
}

/* T-1 — selecteur du nombre de produits par page. Le libelle « Show » est
   pose en absolu a 15px du bord ; le parent reserve 50px a gauche de la
   valeur (template.css l. 17870-17871). « Afficher », plus long (42px mesures
   a 1440), chevauchait la valeur « 12 ». Retrait porte a 64px : 15px de bord,
   42px de libelle, 7px d ecart. Meme selecteur que le parent. */
.bwp-top-bar .digic-woocommerce-sort-count .pwb-dropdown-toggle{
  padding-left:64px;
}

/* FP-1 — casse des notices WooCommerce. Meme cause que T-1 : le parent
   capitalise chaque mot des notices d information et de succes
   (css/template.css l. 15413-15415, « .woocommerce-info,.woocommerce-message »),
   d ou « “Kaspersky Plus” A Été Ajouté À Votre Panier. ». La regle vaut pour
   toutes ces notices du site (fiche, panier, commande, compte) : elle est
   corrigee pour toutes, au meme selecteur. Le bouton « Voir le panier » des
   notices garde ses capitales (text-transform:uppercase, regle propre au
   lien .wc-forward). */
.woocommerce-info,.woocommerce-message{
  text-transform:none;
}

/* COM-1 — bouton « Commander » du mini-panier (en-tete, tout le site). Le
   parent lui donne un fond gris #a0a0a0 sous un texte blanc
   (css/template.css, « .mini-cart .cart-popup .buttons .button »), soit
   2,6:1. Fond a la couleur de marque #218663, texte blanc : 4,5:1. Le survol
   du parent (voile .btn-default:before, meme #218663) est inchange. Libelle
   et casse inchanges. #218663 ne doit pas etre eclairci : le texte blanc
   passerait sous 4,5:1. */
.mini-cart .cart-popup .buttons .button.checkout{
  background:#218663;
  color:#fff;
}

/* MC-1 — icone utilisateur de l en-tete (tout le site), lien vers Mon compte
   (inc/entete.php). Zone cliquable portee de 25 x 35 a 45 x 45 px par une
   marge interieure compensee par une marge negative : l icone garde sa taille
   et sa place. Focus visible : modele C-8 (css/accueil.css, section 11).
   En-tetes ordinateur et collant seulement ; la barre mobile fixe est hors
   lot. */
.header-desktop .login-header .smg-lien-compte,
.header-sticky .login-header .smg-lien-compte{
  display:inline-block;
  padding:5px 10px;
  margin:-5px -10px;
}
.login-header .smg-lien-compte:focus-visible{
  outline:2px solid transparent;
  outline-offset:2px;
  box-shadow:0 0 0 2px #fff, 0 0 0 5px #1a6b4f;
}

/* FCFA-1 — total du mini-panier (tout le site). Libelle et montant cote a
   cote dans .total-cart (flex, template.css l. 16897) ; avec « FCFA »
   (inc/devise.php), le montant, en 24 px, ne tenait plus dans ses 153 px et se
   coupait a l espace des milliers (mesure a 360 et 390 px, panneau ouvert).
   Montant d un bloc ; s il manque de place, il passe sous « Sous-total : »,
   aligne a droite. Corps de texte inchange. */
.mini-cart .cart-popup .total-cart{
  flex-wrap:wrap;
}
.mini-cart .cart-popup .total-cart .total-price{
  margin-left:auto;
}
.mini-cart .cart-popup .total-cart .total-price .woocommerce-Price-amount{
  white-space:nowrap;
}
/* P11-C1 (A4) — suffixe « TTC » du total du mini-panier, seul montant du
   site affiche sans lui : les prix portent le suffixe de WooCommerce
   (woocommerce_price_display_suffix, small.woocommerce-price-suffix, 0,8 em
   du prix), le panier et la commande « dont X de TVA ». Le montant est deja
   TTC (mini-cart.php, PAN-1). Contenu genere sur le seul montant de
   .total-cart : ni les lignes d articles, ni le fragment HTML, ni le calcul
   ne changent. Dans le span insecable du montant, « TTC » lui reste accole.
   14,4 px comme le suffixe des fiches, noir sur blanc. */
.mini-cart .cart-popup .total-cart .total-price .woocommerce-Price-amount::after{
  content:"\00a0TTC";
  font-size:.6em;
  font-weight:400;
}

/* MC-1.2 — page de commande recue : « dont X de TVA » sur sa propre ligne
   sous le total (inc/mon-compte.php, Q17), rendu du detail de commande de
   Mon compte (css/mon-compte.css, section 9). Ni commande.css ni
   mon-compte.css ne sont chargees sur cette page ; cette feuille l est
   partout : aucune requete ni condition de chargement ajoutee. Bornee a la
   classe de corps woocommerce-order-received, posee par WooCommerce sur
   cette seule page. */
.woocommerce-order-received .woocommerce-table--order-details .smg-panier-tva{
  display:block;
  margin-top:4px;
  font-size:14px;
  font-weight:400;
  line-height:1.4;
  color:#636363;
  white-space:nowrap;
}
.woocommerce-order-received .woocommerce-table--order-details .smg-panier-tva .woocommerce-Price-amount{
  font-size:inherit;
  font-weight:inherit;
  color:inherit;
}
/* MC-1.3 — meme page : la mention insecable ci-dessus, avec les 30 px de
   marge interieure laterale des cellules (bootstrap.css, template.css),
   portait le tableau a 367 px pour 345 px a 360 px. 15 px sous 576 px, comme
   le detail de commande de Mon compte (css/mon-compte.css, section 7). */
@media (max-width: 575px){
  .woocommerce-order-received .woocommerce-table--order-details th,
  .woocommerce-order-received .woocommerce-table--order-details td{
    padding-left:15px;
    padding-right:15px;
  }
}
/* P8-2 (QP2) — nom d auteur des articles sans lien (inc/seo.php) : meme
   couleur que l ancien lien, donnee par « .content-image-single .entry-by a »
   (template.css:4940, #636363), qui ne vise plus le nom. Mesure 13/10/2026. */
.content-image-single .entry-by .smg-auteur{
  color:#636363;
}

/* P8-3 — structure des titres (inc/seo.php section H, gabarits surcharges).
   Une balise change, l apparence non : chaque regle ci-dessous est le jumeau,
   a specificite egale et dans le meme ordre, d une regle qualifiee par la
   balise d origine. template.css n est pas modifie (sortie de
   tools/recolor-digic-css.php). Mesure par remise de la balise d origine
   dans le DOM et comparaison des styles calcules. */

/* C2 — « Toutes les categories » de l en-tete en div : la regle
   « .categories-vertical-menu > div » de template.css (ombre et largeur du
   panneau) le visait desormais. */
.categories-vertical-menu > div.widget-title{
  box-shadow:none;
  width:auto;
}

/* C1 — titre du contenu des pages (CGV, CGU) en div.h1 : la classe .h1 de
   bootstrap.css porte la taille de h1, mais pas la marge haute de
   « h1, h2, h3, h4, h5, h6 { margin-top: 1.5em } » (bootstrap.css du theme). */
div.wp-block-heading.h1{
  margin-top:1.5em;
}

/* C3 — titre des cartes produits en h2 : jumeaux des huit regles
   « h3.product-title » de template.css. */
.products-list.grid .product-wapper .products-content h2.product-title{
  font-size:14px;
  margin-top:0;
  display:block;
  margin-bottom:7px;
  font-weight:500;
  font-family:Poppins,sans-serif;
}
.products-list.grid .product-wapper .products-content h2.product-title a{
  color:#216fe6;
}
.products-list.grid .product-wapper .products-content h2.product-title a:hover{
  color:#218663;
}
.products-list.grid .product-wapper.content-product6 .products-content h2.product-title{
  font-size:16px;
}
.products-list.list .product-wapper .products-content h2.product-title{
  font-size:14px;
  margin-top:0;
  display:block;
  margin-bottom:7px;
  font-weight:500;
  font-family:Poppins,sans-serif;
}
.woo-default-2 .products-list.grid .product-wapper .products-content h2.product-title,
.woo-slider-default .products-list.grid .product-wapper .products-content h2.product-title{
  margin-bottom:10px;
}
.woo-default-2 .products-list.grid .product-wapper .products-content h2.product-title a,
.woo-slider-default .products-list.grid .product-wapper .products-content h2.product-title a{
  line-height:24px;
}
.bwp_product_list.sidebar .products-list.grid .product-wapper.content-product3 .products-content h2.product-title{
  margin-bottom:0;
  margin-top:3px;
}
/* C3 — titre des articles des listes (Guides, archives d articles) en h2 :
   jumeaux des regles « h3.entry-title » de template.css:2936, 4719-4736,
   4855-4867, dans le meme ordre. */
body.search.search-results .blog-content-standar h2.entry-title{
  font-size:25px;
}
.author .blog-content-standar h2.entry-title,.category-posts .cate-post-content .blog-content-standar h2.entry-title,.search .blog-content-standar h2.entry-title{
  font-size:35px;
  line-height:40px;
  width:100%;
  margin:0 0 20px;
  position:relative;
}
@media (min-width: 767px){
  .author .blog-content-standar h2.entry-title,.category-posts .cate-post-content .blog-content-standar h2.entry-title,.search .blog-content-standar h2.entry-title{
    padding-bottom:15px;
  }
  .author .blog-content-standar h2.entry-title:before,.category-posts .cate-post-content .blog-content-standar h2.entry-title:before,.search .blog-content-standar h2.entry-title:before{
    content:"";
    width:100px;
    height:1px;
    background:#d5d5d5;
    position:absolute;
    bottom:0;
    left:0;
  }
  .rtl .author .blog-content-standar h2.entry-title:before,.rtl .category-posts .cate-post-content .blog-content-standar h2.entry-title:before,.rtl .search .blog-content-standar h2.entry-title:before{
    right:0;
    left:auto;
  }
}
@media (max-width: 767px){
  .author .blog-content-standar h2.entry-title,.category-posts .cate-post-content .blog-content-standar h2.entry-title,.search .blog-content-standar h2.entry-title{
    font-size:30px;
  }
}
.author h2.entry-title,.category-posts .cate-post-content h2.entry-title,.search h2.entry-title{
  margin-bottom:5px;
  line-height:1.3;
  font-size:30px;
  word-break:break-word;
  margin-top:5px;
}
@media (max-width: 991px){
  .author h2.entry-title,.category-posts .cate-post-content h2.entry-title,.search h2.entry-title{
    margin-top:10px;
  }
}

/* Jumeau de la finition A6 (section 7). */
.products-list.grid .product-wapper .products-content h2.product-title a{
  color:#333;
}
.products-list.grid .product-wapper .products-content h2.product-title a:hover,
.products-list.grid .product-wapper .products-content h2.product-title a:focus{
  color:#218663;
}

/* P11-C1 (A1) — H1 du bandeau de titre (digic_get_page_title(),
   digic/inc/template-tags.php:245) sur le panier, vide ou rempli, et la page
   404. template.css le met en display:none (l. 25117 « body.woocommerce-cart
   .page-title », l. 3926 « .error404 .bwp-main .page-title ») : c etait le seul
   H1 de ces pages et il sortait de l arbre d accessibilite. Le bandeau est
   masque visuellement (technique screen-reader-only) : le H1 est expose,
   l affichage ne change pas (ni hauteur, ni marge, deja nulles). Le fil
   d Ariane du bandeau reste non rendu, comme avant. Bornee a ces deux classes
   de corps : ailleurs, le bandeau est visible ou un autre H1 existe (releve
   B1 de P11-C1). */
body.woocommerce-cart .bwp-main .page-title,
body.error404 .bwp-main .page-title{
  display:block;
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
body.woocommerce-cart .bwp-main .page-title .breadcrumb,
body.error404 .bwp-main .page-title .breadcrumb{
  display:none;
}

/* ICO-PAN — chariot SVG du bouton du panier de l en-tete (bureau, collant,
   mobile), pose par woocommerce/minicart-ajax.php a la place du sac icomoon.
   Trait en currentColor : noir, vert #218663 au survol, par les regles du
   parent sur .icons-cart et a (template.css l. 929, 937, 2903). Les reglages
   du parent portes par l icone (template.css l. 939, 941, 1539 : taille,
   decalage, survol, transition) visaient i ; ils sont repris ici pour le SVG.
   Le compteur .cart-count reste positionne par le parent sur .icons-cart ;
   a partir de 992 px (bureau et collant), il est decale de 3 a 4 px vers le
   haut et la droite : le coin haut droit du panier, plus large que le sac,
   passait sous la pastille. Mobile : decalage du parent conserve, le
   chariot est descendu de 2 px pour s aligner sur les icones voisines.
   Focus clavier : anneau du modele MC-1 (icone du compte, ci-dessus). Le
   lien a.cart-icon, en ligne, contient le bloc .icons-cart : l anneau ne
   se dessinait que sur un fragment vide. Il passe en inline-block, comme
   le lien du compte, sans deplacer le chariot ni le compteur (mesure). */
.mini-cart .cart-icon .smg-icone-panier{
  display:inline-block;
  position:relative;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
  -webkit-transition:all .3s ease;
  transition:all .3s ease;
}
.bwp-header .header-page-link .mini-cart .cart-icon .smg-icone-panier{
  width:28px;
  height:28px;
  top:2px;
}
.bwp-header .header-page-link .mini-cart .cart-icon .icons-cart:hover .smg-icone-panier{
  top:-1px;
}
.bwp-header .header-mobile .mini-cart .cart-icon .smg-icone-panier{
  width:20px;
  height:20px;
  top:6px;
}
@media (min-width:992px){
  .bwp-header .header-page-link .mini-cart .cart-count{
    top:-9px;
    right:-10px;
  }
}
.mini-cart .cart-icon{
  display:inline-block;
}
.mini-cart .cart-icon:focus-visible{
  outline:2px solid transparent;
  outline-offset:2px;
  box-shadow:0 0 0 2px #fff, 0 0 0 5px #1a6b4f;
}

/* ICO-PAN-2 — le chariot de l en-tete (bloc ICO-PAN) remplace le sac icomoon
   \e900 des boutons d ajout au panier : rond de la bande de survol des cartes
   content-product5 (template.css l. 19785), bouton du bas des cartes
   content-product4 (l. 20004 : accueil, boutique, categories, produits
   associes), bouton de la fiche et de l apercu rapide (l. 22850).
   Le pseudo-element garde sa place et ses regles : content vide, le dessin est
   un masque (meme trace que le SVG de l en-tete) sur un degrade uni en
   currentColor, qui suit les couleurs et survols du parent. Degrade et non
   background-color : la transition all du theme animerait la couleur de fond
   et montrerait un disque plein a l entree en chargement, le masque tombant
   d un coup ; une background-image bascule avec lui. Taille en em : la
   font-size du parent continue de piloter l apparition (0 puis 14px au survol
   en content-product4). Seuls les boutons d ajout simple sont vises : choix
   des options et lire la suite (\24), voir le panier (\4e) et chargement
   (anneau) gardent leur pseudo-element. */
.products-list.grid .product-wapper .products-thumb .product-button .add_to_cart_button.product_type_simple:not(.loading)::before,
.products-list.grid .product-wapper.content-product4 .btn-atc a.add_to_cart_button.product_type_simple:not(.loading)::before,
:is(.quickview-container, .single-product) .bwp-single-info .single_add_to_cart_button.button:not(.loading)::before{
  content:"";
  display:inline-block;
  width:1.2em;
  height:1.2em;
  vertical-align:middle;
  background-image:linear-gradient(currentColor, currentColor);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h2.6l2.3 11.5h11.5l2.4-8H5.3'/%3E%3Ccircle cx='9' cy='19.5' r='1.6'/%3E%3Ccircle cx='17' cy='19.5' r='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h2.6l2.3 11.5h11.5l2.4-8H5.3'/%3E%3Ccircle cx='9' cy='19.5' r='1.6'/%3E%3Ccircle cx='17' cy='19.5' r='1.6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.products-list.grid .product-wapper.content-product4 .btn-atc a.add_to_cart_button.product_type_simple:not(.loading)::before{
  left:calc(50% - .6em);
  top:calc(50% - .6em);
}

/* VIS-ACC-INT-2 — voile de lisibilite des deux bannieres du hero (bwp_image
   e685e14 Microsoft, 94f7afb devis). Les visuels portent des tuiles a lettres
   (W, X, O) et un chemisier blanc sous le texte blanc : un degrade sombre
   #071B33, cote texte, est pose entre l image et le texte. Pseudo-element de
   .bwp-image, positionne sur .banner-wrapper (relative, overflow hidden, coins
   arrondis) et peint avant .banner-wrapper-infor, qui reste au-dessus ;
   pointer-events none : le lien, le survol et le texte alternatif de l image
   ne changent pas. Opacites et arrets calibres sur le texte reel a 1440, 768
   et 390 : 0,98 jusqu a la fin du titre sur les tuiles (60 %, 74 % en
   tablette, ou le titre passe sur trois tuiles ; a 0,92 les lettres W et O
   restaient perceptibles), 0,62 jusqu a 78 % sous le corps de la banniere
   devis. Les bannieres S5 n. 6 et 7 sont traitees plus bas (VIS-ACC-INT-3),
   en tablette et mobile seulement ; les autres ne sont pas visees. */
.home .elementor-element-e685e14 .bwp-image::after,
.home .elementor-element-94f7afb .bwp-image::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
}
.home .elementor-element-e685e14 .bwp-image::after{
  background:linear-gradient(90deg,
    rgba(7,27,51,.98) 0%,
    rgba(7,27,51,.98) 60%,
    rgba(7,27,51,0) 100%);
}
.home .elementor-element-94f7afb .bwp-image::after{
  background:linear-gradient(90deg,
    rgba(7,27,51,.62) 0%,
    rgba(7,27,51,.62) 78%,
    rgba(7,27,51,0) 100%);
}
@media (min-width:768px) and (max-width:1199px){
  .home .elementor-element-e685e14 .bwp-image::after{
    background:linear-gradient(90deg,
      rgba(7,27,51,.98) 0%,
      rgba(7,27,51,.98) 74%,
      rgba(7,27,51,0) 100%);
  }
}
/* VIS-ACC-INT-3 — meme voile sur les bannieres S5 n. 6 (ae12f71 Autodesk) et
   n. 7 (ada0ab2 securite), sous le point de rupture tablette d Elementor
   (1199px) seulement : le rendu bureau reste inchange. En tablette, le texte
   passe sur le batiment et l ecran (n. 6), sur le bouclier vert (n. 7). 0,98
   jusqu a la fin du texte, calibre sur le rendu reel a 768 et 390 (a 0,85 et
   0,95, bouclier et ecrans restaient perceptibles sous les glyphes) :
   tablette 60 % (n. 6, texte jusqu a 52 %) et 66 % (n. 7, 59 %) ; mobile, ou
   la banniere passe en pleine largeur, 80 % (n. 6, 77 %) et 68 % (n. 7, 63 %).
   VIS-FIN-2 — S5 n. 8 (d83606c licences) recoit le voile de n. 7, sans
   nouvelle valeur : texte jusqu a 59 % en tablette et 56 % en mobile. */
@media (max-width:1199px){
  .home .elementor-element-ae12f71 .bwp-image::after,
  .home .elementor-element-ada0ab2 .bwp-image::after,
  .home .elementor-element-d83606c .bwp-image::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
  }
  .home .elementor-element-ae12f71 .bwp-image::after{
    background:linear-gradient(90deg,
      rgba(7,27,51,.98) 0%,
      rgba(7,27,51,.98) 60%,
      rgba(7,27,51,0) 100%);
  }
  .home .elementor-element-ada0ab2 .bwp-image::after,
  .home .elementor-element-d83606c .bwp-image::after{
    background:linear-gradient(90deg,
      rgba(7,27,51,.98) 0%,
      rgba(7,27,51,.98) 66%,
      rgba(7,27,51,0) 100%);
  }
}
@media (max-width:767px){
  .home .elementor-element-ae12f71 .bwp-image::after{
    background:linear-gradient(90deg,
      rgba(7,27,51,.98) 0%,
      rgba(7,27,51,.98) 80%,
      rgba(7,27,51,0) 100%);
  }
  .home .elementor-element-ada0ab2 .bwp-image::after,
  .home .elementor-element-d83606c .bwp-image::after{
    background:linear-gradient(90deg,
      rgba(7,27,51,.98) 0%,
      rgba(7,27,51,.98) 68%,
      rgba(7,27,51,0) 100%);
  }
}
/* VIS-FIN-4 — voile de lisibilite des bannieres S5 n. 6, 7 et 8 (ae12f71,
   ada0ab2, d83606c) sur ordinateur, a partir de 1200px : meme degrade #071B33
   cote texte, plus leger qu en tablette et mobile (V3 de VIS-FIN-3). 0,60
   jusqu a 65 %, nul a 85 %, commun aux trois bannieres ; mesure par injection
   a 1366 et 1536 : contraste minimal 4,61, tous les textes a 4,6 ou plus.
   Requete ecrite comme le complement exact de la regle tablette (max-width:
   1199px) : une largeur fractionnaire entre 1199 et 1200px (zoom) recoit ce
   voile au lieu d aucun ; minimum 4,56 dans cet intervalle. */
@media not all and (max-width:1199px){
  .home .elementor-element-ae12f71 .bwp-image::after,
  .home .elementor-element-ada0ab2 .bwp-image::after,
  .home .elementor-element-d83606c .bwp-image::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(90deg,
      rgba(7,27,51,.6) 0%,
      rgba(7,27,51,.6) 65%,
      rgba(7,27,51,0) 85%);
  }
}
/* WAVE-1 — page de commande recue : bloc de paiement Wave
   (inc/paiement-wave-om.php, point 4). Bornee a la classe de corps
   woocommerce-order-received, comme MC-1.2 ci-dessus : aucune requete ni
   condition de chargement ajoutee. Ordre du DOM : montant, bouton, QR, apres
   le paiement, etapes ; a partir de 768px, le QR passe dans une colonne
   etroite de 180px, a 48px a droite du montant et du bouton (colonne a la
   largeur de son contenu, grille calee a gauche). Boutons : #1a6b4f (6,45:1 avec
   le blanc), texte #333333 sur blanc (12,6:1). */
.woocommerce-order-received .smg-wave{
  margin:0 0 30px;
  padding:20px;
  border:1px solid #dedede;
  color:#333333;
}
.woocommerce-order-received .smg-wave__titre{
  margin:0 0 16px;
}
.woocommerce-order-received .smg-wave__paiement{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:16px;
  margin-bottom:24px;
}
.woocommerce-order-received .smg-wave__paiement p,
.woocommerce-order-received .smg-wave__action{
  margin:0;
}
.woocommerce-order-received .smg-wave__montant-libelle{
  display:block;
  font-size:14px;
  line-height:1.4;
}
.woocommerce-order-received .smg-wave__montant-valeur{
  display:block;
  font-size:28px;
  font-weight:700;
  line-height:1.3;
  white-space:nowrap;
}
.woocommerce-order-received .smg-wave__montant-valeur .woocommerce-Price-amount{
  font-size:inherit;
  font-weight:inherit;
  color:inherit;
}
.woocommerce-order-received .smg-wave__qr img{
  display:block;
  width:180px;
  height:180px;
  max-width:100%;
}
.woocommerce-order-received .smg-wave__bouton{
  display:inline-block;
  padding:12px 24px;
  border:2px solid #1a6b4f;
  border-radius:4px;
  background:#1a6b4f;
  color:#ffffff;
  font-weight:600;
  line-height:1.4;
  text-decoration:none;
}
.woocommerce-order-received .smg-wave__bouton:hover,
.woocommerce-order-received .smg-wave__bouton:focus{
  background:#071B33;
  border-color:#071B33;
  color:#ffffff;
}
.woocommerce-order-received .smg-wave__bouton:focus-visible{
  outline:2px solid #071B33;
  outline-offset:2px;
}
.woocommerce-order-received .smg-wave__bouton--whatsapp{
  background:#ffffff;
  color:#1a6b4f;
}
.woocommerce-order-received .smg-wave__sous-titre{
  margin:0 0 12px;
  font-size:18px;
}
.woocommerce-order-received .smg-wave > .smg-wave__action{
  margin-bottom:24px;
}
.woocommerce-order-received .smg-wave__etapes{
  margin:0;
  padding-left:20px;
}
@media (min-width:768px){
  .woocommerce-order-received .smg-wave__paiement{
    grid-template-columns:max-content 180px;
    justify-content:start;
    column-gap:48px;
  }
  .woocommerce-order-received .smg-wave__qr{
    grid-column:2;
    grid-row:1 / span 2;
  }
}
/* WAVE-1.2 — logo Wave (images/wave-logo.png, 230 x 101, alt vide) :
   titre du bloc ci-dessus, logo de 30px aligne au centre du texte, qui
   revient a la ligne a cote du logo plutot que dessous (390px) ; icone de
   la passerelle bacs au checkout (filtre woocommerce_gateway_icon), 24px de
   haut apres le libelle, sans toucher au bouton radio ni a la description ;
   ancree sur #payment pour l emporter sur la regle du theme
   .checkout .woocommerce-checkout-payment .payment_methods img (1.5625em,
   marges de 16px) ; marges verticales negatives (-3px / -2px, mesurees) :
   la boite du logo (19px) reste sous la hauteur de ligne du libelle, qui ne
   grandit pas, et son centre suit celui du texte. */
.woocommerce-order-received .smg-wave__titre{
  display:flex;
  align-items:center;
  gap:12px;
}
.woocommerce-order-received .smg-wave__titre > span{
  min-width:0;
}
.woocommerce-order-received .smg-wave__logo{
  display:block;
  flex:none;
  width:auto;
  height:30px;
}
#payment ul.payment_methods li img.smg-wave-logo{
  display:inline-block;
  width:auto;
  height:24px;
  margin:-3px 0 -2px 8px;
  padding:0;
  vertical-align:middle;
  box-shadow:none;
}
