:root {
  --ec-forest: #21372a;
  --ec-forest-deep: #14251b;
  --ec-bronze: #bd8743;
  --ec-bronze-soft: #d3ab75;
  --ec-cream: #f5f2eb;
  --ec-white: #fff;
  --ec-ink: #1c1f1c;
  --ec-muted: #69716b;
}

html,
body {
  overflow-x: clip;
}

.ec-site-header {
  position: relative;
  z-index: 1050;
  width: 100%;
  background: var(--ec-forest);
  color: var(--ec-white);
}

.ec-site-header .container {
  width: min(100% - 2rem, 90rem);
  max-width: 90rem;
  margin-inline: auto;
}

/* Ligne 1 : téléphone, loupe, favoris, connexion et panier. */
.ec-header-utility {
  min-height: 3.35rem;
}

.ec-header-utility__inner {
  display: flex;
  min-height: 3.35rem;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.ec-header-contact {
  flex: 0 1 auto;
  min-width: 0;
  white-space: nowrap;
}

.ec-header-contact,
.ec-header-contact a,
.ec-header-actions,
.ec-header-actions a,
.ec-header-actions button,
.ec-header-actions span,
.ec-header-actions svg,
.ec-header-actions .material-icons {
  color: var(--ec-white) !important;
  fill: currentColor !important;
  stroke: currentColor !important;
}

.ec-header-contact a,
.ec-header-actions a {
  text-decoration: none;
}

.ec-header-utility__actions,
.ec-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  margin-left: auto;
  white-space: nowrap;
}

.ec-header-actions > * {
  margin: 0 !important;
}

.ec-header-actions a:hover,
.ec-header-actions a:focus,
.ec-search__toggle:hover,
.ec-search__toggle:focus {
  color: var(--ec-bronze-soft) !important;
  text-decoration: none;
}

/* Une loupe seulement. Le champ n'apparaît qu'au clic. */
.ec-search {
  position: relative;
  flex: 0 0 auto;
}

.ec-search__toggle {
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--ec-white);
  cursor: pointer;
}

.ec-search__toggle svg {
  width: 1.25rem;
  height: 1.25rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}

.ec-search__panel {
  position: absolute;
  top: calc(100% + 0.45rem);
  right: 0;
  z-index: 1800;
  width: min(27rem, calc(100vw - 2rem));
  padding: 0.65rem;
  visibility: hidden;
  opacity: 0;
  transform: translateY(-0.4rem);
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 0.75rem;
  background: rgba(20, 37, 27, 0.98);
  box-shadow: 0 1rem 2.4rem rgba(0, 0, 0, 0.3);
  transition: opacity 150ms ease, transform 150ms ease, visibility 150ms ease;
}

.ec-search.is-open .ec-search__panel {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

.ec-search__panel #search_widget,
.ec-search__panel form,
.ec-search__panel input {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

.ec-search__panel input {
  min-height: 2.8rem;
  border: 0 !important;
  border-radius: 0.4rem !important;
  background: #fff !important;
  color: var(--ec-ink) !important;
}

/* Ligne 2 : logo à gauche, menu stratégique à droite. */
.ec-header-main {
  min-height: 6.2rem;
}

.ec-header-main__inner {
  display: flex;
  min-height: 6.2rem;
  align-items: center;
  gap: clamp(2rem, 4vw, 5rem);
}

.ec-header-logo {
  flex: 0 0 auto;
  width: auto !important;
  max-width: none !important;
  padding: 0 !important;
  background: transparent !important;
}

.ec-header-logo a,
.ec-header-logo picture,
.ec-header-logo img,
.ec-header-logo .logo {
  display: block;
  background: transparent !important;
  box-shadow: none !important;
}

.ec-header-logo img,
.ec-header-logo .logo {
  width: auto !important;
  max-width: 12.5rem !important;
  max-height: 5.7rem !important;
  padding: 0 !important;
  object-fit: contain;
  filter: none !important;
}

.ec-primary-nav {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
}

.ec-primary-nav__list {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(1.4rem, 3vw, 3.2rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

.ec-primary-nav__item {
  position: static;
}

.ec-primary-nav__link {
  display: inline-flex;
  min-height: 3.2rem;
  align-items: center;
  gap: 0.42rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ec-white) !important;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
}

.ec-primary-nav__link svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  transition: transform 160ms ease;
}

.ec-primary-nav__link:hover,
.ec-primary-nav__link:focus,
.ec-primary-nav__item--boutique.is-open .ec-primary-nav__link--button {
  color: var(--ec-bronze-soft) !important;
  text-decoration: none;
}

.ec-primary-nav__item--boutique.is-open .ec-primary-nav__link--button svg {
  transform: rotate(180deg);
}

.ec-primary-nav__link--promo {
  color: var(--ec-bronze-soft) !important;
}

.ec-primary-nav__link--disabled {
  cursor: default;
  opacity: 0.67;
}

/* Panneau Boutique compact et éditorial. */
.ec-boutique-panel {
  position: absolute;
  top: calc(100% + 0.55rem);
  right: 0;
  z-index: 1700;
  width: min(94rem, calc(100vw - 2rem));
  padding: 0.8rem;
  max-height: calc(100vh - 12.5rem);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  visibility: hidden;
  opacity: 0;
  transform: translateY(-0.5rem) scale(0.985);
  transform-origin: top right;
  border: 1px solid rgba(33, 55, 42, 0.1);
  border-radius: 1rem;
  background: rgba(250, 249, 246, 0.985);
  box-shadow: 0 1.5rem 4rem rgba(8, 20, 12, 0.3);
  transition: opacity 170ms ease, transform 170ms ease, visibility 170ms ease;
}

.ec-primary-nav__item--boutique.is-open .ec-boutique-panel {
  visibility: visible;
  opacity: 1;
  transform: translateY(0) scale(1);
}

.ec-boutique-panel__heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
  padding: 0.1rem 0.2rem 0.7rem;
  border-bottom: 1px solid rgba(33, 55, 42, 0.11);
}

.ec-boutique-panel__eyebrow,
.ec-boutique-panel__title {
  margin: 0;
}

.ec-boutique-panel__eyebrow {
  color: var(--ec-bronze);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.ec-boutique-panel__title {
  margin-top: 0.25rem;
  color: var(--ec-forest-deep);
  font-family: inherit;
  font-size: clamp(1.2rem, 1.8vw, 1.55rem);
  font-weight: 750;
  letter-spacing: -0.015em;
  line-height: 1.15;
}

.ec-boutique-panel__close {
  display: grid;
  width: 2.35rem;
  height: 2.35rem;
  flex: 0 0 auto;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(33, 55, 42, 0.14);
  border-radius: 50%;
  background: #fff;
  color: var(--ec-forest);
  cursor: pointer;
}

.ec-boutique-panel__close svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
}

.ec-category-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

.ec-category-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(33, 55, 42, 0.11);
  border-radius: 0.8rem;
  background: #fff;
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

.ec-category-card:hover,
.ec-category-card:focus-within {
  z-index: 2;
  transform: translateY(-2px);
  border-color: rgba(189, 135, 67, 0.62);
  background: #fbf5eb;
  box-shadow: 0 0.85rem 1.8rem rgba(27, 48, 34, 0.11);
}

.ec-category-card__main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.75rem;
  min-height: 5.5rem;
  align-items: flex-start;
  padding: 1rem;
  color: var(--ec-ink) !important;
  text-decoration: none;
}

.ec-category-card__main:hover,
.ec-category-card__main:focus {
  color: var(--ec-ink) !important;
  text-decoration: none;
}

.ec-category-card__number {
  color: var(--ec-bronze);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.ec-category-card__content {
  display: grid;
  min-width: 0;
  gap: 0.4rem;
}

.ec-category-card__content strong {
  color: var(--ec-forest-deep);
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: 0.035em;
  line-height: 1.25;
  text-transform: uppercase;
}

.ec-category-card__content small {
  color: var(--ec-muted);
  font-size: 0.77rem;
  line-height: 1.35;
}

.ec-category-card__arrow {
  color: var(--ec-bronze);
  font-size: 1rem;
  transition: transform 160ms ease;
}

.ec-category-card:hover .ec-category-card__arrow {
  transform: translateX(0.2rem);
}

.ec-category-card__quicklinks {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  gap: 0.3rem;
  padding: 0 0.8rem 0.8rem 2.65rem;
}

.ec-category-card__quicklinks a {
  display: inline-flex;
  width: auto;
  min-width: 0;
  min-height: 1.78rem;
  flex: 0 0 auto;
  align-items: center;
  padding: 0.25rem 0.58rem;
  border-radius: 0.4rem;
  background: #f1f3ef;
  color: #4c5a50 !important;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.15;
  text-decoration: none;
  white-space: nowrap;
}

.ec-category-card__quicklinks a:hover,
.ec-category-card__quicklinks a:focus {
  background: var(--ec-forest);
  color: #fff !important;
  text-decoration: none;
}

.ec-nav-toggle {
  display: none;
}

.ec-mobile-placeholders {
  display: none;
}

/* Accueil : header intégré au hero. */
body#index .ec-site-header {
  position: absolute;
  inset: 0 0 auto;
  background:
    linear-gradient(
      180deg,
      rgba(8, 14, 10, 0.91),
      rgba(8, 14, 10, 0.55) 72%,
      rgba(8, 14, 10, 0.08)
    );
}

body#index .ec-site-header.ec-header--scrolled {
  position: fixed;
  background: rgba(30, 49, 37, 0.985);
  box-shadow: 0 0.8rem 2.2rem rgba(0, 0, 0, 0.22);
}

body#index .ec-hero {
  min-height: clamp(45rem, 90vh, 57rem);
}

body#index .ec-hero__content {
  padding-top: 12rem !important;
}

@media (max-width: 1199.98px) {
  .ec-header-logo img,
  .ec-header-logo .logo {
    max-width: 10rem !important;
  }

  .ec-primary-nav__list {
    gap: 1.35rem;
  }

  .ec-primary-nav__link {
    font-size: 0.72rem;
  }

  .ec-category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  body#index .ec-site-header {
    position: relative;
    background: var(--ec-forest);
  }

  .ec-header-utility__inner {
    flex-wrap: wrap;
    justify-content: center;
    padding-block: 0.4rem;
  }

  .ec-header-contact {
    width: 100%;
    text-align: center;
  }

  .ec-header-utility__actions,
  .ec-header-actions {
    justify-content: center;
    margin-left: 0;
  }

  .ec-header-main__inner {
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem;
    padding-block: 0.5rem;
  }

  .ec-header-logo img,
  .ec-header-logo .logo {
    max-width: 9rem !important;
    max-height: 5rem !important;
  }

  .ec-nav-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.75rem 0;
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .ec-nav-toggle__bars,
  .ec-nav-toggle__bars::before,
  .ec-nav-toggle__bars::after {
    display: block;
    width: 1.35rem;
    height: 2px;
    background: currentColor;
  }

  .ec-nav-toggle__bars {
    position: relative;
  }

  .ec-nav-toggle__bars::before,
  .ec-nav-toggle__bars::after {
    content: '';
    position: absolute;
    left: 0;
  }

  .ec-nav-toggle__bars::before {
    top: -0.42rem;
  }

  .ec-nav-toggle__bars::after {
    top: 0.42rem;
  }

  .ec-primary-nav {
    display: none;
    flex: 0 0 100%;
    width: 100%;
  }

  .ec-primary-nav.is-open {
    display: block;
  }

  .ec-primary-nav__list {
    display: grid;
    gap: 0;
    justify-content: stretch;
    padding-bottom: 0.5rem;
  }

  .ec-primary-nav__link {
    width: 100%;
    justify-content: space-between;
    min-height: 2.9rem;
  }

  .ec-boutique-panel {
    position: static;
    display: none;
    width: 100%;
    max-height: none;
    margin: 0.25rem 0 0.75rem;
    padding: 0.85rem;
    overflow: visible;
    visibility: visible;
    opacity: 1;
    transform: none;
    border-radius: 0.75rem;
  }

  .ec-primary-nav__item--boutique.is-open .ec-boutique-panel {
    display: block;
    transform: none;
  }

  .ec-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body#index .ec-hero__content {
    padding-top: 5.5rem !important;
  }
}

@media (max-width: 575.98px) {
  .ec-site-header .container {
    width: min(100% - 1rem, 90rem);
  }

  .ec-header-actions {
    gap: 0.6rem;
  }

  .ec-header-logo img,
  .ec-header-logo .logo {
    max-width: 8.5rem !important;
    max-height: 4.7rem !important;
  }

  .ec-category-grid {
    grid-template-columns: 1fr;
  }

  .ec-boutique-panel__title {
    font-size: 1.2rem;
  }

  .ec-category-card__main {
    min-height: auto;
  }
}




@media (max-width: 575.98px) {
  .ec-category-card__quicklinks a {
    white-space: normal;
  }
}


@media (min-width: 992px) {
  .ec-header-main__inner {
    position: relative;
  }

  .ec-primary-nav {
    position: static;
  }

  .ec-boutique-panel {
    left: 50%;
    right: auto;
    width: min(84rem, calc(100vw - 4rem));
    transform: translate(-50%, -0.5rem) scale(0.985);
    transform-origin: top center;
  }

  .ec-primary-nav__item--boutique.is-open .ec-boutique-panel {
    transform: translate(-50%, 0) scale(1);
  }
}


