/*
 Theme Name:   2DA Informatique Child
 Theme URI:    https://2dainformatique.com/
 Description:  Thème enfant pour 2DA Informatique – basé sur Royal Elementor Kit
 Author:       2DA Informatique
 Template:     royal-elementor-kit
 Version:      2.0.0
 License:      GNU General Public License v2 or later
 Text Domain:  2da-child
*/

/* ============================================================
   VARIABLES
   ============================================================ */
:root {
  --2da-red:      #CC1F1F;
  --2da-red-d:    #a81515;
  --2da-blue:     #1A4FA0;
  --2da-blue-d:   #0d2460;
  --2da-dark:     #0d0d14;
  --2da-white:    #ffffff;
  --2da-off:      #f5f7fc;
  --2da-light:    #eef1f8;
  --2da-gray:     #8a8fa8;
  --2da-border:   rgba(26,79,160,0.13);
  --2da-shadow:   0 4px 32px rgba(26,79,160,0.09);
  --2da-shadow-h: 0 12px 48px rgba(26,79,160,0.17);
  --font-d:  'Bebas Neue', sans-serif;
  --font-h:  'Rajdhani', sans-serif;
  --font-b:  'DM Sans', sans-serif;
}

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Sans:wght@300;400;500;600;700&family=Rajdhani:wght@500;600;700&display=swap');

/* ============================================================
   RESET & BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html, body {
  font-family: var(--font-b) !important;
  -webkit-font-smoothing: antialiased;
}

/* ============================================================
   FORCE PAGE BACKGROUND — blanc sur toutes les pages
   ============================================================ */
body,
body.woocommerce,
body.woocommerce-page,
body.woocommerce-shop,
body.single-product,
body.tax-product_cat,
body.post-type-archive-product,
body.woocommerce-cart,
body.woocommerce-checkout,
body.page,
body.home,
.site-main,
#main,
main,
.e-page,
.elementor-page {
  background-color: var(--2da-off) !important;
  background-image: none !important;
}

/* ============================================================
   HEADER — liens visibles (texte bleu foncé sur fond blanc)
   Cible toutes les variantes Royal Addons / Elementor / WordPress
   ============================================================ */

/* ── Tous les liens dans le header ───────────────────────── */
.site-header a,
.site-header li a,
#masthead a,
#masthead li a,
.header-wrap a,
.header-wrap li a,

/* Royal Addons nav widget */
.wpr-nav-menu > li > a,
.wpr-nav-menu li a,
[class*="wpr-nav"] a,

/* Elementor nav menu widget dans le header */
.elementor-location-header a,
.elementor-location-header .elementor-nav-menu a,
.elementor-location-header .elementor-nav-menu--main > li > a,
.elementor-nav-menu--main .elementor-item,
.elementor-nav-menu--main .elementor-item:focus,
.elementor-nav-menu--main .elementor-item:visited,

/* Menu WordPress standard */
.main-navigation > div > ul > li > a,
nav.main-navigation ul li a {
  color: var(--2da-dark) !important;
  font-family: var(--font-h) !important;
  font-weight: 600 !important;
}

/* Hover */
.site-header a:hover,
.site-header li a:hover,
#masthead a:hover,
.wpr-nav-menu li a:hover,
.elementor-location-header a:hover,
.elementor-nav-menu--main .elementor-item:hover,
.elementor-nav-menu--main .elementor-item.elementor-item-active {
  color: var(--2da-red) !important;
}

/* ── Section navigation (fond bleu) — texte BLANC ──────── */
/* Si le header Royal Addons a une 2ème rangée de nav sur fond bleu */
.site-header .nav-row,
.site-header .menu-row,
.elementor-location-header .nav-background,
[class*="nav-wrap"],
.wpr-menu-wrap {
  background: var(--2da-blue) !important;
}
.site-header .nav-row a,
.site-header .menu-row a,
.wpr-menu-wrap a,
[class*="nav-wrap"] a {
  color: #ffffff !important;
}
[class*="nav-wrap"] a:hover,
.wpr-menu-wrap a:hover {
  color: #ffffff !important;
  background: rgba(255,255,255,0.15) !important;
}

/* ── Icônes header (compte, favoris, panier) ────────────── */
.site-header .header-icons a,
.site-header .cart-contents,
.site-header [class*="header-icon"] a,
.elementor-location-header [class*="icon"] a,
.wpr-header-cart a,
.wpr-header-account a {
  color: var(--2da-dark) !important;
}
.site-header .cart-contents:hover,
.wpr-header-cart a:hover {
  color: var(--2da-red) !important;
}

/* ── Montant panier ──────────────────────────────────────── */
.site-header .amount,
.wpr-header-cart .amount,
.elementor-location-header .amount {
  color: var(--2da-blue) !important;
  font-family: var(--font-h) !important;
  font-weight: 700 !important;
}

/* ── Logo texte (si pas d'image) ─────────────────────────── */
.site-title a,
.site-branding .site-title a {
  color: var(--2da-blue) !important;
  font-family: var(--font-d) !important;
  font-size: 26px !important;
  letter-spacing: 2px !important;
  text-decoration: none !important;
}
.site-description {
  color: var(--2da-red) !important;
  font-family: var(--font-h) !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
}

/* ── Sous-menus (fond blanc, texte foncé) ───────────────── */
.site-header .sub-menu,
.site-header ul ul,
.wpr-nav-menu .sub-menu,
.elementor-nav-menu--dropdown,
.elementor-nav-menu--dropdown.elementor-nav-menu__container {
  background: #ffffff !important;
  border-top: 3px solid var(--2da-red) !important;
  border-radius: 0 0 16px 16px !important;
  box-shadow: 0 16px 48px rgba(0,0,0,0.13) !important;
}
.site-header .sub-menu a,
.site-header ul ul a,
.wpr-nav-menu .sub-menu a,
.elementor-nav-menu--dropdown a,
.elementor-nav-menu--dropdown .elementor-item {
  color: var(--2da-dark) !important;
  font-family: var(--font-b) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  transition: all 0.15s !important;
}
.site-header .sub-menu a:hover,
.site-header ul ul a:hover,
.wpr-nav-menu .sub-menu a:hover,
.elementor-nav-menu--dropdown a:hover {
  color: var(--2da-blue) !important;
  background: var(--2da-light) !important;
  padding-left: 26px !important;
}

/* ============================================================
   TOPBAR
   ============================================================ */
.site-topbar {
  background: var(--2da-dark) !important;
  color: rgba(255,255,255,0.75);
  font-size: 12px;
  padding: 7px 20px;
  text-align: center;
  letter-spacing: 0.4px;
  font-family: var(--font-b);
  border-bottom: none;
  z-index: 1001;
  position: relative;
}
.site-topbar strong { color: var(--2da-red); font-weight: 700; }
.site-topbar a { color: rgba(255,255,255,0.75); text-decoration: none; transition: color 0.2s; }
.site-topbar a:hover { color: var(--2da-red); }

/* ============================================================
   HEADER — forcer fond BLANC avec bordure rouge
   ============================================================ */
.site-header,
header.site-header,
#masthead,
.header-wrap,
.e-con-inner,
[class*="header"],
.wre-header {
  background: var(--2da-white) !important;
  background-color: var(--2da-white) !important;
  background-image: none !important;
}

