/*
 * home_style.css — ProTunisia v4 (correctif live test.protunisia.com)
 * ====================================================================
 * Corrections basées sur analyse du site en ligne :
 *   1. Carousel : images superposées (float:left Bootstrap)
 *   2. Sidebar  : non sticky (overflow sur parents Bootstrap)
 *   3. Articles : disposition incorrecte (hauteurs inégales)
 *   4. Menu     : badges "+" supprimés → chevrons CSS
 *   5. Header   : hauteur fixe pendant défilement
 * ====================================================================
 */

/* ============================================================
   0. VARIABLES OCEAN IMPACT
============================================================ */
:root {
  --main-color:   #2A9D8F;
  --main-dark:    #264653;
  --main-light:   #57B8AC;
  --main-pale:    #EAF6F6;
  --accent-sand:  #E9C46A;
  --accent-coral: #F4A261;
  --accent-red:   #E8554E;
  --text-dark:    #1E272E;
  --text-mid:     #4A7B86;
  --text-light:   #7FA8B0;
  --border-color: #C8E8E5;
  --bg-page:      #F0F9F8;
  --shadow-sm:    0 2px 8px rgba(38,70,83,0.07);
  --shadow-md:    0 8px 28px rgba(42,157,143,0.16);
  --radius:       10px;
  /* Hauteur exacte du header (header-middle + header-bottom) */
  --header-h:     110px;
}

/* ============================================================
   1. BODY & PLEINE LARGEUR
============================================================ */
body {
  background-color: var(--bg-page);
}

/* Élargit tous les .container principaux */
section > .container,
section .container,
body > div > .container {
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
}

/* Header et Footer gardent une largeur max raisonnable */
.header-middle .container,
.footer-top .container,
.footer-bottom .container,
.footer-widget .container {
  width: 100% !important;
  max-width: 1400px !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
}

/* ============================================================
   2. HEADER — sticky, mesure précise
============================================================ */
#header {
  position: sticky;
  top: 0;
  z-index: 1000;
  box-shadow: 0 2px 14px rgba(38,70,83,0.12);
}

/* Barre logo + boutons */
.header-middle {
  background: #fff;
  border-bottom: 1px solid var(--border-color);
}

.header-middle .container .row {
  border-bottom: none !important;
  padding-top: 10px;
  padding-bottom: 10px;
}

.logo img {
  max-height: 50px;
  width: auto;
}

/* Boutons haut droite */
.shop-menu { float: right; }

.shop-menu .nav.navbar-nav {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 2px;
  flex-wrap: nowrap;
}

.shop-menu ul li a {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-mid);
  padding: 7px 11px;
  border-radius: 7px;
  background: transparent;
  transition: background 0.22s, color 0.22s;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

.shop-menu ul li a:hover {
  background: var(--main-pale);
  color: var(--main-color);
}

/* Bouton "Publier vos articles" */
.shop-menu .btn.cart {
  background: var(--main-color) !important;
  color: #fff !important;
  border: none;
  border-radius: 8px;
  padding: 7px 16px;
  font-size: 13px;
  font-weight: 600;
  transition: background 0.22s, box-shadow 0.22s, transform 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.shop-menu .btn.cart:hover {
  background: var(--main-dark) !important;
  box-shadow: 0 4px 14px rgba(38,70,83,0.25);
  transform: translateY(-1px);
  color: #fff !important;
}

#cart-item-count {
  background: var(--accent-red);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 10px;
  margin-left: 2px;
}

/* Barre navigation + recherche */
.header-bottom {
  background: var(--main-dark);
  padding-top: 0;
  padding-bottom: 0;
  min-height: 48px;
}

/* Mainmenu */
.mainmenu ul li {
  padding: 0 10px;
  position: relative;
}

.mainmenu ul li a {
  color: rgba(255,255,255,0.82);
  font-size: 14px;
  font-weight: 400;
  padding: 13px 0;
  display: block;
  position: relative;
  transition: color 0.22s;
}