/* ==========================================================
   Espace Chasse 2.6 : catégories, produits et cartes catalogue
   ========================================================== */

body#category #wrapper,
body#product #wrapper {
  background: #f4f2ec;
}

body#category #main,
body#product #main {
  padding-bottom: clamp(2.5rem, 5vw, 5rem);
}

body#category .breadcrumb,
body#product .breadcrumb {
  margin-bottom: 0;
  padding-block: 0.95rem;
  color: #69716b;
  font-size: 0.85rem;
}

body#category .breadcrumb a,
body#product .breadcrumb a {
  color: var(--ec-forest) !important;
  text-decoration: none;
}

/* Page catégorie : suppression visuelle de l'ancien effet catalogue brut. */
body#category #content-wrapper,
body#category .content-wrapper {
  width: 100%;
  max-width: 100%;
}

.ec-category-hero,
.ec-category-subcategories {
  width: min(100%, 90rem);
  margin-inline: auto;
  border: 1px solid rgba(33, 55, 42, 0.11);
  border-radius: 1.2rem;
  background: #fff;
  box-shadow: 0 1rem 2.8rem rgba(24, 45, 31, 0.07);
}

.ec-category-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  overflow: hidden;
  margin-bottom: 1.25rem;
}

.ec-category-hero--with-cover {
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr);
}

.ec-category-hero__content {
  align-self: center;
  padding: clamp(1.75rem, 4vw, 4rem);
}

.ec-category-hero__eyebrow,
.ec-category-subcategories__eyebrow {
  margin: 0 0 0.55rem;
  color: var(--ec-bronze);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.ec-category-hero__title {
  margin: 0;
  color: var(--ec-forest-deep);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(2rem, 4vw, 3.65rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.04;
  text-transform: none;
}

.ec-category-hero__description {
  max-width: 58rem;
  margin-top: 1.15rem;
  color: #566158;
  font-size: 1rem;
  line-height: 1.7;
  text-align: left !important;
}

.ec-category-hero__description > :first-child {
  margin-top: 0 !important;
}

.ec-category-hero__description > :last-child {
  margin-bottom: 0 !important;
}

.ec-category-hero__description h1,
.ec-category-hero__description h2,
.ec-category-hero__description h3,
.ec-category-hero__description h4,
.ec-category-hero__description p,
.ec-category-hero__description strong {
  max-width: none !important;
  margin-inline: 0 !important;
  text-align: left !important;
}

.ec-category-hero__description h1,
.ec-category-hero__description h2,
.ec-category-hero__description h3,
.ec-category-hero__description h4 {
  margin-block: 0.8rem 0.3rem !important;
  color: var(--ec-forest-deep) !important;
  font-family: inherit !important;
  font-size: clamp(1rem, 1.4vw, 1.2rem) !important;
  font-weight: 750 !important;
  letter-spacing: 0 !important;
  line-height: 1.45 !important;
  text-transform: none !important;
}

.ec-category-hero__description p {
  margin-block: 0.45rem !important;
  color: #566158 !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
}

.ec-category-hero__cover {
  position: relative;
  min-height: 18rem;
  overflow: hidden;
  background: var(--ec-forest-deep);
}

.ec-category-hero__cover::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(20, 37, 27, 0.08), rgba(20, 37, 27, 0.32));
  pointer-events: none;
}

.ec-category-hero__cover picture,
.ec-category-hero__cover-image {
  display: block;
  width: 100%;
  height: 100%;
}

.ec-category-hero__cover-image {
  object-fit: cover;
}

.ec-category-subcategories {
  margin-bottom: 2rem;
  padding: clamp(1.25rem, 2.5vw, 2rem);
}

.ec-category-subcategories__heading {
  margin-bottom: 1rem;
}

.ec-category-subcategories__title {
  margin: 0;
  color: var(--ec-forest-deep);
  font-size: clamp(1.25rem, 2vw, 1.65rem);
  font-weight: 750;
}

body#category .subcategory {
  margin: 0;
}

body#category .subcategory__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: 0.75rem;
  margin: 0;
}

body#category .subcategory__link {
  display: flex;
  min-width: 0;
  min-height: 5.4rem;
  align-items: center;
  gap: 0.85rem;
  padding: 0.75rem;
  border: 1px solid rgba(33, 55, 42, 0.12);
  border-radius: 0.8rem;
  background: #f7f7f3;
  color: var(--ec-forest-deep) !important;
  text-decoration: none;
  transition: transform 160ms ease, border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

body#category .subcategory__link::after {
  content: '→';
  flex: 0 0 auto;
  margin-left: auto;
  color: var(--ec-bronze);
  font-size: 1rem;
  transition: transform 160ms ease;
}

body#category .subcategory__link:hover,
body#category .subcategory__link:focus {
  transform: translateY(-2px);
  border-color: rgba(189, 135, 67, 0.55);
  background: #fbf5eb;
  box-shadow: 0 0.8rem 1.8rem rgba(27, 48, 34, 0.09);
  text-decoration: none;
}

body#category .subcategory__link:hover::after,
body#category .subcategory__link:focus::after {
  transform: translateX(0.2rem);
}

body#category .subcategory__thumbnail {
  width: 3.65rem !important;
  height: 3.65rem !important;
  flex: 0 0 3.65rem;
  border-radius: 0.55rem;
  object-fit: cover;
}

body#category .subcategory__name {
  min-width: 0;
  color: inherit !important;
  font-size: 0.82rem;
  font-weight: 750;
  line-height: 1.25;
  text-transform: uppercase;
}

body#category .page-content--not-found {
  width: min(100%, 56rem);
  margin: 1.5rem auto 2.5rem;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border: 1px solid rgba(33, 55, 42, 0.11);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 1rem 2.4rem rgba(24, 45, 31, 0.06);
  text-align: center;
}

body#category .page-content--not-found .btn-primary {
  border-color: var(--ec-bronze) !important;
  background: var(--ec-bronze) !important;
  color: #fff !important;
}

/* Cartes produits : même langage graphique sur l'accueil, les catégories et les recommandations. */
.product-miniature__inner {
  height: 100%;
  overflow: hidden;
  border: 1px solid rgba(33, 55, 42, 0.1);
  border-radius: 0.9rem;
  background: #fff;
  box-shadow: 0 0.65rem 1.7rem rgba(25, 45, 31, 0.055);
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.product-miniature:hover .product-miniature__inner,
.product-miniature:focus-within .product-miniature__inner {
  transform: translateY(-4px);
  border-color: rgba(189, 135, 67, 0.42);
  box-shadow: 0 1.15rem 2.4rem rgba(25, 45, 31, 0.12);
}

.product-miniature__top {
  overflow: hidden;
  background: #f1f0eb;
}

.product-miniature__top img {
  transition: transform 260ms ease;
}

.product-miniature:hover .product-miniature__top img {
  transform: scale(1.025);
}

.product-miniature__bottom {
  padding: 1rem 1rem 1.1rem;
}

.product-miniature__title {
  color: var(--ec-forest-deep) !important;
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none !important;
}

.product-miniature__price {
  color: var(--ec-forest-deep) !important;
  font-size: 1rem;
  font-weight: 800;
}

.product-miniature__regular-price {
  color: #858b86 !important;
}

.product-miniature__actions .btn-primary,
.product-miniature__form .btn-primary,
.product-miniature__actions button[type='submit'] {
  border-color: var(--ec-bronze) !important;
  border-radius: 0.35rem !important;
  background: var(--ec-bronze) !important;
  color: #fff !important;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.product-miniature__actions .btn-primary:hover,
.product-miniature__actions .btn-primary:focus,
.product-miniature__form .btn-primary:hover,
.product-miniature__form .btn-primary:focus,
.product-miniature__actions button[type='submit']:hover,
.product-miniature__actions button[type='submit']:focus {
  border-color: var(--ec-forest) !important;
  background: var(--ec-forest) !important;
}

/* Fiche produit : galerie claire, panneau achat premium, informations structurées. */
body#product .product__container,
body#product .product__bottom,
body#product .product-accessories,
body#product .product-comments,
body#product #product-comments-list-header {
  width: min(100%, 90rem);
  margin-inline: auto;
}

body#product .product__container {
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: start;
  padding-top: 1rem;
}

body#product .product__left,
body#product .product__right,
body#product .product__bottom-left,
body#product .product__bottom-right {
  border: 1px solid rgba(33, 55, 42, 0.11);
  border-radius: 1.1rem;
  background: #fff;
  box-shadow: 0 1rem 2.8rem rgba(24, 45, 31, 0.065);
}

body#product .product__left {
  overflow: hidden;
  padding: clamp(0.75rem, 2vw, 1.5rem);
}

body#product .product__left img {
  border-radius: 0.8rem;
}

body#product .product__right {
  position: sticky;
  top: 1.5rem;
  align-self: start;
  padding: clamp(1.4rem, 3vw, 2.5rem);
}

body#product .product__name {
  margin-bottom: 0.85rem;
  color: var(--ec-forest-deep);
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.85rem, 3vw, 3rem);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.1;
}

body#product .product__manufacturer a {
  color: var(--ec-bronze) !important;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body#product .product__description-short {
  margin-block: 1.1rem 1.4rem;
  color: #566158;
  font-size: 0.98rem;
  line-height: 1.65;
}

body#product .product__prices,
body#product .product-prices {
  margin-block: 0.8rem 1rem;
}

body#product .current-price,
body#product .product-price,
body#product .product__price {
  color: var(--ec-forest-deep) !important;
  font-size: clamp(1.65rem, 2.6vw, 2.25rem) !important;
  font-weight: 800 !important;
}

body#product .product__actions label,
body#product .product-variants-item .control-label {
  color: var(--ec-forest-deep);
  font-weight: 750;
}

body#product .product__actions select,
body#product .product__actions input,
body#product .product__actions .form-control,
body#product .product__actions .form-select {
  border-color: rgba(33, 55, 42, 0.2) !important;
  border-radius: 0.55rem !important;
  box-shadow: none !important;
}

body#product .product__actions select:focus,
body#product .product__actions input:focus,
body#product .product__actions .form-control:focus,
body#product .product__actions .form-select:focus {
  border-color: var(--ec-bronze) !important;
  box-shadow: 0 0 0 0.2rem rgba(189, 135, 67, 0.14) !important;
}

body#product .product__actions .btn-primary,
body#product .add-to-cart {
  min-height: 3rem;
  border-color: var(--ec-bronze) !important;
  border-radius: 0.45rem !important;
  background: var(--ec-bronze) !important;
  color: #fff !important;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

body#product .product__actions .btn-primary:hover,
body#product .product__actions .btn-primary:focus,
body#product .add-to-cart:hover,
body#product .add-to-cart:focus {
  border-color: var(--ec-forest) !important;
  background: var(--ec-forest) !important;
}

body#product .product__bottom {
  gap: 1rem;
  margin-top: 2rem;
}

body#product .product__bottom-left,
body#product .product__bottom-right {
  padding: clamp(1rem, 2.5vw, 2rem);
}

body#product .product__bottom-right {
  background: var(--ec-forest-deep);
  color: #fff;
}

body#product .product__bottom-right h1,
body#product .product__bottom-right h2,
body#product .product__bottom-right h3,
body#product .product__bottom-right h4,
body#product .product__bottom-right p,
body#product .product__bottom-right a,
body#product .product__bottom-right span {
  color: #fff !important;
}

body#product .product__bottom-right svg,
body#product .product__bottom-right .material-icons {
  color: var(--ec-bronze-soft) !important;
  fill: currentColor !important;
}

body#product .product__accordion .accordion-item {
  border-color: rgba(33, 55, 42, 0.12);
  background: transparent;
}

body#product .product__accordion .accordion-button {
  padding-inline: 0;
  background: transparent;
  color: var(--ec-forest-deep);
  font-weight: 800;
  box-shadow: none;
}

body#product .product__accordion .accordion-button:not(.collapsed) {
  color: var(--ec-bronze);
}

body#product .product__accordion .accordion-body {
  padding-inline: 0;
  color: #566158;
  line-height: 1.7;
}

body#product .product-accessories,
body#product .product-comments,
body#product #product-comments-list-header {
  margin-top: 2rem;
}

body#product .product-accessories > h2,
body#product .product-comments h2,
body#product #product-comments-list-header {
  color: var(--ec-forest-deep);
  font-family: Georgia, 'Times New Roman', serif;
}


/* Description de catégorie repliable sur mobile. */
.ec-category-hero__description-toggle {
  display: none;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.7rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ec-bronze);
  font: inherit;
  font-size: 0.95rem;
  font-weight: 750;
  line-height: 1.35;
  text-decoration: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
  cursor: pointer;
}

.ec-category-hero__description-toggle[hidden] {
  display: none !important;
}

.ec-category-hero__description-toggle::after {
  content: '↓';
  display: inline-block;
  font-size: 0.85em;
  text-decoration: none;
  transition: transform 160ms ease;
}

.ec-category-hero__description.is-expanded .ec-category-hero__description-toggle::after {
  transform: rotate(180deg);
}

.ec-category-hero__description-toggle:hover,
.ec-category-hero__description-toggle:focus-visible {
  color: var(--ec-forest-deep);
}