/* Bordure rouge en bas du header */
.site-header,
header.site-header,
#masthead {
  border-bottom: 3px solid var(--2da-red) !important;
  box-shadow: 0 2px 20px rgba(0,0,0,0.07) !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
}

/* Header compact au scroll */
.header-compact {
  padding-top: 6px !important;
  padding-bottom: 6px !important;
}

/* Logo */
.custom-logo, .site-logo img, .custom-logo-link img {
  max-height: 58px !important;
  width: auto !important;
}

/* Titre du site */
.site-title a, .site-title {
  font-family: var(--font-d) !important;
  font-size: 26px !important;
  color: var(--2da-blue) !important;
  letter-spacing: 2px !important;
}
.site-description {
  font-family: var(--font-h) !important;
  font-size: 10px !important;
  color: var(--2da-red) !important;
  font-weight: 700 !important;
  letter-spacing: 3px !important;
  text-transform: uppercase !important;
}

/* ============================================================
   BARRE DE RECHERCHE HEADER
   ============================================================ */
.site-header .search-form,
.site-header form[role="search"],
.site-header .woocommerce-product-search,
#searchform,
.header-search {
  display: flex !important;
  border: 2px solid var(--2da-border) !important;
  border-radius: 50px !important;
  overflow: hidden !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
  background: white !important;
  max-width: 540px !important;
}
.site-header .search-form:focus-within,
.site-header .woocommerce-product-search:focus-within {
  border-color: var(--2da-blue) !important;
  box-shadow: 0 0 0 4px rgba(26,79,160,0.09) !important;
}
.site-header .search-field,
.site-header input[type="search"],
.site-header input[type="text"] {
  border: none !important;
  outline: none !important;
  padding: 11px 20px !important;
  font-family: var(--font-b) !important;
  font-size: 14px !important;
  background: transparent !important;
  flex: 1 !important;
  box-shadow: none !important;
}
.site-header .search-submit,
.site-header button[type="submit"] {
  background: var(--2da-blue) !important;
  color: white !important;
  border: none !important;
  padding: 10px 22px !important;
  cursor: pointer !important;
  font-size: 15px !important;
  transition: background 0.2s !important;
  border-radius: 0 !important;
}
.site-header .search-submit:hover,
.site-header button[type="submit"]:hover {
  background: var(--2da-red) !important;
}

/* ============================================================
   NAVIGATION PRINCIPALE — fond BLEU
   ============================================================ */
.main-navigation,
nav.main-navigation,
#site-navigation,
.primary-menu-wrap,
.nav-menu-wrap,
[class*="primary-nav"],
.wre-nav,
.header-nav-wrap {
  background: var(--2da-blue) !important;
  background-color: var(--2da-blue) !important;
  background-image: none !important;
}

/* Force texte blanc dans nav */
.main-navigation a,
.main-navigation li > a,
nav.main-navigation a,
#site-navigation a,
.primary-menu > li > a {
  color: #ffffff !important;
  font-family: var(--font-h) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  padding: 14px 17px !important;
  white-space: nowrap !important;
  transition: background 0.2s !important;
  text-decoration: none !important;
}
.main-navigation li:hover > a,
.main-navigation li.current-menu-item > a,
.main-navigation li.current-menu-ancestor > a {
  background: rgba(255,255,255,0.15) !important;
  color: #ffffff !important;
}

/* Item "Nouveau arrivage" — fond rouge */
.main-navigation li.menu-highlight > a,
.main-navigation li:last-child > a,
.main-navigation li.current_page_item.new-arrivals > a {
  background: var(--2da-red) !important;
}

/* Sous-menus dropdown */
.main-navigation .sub-menu,
.main-navigation ul ul {
  background: white !important;
  border-top: 3px solid var(--2da-red) !important;
  border-radius: 0 0 16px 16px !important;
  box-shadow: 0 20px 60px rgba(0,0,0,0.15) !important;
  min-width: 260px !important;
  padding: 8px 0 !important;
}
.main-navigation .sub-menu a,
.main-navigation ul ul a {
  color: var(--2da-dark) !important;
  font-family: var(--font-b) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  padding: 10px 20px !important;
  transition: background 0.15s, padding-left 0.15s !important;
}
.main-navigation .sub-menu a:hover,
.main-navigation ul ul a:hover {
  background: var(--2da-light) !important;
  color: var(--2da-blue) !important;
  padding-left: 28px !important;
}

/* ============================================================
   TRUST BAR
   ============================================================ */
.trust-bar {
  background: var(--2da-white);
  border-bottom: 1px solid var(--2da-border);
  padding: 14px 20px;
}
.trust-bar-inner {
  max-width: 1400px; margin: 0 auto;
  display: flex; justify-content: space-around; flex-wrap: wrap; gap: 12px;
}
.trust-item { display: flex; align-items: center; gap: 10px; font-size: 13px; }
.trust-item .trust-icon { font-size: 20px; }
.trust-item strong { font-weight: 700; font-size: 13px; display: block; color: var(--2da-dark); }
.trust-item span { color: var(--2da-gray); font-size: 11px; }

/* ============================================================
   SHOP / CATEGORY — arrière-plan et layout
   ============================================================ */
.woocommerce-shop,
.woocommerce-page,
.tax-product_cat,
.post-type-archive-product {
  background: var(--2da-off) !important;
}

/* Page boutique — titre */
.woocommerce-products-header__title,
.page-title,
h1.page-title,
.woocommerce-shop h1,
.archive-title {
  font-family: var(--font-d) !important;
  font-size: 38px !important;
  letter-spacing: 2px !important;
  color: var(--2da-dark) !important;
  margin-bottom: 24px !important;
}

/* Conteneur boutique */
.woocommerce-page #primary,
.woocommerce-shop #primary,
.woocommerce #primary,
.site-main.woocommerce {
  background: transparent !important;
}

/* Résultat de recherche WooCommerce */
.woocommerce-result-count {
  font-size: 13px;
  color: var(--2da-gray);
  font-family: var(--font-b);
}
.woocommerce-ordering select {
  border: 2px solid var(--2da-border) !important;
  border-radius: 10px !important;
  padding: 8px 14px !important;
  font-family: var(--font-b) !important;
  font-size: 13px !important;
  outline: none !important;
}
.woocommerce-ordering select:focus {
  border-color: var(--2da-blue) !important;
}

/* ============================================================
   PRODUCT CARDS — grille
   ============================================================ */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
  gap: 20px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: both !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  background: var(--2da-white) !important;
  border-radius: 18px !important;
  border: 1px solid var(--2da-border) !important;
  overflow: hidden !important;
  transition: all 0.3s ease !important;
  box-shadow: var(--2da-shadow) !important;
  margin: 0 !important;
  float: none !important;
  width: auto !important;
  padding: 0 !important;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
  transform: translateY(-5px) !important;
  box-shadow: var(--2da-shadow-h) !important;
  border-color: var(--2da-blue) !important;
}

/* Image produit */
.woocommerce ul.products li.product img,
.woocommerce-page ul.products li.product img {
  width: 100% !important;
  height: 200px !important;
  object-fit: contain !important;
  background: var(--2da-light) !important;
  padding: 16px !important;
  margin: 0 !important;
  transition: transform 0.3s !important;
  display: block !important;
}
.woocommerce ul.products li.product:hover img {
  transform: scale(1.04) !important;
}

