/* =========================
   Palette & Typo (Brand)
   ========================= */

/* Fonts (Google Fonts) — remplace par @font-face si auto-hébergé */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@600;700;800&family=Open+Sans:wght@400;600&display=swap');

:root{
  /* Brand colors */
  --brand-blue:   #0A2D64;  /* Titres, logo, zones institutionnelles */
  --brand-orange: #F05F23;  /* Call-to-action, boutons, accents */
  --brand-gray:   #505050;  /* Texte secondaire, fonds neutres */
  --brand-white:  #FFFFFF;  /* Arrière-plan */

  /* Bootstrap mapping (fallback si Bootstrap absent) */
  --bs-primary:         var(--brand-orange);
  --bs-primary-rgb:     240,95,35;
  --bs-secondary:       var(--brand-orange); /* conserve l’orange pour compat */
  --bs-secondary-rgb:   240,95,35;

  /* Couleurs utilitaires fréquemment utilisées */
  --bs-dark:    #11151C;
  --bs-light:   #F8F9FA;

  /* Typography stacks */
  --font-heading: "Montserrat", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-body:    "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  /* Rounds / shadows (léger lift moderne) */
  --radius-md: 10px;
  --shadow-sm: 0 2px 8px rgba(0,0,0,.06);
}

/* =========================
   Base / Reset typographique
   ========================= */