@media (max-width: 767.98px) {
  .ec-category-hero__description.is-collapsible:not(.is-expanded)
  .ec-category-hero__description-content {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .ec-category-hero__description.is-collapsible:not(.is-expanded)
  .ec-category-hero__description-content > :not([hidden]) {
    display: inline !important;
    margin: 0 !important;
    padding: 0 !important;
    color: inherit !important;
    font: inherit !important;
    line-height: inherit !important;
  }

  .ec-category-hero__description.is-collapsible:not(.is-expanded)
  .ec-category-hero__description-content > :not([hidden])::after {
    content: ' ';
  }

  .ec-category-hero__description.is-collapsible:not(.is-expanded)
  .ec-category-hero__description-content > [hidden] {
    display: none !important;
  }

  .ec-category-hero__description.is-collapsible
  .ec-category-hero__description-toggle {
    display: inline-flex;
  }
}

@media (max-width: 991.98px) {
  .ec-category-hero--with-cover {
    grid-template-columns: 1fr;
  }

  .ec-category-hero__cover {
    min-height: 14rem;
  }

  body#product .product__right {
    position: static;
  }
}

@media (max-width: 575.98px) {
  .ec-category-hero,
  .ec-category-subcategories {
    border-radius: 0.8rem;
  }

  .ec-category-hero__content,
  .ec-category-subcategories {
    padding: 1.1rem;
  }

  body#category .subcategory__list {
    grid-template-columns: 1fr;
  }

  body#product .product__left,
  body#product .product__right,
  body#product .product__bottom-left,
  body#product .product__bottom-right {
    border-radius: 0.8rem;
  }
}


/* ==========================================================
   Espace Chasse 2.0.7
   Header compact, cartes produits et composants commerciaux
   ========================================================== */

:root {
  --ec-header-utility-height: 3.35rem;
  --ec-header-main-height: 6.2rem;
  --ec-header-compact-utility-height: 2.55rem;
  --ec-header-compact-main-height: 4.35rem;
  --ec-card-radius: 0.9rem;
  --ec-card-border: rgba(33, 55, 42, 0.11);
  --ec-card-shadow: 0 0.7rem 1.8rem rgba(25, 45, 31, 0.065);
  --ec-card-shadow-hover: 0 1.2rem 2.7rem rgba(25, 45, 31, 0.13);
}

/* Le header reste disponible sur les pages intérieures et se compacte au scroll. */
body:not(#index) .ec-site-header {
  position: sticky;
  top: 0;
}

.ec-site-header,
.ec-header-utility,
.ec-header-utility__inner,
.ec-header-main,
.ec-header-main__inner,
.ec-header-logo img,
.ec-header-logo .logo,
.ec-primary-nav__link {
  transition:
    min-height 180ms ease,
    max-height 180ms ease,
    padding 180ms ease,
    gap 180ms ease,
    font-size 180ms ease,
    box-shadow 180ms ease,
    background-color 180ms ease;
}

@media (min-width: 992px) {
  .ec-site-header.ec-header--scrolled .ec-header-utility,
  .ec-site-header.ec-header--scrolled .ec-header-utility__inner {
    min-height: var(--ec-header-compact-utility-height);
  }

  .ec-site-header.ec-header--scrolled .ec-header-main,
  .ec-site-header.ec-header--scrolled .ec-header-main__inner {
    min-height: var(--ec-header-compact-main-height);
  }

  .ec-site-header.ec-header--scrolled .ec-header-main__inner {
    gap: clamp(1.4rem, 3vw, 3.4rem);
  }

  .ec-site-header.ec-header--scrolled .ec-header-logo img,
  .ec-site-header.ec-header--scrolled .ec-header-logo .logo {
    max-width: 8.8rem !important;
    max-height: 3.95rem !important;
  }

  .ec-site-header.ec-header--scrolled .ec-primary-nav__list {
    gap: clamp(1.25rem, 2.6vw, 2.7rem);
  }

  .ec-site-header.ec-header--scrolled .ec-primary-nav__link {
    min-height: 2.6rem;
    font-size: 0.74rem;
  }

  .ec-site-header.ec-header--scrolled .ec-search__toggle {
    width: 2.2rem;
    height: 2.2rem;
  }

  .ec-site-header.ec-header--scrolled {
    box-shadow: 0 0.65rem 1.8rem rgba(7, 18, 11, 0.18);
  }

  body#product .product__right {
    top: calc(var(--ec-header-compact-utility-height) + var(--ec-header-compact-main-height) + 1rem);
  }
}

/* Liens, boutons et états de focus cohérents sur tout le thème. */
.btn,
button,
a {
  -webkit-tap-highlight-color: transparent;
}

.btn-primary,
button.btn-primary,
a.btn-primary,
.product-miniature__actions .btn-primary,
.product-miniature__form .btn-primary,
body#product .add-to-cart {
  border-color: var(--ec-bronze) !important;
  border-radius: 0.45rem !important;
  background: var(--ec-bronze) !important;
  color: #fff !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  box-shadow: none !important;
  transition: transform 150ms ease, border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease;
}

.btn-primary:hover,
.btn-primary:focus,
button.btn-primary:hover,
button.btn-primary:focus,
a.btn-primary:hover,
a.btn-primary:focus,
.product-miniature__actions .btn-primary:hover,
.product-miniature__actions .btn-primary:focus,
.product-miniature__form .btn-primary:hover,
.product-miniature__form .btn-primary:focus,
body#product .add-to-cart:hover,
body#product .add-to-cart:focus {
  transform: translateY(-1px);
  border-color: var(--ec-forest) !important;
  background: var(--ec-forest) !important;
  color: #fff !important;
  box-shadow: 0 0.55rem 1.1rem rgba(33, 55, 42, 0.16) !important;
}

.btn-outline-primary,
.btn-secondary {
  border-color: rgba(33, 55, 42, 0.45) !important;
  border-radius: 0.45rem !important;
  background: transparent !important;
  color: var(--ec-forest) !important;
  font-weight: 750;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-secondary:hover,
.btn-secondary:focus {
  border-color: var(--ec-forest) !important;
  background: var(--ec-forest) !important;
  color: #fff !important;
}

.btn:focus-visible,
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible {
  outline: 2px solid var(--ec-bronze-soft) !important;
  outline-offset: 3px;
}

/* Grilles : toutes les cartes d'une même ligne gardent la même hauteur. */
.products,
.product-list,
.product-accessories .products {
  align-items: stretch;
}

.products .product-miniature,
.product-list .product-miniature,
.product-accessories .product-miniature {
  display: flex;
  height: 100%;
}

.product-miniature__inner {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  border-radius: var(--ec-card-radius);
  box-shadow: var(--ec-card-shadow);
}

.product-miniature__top {
  position: relative;
  display: grid;
  aspect-ratio: 1 / 1;
  place-items: center;
  padding: clamp(0.75rem, 1.6vw, 1.2rem);
  background: #f1f0eb;
}

.product-miniature__top a,
.product-miniature__top picture {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
}

.product-miniature__top img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.product-miniature__bottom {
  display: flex;
  min-height: 13.5rem;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 1rem 1rem 1.05rem;
}

.product-miniature__manufacturer,
.product-miniature .product-brand,
.product-miniature .manufacturer-name {
  margin-bottom: 0.35rem;
  color: var(--ec-bronze) !important;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.product-miniature__title,
.product-miniature__title a,
.product-miniature .product-title,
.product-miniature .product-title a {
  display: -webkit-box;
  min-height: 2.65rem;
  overflow: hidden;
  color: var(--ec-forest-deep) !important;
  font-size: 0.9rem;
  font-weight: 750;
  line-height: 1.42;
  text-decoration: none !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.product-miniature__prices,
.product-miniature .product-price-and-shipping {
  display: flex;
  min-height: 2.45rem;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem;
  margin-top: 0.65rem;
}

.product-miniature__price,
.product-miniature .price {
  color: var(--ec-forest-deep) !important;
  font-size: 1.02rem;
  font-weight: 850;
}

.product-miniature__regular-price,
.product-miniature .regular-price {
  color: #8a908b !important;
  font-size: 0.82rem;
  font-weight: 500;
}

.product-miniature__actions,
.product-miniature__form,
.product-miniature .product-add-to-cart {
  margin-top: auto;
}

.product-miniature__actions .btn-primary,
.product-miniature__form .btn-primary,
.product-miniature__actions button[type='submit'],
.product-miniature .product-add-to-cart .btn {
  width: 100%;
  min-height: 2.6rem;
  justify-content: center;
  font-size: 0.68rem;
}

.product-miniature:hover .product-miniature__inner,
.product-miniature:focus-within .product-miniature__inner {
  border-color: rgba(189, 135, 67, 0.5);
  box-shadow: var(--ec-card-shadow-hover);
}

/* Badges prix et nouveautés. */
.product-flags,
.product-miniature .product-flags {
  top: 0.75rem;
  left: 0.75rem;
  gap: 0.35rem;
}

.product-flag,
.product-miniature .discount-percentage,
.product-miniature .discount-amount,
.product-miniature .product-flag.discount,
.product-miniature .product-flag.new,
.product-miniature .product-flag.on-sale {
  min-height: 1.7rem;
  padding: 0.28rem 0.52rem !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--ec-bronze) !important;
  color: #fff !important;
  font-size: 0.67rem !important;
  font-weight: 850 !important;
  letter-spacing: 0.035em;
  line-height: 1 !important;
  text-transform: uppercase;
  box-shadow: 0 0.35rem 0.9rem rgba(41, 31, 18, 0.12);
}

.product-miniature .product-flag.new {
  background: var(--ec-forest) !important;
}

/* Favoris et aperçu rapide : boutons sobres, ronds et lisibles. */
.product-miniature .wishlist-button-add,
.product-miniature .wishlist-button-product,
.product-miniature button[data-button-action='add-to-wishlist'],
body#product .wishlist-button-add,
body#product .wishlist-button-product,
body#product button[data-button-action='add-to-wishlist'] {
  display: grid !important;
  width: 2.45rem !important;
  height: 2.45rem !important;
  place-items: center;
  padding: 0 !important;
  border: 1px solid rgba(33, 55, 42, 0.13) !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.96) !important;
  color: var(--ec-forest) !important;
  box-shadow: 0 0.35rem 0.9rem rgba(21, 34, 25, 0.08) !important;
  transition: transform 150ms ease, background-color 150ms ease, color 150ms ease;
}

.product-miniature .wishlist-button-add:hover,
.product-miniature .wishlist-button-add:focus,
.product-miniature .wishlist-button-product:hover,
.product-miniature .wishlist-button-product:focus,
body#product .wishlist-button-add:hover,
body#product .wishlist-button-add:focus,
body#product .wishlist-button-product:hover,
body#product .wishlist-button-product:focus {
  transform: translateY(-1px);
  background: var(--ec-forest) !important;
  color: #fff !important;
}

.product-miniature .quick-view,
.product-miniature .product-miniature__quick-view {
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.95) !important;
  color: var(--ec-forest) !important;
  font-size: 0.72rem;
  font-weight: 750;
  box-shadow: 0 0.5rem 1.2rem rgba(20, 37, 27, 0.1);
}

/* Fiche produit : équilibre visuel et zone d'achat mieux structurée. */
body#product .product__left,
body#product .product__right,
body#product .product__bottom-left,
body#product .product__bottom-right {
  border-radius: 1rem;
  box-shadow: var(--ec-card-shadow);
}

body#product .product__left {
  background: #f7f5ef;
}

body#product .product__left .product-cover,
body#product .product__left .product-cover img {
  background: #f7f5ef;
}

body#product .product__right {
  border-top: 3px solid var(--ec-bronze);
}

body#product .product__name {
  max-width: 20ch;
}

body#product .product__prices,
body#product .product-prices {
  padding-block: 0.6rem;
  border-block: 1px solid rgba(33, 55, 42, 0.1);
}

body#product .product-quantity,
body#product .product-add-to-cart,
body#product .product__actions {
  gap: 0.65rem;
}

body#product .qty,
body#product .quantity-wanted,
body#product input[name='qty'] {
  min-height: 3rem;
  border-radius: 0.45rem !important;
}

body#product .product__actions .btn-primary,
body#product .add-to-cart {
  min-height: 3.1rem;
}

body#product .product__bottom-right {
  border-color: rgba(211, 171, 117, 0.25);
  background: var(--ec-forest);
}

body#product .product-accessories .products,
body#product .featured-products .products {
  row-gap: 1.4rem;
}

/* Les blocs d'avis vides ne créent plus un grand espace inutile. */
body#product .ec-empty-product-comments {
  display: none !important;
}

@media (max-width: 991.98px) {
  body:not(#index) .ec-site-header {
    position: relative;
  }

  .product-miniature__bottom {
    min-height: 12.5rem;
  }
}

@media (max-width: 575.98px) {
  .product-miniature__top {
    padding: 0.65rem;
  }

  .product-miniature__bottom {
    min-height: auto;
    padding: 0.85rem;
  }

  .product-miniature__title,
  .product-miniature__title a,
  .product-miniature .product-title,
  .product-miniature .product-title a {
    min-height: auto;
  }
}

/* ==============================================================
   Espace Chasse 2.0.8
   Refonte visible des cartes produit et du bloc de réassurance.
   ============================================================== */

/* Cartes catalogue : une action d'achat claire, sans sélecteur de quantité
   encombrant. La quantité reste modifiable dans le panier ou la fiche produit. */