.mainmenu ul li a::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 0; height: 2px;
  background: var(--accent-sand);
  border-radius: 2px;
  transition: width 0.28s ease;
}

.mainmenu ul li a:hover,
.mainmenu ul li a.active {
  color: var(--accent-sand);
  background: none;
}

.mainmenu ul li a:hover::after,
.mainmenu ul li a.active::after { width: 100%; }

ul.sub-menu {
  background: var(--main-dark);
  border-top: 3px solid var(--accent-sand);
  box-shadow: 0 8px 24px rgba(38,70,83,0.30);
}

ul.sub-menu li a { color: rgba(255,255,255,0.78) !important; }
ul.sub-menu li a:hover {
  color: var(--accent-sand) !important;
  background: rgba(255,255,255,0.05);
}

/* Barre recherche */
.search_box { width: 100%; padding: 7px 0; }

#FormRecherche {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  width: 100%;
}

#FormRecherche .row,
#FormRecherche .row-centered {
  display: flex !important;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  width: 100%;
  margin: 0;
}

#FormRecherche .col-sm-3,
#FormRecherche .col-sm-2 {
  padding: 0;
  width: auto;
  flex: 1;
  min-width: 80px;
  float: none !important;
}

.search_box input[type="text"],
.search_box input[type="search"] {
  background: rgba(255,255,255,0.12);
  border: 1.5px solid rgba(255,255,255,0.25);
  color: #fff;
  height: 38px;
  border-radius: 19px;
  padding: 0 16px;
  font-size: 14px;
  font-family: 'Roboto', sans-serif;
  width: 100%;
  transition: border-color 0.22s, background 0.22s;
  outline: none;
}

.search_box input[type="text"]::placeholder { color: rgba(255,255,255,0.48); }
.search_box input[type="text"]:focus {
  border-color: var(--accent-sand);
  background: rgba(255,255,255,0.18);
}

.search_box select {
  background: rgba(255,255,255,0.12) !important;
  border: 1.5px solid rgba(255,255,255,0.25) !important;
  color: rgba(255,255,255,0.88) !important;
  height: 38px;
  border-radius: 8px;
  padding: 0 10px;
  font-size: 13px;
  width: 100%;
  -webkit-appearance: none;
  appearance: none;
  outline: none;
  cursor: pointer;
  font-family: 'Roboto', sans-serif;
}

.search_box select option { background: var(--main-dark); color: #fff; }
.search_box select:focus { border-color: var(--accent-sand) !important; }

.search_box .btn,
#btnrecherche {
  background: var(--main-color) !important;
  border: none !important;
  color: #fff !important;
  height: 38px;
  padding: 0 20px;
  border-radius: 19px;
  font-size: 14px;
  font-weight: 600;
  font-family: 'Roboto', sans-serif;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.22s;
}

.search_box .btn:hover,
#btnrecherche:hover {
  background: var(--accent-sand) !important;
  color: var(--main-dark) !important;
}

/* ============================================================
   3. CAROUSEL — FIX HAUTEUR + IMAGES SUPERPOSÉES
   
   Problème réel sur le site :
   - Bootstrap 3 met display:block sur .item.active
   - Les .col-sm-6 internes ont float:left
   - Résultat : les 2 cols se mettent l'une sous l'autre ou
     les 2 items s'affichent ensemble
   
   Solution multi-couches :
   a) .item.active → display:flex, overflow:hidden
   b) .col-sm-6 dans slider → float:none, flex:0 0 50%
   c) Hauteur fixe pour éviter l'effondrement
   d) .carousel-inner → overflow:hidden strict
============================================================ */
#slider {
  overflow: hidden !important;
  background: linear-gradient(135deg, #1a3a47 0%, var(--main-dark) 100%);
}

/* Pas de container Bootstrap limité dans le slider */
#slider > .container {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}

#slider-carousel {
  width: 100%;
  position: relative;
}

/* Bloquer strictement les items inactifs */
#slider-carousel .carousel-inner {
  overflow: hidden !important;
  width: 100%;
  position: relative;
}