/* Titre produit */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product h2 {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--2da-dark) !important;
  line-height: 1.45 !important;
  padding: 12px 16px 6px !important;
  margin: 0 !important;
  font-family: var(--font-b) !important;
}

/* Prix */
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
  font-family: var(--font-h) !important;
  font-size: 21px !important;
  font-weight: 700 !important;
  color: var(--2da-blue) !important;
  padding: 0 16px 14px !important;
  margin: 0 !important;
  display: block !important;
}
.woocommerce ul.products li.product .price del {
  font-size: 13px !important;
  color: var(--2da-gray) !important;
  font-family: var(--font-b) !important;
  font-weight: 400 !important;
  margin-right: 4px !important;
}
.woocommerce ul.products li.product .price ins {
  text-decoration: none !important;
}

/* Bouton ajouter */
.woocommerce ul.products li.product a.add_to_cart_button,
.woocommerce ul.products li.product a.button,
.woocommerce-page ul.products li.product a.button {
  margin: 0 16px 16px !important;
  border-radius: 10px !important;
  padding: 10px 16px !important;
  font-size: 13px !important;
  width: calc(100% - 32px) !important;
  text-align: center !important;
  display: block !important;
}

/* Badge promo */
.woocommerce ul.products li.product .onsale,
.woocommerce-page ul.products li.product .onsale {
  background: var(--2da-red) !important;
  color: white !important;
  font-family: var(--font-h) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 1px !important;
  border-radius: 20px !important;
  padding: 4px 12px !important;
  top: 12px !important;
  left: 12px !important;
  right: auto !important;
  min-height: auto !important;
  min-width: auto !important;
  line-height: 1.4 !important;
  position: absolute !important;
}

/* Rating étoiles */
.woocommerce ul.products li.product .star-rating {
  padding: 0 16px 4px !important;
  margin: 0 !important;
}

/* ============================================================
   BOUTONS GLOBAUX (WooCommerce)
   ============================================================ */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.btn-2da {
  background: var(--2da-red) !important;
  color: #ffffff !important;
  border: none !important;
  padding: 12px 28px !important;
  font-family: var(--font-h) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  border-radius: 50px !important;
  cursor: pointer !important;
  transition: all 0.25s !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
  background: var(--2da-red-d) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(204,31,31,0.35) !important;
  color: #ffffff !important;
}
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  background: var(--2da-blue) !important;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
  background: var(--2da-blue-d) !important;
}

/* ============================================================
   SINGLE PRODUCT PAGE — arrière-plan blanc
   ============================================================ */
body.single-product #page,
body.single-product main,
body.single-product .site-main,
body.single-product #primary {
  background: var(--2da-off) !important;
}

.woocommerce div.product {
  background: var(--2da-white) !important;
  border-radius: 20px !important;
  padding: 32px !important;
  box-shadow: var(--2da-shadow) !important;
  margin: 30px 0 !important;
}
.woocommerce div.product .woocommerce-product-gallery__image img {
  border-radius: 16px !important;
  box-shadow: var(--2da-shadow) !important;
}
.woocommerce div.product .product_title {
  font-family: var(--font-d) !important;
  font-size: 34px !important;
  letter-spacing: 1px !important;
  color: var(--2da-dark) !important;
  line-height: 1.1 !important;
  margin-bottom: 10px !important;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--font-h) !important;
  font-size: 30px !important;
  font-weight: 700 !important;
  color: var(--2da-blue) !important;
}
.woocommerce div.product form.cart .qty {
  border: 2px solid var(--2da-border) !important;
  border-radius: 12px !important;
  padding: 10px 14px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  width: 80px !important;
  text-align: center !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button {
  border-radius: 50px !important;
  padding: 14px 40px !important;
  font-size: 16px !important;
  font-family: var(--font-h) !important;
  font-weight: 700 !important;
  letter-spacing: 1px !important;
}

/* Tabs produit */
.woocommerce-tabs .tabs li a {
  font-family: var(--font-h) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  letter-spacing: 0.5px !important;
  color: var(--2da-gray) !important;
}
.woocommerce-tabs .tabs li.active a {
  color: var(--2da-blue) !important;
  border-bottom: 2px solid var(--2da-blue) !important;
}

/* ============================================================
   PANIER — PAGE CART
   ============================================================ */
body.woocommerce-cart main,
body.woocommerce-cart .site-main {
  background: var(--2da-off) !important;
}

.woocommerce-cart-form {
  background: var(--2da-white) !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  box-shadow: var(--2da-shadow) !important;
  margin-bottom: 30px !important;
}

.woocommerce table.cart {
  border-collapse: collapse !important;
  width: 100% !important;
  background: white !important;
}
.woocommerce table.cart thead {
  background: var(--2da-dark) !important;
}
.woocommerce table.cart thead th {
  color: white !important;
  font-family: var(--font-h) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  padding: 16px 18px !important;
  border: none !important;
}
.woocommerce table.cart tbody tr {
  border-bottom: 1px solid var(--2da-border) !important;
  transition: background 0.15s !important;
}
.woocommerce table.cart tbody tr:hover {
  background: var(--2da-off) !important;
}
.woocommerce table.cart td {
  padding: 16px 18px !important;
  vertical-align: middle !important;
  border: none !important;
}
.woocommerce table.cart td.product-name {
  font-weight: 600 !important;
  font-size: 14px !important;
}
.woocommerce table.cart td.product-name a {
  color: var(--2da-dark) !important;
  text-decoration: none !important;
}
.woocommerce table.cart td.product-name a:hover {
  color: var(--2da-blue) !important;
}
.woocommerce table.cart td.product-price,
.woocommerce table.cart td.product-subtotal {
  font-family: var(--font-h) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  color: var(--2da-blue) !important;
}
.woocommerce table.cart td.product-remove a {
  background: var(--2da-light) !important;
  color: var(--2da-gray) !important;
  border-radius: 50% !important;
  width: 28px !important;
  height: 28px !important;
  line-height: 28px !important;
  text-align: center !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 13px !important;
  transition: all 0.15s !important;
}
.woocommerce table.cart td.product-remove a:hover {
  background: var(--2da-red) !important;
  color: white !important;
}
/* Quantité dans le panier */
.woocommerce .quantity .qty {
  border: 2px solid var(--2da-border) !important;
  border-radius: 10px !important;
  padding: 8px 12px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  width: 70px !important;
  text-align: center !important;
}

/* Cart Totals */
.woocommerce .cart_totals {
  background: var(--2da-white) !important;
  border-radius: 20px !important;
  padding: 28px !important;
  box-shadow: var(--2da-shadow) !important;
}
.woocommerce .cart_totals h2 {
  font-family: var(--font-d) !important;
  font-size: 26px !important;
  letter-spacing: 2px !important;
  color: var(--2da-dark) !important;
  margin-bottom: 18px !important;
  padding-bottom: 12px !important;
  border-bottom: 2px solid var(--2da-border) !important;
}
.woocommerce .cart_totals table th,
.woocommerce .cart_totals table td {
  padding: 10px 0 !important;
  border-bottom: 1px solid var(--2da-border) !important;
  font-size: 14px !important;
}
.woocommerce .cart_totals .order-total th,
.woocommerce .cart_totals .order-total td {
  font-family: var(--font-h) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--2da-blue) !important;
  border: none !important;
  padding-top: 14px !important;
}
.woocommerce a.checkout-button,
.woocommerce .checkout-button {
  display: block !important;
  text-align: center !important;
  border-radius: 14px !important;
  padding: 15px !important;
  font-size: 17px !important;
  margin-top: 16px !important;
  width: 100% !important;
}