.product-miniature__form {
  display: block !important;
  width: 100% !important;
}

.product-miniature__form .quantity-button,
.product-miniature__form .js-quantity-button {
  display: none !important;
}

.product-miniature__add,
.product-miniature__form .product-miniature__add {
  display: inline-flex !important;
  width: 100% !important;
  min-height: 2.8rem !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.45rem !important;
  padding-inline: 0.9rem !important;
  border-radius: 0.45rem !important;
}

.product-miniature__add-text {
  display: inline !important;
  visibility: visible !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: nowrap !important;
  font-size: 0.69rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.045em !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
}

.product-miniature__add .material-icons {
  margin: 0 !important;
  font-size: 1rem !important;
}

.product-miniature__bottom {
  min-height: 11.8rem;
}

/* Fiche produit : le bloc de réassurance ne doit plus occuper une colonne
   sombre sur toute la hauteur. Il devient une bande compacte et horizontale. */
body#product .product__bottom {
  display: flex !important;
  width: min(100%, 90rem) !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 1.15rem !important;
  margin-top: 1.5rem !important;
}

body#product .product__bottom-left,
body#product .product__bottom-right {
  width: 100% !important;
  max-width: none !important;
  flex: 0 0 auto !important;
}

body#product .product__bottom-right {
  order: -1;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--ec-forest-deep) !important;
  box-shadow: none !important;
}

body#product .product__bottom-right h1,
body#product .product__bottom-right h2,
body#product .product__bottom-right h3,
body#product .product__bottom-right h4,
body#product .product__bottom-right p,
body#product .product__bottom-right a,
body#product .product__bottom-right span {
  color: inherit !important;
}

body#product .blockreassurance_product {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

body#product .blockreassurance_product > div:not(.clearfix) {
  display: grid !important;
  min-width: 0;
  min-height: 5rem;
  grid-template-columns: 2.75rem minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 0.8rem;
  align-content: center;
  align-items: center;
  padding: 0.85rem 1rem !important;
  border: 1px solid rgba(33, 55, 42, 0.12) !important;
  border-radius: 0.9rem !important;
  background: #fff !important;
  box-shadow: 0 0.65rem 1.7rem rgba(24, 45, 31, 0.055) !important;
  transition: border-color 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}

body#product .blockreassurance_product > div:not(.clearfix):hover {
  transform: translateY(-1px);
  border-color: rgba(189, 135, 67, 0.55) !important;
  box-shadow: 0 0.8rem 1.9rem rgba(24, 45, 31, 0.08) !important;
}

body#product .blockreassurance_product .item-product {
  display: grid !important;
  width: 2.75rem !important;
  height: 2.75rem !important;
  grid-row: 1 / span 2;
  place-items: center;
  margin: 0 !important;
  padding: 0.58rem !important;
  border-radius: 50% !important;
  background: var(--ec-forest) !important;
}

body#product .blockreassurance_product .item-product img,
body#product .blockreassurance_product .item-product svg {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 1.6rem !important;
  max-height: 1.6rem !important;
  margin: 0 !important;
  object-fit: contain;
  opacity: 1 !important;
  filter: brightness(0) invert(1) !important;
}

body#product .blockreassurance_product .item-product .invisible,
body#product .blockreassurance_product img.invisible {
  visibility: visible !important;
}

body#product .blockreassurance_product .block-title {
  align-self: end;
  margin: 0 !important;
  color: var(--ec-forest-deep) !important;
  font-size: 0.9rem !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  line-height: 1.25 !important;
}

body#product .blockreassurance_product > div:not(.clearfix) > p:not(.block-title) {
  align-self: start;
  margin: 0.18rem 0 0 !important;
  color: var(--ec-muted) !important;
  font-size: 0.73rem !important;
  line-height: 1.35 !important;
}

body#product .blockreassurance_product > .clearfix {
  display: none !important;
}

/* Le contenu descriptif reprend toute la largeur et ne se retrouve plus
   visuellement associé à un grand pavé vert vide. */
body#product .product__bottom-left {
  padding: clamp(1.2rem, 2.5vw, 2.25rem) !important;
}

/* Les messages d'avis vides ne doivent pas créer une rupture visuelle. */
body#product .ec-empty-review-message,
body#product .ec-empty-product-comments {
  display: none !important;
}

@media (max-width: 767.98px) {
  body#product .blockreassurance_product {
    grid-template-columns: 1fr;
  }

  body#product .blockreassurance_product > div:not(.clearfix) {
    min-height: 4.6rem;
  }

  .product-miniature__bottom {
    min-height: auto;
  }
}

/* ==========================================================
   Espace Chasse 2.0.9
   Header stable et réassurance intégrée à la fiche produit
   ========================================================== */

/* Les pages intérieures utilisent directement l'état compact.
   Aucune variation de hauteur au scroll : le sticky reste stable. */
@media (min-width: 992px) {
  body:not(#index) .ec-site-header {
    position: sticky;
    top: 0;
    z-index: 1050;
    transform: translateZ(0);
    backface-visibility: hidden;
    box-shadow: 0 0.55rem 1.5rem rgba(7, 18, 11, 0.14);
  }

  body:not(#index) .ec-header-utility,
  body:not(#index) .ec-header-utility__inner {
    min-height: var(--ec-header-compact-utility-height) !important;
  }

  body:not(#index) .ec-header-main,
  body:not(#index) .ec-header-main__inner {
    min-height: var(--ec-header-compact-main-height) !important;
  }

  body:not(#index) .ec-header-main__inner {
    gap: clamp(1.4rem, 3vw, 3.4rem) !important;
  }

  body:not(#index) .ec-header-logo img,
  body:not(#index) .ec-header-logo .logo {
    max-width: 8.8rem !important;
    max-height: 3.95rem !important;
  }

  body:not(#index) .ec-primary-nav__list {
    gap: clamp(1.25rem, 2.6vw, 2.7rem) !important;
  }

  body:not(#index) .ec-primary-nav__link {
    min-height: 2.6rem !important;
    font-size: 0.74rem !important;
  }

  body:not(#index) .ec-search__toggle {
    width: 2.2rem !important;
    height: 2.2rem !important;
  }

  body:not(#index) .ec-site-header,
  body:not(#index) .ec-header-utility,
  body:not(#index) .ec-header-utility__inner,
  body:not(#index) .ec-header-main,
  body:not(#index) .ec-header-main__inner,
  body:not(#index) .ec-header-logo img,
  body:not(#index) .ec-header-logo .logo,
  body:not(#index) .ec-primary-nav__link {
    transition: none !important;
  }

  body#product .product__right {
    top: calc(var(--ec-header-compact-utility-height) + var(--ec-header-compact-main-height) + 1rem) !important;
  }
}

/* Bande de réassurance indépendante, placée sous le bloc d'achat. */
body#product .ec-product-reassurance {
  width: min(calc(100% - 2rem), 90rem);
  margin: 1.15rem auto 1.5rem;
}

body#product .ec-reassurance-list {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
  width: 100%;
}

body#product .ec-reassurance-item {
  display: grid !important;
  min-width: 0;
  min-height: 5.4rem;
  grid-template-columns: 3rem minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 0.9rem;
  align-content: center;
  align-items: center;
  margin: 0 !important;
  padding: 0.95rem 1.05rem !important;
  border: 1px solid rgba(33, 55, 42, 0.12) !important;
  border-radius: 1rem !important;
  background: #fff !important;
  color: var(--ec-forest-deep) !important;
  box-shadow: 0 0.75rem 1.9rem rgba(24, 45, 31, 0.06) !important;
  transition: transform 150ms ease, border-color 150ms ease, box-shadow 150ms ease !important;
}

body#product .ec-reassurance-item:hover {
  transform: translateY(-2px);
  border-color: rgba(189, 135, 67, 0.5) !important;
  box-shadow: 0 1rem 2.2rem rgba(24, 45, 31, 0.1) !important;
}

body#product .ec-reassurance-icon,
body#product .ec-reassurance-item .item-product {
  display: grid !important;
  width: 3rem !important;
  height: 3rem !important;
  grid-row: 1 / span 2;
  grid-column: 1;
  place-items: center;
  margin: 0 !important;
  padding: 0.62rem !important;
  border: 1px solid rgba(189, 135, 67, 0.22) !important;
  border-radius: 0.8rem !important;
  background: #f5efe5 !important;
  box-sizing: border-box;
}

body#product .ec-reassurance-icon img,
body#product .ec-reassurance-icon svg,
body#product .ec-reassurance-item .item-product img,
body#product .ec-reassurance-item .item-product svg {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 1.8rem !important;
  max-height: 1.8rem !important;
  margin: 0 !important;
  object-fit: contain;
  opacity: 1 !important;
  filter: brightness(0) saturate(100%) invert(18%) sepia(15%) saturate(1076%) hue-rotate(92deg) brightness(92%) contrast(94%) !important;
}

body#product .ec-reassurance-title {
  grid-column: 2;
  align-self: end;
  margin: 0 !important;
  color: var(--ec-forest-deep) !important;
  font-size: 0.93rem !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  text-decoration: none !important;
}

body#product .ec-reassurance-note {
  grid-column: 2;
  align-self: start;
  margin: 0.2rem 0 0 !important;
  color: var(--ec-muted) !important;
  font-size: 0.76rem !important;
  line-height: 1.3 !important;
  text-decoration: none !important;
}

body#product .ec-reassurance-note:hover,
body#product .ec-reassurance-note:focus {
  color: var(--ec-bronze) !important;
}

body#product .ec-reassurance-empty-host {
  display: none !important;
}

@media (max-width: 991.98px) {
  body#product .ec-reassurance-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
  }

  body#product .ec-reassurance-item {
    min-height: 4.9rem;
    grid-template-columns: 2.6rem minmax(0, 1fr);
    column-gap: 0.7rem;
    padding: 0.8rem !important;
  }

  body#product .ec-reassurance-icon,
  body#product .ec-reassurance-item .item-product {
    width: 2.6rem !important;
    height: 2.6rem !important;
  }
}

@media (max-width: 767.98px) {
  body#product .ec-product-reassurance {
    width: min(calc(100% - 1rem), 90rem);
    margin-block: 0.9rem 1.1rem;
  }

  body#product .ec-reassurance-list {
    grid-template-columns: 1fr;
  }

  body#product .ec-reassurance-item {
    min-height: 4.6rem;
  }
}


/* ==========================================================
   Espace Chasse 2.0.10
   Réassurance éditoriale et lisibilité du menu Boutique
   ========================================================== */

body#product .ec-native-reassurance-hidden,
body#product .ec-native-reassurance-hidden-host,
body#product .blockreassurance_product.ec-native-reassurance-hidden-host {
  display: none !important;
}

body#product .ec-reassurance-copy {
  display: grid;
  min-width: 0;
  grid-column: 2;
  gap: 0.22rem;
  align-content: center;
}

body#product .ec-reassurance-icon {
  color: var(--ec-forest) !important;
}

body#product .ec-reassurance-icon svg {
  width: 2rem !important;
  height: 2rem !important;
  max-width: none !important;
  max-height: none !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.55 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  filter: none !important;
}

body#product .ec-reassurance-title,
body#product .ec-reassurance-note {
  display: block;
  grid-column: auto;
  align-self: auto;
}

body#product .ec-reassurance-note {
  margin: 0 !important;
  color: #707770 !important;
  font-size: 0.78rem !important;
  line-height: 1.35 !important;
  pointer-events: none;
}

.ec-boutique-panel__eyebrow {
  font-size: 0.78rem;
}

.ec-category-card__quicklinks a {
  min-height: 1.78rem;
  padding: 0.25rem 0.58rem;
  font-size: 0.72rem;
  font-weight: 700;
}

@media (max-width: 1199.98px) {
  .ec-category-card__quicklinks a {
    font-size: 0.69rem;
  }
}

@media (max-width: 767.98px) {
  body#product .ec-reassurance-note {
    font-size: 0.76rem !important;
  }
}


/* ==========================================================
   Espace Chasse 2.0.11
   Galerie produit compacte, choix des déclinaisons et lisibilité
   ========================================================== */

/* La galerie principale et ses miniatures restent visibles ensemble sur
   un écran d'ordinateur standard. L'image conserve ses proportions. */
@media (min-width: 992px) {
  body#product .product__left {
    min-height: 0;
  }

  body#product .product__left .product__images,
  body#product .product__images.js-images-container {
    display: flex !important;
    height: clamp(34rem, calc(100vh - 15.5rem), 42rem) !important;
    min-height: 0 !important;
    flex-direction: column !important;
  }

  body#product .product__carousel {
    display: flex !important;
    min-height: 0 !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }

  body#product .product__carousel .carousel-inner,
  body#product .product__carousel .carousel-item,
  body#product .product__carousel .carousel-item picture {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
  }

  body#product .product__carousel .carousel-item picture {
    display: grid !important;
    place-items: center !important;
  }

  body#product .product__carousel .carousel-item img {
    width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
  }

  body#product .product__thumbnails {
    min-height: 0 !important;
    flex: 0 0 auto !important;
    margin-top: 0.7rem !important;
  }

  body#product .product__thumbnails-list {
    display: flex !important;
    max-height: 5.35rem !important;
    flex-wrap: nowrap !important;
    gap: 0.55rem !important;
    margin: 0 !important;
    padding: 0.15rem 0 0.25rem !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: thin;
  }

  body#product .product__thumbnail {
    width: 4.7rem !important;
    height: 4.7rem !important;
    flex: 0 0 4.7rem !important;
    padding: 0.25rem !important;
  }

  body#product .product__thumbnail-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
  }
}