/* Chaque item : hauteur fixe, caché par défaut */
#slider-carousel .item {
  display: none !important;      /* Bootstrap override — caché */
  overflow: hidden !important;
  width: 100%;
  min-height: 320px;
  background: linear-gradient(135deg, #1a3a47 0%, var(--main-dark) 100%);
  position: relative;
}

/* SEUL l'item actif est visible, en flex */
#slider-carousel .item.active {
  display: flex !important;      /* override le display:none ci-dessus */
  align-items: stretch !important;
  flex-wrap: nowrap !important;
  min-height: 320px;
  overflow: hidden !important;
}

/* Motif de fond */
#slider-carousel .item::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size: 50px 50px;
  pointer-events: none;
  z-index: 0;
}

/* Colonnes internes : annuler float Bootstrap, rendre flex */
#slider-carousel .item > .col-sm-6,
#slider-carousel .item.active > .col-sm-6 {
  float: none !important;        /* CRITIQUE : annule le float Bootstrap */
  flex: 0 0 50% !important;
  max-width: 50% !important;
  min-width: 50% !important;
  width: 50% !important;
  box-sizing: border-box !important;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Colonne texte : gauche */
#slider-carousel .item > .col-sm-6:first-child {
  padding: 48px 44px 48px 48px;
}

/* Colonne image : droite */
#slider-carousel .item > .col-sm-6:last-child {
  padding: 28px 40px 28px 24px;
  align-items: center;
}

/* Texte slider */
.item h1 {
  font-family: 'Roboto', sans-serif !important;
  font-size: clamp(24px, 3vw, 48px) !important;
  font-weight: 800 !important;
  color: #fff !important;
  letter-spacing: -1px;
  line-height: 1.1;
  margin: 0 0 12px !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.35) !important;
  font-style: normal !important;
}

.item h1 span { color: var(--accent-sand) !important; }

.item h2 {
  color: rgba(255,255,255,0.90) !important;
  font-size: clamp(14px, 1.8vw, 22px) !important;
  font-weight: 400 !important;
  margin: 0 0 10px !important;
  text-shadow: 0 1px 4px rgba(0,0,0,0.30);
}

.item p {
  color: rgba(255,255,255,0.72) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  line-height: 1.65;
  margin-bottom: 20px !important;
}

.item .get {
  background: var(--main-color) !important;
  color: #fff !important;
  border: none;
  border-radius: 8px;
  padding: 11px 26px;
  font-size: 14px;
  font-weight: 600;
  font-family: 'Roboto', sans-serif;
  cursor: pointer;
  display: inline-block;
  transition: background 0.22s, box-shadow 0.22s, transform 0.2s;
  text-decoration: none;
}

.item .get:hover {
  background: var(--accent-sand) !important;
  color: var(--main-dark) !important;
  box-shadow: 0 5px 16px rgba(233,196,106,0.35);
  transform: translateY(-2px);
}

/* Image slider */
.girl {
  width: 100%;
  max-height: 270px;
  object-fit: contain;
  border-radius: 10px;
  filter: drop-shadow(0 10px 28px rgba(0,0,0,0.28));
}

/* Indicateurs */
.carousel-indicators { bottom: 12px; }

.carousel-indicators li {
  background: rgba(255,255,255,0.32);
  border: none;
  width: 8px; height: 8px;
  border-radius: 50%;
  margin: 0 4px;
  transition: background 0.25s, width 0.25s;
}

.carousel-indicators li.active {
  background: var(--accent-sand);
  width: 22px;
  border-radius: 4px;
}

/* Boutons prev/next */
.control-carousel {
  color: rgba(255,255,255,0.30);
  font-size: 40px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  transition: color 0.22s;
  z-index: 10;
  line-height: 1;
}

.control-carousel.left  { left: 12px; }
.control-carousel.right { right: 12px; }
.control-carousel:hover { color: var(--accent-sand); }

/* ============================================================
   4. LAYOUT PRINCIPAL — sidebar sticky + pleine largeur
   
   Problème : Bootstrap .row a un overflow implicite qui bloque
   position:sticky sur les enfants.
   Solution : annuler overflow sur tous les parents de la sidebar
============================================================ */