/* ============================================================
   CHECKOUT PAGE
   ============================================================ */
body.woocommerce-checkout main,
body.woocommerce-checkout .site-main {
  background: var(--2da-off) !important;
}

.woocommerce-checkout #customer_details,
.woocommerce-checkout .col2-set {
  background: var(--2da-white) !important;
  border-radius: 20px !important;
  padding: 28px !important;
  box-shadow: var(--2da-shadow) !important;
  margin-bottom: 24px !important;
}
.woocommerce-checkout h3 {
  font-family: var(--font-d) !important;
  font-size: 24px !important;
  letter-spacing: 2px !important;
  color: var(--2da-dark) !important;
  margin-bottom: 18px !important;
  padding-bottom: 10px !important;
  border-bottom: 2px solid var(--2da-border) !important;
}
/* Champs */
.woocommerce form .form-row label {
  font-family: var(--font-b) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--2da-gray) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  margin-bottom: 5px !important;
  display: block !important;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
  border: 2px solid var(--2da-border) !important;
  border-radius: 12px !important;
  padding: 11px 16px !important;
  font-family: var(--font-b) !important;
  font-size: 14px !important;
  width: 100% !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
  outline: none !important;
  background: white !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus {
  border-color: var(--2da-blue) !important;
  box-shadow: 0 0 0 4px rgba(26,79,160,0.08) !important;
}

/* Méthodes de paiement */
#payment {
  background: var(--2da-white) !important;
  border-radius: 20px !important;
  padding: 28px !important;
  box-shadow: var(--2da-shadow) !important;
}
#payment ul.payment_methods {
  list-style: none !important;
  margin: 0 0 18px !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) !important;
  gap: 10px !important;
}
#payment ul.payment_methods li {
  border: 2px solid var(--2da-border) !important;
  border-radius: 12px !important;
  padding: 14px !important;
  transition: all 0.2s !important;
  cursor: pointer !important;
}
#payment ul.payment_methods li:has(input:checked) {
  border-color: var(--2da-blue) !important;
  background: rgba(26,79,160,0.04) !important;
}
#payment div.payment_box {
  background: var(--2da-light) !important;
  border-radius: 10px !important;
  padding: 12px !important;
  font-size: 13px !important;
  color: var(--2da-gray) !important;
}

/* Bouton Commander */
#place_order {
  width: 100% !important;
  padding: 18px !important;
  border-radius: 16px !important;
  font-family: var(--font-d) !important;
  font-size: 22px !important;
  letter-spacing: 2px !important;
  background: linear-gradient(135deg, var(--2da-red), var(--2da-red-d)) !important;
  box-shadow: 0 4px 20px rgba(204,31,31,0.28) !important;
  margin-top: 18px !important;
  transition: all 0.25s !important;
}
#place_order:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 10px 36px rgba(204,31,31,0.4) !important;
}

/* Récap commande */
#order_review {
  background: var(--2da-white) !important;
  border-radius: 20px !important;
  padding: 28px !important;
  box-shadow: var(--2da-shadow) !important;
}
table.shop_table th {
  font-family: var(--font-h) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
  color: var(--2da-gray) !important;
  padding: 8px 0 !important;
  border-bottom: 2px solid var(--2da-border) !important;
}
table.shop_table td {
  padding: 11px 0 !important;
  border-bottom: 1px solid var(--2da-border) !important;
  font-size: 14px !important;
}
table.shop_table .order-total td,
table.shop_table .order-total th {
  font-family: var(--font-h) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  color: var(--2da-blue) !important;
  border: none !important;
  padding-top: 14px !important;
}

/* ============================================================
   NOTICES
   ============================================================ */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-radius: 12px !important;
  border: none !important;
  padding: 14px 20px !important;
  font-size: 14px !important;
}
.woocommerce-message {
  background: rgba(22,163,74,0.1) !important;
  border-left: 4px solid #16a34a !important;
  color: #166534 !important;
}
.woocommerce-info {
  background: rgba(26,79,160,0.08) !important;
  border-left: 4px solid var(--2da-blue) !important;
  color: var(--2da-blue-d) !important;
}
.woocommerce-error {
  background: rgba(204,31,31,0.08) !important;
  border-left: 4px solid var(--2da-red) !important;
  color: #7f1d1d !important;
}

/* ============================================================
   SIDEBAR BOUTIQUE
   ============================================================ */
.widget-2da {
  background: var(--2da-white);
  border-radius: 16px;
  padding: 20px;
  box-shadow: var(--2da-shadow);
  margin-bottom: 24px;
}
.widget-title-2da {
  font-family: var(--font-d);
  font-size: 20px;
  letter-spacing: 2px;
  color: var(--2da-dark);
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--2da-border);
}

/* ============================================================
   BREADCRUMBS
   ============================================================ */
.woocommerce-breadcrumb {
  font-size: 13px;
  color: var(--2da-gray);
  margin-bottom: 20px;
  font-family: var(--font-b);
}
.woocommerce-breadcrumb a { color: var(--2da-blue); }
.woocommerce-breadcrumb a:hover { color: var(--2da-red); }

/* ============================================================
   MINI CART STYLES
   ============================================================ */