/* Un produit décliné ouvre l'aperçu rapide afin d'imposer le choix de la
   taille ou de l'option avant l'ajout au panier. */
.product-miniature__add.ec-choose-variant {
  gap: 0.35rem !important;
}

.product-miniature__add.ec-choose-variant .material-icons {
  display: none !important;
}

/* Lisibilité renforcée du panneau Boutique. */
.ec-boutique-panel__eyebrow {
  font-size: 0.92rem !important;
  letter-spacing: 0.14em !important;
}

.ec-category-card__quicklinks a {
  min-height: 1.95rem !important;
  padding: 0.31rem 0.68rem !important;
  font-size: 0.82rem !important;
  font-weight: 750 !important;
}

@media (max-width: 1199.98px) {
  .ec-category-card__quicklinks a {
    font-size: 0.78rem !important;
  }
}

@media (max-width: 767.98px) {
  .ec-boutique-panel__eyebrow {
    font-size: 0.84rem !important;
  }

  .ec-category-card__quicklinks a {
    min-height: 1.85rem !important;
    font-size: 0.76rem !important;
  }
}

/* ==========================================================
   Espace Chasse 2.0.12
   Aperçus produits, galerie, menu Boutique et réassurance accueil
   ========================================================== */

/* La marque précède systématiquement le titre sur les cartes produit. */
.product-miniature__manufacturer {
  display: block;
  min-height: 0.95rem;
  margin: 0 0 0.28rem;
  color: var(--ec-bronze) !important;
  font-size: 0.72rem !important;
  font-weight: 850 !important;
  letter-spacing: 0.09em;
  line-height: 1.2;
  text-transform: uppercase;
}

/* Aucun avis ni étoile dans les aperçus catalogue. */
.product-miniature .product-list-reviews,
.product-miniature .comments-note,
.product-miniature [class*='product-comments'],
.product-miniature [class*='rating'] {
  display: none !important;
}

/* Panneau Boutique plus compact : les six familles restent visibles sans
   imposer un défilement sur un écran d'ordinateur standard. */
@media (min-width: 992px) {
  .ec-boutique-panel {
    top: calc(100% + 0.3rem);
    max-height: calc(100vh - 9rem);
    padding: 0.68rem;
    overflow-y: auto;
  }

  .ec-boutique-panel__heading {
    margin-bottom: 0.48rem;
    padding: 0.05rem 0.15rem 0.5rem;
  }

  .ec-category-grid {
    gap: 0.48rem;
  }

  .ec-category-card__main {
    min-height: 4.35rem;
    gap: 0.62rem;
    padding: 0.72rem 0.78rem 0.42rem;
  }

  .ec-category-card__content {
    gap: 0.24rem;
  }

  .ec-category-card__content small {
    font-size: 0.72rem;
    line-height: 1.28;
  }

  .ec-category-card__quicklinks {
    gap: 0.25rem;
    padding: 0 0.72rem 0.62rem 2.25rem;
  }

  .ec-category-card__quicklinks a {
    min-height: 1.72rem !important;
    padding: 0.23rem 0.55rem !important;
    font-size: 0.77rem !important;
    line-height: 1.08;
  }
}

/* Galerie produit : l'objet entier et les miniatures tiennent dans la même
   zone. Le panneau d'achat adopte exactement la même hauteur. */
@media (min-width: 992px) {
  body#product .product__container {
    align-items: stretch !important;
  }

  body#product .product__left,
  body#product .product__right {
    height: clamp(38rem, calc(100vh - 12rem), 44rem) !important;
    min-height: 38rem !important;
  }

  body#product .product__left {
    display: flex;
    flex-direction: column;
  }

  body#product .product__left .product__images,
  body#product .product__images.js-images-container,
  body#product .product__carousel {
    width: 100%;
    height: 100% !important;
    min-height: 0 !important;
  }

  body#product .product__carousel {
    flex: 1 1 auto !important;
  }

  body#product .product__carousel .carousel-inner,
  body#product .product__carousel .carousel-item,
  body#product .product__carousel .carousel-item picture,
  body#product .product-cover,
  body#product .product-cover picture {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
  }

  body#product .product__carousel .carousel-item picture,
  body#product .product-cover picture,
  body#product .product-cover {
    display: grid !important;
    place-items: center !important;
  }

  body#product .product__left img,
  body#product .product__carousel img,
  body#product .product-cover img,
  body#product img.js-qv-product-cover {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
  }

  body#product .product__thumbnails {
    flex: 0 0 auto !important;
    margin-top: 0.55rem !important;
  }

  body#product .product__thumbnails-list {
    max-height: 4.85rem !important;
  }

  body#product .product__thumbnail {
    width: 4.25rem !important;
    height: 4.25rem !important;
    flex-basis: 4.25rem !important;
  }

  body#product .product__right {
    position: sticky;
    align-self: stretch !important;
    padding: clamp(1.35rem, 2.3vw, 2rem) !important;
    overflow-y: auto;
    scrollbar-width: thin;
  }

  body#product .product__name {
    max-width: 24ch;
    font-size: clamp(1.85rem, 2.65vw, 2.75rem) !important;
    line-height: 1.04;
  }

  body#product .product__description-short {
    margin-block: 0.85rem 1rem;
    font-size: 0.93rem;
    line-height: 1.5;
  }
}

/* Réassurance placée directement sous les quatre univers de la page d'accueil. */
.ec-home-reassurance {
  width: 100%;
  padding: clamp(1.15rem, 2.2vw, 1.8rem) max(1rem, calc((100vw - 90rem) / 2));
  background: #fff;
}

.ec-home-reassurance__list {
  display: grid;
  width: min(100%, 90rem);
  margin-inline: auto;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-block: 1px solid rgba(33, 55, 42, 0.1);
}

.ec-home-reassurance__item {
  display: grid;
  min-width: 0;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 0.8rem;
  align-items: center;
  padding: 1.05rem clamp(0.8rem, 1.6vw, 1.35rem);
}

.ec-home-reassurance__item + .ec-home-reassurance__item {
  border-left: 1px solid rgba(33, 55, 42, 0.1);
}

.ec-home-reassurance__icon {
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border: 1px solid rgba(189, 135, 67, 0.35);
  border-radius: 0.7rem;
  background: #f7f1e7;
  color: var(--ec-forest);
}

.ec-home-reassurance__icon svg {
  width: 1.65rem;
  height: 1.65rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ec-home-reassurance__copy {
  display: grid;
  gap: 0.18rem;
}

.ec-home-reassurance__title {
  color: var(--ec-forest-deep);
  font-size: 0.82rem;
  font-weight: 850;
  letter-spacing: 0.035em;
  line-height: 1.2;
  text-transform: uppercase;
}

.ec-home-reassurance__note {
  color: var(--ec-muted);
  font-size: 0.74rem;
  line-height: 1.35;
}

/* Icône Instagram injectée à la place de X sur les fiches produits. */
body#product .ec-instagram-share {
  display: inline-grid !important;
  place-items: center;
}

body#product .ec-instagram-share svg {
  width: 1.25rem;
  height: 1.25rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 991.98px) {
  .ec-home-reassurance__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ec-home-reassurance__item:nth-child(3) {
    border-left: 0;
  }

  .ec-home-reassurance__item:nth-child(n + 3) {
    border-top: 1px solid rgba(33, 55, 42, 0.1);
  }
}

@media (max-width: 575.98px) {
  .ec-home-reassurance__list {
    grid-template-columns: 1fr;
  }

  .ec-home-reassurance__item + .ec-home-reassurance__item {
    border-top: 1px solid rgba(33, 55, 42, 0.1);
    border-left: 0;
  }
}

/* ==========================================================
   Espace Chasse 2.0.13
   Fiche produit : image intégrale, galerie visible et colonnes équilibrées
   ========================================================== */
@media (min-width: 992px) {
  body#product .product__container {
    align-items: stretch !important;
  }

  /* Les deux panneaux conservent exactement la même hauteur. La valeur
     reste liée au viewport afin de garder l'essentiel visible sans devoir
     faire défiler la page pour changer de photographie. */
  body#product .product__left,
  body#product .product__right {
    height: clamp(41.5rem, calc(100dvh - 9rem), 44.5rem) !important;
    min-height: 41.5rem !important;
    max-height: 44.5rem !important;
  }

  body#product .product__left {
    display: flex !important;
    flex-direction: column !important;
    padding: clamp(0.8rem, 1.15vw, 1.05rem) !important;
    overflow: hidden !important;
  }

  body#product .product__left .product__images,
  body#product .product__images.js-images-container {
    display: grid !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    gap: 0.55rem !important;
  }

  body#product .product__carousel {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  body#product .product__carousel .carousel-inner,
  body#product .product__carousel .carousel-item,
  body#product .product__carousel .carousel-item picture {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
  }

  body#product .product__carousel .carousel-item.active,
  body#product .product__carousel .carousel-item-next,
  body#product .product__carousel .carousel-item-prev {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body#product .product__carousel .carousel-item picture {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
  }

  /* Le width:100% natif de Hummingbird agrandissait les visuels verticaux
     jusqu'à couper leur partie basse. On laisse désormais l'image choisir
     sa dimension dans les deux axes et on la contraint à rester entière. */
  body#product .product__carousel .carousel-item img,
  body#product .product__carousel .carousel-item img.img-fluid,
  body#product .product__carousel .carousel-item img.w-100 {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: auto !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  body#product .product__thumbnails {
    display: block !important;
    min-height: 5rem !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  body#product .product__thumbnails-list {
    display: flex !important;
    width: 100% !important;
    height: 5rem !important;
    max-height: 5rem !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 0.55rem !important;
    margin: 0 !important;
    padding: 0.1rem 0 0.2rem !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: thin;
  }

  body#product .product__thumbnail {
    width: 4.65rem !important;
    height: 4.65rem !important;
    min-width: 4.65rem !important;
    flex: 0 0 4.65rem !important;
    padding: 0.22rem !important;
  }

  body#product .product__thumbnail picture,
  body#product .product__thumbnail-image {
    width: 100% !important;
    height: 100% !important;
  }

  body#product .product__thumbnail-image {
    object-fit: contain !important;
  }

  body#product .product__right {
    align-self: stretch !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }
}

@media (min-width: 992px) and (max-height: 760px) {
  body#product .product__left,
  body#product .product__right {
    height: 39rem !important;
    min-height: 39rem !important;
    max-height: 39rem !important;
  }

  body#product .product__thumbnails,
  body#product .product__thumbnails-list {
    min-height: 4.5rem !important;
    height: 4.5rem !important;
    max-height: 4.5rem !important;
  }

  body#product .product__thumbnail {
    width: 4.1rem !important;
    height: 4.1rem !important;
    min-width: 4.1rem !important;
    flex-basis: 4.1rem !important;
  }
}

/* ==========================================================
   Espace Chasse 2.0.20 — correctifs de stabilité modulaire
   ========================================================== */

.ec-header-logo img,
.ec-header-logo .logo {
  max-width: min(var(--ec-logo-desktop-width, 200px), 12.5rem) !important;
}

.ec-mobile-nav__head {
  display: none;
}

.ec-language-selector {
  display: flex;
  align-items: center;
  color: var(--ec-white);
}

.ec-language-selector .language-selector,
.ec-language-selector .dropdown,
.ec-language-selector button,
.ec-language-selector a {
  color: var(--ec-white) !important;
}

.ec-language-selector button,
.ec-language-selector .btn {
  min-height: 2.25rem;
  padding: 0.35rem 0.55rem !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 0.74rem !important;
  font-weight: 800 !important;
  text-transform: uppercase;
}

.ec-language-selector .dropdown-menu {
  min-width: 7rem;
  padding: 0.35rem;
  border: 1px solid rgba(33, 55, 42, 0.12);
  border-radius: 0.55rem;
  background: #fff;
  box-shadow: 0 0.9rem 2rem rgba(7, 18, 11, 0.18);
}

.ec-language-selector .dropdown-menu a {
  display: block;
  padding: 0.45rem 0.6rem;
  border-radius: 0.35rem;
  color: var(--ec-forest-deep) !important;
}

.ec-language-selector .dropdown-menu a:hover,
.ec-language-selector .dropdown-menu a:focus {
  background: #f5efe6;
  color: var(--ec-bronze) !important;
}

/* Le bouton d'achat garde son pictogramme entier sur les cartes étroites. */
.product-miniature__add,
.product-miniature__form .product-miniature__add,
.product-miniature .product-add-to-cart .btn {
  overflow: visible !important;
  padding-inline: 0.65rem !important;
}

.product-miniature__add .material-icons,
.product-miniature .product-add-to-cart .material-icons {
  flex: 0 0 auto !important;
  margin-left: 0 !important;
  overflow: visible !important;
}