/* La section principale après le slider */
section.main-section,
body > section:nth-of-type(2),
section:has(.left-sidebar),
section:has(.features_items) {
  overflow: visible !important;
}

/* Le container et le row parent de la sidebar */
section .container {
  overflow: visible !important;
}

section .container > .row {
  margin-left: 0 !important;
  margin-right: 0 !important;
  overflow: visible !important;
  display: flex;
  align-items: flex-start;
}

/* Col sidebar : pas de float */
section .container > .row > .col-sm-3 {
  float: none !important;
  padding-right: 10px;
  padding-left: 0;
}

/* Col contenu : pas de float */
section .container > .row > .col-sm-9 {
  float: none !important;
  flex: 1;
  min-width: 0;
  padding-left: 14px;
  padding-right: 0;
}

/* ── SIDEBAR STICKY ── */
.left-sidebar {
  position: sticky !important;
  top: var(--header-h);           /* colle juste sous le header */
  max-height: calc(100vh - var(--header-h) - 20px);
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: var(--border-color) transparent;
}

.left-sidebar::-webkit-scrollbar { width: 3px; }
.left-sidebar::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: 3px; }

/* En-tête "Catégories" */
.left-sidebar::before {
  content: '\f03a\00a0\00a0Catégories';
  font-family: FontAwesome, 'Roboto', sans-serif;
  display: block;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: #fff;
  background: var(--main-color);
  padding: 11px 14px;
  border-radius: 8px 8px 0 0;
}

/* ── PANEL ACCORDÉON CATÉGORIES ── */
.category-products {
  background: #fff !important;
  border: 1px solid var(--border-color) !important;
  border-top: none !important;
  border-radius: 0 0 var(--radius) var(--radius) !important;
  box-shadow: var(--shadow-sm) !important;
  padding: 0 !important;
  margin-bottom: 0;
  overflow: hidden !important;
}

.category-products .panel {
  background: #fff !important;
  border: none !important;
  border-bottom: 1px solid var(--border-color) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin-bottom: 0 !important;
}

.category-products .panel:last-child {
  border-bottom: none !important;
}

.category-products .panel-default .panel-heading {
  background: #fff !important;
  border: none !important;
  padding: 0 !important;
  transition: background 0.2s;
}

.category-products .panel-default .panel-heading:hover {
  background: var(--main-pale) !important;
}

.category-products .panel-default .panel-heading .panel-title a {
  display: flex !important;
  align-items: center;
  padding: 10px 13px !important;
  color: var(--text-dark) !important;
  font-size: 13px !important;
  font-weight: 600;
  text-decoration: none !important;
  transition: color 0.2s;
  gap: 6px;
}

.category-products .panel-default .panel-heading .panel-title a:hover {
  color: var(--main-color) !important;
  text-decoration: none !important;
}

/* ── SUPPRIMER BADGE "+" et le remplacer par icône chevron ── */

/* Cacher le badge .pull-right contenant le fa-plus */
.category-products .panel-title .badge,
.category-products .panel-title .pull-right,
.category-products .badge.pull-right {
  display: none !important;
}

/* Masquer aussi l'icône fa-plus directement */
.category-products .fa-plus {
  display: none !important;
}

/* Ajouter un chevron CSS directement sur le lien du panel parent
   (celui qui a data-toggle="collapse") via ::after */
.category-products .panel-title a[data-toggle="collapse"] {
  position: relative;
}

.category-products .panel-title a[data-toggle="collapse"]::after {
  content: '\f078'; /* fa-chevron-down */
  font-family: FontAwesome;
  font-size: 10px;
  color: var(--main-color);
  margin-left: auto;
  flex-shrink: 0;
  transition: transform 0.25s ease;
  line-height: 1;
}

/* Quand l'accordéon est ouvert (collapsed = fermé, pas de collapsed = ouvert) */
.category-products .panel-title a[data-toggle="collapse"]:not(.collapsed)::after {
  transform: rotate(180deg);
  color: var(--main-color);
}

