/*
 * Thème Castagnet - La Tradition Landaise
 * Thème moderne pour la vente en ligne de produits de la ferme landaise
 * Basé sur le thème Hummingbird (PrestaShop)
 *
 * PALETTE DE COULEURS
 * ─────────────────────────────────────────────────────────────────────
 * Site actuel : header #333, accent vert #719f41, texte #777, fond #fff
 *
 * Nouveau thème - Tons terroir landais :
 *   Primaire (or/terracotta) : #1a5c2e  — couleur du foie gras doré
 *   Secondaire (vert landais): #4A7C2F  — couleur des Landes
 *   Accent (or brillant)     : #C9941A  — reflet doré
 *   Fond chaud               : #FFFFFF  — blanc crème naturel
 *   Fond sombre              : #1C1209  — brun très sombre (header/footer)
 *   Texte principal          : #1a1a1a  — brun chaud
 *   Texte doux               : #555555  — brun doux
 *   Bordure                  : #e0e0e0  — beige chaud
 */

/* ═══════════════════════════════════════════════════════════════
   VARIABLES CSS - SURCHARGE DU THÈME HUMMINGBIRD / BOOTSTRAP 5
   ═══════════════════════════════════════════════════════════════ */
:root {
  /* Couleurs primaires */
  --bs-primary:              #1a5c2e;
  --bs-primary-rgb:          26, 92, 46;
  --bs-secondary:            #2d6a1b;
  --bs-secondary-rgb:        45, 106, 27;

  /* Couleurs bootstrap */
  --bs-success:              #2d6a1b;
  --bs-success-rgb:          45, 106, 27;
  --bs-warning:              #C9941A;
  --bs-warning-rgb:          201, 148, 26;
  --bs-danger:               #C0392B;
  --bs-danger-rgb:           192, 57, 43;
  --bs-info:                 #5B7FA6;
  --bs-info-rgb:             91, 127, 166;
  --bs-light:                #f5f5f5;
  --bs-light-rgb:            245, 245, 245;
  --bs-dark:                 #1a1a1a;
  --bs-dark-rgb:             26, 26, 26;

  /* Corps de page */
  --bs-body-bg:              #FFFFFF;
  --bs-body-color:           #1a1a1a;
  --bs-body-font-family:     'Lato', 'Nunito Sans', system-ui, -apple-system, sans-serif;
  --bs-body-font-size:       1rem;
  --bs-body-line-height:     1.6;

  /* Liens */
  --bs-link-color:           #1a5c2e;
  --bs-link-hover-color:     #134d22;
  --bs-link-color-rgb:       26, 92, 46;

  /* Bordures */
  --bs-border-color:         #e0e0e0;
  --bs-border-radius:        0.4rem;
  --bs-border-radius-lg:     0.6rem;
  --bs-border-radius-xl:     1rem;
  --bs-border-radius-pill:   50rem;

  /* Grays */
  --bs-gray-100:             #f8f8f8;
  --bs-gray-200:             #eeeeee;
  --bs-gray-300:             #dddddd;
  --bs-gray-400:             #aaaaaa;
  --bs-gray-500:             #888888;
  --bs-gray-600:             #555555;
  --bs-gray-700:             #333333;
  --bs-gray-800:             #222222;
  --bs-gray-900:             #1a1a1a;

  /* Ombres */
  --bs-box-shadow:           0 2px 12px rgba(0, 0, 0, 0.10);
  --bs-box-shadow-sm:        0 1px 4px rgba(0, 0, 0, 0.08);
  --bs-box-shadow-lg:        0 8px 32px rgba(0, 0, 0, 0.16);
  --bs-box-shadow-md:        0 4px 16px rgba(0, 0, 0, 0.12);

  /* Transitions */
  --bs-transition-default:   all 0.25s ease-in-out;

  /* Header */
  --header-bg:               #FFFFFF;
  --header-top-bg:           #111111;
  --header-top-color:        #e0e0e0;
  --header-border:           #e0e0e0;

  /* Footer */
  --footer-bg:               #f5f5f5;
  --footer-text:             #555555;
  --footer-link:             #444444;
  --footer-link-hover:       #1a5c2e;
  --footer-heading:          #1a1a1a;
  --footer-border:           #dddddd;

  /* Navigation */
  --nav-bg:                  #FFFFFF;
  --nav-link:                #1a1a1a;
  --nav-link-hover:          #1a5c2e;
  --nav-link-active:         #1a5c2e;
  --nav-dropdown-bg:         #FFFFFF;
  --nav-dropdown-border:     #e0e0e0;

  /* Produits */
  --product-card-bg:         #FFFFFF;
  --product-card-border:     #e0e0e0;
  --product-card-shadow:     0 2px 12px rgba(0, 0, 0, 0.08);
  --product-card-hover-shadow: 0 8px 24px rgba(0, 0, 0, 0.14);
  --product-price:           #1a5c2e;
  --product-old-price:       #888888;
  --product-badge-new:       #2d6a1b;
  --product-badge-sale:      #C0392B;

  /* Boutons */
  --btn-primary-bg:          #1a1a1a;
  --btn-primary-border:      #000000;
  --btn-primary-hover-bg:    #1a5c2e;
  --btn-secondary-bg:        #2d5a1b;
  --btn-secondary-border:    #1e3e12;
  --btn-secondary-hover-bg:  #1e3e12;

  /* Formulaires */
  --input-border:            #e0e0e0;
  --input-focus-border:      #1a5c2e;
  --input-focus-shadow:      0 0 0 0.2rem rgba(26, 92, 46, 0.2);
  --input-bg:                #FFFFFF;
  --input-placeholder:       #888888;

  /* Badges / labels */
  --badge-new-bg:            #2d6a1b;
  --badge-sale-bg:           #C0392B;

  /* Breadcrumb */
  --breadcrumb-bg:           transparent;
  --breadcrumb-color:        #555555;
  --breadcrumb-active:       #1a1a1a;

  /* Reassurance */
  --reassurance-bg:          #f5f5f5;
  --reassurance-border:      #e0e0e0;
  --reassurance-icon:        #1a5c2e;
}

