/*
 * Custom code goes here.
 * Thème enfant "Pièce Manquante" — hérite de Hummingbird
 * Palette : vert foncé / orange / terracotta / beige
 */

/* Fond général du site : hors @layer pour garantir la priorité (non-layered CSS bat toujours les layers) */
html, body {
  background-color: #F1EFE8 !important;
}

:root {
  --color-primary: #173404;      /* vert foncé - header, textes forts */
  --color-secondary: #EF9F27;    /* orange - CTA, accents */
  --color-accent: #D85A30;       /* terracotta - accent chaud */
  --color-bg: #F1EFE8;           /* beige clair - fond général */
  --color-white: #FFFFFF;

  /* Surcharge globale des variables de lien Bootstrap : fini le bleu par défaut */
  --bs-link-color: #173404;
  --bs-link-hover-color: #D85A30;
  --bs-link-color-rgb: 23, 52, 4;
  --bs-link-hover-color-rgb: 216, 90, 48;
  --bs-primary: #173404;
  --bs-primary-rgb: 23, 52, 4;
}

/* Filet de sécurité : tout lien non explicitement stylé ailleurs */
a {
  color: var(--color-primary);
}

a:hover,
a:focus,
a:active {
  color: var(--color-accent) !important;
}

/* Header */
#header,
.header,
.header-nav {
  background-color: var(--color-primary) !important;
}

#header a,
.header a,
.header-nav a {
  color: var(--color-bg) !important;
}

/* Barre du haut (top bar : téléphone, devise, connexion, panier) */
.header-top,
.top-nav,
#header .top,
.header-top-bar,
.header .top-menu {
  background-color: var(--color-primary) !important;
}

.header-top a,
.header-top span,
.header-top div,
.top-nav a,
.top-nav span,
#header .top a,
#header .top span,
.header-top-bar a,
.header-top-bar span {
  color: var(--color-bg) !important;
}

.header-top svg,
.top-nav svg,
#header .top svg {
  fill: var(--color-bg) !important;
}

/* Retirer les bordures/traits blancs dans le header */
.header-top,
.top-nav,
#header .top,
.header-top-bar,
#header,
.header,
.header-nav {
  border: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
}

/* Badge du panier (le rond avec le nombre d'articles) */
.header-block__badge,
.cart-products-count,
.blockcart .cart-products-count,
.header-top .badge,
.cart__count,
[class*="cart"] .badge,
.blockcart .badge {
  background-color: var(--color-secondary) !important;
  color: #412402 !important;
  border: none !important;
}

/* Bloc newsletter (footer) : texte trop clair par défaut */
.email-subscription {
  background-color: #FFFFFF;
}

.email-subscription__content__left,
.email-subscription__content__left * {
  color: #2C2C2A !important;
}

.email-subscription__content__infos,
.email-subscription__content__infos p,
.email-subscription__content__infos * {
  color: #5F5E5A !important;
}

.email-subscription__content__inputs input,
.email-subscription input[type="email"],
.email-subscription input {
  color: #2C2C2A !important;
}

.email-subscription__content__inputs input::placeholder,
.email-subscription input[type="email"]::placeholder,
.email-subscription input::placeholder {
  color: #8A8984 !important;
  opacity: 1 !important;
}

/* Barre de partage réseaux sociaux (fiche produit) : conteneur parent, vide depuis le retrait du module */
.product__additional-info {
  display: none !important;
}

/* Neutraliser l'opacité appliquée par le module Kea Labs (recherche visuelle) sur les images produit */
.kea-reset img,
[class*="ProductThumbnail"],
[class^="ProductThumbnail"] {
  opacity: 1 !important;
}

/* Masquer le label de disponibilité affiché par le module Kea Labs */
[class*="ProductAvailabilityLabel"] {
  display: none !important;
}

/* Bouton "Tous les nouveaux produits" (btn-outline-primary) */
.btn-outline-primary {
  --bs-btn-color: #173404;
  --bs-btn-border-color: #173404;
  --bs-btn-hover-color: #FFFFFF;
  --bs-btn-hover-bg: #173404;
  --bs-btn-hover-border-color: #173404;
  --bs-btn-focus-shadow-rgb: 23, 52, 4;
  --bs-btn-active-color: #FFFFFF;
  --bs-btn-active-bg: #173404;
  --bs-btn-active-border-color: #173404;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
  --bs-btn-disabled-color: #173404;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #173404;
  --bs-gradient: none;
}