/* Panel heading ouvert : fond teinté */
.category-products .panel-collapse.in ~ .panel-heading,
.category-products .panel.open .panel-heading,
.category-products .panel-heading:has(+ .panel-collapse.in) {
  background: var(--main-pale) !important;
}

/* Corps de l'accordéon */
.category-products .panel-body {
  padding: 4px 0 8px !important;
  background: var(--bg-page) !important;
}

/* Sous-catégories */
.category-products .panel-body .panel {
  background: transparent !important;
  border-bottom: none !important;
}

.category-products .panel-body .panel-heading {
  background: transparent !important;
  padding: 0 !important;
}

.category-products .panel-body .panel-heading:hover {
  background: rgba(42,157,143,0.07) !important;
}

.category-products .panel-body .panel-title a {
  padding: 7px 12px 7px 24px !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  color: var(--text-mid) !important;
  transition: color 0.2s, padding-left 0.2s;
}

.category-products .panel-body .panel-title a:hover {
  color: var(--main-color) !important;
  padding-left: 28px !important;
}

/* Cacher chevron sur les sous-catégories (liens sans data-toggle) */
.category-products .panel-body .panel-title a::after {
  display: none !important;
}

/* ============================================================
   5. PRODUITS — grille flex + cartes uniformes
   
   Problème : .row des produits utilise float:left, les cartes
   ont des hauteurs variables → désalignement
   Solution : flexbox sur les rows produits
============================================================ */
.features_items { padding-top: 4px; }

/* Titre de section */
.features_items h2.title,
.features_items .title {
  color: var(--text-dark) !important;
  font-size: 16px !important;
  font-weight: 700;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  margin: 22px 0 16px !important;
  display: flex !important;
  align-items: center;
  position: relative;
}

.features_items h2.title::before,
.features_items .title::before {
  content: '';
  display: inline-block;
  width: 4px; height: 18px;
  background: var(--main-color);
  border-radius: 2px;
  margin-right: 10px;
  flex-shrink: 0;
}

.features_items h2.title::after,
.features_items .title::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--border-color);
  margin-left: 14px;
}

/* Grille produits → flex pour hauteurs égales */
.features_items .row,
#divprods8,
[id^="divprods"] {
  display: flex !important;
  flex-wrap: wrap !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  gap: 0;
}

/* Col produit : flex, pas de float */
.features_items .row > .col-sm-3,
.features_items [id^="divprods"] > .col-sm-3 {
  float: none !important;
  display: flex !important;
  flex-direction: column;
  padding: 0 8px 16px !important;
  width: 25% !important;
  box-sizing: border-box !important;
}

/* Carte produit : hauteur 100% pour alignement */
.features_items .col-sm-3 > .product-image-wrapper {
  height: 100%;
  display: flex !important;
  flex-direction: column;
  margin-bottom: 0 !important;
}

/* Images */
.product-image-wrapper {
  background: #fff;
  border: 1px solid var(--border-color);
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 18px;
  box-shadow: 0 2px 8px rgba(38,70,83,0.06), 0 1px 3px rgba(38,70,83,0.04);
  transition: box-shadow 0.28s ease, transform 0.28s ease, border-color 0.28s ease;
  cursor: pointer;
}

.product-image-wrapper:hover {
  border-color: var(--main-color);
  box-shadow: var(--shadow-md);
  transform: translateY(-5px);
}