/* ═══════════════════════════════════════════════════════════════
   TYPOGRAPHIE
   ═══════════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Lato:wght@300;400;700&display=swap');

body {
  font-family: var(--bs-body-font-family);
  background-color: var(--bs-body-bg);
  color: var(--bs-body-color);
}

h1, h2, h3, .h1, .h2, .h3 {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
  color: #1a1a1a;
  letter-spacing: -0.01em;
}

h4, h5, h6, .h4, .h5, .h6 {
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  color: #1a1a1a;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

a {
  color: var(--bs-link-color);
  text-decoration: none;
  transition: color 0.2s ease;
}

a:hover {
  color: var(--bs-link-hover-color);
  text-decoration: none;
}

/* ═══════════════════════════════════════════════════════════════
   BARRE DE NAVIGATION SUPÉRIEURE (header-top)
   ═══════════════════════════════════════════════════════════════ */
.header-top {
  background-color: var(--header-top-bg);
  color: var(--header-top-color);
  font-size: 0.82rem;
  letter-spacing: 0.03em;
}

.header-top a,
.header-top .header-top__left a,
.header-top .header-top__right a {
  color: var(--header-top-color);
  font-weight: 400;
}

.header-top a:hover {
  color: var(--bs-warning);
}

.header-top .header-block__icon {
  color: var(--header-top-color);
}

.header-top .header-block__btn {
  color: var(--header-top-color);
}

/* Contact info dans la barre supérieure */
.header-top .contact-rich span,
.header-top .contact-rich a {
  color: var(--header-top-color);
}

.header-top .contact-rich .value {
  color: var(--bs-warning);
  font-weight: 700;
}

/* ═══════════════════════════════════════════════════════════════
   EN-TÊTE PRINCIPAL (header-bottom)
   ═══════════════════════════════════════════════════════════════ */
.header {
  background-color: var(--header-bg);
  border-bottom: 1px solid var(--header-border);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.header-bottom {
  padding: 0.75rem 0;
  background-color: var(--header-bg);
}

.header-bottom__logo img {
  min-width: 400px;
  width: 400px;
  height: auto;
}

.header-bottom .navbar-brand .logo {
  max-height: none;
}

/* Barre de recherche */
.header-bottom .ps_searchbar,
.header-bottom #search_widget {
  max-width: 420px;
  flex: 1;
}

.header-bottom .ui-autocomplete-input,
.header-bottom input[type="text"],
.header-bottom .form-control {
  border: 2px solid var(--input-border);
  border-radius: 0.3rem;
  padding: 0.5rem 1.2rem;
  background-color: var(--bs-gray-100);
  color: var(--bs-body-color);
  transition: border-color 0.2s, box-shadow 0.2s;
}

/* Fix loupe searchbar : rétablir le padding gauche pour l'icône */
#ps_searchbar .ps-searchbar__input,
.ps-searchbar .ps-searchbar__input {
  padding-inline-start: 2.5rem !important;
  padding-inline-end: 2.5rem !important;
  padding-block: 0.5rem !important;
}

.ps-searchbar__magnifier {
  left: 0.75rem;
  font-size: 1.1rem;
  color: var(--bs-primary);
  pointer-events: none;
}

.header-bottom .ui-autocomplete-input:focus,
.header-bottom input[type="text"]:focus,
.header-bottom .form-control:focus {
  border-color: var(--input-focus-border);
  box-shadow: var(--input-focus-shadow);
  outline: none;
  background-color: #fff;
}