@media (max-width: 991.98px) {
  html.ec-mobile-menu-open,
  body.ec-mobile-menu-open {
    height: 100% !important;
    overflow: hidden !important;
  }

  body#index .ec-site-header,
  body:not(#index) .ec-site-header,
  .ec-site-header {
    position: sticky !important;
    top: 0;
    z-index: 3000;
    min-height: 4.5rem;
    background: var(--ec-forest) !important;
    box-shadow: 0 0.35rem 1rem rgba(7, 18, 11, 0.15);
  }

  .ec-site-header .container {
    width: 100%;
    max-width: none;
  }

  .ec-header-utility {
    position: absolute;
    inset: 0 0 auto auto;
    z-index: 3;
    width: auto;
    min-height: 4.5rem !important;
    background: transparent;
  }

  .ec-header-utility__inner {
    width: auto !important;
    min-height: 4.5rem !important;
    flex-wrap: nowrap !important;
    justify-content: flex-end !important;
    gap: 0.15rem !important;
    padding: 0 0.55rem !important;
  }

  .ec-header-contact {
    display: none !important;
  }

  .ec-header-utility__actions,
  .ec-header-actions {
    gap: 0.18rem !important;
    margin: 0 !important;
  }

  .ec-header-actions > *,
  .ec-search__toggle,
  .ec-language-selector {
    flex: 0 0 auto;
  }

  .ec-header-actions a,
  .ec-header-actions button,
  .ec-search__toggle {
    display: inline-grid !important;
    width: 2.15rem !important;
    height: 2.15rem !important;
    min-width: 2.15rem !important;
    place-items: center;
    padding: 0 !important;
    color: #fff !important;
    font-size: 0 !important;
  }

  .ec-header-actions .material-icons,
  .ec-header-actions svg,
  .ec-header-actions i,
  .ec-header-actions .icon,
  .ec-search__toggle svg {
    display: block !important;
    width: 1.3rem !important;
    height: 1.3rem !important;
    color: #fff !important;
    fill: currentColor !important;
    stroke: currentColor !important;
    font-size: 1.3rem !important;
    opacity: 1 !important;
  }

  .ec-header-actions .cart-products-count,
  .ec-header-actions .wishlist-products-count {
    position: absolute;
    translate: 0.72rem -0.72rem;
    display: grid !important;
    width: 1.15rem !important;
    height: 1.15rem !important;
    place-items: center;
    border-radius: 50%;
    background: var(--ec-bronze) !important;
    color: #fff !important;
    font-size: 0.65rem !important;
  }

  .ec-language-selector {
    display: none !important;
  }

  .ec-header-main,
  .ec-header-main__inner {
    min-height: 4.5rem !important;
  }

  .ec-header-main__inner {
    position: relative;
    display: block !important;
    padding: 0 !important;
  }

  .ec-header-logo {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    transform: translate(-50%, -50%);
  }

  .ec-header-logo img,
  .ec-header-logo .logo {
    width: auto !important;
    max-width: var(--ec-logo-mobile-width, 132px) !important;
    max-height: 3.65rem !important;
  }

  .ec-nav-toggle {
    position: absolute;
    top: 50%;
    left: 0.75rem;
    z-index: 4;
    display: inline-grid !important;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    padding: 0 !important;
    transform: translateY(-50%);
    font-size: 0 !important;
  }

  .ec-nav-toggle__bars,
  .ec-nav-toggle__bars::before,
  .ec-nav-toggle__bars::after {
    width: 1.55rem;
  }

  .ec-primary-nav {
    position: fixed !important;
    inset: 0 !important;
    z-index: 5000;
    display: none !important;
    width: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    background: #f8f7f3;
    color: var(--ec-forest-deep);
  }

  .ec-primary-nav.is-open {
    display: block !important;
  }

  .ec-mobile-nav__head {
    position: sticky;
    top: 0;
    z-index: 3;
    display: flex;
    min-height: 5rem;
    align-items: center;
    justify-content: space-between;
    padding: 0.65rem 1rem;
    background: var(--ec-forest);
  }

  .ec-mobile-nav__logo img,
  .ec-mobile-nav__logo .logo {
    display: block;
    width: auto !important;
    max-width: 8rem !important;
    max-height: 3.7rem !important;
    filter: none !important;
  }

  .ec-mobile-nav__close {
    display: grid;
    width: 2.6rem;
    height: 2.6rem;
    place-items: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
  }

  .ec-mobile-nav__close svg {
    width: 1.5rem;
    height: 1.5rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
  }

  .ec-primary-nav__list {
    display: grid !important;
    gap: 0 !important;
    padding: 1rem 1.2rem 2.5rem !important;
  }

  .ec-primary-nav__link {
    min-height: 3.75rem !important;
    border-bottom: 1px solid rgba(33, 55, 42, 0.12) !important;
    color: var(--ec-forest-deep) !important;
    font-size: 0.94rem !important;
  }

  .ec-primary-nav__link--promo {
    color: var(--ec-bronze) !important;
  }

  .ec-primary-nav__link--disabled {
    opacity: 0.72;
  }

  .ec-boutique-panel {
    width: 100% !important;
    margin: 0.5rem 0 1rem !important;
    padding: 0.8rem !important;
    border-radius: 0.75rem !important;
    box-shadow: none !important;
  }

  .ec-boutique-panel__heading {
    position: static;
  }

  .ec-boutique-panel__close {
    display: none !important;
  }

  .ec-category-grid {
    grid-template-columns: 1fr !important;
  }

  .ec-category-card__main {
    min-height: auto !important;
    align-items: center !important;
  }

  body#index .ec-hero__content {
    padding-top: 5.25rem !important;
  }
}

@media (max-width: 575.98px) {
  .ec-header-actions {
    max-width: 8.2rem;
  }

  .ec-header-actions > :not(#_desktop_user_info):not(#_desktop_cart):not(.ec-favorites):not([class*='wishlist']) {
    /* Les extensions inconnues ne doivent pas pousser le logo hors du centre. */
    max-width: 2.15rem;
  }

  .product-miniature__add-text {
    white-space: normal !important;
    text-align: center;
  }
}


/* ==========================================================
   Espace Chasse 2.0.21 — compatibilité Espace Chasse Suite
   ========================================================== */
.ec-native-home-section-hidden,
.ec-native-footer-hidden {
  display: none !important;
}

/* Filet de sécurité : même si le cache retarde le CSS du module produit,
   les pictogrammes de réassurance ne peuvent plus devenir géants. */
body#product .ecprod-reassurance {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: .85rem !important;
  width: min(calc(100% - 2rem), 90rem) !important;
  margin: 1rem auto 1.5rem !important;
  padding: 0 !important;
}

body#product .ecprod-reassurance article {
  display: grid !important;
  min-width: 0 !important;
  min-height: 5.25rem !important;
  grid-template-columns: 3rem minmax(0, 1fr) !important;
  align-items: center !important;
  gap: .85rem !important;
  padding: .9rem 1rem !important;
  border: 1px solid rgba(33,55,42,.12) !important;
  border-radius: 1rem !important;
  background: #fff !important;
  box-shadow: 0 .7rem 1.8rem rgba(24,45,31,.06) !important;
}

body#product .ecprod-reassurance__icon {
  display: grid !important;
  width: 3rem !important;
  height: 3rem !important;
  min-width: 3rem !important;
  min-height: 3rem !important;
  place-items: center !important;
  overflow: hidden !important;
  border: 1px solid rgba(189,135,67,.24) !important;
  border-radius: .8rem !important;
  background: #f6efe5 !important;
  color: var(--ec-forest) !important;
}

body#product .ecprod-reassurance__icon svg {
  display: block !important;
  width: 1.8rem !important;
  height: 1.8rem !important;
  max-width: 1.8rem !important;
  max-height: 1.8rem !important;
  overflow: visible !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.7 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  filter: none !important;
}

body#product .ecprod-reassurance strong,
body#product .ecprod-reassurance small {
  display: block !important;
  margin: 0 !important;
}

body#product .ecprod-reassurance strong {
  color: var(--ec-forest-deep) !important;
  font-size: .93rem !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
}

body#product .ecprod-reassurance small {
  margin-top: .2rem !important;
  color: var(--ec-muted) !important;
  font-size: .76rem !important;
  line-height: 1.35 !important;
}

/* Le nouveau footer est l'unique pied de page visible. */
body.ec-suite-footer-active #footer,
body.ec-suite-footer-active footer {
  margin-top: 0 !important;
}

/* Les liens éditoriaux restent dans la palette Espace Chasse. */
body#category .eccat a,
body#product .product__bottom a,
body#index #ec-home a {
  text-decoration-color: currentColor;
}

@media (max-width: 767.98px) {
  body#product .ecprod-reassurance {
    grid-template-columns: 1fr !important;
    width: min(calc(100% - 1rem), 90rem) !important;
  }
}


/* v2.0.25 - Sélecteur de langue compact : drapeau seul, texte masqué */
.ec-language-selector .language-selector-wrapper span,
.ec-language-selector .expand-more,
.ec-language-selector button span:not(.flag):not([class*="flag"]) {
  display: none !important;
}
.ec-language-selector button,
.ec-language-selector .dropdown-toggle {
  min-width: 0 !important;
  padding: 0.3rem 0.5rem !important;
  gap: 0.25rem !important;
}
.ec-language-selector img,
.ec-language-selector .flag {
  display: inline-block !important;
  width: 22px !important;
  height: auto !important;
  border-radius: 2px;
}
@media (max-width: 575.98px) {
  .ec-language-selector button,
  .ec-language-selector .dropdown-toggle {
    padding: 0.2rem 0.35rem !important;
  }
}

/* v2.0.25 - Mobile : réafficher le logo et le bandeau téléphone */
@media (max-width: 991.98px) {
  /* Bandeau téléphone visible en haut sur mobile */
  .ec-header-utility {
    display: block !important;
  }
  .ec-header-contact {
    display: block !important;
    width: 100%;
    text-align: center;
    font-size: 0.82rem;
  }
  /* Logo visible dans la barre principale mobile */
  #_desktop_logo.ec-header-logo {
    display: block !important;
    order: 2;
    margin: 0 auto;
  }
  #_desktop_logo.ec-header-logo img,
  #_desktop_logo.ec-header-logo .logo {
    max-width: 8.5rem !important;
    max-height: 4.5rem !important;
  }
  .ec-nav-toggle { order: 1; }
  .ec-header-utility__actions { order: 3; }
}

/* v2.0.26 - Sélecteur de langue custom compact (drapeau uniquement) */
.ec-lang { position: relative; display: inline-flex; }
.ec-lang__toggle {
  display: inline-flex; align-items: center; gap: 0.3rem;
  padding: 0.35rem 0.5rem; border: 1px solid rgba(255,255,255,0.25);
  border-radius: 0.4rem; background: transparent; color: var(--ec-white);
  cursor: pointer; line-height: 1;
}
.ec-lang__toggle:hover { border-color: var(--ec-bronze-soft); }
.ec-lang__flag { display: block; width: 22px; height: auto; border-radius: 2px; }
.ec-lang__caret { opacity: 0.8; }
.ec-lang__menu {
  position: absolute; top: calc(100% + 0.4rem); right: 0; z-index: 1800;
  min-width: 10rem; margin: 0; padding: 0.35rem; list-style: none;
  background: #fff; border-radius: 0.5rem; box-shadow: 0 0.8rem 2rem rgba(0,0,0,0.25);
  visibility: hidden; opacity: 0; transform: translateY(-0.3rem);
  transition: opacity 150ms ease, transform 150ms ease, visibility 150ms ease;
}
.ec-lang.is-open .ec-lang__menu { visibility: visible; opacity: 1; transform: translateY(0); }
.ec-lang__item {
  display: flex; align-items: center; gap: 0.55rem;
  padding: 0.5rem 0.6rem; border-radius: 0.35rem;
  color: var(--ec-ink, #1c1f1c); text-decoration: none; font-size: 0.9rem;
}
.ec-lang__item:hover { background: #f2efe8; }
.ec-lang__item.is-active { font-weight: 700; }
.ec-lang__item img { border-radius: 2px; }
@media (max-width: 575.98px) {
  .ec-lang__toggle { padding: 0.3rem 0.4rem; }
}

/* v2.0.26 - Ajustements mobiles : logo centré, téléphone compact */
@media (max-width: 991.98px) {
  /* Logo TOUJOURS visible et centré dans la barre principale */
  #_desktop_logo.ec-header-logo,
  .ec-header-main .ec-header-logo {
    display: block !important;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin: 0;
    z-index: 1;
  }
  .ec-header-main__inner { position: relative; min-height: 4.6rem; }
  #_desktop_logo.ec-header-logo img,
  #_desktop_logo.ec-header-logo .logo {
    max-width: 7.5rem !important;
    max-height: 4rem !important;
  }
  /* Le burger et les actions restent aux extrémités, au-dessus du logo */
  .ec-nav-toggle { position: relative; z-index: 2; }
  .ec-header-utility__actions { position: relative; z-index: 2; }
  /* Téléphone compact : plus petit, sur une ligne */
  .ec-header-contact {
    font-size: 0.72rem !important;
    padding: 0.25rem 0.5rem !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}
@media (max-width: 575.98px) {
  .ec-header-contact { font-size: 0.68rem !important; }
  #_desktop_logo.ec-header-logo img,
  #_desktop_logo.ec-header-logo .logo { max-width: 6.5rem !important; }
}

/* v2.0.27 - Sélecteur de langue natif (<select>) rendu compact */
/* Le select natif ne peut pas afficher de drapeau : on le rend petit et discret. */
.ps-languageselector,
.ec-language-selector .ps-languageselector { display: inline-flex; align-items: center; }
.ps-languageselector .js-language-selector,
select.js-language-selector,
.ec-header-actions .js-language-selector {
  width: auto !important;
  min-width: 0 !important;
  max-width: 5.5rem;
  padding: 0.3rem 1.6rem 0.3rem 0.6rem !important;
  height: auto !important;
  font-size: 0.82rem !important;
  color: var(--ec-white) !important;
  background-color: transparent !important;
  border: 1px solid rgba(255,255,255,0.28) !important;
  border-radius: 0.4rem !important;
  cursor: pointer;
  background-position: right 0.4rem center !important;
  background-size: 12px 10px !important;
}
.ps-languageselector .js-language-selector option,
select.js-language-selector option {
  color: #1c1f1c;
  background: #fff;
}
.ps-languageselector .js-language-selector:hover,
select.js-language-selector:hover { border-color: var(--ec-bronze-soft) !important; }
@media (max-width: 575.98px) {
  .ps-languageselector .js-language-selector,
  select.js-language-selector,
  .ec-header-actions .js-language-selector {
    max-width: 4.2rem;
    font-size: 0.75rem !important;
    padding: 0.25rem 1.3rem 0.25rem 0.45rem !important;
  }
}

/* v2.0.27 - Logo mobile : forcer l'affichage de la barre principale et du logo */
@media (max-width: 991.98px) {
  .ec-header-main { display: block !important; }
  .ec-header-main__inner {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    position: relative;
    min-height: 4.4rem;
    flex-wrap: nowrap;
  }
  #_desktop_logo.ec-header-logo {
    display: block !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
    z-index: 1;
    width: auto !important;
  }
  #_desktop_logo.ec-header-logo img,
  #_desktop_logo.ec-header-logo .logo,
  #_desktop_logo.ec-header-logo svg {
    max-width: var(--ec-logo-mobile-width, 76px) !important;
    height: auto !important;
    display: block;
  }
  .ec-header-main .ec-nav-toggle { position: relative; z-index: 2; }
  .ec-header-main .ec-primary-nav { z-index: 3; }
}