.productinfo img,
.product-image-wrapper img {
  width: 100%;
  display: block;
  background: var(--main-pale);
  height: 160px;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.product-image-wrapper:hover img { transform: scale(1.05); }

/* Zone texte produit */
.productinfo {
  padding: 11px 12px 12px !important;
  text-align: left !important;
  position: relative;
  flex: 1;                          /* prend l'espace restant */
  display: flex;
  flex-direction: column;
}

/* h5 = nom du produit */
.productinfo h5 {
  color: var(--text-dark) !important;
  font-size: 13px !important;
  font-weight: 600;
  line-height: 1.4;
  margin: 0 0 8px;
  flex: 1;
}

/* .artdesc-height */
.productinfo .artdesc-height {
  height: auto !important;
  min-height: 36px;
  overflow: hidden;
  margin-bottom: 6px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  flex: 1;
}

.productinfo .artdesc-height h5 {
  margin: 0;
  font-size: 13px !important;
  font-weight: 600;
  color: var(--text-dark) !important;
}

/* h4 = prix actuel */
.productinfo h4 {
  color: var(--main-color) !important;
  font-size: 16px !important;
  font-weight: 700;
  margin: 4px 0 8px;
  display: inline !important;
}

/* del = ancien prix */
.productinfo del {
  color: var(--text-light) !important;
  font-size: 12px !important;
  font-weight: 400;
  margin-right: 4px;
  display: inline;
}

/* Wrapper prix inline */
.productinfo div[style*="inline-block"] {
  display: flex !important;
  align-items: baseline;
  gap: 4px;
  margin: 4px 0 8px;
  flex-wrap: wrap;
}

/* Bouton panier */
.add-to-cart {
  display: block !important;
  width: 100% !important;
  background: var(--main-pale) !important;
  border: 1px solid var(--border-color) !important;
  border-radius: 7px !important;
  color: var(--text-dark) !important;
  font-family: 'Roboto', sans-serif;
  font-size: 13px !important;
  font-weight: 600;
  padding: 8px 12px !important;
  text-align: center;
  margin: auto 0 0 !important;      /* colle en bas de la carte */
  cursor: pointer;
  transition: background 0.22s, color 0.22s, border-color 0.22s, box-shadow 0.22s;
}

.add-to-cart:hover {
  background: var(--main-color) !important;
  border-color: var(--main-color) !important;
  color: #fff !important;
  box-shadow: 0 3px 10px rgba(42,157,143,0.25);
}

/* Overlay au survol */
.product-overlay {
  background: linear-gradient(
    to top,
    rgba(38,70,83,0.92) 0%,
    rgba(38,70,83,0.45) 55%,
    transparent 100%
  ) !important;
}

.product-overlay .add-to-cart {
  background: var(--main-color) !important;
  border-color: var(--main-color) !important;
  color: #fff !important;
  width: auto !important;
  display: inline-block !important;
  border-radius: 6px !important;
  padding: 8px 20px !important;
  margin-bottom: 12px !important;
}

.product-overlay .add-to-cart:hover {
  background: var(--accent-sand) !important;
  border-color: var(--accent-sand) !important;
  color: var(--main-dark) !important;
}

/* Icônes wishlist */
.choose { border-top: 1px solid var(--border-color); padding-top: 5px; margin-top: 4px; }
.choose ul li a { font-size: 11px; color: var(--text-mid); transition: color 0.2s; }
.choose ul li a:hover { color: var(--main-color); background: none; }

/* Animation cartes */
@keyframes ptFadeUp {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

.features_items .col-sm-3:nth-child(1) .product-image-wrapper { animation: ptFadeUp 0.35s 0.04s ease both; }
.features_items .col-sm-3:nth-child(2) .product-image-wrapper { animation: ptFadeUp 0.35s 0.09s ease both; }
.features_items .col-sm-3:nth-child(3) .product-image-wrapper { animation: ptFadeUp 0.35s 0.14s ease both; }
.features_items .col-sm-3:nth-child(4) .product-image-wrapper { animation: ptFadeUp 0.35s 0.19s ease both; }
.features_items .col-sm-3:nth-child(5) .product-image-wrapper { animation: ptFadeUp 0.35s 0.24s ease both; }
.features_items .col-sm-3:nth-child(6) .product-image-wrapper { animation: ptFadeUp 0.35s 0.29s ease both; }
.features_items .col-sm-3:nth-child(7) .product-image-wrapper { animation: ptFadeUp 0.35s 0.34s ease both; }
.features_items .col-sm-3:nth-child(8) .product-image-wrapper { animation: ptFadeUp 0.35s 0.39s ease both; }

/* Pagination */
.pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding-left: 0;
  margin: 8px 0 16px;
  align-items: center;
}

.pagination li a,
.pagination li span {
  background: #fff;
  border: 1.5px solid var(--border-color);
  color: var(--text-dark);
  border-radius: 7px;
  padding: 5px 12px;
  font-size: 13px;
  font-weight: 500;
  float: none;
  display: inline-block;
  margin: 0;
  transition: background 0.22s, color 0.22s, border-color 0.22s;
}

.pagination li a:hover {
  background: var(--main-pale);
  color: var(--main-color);
  border-color: var(--main-color);
}

.pagination .active a,
.pagination .active span {
  background: var(--main-color) !important;
  border-color: var(--main-color) !important;
  color: #fff !important;
  box-shadow: 0 3px 8px rgba(42,157,143,0.30);
}

/* Category tab */
.category-tab ul {
  background: transparent;
  border-bottom: 2px solid var(--border-color);
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 0;
  margin-bottom: 20px;
}

.category-tab ul li a {
  background: var(--main-pale);
  border: 1.5px solid var(--border-color);
  border-bottom: none;
  border-radius: 6px 6px 0 0;
  color: var(--text-mid);
  font-size: 12px;
  font-weight: 500;
  padding: 7px 14px;
  display: block;
  transition: background 0.22s, color 0.22s, border-color 0.22s;
}

.category-tab ul li a:hover { background: var(--main-color); color: #fff; border-color: var(--main-color); }

.nav-tabs li.active a,
.nav-tabs li.active a:hover,
.nav-tabs li.active a:focus {
  background: var(--main-color) !important;
  border: 1.5px solid var(--main-color) !important;
  border-bottom: none !important;
  color: #fff !important;
  font-weight: 600;
  border-radius: 6px 6px 0 0;
}

/* ============================================================
   6. FOOTER
============================================================ */
#footer { background: var(--main-dark); padding-top: 8px; }

.footer-top .container {
  border-bottom: 1px solid rgba(255,255,255,0.10);
  padding-bottom: 28px;
  padding-top: 20px;
}

.companyinfo h2 {
  font-size: 20px !important;
  font-weight: 700;
  color: #fff !important;
  letter-spacing: -0.3px;
  margin-bottom: 10px;
}

.companyinfo h2 span { color: var(--accent-sand) !important; }

.companyinfo p { color: rgba(255,255,255,0.52); font-size: 14px; line-height: 1.7; }

.single-widget h2 {
  font-size: 13px !important;
  font-weight: 700;
  color: rgba(255,255,255,0.90) !important;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  margin-bottom: 16px;
  padding-left: 10px;
  border-left: 3px solid var(--main-color);
}

.single-widget ul li a {
  color: rgba(255,255,255,0.50);
  font-size: 13px;
  font-weight: 300;
  padding: 4px 0;
  display: block;
  transition: color 0.2s, padding-left 0.2s;
}

.single-widget ul li a:hover { color: var(--accent-sand); background: none; padding-left: 5px; }
.single-widget ul li a i { color: var(--main-light); margin-right: 8px; font-size: 11px; }

/* Newsletter footer */
.searchform { display: flex; flex-wrap: nowrap; gap: 0; }

.searchform input[type="email"],
.searchform input[type="text"],
#newsletteradr {
  flex: 1;
  min-width: 0;
  border: 1.5px solid rgba(255,255,255,0.18) !important;
  border-right: none !important;
  background: rgba(255,255,255,0.08) !important;
  color: rgba(255,255,255,0.85) !important;
  height: 40px;
  border-radius: 7px 0 0 7px !important;
  padding: 0 12px !important;
  font-size: 13px;
  font-family: 'Roboto', sans-serif;
  outline: none;
}

#newsletteradr::placeholder { color: rgba(255,255,255,0.38); }
#newsletteradr:focus { border-color: var(--accent-sand) !important; }

.searchform .btn,
.searchform .btn-default,
#submit_newsletteradr {
  background: var(--main-color) !important;
  color: #fff !important;
  border: none !important;
  height: 40px;
  padding: 0 16px;
  border-radius: 0 7px 7px 0 !important;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.22s;
  margin: 0 !important;
}