.header-bottom .btn,
.header-bottom button[type="submit"] {
  background-color: var(--btn-primary-bg);
  border-color: var(--btn-primary-border);
  color: #fff;
  border-radius: 0.2rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.header-bottom .btn:hover,
.header-bottom button[type="submit"]:hover {
  background-color: var(--btn-primary-hover-bg);
  border-color: var(--btn-primary-hover-bg);
}

/* Icônes du header (compte, panier) */
.header-block__action-btn {
  color: #333333;
  transition: color 0.2s;
}

.header-block__action-btn:hover {
  color: var(--bs-primary);
}

.header-block__badge {
  background-color: var(--bs-primary);
  color: #fff;
}

/* ═══════════════════════════════════════════════════════════════
   NAVIGATION PRINCIPALE (menu)
   ═══════════════════════════════════════════════════════════════ */
.header-nav-full-width {
  background-color: #f5f5f5;
  border-top: 1px solid #dddddd;
  border-bottom: 1px solid #dddddd;
}

/* Menu principal */
.top-menu,
#top-menu,
.header__navigation {
  background-color: #f5f5f5;
}

/* Flex centré sur le tree ps-mainmenu */
.header-nav-full-width .ps-mainmenu,
.header-nav-full-width .ps-mainmenu:is(.ps-mainmenu--desktop) {
  width: 100%;
  justify-content: center;
}

.header-nav-full-width .ps-mainmenu__tree {
  display: flex !important;
  justify-content: center;
  align-items: stretch;
  flex-wrap: nowrap;
  gap: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* ─── Liens ps-mainmenu desktop sur fond gris clair ─── */
.header-nav-full-width .ps-mainmenu__tree-link,
.header-nav-full-width .ps-mainmenu .ps-mainmenu__tree > li > a {
  color: #333333 !important;
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.85rem 1rem;
  transition: color 0.2s, background-color 0.2s;
  border-right: 1px solid #dddddd;
}

/* ─── Bouton chevron dropdown-toggle (slim, sans bordure propre) ─── */
.header-nav-full-width .ps-mainmenu__tree-dropdown-toggle {
  color: #333333 !important;
  padding: 0.85rem 0.35rem 0.85rem 0;
  border-right: 1px solid #dddddd;
  background: none;
  border-top: none;
  border-bottom: none;
  border-left: none;
  transition: color 0.2s, background-color 0.2s;
}

.header-nav-full-width .ps-mainmenu__tree-link:hover,
.header-nav-full-width .ps-mainmenu__tree-link:focus,
.header-nav-full-width .ps-mainmenu__tree-dropdown-toggle:hover,
.header-nav-full-width .ps-mainmenu__tree > li.current .ps-mainmenu__tree-link {
  color: var(--bs-primary) !important;
  background-color: rgba(26, 92, 46, 0.08);
}

/* ─── Ancien top-menu (fallback) ─── */
.top-menu a,
#top-menu a,
.top-menu .top-menu__item > a {
  color: #333333 !important;
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.85rem 1rem;
  transition: color 0.2s, background-color 0.2s;
}

.top-menu a:hover,
#top-menu a:hover,
.top-menu .top-menu__item > a:hover,
.top-menu .top-menu__item.current > a,
.top-menu .top-menu__item:hover > a {
  color: var(--bs-primary) !important;
  background-color: rgba(26, 92, 46, 0.08);
}

/* ─── Dropdown / submenu ─── */
.header-nav-full-width .submenu,
.top-menu .sub-menu,
.top-menu .dropdown-menu {
  background-color: #ffffff;
  border: 1px solid #dddddd;
  border-top: 3px solid var(--bs-primary);
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
  border-radius: 0 0 var(--bs-border-radius) var(--bs-border-radius);
}

/* Éléments gauche du submenu */
.header-nav-full-width .submenu__left-item {
  color: #333333 !important;
  background-color: transparent !important;
}
.header-nav-full-width .submenu__left-item:hover,
.header-nav-full-width .submenu__left-item.active {
  color: var(--bs-primary) !important;
  background-color: rgba(26, 92, 46, 0.08) !important;
}

/* Éléments droite du submenu */
.header-nav-full-width .submenu__right-items .menu-item,
.header-nav-full-width .submenu__right-items .menu-item__group-main-item a {
  color: #333333 !important;
}
.header-nav-full-width .submenu__right-items .menu-item:hover {
  color: var(--bs-primary) !important;
}

.top-menu .sub-menu a,
.top-menu .dropdown-menu a {
  color: #333333 !important;
  padding: 0.5rem 1.25rem;
  font-size: 0.82rem;
}

.top-menu .sub-menu a:hover,
.top-menu .dropdown-menu a:hover {
  color: var(--bs-primary) !important;
  background-color: rgba(26, 92, 46, 0.08);
}

/* ═══════════════════════════════════════════════════════════════
   BANNIÈRE SLIDER
   ═══════════════════════════════════════════════════════════════ */
.banner,
.homeslider,
#homepage-slider,
.ps_imageslider {
  position: relative;
  overflow: hidden;
}

.banner img,
.homeslider img {
  width: 100%;
  height: auto;
  display: block;
}

/* Overlay texte sur slider */
.homeslider-description,
.slider-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.4) 60%, transparent 100%);
  padding: 2.5rem 2rem 2rem;
  color: #FFFFFF;
}

.homeslider-description h2,
.slider-caption h2 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  font-weight: 700;
  color: #FFFFFF;
  text-shadow: 0 2px 8px rgba(0,0,0,0.4);
  margin-bottom: 0.75rem;
}

.homeslider-description p,
.slider-caption p {
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  color: rgba(255,253,248,0.9);
  max-width: 540px;
  line-height: 1.5;
}

.btn-slider,
.homeslider-description .btn {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.7rem 2rem;
  border-radius: 0.2rem;
  margin-top: 1rem;
  transition: all 0.25s;
}

.btn-slider:hover,
.homeslider-description .btn:hover {
  background-color: var(--btn-primary-hover-bg);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

/* ═══════════════════════════════════════════════════════════════
   SECTION RÉASSURANCE
   ═══════════════════════════════════════════════════════════════ */
.blockreassurance_product,
.block-reassurance,
#blockreassurance {
  background-color: var(--reassurance-bg);
  border-top: 1px solid var(--reassurance-border);
  border-bottom: 1px solid var(--reassurance-border);
  padding: 1.5rem 0;
}

.blockreassurance_product .item-product,
.block-reassurance .item,
.reassurance-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 1rem;
}

.blockreassurance_product .block-icon,
.block-reassurance .block-icon,
.reassurance-item .icon {
  color: var(--reassurance-icon);
  font-size: 2rem;
  flex-shrink: 0;
}

.blockreassurance_product .block-title,
.block-reassurance .block-title,
.reassurance-item .title {
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: 0.88rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #1a1a1a;
  margin-bottom: 0.1rem;
}

