/* === HEADER Boutique Premium === */
.shop-catalog-hero {
  position: relative;
  isolation: isolate;
  padding: 3.5rem 1rem 5rem;
  background: linear-gradient(135deg, #D90429, #FF6B6B);
  overflow: hidden;
}

/* halo radial doux */
.shop-catalog-hero::before {
  content:"";
  position:absolute; inset:-10% -5% auto -5%;
  height: 80%;
  background: radial-gradient(60% 60% at 50% 40%, rgba(255,255,255,.18), rgba(255,255,255,0) 60%);
  pointer-events:none;
  z-index:0;
}

/* Icone au-dessus du titre */
.hero-icon {
  font-size: 3rem;
  line-height: 1;
  margin-bottom: 0.5rem;
}

/* Titre et sous-titre */
.hero-title {
  font-weight: 900;
  font-size: clamp(1.8rem, 2.2vw + 1.2rem, 2.75rem);
  margin-bottom: 0.5rem;
}

.hero-subtitle {
  font-size: 1.1rem;
  max-width: 800px;
  margin: 0 auto 0.75rem;
  opacity: .95;
}

/* Wave de séparation */
.hero-wave {
  position:absolute; left:0; right:0; bottom:-1px;
  line-height:0; z-index:0;
}
.hero-wave svg {
  display:block;
  width:100%;
  height:80px;
}
.hero-wave path {
  fill: #fff !important; /* couleur fond page */
}

/* Bouton CTA */
.shop-catalog-hero .btn-boutique {
  border-radius: .75rem;
  padding: .8rem 1.4rem;
  box-shadow: 0 8px 20px rgba(0,0,0,.15);
  z-index:1;
}
.shop-catalog-hero .btn-boutique:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(0,0,0,.18);
}


/* Filtres */
.shop-filters{
  background:#fff;
  padding: 1rem 1.25rem;
  border:1px solid #eef1f3;
  box-shadow: 0 6px 16px rgba(0,0,0,.04);
  margin-bottom: .5rem;
}

/* Tags actifs (cliquables pour retirer) */
.active-tags .tag{
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.85rem; font-weight:600;
  padding:.35rem .6rem; border-radius:999px;
  background: rgba(1,55,89,.07);
  border:1px solid rgba(1,55,89,.12);
  color:#013759; text-decoration:none;
}
.active-tags .tag:hover{ background:rgba(1,55,89,.12); }

/* Cartes produit */
.product-card{
  background:#fff; border:1px solid #eef1f3;
  border-radius:16px; overflow:hidden;
  box-shadow:0 8px 18px rgba(0,0,0,.05);
  transition: transform .2s ease, box-shadow .2s ease;
}
.product-card:hover{ transform:translateY(-4px); box-shadow:0 14px 26px rgba(0,0,0,.08); }

/* Media ratio */
.product-media{ position:relative; display:block; }
.product-media::before{ content:""; display:block; aspect-ratio: 16/10; }
.product-media img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit: cover;
  transition: transform .3s ease;
}
.product-card:hover .product-media img{ transform:scale(1.03); }

/* Badge coin */
.badge-top{
  position:absolute; top:10px; left:10px;
  background: rgba(217,4,41,.9); color:#fff;
  font-size:.75rem; font-weight:700; letter-spacing:.02em;
  padding:.3rem .5rem; border-radius:.5rem;
}

/* Corps */
.product-body{ padding:1rem 1rem 1.1rem; }
.product-title{ font-size:1.05rem; font-weight:800; margin:0 0 .25rem; }
.product-title a{ color:#013759; text-decoration:none; }
.product-title a:hover{ text-decoration:underline; }
.product-desc{ color:#6c757d; margin:.25rem 0 .5rem; }

/* Prix / stock */
.price-euro{ color:#FF3131; font-weight:800; margin-right:.35rem; }
.price-points{ color:#013759; font-weight:700; font-size:.95rem; }
.stock-ok{ color:#198754; font-weight:700; font-size:.9rem; }
.stock-ko{ color:#6c757d; font-weight:700; font-size:.9rem; }

/* Bouton outline version 4Shop (rouge) */
.btn-outline-shop {
  color: #FF5151;
  border: 2px solid #FF5151;
  background-color: transparent;
  transition: all 0.2s ease;
}

.btn-outline-shop:hover,
.btn-outline-shop:focus {
  color: #fff;
  background-color: #FF3131;
  border-color: #FF3131;
  text-decoration: none;
}