#submit_newsletteradr:hover { background: var(--main-light) !important; }

.footer-bottom {
  background: rgba(0,0,0,0.22);
  border-top: 1px solid rgba(255,255,255,0.07);
  padding: 12px 0;
}

.footer-bottom p { color: rgba(255,255,255,0.42); font-size: 12px; margin: 0; }
.footer-bottom p a { color: var(--accent-sand); font-style: italic; }

/* ============================================================
   7. SCROLL TO TOP
============================================================ */
a#scrollUp {
  bottom: 20px !important;
  right: 20px !important;
  width: 42px !important;
  height: 42px !important;
  padding: 0 !important;
  background: var(--main-color) !important;
  border-radius: 50% !important;
  box-shadow: 0 4px 14px rgba(42,157,143,0.40) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.22s, transform 0.22s !important;
}

a#scrollUp:hover {
  background: var(--main-dark) !important;
  transform: translateY(-3px) !important;
}

a#scrollUp i { font-size: 17px; margin: 0; line-height: 1; }

/* ============================================================
   8. RESPONSIVE
============================================================ */
@media (max-width: 1199px) {
  .features_items .row > .col-sm-3 { width: 25% !important; }
}

@media (max-width: 991px) {
  :root { --header-h: 100px; }

  /* Slider : empiler les colonnes verticalement */
  #slider-carousel .item.active {
    flex-direction: column !important;
    min-height: auto !important;
  }

  #slider-carousel .item > .col-sm-6,
  #slider-carousel .item.active > .col-sm-6 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    width: 100% !important;
  }

  #slider-carousel .item > .col-sm-6:first-child { padding: 32px 28px 16px; }
  #slider-carousel .item > .col-sm-6:last-child  { padding: 0 28px 28px; }

  .item h1 { font-size: 28px !important; }
  .item h2 { font-size: 18px !important; }

  .left-sidebar { top: var(--header-h); max-height: calc(100vh - var(--header-h) - 20px); }

  /* 2 colonnes produits sur tablette */
  .features_items .row > .col-sm-3 { width: 50% !important; }
}