.blockreassurance_product .block-description,
.block-reassurance .block-description,
.reassurance-item .description {
  font-size: 0.8rem;
  color: var(--bs-gray-600);
  line-height: 1.4;
}

/* ═══════════════════════════════════════════════════════════════
   SECTIONS DE LA PAGE D'ACCUEIL
   ═══════════════════════════════════════════════════════════════ */
.page-content--home {
  background-color: var(--bs-body-bg);
}

/* Titre de section */
.section-title,
.products-section-title,
h2.h3,
.block-title-home {
  font-family: 'Playfair Display', serif;
  font-size: 1.8rem;
  font-weight: 700;
  color: #1a1a1a;
  text-align: center;
  margin-bottom: 2.5rem;
  position: relative;
  padding-bottom: 1rem;
}

.section-title::after,
.products-section-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 3px;
  background: linear-gradient(90deg, var(--bs-primary), var(--bs-warning));
  border-radius: 2px;
}

/* Texte de présentation (ps_customtext) */
.custom-text,
#custom-text,
.block-custom-text {
  background: linear-gradient(135deg, #f5f5f5 0%, #FFFFFF 100%);
  border: 1px solid var(--bs-gray-300);
  border-left: 5px solid var(--bs-primary);
  border-radius: var(--bs-border-radius-lg);
  padding: 2.5rem;
  margin: 2rem 0;
}

.custom-text h2,
.custom-text h3,
#custom-text h2,
#custom-text h3 {
  color: var(--bs-primary);
  font-family: 'Playfair Display', serif;
}

.custom-text p,
#custom-text p {
  color: #444444;
  line-height: 1.8;
  font-size: 1.05rem;
}

/* ═══════════════════════════════════════════════════════════════
   CARTES PRODUITS
   ═══════════════════════════════════════════════════════════════ */
.card,
.product-card,
.product-miniature .card {
  background-color: var(--product-card-bg);
  border: 1px solid var(--product-card-border);
  border-radius: var(--bs-border-radius-lg);
  box-shadow: var(--product-card-shadow);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  overflow: hidden;
}

.card:hover,
.product-card:hover,
.product-miniature .card:hover {
  transform: translateY(-4px);
  box-shadow: var(--product-card-hover-shadow);
}

/* Image du produit */
.product-miniature .card-img-top,
.product-thumbnail img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  width: 100%;
  border-bottom: 1px solid var(--product-card-border);
  transition: transform 0.4s ease;
}

.product-miniature:hover .card-img-top,
.product-miniature:hover .product-thumbnail img {
  transform: scale(1.04);
}

/* Corps de la carte */
.product-miniature .card-body {
  padding: 1rem 1.1rem;
}

/* Nom du produit */
.product-title,
.product-miniature .product-title a,
.product-miniature .card-title a {
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: 0.95rem;
  color: #1a1a1a;
  line-height: 1.4;
  transition: color 0.2s;
}

.product-miniature .product-title a:hover,
.product-miniature .card-title a:hover {
  color: var(--bs-primary);
}

/* Prix */
.price,
.product-price-and-shipping .price {
  font-family: 'Playfair Display', serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--product-price);
}

.regular-price,
.price-regular {
  font-size: 0.9rem;
  color: var(--product-old-price);
  text-decoration: line-through;
  font-weight: 400;
}

.discount-percentage,
.price-discount-percentage {
  background-color: var(--product-badge-sale);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.15rem 0.4rem;
  border-radius: var(--bs-border-radius);
}

/* Badges Nouveau / Promo */
.product-flags,
.product-flag-wrapper {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  z-index: 1;
}

.product-flag,
.label-product-flag {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.25rem 0.6rem;
  border-radius: var(--bs-border-radius);
  color: #fff;
  line-height: 1.4;
}

.product-flag.new,
.label-new {
  background-color: var(--product-badge-new);
}

.product-flag.on-sale,
.product-flag.discount,
.label-discount {
  background-color: var(--product-badge-sale);
}

/* Bouton d'ajout au panier */
.btn-product,
.btn-add-to-cart,
.add-to-cart,
.product-miniature .card-body .btn-primary {
  background-color: #1a1a1a;
  border-color: #000000;
  color: #fff;
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.55rem 1.2rem;
  border-radius: 0.2rem;
  transition: all 0.25s;
  width: 100%;
  margin-top: 0.5rem;
}

.btn-product:hover,
.btn-add-to-cart:hover,
.add-to-cart:hover,
.product-miniature .card-body .btn-primary:hover {
  background-color: #1a5c2e;
  border-color: #1a5c2e;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(26, 92, 46, 0.45);
}

/* Bouton "Voir le produit" */
.btn-product-secondary,
.quick-view,
.btn-outline-primary {
  border: 2px solid #1a1a1a;
  color: #ffffff;
  background: #1a1a1a;
  font-weight: 700;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.5rem 1.2rem;
  border-radius: 0.2rem;
  transition: all 0.25s;
}