/* ===========================================================================
   Espace Chasse V2.4 (2.0.28)
   =========================================================================== */

/* --- Sélecteur de langue custom -------------------------------------------
   Le <select> natif reste dans le DOM (source de vérité + fallback sans JS),
   mais il est masqué visuellement. Le composant .ec-lang le remplace.
   Bootstrap ne peut plus l'atteindre : plus de bataille de cascade layer. */
select.js-language-selector.ec-lang__native-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.ec-lang { position: relative; display: inline-block; }

.ec-lang__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  height: 2rem;
  padding: 0 0.5rem;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 0.35rem;
  background: transparent;
  color: var(--ec-white, #fff);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1;
  cursor: pointer;
  transition: border-color 150ms ease;
}
.ec-lang__toggle:hover,
.ec-lang__toggle:focus-visible { border-color: var(--ec-bronze-soft, #d3ab75); }

.ec-lang__flag { display: block; flex: 0 0 auto; width: 20px; height: 14px; overflow: hidden; border-radius: 2px; box-shadow: 0 0 0 1px rgba(255,255,255,.25); }
.ec-lang__flag svg { display: block; width: 100%; height: 100%; }
.ec-lang__code { display: block; }
.ec-lang__caret { flex: 0 0 auto; opacity: 0.75; }

.ec-lang__menu {
  position: absolute;
  top: calc(100% + 0.4rem);
  right: 0;
  z-index: 1800;
  min-width: 9.5rem;
  margin: 0;
  padding: 0.3rem;
  list-style: none;
  background: #fff;
  border-radius: 0.45rem;
  box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.25);
  visibility: hidden;
  opacity: 0;
  transform: translateY(-0.25rem);
  transition: opacity 140ms ease, transform 140ms ease, visibility 140ms ease;
}
.ec-lang.is-open .ec-lang__menu { visibility: visible; opacity: 1; transform: translateY(0); }
.ec-lang__menu li { margin: 0; padding: 0; list-style: none; }

.ec-lang__item {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  width: 100%;
  padding: 0.5rem 0.6rem;
  border: 0;
  border-radius: 0.3rem;
  background: transparent;
  color: var(--ec-ink, #1c1f1c);
  font-size: 0.85rem;
  text-align: left;
  cursor: pointer;
}
.ec-lang__item:hover, .ec-lang__item:focus-visible { background: #f2efe8; }
.ec-lang__item.is-active { font-weight: 700; }
.ec-lang__item .ec-lang__flag { box-shadow: 0 0 0 1px rgba(0,0,0,.15); }

/* --- Header mobile : hauteur de la barre principale ------------------------
   Constat inspection : .ec-header-main EST dans le DOM (Hummingbird ne le
   supprime pas). Le logo restait invisible et le burger débordait parce que
   --ec-header-main-height (6.2rem) n'est défini que dans :root, sans
   déclinaison mobile : la barre s'écrasait. On lui redonne une hauteur. */
@media (max-width: 991.98px) {
  .ec-site-header .ec-header-main {
    display: block !important;
    min-height: 4.6rem !important;
    height: auto !important;
    overflow: visible !important;
  }
  .ec-site-header .ec-header-main__inner {
    display: flex !important;
    position: relative;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 4.6rem !important;
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
    flex-wrap: nowrap !important;
    overflow: visible !important;
  }
  /* Burger : à gauche, dans le flux, plus de débordement */
  .ec-site-header .ec-header-main .ec-nav-toggle {
    position: relative !important;
    top: auto !important;
    order: 0;
    flex: 0 0 auto;
    margin: 0 !important;
    z-index: 2;
  }
  /* Logo : centré, toujours visible */
  .ec-site-header #_desktop_logo.ec-header-logo {
    display: block !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
    z-index: 1;
    width: auto !important;
    max-width: 60% !important;
  }
  .ec-site-header #_desktop_logo.ec-header-logo img,
  .ec-site-header #_desktop_logo.ec-header-logo .logo,
  .ec-site-header #_desktop_logo.ec-header-logo svg {
    display: block !important;
    width: auto !important;
    max-width: var(--ec-logo-mobile-width, 76px) !important;
    height: auto !important;
    max-height: 3.6rem !important;
  }
}

/* --- V2.4 : téléphone dans le menu mobile ouvert, à droite du logo --------- */
.ec-mobile-nav__contact { display: none; }
@media (max-width: 991.98px) {
  .ec-mobile-nav__head {
    display: flex !important;
    align-items: center;
    gap: .75rem;
    flex-wrap: nowrap;
  }
  .ec-mobile-nav__logo { flex: 0 0 auto; }
  .ec-mobile-nav__contact {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    font-size: .72rem;
    line-height: 1.3;
  }
  .ec-mobile-nav__contact .ps-contactinfo,
  .ec-mobile-nav__contact #_desktop_ps_contactinfo { margin: 0; padding: 0; }
  .ec-mobile-nav__contact a {
    color: var(--ec-white, #fff);
    text-decoration: none;
    word-break: break-word;
  }
  .ec-mobile-nav__contact a:hover { color: var(--ec-bronze-soft, #d3ab75); }
  .ec-mobile-nav__close { flex: 0 0 auto; margin-left: auto; }
  /* Le téléphone est désormais dans le menu : on l'allège dans la barre du haut */
  .ec-site-header .ec-header-utility .ec-header-contact { font-size: .68rem !important; }
}

/* ===========================================================================
   Espace Chasse V2.5 (2.0.29)
   =========================================================================== */

/* --- Sélecteur de langue : échapper à la grille d'icônes du header ---------
   .ec-header-actions impose inline-grid + 2.15rem + font-size:0 à ses boutons.
   Constat calculé : .ec-lang__toggle -> font-size 0px, width 34.4px.
   On ré-autorise explicitement le composant. */
.ec-header-actions .ec-lang,
.ec-header-utility__actions .ec-lang {
  display: inline-block !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  font-size: .78rem !important;
}
.ec-header-actions .ec-lang__toggle,
.ec-header-utility__actions .ec-lang__toggle,
.ec-mobile-nav__lang .ec-lang__toggle {
  display: inline-flex !important;
  grid-template-columns: none !important;
  width: auto !important;
  min-width: 0 !important;
  height: 2rem !important;
  padding: 0 .5rem !important;
  gap: .35rem !important;
  font-size: .78rem !important;
  place-items: center !important;
}
.ec-header-actions .ec-lang__code,
.ec-mobile-nav__lang .ec-lang__code {
  display: block !important;
  font-size: .78rem !important;
  color: var(--ec-white, #fff) !important;
}
.ec-header-actions .ec-lang__flag,
.ec-mobile-nav__lang .ec-lang__flag {
  display: block !important;
  width: 20px !important;
  height: 14px !important;
  min-width: 20px !important;
  font-size: 0 !important;
}
.ec-header-actions .ec-lang__flag svg,
.ec-mobile-nav__lang .ec-lang__flag svg { width: 100% !important; height: 100% !important; }
.ec-header-actions .ec-lang__caret,
.ec-mobile-nav__lang .ec-lang__caret { width: 8px !important; height: 5px !important; min-width: 0 !important; }
.ec-lang__menu .ec-lang__item { font-size: .85rem !important; width: 100% !important; height: auto !important; }
.ec-lang__menu .ec-lang__flag { width: 20px !important; height: 14px !important; }

/* --- Sélecteur de langue dans le menu mobile ------------------------------- */
.ec-mobile-nav__lang { display: none; }
@media (max-width: 991.98px) {
  /* Retiré de la barre du haut : il vit désormais dans le menu */
  .ec-site-header .ec-header-utility__actions .ec-language-selector { display: none !important; }
  .ec-mobile-nav__lang {
    display: block;
    padding: .85rem 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
  }
  .ec-mobile-nav__lang .ec-lang__menu {
    right: auto;
    left: 0;
  }
  /* Téléphone retiré de la barre du haut (il est dans le menu) */
  .ec-site-header .ec-header-utility .ec-header-contact { display: none !important; }
}

/* --- Logo barre principale : rendu explicite (le helper {renderLogo} de PS
   ne s'exécute qu'une fois et était consommé par le menu burger). ----------- */
.ec-site-header #_desktop_logo.ec-header-logo .ec-header-logo__img {
  display: block;
  width: auto;
  max-width: var(--ec-logo-desktop-width, 100px);
  height: auto;
}
@media (max-width: 991.98px) {
  .ec-site-header .ec-header-main__inner {
    display: flex !important;
    position: relative;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 4.6rem !important;
    padding-top: .5rem;
    padding-bottom: .5rem;
    flex-wrap: nowrap !important;
  }
  .ec-site-header #_desktop_logo.ec-header-logo {
    display: block !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
    z-index: 1;
    width: auto !important;
  }
  .ec-site-header #_desktop_logo.ec-header-logo .ec-header-logo__img {
    max-width: var(--ec-logo-mobile-width, 76px) !important;
    max-height: 3.4rem !important;
  }
  .ec-site-header .ec-header-main .ec-nav-toggle {
    position: relative !important;
    left: auto !important;
    align-self: center !important;
    z-index: 2;
  }
}

/* ===========================================================================
   Espace Chasse V2.6 (2.0.30) — correctifs validés en console
   =========================================================================== */

/* --- Drapeau retiré (choix Liza) : code court seul (FR / EN / DE / ES) ----- */
.ec-lang__flag { display: none !important; }
.ec-lang__item-code {
  flex: 0 0 auto;
  min-width: 1.9rem;
  font-weight: 700;
  font-size: .72rem;
  letter-spacing: .04em;
  color: #69716b;
}
.ec-lang__item.is-active .ec-lang__item-code { color: #bd8743; }

/* --- Logo barre principale : injecté par JS -------------------------------- */
.ec-site-header #_desktop_logo.ec-header-logo .ec-header-logo__img {
  display: block;
  width: auto;
  max-width: var(--ec-logo-desktop-width, 100px);
  height: auto;
}

/* --- Header mobile : burger en bas (option A retenue par Liza) -------------
   Valeurs relevées : .ec-header-main -> height 73.59px ; burger -> height 40px.
   Le burger n'est PAS aligné au logo : il est volontairement posé en bas. */
@media (max-width: 991.98px) {
  .ec-site-header .ec-header-main__inner {
    display: flex !important;
    position: relative;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 4.6rem !important;
    flex-wrap: nowrap !important;
  }
  .ec-site-header .ec-header-main .ec-nav-toggle {
    position: relative !important;
    top: auto !important;
    align-self: flex-end !important;
    margin: 0 0 .4rem 0 !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 2;
  }
  .ec-site-header #_desktop_logo.ec-header-logo {
    display: block !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
    z-index: 1;
    width: auto !important;
  }
  .ec-site-header #_desktop_logo.ec-header-logo .ec-header-logo__img {
    max-width: var(--ec-logo-mobile-width, 76px) !important;
    max-height: 3.4rem !important;
  }
}

/* ===========================================================================
   Espace Chasse V2.7 — Sélecteur de langue dans le menu burger
   ---------------------------------------------------------------------------
   Inséré par JS après .ec-primary-nav__list (sous PROMOTIONS).
   Fond du menu mesuré : rgb(248, 247, 243). Le blanc de la V2.5 y était
   invisible : on passe en vert foncé sur fond clair, actif en vert plein.
   =========================================================================== */