@media (max-width: 767px) {
  :root { --header-h: 56px; }
  #header { position: relative; }

  #slider-carousel .item.active { flex-direction: column !important; }
  #slider-carousel .item > .col-sm-6 { width: 100% !important; max-width: 100% !important; padding: 24px 20px !important; }
  .item h1 { font-size: 22px !important; }
  .item h2 { font-size: 15px !important; }

  .left-sidebar { position: static !important; max-height: none !important; overflow: visible !important; margin-bottom: 16px; }

  section .container > .row { flex-direction: column; }
  section .container > .row > .col-sm-3 { width: 100% !important; padding-right: 0; }
  section .container > .row > .col-sm-9 { width: 100% !important; padding-left: 0; }

  /* 2 colonnes produits sur mobile */
  .features_items .row > .col-sm-3 { width: 50% !important; }

  .product-image-wrapper:hover { transform: none; }
  .pagination { justify-content: center; }
}

@media (max-width: 480px) {
  .shop-menu ul li a { font-size: 11px; padding: 5px 7px; }

  /* 1 colonne produits sur très petit écran */
  .features_items .row > .col-sm-3 { width: 100% !important; }

  .searchform { flex-direction: column; gap: 8px; }
  #newsletteradr, #submit_newsletteradr { border-radius: 7px !important; width: 100%; border-right: 1.5px solid rgba(255,255,255,0.18) !important; }
}

/* ============================================================
   9. ACCESSIBILITÉ
============================================================ */
@media (prefers-reduced-motion: reduce) {
  .product-image-wrapper,
  .product-image-wrapper:hover,
  .product-image-wrapper:hover img,
  .item .get,
  a#scrollUp,
  .mainmenu ul li a::after {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}