.btn-product-secondary:hover,
.quick-view:hover,
.btn-outline-primary:hover {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

/* ═══════════════════════════════════════════════════════════════
   BOUTONS GÉNÉRAUX
   ═══════════════════════════════════════════════════════════════ */
.btn-primary {
  --bs-btn-bg:               #1a1a1a;
  --bs-btn-border-color:     #000000;
  --bs-btn-hover-bg:         #1a5c2e;
  --bs-btn-hover-border-color: #134d22;
  --bs-btn-active-bg:        #1a5c2e;
  --bs-btn-color:            #fff;
  --bs-btn-hover-color:      #fff;
  --bs-btn-active-color:     #fff;
  color: #fff !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: 0.2rem;
  padding: 0.6rem 1.75rem;
  transition: background-color 0.25s, box-shadow 0.25s;
}

.btn-primary:hover {
  box-shadow: 0 4px 14px rgba(26, 92, 46, 0.4);
}

.btn-secondary {
  --bs-btn-bg:               #2d5a1b;
  --bs-btn-border-color:     #1e3e12;
  --bs-btn-hover-bg:         #1e3e12;
  --bs-btn-hover-border-color: #152c0c;
  --bs-btn-color:            #fff;
  --bs-btn-hover-color:      #fff;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: 0.2rem;
}

.btn-warning {
  --bs-btn-bg:               #C9941A;
  --bs-btn-border-color:     #B58016;
  --bs-btn-hover-bg:         #B58016;
  --bs-btn-color:            #fff;
  --bs-btn-hover-color:      #fff;
  font-weight: 700;
  border-radius: 0.2rem;
}

/* ═══════════════════════════════════════════════════════════════
   PAGE LISTING CATÉGORIE
   ═══════════════════════════════════════════════════════════════ */
/* En-tête de catégorie */
.page-header,
#js-product-list-top,
.category-header {
  margin-bottom: 2rem;
}

.category-cover {
  border-radius: var(--bs-border-radius-lg);
  overflow: hidden;
  margin-bottom: 1.5rem;
}

.category-cover img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}

.category-description {
  color: #444444;
  line-height: 1.8;
  font-size: 1rem;
}

/* Filtres & tri */
.sort-by-row,
.products-sort-order,
#search_filters_toggler {
  background-color: var(--bs-gray-100);
  border: 1px solid var(--bs-gray-300);
  border-radius: var(--bs-border-radius);
  padding: 0.6rem 1rem;
  font-size: 0.88rem;
}

.facets,
#search_filters {
  background-color: #FFFFFF;
  border: 1px solid var(--bs-gray-300);
  border-radius: var(--bs-border-radius-lg);
  padding: 1.5rem;
  box-shadow: var(--bs-box-shadow-sm);
}

.facets .facet__title,
.facet-label {
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: 0.88rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #1a1a1a;
  border-bottom: 1px solid var(--bs-gray-300);
  padding-bottom: 0.5rem;
  margin-bottom: 0.75rem;
}

/* Pagination */
.pagination .page-link {
  color: var(--bs-primary);
  border-color: var(--bs-gray-300);
  transition: all 0.2s;
}

.pagination .page-item.active .page-link {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}

.pagination .page-link:hover {
  background-color: var(--bs-gray-100);
  border-color: var(--bs-primary);
  color: var(--btn-primary-hover-bg);
}

/* ═══════════════════════════════════════════════════════════════
   PAGE PRODUIT
   ═══════════════════════════════════════════════════════════════ */
.product-cover img,
#product-images img {
  border-radius: var(--bs-border-radius-lg);
  border: 1px solid var(--bs-gray-300);
}

.product-name,
#main .product-detail h1 {
  font-family: 'Playfair Display', serif;
  font-size: 2rem;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.3;
  margin-bottom: 1rem;
}

.product-prices .price {
  font-family: 'Playfair Display', serif;
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--bs-primary);
}

.product-description,
.product-description-short {
  color: #444444;
  line-height: 1.8;
  font-size: 1rem;
}

.product-add-to-cart {
  background-color: var(--bs-gray-100);
  border: 1px solid var(--bs-gray-300);
  border-radius: var(--bs-border-radius-lg);
  padding: 1.5rem;
  margin: 1.5rem 0;
}

.add-to-cart {
  background-color: #1a1a1a !important;
  border-color: #000000 !important;
  color: #fff !important;
  font-size: 1rem !important;
  padding: 0.8rem 2rem !important;
  border-radius: 0.2rem !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
  width: 100%;
  transition: all 0.25s;
}

.add-to-cart:hover {
  background-color: #1a5c2e !important;
  border-color: #1a5c2e !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(26, 92, 46, 0.45) !important;
}

/* Onglets produit */
.product-tabs .nav-tabs {
  border-bottom: 2px solid var(--bs-gray-300);
  gap: 0.5rem;
}

.product-tabs .nav-link {
  color: #555555;
  font-weight: 700;
  font-size: 0.88rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border: none;
  border-bottom: 3px solid transparent;
  padding: 0.75rem 1.25rem;
  transition: all 0.2s;
  border-radius: 0;
}

.product-tabs .nav-link:hover,
.product-tabs .nav-link.active {
  color: var(--bs-primary);
  border-bottom-color: var(--bs-primary);
  background: transparent;
}

/* ═══════════════════════════════════════════════════════════════
   FIL D'ARIANE
   ═══════════════════════════════════════════════════════════════ */
.breadcrumb {
  background-color: transparent;
  padding: 0.75rem 0;
  margin-bottom: 1rem;
}

.breadcrumb-item a {
  color: var(--bs-gray-600);
  font-size: 0.85rem;
}

.breadcrumb-item a:hover {
  color: var(--bs-primary);
}

.breadcrumb-item.active {
  color: #1a1a1a;
  font-size: 0.85rem;
}

.breadcrumb-item + .breadcrumb-item::before {
  color: var(--bs-gray-400);
  content: "›";
}

/* ═══════════════════════════════════════════════════════════════
   FORMULAIRES
   ═══════════════════════════════════════════════════════════════ */