.all-product-link.btn-outline-primary {
  background-color: transparent !important;
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
}

.all-product-link.btn-outline-primary:hover {
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  color: #FFFFFF !important;
}

/* Icônes du header (compte, panier...) : hover en orange plutôt que vert */
.header-block__icon,
.material-icons.header-block__icon {
  color: var(--color-bg) !important;
  transition: color 0.2s ease;
}

.header-block__link:hover .header-block__icon,
.header-block__icon:hover {
  color: var(--color-secondary) !important;
}

/* Image de couverture des pages catégorie */
.category-cover {
  display: none !important;
}

/* Module de réassurance client (Paiement sécurisé / Livraison / Retours / etc.) */
.blockreassurance_product .block-title {
  color: var(--color-primary) !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
}

.blockreassurance_product p {
  color: #5F5E5A !important;
  font-size: 0.9rem !important;
}

.blockreassurance_product .item-product {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.social-sharing span {
  color: var(--color-primary);
  font-weight: 600;
  font-size: 0.9rem;
}

.social-sharing ul {
  display: flex;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.social-sharing ul li {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: #F1EFE8;
  transition: background-color 0.2s ease;
}

.social-sharing ul li:hover {
  background-color: var(--color-secondary);
}

.social-sharing ul li a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: inherit !important;
  text-decoration: none !important;
}

.social-sharing ul li a:visited,
.social-sharing ul li a:hover,
.social-sharing ul li a:active {
  color: inherit !important;
  text-decoration: none !important;
}

/* Boutons principaux (Bootstrap 5) */
.btn-primary,
.btn-primary:not(:disabled):not(.disabled) {
  background-color: var(--color-secondary) !important;
  border-color: var(--color-secondary) !important;
  color: #412402 !important;
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--color-accent) !important;
  border-color: var(--color-accent) !important;
  color: #FFFFFF !important;
}

/* Prix produit */
.product-price,
.price,
.product-miniature__price,
.current-price {
  color: var(--color-primary) !important;
  font-weight: 600;
}

/* Badges / étiquettes (ex: "en stock", "promo") */
.badge,
.product-flag {
  background-color: var(--color-accent) !important;
  color: #FFFFFF !important;
}

/* Footer */
#footer,
.footer {
  background-color: var(--color-primary) !important;
  color: var(--color-bg) !important;
}

/* Cartes produits : le fond blanc doit être sur l'élément interne, pas la colonne,
   sinon le padding de la colonne ne crée pas d'espace visible entre les cartes */
.product-miniature .thumbnail-container,
.product-miniature .product-miniature__content,
.product-miniature > div:first-child {
  background-color: #FFFFFF;
  border-radius: 8px;
}

/* Espacement entre les cartes produits (ex: bloc "Nouveaux produits") */
.products.row {
  margin-left: -10px !important;
  margin-right: -10px !important;
}

.product-miniature {
  padding: 10px !important;
  background-color: transparent !important;
}

/* Bloc sous-catégories (pages catégorie) : cohérence visuelle avec le reste du site */
#subcategories .subcategory-image,
#subcategories a {
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  border-radius: 8px;
}

#subcategories a:hover {
  box-shadow: 0 4px 12px rgba(23, 52, 4, 0.1);
  transform: translateY(-2px);
}

/* Cartes catégories page d'accueil (bloc HTML personnalisé) */
.pm-category-card {
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.pm-category-card:hover {
  box-shadow: 0 4px 12px rgba(23, 52, 4, 0.1);
  transform: translateY(-2px);
}

/* Grille de cartes catégories (page d'accueil) */
.pm-category-grid {
  width: 100%;
  padding: 32px calc(var(--bs-gutter-x, 1.5rem) * .5);
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
}

.pm-category-card {
  text-decoration: none !important;
  background: transparent;
  border-radius: 6px;
  padding: 12px 16px;
  margin: 0 12px 12px 0;
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid #ddd;
  flex: 1 1 200px;
  overflow: hidden;
  box-sizing: border-box;
}

.pm-category-card img {
  width: 98px;
  height: 98px;
  object-fit: cover;
  border-radius: 4px;
  display: block;
  flex-shrink: 0;
}

.pm-category-card span {
  color: var(--color-primary) !important;
  font-weight: 600;
  font-size: 1rem;
}

/* Bloc filtres (recherche à facettes, pages catégorie) */
#search-filters {
  background-color: #FFFFFF;
  border-radius: 10px;
  padding: 1rem 1.25rem;
}