.ec-lang-mobile {
  display: flex;
  gap: 0.5rem;
  padding: 1rem 1.25rem;
  border-top: 1px solid rgba(33, 55, 42, 0.15);
}

.ec-lang-mobile__btn {
  background: transparent;
  border: 1px solid var(--ec-green, #21372a);
  color: var(--ec-green, #21372a);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  padding: 0.4rem 0.8rem;
  border-radius: 3px;
  cursor: pointer;
  line-height: 1;
  transition: background-color 0.12s ease, color 0.12s ease;
}

.ec-lang-mobile__btn.is-active {
  background: var(--ec-green, #21372a);
  color: var(--ec-cream, #f5f2eb);
}

.ec-lang-mobile__btn:active {
  background: var(--ec-green, #21372a);
  color: var(--ec-cream, #f5f2eb);
}

/* Le composant .ec-lang du header (V2.4) n'a rien à faire dans le menu. */
.ec-mobile-nav .ec-lang { display: none; }

/* ===========================================================================
   Espace Chasse V2.7 — Retour visuel à l'appui dans le menu mobile
   ---------------------------------------------------------------------------
   POURQUOI : sur mobile il n'y a pas de survol. La règle desktop existante
   (.ec-primary-nav__link:hover/:focus -> var(--ec-bronze-soft)) ne se
   déclenche pas au doigt de façon fiable. :active se déclenche à l'appui.
   Le tap-highlight par défaut du navigateur est retiré, sinon il masque
   l'effet sous un rectangle gris.
   =========================================================================== */
@media (max-width: 767.98px) {
  .ec-mobile-nav a,
  .ec-mobile-nav .ec-primary-nav__link,
  .ec-mobile-nav button {
    -webkit-tap-highlight-color: transparent;
    transition: color 0.12s ease, background-color 0.12s ease, border-color 0.12s ease;
  }

  .ec-mobile-nav .ec-primary-nav__link:active {
    color: var(--ec-bronze-soft, #d3ab75) !important;
    background-color: rgba(33, 55, 42, 0.06) !important;
  }

  .ec-mobile-nav a:active {
    color: var(--ec-bronze-soft, #d3ab75) !important;
  }

  .ec-mobile-nav a:active .ec-cat-card__title,
  .ec-mobile-nav a:active h3,
  .ec-mobile-nav a:active h4 {
    color: var(--ec-bronze-soft, #d3ab75) !important;
  }
}

/* ===========================================================================
   Espace Chasse V2.8 — Sélecteur de langue : mobile uniquement
   ---------------------------------------------------------------------------
   Bug V2.7 : les boutons FR/EN/DE/ES étaient insérés après
   .ec-primary-nav__list, qui existe AUSSI en desktop. Ils apparaissaient donc
   dans le header d'accueil. Le JS les retire désormais au-dessus de 991.98px ;
   cette règle est la ceinture de sécurité.
   =========================================================================== */
@media (min-width: 992px) {
  .ec-lang-mobile { display: none !important; }
}

/* ===========================================================================
   Espace Chasse V2.8 — Champ de recherche déplacé dans le panneau (mobile)
   ---------------------------------------------------------------------------
   Le form #ps_searchbar est déplacé par JS depuis l'offcanvas (qui ne s'ouvre
   jamais faute de Bootstrap JS) vers .ec-search__panel.
   box-sizing indispensable : sans lui le padding s'ajoute au 100% et le champ
   déborde (mesuré : droite 467 pour un panneau finissant à 458).
   Le padding gauche laisse la place à l'icône loupe posée en absolu.
   =========================================================================== */
@media (max-width: 767.98px) {
  .ec-search__panel {
    padding: 0.6rem !important;
    box-sizing: border-box !important;
  }

  .ec-search__panel .ec-search__form--moved,
  .ec-search__panel .ps-searchbar__container,
  .ec-search__panel .js-search-widget {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  .ec-search__panel input[name="s"] {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    padding: 0.7rem 2.4rem 0.7rem 2.6rem !important;
    background: #fff !important;
    border: 1px solid #d8d3c7 !important;
    border-radius: 4px !important;
    color: var(--ec-ink, #1c1f1c) !important;
    font-size: 0.95rem !important;
  }
}

/* ===========================================================================
   Espace Chasse V3.0.2 — Galerie produit mobile et vrai zoom
   =========================================================================== */

/* Toute l'image principale ouvre désormais la galerie agrandie. */
body#product .product__carousel .carousel-item.active img {
  cursor: zoom-in;
}

/* Sur mobile/tablette, la galerie doit occuper une vraie surface carrée.
   L'ancien correctif JavaScript appliquait width:auto à toutes les tailles
   d'écran et réduisait fortement le visuel principal. */
@media (max-width: 991.98px) {
  body#product .product__left {
    padding: .55rem !important;
    overflow: visible !important;
  }

  body#product .product__left .product__images,
  body#product .product__images.js-images-container {
    display: grid !important;
    width: 100% !important;
    grid-template-rows: minmax(0, auto) auto !important;
    gap: .55rem !important;
  }

  body#product .product__carousel {
    display: block !important;
    width: 100% !important;
    height: clamp(21rem, calc(100vw - 1.1rem), 31rem) !important;
    min-height: clamp(21rem, calc(100vw - 1.1rem), 31rem) !important;
    overflow: hidden !important;
    border-radius: .7rem !important;
    background: #fff !important;
  }

  body#product .product__carousel .carousel-inner,
  body#product .product__carousel .carousel-item,
  body#product .product__carousel .carousel-item picture {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
  }

  body#product .product__carousel .carousel-item.active,
  body#product .product__carousel .carousel-item-next,
  body#product .product__carousel .carousel-item-prev,
  body#product .product__carousel .carousel-item picture {
    align-items: center !important;
    justify-content: center !important;
  }

  body#product .product__carousel .carousel-item.active,
  body#product .product__carousel .carousel-item-next,
  body#product .product__carousel .carousel-item-prev {
    display: flex !important;
  }

  body#product .product__carousel .carousel-item picture {
    display: flex !important;
    overflow: hidden !important;
  }

  body#product .product__carousel .carousel-item img,
  body#product .product__carousel .carousel-item img.img-fluid,
  body#product .product__carousel .carousel-item img.w-100 {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: auto !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  body#product .product__thumbnails {
    min-height: 4.6rem !important;
    margin: 0 !important;
    overflow: hidden !important;
  }

  body#product .product__thumbnails-list {
    display: flex !important;
    width: 100% !important;
    height: 4.6rem !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: .45rem !important;
    margin: 0 !important;
    padding: .1rem 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: thin;
  }

  body#product .product__thumbnail {
    width: 4.25rem !important;
    height: 4.25rem !important;
    min-width: 4.25rem !important;
    flex: 0 0 4.25rem !important;
    padding: .18rem !important;
  }

  body#product .product__thumbnail picture,
  body#product .product__thumbnail-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
  }
}

@media (max-width: 575.98px) {
  body#product .product__carousel {
    height: calc(100vw - 1rem) !important;
    min-height: 20rem !important;
    max-height: 27rem !important;
  }
}

/* Galerie plein écran et zoom réel. Le premier clic/tap agrandit à 200 % ;
   le second revient à l'image entière. Le conteneur devient défilable pour
   permettre l'examen des détails. */
body#product .product-images-modal .modal-dialog {
  width: 100vw !important;
  max-width: 100vw !important;
  height: 100dvh !important;
  margin: 0 !important;
}

body#product .product-images-modal .modal-content {
  height: 100dvh !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
}

body#product .product-images-modal .modal-header {
  position: absolute !important;
  top: .75rem !important;
  right: .75rem !important;
  z-index: 20 !important;
  padding: 0 !important;
  border: 0 !important;
}

body#product .product-images-modal .btn-close {
  width: 2.6rem !important;
  height: 2.6rem !important;
  padding: .65rem !important;
  border-radius: 999px !important;
  background-color: rgba(255,255,255,.92) !important;
  box-shadow: 0 .4rem 1.3rem rgba(0,0,0,.14) !important;
}

body#product .product-images-modal__body {
  display: block !important;
  height: 100dvh !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body#product .product-images-modal__carousel,
body#product .product-images-modal__carousel .carousel-inner,
body#product .product-images-modal__carousel .carousel-item {
  width: 100% !important;
  height: 100% !important;
}

body#product .product-images-modal__carousel .carousel-item.active,
body#product .product-images-modal__carousel .carousel-item-next,
body#product .product-images-modal__carousel .carousel-item-prev {
  display: block !important;
}

body#product .product-images-modal__carousel .carousel-item picture {
  display: flex !important;
  width: 100% !important;
  height: 100% !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 1rem !important;
  overflow: auto !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

body#product .product-images-modal__carousel .carousel-item img {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: calc(100dvh - 2rem) !important;
  margin: auto !important;
  object-fit: contain !important;
  cursor: zoom-in !important;
  user-select: none;
  -webkit-user-drag: none;
}

body#product .product-images-modal__carousel picture.ec-product-zoom-active {
  display: block !important;
  padding: 0 !important;
}

body#product .product-images-modal__carousel img.ec-product-image--zoomed {
  width: 200% !important;
  height: auto !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  cursor: zoom-out !important;
}

.ec-product-zoom-hint {
  position: absolute;
  top: 1rem;
  left: 50%;
  z-index: 15;
  max-width: calc(100% - 8rem);
  padding: .48rem .8rem;
  transform: translateX(-50%);
  border-radius: 999px;
  background: rgba(25,43,32,.9);
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-align: center;
  pointer-events: none;
}


/* ===========================================================================
   Espace Chasse V3.0.6 — Galerie produit HD et panneau d'achat naturel
   =========================================================================== */

/* Le panneau d'achat suit désormais le défilement normal de la page.
   On conserve le sticky desktop sans enfermer les informations dans une
   seconde zone de défilement. */
@media (min-width: 992px) {
  body#product .product__container {
    align-items: start !important;
  }

  body#product .product__right {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    overscroll-behavior: auto !important;
    scrollbar-width: auto !important;
  }
}

/* La modale occupe tout l'écran. L'image non zoomée utilise une vraie surface
   carrée liée au viewport, afin d'éviter le petit visuel centré hérité des
   styles natifs du carrousel. */
body#product .product-images-modal {
  background: rgba(244, 243, 238, .98) !important;
}

body#product .product-images-modal__carousel .carousel-item picture {
  position: relative !important;
  display: grid !important;
  width: 100% !important;
  height: 100% !important;
  place-items: center !important;
  padding: clamp(.75rem, 2vw, 1.5rem) !important;
  overflow: auto !important;
  overscroll-behavior: contain !important;
  scrollbar-width: thin !important;
  touch-action: pan-x pan-y !important;
}

body#product .product-images-modal__carousel .carousel-item img {
  display: block !important;
  width: min(92vw, calc(100dvh - 4rem)) !important;
  height: min(92vw, calc(100dvh - 4rem)) !important;
  max-width: none !important;
  max-height: none !important;
  margin: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
  cursor: zoom-in !important;
}

body#product .product-images-modal__carousel picture.ec-product-zoom-active {
  display: block !important;
  padding: 0 !important;
  cursor: grab !important;
}

body#product .product-images-modal__carousel picture.ec-product-zoom-active.ec-product-pan-active {
  cursor: grabbing !important;
  user-select: none !important;
}

body#product .product-images-modal__carousel img.ec-product-image--zoomed {
  width: auto !important;
  height: auto !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  cursor: grab !important;
  touch-action: none !important;
}

body#product .product-images-modal__carousel .carousel-control-prev,
body#product .product-images-modal__carousel .carousel-control-next {
  top: 50% !important;
  bottom: auto !important;
  z-index: 18 !important;
  width: 3rem !important;
  height: 3rem !important;
  transform: translateY(-50%) !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(25, 54, 39, .9) !important;
  opacity: 1 !important;
  box-shadow: 0 .35rem 1.1rem rgba(0, 0, 0, .18) !important;
}

body#product .product-images-modal__carousel .carousel-control-prev {
  left: clamp(.65rem, 2vw, 1.5rem) !important;
}

body#product .product-images-modal__carousel .carousel-control-next {
  right: clamp(.65rem, 2vw, 1.5rem) !important;
}

body#product .product-images-modal__carousel .carousel-control-prev-icon,
body#product .product-images-modal__carousel .carousel-control-next-icon {
  width: 1.25rem !important;
  height: 1.25rem !important;
  filter: brightness(0) invert(1) !important;
}

@media (max-width: 575.98px) {
  body#product .product-images-modal__carousel .carousel-item picture {
    padding: 3.3rem .5rem 1rem !important;
  }

  body#product .product-images-modal__carousel .carousel-item img {
    width: min(96vw, calc(100dvh - 5rem)) !important;
    height: min(96vw, calc(100dvh - 5rem)) !important;
  }

  body#product .product-images-modal__carousel .carousel-control-prev,
  body#product .product-images-modal__carousel .carousel-control-next {
    width: 2.6rem !important;
    height: 2.6rem !important;
  }

  .ec-product-zoom-hint {
    top: .8rem !important;
    max-width: calc(100% - 7rem) !important;
    font-size: .68rem !important;
  }
}