.mini-cart-item {
  display: flex; gap: 12px; padding: 12px 0;
  border-bottom: 1px solid var(--2da-border); position: relative;
}
.mci-thumb { width: 64px; height: 64px; flex-shrink: 0; }
.mci-thumb img { width: 100%; height: 100%; object-fit: contain; border-radius: 10px; background: var(--2da-light); padding: 4px; }
.mci-info { flex: 1; }
.mci-name { font-size: 13px; font-weight: 600; color: var(--2da-dark); text-decoration: none; display: block; margin-bottom: 5px; line-height: 1.3; }
.mci-name:hover { color: var(--2da-blue); }
.mci-qty-row { display: flex; align-items: center; gap: 6px; }
.mci-qty { font-size: 12px; color: var(--2da-gray); }
.mci-price { font-family: var(--font-h); font-size: 17px; font-weight: 700; color: var(--2da-blue); }
.mci-remove { position: absolute; top: 12px; right: 0; background: none; border: none; color: var(--2da-gray); font-size: 13px; cursor: pointer; transition: color 0.15s; text-decoration: none; }
.mci-remove:hover { color: var(--2da-red); }
.mini-cart-footer { padding-top: 14px; }
.mct-row { display: flex; justify-content: space-between; padding: 5px 0; font-size: 14px; color: var(--2da-gray); }
.mct-row strong { color: var(--2da-dark); }
.mct-total { border-top: 2px solid var(--2da-border); margin-top: 6px; padding-top: 10px; font-size: 16px; font-weight: 700; }
.mct-total strong { color: var(--2da-blue); font-family: var(--font-h); font-size: 20px; }
.mini-cart-actions { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }
.btn-view-cart { display: block; text-align: center; padding: 11px; border-radius: 12px; border: 2px solid var(--2da-blue); color: var(--2da-blue); font-weight: 700; font-family: var(--font-h); font-size: 14px; letter-spacing: 1px; text-transform: uppercase; text-decoration: none; transition: all 0.2s; }
.btn-view-cart:hover { background: var(--2da-blue); color: white; }
.btn-checkout-now { display: block; text-align: center; padding: 13px; border-radius: 12px; background: linear-gradient(135deg, var(--2da-red), var(--2da-red-d)); color: white; font-weight: 700; font-family: var(--font-h); font-size: 15px; letter-spacing: 1px; text-transform: uppercase; text-decoration: none; transition: all 0.25s; box-shadow: 0 4px 14px rgba(204,31,31,0.22); }
.btn-checkout-now:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(204,31,31,0.35); color: white; }
.mini-cart-empty { text-align: center; padding: 40px 20px; }
.mce-icon { font-size: 52px; margin-bottom: 12px; opacity: 0.35; }
.mini-cart-empty p { color: var(--2da-gray); font-size: 15px; margin-bottom: 18px; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer,
footer.site-footer {
  background: var(--2da-dark) !important;
  background-color: var(--2da-dark) !important;
  color: rgba(255,255,255,0.65) !important;
  padding: 56px 24px 28px !important;
}
.site-footer a { color: rgba(255,255,255,0.5) !important; transition: color 0.15s !important; text-decoration: none !important; }
.site-footer a:hover { color: white !important; }
.footer-2da-inner { max-width: 1400px; margin: 0 auto; }
.footer-2da-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 44px; margin-bottom: 44px; }
.footer-2da-col h4 { font-family: var(--font-h); font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: white; margin-bottom: 14px; }
.footer-2da-col ul { list-style: none; margin: 0; padding: 0; }
.footer-2da-col ul li a { display: block; font-size: 13px; padding: 4px 0; }
.footer-2da-bottom { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 24px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; font-size: 12px; color: rgba(255,255,255,0.28); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1100px) {
  .footer-2da-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; }
  .footer-2da-grid { grid-template-columns: 1fr; gap: 24px; }
  .trust-bar-inner { justify-content: flex-start; }
}
@media (max-width: 480px) {
  .woocommerce ul.products { grid-template-columns: 1fr !important; }
}

/* ============================================================
   ELEMENTOR & ROYAL ADDONS — OVERRIDES COMPLETS
   Ces règles passent après les styles inline d'Elementor
   ============================================================ */

/* -------------------------------------------
   FOND GÉNÉRAL — toutes pages Elementor
   ------------------------------------------- */
body,
.elementor-page,
.e-page,
#page,
.site {
  background-color: #f5f7fc !important;
  background-image: none !important;
}

/* -------------------------------------------
   SECTIONS ELEMENTOR — reset fonds non voulus
   ------------------------------------------- */

/* Sections sans fond défini → transparentes */
.elementor-section:not([style*="background"]),
.e-con:not([style*="background"]) {
  background-color: transparent !important;
}

/* Forcer fond blanc sur sections "contenu" */
.elementor-section.e-section-white,
.e-con.e-section-white {
  background-color: #ffffff !important;
}

/* -------------------------------------------
   HEADER ELEMENTOR (Royal Addons Theme Builder)
   ------------------------------------------- */
.elementor-template-type-header,
.elementor-template-type-header .elementor-section,
.elementor-template-type-header .e-con,
.elementor-template-type-header > .elementor-section:first-child,
.elementor-location-header {
  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: none !important;
}

/* Bordure rouge bas du header */
.elementor-location-header {
  border-bottom: 3px solid #CC1F1F !important;
  box-shadow: 0 2px 20px rgba(0,0,0,0.07) !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 9999 !important;
}

/* Section navigation dans le header → fond bleu */
.elementor-template-type-header .elementor-section:last-child,
.elementor-template-type-header .elementor-section.nav-section,
.elementor-location-header .elementor-section:nth-child(2) {
  background: #1A4FA0 !important;
  background-color: #1A4FA0 !important;
}

/* Liens du menu dans le header Elementor */
.elementor-template-type-header .elementor-nav-menu a,
.elementor-template-type-header .wpr-nav-menu a,
.elementor-location-header nav a,
.elementor-location-header .elementor-nav-menu--main a {
  color: #ffffff !important;
  font-family: 'Rajdhani', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
}
.elementor-template-type-header .elementor-nav-menu a:hover,
.elementor-location-header .elementor-nav-menu--main a:hover {
  color: #ffffff !important;
  background: rgba(255,255,255,0.15) !important;
}

/* Sous-menus navigation */
.elementor-template-type-header .elementor-nav-menu .sub-menu,
.elementor-location-header .elementor-nav-menu--main .sub-menu {
  background: #ffffff !important;
  border-top: 3px solid #CC1F1F !important;
  border-radius: 0 0 16px 16px !important;
  box-shadow: 0 20px 50px rgba(0,0,0,0.14) !important;
}
.elementor-template-type-header .elementor-nav-menu .sub-menu a,
.elementor-location-header .elementor-nav-menu--main .sub-menu a {
  color: #0a0a0f !important;
  background: transparent !important;
  text-transform: none !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}
.elementor-template-type-header .elementor-nav-menu .sub-menu a:hover,
.elementor-location-header .elementor-nav-menu--main .sub-menu a:hover {
  background: #eef1f8 !important;
  color: #1A4FA0 !important;
  padding-left: 28px !important;
}

/* -------------------------------------------
   FOOTER ELEMENTOR
   ------------------------------------------- */
.elementor-template-type-footer,
.elementor-template-type-footer .elementor-section,
.elementor-template-type-footer .e-con,
.elementor-location-footer {
  background: #0d0d14 !important;
  background-color: #0d0d14 !important;
}
.elementor-template-type-footer *,
.elementor-location-footer * {
  color: rgba(255,255,255,0.6) !important;
}
.elementor-template-type-footer h1,
.elementor-template-type-footer h2,
.elementor-template-type-footer h3,
.elementor-template-type-footer h4,
.elementor-location-footer h1,
.elementor-location-footer h2,
.elementor-location-footer h3,
.elementor-location-footer h4 {
  color: #ffffff !important;
  font-family: 'Rajdhani', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
}
.elementor-template-type-footer a:hover,
.elementor-location-footer a:hover {
  color: #ffffff !important;
}

/* -------------------------------------------
   ARCHIVE WOOCOMMERCE (page boutique/catégorie)
   ------------------------------------------- */
.elementor-template-type-archive,
.elementor-template-type-archive .elementor-section,
.elementor-template-type-archive .e-con,
.elementor-location-archive {
  background: #f5f7fc !important;
  background-color: #f5f7fc !important;
}

/* -------------------------------------------
   PRODUIT SINGLE (template Elementor)
   ------------------------------------------- */
.elementor-template-type-single,
.elementor-template-type-single .elementor-section,
.elementor-location-single {
  background: #f5f7fc !important;
}

/* -------------------------------------------
   BARRE DE FILTRES CATÉGORIES (Royal Addons)
   ------------------------------------------- */
.wpr-grid-filters-wrap,
.wpr-filters-wrap {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-bottom: 24px !important;
}