#search-filters .search-filters-title {
  color: var(--color-primary) !important;
  font-weight: 700;
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
}

#search-filters .facet.accordion-item {
  border-bottom: 1px solid #F1EFE8;
  padding: 0.5rem 0;
}

#search-filters .facet.accordion-item:last-child {
  border-bottom: none;
}

#search-filters .search-filters-subtitle {
  margin: 0;
}

#search-filters .accordion-button {
  color: #2C2C2A !important;
  font-weight: 600 !important;
  font-size: 0.95rem;
  background-color: transparent !important;
  box-shadow: none !important;
  padding: 0.5rem 0 !important;
}

#search-filters .accordion-button:not(.collapsed) {
  color: var(--color-accent) !important;
}

#search-filters hr {
  display: none;
}

#search-filters .accordion-collapse {
  padding-bottom: 0.5rem;
}

#search-filters input[type="checkbox"]:checked {
  accent-color: var(--color-secondary);
}

/* === Fiche produit : accordéon Description / Détails / Fiche technique === */
/* Classe réelle : .product__infos (BEM, double underscore) */

.product__infos.accordion {
  background-color: #FFFFFF;
  border-radius: 10px;
  padding: 0.5rem 1.25rem;
}

.product__infos .info.accordion-item {
  border-bottom: 1px solid #F1EFE8;
}

.product__infos .info.accordion-item:last-child {
  border-bottom: none;
}

.product__infos .info_title,
.product__infos .info_title.accordion-header {
  margin: 0;
}

.product__infos .accordion-button {
  color: var(--color-primary) !important;
  font-weight: 600;
  font-size: 1.05rem;
  background-color: transparent !important;
  box-shadow: none !important;
  padding: 1rem 0;
}

.product__infos .accordion-button:not(.collapsed) {
  color: var(--color-accent) !important;
}

.product__infos .accordion-button::after {
  filter: none;
}

.product__infos .info__content,
.product__infos .info__content.accordion-collapse {
  padding-bottom: 1rem;
  color: #2C2C2A;
}

/* Fix robuste : surcharge directe des variables Bootstrap utilisées par l'accordéon,
   plutôt que la propriété color seule (contourne les soucis de priorité CSS) */
.product__infos .accordion-button {
  --bs-accordion-btn-color: #173404 !important;
  --bs-accordion-active-color: #D85A30 !important;
  --bs-accordion-btn-bg: transparent !important;
  --bs-accordion-active-bg: transparent !important;
  --bs-accordion-border-color: #F1EFE8 !important;
  color: #173404 !important;
}

.product__infos .accordion-button:not(.collapsed) {
  color: #D85A30 !important;
}

/* Vignette active (photo sélectionnée) : bordure orange plutôt que bleue par défaut */
.product-thumbs img.selected,
.product-thumbs .selected,
.thumb-container.selected,
[class*="thumb"].active,
[class*="thumb"] img.selected {
  border-color: var(--color-secondary) !important;
}

/* Bloc infos annexes (Paiement / Livraison / Retours) : corrige le débordement + style */
.product-additional-info,
.product-info-block,
[class*="additional-info"],
aside[class*="product"] {
  background-color: #FFFFFF;
  border-radius: 10px;
  padding: 1rem;
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  max-width: 100%;
}

.product-additional-info a,
.product-info-block a,
[class*="additional-info"] a {
  color: var(--color-primary) !important;
  overflow-wrap: break-word;
}

/* Sécurité générale anti-débordement sur toute colonne latérale produit */
[class*="product"] aside,
.product-actions,
.product-information {
  overflow-x: hidden;
  max-width: 100%;
}

/* Page de maintenance / erreur : le logo utilise une structure différente (#layout-error) sans contrainte de taille par défaut */
#layout-error .logo img,
#layout-error .page-header .logo img {
  max-width: 200px !important;
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}

#layout-error .page-header {
  text-align: center;
  padding: 2rem 1rem;
}

#layout-error h1 {
  font-size: clamp(1.5rem, 5vw, 3rem) !important;
  white-space: normal !important;
  word-break: break-word !important;
  margin-top: 1rem;
}