.form-control,
.form-select {
  border: 1.5px solid var(--input-border);
  border-radius: var(--bs-border-radius);
  padding: 0.55rem 0.85rem;
  color: var(--bs-body-color);
  background-color: var(--input-bg);
  transition: border-color 0.2s, box-shadow 0.2s;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--input-focus-border);
  box-shadow: var(--input-focus-shadow);
  outline: none;
}

.form-control::placeholder {
  color: var(--input-placeholder);
}

.form-label {
  font-weight: 700;
  font-size: 0.88rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #444444;
  margin-bottom: 0.4rem;
}

.form-check-input:checked {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

/* ═══════════════════════════════════════════════════════════════
   PANIER & CHECKOUT
   ═══════════════════════════════════════════════════════════════ */
.cart-container {
  background-color: var(--bs-body-bg);
}

.cart-item {
  border-bottom: 1px solid var(--bs-gray-300);
  padding: 1.25rem 0;
}

.cart-item .product-name {
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: 0.95rem;
  color: #1a1a1a;
}

.cart-summary-line.cart-total .value {
  font-family: 'Playfair Display', serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--bs-primary);
}

.cart-summary-block {
  background-color: #FFFFFF;
  border: 1px solid var(--bs-gray-300);
  border-radius: var(--bs-border-radius-lg);
  padding: 1.5rem;
  box-shadow: var(--bs-box-shadow-sm);
}

/* Étapes du checkout */
.checkout-step__title {
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #1a1a1a;
}

.checkout-step.-current .checkout-step__title {
  color: var(--bs-primary);
}

/* ═══════════════════════════════════════════════════════════════
   BLOC EMAIL (newsletter)
   ═══════════════════════════════════════════════════════════════ */
#ps_emailsubscription,
.block-newsletter,
.ps_emailsubscription,
.ps-emailsubscription {
  background: transparent !important;
  border-top: none !important;
  border-bottom: 1px solid #dddddd;
  padding: 3rem 0;
  color: #444444;
}

#ps_emailsubscription h2,
.block-newsletter h2,
#block_newsletter h2 {
  font-family: 'Playfair Display', serif;
  font-size: 1.8rem;
  color: #1a1a1a;
  margin-bottom: 0.5rem;
}

#ps_emailsubscription p,
.block-newsletter .newsletter-description {
  color: #555555;
  margin-bottom: 1.25rem;
}

#ps_emailsubscription .form-control,
.block-newsletter input[type="email"] {
  border: 1px solid #cccccc;
  background-color: #ffffff;
  color: #333333;
  border-radius: 0.2rem 0 0 0.2rem;
}

#ps_emailsubscription .form-control::placeholder {
  color: #999999;
}

#ps_emailsubscription .btn,
.block-newsletter .btn-primary {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: 0 0.2rem 0.2rem 0;
}

#ps_emailsubscription .btn:hover,
.block-newsletter .btn-primary:hover {
  background-color: var(--btn-primary-hover-bg);
  border-color: var(--btn-primary-hover-bg);
}

/* ═══════════════════════════════════════════════════════════════
   PIED DE PAGE
   ═══════════════════════════════════════════════════════════════ */
.footer {
  font-family: 'Lato', sans-serif;
}

.footer__before {
  background: transparent;
}

.footer__main {
  background-color: #f5f5f5 !important;
  color: var(--footer-text) !important;
  border-top: 3px solid var(--bs-primary);
}

.footer-block__title {
  color: var(--footer-heading) !important;
  font-family: 'Lato', sans-serif !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  font-size: 0.85rem !important;
  border-bottom: 1px solid #dddddd;
  padding-bottom: 0.6rem;
  margin-bottom: 0.75rem !important;
}

.footer-block__list a,
.footer__main a {
  color: var(--footer-link) !important;
  font-size: 0.88rem;
  transition: color 0.2s, padding-left 0.2s;
}

.footer-block__list a:hover,
.footer__main a:hover {
  color: var(--footer-link-hover) !important;
  padding-left: 4px;
}

/* Contact dans le footer */
.footer__main .contact-rich span,
.footer__main .contact-rich a {
  color: var(--footer-text) !important;
  font-size: 0.88rem;
}

.footer__main .contact-rich .value {
  color: #555555;
}

/* Réseaux sociaux */
.social-sharing,
#social_block ul {
  display: flex;
  gap: 0.75rem;
  list-style: none;
  padding: 0;
}

.social-sharing a,
#social_block ul li a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid #cccccc;
  color: var(--footer-link) !important;
  font-size: 1rem;
  transition: all 0.2s;
}

.social-sharing a:hover,
#social_block ul li a:hover {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff !important;
}

/* Copyright */
.copyright,
.footer__copyright {
  font-size: 0.78rem;
  color: #555555;
  padding: 1rem 0;
  border-top: 1px solid #3d3d3d;
  margin-top: 1.5rem;
  text-align: center;
}

/* ═══════════════════════════════════════════════════════════════
   COMPTE CLIENT
   ═══════════════════════════════════════════════════════════════ */
.page-content--my-account {
  background-color: var(--bs-body-bg);
}

.links .link-item,
.account-links .link-item {
  background-color: #FFFFFF;
  border: 1px solid var(--bs-gray-300);
  border-radius: var(--bs-border-radius-lg);
  padding: 1.5rem;
  text-align: center;
  transition: all 0.25s;
  box-shadow: var(--bs-box-shadow-sm);
}

.links .link-item:hover,
.account-links .link-item:hover {
  border-color: var(--bs-primary);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  transform: translateY(-2px);
}