.wpr-grid-filters-wrap li a,
.wpr-filters-wrap li a,
.wpr-grid-filter {
  border: 2px solid rgba(26,79,160,0.15) !important;
  border-radius: 50px !important;
  font-family: 'Rajdhani', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  padding: 7px 18px !important;
  color: #0a0a0f !important;
  background: #ffffff !important;
  transition: all 0.2s !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.wpr-grid-filters-wrap li a:hover,
.wpr-grid-filter:hover {
  border-color: #1A4FA0 !important;
  color: #1A4FA0 !important;
  background: #eef1f8 !important;
}
.wpr-grid-filters-wrap li.wpr-active-filter a,
.wpr-grid-filter.wpr-active-filter,
.wpr-grid-filters-wrap li a.wpr-active-filter {
  background: #CC1F1F !important;
  border-color: #CC1F1F !important;
  color: #ffffff !important;
}

/* -------------------------------------------
   GRILLE PRODUITS ROYAL ADDONS (wpr-woo-grid)
   ------------------------------------------- */
.wpr-woo-grid-item,
.wpr-grid-item {
  background: #ffffff !important;
  border-radius: 18px !important;
  border: 1px solid rgba(26,79,160,0.12) !important;
  overflow: hidden !important;
  transition: all 0.3s !important;
  box-shadow: 0 4px 24px rgba(26,79,160,0.08) !important;
}
.wpr-woo-grid-item:hover,
.wpr-grid-item:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 12px 42px rgba(26,79,160,0.16) !important;
  border-color: #1A4FA0 !important;
}

/* Image */
.wpr-woo-grid-item .wpr-woo-product-img,
.wpr-grid-item .wpr-grid-image-wrap {
  background: #eef1f8 !important;
  overflow: hidden !important;
}
.wpr-woo-grid-item .wpr-woo-product-img img,
.wpr-grid-item .wpr-grid-image-wrap img {
  height: 200px !important;
  object-fit: contain !important;
  padding: 12px !important;
  width: 100% !important;
  transition: transform 0.3s !important;
}
.wpr-woo-grid-item:hover img {
  transform: scale(1.04) !important;
}

/* Titre produit */
.wpr-woo-product-title a,
.wpr-grid-item .wpr-grid-item-title a {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #0a0a0f !important;
  text-decoration: none !important;
  line-height: 1.4 !important;
}
.wpr-woo-product-title a:hover {
  color: #1A4FA0 !important;
}

/* Prix */
.wpr-woo-product-price .price,
.wpr-woo-product-price span.woocommerce-Price-amount {
  font-family: 'Rajdhani', sans-serif !important;
  font-size: 21px !important;
  font-weight: 700 !important;
  color: #1A4FA0 !important;
}
.wpr-woo-product-price .price del,
.wpr-woo-product-price .price del * {
  font-size: 13px !important;
  color: #8a8fa8 !important;
  font-family: 'DM Sans', sans-serif !important;
}

/* Bouton Ajouter au panier */
.wpr-woo-add-to-cart a,
.wpr-woo-add-to-cart .button,
.wpr-woo-add-to-cart button {
  background: #CC1F1F !important;
  color: white !important;
  border: none !important;
  border-radius: 10px !important;
  font-family: 'Rajdhani', sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  padding: 10px 18px !important;
  width: 100% !important;
  text-align: center !important;
  display: block !important;
  transition: all 0.2s !important;
}
.wpr-woo-add-to-cart a:hover,
.wpr-woo-add-to-cart .button:hover {
  background: #a81515 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 14px rgba(204,31,31,0.3) !important;
  color: white !important;
}

/* Badge SALE Royal Addons */
.wpr-woo-product-sale-flash,
.wpr-grid-item .wpr-woo-onsale {
  background: #CC1F1F !important;
  color: white !important;
  font-family: 'Rajdhani', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  border-radius: 20px !important;
  padding: 3px 10px !important;
  letter-spacing: 1px !important;
}

/* -------------------------------------------
   SLIDER ROYAL ADDONS — flèches navigation
   ------------------------------------------- */
.wpr-grid-slider-arrow,
.wpr-slider-arrow,
.wpr-arrow-left,
.wpr-arrow-right {
  background: #1A4FA0 !important;
  color: #ffffff !important;
  border-radius: 50% !important;
  width: 42px !important;
  height: 42px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.2s !important;
  border: none !important;
}
.wpr-grid-slider-arrow:hover,
.wpr-slider-arrow:hover {
  background: #CC1F1F !important;
}

/* -------------------------------------------
   SECTION "RÉCEMMENT VU"
   ------------------------------------------- */
.woocommerce-recently-viewed-products,
[class*="recently-viewed"],
.wpr-recently-viewed {
  background: transparent !important;
}
/* Titre de section récemment vu */
.wpr-recently-viewed h2,
[class*="recently-viewed"] .wpr-section-title {
  font-family: 'Bebas Neue', sans-serif !important;
  font-size: 32px !important;
  letter-spacing: 2px !important;
  color: #0a0a0f !important;
}

/* -------------------------------------------
   TITRES DE SECTIONS ELEMENTOR
   ------------------------------------------- */
.elementor-heading-title {
  font-family: 'Bebas Neue', sans-serif !important;
  letter-spacing: 2px !important;
}
.elementor-widget-heading .elementor-heading-title.elementor-size-small {
  font-family: 'Rajdhani', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: 1px !important;
}

/* -------------------------------------------
   BOUTONS ELEMENTOR
   ------------------------------------------- */
.elementor-button {
  font-family: 'Rajdhani', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
  border-radius: 50px !important;
  transition: all 0.25s !important;
}
.elementor-button:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 20px rgba(0,0,0,0.2) !important;
}

/* -------------------------------------------
   TOPBAR (hook wp_body_open)
   ------------------------------------------- */