html{ scroll-behavior:smooth; }
body{
  font-family: var(--font-body);
  color: var(--bs-dark);
  background: var(--brand-white);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1,h2,h3,h4,h5,h6{
  color: var(--brand-blue);
  font-family: var(--font-heading);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.2px;
  margin-top: 0;
}

.small, small{ color: var(--brand-gray); }

/* Liens & focus accessibles */
a{ color: var(--brand-blue); text-decoration: none; }
a:hover{ color: var(--brand-orange); }
:focus-visible{
  outline: 3px solid rgba(var(--bs-primary-rgb), .5);
  outline-offset: 2px;
  border-radius: 6px;
}

/* Sélection de texte */
::selection{ background: rgba(var(--bs-primary-rgb), .25); color: var(--bs-dark); }

/* =========================
   Utilitaires / Renforts
   ========================= */
.text-primary{ color: var(--bs-primary) !important; }
.bg-primary{ background-color: var(--bs-primary) !important; }
.border-primary{ border-color: var(--bs-primary) !important; }
.badge.bg-primary{ background-color: var(--bs-primary) !important; }
.progress-bar{ background-color: var(--bs-primary); }
.list-group-item.active{
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

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

/* =========================
   Topbar / Titres institutionnels
   ========================= */
.topbar{ padding:2px 10px 2px 20px; background: var(--brand-blue); color:#fff; }
.topbar a, .topbar a i{ transition:.5s; color:#fff; opacity:.9; }
.topbar a:hover, .topbar a i:hover{ color:#fff; opacity:1; }
@media (max-width:768px){ .topbar{display:none;} }

/*** Spinner ***/
#spinner{opacity:0;visibility:hidden;transition:opacity .5s ease-out,visibility 0s linear .5s;z-index:99999;}
#spinner.show{transition:opacity .5s ease-out,visibility 0s linear 0s;visibility:visible;opacity:1;}

.back-to-top{
  position:fixed;right:30px;bottom:30px;display:flex;width:45px;height:45px;
  align-items:center;justify-content:center;transition:.5s;z-index:99;
  background: var(--bs-primary); color:#fff; border-radius:50%;
  box-shadow: var(--shadow-sm);
}

/* =========================
   Buttons (CTA en orange)
   ========================= */
.btn{font-weight:600;transition:.3s; border-radius: 999px; }
.btn-square{width:32px;height:32px;}
.btn-sm-square{width:34px;height:34px;}
.btn-md-square{width:44px;height:44px;}
.btn-lg-square{width:56px;height:56px;}
.btn-square,.btn-sm-square,.btn-md-square,.btn-lg-square{
  padding:0;display:flex;align-items:center;justify-content:center;font-weight:normal;border-radius:50%;
}

.btn.btn-primary{
  background: var(--bs-primary);
  color:#fff;
  font-family: var(--font-body);
  font-weight:600;
  border-color: var(--bs-primary);
  box-shadow: var(--shadow-sm);
}
.btn.btn-primary:hover{ filter: brightness(0.95); color:#fff; }

.btn.btn-secondary{
  background: transparent;
  color: var(--bs-primary);
  font-family: var(--font-body);
  font-weight:600;
  border:2px solid var(--bs-primary);
}
.btn.btn-secondary:hover{ background: var(--bs-primary); color:#fff; }

/* =========================
   Navbar / Categories
   ========================= */
.nav-bar .categories-bars .categories-bars-item{
  padding:5px 15px;border-bottom:1px solid rgba(255,255,255,0.1);display:flex;justify-content:space-between;transition:.3s;
}
.nav-bar .categories-bars .categories-bars-item a,
.nav-bar .categories-bars .categories-bars-item span{ color:var(--bs-dark);transition:.3s; }
.nav-bar .categories-bars .categories-bars-item:hover{ background:var(--bs-primary); }
.nav-bar .categories-bars .categories-bars-item:hover a,
.nav-bar .categories-bars .categories-bars-item:hover span{ color:#fff; }

.nav-bar .navbar.navbar-light{ padding:0; background: var(--brand-blue); }
.nav-bar .navbar .navbar-nav .nav-link{
  padding:18px 15px;font-weight:600;font-family:var(--font-body);font-size:17px;transition:.3s;color:#fff;
}
.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link.active,
.fixed-top.bg-white .navbar .navbar-nav .nav-link:hover,
.fixed-top.bg-white .navbar .navbar-nav .nav-link.active{ color:#fff; background: rgba(255,255,255,.08); border-radius: 8px; }

.navbar .dropdown-toggle::after{
  border:none;content:"\f107";font-family:"Font Awesome 5 Free";font-weight:600;vertical-align:middle;
}
@media (min-width:992px){
  .navbar .nav-item .dropdown-menu{
    display:block;visibility:hidden;top:100%;transform:rotateX(-75deg);transform-origin:0 0;border:0;border-radius:var(--radius-md);transition:.3s;opacity:0; box-shadow: var(--shadow-sm);
  }
}
@media (max-width:992px){ .nav-bar .navbar .navbar-nav .nav-link{ padding:8px 0; } }
.dropdown .dropdown-menu a:hover{ background:var(--bs-primary); color:#fff; }
.navbar .nav-item:hover .dropdown-menu{
  transform:rotateX(0);visibility:visible;background:var(--bs-light);transition:.3s;opacity:1;
}
.navbar .navbar-toggler{ padding:5px 15px; }
#allCat{ position:absolute;left:0;right:0;top:51px;z-index:999;background:var(--bs-light); }
.nav-bar .navbar-toggler{ border-radius:5px;box-shadow:none; }

/* =========================
   Header Carousel
   ========================= */
.header-carousel.owl-carousel .owl-nav .owl-prev,
.header-carousel.owl-carousel .owl-nav .owl-next{
  position:absolute;width:50px;height:50px;top:87%;border-radius:30px;display:flex;align-items:center;justify-content:center;
  background:var(--bs-primary);color:#fff;transition:.3s; box-shadow: var(--shadow-sm);
}
.header-carousel.owl-carousel .owl-nav .owl-prev{ right:130px; }
.header-carousel.owl-carousel .owl-nav .owl-next{ right:60px; }
.header-carousel.owl-carousel .owl-nav .owl-prev:hover,
.header-carousel.owl-carousel .owl-nav .owl-next:hover{
  filter: brightness(0.95);
}
.carousel .carousel-header-banner{ position:relative; }
.carousel .carousel-banner-offer{ position:absolute;top:20px;left:20px;display:flex;align-items:center;z-index:2; }
.carousel .carousel-banner{
  position:absolute;width:100%;height:100%;top:0;left:0;padding:30px;display:flex;flex-direction:column;align-items:center;justify-content:end;background:rgba(0,0,0,.3);z-index:1;
}

/* =========================
   Page Header
   ========================= */
.page-header{
  position:relative;padding:100px 0;
  background:linear-gradient(rgba(0,0,0,.5), rgba(0,0,0,.5)), url(../img/carousel-1.jpg) center top / cover no-repeat fixed;
}

/* =========================
   Products
   ========================= */
.product .product-item{ width:100%;height:100%;position:relative; }
.product .product-item .product-item-inner{ height:100%; border-radius: var(--radius-md); box-shadow: var(--shadow-sm); background:#fff; }
.product .product-item .product-item-add{
  width:100%;position:absolute;bottom:0;left:0;opacity:0;transition:.3s;z-index:1;
}
.product .product-item:hover .product-item-add{ background:#fff;margin-bottom:-124px;opacity:1; }
.product .product-item:hover .product-item-inner{
  border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0;
}
.product .product-item .product-item-inner .product-item-inner-item{
  position:relative;border-top-right-radius:10px;border-top-left-radius:10px;overflow:hidden;
}
.product .product-item .product-item-inner .product-item-inner-item .product-new,
.product .product-item .product-item-inner .product-item-inner-item .product-sale{
  position:absolute;width:60px;height:60px;border-radius:60px;top:20px;right:20px;display:flex;align-items:center;justify-content:center;
}
.product .product-item .product-item-inner .product-item-inner-item .product-new{
  background:var(--bs-primary);color:#fff;
}
.product .product-item .product-item-inner .product-item-inner-item .product-sale{
  background:var(--bs-primary);color:#fff;
}
.product .product-item .product-item-inner img{ transition:.3s; }
.product .product-item:hover .product-item-inner img{ transform:scale(1.1); }
.product .product-item .product-item-inner .product-item-inner-item .product-details{
  position:absolute;width:100%;height:100%;top:0;left:0;border-top-right-radius:10px;border-top-left-radius:10px;display:flex;align-items:center;justify-content:center;opacity:0;background:rgba(255,255,255,.2);transition:.3s;
}
.product .product-item .product-item-inner .product-item-inner-item .product-details a i{
  width:50px;height:50px;border-radius:50px;display:flex;align-items:center;justify-content:center;background:var(--bs-primary);color:#fff;transition:.3s;
}
.product .product-item:hover .product-item-inner .product-item-inner-item .product-details a i:hover{
  filter: brightness(0.95);
}
.product .product-item:hover .product-item-inner .product-details{ opacity:1; }
.product .tab-class .nav .nav-item a.active{ background:var(--bs-primary); }
.product .tab-class .nav .nav-item a.active span{ color:#fff; }

/* =========================
   ProductList Categories
   ========================= */
.productList .productList-carousel{ height:215px; }
.productList .productList-carousel .productImg-carousel.productList-item .productImg-item{
  position:relative;width:calc(100% - 1px);transition:.3s;margin-bottom:75px;
}
.productList .productList-carousel .productImg-carousel.productList-item .productImg-item:hover{
  border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;
}
.productList .productList-carousel .owl-nav .owl-prev,
.productList .productList-carousel .owl-nav .owl-next{
  position:absolute;top:-40px;padding:5px 40px;border-radius:30px;background:var(--bs-primary);color:#fff;transition:.3s;
}
.productList .productList-carousel .owl-nav .owl-prev:hover,
.productList .productList-carousel .owl-nav .owl-next:hover{
  filter: brightness(0.95);
}
.productList .productList-carousel .owl-nav .owl-prev{ left:0; }
.productList .productList-carousel .owl-nav .owl-next{ right:0; }

.productList .productList-carousel .productImg-carousel .owl-nav .owl-prev,
.productList .productList-carousel .productImg-carousel .owl-nav .owl-next{
  position:absolute;top:0;padding:5px 10px;border-radius:30px;background:var(--bs-primary);color:#fff;transition:.3s;opacity:0;
}
.productList .productList-carousel .productImg-carousel .owl-nav .owl-prev:hover,
.productList .productList-carousel .productImg-carousel .owl-nav .owl-next:hover{
  filter: brightness(0.95);
}
.productList .productList-carousel .productImg-carousel .owl-nav .owl-prev{ left:0; }
.productList .productList-carousel .productImg-carousel .owl-nav .owl-next{ right:0; }
.productList .productList-carousel .productImg-carousel.productList-item:hover .owl-nav .owl-prev,
.productList .productList-carousel .productImg-carousel.productList-item:hover .owl-nav .owl-next{ opacity:1; }

/* =========================
   Bestseller mini (fix sélecteur)
   ========================= */
.products .products-mini .products-mini-item{ position:relative;border-radius:10px;transition:.3s; }
.products .products-mini .products-mini-item:hover{
  border-bottom-left-radius:0;border-bottom-right-radius:0;
}
.products .products-mini .products-mini-item .products-mini-img{ position:relative;overflow:hidden; }
.products .products-mini .products-mini-item .products-mini-img img{
  border-top-left-radius:10px;border-bottom-left-radius:10px;transition:.3s;
}
.products .products-mini .products-mini-item:hover .products-mini-img img{
  border-bottom-left-radius:0;transform:scale(1.3);
}
.products .products-mini .products-mini-item .products-mini-img .products-mini-icon{
  position:absolute;width:50px;height:50px;top:50%;left:50%;transform:translate(-50%,-50%);
  display:flex;align-items:center;justify-content:center;opacity:0;transition:.3s;
}
.products .products-mini .products-mini-item:hover .products-mini-img .products-mini-icon{ opacity:1; }
.products .products-mini .products-mini-item:hover .products-mini-img .products-mini-icon:hover{
  background:var(--bs-primary);
}
.products .products-mini .products-mini-item .products-mini-add{
  position:absolute;bottom:0;left:-1px;right:-1px;display:flex;align-items:center;justify-content:space-between;background:#fff;transition:.3s;z-index:9;opacity:0;
}
.products .products-mini .products-mini-item:hover .products-mini-add{
  opacity:1;margin-bottom:-75px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;
}

/* =========================
   Pagination / Tabs
   ========================= */
.pagination{ display:inline-block; }
.pagination a{
  color:var(--bs-dark);padding:10px 16px;text-decoration:none;transition:.3s;border:1px solid var(--bs-primary);margin:0 4px;border-radius:8px;
}
.pagination a.active{ background-color:var(--bs-primary);color:#fff;border:1px solid var(--bs-primary); }
.pagination a:hover:not(.active){ background-color:var(--bs-primary);color:#fff; }
.nav.nav-tabs .nav-link.active{ border-bottom:2px solid var(--bs-primary); }

/* =========================
   Shop Page
   ========================= */
.shop .product-categories .categories-item{ display:flex;justify-content:space-between;padding:10px 0; }
.shop .product-categories .categories-item a{ transition:.3s; }
.shop .product-categories .categories-item a:hover{ color:var(--bs-primary); }
.shop .product-color .product-color-item{ display:flex;padding:10px 0; }
.shop .product-color .product-color-item a{ transition:.3s; }
.shop .product-color .product-color-item a:hover{ color:var(--bs-primary); }
.shop .price{ padding:10px 0; }
.shop .additional-product .additional-product-item{ padding:10px 0; }
.shop .featured-product .featured-product-item{ display:flex;align-items:center;justify-content:start; }
.shop .product-tags .product-tags-items a{
  display:inline-block;background:#fff;color:var(--bs-dark);transition:.3s;border-radius:8px;padding:6px 10px;border:1px solid rgba(0,0,0,.08);
}
.shop .product-tags .product-tags-items a:hover{
  background:var(--bs-primary);color:#fff;border-color: var(--bs-primary);
}

/* =========================
   Single Product
   ========================= */
.single-product .owl-nav .owl-prev,
.single-product .owl-nav .owl-next{
  position:absolute;top:50%;transform:translateY(-50%);margin-top:-13%;font-size:22px;color:var(--bs-primary);
}
.single-product .owl-nav .owl-prev{ left:0; }
.single-product .owl-nav .owl-next{ right:0; }
.single-product .single-carousel .owl-dots{
  width:100%;height:120px;display:flex;align-items:center;justify-content:center;margin-top:10px;transition:.3s;
}
.single-product .single-carousel .owl-dots .owl-dot img{
  width:60px;height:60px;border-radius:30px;margin-right:15px;border:2px solid var(--bs-primary);transition:.3s;
}
.single-product .single-carousel .owl-dots .owl-dot.active img{
  width:80px;height:80px;border-radius:40px;border:4px solid var(--bs-primary);
}

/* =========================
   Related Products
   ========================= */
.related-product .related-carousel .related-item{
  width:100%;height:100%;position:relative;margin-bottom:125px;transition:.3s;
}
.related-product .related-carousel .related-item .related-item-add{
  width:100%;position:absolute;bottom:0;left:0;opacity:0;transition:.3s;z-index:99;
}
.related-product .related-carousel .related-item:hover .related-item-add{
  background:#fff;margin-bottom:-125px;opacity:1;
}
.related-product .related-carousel .related-item:hover .related-item-inner{
  border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0;
}
.related-product .related-carousel .related-item .related-item-inner .related-item-inner-item{
  position:relative;border-top-right-radius:10px;border-top-left-radius:10px;overflow:hidden;
}
.related-product .related-carousel .related-item .related-item-inner .related-item-inner-item .related-new,
.related-product .related-carousel .related-item .related-item-inner .related-item-inner-item .related-sale{
  position:absolute;width:60px;height:60px;border-radius:60px;top:20px;right:20px;display:flex;align-items:center;justify-content:center;z-index:5;
}
.related-product .related-carousel .related-item .related-item-inner .related-item-inner-item .related-new{
  background:var(--bs-primary);color:#fff;
}
.related-product .related-carousel .related-item .related-item-inner .related-item-inner-item .related-sale{
  background:var(--bs-primary);color:#fff;
}
.related-product .related-carousel .related-item .related-item-inner img{ transition:.3s; }
.related-product .related-carousel .related-item:hover .related-item-inner img{ transform:scale(1.1); }
.related-product .related-carousel .related-item .related-item-inner .related-item-inner-item .related-details{
  position:absolute;width:100%;height:100%;top:0;left:0;border-top-right-radius:10px;border-top-left-radius:10px;display:flex;align-items:center;justify-content:center;opacity:0;background:rgba(255,255,255,.2);transition:.3s;
}
.related-product .related-carousel .related-item .related-item-inner .related-item-inner-item .related-details a i{
  width:50px;height:50px;border-radius:50px;display:flex;align-items:center;justify-content:center;background:var(--bs-primary);color:#fff;transition:.3s;
}
.related-product .related-carousel .related-item:hover .related-item-inner .related-item-inner-item .related-details a i:hover{
  filter: brightness(0.95);
}
.related-product .related-carousel .related-item:hover .related-item-inner .related-details{ opacity:1; }
.related-product .owl-nav .owl-prev,
.related-product .owl-nav .owl-next{
  position:absolute;top:-40px;padding:5px 40px;border-radius:30px;background:var(--bs-primary);color:#fff;transition:.3s;
}
.related-product .owl-nav .owl-prev{ left:0; }
.related-product .owl-nav .owl-next{ right:0; }
.related-product .owl-nav .owl-prev:hover,
.related-product .owl-nav .owl-next:hover{
  filter: brightness(0.95);
}

/* =========================
   Footer
   ========================= */
.footer{ background:var(--bs-dark); }
.footer .footer-item a{ line-height:30px;color:var(--brand-gray);transition:.3s; }
.footer .footer-item p{ line-height:30px;color:var(--brand-gray); }
.footer .footer-item a:hover{ letter-spacing:2px;color:var(--bs-primary); }

/* =========================
   Copyright / CTA footer
   ========================= */
.copyright{
  border-top:1px solid rgba(255,255,255,.08);
  background: var(--bs-primary);
}

/* Unification footer CTA */
.footer .bg-secondary{ background-color: var(--bs-primary); border-color: var(--bs-primary); }
.footer .text-primary{ color: var(--bs-primary); }
.footer .btn.btn-primary{ background-color: var(--bs-primary); border-color: var(--bs-primary); }
.footer .btn.btn-primary:hover{ filter: brightness(0.95); }
.text-brand-blue { color: var(--brand-blue) !important; }


/* Pagination (scopée) — n'affecte que <nav aria-label="Pagination"> */
nav[aria-label="Pagination"] .pagination{
  display: flex !important;
  flex-wrap: wrap;
  gap: 4px;
  padding-left: 0;
  margin: 0;
  list-style: none;
}
nav[aria-label="Pagination"] .pagination .page-item{
  list-style: none;
  margin: 0;
}
nav[aria-label="Pagination"] .pagination .page-link{
  display: block;
  padding: 10px 16px;
  border: 1px solid var(--bs-primary);
  border-radius: 8px;
  text-decoration: none;
  transition: .3s;
  color: var(--bs-dark);
}
nav[aria-label="Pagination"] .page-item.disabled .page-link{
  pointer-events: none;
  opacity: .5;
}