.links .link-item i,
.account-links .link-item i {
  font-size: 2rem;
  color: var(--bs-primary);
  margin-bottom: 0.75rem;
}

/* ═══════════════════════════════════════════════════════════════
   ALERTES & NOTIFICATIONS
   ═══════════════════════════════════════════════════════════════ */
.alert-success {
  background-color: rgba(74, 124, 47, 0.08);
  border-color: var(--bs-secondary);
  color: #2D5A1B;
}

.alert-danger {
  background-color: rgba(192, 57, 43, 0.08);
  border-color: var(--bs-danger);
  color: #8B2316;
}

.alert-warning {
  background-color: rgba(201, 148, 26, 0.1);
  border-color: var(--bs-warning);
  color: #7A5816;
}

.alert-info {
  background-color: rgba(91, 127, 166, 0.08);
  border-color: var(--bs-info);
  color: #2D4A6B;
}

/* ═══════════════════════════════════════════════════════════════
   PAGE DE CONTACT
   ═══════════════════════════════════════════════════════════════ */
.contact-form {
  background-color: #FFFFFF;
  border: 1px solid var(--bs-gray-300);
  border-radius: var(--bs-border-radius-lg);
  padding: 2rem;
  box-shadow: var(--bs-box-shadow-sm);
}

.contact-rich {
  background-color: var(--bs-gray-100);
  border: 1px solid var(--bs-gray-300);
  border-left: 4px solid var(--bs-primary);
  border-radius: var(--bs-border-radius-lg);
  padding: 1.5rem;
}

.contact-rich h4 {
  color: var(--bs-primary);
  font-size: 0.85rem;
}

.contact-rich .value {
  color: #1a1a1a;
  font-weight: 400;
}

/* ═══════════════════════════════════════════════════════════════
   ÉLÉMENTS UI DIVERS
   ═══════════════════════════════════════════════════════════════ */
/* Séparateur */
.divider,
hr {
  border-color: var(--bs-gray-300);
  opacity: 0.6;
}

/* Tables */
.table thead th {
  background-color: var(--bs-gray-100);
  color: #1a1a1a;
  font-weight: 700;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-bottom: 2px solid var(--bs-gray-300);
}

.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: rgba(245, 245, 245, 0.5);
}

/* Badges */
.badge.bg-primary {
  background-color: var(--bs-primary) !important;
}

.badge.bg-secondary {
  background-color: var(--bs-secondary) !important;
}

/* Scroll bar personnalisée */
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #f0f0f0;
}

::-webkit-scrollbar-thumb {
  background: #aaaaaa;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--bs-primary);
}

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 991.98px) {
  .header-bottom__logo img {
    min-width: 220px;
    width: 220px;
    height: auto;
  }

  .product-name,
  #main .product-detail h1 {
    font-size: 1.6rem;
  }

  .product-prices .price {
    font-size: 1.8rem;
  }
}

@media (max-width: 767.98px) {
  .header-nav-full-width {
    display: none;
  }

  .top-menu {
    padding: 0;
  }

  .top-menu a {
    padding: 0.7rem 1.2rem;
    font-size: 0.9rem;
    border-bottom: 1px solid #333333;
  }

  .homeslider-description h2,
  .slider-caption h2 {
    font-size: 1.4rem;
  }

  .section-title,
  .products-section-title {
    font-size: 1.4rem;
  }

  .custom-text,
  #custom-text {
    padding: 1.5rem;
  }
}

@media (max-width: 575.98px) {
  .product-miniature .card-body {
    padding: 0.75rem;
  }

  .btn-product,
  .btn-add-to-cart {
    font-size: 0.78rem;
    padding: 0.5rem 0.9rem;
  }

  .footer__main {
    padding: 2rem 0;
  }
}

/* ═══════════════════════════════════════════════════════════════
   HEADER STICKY (ajouté par custom.js)
   ═══════════════════════════════════════════════════════════════ */
#header.header--scrolled .header-bottom {
  padding: 0.5rem 0;
  transition: padding 0.3s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

#header.header--scrolled .header-bottom__logo img {
  width: 280px;
  min-width: 280px;
  height: auto;
  transition: width 0.3s ease;
}

/* ═══════════════════════════════════════════════════════════════
   BOUTON "RETOUR EN HAUT"
   ═══════════════════════════════════════════════════════════════ */
#back-to-top.shown {
  background-color: var(--bs-primary);
  border-color: var(--btn-primary-hover-bg);
  color: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

#back-to-top:hover {
  background-color: var(--btn-primary-hover-bg);
}

/* Bouton "Ajouter au panier" en chargement */
.btn--loading {
  opacity: 0.7;
  pointer-events: none;
  position: relative;
}