.site-topbar {
  background: #0d0d14 !important;
  color: rgba(255,255,255,0.75) !important;
  font-size: 12px !important;
  text-align: center !important;
  padding: 7px 20px !important;
  font-family: 'DM Sans', sans-serif !important;
  position: relative !important;
  z-index: 10000 !important;
  border-bottom: 1px solid rgba(255,255,255,0.07) !important;
}
.site-topbar strong { color: #CC1F1F !important; }
.site-topbar a { color: rgba(255,255,255,0.75) !important; text-decoration: none !important; }
.site-topbar a:hover { color: #CC1F1F !important; }

/* -------------------------------------------
   TRUST BAR
   ------------------------------------------- */
.trust-bar {
  background: #ffffff !important;
  border-bottom: 1px solid rgba(26,79,160,0.12) !important;
  padding: 14px 20px !important;
}
.trust-bar-inner {
  max-width: 1400px !important;
  margin: 0 auto !important;
  display: flex !important;
  justify-content: space-around !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
}
.trust-item { display: flex !important; align-items: center !important; gap: 10px !important; font-size: 13px !important; }
.trust-item .trust-icon { font-size: 20px !important; }
.trust-item strong { font-weight: 700 !important; font-size: 13px !important; display: block !important; color: #0a0a0f !important; }
.trust-item span { color: #8a8fa8 !important; font-size: 11px !important; }

/* -------------------------------------------
   WOOCOMMERCE NOTICES dans Elementor
   ------------------------------------------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-radius: 12px !important;
  border: none !important;
  padding: 13px 18px !important;
  font-size: 14px !important;
  font-family: 'DM Sans', sans-serif !important;
}
.woocommerce-message {
  background: rgba(22,163,74,0.1) !important;
  border-left: 4px solid #16a34a !important;
  color: #166534 !important;
}
.woocommerce-info {
  background: rgba(26,79,160,0.08) !important;
  border-left: 4px solid #1A4FA0 !important;
}
.woocommerce-error {
  background: rgba(204,31,31,0.08) !important;
  border-left: 4px solid #CC1F1F !important;
  color: #7f1d1d !important;
}

/* -------------------------------------------
   RESPONSIVE ELEMENTOR
   ------------------------------------------- */
@media (max-width: 1024px) {
  .wpr-woo-grid-item img { height: 160px !important; }
}
@media (max-width: 767px) {
  .trust-bar-inner { justify-content: flex-start !important; gap: 10px !important; }
  .wpr-grid-filters-wrap { gap: 6px !important; }
  .wpr-grid-filters-wrap li a { padding: 6px 14px !important; font-size: 12px !important; }
}

/* ============================================================
   FIX GLOBAL — TEXTE INVISIBLE (blanc sur fond clair)
   Royal Addons force color:white sur tout le contenu.
   Ce bloc remet les couleurs correctes sur TOUTES les pages.
   ============================================================ */

/* ── Texte général du corps de page ─────────────────────── */
body,
.site-main,
#primary,
#main,
main,
.entry-content,
.page-content,
.woocommerce,
.woocommerce-page,
.elementor-section-wrap,
.elementor-widget-wrap,
.e-con-inner,
[class*="elementor-widget"] {
  color: var(--2da-dark) !important;
}

/* ── Tous les paragraphes et textes courants ─────────────── */
p, li, span, label, td, th, dt, dd, blockquote,
.elementor-text-editor p,
.elementor-text-editor span,
.elementor-widget-text-editor p {
  color: inherit;
}

/* ── Titres (h1–h6) visibles en foncé ───────────────────── */
h1, h2, h3, h4, h5, h6,
.entry-title,
.page-title,
.woocommerce-products-header__title {
  color: var(--2da-dark) !important;
}

/* ── FIL D'ARIANE (breadcrumb) ───────────────────────────── */
.woocommerce-breadcrumb,
.woocommerce-breadcrumb *,
nav.woocommerce-breadcrumb,
[class*="breadcrumb"],
[class*="breadcrumb"] *,
.breadcrumbs,
.breadcrumbs *,
.wpr-breadcrumbs,
.wpr-breadcrumbs * {
  color: var(--2da-gray) !important;
}
.woocommerce-breadcrumb a,
[class*="breadcrumb"] a,
.wpr-breadcrumbs a {
  color: var(--2da-blue) !important;
  text-decoration: none !important;
}
.woocommerce-breadcrumb a:hover,
[class*="breadcrumb"] a:hover {
  color: var(--2da-red) !important;
}
/* Séparateur breadcrumb */
.woocommerce-breadcrumb .separator,
.woocommerce-breadcrumb > span:not(:last-child)::after {
  color: var(--2da-gray) !important;
}

/* ── PAGE PRODUIT SINGLE ─────────────────────────────────── */
.single-product .product_title,
.woocommerce div.product .product_title,
h1.product_title {
  color: var(--2da-dark) !important;
  font-family: var(--font-d) !important;
  font-size: 34px !important;
  letter-spacing: 1px !important;
}

/* Description courte */
.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-product-details__short-description *,
.woocommerce-product-details__short-description p {
  color: #444 !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
}

/* Prix produit */
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.woocommerce div.product .price,
.woocommerce div.product .price * {
  color: var(--2da-blue) !important;
  font-family: var(--font-h) !important;
  font-size: 30px !important;
  font-weight: 700 !important;
}
.woocommerce div.product .price del,
.woocommerce div.product .price del * {
  color: var(--2da-gray) !important;
  font-size: 16px !important;
  font-weight: 400 !important;
}
.woocommerce div.product .price ins,
.woocommerce div.product .price ins * {
  color: var(--2da-red) !important;
  text-decoration: none !important;
}

/* SKU, catégories, tags */
.product_meta,
.product_meta *,
.woocommerce div.product .product_meta,
.woocommerce div.product .product_meta span,
.woocommerce div.product .product_meta a {
  color: var(--2da-gray) !important;
  font-size: 13px !important;
}
.woocommerce div.product .product_meta a:hover {
  color: var(--2da-blue) !important;
}

/* Label quantité */
.woocommerce div.product form.cart label,
.woocommerce form.cart label {
  color: var(--2da-dark) !important;
  font-weight: 600 !important;
}

/* Onglets produit */
.woocommerce-tabs .tabs li a,
.woocommerce div.product .woocommerce-tabs .tabs li a {
  color: var(--2da-gray) !important;
  font-family: var(--font-h) !important;
  font-weight: 600 !important;
}
.woocommerce-tabs .tabs li.active a,
.woocommerce div.product .woocommerce-tabs .tabs li.active a {
  color: var(--2da-blue) !important;
}
.woocommerce-Tabs-panel,
.woocommerce-Tabs-panel *,
#tab-description,
#tab-description * {
  color: #444 !important;
}
#tab-description h2, #tab-description h3 {
  color: var(--2da-dark) !important;
}

/* Produits liés / upsells */
.up-sells h2,
.related h2,
.upsells h2,
.cross-sells h2,
section.related h2,
section.up-sells h2 {
  color: var(--2da-dark) !important;
  font-family: var(--font-d) !important;
  font-size: 28px !important;
  letter-spacing: 2px !important;
}

/* ── PAGE BOUTIQUE / ARCHIVE ─────────────────────────────── */
.woocommerce-shop .page-title,
.woocommerce-products-header__title,
.archive-title,
h1.woocommerce-products-header__title {
  color: var(--2da-dark) !important;
}

/* Résultat de recherche WC */
.woocommerce-result-count {
  color: var(--2da-gray) !important;
}

/* Noms de produits dans la liste */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product h2,
ul.products li.product h2 {
  color: var(--2da-dark) !important;
}

/* ── PAGES GÉNÉRALES (page, article) ─────────────────────── */
.entry-title,
h1.entry-title,
.page-title {
  color: var(--2da-dark) !important;
}
.entry-content,
.entry-content p,
.entry-content li,
.page-content,
.page-content p {
  color: #333 !important;
}
.entry-content a,
.page-content a {
  color: var(--2da-blue) !important;
}
.entry-content a:hover {
  color: var(--2da-red) !important;
}

/* ── PANIER & CHECKOUT — textes visibles ─────────────────── */
.woocommerce-cart-form,
.woocommerce-cart-form *,
.shop_table,
.shop_table td,
.shop_table th,
.cart_totals h2,
.cart_totals table td,
.cart_totals table th {
  color: var(--2da-dark) !important;
}
.cart_totals .order-total td,
.cart_totals .order-total th {
  color: var(--2da-blue) !important;
}
.woocommerce-checkout h3,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3 {
  color: var(--2da-dark) !important;
}
.woocommerce form .form-row label {
  color: var(--2da-gray) !important;
}

/* ── WIDGETS / SIDEBAR ───────────────────────────────────── */
.widget-title,
.widget-title-2da,
aside .widget h2,
aside .widget h3 {
  color: var(--2da-dark) !important;
}
.widget ul li a,
aside .widget a {
  color: var(--2da-dark) !important;
}
.widget ul li a:hover {
  color: var(--2da-blue) !important;
}

/* ── ELEMENTOR — texte dans les widgets ─────────────────── */
/* Évite que Royal Addons force white sur les textes de contenu */
.elementor-widget-text-editor,
.elementor-widget-text-editor *:not(a),
.elementor-widget-heading .elementor-heading-title,
.elementor-text-editor {
  color: inherit !important;
}

/* Annuler color:white global de Royal Addons sur le contenu */
.elementor-section:not(.elementor-location-header):not(.elementor-location-footer)
  .elementor-widget-wrap *:not(.tda-hero):not(.tda-hero *):not(button):not(.btn):not([class*="badge"]) {
  /* On laisse la couleur se propager naturellement depuis body */
}

/* ── NOTICES WooCommerce ─────────────────────────────────── */
.woocommerce-message,
.woocommerce-message *,
.woocommerce-info,
.woocommerce-info *,
.woocommerce-error,
.woocommerce-error * {
  color: inherit !important;
}

/* ── NOTES / AVIS clients ───────────────────────────────── */
#reviews,
#reviews *,
.woocommerce-Reviews,
.woocommerce-Reviews * {
  color: var(--2da-dark) !important;
}
.woocommerce-Reviews .comment-text p {
  color: #555 !important;
}


/* ============================================================
   FIX DÉFINITIF — TEXTE BLANC FORCÉ PAR ROYAL ADDONS
   Royal Addons/Elementor injecte color:white sur tout via
   des sélecteurs très spécifiques. On les neutralise tous.
   ============================================================ */

/* Neutraliser le color:white global de Royal Elementor Kit */
.woocommerce *,
.woocommerce-page *,
.single-product *,
.post-type-archive-product *,
.tax-product_cat *,
.woocommerce-cart *,
.woocommerce-checkout *,
.page *,
.home *,
.blog *,
main *,
#main *,
#primary *,
.site-main *,
.entry-content *,
.woocommerce-breadcrumb,
.woocommerce-breadcrumb *,
.product_title,
.woocommerce div.product *,
.related *,
.up-sells *,
.upsells * {
  color: inherit !important;
}

/* Rétablir la couleur de base sur le body */
body {
  color: #0d0d14 !important;
}

/* ── Fil d'Ariane ── */
.woocommerce-breadcrumb { color: #8a8fa8 !important; font-size: 13px !important; }
.woocommerce-breadcrumb a { color: #1A4FA0 !important; text-decoration: none !important; }
.woocommerce-breadcrumb a:hover { color: #CC1F1F !important; }

/* ── Titre produit ── */
.product_title,
h1.product_title,
.woocommerce div.product .product_title { color: #0d0d14 !important; }

/* ── Prix ── */
.woocommerce div.product .price { color: #1A4FA0 !important; font-weight: 700 !important; }
.woocommerce div.product .price del,
.woocommerce div.product .price del * { color: #8a8fa8 !important; font-weight: 400 !important; }
.woocommerce div.product .price ins,
.woocommerce div.product .price ins * { color: #CC1F1F !important; text-decoration: none !important; }
.woocommerce-Price-amount,
.woocommerce-Price-amount.amount { color: inherit !important; }

/* ── Stock ── */
.stock, .in-stock, .out-of-stock,
.woocommerce div.product .stock { color: #16a34a !important; font-weight: 600 !important; }
.out-of-stock { color: #CC1F1F !important; }

/* ── Description courte ── */
.woocommerce-product-details__short-description,
.woocommerce-product-details__short-description p,
.woocommerce-product-details__short-description li,
.woocommerce-product-details__short-description span { color: #444 !important; }

/* ── Meta produit (SKU, catégories, tags) ── */
.product_meta,
.product_meta span,
.product_meta a,
.posted_in, .tagged_as, .sku_wrapper { color: #8a8fa8 !important; }
.product_meta a { color: #1A4FA0 !important; }
.product_meta a:hover { color: #CC1F1F !important; }

/* ── Label quantité & form ── */
.woocommerce div.product form.cart label { color: #0d0d14 !important; font-weight: 600 !important; }

/* ── Onglets produit ── */
.woocommerce-tabs .tabs li a { color: #8a8fa8 !important; }
.woocommerce-tabs .tabs li.active a { color: #1A4FA0 !important; font-weight: 700 !important; }
.woocommerce-Tabs-panel,
.woocommerce-Tabs-panel p,
.woocommerce-Tabs-panel li,
.woocommerce-Tabs-panel table,
.woocommerce-Tabs-panel td,
.woocommerce-Tabs-panel th,
#tab-description,
#tab-description p,
#tab-description h2,
#tab-description h3,
#tab-description li { color: #333 !important; }

/* ── Produits liés / "Vous aimerez peut-être" ── */
.related h2,
.up-sells h2,
.upsells h2,
section.related > h2,
section.up-sells > h2 { color: #0d0d14 !important; }
.related .woocommerce-loop-product__title,
.up-sells .woocommerce-loop-product__title,
ul.products li.product .woocommerce-loop-product__title { color: #0d0d14 !important; }
.related .price,
.up-sells .price,
ul.products li.product .price { color: #1A4FA0 !important; }

/* ── Avis / Reviews ── */
#reviews h2,
#reviews h3,
.woocommerce-Reviews h2,
.woocommerce-Reviews-title { color: #0d0d14 !important; }
.review_form label,
#review_form label { color: #0d0d14 !important; }
.comment-text .description p,
.woocommerce-review .description p { color: #555 !important; }
.woocommerce-review__author,
.review__author { color: #0d0d14 !important; font-weight: 600 !important; }
.woocommerce-review__dash,
.woocommerce-review__published-date { color: #8a8fa8 !important; }

/* ── Bouton Ajouter au panier ── */
.woocommerce div.product .single_add_to_cart_button,
.woocommerce button.button.single_add_to_cart_button { color: #ffffff !important; }

/* ── Pages boutique ── */
.woocommerce-shop .page-title,
.woocommerce-products-header__title { color: #0d0d14 !important; }
.woocommerce-result-count { color: #8a8fa8 !important; }

/* ── Panier ── */
.woocommerce-cart table.cart td,
.woocommerce-cart table.cart th,
.woocommerce-cart table.cart td a,
.cart_totals h2,
.cart_totals table td,
.cart_totals table th { color: #0d0d14 !important; }
.cart_totals .order-total td,
.cart_totals .order-total th { color: #1A4FA0 !important; }

/* ── Checkout ── */
.woocommerce-checkout h3,
.woocommerce form .form-row label,
.woocommerce-billing-fields h3,
.woocommerce-additional-fields h3 { color: #0d0d14 !important; }

/* ── Sidebar widgets ── */
.widget-title, .widgettitle,
aside.widget-area h2, aside.widget-area h3 { color: #0d0d14 !important; }
aside.widget-area a { color: #0d0d14 !important; }
aside.widget-area a:hover { color: #1A4FA0 !important; }

/* ── Pages et articles ── */
.entry-title, h1.entry-title { color: #0d0d14 !important; }
.entry-content, .entry-content p,
.page-content, .page-content p { color: #333 !important; }
.entry-content a { color: #1A4FA0 !important; }