.btn--loading::after {
  content: '';
  position: absolute;
  right: 0.8rem;
  top: 50%;
  width: 14px;
  height: 14px;
  margin-top: -7px;
  border: 2px solid rgba(255,255,255,0.5);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin 0.7s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* ═══════════════════════════════════════════════════════════════
   MODAL / POPIN PANIER
   ═══════════════════════════════════════════════════════════════ */
.modal-content {
  border: 1px solid var(--bs-gray-300);
  border-radius: var(--bs-border-radius-lg);
  box-shadow: var(--bs-box-shadow-lg);
}

.modal-header {
  background-color: var(--bs-gray-100);
  border-bottom: 1px solid var(--bs-gray-300);
}

.modal-title {
  font-family: 'Playfair Display', serif;
  font-weight: 600;
  color: #1a1a1a;
}

/* ═══════════════════════════════════════════════════════════════
   HEADER RECHERCHE + PANIER
   ═══════════════════════════════════════════════════════════════ */
.header-search-wrapper {
  display: flex;
  align-items: center;
  min-width: 0;
}

.header-search-wrapper #search_widget,
.header-search-wrapper .ps_searchbar,
.header-search-wrapper form {
  width: 100%;
  max-width: 100%;
  display: flex;
}

.header-search-wrapper input[type="text"],
.header-search-wrapper .ui-autocomplete-input {
  flex: 1;
  min-width: 0;
}

/* Bouton panier bureau */
.header-cart-link {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  color: #333333;
  font-family: 'Lato', sans-serif;
  font-weight: 700;
  font-size: 0.88rem;
  text-decoration: none;
  padding: 0.5rem 0.9rem;
  border: 1.5px solid #d0d0d0;
  border-radius: 0.2rem;
  background: #fff;
  transition: color 0.2s, border-color 0.2s, background 0.2s;
  white-space: nowrap;
}

.header-cart-link:hover {
  color: var(--bs-primary);
  border-color: var(--bs-primary);
  background: #f5f5f5;
}

.header-cart-icon {
  position: relative;
  display: flex;
  align-items: center;
  line-height: 1;
}

.header-cart-icon .material-icons {
  font-size: 1.35rem;
  line-height: 1;
}

.header-cart-badge {
  position: absolute;
  top: -8px;
  right: -10px;
  background-color: var(--bs-primary);
  color: #fff;
  font-size: 0.62rem;
  font-weight: 700;
  min-width: 17px;
  height: 17px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  padding: 0 2px;
}

.header-cart-label {
  font-size: 0.82rem;
  font-weight: 700;
}

/* ═══════════════════════════════════════════════════════════════
   ÉLÉMENTS SPÉCIFIQUES LANDAIS
   ═══════════════════════════════════════════════════════════════ */

/* Ruban promotionnel "Clic & Collect" */
.clic-collect-banner {
  background: linear-gradient(90deg, #4A7C2F, #5A9C3A);
  color: #fff;
  text-align: center;
  padding: 0.5rem 1rem;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.clic-collect-banner a {
  color: #FFFFFF;
  text-decoration: underline;
}

/* Mise en avant coffrets */
.product-flag.coffret,
.badge-coffret {
  background: linear-gradient(135deg, #1a5c2e, #0d3d1a);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.25rem 0.6rem;
  border-radius: var(--bs-border-radius);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* ═══════════════════════════════════════════════════════════════
   ANIMATIONS
   ═══════════════════════════════════════════════════════════════ */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.product-miniature {
  animation: fadeInUp 0.4s ease both;
}

.product-miniature:nth-child(2) { animation-delay: 0.06s; }
.product-miniature:nth-child(3) { animation-delay: 0.12s; }
.product-miniature:nth-child(4) { animation-delay: 0.18s; }
.product-miniature:nth-child(5) { animation-delay: 0.24s; }
.product-miniature:nth-child(6) { animation-delay: 0.30s; }
.product-miniature:nth-child(7) { animation-delay: 0.36s; }
.product-miniature:nth-child(8) { animation-delay: 0.42s; }

/* ═══════════════════════════════════════════════════════════════
   CONFIRMATION DE PAIEMENT — bouton désactivé en gris
   ═══════════════════════════════════════════════════════════════ */
#payment-confirmation .btn:disabled,
#payment-confirmation .btn.disabled,
#payment-confirmation button:disabled,
#payment-confirmation button[disabled] {
  background-color: #cccccc !important;
  border-color: #cccccc !important;
  color: #888888 !important;
  opacity: 1;
  cursor: not-allowed;
}

/* ═══════════════════════════════════════════════════════════════
   DROPDOWN MON COMPTE — correctifs couleurs (header-top sombre)
   ═══════════════════════════════════════════════════════════════ */

/* Bouton "Mon compte" dans la barre sombre : texte clair visible */
.header-top .header-block__action-btn,
.header-top .header-block__action-btn .header-block__title,
.header-top .header-block__action-btn .header-block__icon {
  color: var(--header-top-color) !important;
}

/* Hover du bouton : or/doré plutôt que vert foncé invisible */
.header-top .header-block__action-btn:hover,
.header-top .header-block__action-btn:hover .header-block__title,
.header-top .header-block__action-btn:hover .header-block__icon {
  color: var(--bs-warning) !important;
}

/* Dropdown ouvert : fond blanc, bordure verte en haut */
#_desktop_ps_customersignin .dropdown-menu {
  background-color: #ffffff !important;
  border: 1px solid #e0e0e0 !important;
  border-top: 3px solid var(--bs-primary) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12) !important;
}

/* Items du dropdown : texte sombre lisible sur fond blanc */
#_desktop_ps_customersignin .dropdown-item {
  color: #333333 !important;
  background-color: transparent !important;
}

#_desktop_ps_customersignin .dropdown-item i.material-icons {
  color: #555555 !important;
}

/* Hover des items : fond vert, texte et icônes blancs */
#_desktop_ps_customersignin .dropdown-item:hover,
#_desktop_ps_customersignin .dropdown-item:focus {
  color: #ffffff !important;
  background-color: var(--bs-primary) !important;
}

#_desktop_ps_customersignin .dropdown-item:hover i.material-icons,
#_desktop_ps_customersignin .dropdown-item:focus i.material-icons {
  color: #ffffff !important;
}

#_desktop_ps_customersignin .dropdown-divider {
  border-color: #e0e0e0;
}
