/**
 * M46 Parts v2 — thème enfant Hummingbird (Bootstrap 5)
 * Direction : atelier vintage / mécanique brute
 */

/* -------------------------------------------------------------------------- */
/* Fonts                                                                       */
/* -------------------------------------------------------------------------- */
@font-face {
  font-family: "Barlow Condensed";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/BarlowCondensed-SemiBold.woff2") format("woff2");
}

@font-face {
  font-family: "Barlow Condensed";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/BarlowCondensed-Bold.woff2") format("woff2");
}

/* -------------------------------------------------------------------------- */
/* Tokens                                                                      */
/* -------------------------------------------------------------------------- */
:root {
  --m46-yellow: #ffce00;
  --m46-yellow-dark: #e0b400;
  --m46-black: #141310;
  --m46-ink: #1d1b17;
  --m46-paper: #f6f4ef;
  --m46-paper-2: #ece9e1;
  --m46-steel: #6b675e;
  --m46-steel-line: #d8d4ca;
  --m46-helper: #3f3c36; /* helpers / commentaires — contraste AA+ sur papier */
  --m46-red: #c1121f;
  --m46-success: #2e7d32;

  --color-bg: var(--m46-paper);
  --color-surface: #ffffff;
  --color-text: var(--m46-ink);
  --color-text-muted: var(--m46-steel);
  --color-primary: var(--m46-yellow);
  --color-on-primary: var(--m46-black);
  --color-border: var(--m46-steel-line);

  --font-display: "Barlow Condensed", "Oswald", sans-serif;
  --font-body: "Inter", system-ui, -apple-system, sans-serif;

  /* Sidebar filter rail (Proposition A) */
  --m46-filter-rail-bg: #ffffff;
  --m46-filter-rail-border: var(--color-border);
  --m46-filter-rail-accent: 2px solid var(--m46-yellow);
  --m46-filter-rail-pad-x: 0.85rem;
  --m46-filter-rail-pad-y: 0.95rem;
  --m46-filter-gap-section: 0.55rem;
  --m46-filter-row-min: 2.35rem;
  --m46-filter-hit: 2.5rem;
  --m46-filter-indent: 0.75rem;
  --m46-filter-label-size: 0.7rem;
  --m46-filter-label-track: 0.05em;
  --m46-filter-radius: 0;
  --m46-filter-motion: 160ms ease-out;
  --m46-filter-chip-bg: var(--m46-paper);
  --m46-filter-chip-active-bg: var(--m46-paper);
  --m46-filter-chip-active-fg: var(--m46-black);
  --m46-filter-width: 15.5rem;
  --scroll-padding-top: 6.5rem;
  --m46-filter-sticky-top: var(--scroll-padding-top, 6.5rem);

  --fs-h1: clamp(2rem, 4vw, 3rem);
  --fs-h2: clamp(1.5rem, 3vw, 2.25rem);
  --fs-h3: 1.35rem;
  --fs-body: 1rem;
  --fs-small: 0.875rem;
  --lh-tight: 1.05;
  --lh-body: 1.6;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-12: 3rem;
  --space-16: 4rem;

  /* Air entre bas du breadcrumb (ou header) et 1er contenu — ~1.75rem */
  --m46-content-inset-top: 1.75rem;

  --radius-sm: 3px;
  --radius-md: 6px;
  --radius-plate: 10px;
  --shadow-card: 0 2px 6px rgba(20, 19, 16, 0.08);
  --shadow-card-hover: 0 8px 24px rgba(20, 19, 16, 0.16);
  --border-strong: 2px solid var(--m46-black);

  /* Focus clavier WCAG — noir #141310 (jaune sur jaune/papier ~1:1) */
  --m46-focus-ring: 3px solid var(--m46-black);
  --m46-focus-offset: 3px;

  /* Bootstrap 5 theme bridge */
  --bs-body-bg: var(--m46-paper);
  --bs-body-color: var(--m46-ink);
  --bs-primary: var(--m46-yellow);
  --bs-primary-rgb: 255, 206, 0;
  --bs-dark: var(--m46-black);
  --bs-border-color: var(--m46-steel-line);
  --bs-border-radius: var(--radius-sm);
  --bs-link-color: var(--m46-ink);
  --bs-link-hover-color: var(--m46-yellow-dark);
  --bs-font-sans-serif: var(--font-body);
}

/* -------------------------------------------------------------------------- */
/* Base                                                                        */
/* -------------------------------------------------------------------------- */
body {
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--color-text);
  background-color: var(--color-bg);
}

h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4, .h5,
.display-1, .display-2, .display-3,
.product__name, .product-miniature__title,
.page-header h1, .section-title, .featured-products .title {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: var(--lh-tight);
  font-weight: 700;
  color: var(--m46-ink);
}

a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.btn-primary:focus-visible,
.menu-toggle:focus-visible,
.skip-link:focus-visible,
.skip-links a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: var(--m46-focus-ring);
  outline-offset: var(--m46-focus-offset);
}

.skip-link:focus,
.skip-link:focus-visible,
.skip-links a:focus,
.skip-links a:focus-visible {
  outline: 3px solid #141310;
  outline-offset: 3px;
}

/* -------------------------------------------------------------------------- */
/* Motifs                                                                      */
/* -------------------------------------------------------------------------- */
.m46-plate {
  display: inline-block;
  background: var(--m46-yellow);
  border: var(--border-strong);
  border-radius: var(--radius-plate);
  color: var(--m46-black);
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.3em 0.75em;
  line-height: 1.2;
}

.m46-hazard {
  height: 6px;
  width: 100%;
  background: repeating-linear-gradient(
    -45deg,
    var(--m46-yellow),
    var(--m46-yellow) 10px,
    var(--m46-black) 10px,
    var(--m46-black) 20px
  );
}

.m46-blueprint {
  background-color: var(--m46-black);
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
  background-size: 24px 24px;
}

/* -------------------------------------------------------------------------- */
/* Boutons BS5                                                                 */
/* -------------------------------------------------------------------------- */
.btn-primary {
  --bs-btn-bg: var(--m46-yellow);
  --bs-btn-border-color: var(--m46-black);
  --bs-btn-color: var(--m46-black);
  --bs-btn-hover-bg: var(--m46-yellow-dark);
  --bs-btn-hover-border-color: var(--m46-black);
  --bs-btn-hover-color: var(--m46-black);
  --bs-btn-active-bg: var(--m46-yellow-dark);
  --bs-btn-active-border-color: var(--m46-black);
  --bs-btn-active-color: var(--m46-black);
  --bs-btn-disabled-bg: var(--m46-paper-2);
  --bs-btn-disabled-border-color: var(--m46-steel-line);
  --bs-btn-disabled-color: var(--m46-steel);
  --bs-btn-border-width: 2px;
  --bs-btn-border-radius: var(--radius-sm);
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  transition: transform 0.12s ease, background-color 0.12s ease;
}

.btn-primary:hover {
  transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
  .btn-primary,
  .btn-primary:hover {
    transform: none;
    transition: background-color 0.12s ease, border-color 0.12s ease;
  }
}

.btn-outline-primary,
.btn-outline-dark {
  --bs-btn-border-width: 2px;
  --bs-btn-border-radius: var(--radius-sm);
  --bs-btn-color: var(--m46-ink);
  --bs-btn-border-color: var(--m46-black);
  --bs-btn-hover-bg: var(--m46-yellow);
  --bs-btn-hover-border-color: var(--m46-black);
  --bs-btn-hover-color: var(--m46-black);
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
}

/* -------------------------------------------------------------------------- */
/* Header / top bar — une ligne propre, alignée                                */
/* -------------------------------------------------------------------------- */
.header-top.m46-topbar,
.header-top {
  --m46-topbar-h: 2.15rem;
  --m46-topbar-gap: 1.35rem;
  background: #0f0e0c;
  color: rgba(255, 255, 255, 0.7);
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  padding: 0.55rem 0;
  font-size: 0.75rem;
  line-height: 1;
}

.m46-topbar__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  min-height: var(--m46-topbar-h);
}

.m46-topbar__left,
.m46-topbar__right {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  min-width: 0;
  min-height: var(--m46-topbar-h);
}

.m46-topbar__left {
  gap: 0.75rem;
}

.m46-topbar__right {
  margin-left: auto;
  gap: var(--m46-topbar-gap);
}

/* Chaque slot Nav2 = même hauteur / alignement */
.m46-topbar__right > *,
.m46-topbar .header-top__right > *,
.m46-topbar #_desktop_ps_languageselector,
.m46-topbar #_desktop_ps_currencyselector,
.m46-topbar #_desktop_ps_customersignin,
.m46-topbar #_desktop_ps_shoppingcart,
.m46-topbar .ps-languageselector,
.m46-topbar .ps-currencyselector,
.m46-topbar .ps-customersignin,
.m46-topbar .ps-shoppingcart,
.m46-topbar .header-block,
.m46-topbar .m46-lang,
.m46-topbar .m46-lang__wrap,
.m46-topbar .m46-currency,
.m46-topbar .m46-currency__wrap {
  display: flex !important;
  align-items: center;
  align-self: center;
  margin: 0;
  min-height: var(--m46-topbar-h);
}

.m46-topbar a,
.header-top a {
  color: rgba(255, 255, 255, 0.78);
  text-decoration: none;
}

.m46-topbar a:hover,
.header-top a:hover {
  color: var(--m46-yellow);
}

/* Contrôles cliquables : même rythme typo / hauteur */
.m46-topbar .header-block__action-btn,
.m46-topbar .m46-lang__btn,
.m46-topbar .m46-currency__btn {
  display: inline-flex !important;
  align-items: center;
  gap: 0.4rem;
  min-height: var(--m46-topbar-h);
  height: var(--m46-topbar-h);
  margin: 0;
  padding: 0 0.15rem;
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.82) !important;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  white-space: nowrap;
}

.m46-topbar .header-block__action-btn:hover,
.m46-topbar .header-block__action-btn:hover .header-block__title,
.m46-topbar .header-block__action-btn:hover .material-icons,
.m46-topbar .m46-lang__btn:hover,
.m46-topbar .m46-lang__btn:focus,
.m46-topbar .m46-lang__btn.show,
.m46-topbar .m46-currency__btn:hover,
.m46-topbar .m46-currency__btn:focus,
.m46-topbar .m46-currency__btn.show {
  color: var(--m46-yellow) !important;
}

.m46-topbar .header-block__title {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: 1;
  color: inherit !important;
}

.m46-topbar .header-block__icon,
.m46-topbar .header-block__action-btn .material-icons,
.m46-topbar .ps-shoppingcart .material-icons,
.m46-topbar .ps-customersignin .material-icons {
  font-size: 1.05rem !important;
  line-height: 1 !important;
  width: 1.05rem;
  height: 1.05rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: inherit !important;
}

.m46-topbar .header-block__badge {
  position: relative;
  top: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.05rem;
  height: 1.05rem;
  margin-left: 0.15rem;
  padding: 0 0.28rem;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;
  border-width: 0;
  vertical-align: middle;
}

.m46-topbar .header-block__action-btn {
  justify-content: center;
}

.m46-topbar .ps-shoppingcart .header-block__action-btn,
.m46-topbar .ps-customersignin .header-block__action-btn {
  gap: 0.35rem;
}

/* Compte connecté — dropdown papier (pas de texte blanc hérité de la topbar) */
.m46-topbar .ps-customersignin .dropdown-menu,
.header-top .ps-customersignin .dropdown-menu,
#_desktop_ps_customersignin .dropdown-menu,
#_mobile_ps_customersignin .dropdown-menu {
  min-width: 14rem;
  padding: 0.4rem 0;
  margin-top: 0.35rem !important;
  background: var(--m46-paper) !important;
  border: 2px solid var(--m46-black);
  border-radius: 0;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.25);
  color: var(--m46-black);
}

.m46-topbar .ps-customersignin .dropdown-menu .dropdown-item,
.header-top .ps-customersignin .dropdown-menu .dropdown-item,
#_desktop_ps_customersignin .dropdown-menu .dropdown-item,
#_mobile_ps_customersignin .dropdown-menu .dropdown-item {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  padding: 0.5rem 0.9rem;
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.2;
  color: var(--m46-black) !important;
  background: transparent !important;
  text-decoration: none;
}

.m46-topbar .ps-customersignin .dropdown-menu .dropdown-item .material-icons,
.header-top .ps-customersignin .dropdown-menu .dropdown-item .material-icons,
#_desktop_ps_customersignin .dropdown-menu .dropdown-item .material-icons,
#_mobile_ps_customersignin .dropdown-menu .dropdown-item .material-icons {
  font-size: 1.1rem !important;
  width: 1.25rem;
  height: 1.25rem;
  color: var(--m46-black) !important;
  opacity: 0.85;
}

.m46-topbar .ps-customersignin .dropdown-menu .dropdown-item:hover,
.m46-topbar .ps-customersignin .dropdown-menu .dropdown-item:focus,
.m46-topbar .ps-customersignin .dropdown-menu .dropdown-item:active,
.m46-topbar .ps-customersignin .dropdown-menu .dropdown-item.active,
.header-top .ps-customersignin .dropdown-menu .dropdown-item:hover,
.header-top .ps-customersignin .dropdown-menu .dropdown-item:focus,
#_desktop_ps_customersignin .dropdown-menu .dropdown-item:hover,
#_desktop_ps_customersignin .dropdown-menu .dropdown-item:focus,
#_mobile_ps_customersignin .dropdown-menu .dropdown-item:hover,
#_mobile_ps_customersignin .dropdown-menu .dropdown-item:focus {
  background: var(--m46-yellow) !important;
  color: var(--m46-black) !important;
}

.m46-topbar .ps-customersignin .dropdown-menu .dropdown-item:hover .material-icons,
.m46-topbar .ps-customersignin .dropdown-menu .dropdown-item:focus .material-icons,
#_desktop_ps_customersignin .dropdown-menu .dropdown-item:hover .material-icons,
#_mobile_ps_customersignin .dropdown-menu .dropdown-item:hover .material-icons {
  color: var(--m46-black) !important;
  opacity: 1;
}

.m46-topbar .ps-customersignin .dropdown-menu .dropdown-divider,
.header-top .ps-customersignin .dropdown-menu .dropdown-divider,
#_desktop_ps_customersignin .dropdown-menu .dropdown-divider,
#_mobile_ps_customersignin .dropdown-menu .dropdown-divider {
  margin: 0.35rem 0;
  border-top: 1px solid var(--m46-steel-line);
  opacity: 1;
}

.m46-topbar__phone {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: var(--m46-topbar-h);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.03em;
  color: rgba(255, 255, 255, 0.78) !important;
  white-space: nowrap;
}

.m46-topbar__phone .material-icons {
  font-size: 0.95rem !important;
  color: rgba(255, 206, 0, 0.8) !important;
}

.m46-topbar__sep {
  width: 1px;
  height: 0.85rem;
  background: rgba(255, 255, 255, 0.18);
  flex: 0 0 auto;
}

.m46-topbar__tagline {
  color: rgba(255, 255, 255, 0.42);
  font-size: 0.72rem;
  line-height: 1.25;
  white-space: normal;
}

/* Devise — même rythme que FR (texte + chevron collés) */
.m46-currency__btn {
  gap: 0.2rem !important;
  width: auto !important;
  max-width: none !important;
  justify-content: flex-start !important;
  padding: 0 0.1rem !important;
}

.m46-currency__btn::after,
.m46-lang__btn::after {
  content: "" !important;
  display: inline-block !important;
  width: 0.35em !important;
  height: 0.35em !important;
  margin: 0 0 0.12em 0.2em !important;
  border: solid currentColor !important;
  border-width: 0 1.5px 1.5px 0 !important;
  transform: rotate(45deg);
  opacity: 0.6;
  vertical-align: middle;
  flex: 0 0 auto;
}

.m46-currency__code {
  text-transform: uppercase;
  line-height: 1;
}

.m46-currency__menu {
  min-width: 4.5rem;
  padding: 0.35rem 0;
  margin-top: 0.35rem !important;
  background: var(--m46-paper);
  border: 2px solid var(--m46-black);
  border-radius: 0;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.25);
}

.m46-currency__item {
  display: flex !important;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.85rem;
  font-family: var(--font-display);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--m46-black) !important;
}

.m46-currency__item:hover,
.m46-currency__item:focus,
.m46-currency__item.active {
  background: var(--m46-yellow) !important;
  color: var(--m46-black) !important;
}

/* Langue : drapeau + FR / EN */
.m46-lang__btn {
  gap: 0.4rem;
  padding: 0 0.1rem !important;
}

.m46-lang__flag {
  display: block;
  width: 18px;
  height: 12px;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 1px;
  flex: 0 0 auto;
  background: rgba(255, 255, 255, 0.08);
}

.m46-lang__code {
  text-transform: uppercase;
  line-height: 1;
}

.m46-lang__menu {
  min-width: 6.5rem;
  padding: 0.35rem 0;
  margin-top: 0.35rem !important;
  background: var(--m46-paper);
  border: 2px solid var(--m46-black);
  border-radius: 0;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.25);
}

.m46-lang__item {
  display: flex !important;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.75rem !important;
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--m46-ink) !important;
  background: transparent !important;
}

.m46-lang__item .m46-lang__flag {
  border-color: rgba(20, 19, 16, 0.2);
}

.m46-lang__item:hover,
.m46-lang__item:focus,
.m46-lang__item.active {
  background: var(--m46-yellow) !important;
  color: var(--m46-black) !important;
}

/* Header : desktop défile ; mobile/tablette barre logo collée en haut */
#header.header,
#header.js-sticky-header {
  position: relative;
  top: auto;
  z-index: 1030;
}

@media (max-width: 991.98px) {
  html {
    --m46-header-sticky-h: calc(3.95rem + env(safe-area-inset-top, 0px));
    --scroll-padding-top: var(--m46-header-sticky-h);
    scroll-padding-top: var(--scroll-padding-top);
  }

  /*
   * fixed (pas sticky) : Hummingbird CCC pose .header{position:sticky;max-width:100vw}
   * puis #header{position:relative}. sticky reste fragile (iOS, cache CCC 7j).
   * z-index 1030 < #mobileMenu 1055 — l’offcanvas passe au-dessus.
   */
  #header.header,
  #header.js-sticky-header {
    position: fixed !important;
    top: 0 !important;
    left: 0;
    right: 0;
    width: 100%;
    max-width: 100%;
    z-index: 1030;
    overflow: visible;
    background: var(--m46-black);
    transform: none;
    filter: none;
  }

  body {
    padding-top: var(--m46-header-sticky-h);
  }

  .header-bottom.m46-header {
    position: relative;
    top: auto;
    z-index: auto;
    background: var(--m46-black);
    padding-top: max(0.4rem, env(safe-area-inset-top, 0px));
    border-radius: 0;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  html {
    --m46-header-sticky-h: calc(6.5rem + env(safe-area-inset-top, 0px));
    --scroll-padding-top: var(--m46-header-sticky-h);
    scroll-padding-top: var(--scroll-padding-top);
  }
}

.header-bottom.m46-header,
.header-bottom {
  background: var(--m46-black);
  color: #fff;
  border-bottom: 2px solid var(--m46-yellow);
  padding: 1.15rem 0 1.2rem;
}

.header-bottom a,
.header-bottom .header-block__action-btn,
.header-bottom .material-icons {
  color: #fff;
}

.header-bottom__logo,
.header-bottom .logo,
#header .logo {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  padding: 0 !important;
}

.header-bottom__logo img,
.header-bottom .logo img,
#header .logo img {
  max-height: 62px !important;
  width: auto !important;
  height: auto !important;
  background: transparent !important;
  mix-blend-mode: normal;
  filter: none;
}

.header-bottom__h1 {
  margin: 0;
  line-height: 1;
  font-size: inherit;
}

.m46-category-header--paged {
  margin-bottom: 1rem;
}

.header-block__badge {
  background: var(--m46-yellow) !important;
  color: var(--m46-black) !important;
  border: 1px solid var(--m46-black);
  font-weight: 700;
}

/* -------------------------------------------------------------------------- */
/* Header = une ligne : logo | nav | recherche                                 */
/* (plus de barre jaune orpheline sous le logo)                                */
/* -------------------------------------------------------------------------- */
.header-bottom__row {
  flex-wrap: nowrap;
  align-items: center;
  column-gap: 1.1rem;
  max-width: 100%;
  min-height: 3.5rem;
}

.header-bottom__logo {
  order: 1;
  flex: 0 1 auto;
  min-width: 0;
}

.m46-header .ps-mainmenu--desktop {
  order: 2;
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

/* Styles non-display (hors layer) */
.m46-header .ps-mainmenu__desktop {
  width: 100%;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/*
 * Bootstrap utilities sont en @layer : override display ICI.
 * < lg : burger · ≥ lg : nav texte (4 primaires + Plus via JS)
 */
@layer utilities {
  @media (max-width: 991.98px) {
    .m46-header .ps-mainmenu__desktop,
    .m46-header .ps-mainmenu__desktop.d-none,
    .m46-header .ps-mainmenu__desktop.d-lg-block,
    .m46-header .ps-mainmenu__desktop.d-xl-block {
      display: none !important;
    }

    .m46-header .ps-mainmenu__mobile-toggle {
      display: flex !important;
    }

    /* Lean header: logo gauche → cluster droite (search, panier, burger) */
    .m46-header__logo,
    .header-bottom__logo {
      order: 1 !important;
      flex: 0 0 auto !important;
      margin-right: auto !important;
      margin-left: 0 !important;
    }

    .m46-header .ps-searchbar--mobile {
      order: 2 !important;
      margin-left: 0 !important;
      flex: 0 0 auto !important;
    }

    .m46-header__action--cart,
    #_mobile_ps_shoppingcart {
      order: 3 !important;
      flex: 0 0 auto !important;
    }

    .m46-header .ps-mainmenu--desktop {
      order: 4 !important;
      flex: 0 0 auto !important;
      margin-left: 0.15rem;
    }

    .m46-header #_desktop_ps_searchbar {
      display: none !important;
    }
  }

  @media (min-width: 992px) {
    .m46-header .ps-mainmenu__desktop,
    .m46-header .ps-mainmenu__desktop.d-lg-block {
      display: block !important;
    }

    .m46-header .ps-mainmenu__mobile-toggle {
      display: none !important;
    }

    .m46-header .ps-mainmenu--desktop {
      order: 2 !important;
      flex: 1 1 auto !important;
      min-width: 0;
    }

    .m46-header #_desktop_ps_searchbar {
      order: 3 !important;
      margin-left: 0.5rem !important;
      flex: 0 1 14rem !important;
      max-width: 16rem;
    }

    .m46-header__logo,
    .header-bottom__logo {
      order: 1 !important;
      margin-right: 0 !important;
    }
  }

  @media (min-width: 1200px) {
    .m46-header #_desktop_ps_searchbar {
      flex: 0 1 16rem !important;
      max-width: 18rem;
    }
  }

  @media (min-width: 1400px) {
    .m46-header #_desktop_ps_searchbar {
      flex: 0 1 18rem !important;
      max-width: 20rem;
    }
  }
}

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

/* Ne jamais compresser les libellés (sinon chevauchement nowrap) */
.m46-header .ps-mainmenu__tree-item {
  flex: 0 0 auto;
  min-width: max-content;
}

.m46-header .ps-mainmenu__tree-item-wrapper {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
}

.m46-header .ps-mainmenu__tree-link {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 0.5rem !important;
  font-family: var(--font-display);
  font-size: clamp(0.74rem, 0.85vw, 0.86rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  text-decoration: none !important;
  white-space: nowrap;
  color: rgba(255, 255, 255, 0.92) !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0;
  transition: color 0.15s ease, border-color 0.15s ease;
}

/* Dropdown "Plus" (secondaires) */
.m46-header .m46-nav-plus {
  position: relative;
}

.m46-header .m46-nav-plus__menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  min-width: 14rem;
  margin: 0;
  padding: 0.65rem 0 0.45rem;
  list-style: none;
  background: var(--m46-paper, #f6f4ef);
  border: 2px solid var(--m46-black, #141310);
  border-top: 3px solid var(--m46-yellow, #ffce00);
  box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.28);
  z-index: 1040;
  display: none;
}

.m46-header .m46-nav-plus__menu::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -0.75rem;
  height: 0.75rem;
}

.m46-header .m46-nav-plus.is-open .m46-nav-plus__menu,
.m46-header .m46-nav-plus:hover .m46-nav-plus__menu,
.m46-header .m46-nav-plus:focus-within .m46-nav-plus__menu {
  display: block;
}

.m46-header .m46-nav-plus__menu a {
  display: block;
  padding: 0.55rem 1rem;
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none !important;
  color: var(--m46-black, #141310) !important;
  white-space: nowrap;
}

.m46-header .m46-nav-plus__menu a:hover {
  background: var(--m46-yellow, #ffce00);
}

.m46-header .m46-nav-plus__toggle {
  display: inline-flex !important;
  align-items: center;
  gap: 0.15rem;
  padding: 0.4rem 0.45rem !important;
  font-family: var(--font-display);
  font-size: clamp(0.72rem, 0.85vw, 0.84rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.92) !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 2px solid transparent !important;
}

.m46-header .m46-nav-plus.is-open .m46-nav-plus__toggle,
.m46-header .m46-nav-plus:hover .m46-nav-plus__toggle {
  color: var(--m46-yellow, #ffce00) !important;
  border-bottom-color: var(--m46-yellow, #ffce00) !important;
}

.m46-header .ps-mainmenu__tree-dropdown-toggle {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 0.2rem !important;
  color: rgba(255, 255, 255, 0.85) !important;
  background: transparent !important;
  border: 0 !important;
}

.m46-header .ps-mainmenu__tree-item:hover .ps-mainmenu__tree-dropdown-toggle,
.m46-header .ps-mainmenu__tree-dropdown-toggle:hover,
.m46-header .ps-mainmenu__tree-dropdown-toggle[aria-expanded="true"] {
  color: var(--m46-yellow) !important;
}

.m46-header .ps-mainmenu__tree-link:hover,
.m46-header .ps-mainmenu__tree-item:hover .ps-mainmenu__tree-link,
.m46-header .ps-mainmenu__tree-item.active .ps-mainmenu__tree-link {
  color: var(--m46-yellow) !important;
  background: transparent !important;
  border-bottom-color: var(--m46-yellow) !important;
}

/* Burger mobile / tablette (< xl) */
.m46-header .ps-mainmenu__mobile-toggle {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  margin-left: 0;
}

.m46-header .ps-mainmenu__mobile-toggle .menu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  min-width: 2.5rem;
  min-height: 2.5rem;
  padding: 0.35rem 0.55rem;
  background: var(--m46-yellow) !important;
  color: var(--m46-black) !important;
  border: 2px solid var(--m46-black) !important;
  border-radius: var(--radius-plate);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.35);
  text-decoration: none;
}

.m46-header .ps-mainmenu__mobile-toggle .menu-toggle .material-icons {
  color: var(--m46-black) !important;
  font-size: 1.4rem;
}

/* NOTE A11Y: content "Menu" hardcodé EN — le bouton n’a pas de label HTML
   (seulement aria-label). Si un autre agent ajoute un span {l} dans ps_mainmenu.tpl,
   retirer ces ::after (ici + tablette 768–1199). */
.m46-header .ps-mainmenu__mobile-toggle .menu-toggle::after {
  content: "Menu";
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.8rem;
}

.m46-header .ps-mainmenu__mobile-toggle .menu-toggle:focus-visible {
  outline: 3px solid #141310;
  outline-offset: 3px;
}

/* Search à droite, même ligne */
.m46-header #_desktop_ps_searchbar,
.m46-header .ps-searchbar {
  order: 3;
  flex: 0 1 14rem;
  max-width: 16rem;
  min-width: 0;
  margin-left: 0;
  width: auto;
}

.m46-header #_desktop_ps_searchbar {
  margin-left: auto;
}

/* Formulaire : conteneur relatif pour loupe / clear en absolute (style Hummingbird) */
.ps-searchbar__form {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.ps-searchbar__magnifier {
  position: absolute;
  top: 50%;
  left: 0.65rem;
  z-index: 2;
  transform: translateY(-50%);
  font-size: 1.15rem !important;
  line-height: 1;
  pointer-events: none;
  color: inherit;
}

.ps-searchbar__clear {
  position: absolute;
  top: 50%;
  right: 0.35rem;
  z-index: 2;
  transform: translateY(-50%);
}

.m46-header .ps-searchbar__form {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.m46-header .ps-searchbar input,
.m46-header .ps-searchbar .form-control,
.header-bottom .ps-searchbar input,
.header-bottom .ps-searchbar .form-control {
  min-height: 2.35rem;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  padding-block: 0.35rem;
  /* Loupe à gauche + clear à droite : ne jamais chevaucher le placeholder */
  padding-inline: 2.35rem 2.1rem;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.22);
  color: #fff;
  caret-color: #fff;
  border-radius: 0;
  font-size: clamp(0.68rem, 0.55rem + 0.35vw, 0.82rem);
  line-height: 1.25;
}

.m46-header .ps-searchbar input::placeholder,
.header-bottom .ps-searchbar input::placeholder {
  color: rgba(255, 255, 255, 0.55);
  font-size: inherit;
  opacity: 1;
}

.m46-header .ps-searchbar__magnifier {
  font-size: 1.05rem !important;
  left: 0.55rem;
}

@media (min-width: 1200px) {
  .m46-header #_desktop_ps_searchbar,
  .m46-header .ps-searchbar {
    flex-basis: 16rem;
    max-width: 18rem;
  }

  .m46-header .ps-searchbar input,
  .m46-header .ps-searchbar .form-control,
  .header-bottom .ps-searchbar input,
  .header-bottom .ps-searchbar .form-control {
    min-height: 2.45rem;
    font-size: clamp(0.74rem, 0.6rem + 0.28vw, 0.88rem);
  }
}

@media (min-width: 1400px) {
  .m46-header #_desktop_ps_searchbar,
  .m46-header .ps-searchbar {
    flex-basis: 18rem;
    max-width: 20rem;
  }
}

/* Focus : rester lisible (évite fond blanc BS + texte blanc header) */
.m46-header .ps-searchbar input:focus,
.m46-header .ps-searchbar .form-control:focus,
.header-bottom .ps-searchbar input:focus,
.header-bottom .ps-searchbar .form-control:focus {
  background: rgba(255, 255, 255, 0.14);
  border-color: var(--m46-yellow);
  color: #fff;
  box-shadow: 0 0 0 2px rgba(255, 206, 0, 0.35);
}

.m46-header .ps-searchbar__magnifier,
.m46-header .ps-searchbar__clear,
.m46-header .ps-searchbar__clear .material-icons {
  color: rgba(255, 255, 255, 0.75) !important;
}

.m46-header .ps-searchbar__clear:hover,
.m46-header .ps-searchbar__clear:hover .material-icons {
  color: var(--m46-yellow) !important;
  background: transparent;
}

.m46-header .ps-searchbar button {
  min-height: 2.5rem;
  background: var(--m46-yellow);
  color: var(--m46-black);
  border: 2px solid var(--m46-black);
}

/*
 * Dropdown résultats — fond clair dans header noir.
 * Sans ça : .header-bottom a { color:#fff } → blanc sur blanc (surtout tablette).
 */
.m46-header .ps-searchbar__dropdown,
.header-bottom .ps-searchbar__dropdown,
.ps-searchbar__dropdown {
  background: #fff !important;
  border: 1px solid var(--color-border) !important;
  border-top: 2px solid var(--m46-yellow) !important;
  color: var(--m46-ink) !important;
  box-shadow: 0 10px 24px rgba(20, 19, 16, 0.18);
}

.m46-header .ps-searchbar__dropdown a,
.m46-header .ps-searchbar__result-link,
.m46-header .ps-searchbar__result-name,
.header-bottom .ps-searchbar__dropdown a,
.header-bottom .ps-searchbar__result-link,
.header-bottom .ps-searchbar__result-name,
.ps-searchbar__result-link,
.ps-searchbar__result-name {
  color: var(--m46-ink) !important;
}

.m46-header .ps-searchbar__result-link:hover,
.m46-header .ps-searchbar__result-link:focus,
.header-bottom .ps-searchbar__result-link:hover,
.header-bottom .ps-searchbar__result-link:focus,
.ps-searchbar__result-link:hover,
.ps-searchbar__result-link:focus {
  background: var(--m46-paper) !important;
  color: var(--m46-ink) !important;
}

.m46-header .ps-searchbar__result-link:hover .ps-searchbar__result-name,
.m46-header .ps-searchbar__result-link:focus .ps-searchbar__result-name {
  color: var(--m46-ink) !important;
}

/* Offcanvas recherche (mobile + tablette) — panneau papier, texte sombre */
.m46-search-trigger {
  min-width: 2.5rem;
  min-height: 2.5rem;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  cursor: pointer;
}

#searchCanvas.ps-searchbar__offcanvas,
.ps-searchbar__offcanvas.m46-search-canvas,
.ps-searchbar__offcanvas,
body > #searchCanvas {
  background: var(--m46-paper) !important;
  color: var(--m46-ink);
  border-bottom: 3px solid var(--m46-yellow);
  z-index: 1060 !important;
}

#searchCanvas .offcanvas-header,
.m46-search-canvas__header,
.ps-searchbar__offcanvas .offcanvas-header {
  background: var(--m46-paper) !important;
  color: var(--m46-ink);
  gap: 0.65rem;
  padding: 0.85rem 1rem;
  align-items: center;
}

#m46_mobile_searchbar,
#searchCanvas .ps-searchbar__container {
  flex: 1 1 auto;
  min-width: 0;
}

#searchCanvas .ps-searchbar,
#m46_mobile_searchbar .ps-searchbar,
#_mobile_ps_searchbar .ps-searchbar {
  min-width: 0;
  width: 100%;
  margin: 0;
}

#searchCanvas .ps-searchbar input,
#searchCanvas .ps-searchbar .form-control,
#m46_mobile_searchbar .ps-searchbar input,
#m46_mobile_searchbar .form-control,
#_mobile_ps_searchbar .ps-searchbar input,
#_mobile_ps_searchbar .form-control {
  background: #fff !important;
  border: 2px solid var(--m46-black) !important;
  color: var(--m46-ink) !important;
  caret-color: var(--m46-ink);
  min-height: 2.75rem;
  font-size: clamp(0.9rem, 0.85rem + 0.4vw, 1rem);
  padding-inline: 2.5rem 2.25rem;
}

#searchCanvas .ps-searchbar__magnifier,
#m46_mobile_searchbar .ps-searchbar__magnifier,
#_mobile_ps_searchbar .ps-searchbar__magnifier {
  left: 0.7rem;
  font-size: 1.25rem !important;
}

#searchCanvas .ps-searchbar input:focus,
#m46_mobile_searchbar .ps-searchbar input:focus,
#_mobile_ps_searchbar .ps-searchbar input:focus {
  background: #fff !important;
  color: var(--m46-ink) !important;
  border-color: var(--m46-black) !important;
  box-shadow: 0 0 0 2px rgba(255, 206, 0, 0.45);
}

#searchCanvas .ps-searchbar input::placeholder,
#m46_mobile_searchbar .ps-searchbar input::placeholder,
#_mobile_ps_searchbar .ps-searchbar input::placeholder {
  color: var(--m46-steel) !important;
  opacity: 1;
}

#searchCanvas .ps-searchbar__magnifier,
#searchCanvas .ps-searchbar__clear,
#searchCanvas .ps-searchbar__clear .material-icons,
#m46_mobile_searchbar .ps-searchbar__magnifier,
#m46_mobile_searchbar .ps-searchbar__clear,
#m46_mobile_searchbar .material-icons,
#_mobile_ps_searchbar .ps-searchbar__magnifier,
#_mobile_ps_searchbar .ps-searchbar__clear,
#_mobile_ps_searchbar .material-icons {
  color: var(--m46-ink) !important;
}

#searchCanvas .m46-search-canvas__cancel,
#searchCanvas .btn-link {
  color: var(--m46-ink) !important;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  flex: 0 0 auto;
  padding: 0.35rem 0.25rem;
}

#searchCanvas .ps-searchbar__dropdown,
#m46_mobile_searchbar .ps-searchbar__dropdown,
#_mobile_ps_searchbar .ps-searchbar__dropdown {
  position: static !important;
  width: 100% !important;
  max-width: none !important;
  margin-top: 0.65rem;
  box-shadow: none;
  border: 1px solid var(--color-border) !important;
  border-top: 2px solid var(--m46-yellow) !important;
}

/* Tablette header : logo | icônes — pas de champ compressé */
@media (min-width: 768px) and (max-width: 991.98px) {
  .m46-header #_desktop_ps_searchbar {
    display: none !important;
  }

  .ps-searchbar--mobile {
    display: flex !important;
  }

  .m46-search-canvas__header {
    padding: 1rem 1.25rem;
  }

  #searchCanvas .ps-searchbar input,
  #m46_mobile_searchbar .ps-searchbar input,
  #_mobile_ps_searchbar .ps-searchbar input {
    min-height: 3.15rem;
    font-size: 1.05rem;
  }

  .header-bottom__logo img,
  .m46-header__logo img,
  #header .logo img {
    max-height: 40px !important;
    max-width: 140px !important;
  }
}

/* -------------------------------------------------------------------------- */
/* Menu mobile — feuille plein écran, drill-down (redesign preserve)           */
/* -------------------------------------------------------------------------- */
#mobileMenu.ps-mainmenu--mobile,
.ps-mainmenu.ps-mainmenu--mobile.offcanvas {
  --m46-sheet-pad-x: 1.15rem;
  position: fixed !important;
  inset: 0 !important;
  width: 100% !important;
  max-width: none !important;
  height: 100dvh !important;
  max-height: 100dvh !important;
  z-index: 1055 !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: var(--m46-paper) !important;
  border: 0;
  box-shadow: none;
  visibility: hidden;
  transform: translateX(-100%);
  transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.32s ease;
}

#mobileMenu.ps-mainmenu--mobile::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--m46-yellow);
  z-index: 4;
  pointer-events: none;
}

#mobileMenu.ps-mainmenu--mobile.show,
#mobileMenu.ps-mainmenu--mobile.showing,
.ps-mainmenu.ps-mainmenu--mobile.offcanvas.show,
.ps-mainmenu.ps-mainmenu--mobile.offcanvas.showing {
  visibility: visible;
  transform: none;
}

/* Header : logo + close, papier */
#mobileMenu .m46-mobile-menu__header,
#mobileMenu .offcanvas-header.m46-mobile-menu__header {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: calc(0.55rem + env(safe-area-inset-top, 0px)) var(--m46-sheet-pad-x) 0.5rem;
  min-height: 3.5rem;
  background: var(--m46-paper);
  border-bottom: 1px solid var(--m46-steel-line);
}

#mobileMenu .m46-mobile-menu__brand {
  display: flex;
  align-items: center;
  min-width: 0;
  flex: 1 1 auto;
  text-decoration: none;
}

#mobileMenu .m46-mobile-menu__logo {
  display: block;
  height: 1.7rem;
  width: auto;
  max-width: 8.5rem;
  object-fit: contain;
}

#mobileMenu .m46-mobile-menu__wordmark {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.45rem;
  letter-spacing: 0.02em;
  line-height: 1;
  text-transform: uppercase;
  color: var(--m46-black);
}

#mobileMenu .m46-mobile-menu__actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex: 0 0 auto;
}

#mobileMenu .m46-mobile-menu__search,
#mobileMenu .m46-mobile-menu__close {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  min-width: 44px;
  min-height: 44px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--m46-steel-line);
  border-radius: 0;
  background: transparent;
  color: var(--m46-ink);
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

#mobileMenu .m46-mobile-menu__search .material-icons,
#mobileMenu .m46-mobile-menu__close .material-icons {
  font-size: 1.35rem;
  line-height: 1;
  color: inherit;
}

#mobileMenu .m46-mobile-menu__search:hover,
#mobileMenu .m46-mobile-menu__search:focus-visible,
#mobileMenu .m46-mobile-menu__close:hover,
#mobileMenu .m46-mobile-menu__close:focus-visible {
  background: var(--m46-yellow);
  border-color: var(--m46-yellow);
  color: var(--m46-black);
  outline: none;
}

#mobileMenu .m46-mobile-menu__search:active,
#mobileMenu .m46-mobile-menu__close:active {
  transform: scale(0.98);
}

/* Langue / devise — barre haute (hors zone Safari iOS) */
#mobileMenu .m46-mobile-menu__toolbar {
  flex-shrink: 0;
  overflow: visible;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.55rem var(--m46-sheet-pad-x) 0.65rem;
  background: var(--m46-paper);
  border-bottom: 1px solid var(--m46-steel-line);
  position: relative;
  z-index: 40;
  isolation: isolate;
}

#mobileMenu .m46-mobile-menu__selects {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  width: 100%;
  gap: 0;
  margin: 0;
}

#mobileMenu #_mobile_ps_languageselector,
#mobileMenu .m46-mobile-menu__selects > #_mobile_ps_languageselector {
  order: 1;
}

#mobileMenu #_mobile_ps_currencyselector,
#mobileMenu .m46-mobile-menu__selects > #_mobile_ps_currencyselector {
  order: 2;
}

#mobileMenu .m46-mobile-menu__selects > div,
#mobileMenu .m46-mobile-menu__select,
#mobileMenu .m46-mobile-menu__selects .m46-lang__wrap,
#mobileMenu .m46-mobile-menu__selects .m46-currency__wrap,
#mobileMenu .m46-mobile-menu__selects .ps-languageselector,
#mobileMenu .m46-mobile-menu__selects .ps-currencyselector {
  display: flex;
  align-items: stretch;
  margin: 0;
  position: relative;
  min-width: 0;
}

#mobileMenu .m46-mobile-menu__select + .m46-mobile-menu__select,
#mobileMenu .m46-mobile-menu__selects > div + div {
  margin-left: 0.65rem;
  padding-left: 0.65rem;
  border-left: 1px solid var(--m46-steel-line);
}

#mobileMenu .m46-mobile-menu__toolbar a,
#mobileMenu .m46-mobile-menu__toolbar {
  color: var(--m46-ink);
}

/* Switchers langue / devise : segments, pas de dropdown */
#mobileMenu .m46-mobile-menu__toolbar .m46-lang__btn,
#mobileMenu .m46-mobile-menu__toolbar .m46-currency__btn {
  display: none !important;
}

#mobileMenu .m46-mobile-menu__toolbar .m46-lang__flag {
  display: none !important;
}

#mobileMenu .m46-mobile-menu__toolbar .m46-lang__menu.dropdown-menu,
#mobileMenu .m46-mobile-menu__toolbar .m46-currency__menu.dropdown-menu {
  display: flex !important;
  flex-direction: row;
  align-items: stretch;
  position: static !important;
  inset: auto !important;
  transform: none !important;
  float: none;
  margin: 0 !important;
  min-width: 0;
  width: 100%;
  padding: 0;
  gap: 0;
  background: transparent;
  border: 1px solid var(--m46-steel-line);
  box-shadow: none;
  overflow: hidden;
}

#mobileMenu .m46-mobile-menu__toolbar .m46-lang__menu > li,
#mobileMenu .m46-mobile-menu__toolbar .m46-currency__menu > li {
  display: flex;
  flex: 1 1 0;
  margin: 0;
  padding: 0;
  list-style: none;
  min-width: 0;
}

#mobileMenu .m46-mobile-menu__toolbar .m46-lang__item,
#mobileMenu .m46-mobile-menu__toolbar .m46-currency__item {
  box-sizing: border-box;
  display: flex !important;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  width: 100%;
  min-width: 2.85rem;
  min-height: 2.5rem;
  padding: 0.45rem 0.6rem !important;
  border: 0 !important;
  border-right: 1px solid var(--m46-steel-line) !important;
  background: transparent !important;
  color: var(--m46-steel) !important;
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none !important;
  line-height: 1;
}

#mobileMenu .m46-mobile-menu__toolbar .m46-lang__menu > li:last-child .m46-lang__item,
#mobileMenu .m46-mobile-menu__toolbar .m46-currency__menu > li:last-child .m46-currency__item {
  border-right: 0 !important;
}

#mobileMenu .m46-mobile-menu__toolbar .m46-lang__item.active,
#mobileMenu .m46-mobile-menu__toolbar .m46-lang__item[aria-current="true"],
#mobileMenu .m46-mobile-menu__toolbar .m46-currency__item.active,
#mobileMenu .m46-mobile-menu__toolbar .m46-currency__item[aria-current="true"] {
  background: var(--m46-yellow) !important;
  color: var(--m46-black) !important;
}

#mobileMenu .m46-mobile-menu__toolbar .m46-lang__item:hover,
#mobileMenu .m46-mobile-menu__toolbar .m46-lang__item:focus-visible,
#mobileMenu .m46-mobile-menu__toolbar .m46-currency__item:hover,
#mobileMenu .m46-mobile-menu__toolbar .m46-currency__item:focus-visible {
  color: var(--m46-black) !important;
  background: rgba(255, 206, 0, 0.22) !important;
  outline: none;
}

#mobileMenu .m46-mobile-menu__toolbar .m46-lang__item.active:hover,
#mobileMenu .m46-mobile-menu__toolbar .m46-lang__item[aria-current="true"]:hover,
#mobileMenu .m46-mobile-menu__toolbar .m46-currency__item.active:hover,
#mobileMenu .m46-mobile-menu__toolbar .m46-currency__item[aria-current="true"]:hover,
#mobileMenu .m46-mobile-menu__toolbar .m46-lang__item.active:focus-visible,
#mobileMenu .m46-mobile-menu__toolbar .m46-currency__item.active:focus-visible {
  background: var(--m46-yellow) !important;
  color: var(--m46-black) !important;
}

/* Corps : viewport des panneaux */
#mobileMenu .ps-mainmenu__mobile,
#mobileMenu .m46-mobile-menu__body {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  overflow: hidden;
  padding: 0;
  height: auto !important;
  background: var(--m46-paper);
}

#mobileMenu .m46-sheet__viewport,
#mobileMenu .m46-sheet__stack {
  position: relative;
  height: 100%;
  min-height: 0;
}

#mobileMenu .m46-sheet__panel {
  position: absolute;
  inset: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: var(--m46-paper);
  padding: 0.35rem 0 0.5rem;
  transform: translateX(18%);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.22s ease, visibility 0.28s ease;
}

#mobileMenu .m46-sheet__panel.is-current {
  transform: none;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  z-index: 2;
}

#mobileMenu .m46-sheet__back {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 2.75rem;
  margin: 0;
  padding: 0.35rem var(--m46-sheet-pad-x);
  border: 0;
  background: transparent;
  color: var(--m46-steel);
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1;
  cursor: pointer;
}

#mobileMenu .m46-sheet__back .material-icons {
  font-size: 1.2rem;
  line-height: 1;
}

#mobileMenu .m46-sheet__back:hover,
#mobileMenu .m46-sheet__back:focus-visible {
  color: var(--m46-black);
  outline: none;
}

#mobileMenu .m46-sheet__back:active {
  transform: scale(0.98);
}

#mobileMenu .m46-sheet__heading {
  display: block;
  margin: 0 0 0.35rem;
  padding: 0.15rem var(--m46-sheet-pad-x) 0.7rem;
  color: var(--m46-ink);
  font-family: var(--font-display);
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.15;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid var(--m46-steel-line);
}

#mobileMenu .m46-sheet__heading:hover,
#mobileMenu .m46-sheet__heading:focus-visible {
  color: var(--m46-black);
  outline: none;
}

#mobileMenu .m46-sheet__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

#mobileMenu .m46-sheet__item {
  display: flex;
  align-items: stretch;
  margin: 0;
}

#mobileMenu .m46-sheet__link {
  display: flex !important;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 3.1rem;
  padding: 0.85rem var(--m46-sheet-pad-x) !important;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.12rem;
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none !important;
  color: var(--m46-ink) !important;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  transition: background 0.15s ease, color 0.15s ease;
}

#mobileMenu .m46-sheet__item.is-current > .m46-sheet__link {
  box-shadow: inset 3px 0 0 var(--m46-yellow);
}

#mobileMenu .m46-sheet__link:hover,
#mobileMenu .m46-sheet__link:focus-visible {
  background: rgba(255, 206, 0, 0.18) !important;
  color: var(--m46-black) !important;
  outline: none;
}

#mobileMenu .m46-sheet__link:active {
  transform: scale(0.99);
}

#mobileMenu .m46-sheet__go {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.85rem;
  min-width: 44px;
  min-height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--m46-steel);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

#mobileMenu .m46-sheet__go .material-icons {
  font-size: 1.45rem;
  line-height: 1;
}

#mobileMenu .m46-sheet__go:hover,
#mobileMenu .m46-sheet__go:focus-visible {
  background: rgba(255, 206, 0, 0.22);
  color: var(--m46-black);
  outline: none;
}

#mobileMenu .m46-sheet__go:active {
  transform: scale(0.98);
}

#mobileMenu .m46-sheet__panel[data-depth="1"] .m46-sheet__link,
#mobileMenu .m46-sheet__panel[data-depth="2"] .m46-sheet__link {
  font-size: 1.02rem;
  letter-spacing: 0.03em;
  min-height: 2.95rem;
}

#mobileMenu .m46-sheet__panel[data-depth="2"] .m46-sheet__link,
#mobileMenu .m46-sheet__list[data-depth="2"] .m46-sheet__link {
  font-family: var(--font-body, "Inter", system-ui, sans-serif);
  font-weight: 500;
  font-size: 0.98rem;
  letter-spacing: 0.01em;
  text-transform: none;
  min-height: 2.85rem;
}

/* Pied : compte + contact, papier */
#mobileMenu .ps-mainmenu__additionnals,
#mobileMenu .m46-mobile-menu__footer {
  flex: 0 0 auto;
  margin-top: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  padding: 0.7rem var(--m46-sheet-pad-x) calc(0.85rem + env(safe-area-inset-bottom, 0px));
  background: var(--m46-paper);
  color: var(--m46-ink);
  border-top: 1px solid var(--m46-steel-line);
}

#mobileMenu .m46-sheet__account {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 2.75rem;
  color: var(--m46-black) !important;
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  line-height: 1;
}

#mobileMenu .m46-sheet__account span,
#mobileMenu .m46-sheet__account .material-icons {
  color: inherit;
}

#mobileMenu .m46-sheet__account .material-icons {
  font-size: 1.2rem;
  line-height: 1;
}

#mobileMenu .m46-sheet__account:hover,
#mobileMenu .m46-sheet__account:focus-visible {
  color: var(--m46-black);
  outline: none;
}

#mobileMenu .m46-mobile-menu__footer:empty,
#mobileMenu .m46-mobile-menu__contact:empty {
  display: none;
}

#mobileMenu .m46-mobile-menu__contact,
#mobileMenu .m46-mobile-menu__contact a {
  color: var(--m46-ink);
  text-decoration: none;
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

#mobileMenu .m46-mobile-menu__contact a:hover,
#mobileMenu .m46-mobile-menu__contact a:focus-visible {
  color: var(--m46-black);
  outline: none;
}

@media (prefers-reduced-motion: reduce) {
  #mobileMenu.ps-mainmenu--mobile,
  .ps-mainmenu.ps-mainmenu--mobile.offcanvas,
  #mobileMenu .m46-sheet__panel,
  #mobileMenu .m46-mobile-menu__search,
  #mobileMenu .m46-mobile-menu__close,
  #mobileMenu .m46-sheet__go,
  #mobileMenu .m46-sheet__back,
  #mobileMenu .m46-sheet__link {
    transition: none;
    transform: none;
  }
}

/* (sous-menus desktop : voir bloc « dropdown marques » plus bas) */

.header-bottom .search-widget input,
.header-bottom input[type="search"],
.header-bottom .form-control {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.22);
  color: #fff;
  border-radius: var(--radius-sm);
}

.header-bottom .search-widget input::placeholder {
  color: rgba(255, 255, 255, 0.5);
}

.header-bottom .search-widget button {
  background: var(--m46-yellow);
  color: var(--m46-black);
  border: var(--border-strong);
}

/* -------------------------------------------------------------------------- */
/* Hero / carousel                                                             */
/* -------------------------------------------------------------------------- */
.m46-hero,
.carousel,
.carousel-inner,
.homeslider {
  border-radius: 0;
  position: relative;
}

.m46-hero picture {
  display: block;
}

.m46-hero .ps-imageslider__figure {
  line-height: 0;
}

.m46-hero .ps-imageslider__link {
  display: block;
  position: relative;
  z-index: 1;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

.m46-hero .carousel-indicators,
.m46-hero .carousel-control-prev,
.m46-hero .carousel-control-next {
  z-index: 2;
}

.m46-hero .carousel-item img {
  display: block;
  width: 100%;
  height: auto;
}

/* Hummingbird: .page-content--home { gap: 2.5rem } → bande papier sous le hero */
.page-index .page-content--home {
  gap: 0;
}

.page-index .m46-hero,
.page-index .ps-imageslider {
  margin-bottom: 0;
}

.page-index .m46-home-reassure {
  margin-top: 0;
}

.page-index .ps-featuredproducts,
.page-index .featured-products,
.page-index .ps-specials,
.page-index .ps-newproducts,
.page-index .m46-home-atelier,
.page-index .ps-customtext {
  margin-top: 1.75rem;
}

.carousel-item {
  position: relative;
}

/* Pas de voile sombre : le texte est déjà dans les PNGs */
.carousel-item::after {
  display: none;
}

/* Captions DB / legacy : jamais affichés (texte déjà dans le visuel) */
.m46-hero .carousel-caption,
.ps-imageslider .carousel-caption,
.carousel-caption {
  display: none !important;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
  background-color: var(--m46-yellow);
  border: var(--border-strong);
  border-radius: var(--radius-sm);
  width: 2.5rem;
  height: 2.5rem;
}

/* Sections home */
.featured-products .title,
.products-section-title,
#custom-text .title {
  position: relative;
  display: inline-block;
  padding-bottom: 0.4rem;
  margin-bottom: var(--space-6);
}

.featured-products .title::after,
.products-section-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 3rem;
  height: 4px;
  background: var(--m46-yellow);
}

#wrapper,
#content-wrapper,
.page-content,
main,
.page-index #content,
body > main {
  background: transparent;
}

body,
#page {
  background-color: var(--m46-paper);
}

/*
 * Badges produit — HORS @layer (sinon battu par Hummingbird utilities).
 * Hummingbird: .product-flags .badge:not(.discount) { color:#fff sur jaune } ≈ 1.5:1
 */
.product-flags .badge,
.product-flags li.badge,
.product__flags .badge,
.product-miniature .product-flags .badge,
.product-miniature .badge {
  font-family: var(--font-display) !important;
  text-transform: uppercase !important;
  font-weight: 800 !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.04em !important;
  line-height: 1.15 !important;
  border: 2px solid #141310 !important;
  border-radius: 0 !important;
  padding: 0.28rem 0.5rem !important;
  box-shadow: none !important;
  text-shadow: none !important;
  --bs-badge-color: #141310;
}

/* Promo / New : noir sur jaune (force fill WebKit + variable BS) */
html body .product-flags .badge:not(.discount),
html body .product-flags .badge.on-sale,
html body .product-flags .badge.new,
html body .product-flags .badge.pack,
html body .product-miniature .badge:not(.discount),
html body .product__flags .badge:not(.discount) {
  background-color: #ffce00 !important;
  background: #ffce00 !important;
  color: #141310 !important;
  --bs-badge-color: #141310 !important;
  -webkit-text-fill-color: #141310 !important;
  text-shadow: none !important;
  filter: none !important;
  opacity: 1 !important;
}

/* Remise % : blanc sur rouge */
html body .product-flags .badge.discount,
html body .product-miniature .badge.discount,
html body .product__flags .badge.discount {
  background-color: #c1121f !important;
  background: #c1121f !important;
  color: #ffffff !important;
  --bs-badge-color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  border-color: #141310 !important;
  text-shadow: none !important;
  filter: none !important;
  opacity: 1 !important;
}

/* -------------------------------------------------------------------------- */
/* Carte produit — catalogue dense (atelier)                                   */
/* -------------------------------------------------------------------------- */

/* Grille : plus de pièces visibles = plus de découverte */
@layer utilities {
  .layout-full-width .products,
  .featured-products .products,
  .module-products .products,
  .module-products__list .products,
  .ps-featuredproducts .products,
  .ps-newproducts .products,
  .ps-specials .products,
  .ps-categoryproducts .products,
  .ps-viewedproduct .products,
  .ps-crossselling .products,
  section .products {
    gap: 0.85rem;
  }

  @media (min-width: 768px) {
    .layout-full-width .products,
    .featured-products .products,
    .module-products .products,
    .module-products__list .products,
    section .products {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }

  @media (min-width: 992px) {
    .layout-full-width .products,
    .featured-products .products,
    .module-products .products,
    .module-products__list .products,
    .ps-featuredproducts .products,
    .ps-newproducts .products,
    .ps-specials .products,
    .ps-categoryproducts .products,
    .ps-viewedproduct .products,
    .ps-crossselling .products,
    section .products {
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 0.75rem;
    }
  }

  @media (min-width: 1400px) {
    .layout-full-width .products,
    .featured-products .products,
    .module-products .products,
    .module-products__list .products,
    .ps-featuredproducts .products,
    .ps-newproducts .products,
    .ps-specials .products,
    section .products {
      grid-template-columns: repeat(6, minmax(0, 1fr));
    }
  }
}

.product-miniature.m46-card,
.product-miniature {
  height: 100%;
}

.product-miniature__inner {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
  height: 100%;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.product-miniature:hover .product-miniature__inner,
.m46-card:hover .product-miniature__inner {
  transform: translateY(-2px);
  border-color: var(--m46-black);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.12);
}

@media (prefers-reduced-motion: reduce) {
  .product-miniature__inner,
  .product-miniature:hover .product-miniature__inner,
  .m46-card:hover .product-miniature__inner {
    transform: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
  }
}

.product-miniature__top {
  position: relative;
  aspect-ratio: 1 / 1;
  background: #fff;
  overflow: hidden;
}

.product-miniature__image-container,
.product-miniature__image-link,
.product-miniature__top .thumbnail-container,
.product-miniature__top picture {
  display: block;
  width: 100%;
  height: 100%;
}

.product-miniature__top img,
.product-miniature__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  background: #fff;
  aspect-ratio: unset;
}

.product-miniature__bottom {
  padding: 0.65rem 0.7rem 0.75rem !important;
  gap: 0.45rem !important;
}

.product-miniature__infos {
  gap: 0.35rem !important;
}

.product-miniature__title {
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.25;
  color: var(--m46-ink);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-decoration: none;
  min-height: 0;
  text-overflow: unset;
}

.product-miniature__title:hover {
  color: var(--m46-black);
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.15rem;
}

.product-miniature__variants {
  gap: 0.3rem !important;
  margin-top: 0.1rem;
}

.product-miniature__variants .color,
.product-miniature__variants .color-sm {
  width: 1.5rem !important; /* 24px min WCAG */
  height: 1.5rem !important;
  min-width: 1.5rem !important;
  min-height: 1.5rem !important;
  box-sizing: border-box;
  border-radius: 0;
  border: 1px solid rgba(20, 19, 16, 0.5); /* blanc ≥ 3:1 */
}

@media (max-width: 991.98px) {
  .product-miniature__variants .color,
  .product-miniature__variants .color-sm {
    width: 2.75rem !important; /* 44px touch */
    height: 2.75rem !important;
    min-width: 2.75rem !important;
    min-height: 2.75rem !important;
  }

  .product-miniature__variants {
    gap: 0.45rem !important;
  }
}

.product-miniature__prices {
  align-items: baseline;
  gap: 0.35rem;
}

.product-miniature__price {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
  color: var(--m46-ink);
  font-variant-numeric: tabular-nums;
}

.product-miniature__regular-price {
  color: var(--m46-steel);
  text-decoration: line-through;
  font-size: 0.8rem;
}

.product-miniature .product-flags {
  gap: 0.3rem;
  z-index: 2;
}

/* Listing : 1 badge promo max — garder le % si présent, sinon Promo */
.page-category .product-miniature .product-flags:has(.badge.discount) .badge.on-sale,
.page-search .product-miniature .product-flags:has(.badge.discount) .badge.on-sale,
.page-index .product-miniature .product-flags:has(.badge.discount) .badge.on-sale,
.page-prices-drop .product-miniature .product-flags:has(.badge.discount) .badge.on-sale {
  display: none !important;
}

.product-miniature__actions {
  opacity: 1;
  transform: none;
  margin-top: 0.35rem;
}

/* Formulaire carte : CTA seul (qty = fiche produit) */
.product-miniature__form {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch;
  gap: 0;
  width: 100%;
}

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

.product-miniature__add,
.product-miniature__details {
  flex: 1 1 auto;
  width: 100% !important;
  min-height: 2.35rem;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: 0.78rem;
  border-radius: 0 !important;
  border: 2px solid var(--m46-black) !important;
  cursor: pointer;
  transition: background-color 160ms ease, transform 160ms ease;
}

.product-miniature__add .material-icons {
  font-size: 1.05rem;
  line-height: 1;
}

.product-miniature__add-text {
  display: inline !important;
  line-height: 1;
}

.product-miniature__add:hover {
  background: #ffe14d !important;
}

.product-miniature__add:active {
  transform: translateY(1px);
}

@container product-miniature (width < 10.5rem) {
  .product-miniature__add-text {
    display: none !important;
  }

  .product-miniature__add {
    min-height: 2.5rem;
  }
}

/* -------------------------------------------------------------------------- */
/* Accueil / panier / listings catalogue = découverte                          */
/* Job : scanner le catalogue → clic fiche. Conversion = PDP.                */
/* -------------------------------------------------------------------------- */
.page-index .product-miniature__variants,
.page-index .product-miniature__actions,
.page-index .product-miniature__quickview-button,
.page-index .product-miniature__quickview-touch,
.page-cart .product-miniature__variants,
.page-cart .product-miniature__actions,
.page-cart .product-miniature__quickview-button,
.page-cart .product-miniature__quickview-touch,
.page-category .product-miniature__variants,
.page-category .product-miniature__actions,
.page-category .product-miniature__quickview-button,
.page-category .product-miniature__quickview-touch,
.page-search .product-miniature__variants,
.page-search .product-miniature__actions,
.page-search .product-miniature__quickview-button,
.page-search .product-miniature__quickview-touch,
.page-new-products .product-miniature__variants,
.page-new-products .product-miniature__actions,
.page-prices-drop .product-miniature__variants,
.page-prices-drop .product-miniature__actions,
.page-best-sales .product-miniature__variants,
.page-best-sales .product-miniature__actions {
  display: none !important;
}

.page-index .product-miniature__bottom,
.page-cart .product-miniature__bottom,
.page-category .product-miniature__bottom,
.page-search .product-miniature__bottom,
.page-new-products .product-miniature__bottom,
.page-prices-drop .product-miniature__bottom,
.page-best-sales .product-miniature__bottom {
  padding: 0.55rem 0.6rem 0.7rem !important;
  gap: 0.3rem !important;
}

.page-index .product-miniature__title,
.page-cart .product-miniature__title,
.page-category .product-miniature__title,
.page-search .product-miniature__title,
.page-new-products .product-miniature__title,
.page-prices-drop .product-miniature__title,
.page-best-sales .product-miniature__title {
  font-size: 0.84rem;
  line-height: 1.3;
  min-height: 0;
}

.page-index .product-miniature__price,
.page-cart .product-miniature__price,
.page-category .product-miniature__price,
.page-search .product-miniature__price,
.page-new-products .product-miniature__price,
.page-prices-drop .product-miniature__price,
.page-best-sales .product-miniature__price {
  font-size: 1rem;
}

/* Listing mobile — Pro Max : primaire ≥15–16px, chrome ≥12px, grille intacte */
@media (max-width: 767.98px) {
  .page-index .product-miniature__title,
  .page-cart .product-miniature__title,
  .page-category .product-miniature__title,
  .page-search .product-miniature__title,
  .page-new-products .product-miniature__title,
  .page-prices-drop .product-miniature__title,
  .page-best-sales .product-miniature__title {
    font-size: 0.9375rem; /* 15px */
    line-height: 1.3;
    letter-spacing: 0.015em;
    -webkit-line-clamp: 3;
  }

  .page-index .product-miniature__price,
  .page-cart .product-miniature__price,
  .page-category .product-miniature__price,
  .page-search .product-miniature__price,
  .page-new-products .product-miniature__price,
  .page-prices-drop .product-miniature__price,
  .page-best-sales .product-miniature__price {
    font-size: 1.0625rem; /* 17px — ancre prix */
    line-height: 1.2;
  }

  .page-index .product-miniature__regular-price,
  .page-category .product-miniature__regular-price,
  .page-search .product-miniature__regular-price,
  .page-prices-drop .product-miniature__regular-price {
    font-size: 0.8125rem; /* 13px */
  }

  .page-category .product-miniature .badge,
  .page-search .product-miniature .badge,
  .page-index .product-miniature .badge,
  .page-category .product-flags .badge,
  .page-search .product-flags .badge {
    font-size: 0.75rem !important; /* 12px floor */
    line-height: 1.2;
  }

  .page-category .m46-subcats__label,
  .m46-subcats__label {
    font-size: 0.9375rem;
  }

  .page-category .m46-subcats__name,
  .m46-subcats__name,
  .page-category .m46-subcats--dense .m46-subcats__name,
  .m46-subcats--dense .m46-subcats__name {
    font-size: 0.75rem; /* 12px chrome */
    line-height: 1.25;
  }

  .page-category .m46-subcats__more,
  .m46-subcats__more {
    font-size: 0.8125rem; /* 13px */
    min-height: 2.5rem;
  }

  .page-category .products__count,
  .page-search .products__count {
    font-size: 0.75rem; /* 12px */
  }

  .page-category .products__sort-dropdown-button,
  .page-search .products__sort-dropdown-button {
    font-size: 0.875rem; /* 14px — contrôle tactile */
  }

  .m46-filter-btn {
    font-size: 0.875rem;
  }

  .page-category .breadcrumb,
  .page-search .breadcrumb {
    font-size: 0.8125rem;
  }
}

.page-index .product-miniature__inner,
.page-cart .product-miniature__inner,
.page-category .product-miniature__inner,
.page-search .product-miniature__inner,
.page-new-products .product-miniature__inner,
.page-prices-drop .product-miniature__inner,
.page-best-sales .product-miniature__inner {
  cursor: pointer;
}

.page-index .product-miniature__inner:hover .product-miniature__title,
.page-cart .product-miniature__inner:hover .product-miniature__title,
.page-category .product-miniature__inner:hover .product-miniature__title,
.page-search .product-miniature__inner:hover .product-miniature__title {
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.15rem;
}

/* -------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */
/* Page produit — système unifié (grille + surface + buy box + fiche)           */
/* -------------------------------------------------------------------------- */
.page-product {
  --m46-pdp-max: 1120px;
  --m46-pdp-gap: 1.25rem;
  --m46-pdp-pad: 0.85rem;
  --m46-bb-space: 0.55rem;
  --m46-bb-group: 0.9rem;
}

.page-product #content-wrapper,
.page-product .page-content {
  /* inset top = margin breadcrumb (--m46-content-inset-top) */
  padding-block: 0 2rem;
}

.page-product .breadcrumb,
.page-product .breadcrumb a {
  color: var(--m46-steel) !important;
  font-size: 0.8rem;
}

.page-product .breadcrumb a:hover {
  color: var(--m46-black) !important;
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
}

.page-product .breadcrumb .breadcrumb-item.active,
.page-product .breadcrumb [aria-current="page"] {
  color: var(--m46-ink) !important;
  font-weight: 600;
}

.page-product .columns-container.container {
  max-width: var(--m46-pdp-max);
}

/* Conteneur PDP : stage + sheet, même largeur */
.page-product .m46-pdp.product__container {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  width: 100%;
  max-width: var(--m46-pdp-max);
  margin: 0 auto;
  box-sizing: border-box;
}

/* Neutralise grilles Hummingbird sur product__container / bottom */
.page-product .m46-pdp.product__container,
.page-product .m46-pdp .product__bottom,
.page-product .m46-pdp .m46-pdp__sheet {
  grid-template-columns: none !important;
}

.m46-pdp__stage {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--m46-pdp-gap);
  align-items: start;
  width: 100%;
}

@media (min-width: 768px) {
  .page-product {
    --m46-pdp-gap: 1.35rem;
  }

  .m46-pdp__stage {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  }
}

@media (min-width: 992px) {
  .page-product {
    --m46-pdp-gap: 1.5rem;
  }

  .m46-pdp__stage {
    grid-template-columns: minmax(0, 1.1fr) minmax(20rem, 0.9fr);
  }
}

/* ---- Galerie ---- */
.m46-pdp__gallery {
  min-width: 0;
  width: 100%;
}

.m46-pdp__gallery .product__images {
  margin: 0 !important;
  background: #fff;
  border: 1px solid var(--color-border);
  padding: 0.35rem;
}

.m46-pdp__gallery .product__carousel {
  background: #fff;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: hidden;
  margin: 0;
  aspect-ratio: 1 / 1;
  width: 100%;
  position: relative;
}

.m46-pdp__gallery .product__carousel .carousel-inner,
.m46-pdp__gallery .product__carousel .carousel-item,
.m46-pdp__gallery .product__carousel .carousel-item picture {
  height: 100%;
}

.m46-pdp__gallery .product__carousel .carousel-item img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  background: #fff;
}

.m46-pdp__gallery .carousel-control-prev,
.m46-pdp__gallery .carousel-control-next {
  width: 1.75rem;
  height: 1.75rem;
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  opacity: 0.45;
  background: transparent;
  z-index: 3;
  transition: opacity 180ms ease;
}

.m46-pdp__gallery .carousel-control-prev { left: 0.35rem; justify-content: flex-start; }
.m46-pdp__gallery .carousel-control-next { right: 0.35rem; justify-content: flex-end; }

.m46-pdp__gallery .carousel-control-prev-icon,
.m46-pdp__gallery .carousel-control-next-icon {
  width: 1.45rem;
  height: 1.45rem;
  background-color: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(20, 19, 16, 0.35);
  border-radius: 0;
  filter: invert(1) grayscale(1) brightness(0);
  transition: background-color 180ms ease, border-color 180ms ease, filter 180ms ease;
}

@media (hover: hover) {
  .m46-pdp__gallery .carousel-control-prev,
  .m46-pdp__gallery .carousel-control-next {
    opacity: 0.22;
  }

  .m46-pdp__gallery .product__carousel:hover .carousel-control-prev,
  .m46-pdp__gallery .product__carousel:hover .carousel-control-next {
    opacity: 0.75;
  }

  .m46-pdp__gallery .carousel-control-prev:hover .carousel-control-prev-icon,
  .m46-pdp__gallery .carousel-control-next:hover .carousel-control-next-icon,
  .m46-pdp__gallery .carousel-control-prev:focus-visible .carousel-control-prev-icon,
  .m46-pdp__gallery .carousel-control-next:focus-visible .carousel-control-next-icon {
    background-color: var(--m46-yellow);
    border-color: var(--m46-black);
    filter: none;
  }
}

.m46-pdp__gallery .m46-gallery-flags,
.m46-pdp__gallery .product-flags {
  gap: 0.25rem;
  top: 0.45rem;
  left: 0.45rem;
  z-index: 4;
}

.m46-pdp__gallery .m46-gallery-flags:empty,
.m46-pdp__gallery .product-flags:not(:has(li)) {
  display: none;
}

.m46-pdp__gallery .product-flags .badge {
  font-size: 0.62rem !important;
  padding: 0.22rem 0.4rem !important;
  line-height: 1.1;
}

.m46-pdp__gallery .product__thumbnails {
  margin: 0.4rem 0 0 !important;
}

.m46-pdp__gallery .product__thumbnails-list {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 0.4rem !important;
  margin: 0 !important;
  overflow-x: auto;
  padding-bottom: 0.15rem;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}

.m46-pdp__gallery .product__thumbnail {
  flex: 0 0 auto;
  width: 3.6rem;
  scroll-snap-align: start;
  cursor: pointer;
}

.m46-pdp__gallery .product__thumbnail:focus-visible {
  outline: 2px solid var(--m46-black);
  outline-offset: 2px;
}

.m46-pdp__gallery .product__thumbnail-image,
.m46-pdp__gallery .product__thumbnails img {
  border: 1px solid var(--color-border);
  background: #fff;
  border-radius: 0 !important;
}

.m46-pdp__gallery .product__thumbnail.active .product__thumbnail-image,
.m46-pdp__gallery .product__thumbnail.active img {
  border-color: var(--m46-black);
  box-shadow: inset 0 0 0 2px var(--m46-yellow);
}

.m46-pdp__gallery .product__zoom {
  background: rgba(255, 255, 255, 0.92);
  color: var(--m46-black);
  border: 1px solid var(--color-border);
  width: 2.1rem;
  height: 2.1rem;
  opacity: 0.88;
  z-index: 4;
  transition: background-color 180ms ease, border-color 180ms ease;
}

.m46-pdp__gallery .product__zoom:hover {
  border-color: var(--m46-black);
  background: var(--m46-yellow);
  opacity: 1;
}

/* ---- Buy box : une surface ---- */
.m46-pdp__buybox.m46-buybox {
  min-width: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid var(--color-border);
  padding: 0.85rem 0.95rem 1rem;
  overflow: visible;
}

@media (min-width: 768px) {
  .m46-pdp__buybox.m46-buybox {
    position: sticky;
    top: 0.75rem;
    z-index: 2;
    padding: 1rem 1.1rem 1.15rem;
  }
}

/* Desktop : le buy box collé manquait d’air (titre / prix / variantes / CTA) */
@media (min-width: 992px) {
  .page-product {
    --m46-pdp-max: 1180px;
    --m46-pdp-gap: 2.25rem;
    --m46-bb-space: 0.9rem;
    --m46-bb-group: 1.35rem;
  }

  .page-product .m46-pdp.product__container {
    gap: 1.75rem;
  }

  .m46-pdp__buybox.m46-buybox {
    padding: 1.55rem 1.65rem 1.7rem;
  }

  .m46-buybox__brand {
    margin-bottom: 0.7rem;
  }

  .m46-buybox__title,
  .m46-pdp .product__name,
  .m46-pdp .product__name.h2 {
    margin-bottom: 0.45rem !important;
    line-height: 1.18;
  }

  .m46-buybox__price-now {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.28rem;
  }

  .m46-buybox__tax,
  .m46-buybox .product__tax-infos {
    align-self: flex-start;
    padding-bottom: 0;
  }

  .m46-buybox .product__variants,
  .m46-buybox .product-variants,
  .m46-buybox .js-product-variants {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  .m46-buybox .product-variant__label,
  .m46-buybox .product__variants .variant__label,
  .m46-buybox .product-variants .control-label,
  .m46-buybox .product-variant__legend {
    margin-bottom: 0.42rem !important;
  }

  .m46-buybox__pod {
    margin-top: 0.85rem;
    padding-top: 0.7rem;
  }

  .m46-buybox__lead,
  .m46-buybox .product__description-short {
    margin-top: 0.15rem;
    font-size: 0.9rem;
    line-height: 1.5;
    max-width: 46ch;
  }

  .m46-buybox__lead p {
    margin-bottom: 0.45rem;
  }

  .m46-buybox__proofs,
  .m46-reassurance {
    margin-top: 1.15rem;
    padding-top: 0.85rem;
    gap: 0.45rem;
  }
}

/* Marque : logo + nom, zéro trait jaune */
.m46-buybox__brand {
  margin: 0 0 0.35rem;
}

.m46-buybox__brand-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  text-decoration: none !important;
  color: var(--m46-ink) !important;
  border-bottom: 0 !important;
}

.m46-buybox__brand-logo {
  display: block;
  height: 1.35rem;
  width: auto;
  max-width: 4.75rem;
  object-fit: contain;
}

.m46-buybox__brand-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.74rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.2;
  border-bottom: 0;
  padding-bottom: 0;
}

.m46-buybox__brand-name::after {
  content: none !important;
  display: none !important;
}

.m46-buybox__brand-link:hover .m46-buybox__brand-name {
  color: var(--m46-black);
}

.m46-buybox__title,
.m46-pdp .product__name,
.m46-pdp .product__name.h2 {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2.3vw, 1.7rem);
  line-height: 1.1;
  margin: 0 0 0.2rem !important;
  font-weight: 700;
  letter-spacing: -0.01em;
  text-transform: none;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.m46-buybox__ref,
.m46-product__ref {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--m46-helper); /* AA+ vs papier (pas steel trop pâle) */
  font-size: 0.66rem;
  margin: 0 0 var(--m46-bb-space);
}

/* Prix */
.m46-buybox__price,
.m46-buybox .product__prices {
  margin: 0 0 var(--m46-bb-space) !important;
  padding: 0 !important;
}

.m46-buybox__price-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.22rem;
}

.m46-buybox__price-now,
.m46-buybox__price-was {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  margin: 0;
}

.m46-buybox__amount,
.m46-buybox .product__price {
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 2.4vw, 1.9rem);
  font-weight: 700;
  color: var(--m46-ink);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  line-height: 1;
  margin: 0 !important;
}

.m46-buybox__tax,
.m46-buybox .product__tax-infos {
  margin: 0 !important;
  color: var(--m46-steel);
  font-family: var(--font-display);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1;
  align-self: flex-end;
  padding-bottom: 0.15rem;
}

.m46-buybox__regular,
.m46-buybox .product__regular-price {
  color: var(--m46-steel);
  font-size: 0.86rem;
  font-variant-numeric: tabular-nums;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}

.m46-buybox__save,
.m46-buybox .product__discount-percentage,
.m46-buybox .product__discount-amount {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0.12rem 0.35rem;
  background: var(--m46-yellow);
  color: var(--m46-black) !important;
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.1;
  text-decoration: none !important;
  border: 1px solid var(--m46-black);
  border-radius: 0;
}

/* Lead */
.m46-buybox__lead,
.m46-buybox .product__description-short {
  margin: 0 0 var(--m46-bb-group);
  color: var(--m46-ink);
  line-height: 1.4;
  font-size: 0.86rem;
  max-width: 42ch;
}

.m46-buybox__lead,
.m46-buybox__lead p,
.m46-buybox .product__description-short,
.m46-buybox .product__description-short p {
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 400 !important;
}

.m46-buybox__lead h1,
.m46-buybox__lead h2,
.m46-buybox__lead h3 {
  font-family: var(--font-body) !important;
  font-size: 0.86rem !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  margin: 0 0 0.25rem !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--m46-ink) !important;
}

.m46-buybox__lead p { margin: 0 0 0.25rem; }
.m46-buybox__lead p:empty { display: none; }
.m46-buybox__lead span[style] {
  font-size: inherit !important;
  font-style: normal !important;
  font-family: inherit !important;
}

.m46-buybox__actions {
  margin: 0 !important;
  padding: 0;
  min-width: 0;
}

.m46-buybox .product__variants,
.m46-buybox .product-variants {
  margin: 0 0 var(--m46-bb-group) !important;
  padding: 0 !important;
}

.m46-buybox .product-variant__label,
.m46-buybox .product__variants .variant__label,
.m46-buybox .product-variants .control-label,
.m46-buybox .product-variant__legend {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.72rem;
  font-weight: 700;
  margin-bottom: 0.3rem !important;
  color: var(--m46-ink);
}

/* Select modèle : même langage sharp atelier que qty/CTA */
.m46-buybox .form-select,
.m46-buybox select.form-select {
  height: var(--m46-buy-h, 3rem);
  min-height: var(--m46-buy-h, 3rem);
  padding: 0 2.25rem 0 0.75rem;
  font-family: var(--font-display);
  font-size: 0.86rem;
  font-weight: 600;
  line-height: 1;
  color: var(--m46-ink);
  background-color: #fff;
  border: 2px solid var(--m46-black);
  border-radius: 0 !important;
  box-shadow: none !important;
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
}

.m46-buybox .form-select:focus,
.m46-buybox select.form-select:focus {
  border-color: var(--m46-black);
  box-shadow: none !important;
  outline: 3px solid var(--m46-black);
  outline-offset: 3px;
}

.m46-buybox .product-variant__selected,
.m46-buybox .selected-value {
  font-family: var(--font-body);
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--m46-steel);
  font-size: 0.8rem;
}

.m46-buybox .product-variant__colors {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.m46-buybox .product__variants .color,
.m46-buybox .product-variants .color,
.m46-buybox .input-color__label .color {
  display: block;
  width: 1.8rem;
  height: 1.8rem;
  min-width: 1.8rem;
  min-height: 1.8rem;
  border: 1px solid rgba(20, 19, 16, 0.28);
  border-radius: 0;
  cursor: pointer;
  box-sizing: border-box;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

@media (max-width: 767.98px) {
  /* Pastilles juste sous le prix (avant selects modèle) */
  .m46-buybox .product__variants,
  .m46-buybox .product-variants {
    display: flex;
    flex-direction: column;
  }

  .m46-buybox .product-variant:has(.product-variant__colors),
  .m46-buybox .product-variants > *:has(.color) {
    order: -1;
  }

  /* Pastilles couleur : cible tactile ≥44×44 */
  .m46-buybox .product__variants .color,
  .m46-buybox .product-variants .color,
  .m46-buybox .input-color__label .color {
    width: 2.75rem; /* 44px */
    height: 2.75rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
  }

  .m46-buybox .product-variant__colors {
    gap: 0.45rem;
  }
}

.m46-buybox .input-color__label:hover .color,
.m46-buybox .product__variants .color:hover {
  transform: translateY(-1px);
  border-color: var(--m46-black);
}

@media (prefers-reduced-motion: reduce) {
  .m46-buybox .input-color__label:hover .color,
  .m46-buybox .product__variants .color:hover,
  .m46-buybox .input-color__label .color,
  .m46-buybox .product__variants .color {
    transform: none;
    transition: border-color 160ms ease, box-shadow 160ms ease;
  }
}

.m46-buybox .input-color__input:checked + .input-color__label .color,
.m46-buybox .input-color__input:checked + label .color,
.m46-buybox .product__variants input[type="radio"]:checked + label .color,
.m46-buybox .product-variants .color.active {
  border-color: var(--m46-black);
  box-shadow:
    0 0 0 2px #fff,
    0 0 0 4px var(--m46-black),
    inset 0 0 0 2px var(--m46-yellow);
  transform: none;
}

.m46-buybox .input-color__input:focus-visible + .input-color__label .color {
  outline: 2px solid var(--m46-black);
  outline-offset: 3px;
}

/* Qty + CTA — un seul contrôle atelier (hauteur/bordure alignées) */
.m46-pdp__buybox.m46-buybox,
.m46-buybox {
  --m46-buy-h: 3rem; /* 48px */
  --m46-buy-border: 2px solid var(--m46-black);
}

.m46-buybox__cart,
.m46-buybox .product-add-to-cart {
  margin: 0 !important;
  padding: 0;
  min-width: 0;
}

.m46-buybox__cta,
.m46-buybox .product__actions-qty-add {
  display: flex;
  flex-wrap: nowrap;
  gap: 0; /* jointure sans double border */
  align-items: stretch;
  width: 100%;
  min-width: 0;
  height: var(--m46-buy-h);
  box-sizing: border-box;
}

.m46-buybox .product__quantity,
.m46-buybox .product-actions__quantity,
.m46-buybox .quantity-button.js-quantity-button {
  flex: 0 0 auto;
  width: auto;
  height: 100%;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: stretch;
  box-sizing: border-box;
}

.m46-buybox .quantity-button__group.input-group,
.m46-buybox .quantity-button__group {
  display: inline-flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  width: auto !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: var(--m46-buy-border);
  border-right: 0; /* évite double trait au joint CTA */
  border-radius: 0 !important;
  background: #fff;
  box-sizing: border-box !important;
  overflow: hidden;
}

.m46-buybox .quantity-button__group > .btn,
.m46-buybox .quantity-button__group > .form-control,
.m46-buybox .quantity-button__group > .btn-square-icon {
  flex: 0 0 auto !important;
  align-self: stretch !important;
  width: 2.5rem;
  min-width: 2.5rem;
  max-width: 2.5rem;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: #fff !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  appearance: none;
  -webkit-appearance: none;
}

.m46-buybox .quantity-button__group > .btn .material-icons,
.m46-buybox .quantity-button__group > .btn-square-icon .material-icons {
  font-size: 1.15rem;
  line-height: 1;
  width: 1.15rem;
  height: 1.15rem;
  display: block;
}

.m46-buybox .quantity-button__group > .btn:hover,
.m46-buybox .quantity-button__group > .btn-square-icon:hover {
  background: var(--m46-paper) !important;
}

.m46-buybox .quantity-button__group > .btn:active,
.m46-buybox .quantity-button__group > .btn-square-icon:active {
  background: var(--m46-paper-2) !important;
}

.m46-buybox .quantity-button__group > .form-control {
  width: 2.35rem !important;
  min-width: 2.35rem !important;
  max-width: 2.35rem !important;
  text-align: center !important;
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  font-variant-numeric: tabular-nums;
  color: var(--m46-ink) !important;
  line-height: 1 !important;
}

.m46-buybox .product__add-to-cart,
.m46-buybox .product__add-to-cart.add {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: stretch;
  box-sizing: border-box;
}

.m46-buybox .product__add-to-cart-button,
.m46-buybox .product__add-to-cart-button.btn,
.m46-buybox .product__add-to-cart-button.btn-primary,
#add-to-cart-or-refresh .btn-primary {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.4rem;
  width: 100%;
  min-width: 0;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 0.85rem !important;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: clamp(0.8rem, 1.3vw, 0.92rem);
  line-height: 1 !important;
  white-space: nowrap;
  color: var(--m46-black) !important;
  background: var(--m46-yellow) !important;
  border: var(--m46-buy-border) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  appearance: none;
  -webkit-appearance: none;
  transition: background-color 160ms ease, transform 120ms ease;
}

.m46-buybox .product__add-to-cart-button .material-icons {
  font-size: 1.15rem;
  line-height: 1;
  width: 1.15rem;
  height: 1.15rem;
  display: block;
  flex-shrink: 0;
}

.m46-buybox .product__add-to-cart-button:hover,
#add-to-cart-or-refresh .btn-primary:hover {
  background: #ffe14d !important;
}

.m46-buybox .product__add-to-cart-button:active,
#add-to-cart-or-refresh .btn-primary:active {
  background: var(--m46-yellow-dark) !important;
  transform: translateY(1px);
}

/* PayPal (ps_checkout express + tagline SDK) : sous le CTA, pas dans la rangée 3rem */
.m46-buybox__extra-actions {
  display: block;
  width: 100%;
  margin-top: 0.75rem;
  min-height: 3.25rem;
}

.m46-buybox__extra-actions #ps-checkout-express-button,
.m46-buybox__extra-actions .paypal-buttons,
.m46-buybox__extra-actions .paypal-buttons-context-iframe {
  display: block;
  width: 100% !important;
  max-width: 100%;
  margin-top: 0;
  min-height: 4.35rem;
}

.m46-buybox [paypal-messaging-banner],
.m46-buybox .paypal-pay-later-banner,
.m46-buybox [installment-container],
.m46-buybox__extra-actions [installment-container],
.product-add-to-cart [paypal-messaging-banner] {
  display: block;
  width: 100%;
  margin-top: 0.35rem;
  min-height: 2.25rem;
}

#checkout-personal-information-step #ps-checkout-express-button,
body#checkout #ps-checkout-express-button,
body#checkout #paypal-button-container,
body#checkout .paypal-buttons-context-iframe {
  margin-top: 0.75rem;
  min-height: 4.35rem;
}

body#checkout .paypal-button-tagline,
.m46-buybox .paypal-button-tagline,
.paypal-label {
  display: block;
  margin-top: 0.45rem;
  line-height: 1.3;
}

.m46-buybox .product__add-to-cart-button:focus-visible,
.m46-buybox .quantity-button__group > .btn:focus-visible {
  outline: 2px solid var(--m46-black);
  outline-offset: 2px;
  z-index: 1;
}

.m46-buybox .product__add-to-cart-label {
  display: inline-block;
  line-height: 1;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* POD une ligne */
.m46-buybox__pod {
  margin: 0.55rem 0 0;
  padding: 0.4rem 0 0;
  border-top: 1px solid var(--m46-steel-line);
}

.m46-buybox__pod-line {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.35;
  font-weight: 500;
  color: var(--m46-helper); /* contraste AA+ sur papier */
}

.m46-buybox__pod-sep {
  margin: 0 0.35rem;
  color: var(--m46-steel);
}

.m46-buybox .product__minimal-quantity[hidden],
.m46-buybox .js-product-minimal-quantity[hidden] {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
}

/* Remises volume */
.m46-buybox .m46-volume,
.m46-buybox .product__discounts {
  margin: var(--m46-bb-group) 0 0;
  padding: 0;
  border: 0;
}

.m46-volume__title {
  margin: 0 0 0.28rem;
  font-family: var(--font-display);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--m46-steel);
}

.m46-volume__list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 2px solid var(--m46-black);
}

.m46-volume__row {
  display: grid;
  grid-template-columns: 2.6rem minmax(0, 1fr) auto auto;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  padding: 0.42rem 0.35rem 0.42rem 0.55rem;
  border-bottom: 1px solid var(--m46-steel-line);
  font-variant-numeric: tabular-nums;
  position: relative;
  cursor: pointer;
  transition: background-color 140ms ease;
}

.m46-volume__row::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.4rem;
  bottom: 0.4rem;
  width: 2px;
  background: var(--m46-ink);
  opacity: 0.28;
}

.m46-volume__row:hover,
.m46-volume__row:focus-visible {
  background: var(--m46-paper);
  outline: none;
}

.m46-volume__row.is-active {
  background: var(--m46-paper);
}

.m46-volume__row.is-active::before {
  background: var(--m46-black);
  opacity: 1;
  width: 3px;
}

.m46-volume__qty {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
  color: var(--m46-ink);
  line-height: 1.1;
}

.m46-volume__unit {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.88rem;
  color: var(--m46-ink);
  line-height: 1.1;
}

.m46-volume__per {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--m46-steel);
  margin-left: 0.1rem;
}

.m46-volume__rate {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.78rem;
  color: var(--m46-black);
  white-space: nowrap;
}

.m46-volume__save {
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--m46-steel);
  text-align: right;
  white-space: nowrap;
}

.m46-buybox .discounts-table {
  width: 100%;
  margin: 0;
  border-collapse: collapse;
  font-size: 0.78rem;
}

.m46-buybox .discounts-table th,
.m46-buybox .discounts-table td {
  padding: 0.32rem 0.25rem;
  border-bottom: 1px solid var(--m46-steel-line);
  text-align: left;
  background: transparent !important;
}

/* Preuves (2 max) */
.m46-buybox__proofs,
.m46-reassurance {
  list-style: none;
  margin: var(--m46-bb-group) 0 0;
  padding: 0.55rem 0 0;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  border-top: 1px solid var(--m46-steel-line);
}

.m46-buybox__proofs li,
.m46-reassurance li {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.72rem;
  line-height: 1.25;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: var(--m46-ink);
}

.m46-buybox__proof-mark,
.m46-reassurance__mark {
  flex: 0 0 auto;
  width: 0.45rem;
  height: 0.45rem;
  background: var(--m46-ink);
  opacity: 0.85; /* marque lisible, pas décorative floue */
}

.m46-buybox .product-customization {
  margin-bottom: 0.55rem;
  padding: 0.55rem;
  background: var(--m46-paper);
  border: 1px dashed var(--color-border);
}

.m46-buybox .product-customization__title {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: 0.88rem;
  margin-bottom: 0.4rem;
}

/* ---- Sheet : même largeur que le stage ---- */
.m46-pdp__sheet,
.m46-pdp__sheet.product__bottom {
  display: block !important;
  width: 100%;
  max-width: none;
  margin: 0 !important;
  min-width: 0;
  box-sizing: border-box;
  grid-template-columns: none !important;
}

.m46-pdp__sheet-body,
.m46-pdp__sheet .product__bottom-left {
  width: 100%;
  max-width: none;
  margin: 0;
  min-width: 0;
  box-sizing: border-box;
}

.m46-pdp__sheet-body::before,
.m46-product__sheet::before {
  content: none !important;
  display: none !important;
}

.m46-sheet.accordion,
.m46-sheet.accordion-flush,
.m46-spec-sheet.accordion,
.m46-spec-sheet.accordion-flush {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  border: 1px solid rgba(20, 19, 16, 0.16);
  border-top: 3px solid var(--m46-ink);
  background: #fff;
  border-radius: 0;
}

.m46-sheet .accordion-item,
.m46-spec-sheet .accordion-item {
  border: 0 !important;
  border-bottom: 1px solid rgba(20, 19, 16, 0.12) !important;
  margin: 0 !important;
  border-radius: 0 !important;
  background: transparent;
  box-shadow: none !important;
}

.m46-sheet .accordion-item:last-child,
.m46-spec-sheet .accordion-item:last-child {
  border-bottom: 0 !important;
}

.m46-sheet .accordion-button,
.m46-spec-sheet .accordion-button {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
  font-size: 0.82rem;
  background: transparent !important;
  color: var(--m46-ink) !important;
  box-shadow: none !important;
  border: 0 !important;
  padding: 0.7rem 0.95rem;
  gap: 0.5rem;
}

.m46-sheet .accordion-button::after,
.m46-spec-sheet .accordion-button::after {
  filter: none;
  background-size: 0.85rem;
  opacity: 0.55;
  margin-left: auto;
}

.m46-sheet .accordion-button:not(.collapsed),
.m46-spec-sheet .accordion-button:not(.collapsed) {
  background: transparent !important;
  color: var(--m46-ink) !important;
}

.m46-sheet .accordion-button:hover,
.m46-spec-sheet .accordion-button:hover {
  background: rgba(246, 244, 239, 0.7) !important;
}

.m46-sheet .accordion-button:focus,
.m46-spec-sheet .accordion-button:focus {
  box-shadow: none !important;
}

.m46-sheet .accordion-button:focus-visible,
.m46-spec-sheet .accordion-button:focus-visible {
  outline: 2px solid var(--m46-black);
  outline-offset: -2px;
}

.m46-sheet .accordion-body,
.m46-spec-sheet .accordion-body {
  padding: 0 0.95rem 0.8rem;
  color: var(--m46-ink);
  line-height: 1.5;
  font-size: 0.9rem;
}

.m46-sheet .rich-text h1,
.m46-sheet .rich-text h2,
.m46-sheet .rich-text h3,
.m46-sheet .product__description h1,
.m46-sheet .product__description h2,
.m46-sheet .product__description h3,
.m46-spec-sheet .rich-text h1,
.m46-spec-sheet .rich-text h2,
.m46-spec-sheet .rich-text h3 {
  font-family: var(--font-body) !important;
  font-size: 0.9rem !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  margin: 0 0 0.35rem !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--m46-ink) !important;
}

.m46-sheet .rich-text p,
.m46-sheet .product__description p {
  margin: 0 0 0.45rem;
  font-size: 0.9rem;
  line-height: 1.5;
}

.m46-sheet .rich-text p:empty,
.m46-sheet .product__description p:empty {
  display: none;
}

.m46-sheet .rich-text span[style],
.m46-sheet .product__description span[style] {
  font-size: inherit !important;
  font-style: normal !important;
  font-family: inherit !important;
}

.m46-sheet .details__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
}

.m46-sheet .details__item {
  display: grid;
  grid-template-columns: minmax(7rem, 11rem) 1fr;
  gap: 0.75rem;
  padding: 0.5rem 0.65rem;
  background: rgba(20, 19, 16, 0.03);
  border-bottom: 1px solid rgba(20, 19, 16, 0.06);
  font-size: 0.9rem;
}

.m46-sheet .details__item:last-child {
  border-bottom: 0;
}

.m46-sheet .details__title {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--m46-steel);
}

.m46-sheet .details__right {
  color: var(--m46-ink);
}

.m46-sheet__meta:empty {
  display: none;
}

.m46-pdp__share {
  margin-top: 0.75rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--color-border);
}

.m46-pdp__share .product__additional-info,
.m46-pdp__share .ps-sharebuttons {
  margin: 0;
  padding: 0;
  border: 0;
}

.m46-pdp__share .ps-sharebuttons__label {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--m46-steel);
  font-weight: 600;
}

.m46-pdp__share .ps-sharebuttons__list {
  opacity: 0.7;
  gap: 0.35rem;
}

.m46-pdp__share .ps-sharebuttons__link {
  min-width: 2.5rem;
  min-height: 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--m46-steel) !important;
}

.m46-pdp__share .ps-sharebuttons__link:hover {
  color: var(--m46-black) !important;
}

/* Compat anciennes classes sheet / buybox */
.m46-product__bottom,
.m46-product__sheet,
.m46-product__share {
  width: 100%;
  max-width: none;
  min-width: 0;
  box-sizing: border-box;
}

.product-features,
.m46-sheet .product-features {
  border: 0;
  display: grid;
  gap: 0;
}

.product-features .name,
.product-features dt,
#product-details .data-sheet dt {
  background: transparent;
  color: var(--m46-steel);
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: 0.72rem;
  padding: 0.35rem 0;
  border-bottom: 1px solid rgba(20, 19, 16, 0.08);
}

.product-features .value,
.product-features dd,
#product-details .data-sheet dd {
  font-family: var(--font-body);
  font-weight: 500;
  padding: 0.35rem 0;
  background: transparent;
  border-bottom: 1px solid rgba(20, 19, 16, 0.08);
  font-size: 0.88rem;
}

/* ---- Responsive ---- */
@media (max-width: 991.98px) {
  .page-product #content-wrapper,
  .page-product .page-content {
    padding-block: 0 1.35rem;
  }

  .page-product .columns-container.container {
    padding-inline: 0.85rem;
    max-width: 100%;
  }

  .page-product .breadcrumb {
    font-size: 0.72rem;
  }

  .page-product .breadcrumb-item:last-child {
    max-width: 14rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

@media (max-width: 767.98px) {
  .page-product {
    --m46-pdp-gap: 0.65rem;
  }

  .m46-pdp__buybox.m46-buybox {
    position: static;
    border: 0;
    padding: 0.15rem 0 0;
    background: transparent;
  }

  .m46-pdp__gallery .product__thumbnail {
    width: 3.15rem;
  }

  /* Lisibilité Pro Max : body ≥16px, titres moins serrés */
  .m46-buybox__title,
  .m46-pdp .product__name,
  .m46-pdp .product__name.h2 {
    line-height: 1.2;
  }

  .m46-buybox__lead,
  .m46-buybox .product__description-short,
  .m46-buybox__lead p,
  .m46-buybox .product__description-short p {
    font-size: 1rem;
    line-height: 1.5;
  }

  .m46-buybox .form-select,
  .m46-buybox select.form-select {
    font-size: 1rem;
    line-height: 1.25;
  }

  /* Labels variantes + preuves : chrome lisible ≥13–14px */
  .m46-buybox .product-variant__label,
  .m46-buybox .product__variants .variant__label,
  .m46-buybox .product-variants .control-label,
  .m46-buybox .product-variant__legend {
    font-size: 0.875rem; /* 14px */
    letter-spacing: 0.04em;
    line-height: 1.3;
  }

  .m46-buybox__proofs li,
  .m46-reassurance li {
    font-size: 0.8125rem; /* 13px */
    line-height: 1.35;
  }

  .m46-sheet .accordion-button,
  .m46-spec-sheet .accordion-button {
    font-size: 0.875rem;
  }

  .m46-buybox__ref,
  .m46-product__ref,
  .m46-buybox__tax,
  .m46-buybox .product__tax-infos {
    font-size: 0.75rem; /* 12px floor */
  }

  /* CTA fixed mobile — mêmes hauteurs, pas de coupe */
  .page-product {
    --m46-sticky-buy-pad: calc(5.75rem + env(safe-area-inset-bottom, 0px));
  }

  .m46-buybox {
    --m46-buy-h: 3rem; /* 48px */
  }

  .m46-buybox__cta,
  .m46-buybox .product__actions-qty-add {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1040;
    flex-wrap: nowrap;
    gap: 0;
    align-items: stretch;
    height: auto;
    min-height: calc(var(--m46-buy-h) + 0.9rem + env(safe-area-inset-bottom, 0px));
    margin: 0;
    padding: 0.5rem 0.65rem calc(0.5rem + env(safe-area-inset-bottom, 0px));
    background: rgba(246, 244, 239, 0.97);
    border-top: 2px solid var(--m46-yellow);
    box-shadow: 0 -3px 12px rgba(20, 19, 16, 0.07);
    backdrop-filter: blur(6px);
    box-sizing: border-box;
  }

  .m46-buybox__cta > .product__quantity,
  .m46-buybox__cta > .product-actions__quantity,
  .m46-buybox__cta > .product__add-to-cart,
  .m46-buybox .product__actions-qty-add > .product__quantity,
  .m46-buybox .product__actions-qty-add > .product-actions__quantity,
  .m46-buybox .product__actions-qty-add > .product__add-to-cart {
    height: var(--m46-buy-h);
    min-height: var(--m46-buy-h);
    max-height: var(--m46-buy-h);
  }

  /* Qty −/+ : cible ≥44px */
  .m46-buybox .quantity-button__group > .btn,
  .m46-buybox .quantity-button__group > .btn-square-icon {
    width: 2.75rem;
    min-width: 2.75rem;
    max-width: 2.75rem;
  }

  .m46-buybox .quantity-button__group > .form-control {
    width: 2.5rem !important;
    min-width: 2.5rem !important;
    max-width: 2.5rem !important;
  }

  .page-product .m46-pdp__buybox {
    padding-bottom: var(--m46-sticky-buy-pad);
  }

  body.page-product {
    padding-bottom: var(--m46-sticky-buy-pad);
  }

  /* Merch / sheet : ne pas finir sous le sticky */
  .page-product .m46-pdp__after,
  .page-product .m46-pdp__sheet {
    padding-bottom: 0.75rem;
  }

  .m46-buybox .product__add-to-cart-button,
  .m46-buybox .product__add-to-cart-button.btn,
  .m46-buybox .product__add-to-cart-button.btn-primary,
  #add-to-cart-or-refresh .btn-primary {
    font-size: 0.95rem !important;
    padding-inline: 0.65rem !important;
    touch-action: manipulation;
  }

  .m46-buybox .product__add-to-cart-button:active,
  #add-to-cart-or-refresh .btn-primary:active {
    transform: scale(0.98);
  }

  .m46-sheet .details__item {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }
}

@media (max-width: 575.98px) {
  .page-product .columns-container.container {
    padding-inline: 0.7rem;
  }

  .page-product .breadcrumb-item:not(:first-child):not(:last-child) {
    display: none;
  }
}

/* -------------------------------------------------------------------------- */
/* Dropdown marques — panneau compact sous l’entrée (plus de méga-menu vide)  */
/* Spécificité alignée sur Hummingbird : .ps-mainmenu:is(.ps-mainmenu--desktop) */
/* -------------------------------------------------------------------------- */
.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) {
  position: static;
}

.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__desktop {
  position: static;
}

.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree > .ps-mainmenu__tree-item {
  position: relative;
}

.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree > li .submenu,
.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree > li .js-sub-menu {
  left: 50% !important;
  right: auto !important;
  /* Collé au li + padding haut = espace visuel sans trou (sinon mouseleave ferme) */
  top: 100% !important;
  transform: translateX(-50%);
  width: max-content !important;
  min-width: 15rem;
  max-width: min(32rem, 92vw);
  padding: 0.55rem !important;
  padding-top: 0.65rem !important;
  background: var(--m46-paper) !important;
  border: 2px solid var(--m46-black) !important;
  border-top: 3px solid var(--m46-yellow) !important;
  border-radius: 0 !important;
  box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.28) !important;
  z-index: 1065;
}

/* Pont hover au-dessus du panneau (sécurité si un gap reste) */
.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree > li .submenu::before,
.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree > li .js-sub-menu::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -0.75rem;
  height: 0.75rem;
}

.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .ps-mainmenu__tree > li .submenu .container {
  max-width: none !important;
  width: auto !important;
  padding: 0 !important;
  margin: 0 !important;
}

.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__row {
  display: block !important;
  margin: 0 !important;
  --bs-gutter-x: 0;
}

.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left {
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(7.25rem, 1fr));
  gap: 0.15rem 0.35rem;
  flex-direction: unset !important;
  border: 0 !important;
  padding: 0 !important;
}

.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__right {
  display: none !important;
}

.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item {
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  min-height: 2.25rem;
  padding: 0.4rem 0.65rem !important;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none !important;
  color: var(--m46-ink) !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  border-left: 3px solid transparent !important;
}

/* Pas de jaune “sélectionné” par défaut (Hummingbird met .active / aria-selected sur le 1er) */
.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item.active,
.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item[aria-selected="true"] {
  background: transparent !important;
  color: var(--m46-ink) !important;
  border-left-color: transparent !important;
}

.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item:hover,
.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item:focus-visible {
  background: var(--m46-yellow) !important;
  color: var(--m46-black) !important;
  border-left-color: var(--m46-black) !important;
  outline: none;
}

.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left-item[data-ps-has-child="true"]::after {
  display: none !important;
}

/* Peu de marques → une seule colonne */
.m46-header .ps-mainmenu:is(.ps-mainmenu--desktop) .submenu__left:has(> :nth-child(-n+4):last-child) {
  grid-template-columns: 1fr;
  min-width: 12rem;
}

/* Mobile : lignes menu = label + chevron sur la même rangée */
#mobileMenu .menu__list > li.menu--childrens {
  flex-wrap: nowrap;
}

#mobileMenu .menu--child .menu__link {
  font-size: 0.95rem;
  padding-left: 0.5rem !important;
}

/* (Fiche PDP unifiée — styles dans « Page produit ») */

/* Après sheet — merch / avis / cross-sell */
.m46-pdp__after {
  width: 100%;
  max-width: var(--m46-pdp-max);
  margin: 0 auto;
  padding: 0.35rem 0 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.m46-pdp__after > *:empty {
  display: none;
}

/* Avis : seulement si count > 0 (tpl) */
.page-product .product-comments-wrapper,
.page-product .m46-pdp__reviews {
  margin-top: 0.85rem;
  padding: 0.65rem 0 0;
  border-top: 1px solid var(--color-border);
  max-width: 48rem;
}

.page-product #product-comments-list-header .section-title,
.page-product .product-comments-wrapper .section-title {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--m46-ink);
  margin-bottom: 0.35rem;
}

.page-product .product-comments-wrapper .btn,
.page-product #product-comments-list-btn-group .btn {
  font-size: 0.8rem;
  min-height: 2.5rem;
}

/* Related — focus image/prix ; CTA cartes adoucis */
.page-product .ps-categoryproducts,
.page-product .ps-viewedproduct,
.page-product .ps-crossselling,
.page-product .viewed-products,
.page-product section.featured-products,
.page-product .product-accessories,
.page-product .product__accessories {
  margin-top: 1.15rem;
}

.page-product .ps-categoryproducts .section-title,
.page-product .ps-viewedproduct .section-title,
.page-product .ps-crossselling .section-title,
.page-product .viewed-products .title,
.page-product section.featured-products .title,
.page-product .product-accessories .title,
.page-product .product__accessories .section-title,
.page-product .product-accessories .section-title {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
  font-size: 0.95rem;
  margin-bottom: 0.55rem;
}

.page-product .ps-categoryproducts .product-miniature__inner,
.page-product .ps-viewedproduct .product-miniature__inner,
.page-product .ps-crossselling .product-miniature__inner,
.page-product .viewed-products .product-miniature__inner,
.page-product .featured-products .product-miniature__inner,
.page-product .product-accessories .product-miniature__inner,
.page-product .product__accessories .product-miniature__inner {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 0;
  box-shadow: none;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}

.page-product .ps-categoryproducts .product-miniature__inner:hover,
.page-product .ps-viewedproduct .product-miniature__inner:hover,
.page-product .ps-crossselling .product-miniature__inner:hover,
.page-product .product__accessories .product-miniature__inner:hover {
  border-color: var(--m46-black);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.1);
}

/* PDP merch cards : Voir secondaire lisible (ink, pas fantôme steel) */
.page-product .m46-pdp__after .product-miniature__add.btn-primary,
.page-product .ps-categoryproducts .product-miniature__add.btn-primary,
.page-product .ps-crossselling .product-miniature__add.btn-primary,
.page-product .product__accessories .product-miniature__add.btn-primary,
.page-product .ps-viewedproduct .product-miniature__add.btn-primary {
  background: #fff !important;
  color: var(--m46-ink) !important;
  border: 1.5px solid var(--m46-black) !important;
  box-shadow: none !important;
}

.page-product .m46-pdp__after .m46-card__see,
.page-product .ps-categoryproducts .m46-card__see,
.page-product .ps-crossselling .m46-card__see,
.page-product .product__accessories .m46-card__see,
.page-product .ps-viewedproduct .m46-card__see {
  width: 100%;
  min-height: 2.5rem;
  font-family: var(--font-display);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--m46-ink) !important;
  background: #fff !important;
  border: 1.5px solid var(--m46-black) !important;
  border-radius: 0;
  box-shadow: none !important;
  touch-action: manipulation;
  transition: background 160ms ease-out, transform 120ms ease-out;
}

.page-product .m46-pdp__after .m46-card__see:hover,
.page-product .ps-categoryproducts .m46-card__see:hover,
.page-product .ps-crossselling .m46-card__see:hover,
.page-product .product__accessories .m46-card__see:hover,
.page-product .ps-viewedproduct .m46-card__see:hover {
  color: var(--m46-black) !important;
  border-color: var(--m46-black) !important;
  background: var(--m46-paper) !important;
}

.page-product .m46-pdp__after .m46-card__see:active,
.page-product .ps-categoryproducts .m46-card__see:active,
.page-product .ps-crossselling .m46-card__see:active,
.page-product .product__accessories .m46-card__see:active,
.page-product .ps-viewedproduct .m46-card__see:active {
  transform: scale(0.98);
  background: var(--m46-paper-2) !important;
}

.page-product .m46-pdp__after .m46-card__see:focus-visible,
.page-product .ps-categoryproducts .m46-card__see:focus-visible,
.page-product .ps-crossselling .m46-card__see:focus-visible,
.page-product .product__accessories .m46-card__see:focus-visible,
.page-product .ps-viewedproduct .m46-card__see:focus-visible {
  outline: 3px solid var(--m46-black);
  outline-offset: 3px;
}

/* PDP merch : alléger chrome HTML (flags) — watermarks photo = assets */
.page-product .ps-categoryproducts .product-miniature .product-flags,
.page-product .ps-viewedproduct .product-miniature .product-flags,
.page-product .ps-crossselling .product-miniature .product-flags,
.page-product .viewed-products .product-miniature .product-flags,
.page-product .featured-products .product-miniature .product-flags,
.page-product .product-accessories .product-miniature .product-flags,
.page-product .m46-pdp__after .product-miniature .product-flags {
  display: none !important;
}

/* PDP merch : cartes uniformes (même hauteur, CTA alignés) */
.page-product .ps-categoryproducts .products,
.page-product .ps-viewedproduct .products,
.page-product .ps-crossselling .products,
.page-product .viewed-products .products,
.page-product section.featured-products .products,
.page-product .product-accessories .products,
.page-product .product__accessories .products,
.page-product .m46-pdp__after .products,
.page-product .module-products__list .products {
  align-items: stretch;
}

.page-product .ps-categoryproducts .product-miniature,
.page-product .ps-viewedproduct .product-miniature,
.page-product .ps-crossselling .product-miniature,
.page-product .viewed-products .product-miniature,
.page-product .featured-products .product-miniature,
.page-product .product-accessories .product-miniature,
.page-product .product__accessories .product-miniature,
.page-product .m46-pdp__after .product-miniature {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.page-product .ps-categoryproducts .product-miniature__inner,
.page-product .ps-viewedproduct .product-miniature__inner,
.page-product .ps-crossselling .product-miniature__inner,
.page-product .viewed-products .product-miniature__inner,
.page-product .featured-products .product-miniature__inner,
.page-product .product-accessories .product-miniature__inner,
.page-product .product__accessories .product-miniature__inner,
.page-product .m46-pdp__after .product-miniature__inner {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}

.page-product .ps-categoryproducts .product-miniature__bottom,
.page-product .ps-viewedproduct .product-miniature__bottom,
.page-product .ps-crossselling .product-miniature__bottom,
.page-product .viewed-products .product-miniature__bottom,
.page-product .featured-products .product-miniature__bottom,
.page-product .product-accessories .product-miniature__bottom,
.page-product .m46-pdp__after .product-miniature__bottom {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.page-product .ps-categoryproducts .product-miniature__infos,
.page-product .ps-viewedproduct .product-miniature__infos,
.page-product .ps-crossselling .product-miniature__infos,
.page-product .m46-pdp__after .product-miniature__infos {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 0.3rem !important;
  min-height: 0;
}

.page-product .ps-categoryproducts .product-miniature__title,
.page-product .ps-viewedproduct .product-miniature__title,
.page-product .ps-crossselling .product-miniature__title,
.page-product .viewed-products .product-miniature__title,
.page-product .featured-products .product-miniature__title,
.page-product .product-accessories .product-miniature__title,
.page-product .m46-pdp__after .product-miniature__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: calc(1.3em * 2); /* réserve 2 lignes → prix/CTA alignés */
}

.page-product .ps-categoryproducts .product-miniature__prices,
.page-product .ps-viewedproduct .product-miniature__prices,
.page-product .ps-crossselling .product-miniature__prices,
.page-product .m46-pdp__after .product-miniature__prices {
  margin-top: auto;
  min-height: 1.35rem;
}

.page-product .ps-categoryproducts .product-miniature__actions,
.page-product .ps-viewedproduct .product-miniature__actions,
.page-product .ps-crossselling .product-miniature__actions,
.page-product .product-accessories .product-miniature__actions,
.page-product .m46-pdp__after .product-miniature__actions {
  margin-top: 0.35rem;
}

/* Masquer pastilles / avis — source d’inégalités de hauteur */
.page-product .ps-categoryproducts .product-miniature__variants,
.page-product .ps-viewedproduct .product-miniature__variants,
.page-product .ps-crossselling .product-miniature__variants,
.page-product .viewed-products .product-miniature__variants,
.page-product .featured-products .product-miniature__variants,
.page-product .product-accessories .product-miniature__variants,
.page-product .m46-pdp__after .product-miniature__variants,
.page-product .ps-categoryproducts .product-miniature .nb-comments,
.page-product .ps-crossselling .product-miniature .nb-comments,
.page-product .m46-pdp__after .product-miniature .nb-comments,
.page-product .ps-categoryproducts .product-miniature__reviews,
.page-product .ps-crossselling .product-miniature__reviews,
.page-product .m46-pdp__after .product-miniature__reviews,
.page-product .ps-categoryproducts .comments_note,
.page-product .ps-crossselling .comments_note,
.page-product .m46-pdp__after .comments_note {
  display: none !important;
}

/* PDP merch mobile : 2 cols denses (pas de cartes géantes) */
@media (max-width: 767.98px) {
  .page-product .ps-categoryproducts .products,
  .page-product .ps-viewedproduct .products,
  .page-product .ps-crossselling .products,
  .page-product .viewed-products .products,
  .page-product section.featured-products .products,
  .page-product .product-accessories .products,
  .page-product .product__accessories .products,
  .page-product .m46-pdp__after .products,
  .page-product .module-products__list .products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.5rem;
    align-items: stretch;
  }

  .page-product .ps-categoryproducts .product-miniature__top img,
  .page-product .ps-viewedproduct .product-miniature__top img,
  .page-product .ps-crossselling .product-miniature__top img,
  .page-product .viewed-products .product-miniature__top img,
  .page-product .featured-products .product-miniature__top img,
  .page-product .product-accessories .product-miniature__top img,
  .page-product .product__accessories .product-miniature__top img,
  .page-product .m46-pdp__after .product-miniature__top img {
    max-height: none;
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .page-product .ps-categoryproducts .product-miniature__bottom,
  .page-product .ps-viewedproduct .product-miniature__bottom,
  .page-product .ps-crossselling .product-miniature__bottom,
  .page-product .viewed-products .product-miniature__bottom,
  .page-product .featured-products .product-miniature__bottom,
  .page-product .product-accessories .product-miniature__bottom,
  .page-product .m46-pdp__after .product-miniature__bottom {
    padding: 0.45rem 0.5rem 0.55rem !important;
    gap: 0.25rem !important;
  }

  .page-product .ps-categoryproducts .product-miniature__title,
  .page-product .ps-viewedproduct .product-miniature__title,
  .page-product .ps-crossselling .product-miniature__title,
  .page-product .viewed-products .product-miniature__title,
  .page-product .featured-products .product-miniature__title,
  .page-product .product-accessories .product-miniature__title,
  .page-product .m46-pdp__after .product-miniature__title {
    font-size: 0.9375rem; /* 15px */
    line-height: 1.3;
    -webkit-line-clamp: 2;
    min-height: calc(0.9375rem * 1.3 * 2);
  }

  .page-product .ps-categoryproducts .product-miniature__price,
  .page-product .ps-viewedproduct .product-miniature__price,
  .page-product .ps-crossselling .product-miniature__price,
  .page-product .m46-pdp__after .product-miniature__price {
    font-size: 1rem; /* 16px */
  }

  .page-product .ps-categoryproducts .m46-card__see,
  .page-product .ps-crossselling .m46-card__see,
  .page-product .product__accessories .m46-card__see,
  .page-product .ps-viewedproduct .m46-card__see,
  .page-product .m46-pdp__after .m46-card__see {
    min-height: 2.75rem; /* ≥44px */
    font-size: 0.875rem; /* 14px */
  }

  .page-product .ps-categoryproducts .section-title,
  .page-product .ps-viewedproduct .section-title,
  .page-product .ps-crossselling .section-title,
  .page-product .viewed-products .title,
  .page-product section.featured-products .title,
  .page-product .product-accessories .section-title {
    font-size: 0.9rem;
    margin-bottom: 0.45rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .m46-buybox .product__add-to-cart-button,
  .m46-pdp__gallery .product__thumbnail,
  .m46-pdp__gallery .product__zoom,
  .m46-buybox .product__variants .color {
    transition: none !important;
  }
}

/* -------------------------------------------------------------------------- */
/* Footer                                                                      */
/* -------------------------------------------------------------------------- */
.footer.m46-footer,
.footer__main.m46-footer,
.footer__main {
  background: var(--m46-black);
  color: rgba(255, 255, 255, 0.82);
  margin-top: var(--space-12);
}

.m46-footer a,
.footer__main a {
  color: rgba(255, 255, 255, 0.82);
}

.m46-footer a:hover,
.footer__main a:hover {
  color: var(--m46-yellow);
}

.m46-footer .h3,
.m46-footer .title,
.footer__main .title,
.footer__main .h3,
.footer__main .h4 {
  color: #fff;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.m46-footer-before {
  background: var(--m46-black);
  color: #fff;
  border-bottom: none;
  padding: 0;
}

/* Continuité visuelle : newsletter dans footer-before, puis bande hazard */
.m46-footer-before + .footer.m46-footer,
.m46-footer-before + .footer__main.m46-footer,
.m46-footer-before + .footer__main {
  margin-top: 0;
}

.m46-made-in-france {
  margin: var(--space-6) 0 var(--space-4);
  padding-bottom: var(--space-4);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.m46-made-in-france__text {
  font-size: var(--fs-small);
  color: rgba(255, 255, 255, 0.7);
}

.m46-made-in-france__text a {
  color: var(--m46-yellow);
}

.m46-footer__copy,
.copyright {
  margin-top: var(--space-6);
  padding-top: var(--space-4);
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.5);
  font-size: var(--fs-small);
  text-align: center;
}

.m46-credit {
  margin: 0.55rem 0 0;
  padding: 0 0 1.15rem;
  text-align: center;
  font-family: var(--font-display);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.055em;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.62);
}

.m46-credit__heart {
  display: inline-block;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-style: normal;
  letter-spacing: 0;
  color: var(--m46-yellow);
  font-size: 0.95em;
  line-height: 1;
  vertical-align: 0.05em;
  margin: 0 0.16em;
}

.m46-footer .m46-credit__link,
.footer__main .m46-credit__link {
  color: rgba(255, 255, 255, 0.82);
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 206, 0, 0.55);
  padding-bottom: 0.04em;
  transition: color 160ms ease-out, border-color 160ms ease-out;
}

.m46-footer .m46-credit__link:hover,
.m46-footer .m46-credit__link:focus-visible,
.footer__main .m46-credit__link:hover,
.footer__main .m46-credit__link:focus-visible {
  color: var(--m46-yellow);
  border-bottom-color: var(--m46-yellow);
}

.footer input.form-control:not(.m46-newsletter__input) {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #fff;
}

/* -------------------------------------------------------------------------- */
/* Transverses                                                                 */
/* -------------------------------------------------------------------------- */

/*
 * Spacing global breadcrumb → contenu (~1.75rem).
 * Margin sous le fil d’Ariane : couvre catalogue, compte (container--limited-*),
 * CMS, checkout — sans dépendre du type de conteneur Hummingbird.
 * Home n’a pas de breadcrumb → hero reste collé au header.
 */
.breadcrumb__wrapper.m46-breadcrumb,
.m46-breadcrumb {
  background: var(--m46-paper-2);
  border-bottom: 1px solid var(--color-border);
  padding: 0.7rem 0;
  margin: 0 0 var(--m46-content-inset-top);
}

.breadcrumb {
  background: transparent;
  font-size: 0.8rem;
  --bs-breadcrumb-divider: "/";
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
  row-gap: 0.15rem;
}

.breadcrumb-item,
.m46-breadcrumb .breadcrumb-item {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 600;
  color: var(--m46-steel);
}

.breadcrumb-item a,
.m46-breadcrumb .breadcrumb-link {
  color: var(--m46-steel);
  text-decoration: none;
}

.breadcrumb-item a:hover,
.m46-breadcrumb .breadcrumb-link:hover {
  color: var(--m46-ink);
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.15rem;
}

.breadcrumb-item.active,
.breadcrumb [aria-current="page"],
.m46-breadcrumb .breadcrumb-item.active,
.m46-breadcrumb .breadcrumb-item:last-child {
  font-weight: 700;
  color: var(--m46-ink);
}

/* Auth / panier : le H1 porte déjà le titre — fil discret */
.page-authentication .m46-breadcrumb,
.page-registration .m46-breadcrumb,
.page-password .m46-breadcrumb,
.page-cart .m46-breadcrumb {
  background: transparent;
  border-bottom: 0;
  padding-block: 0.35rem 0;
}

.facet .facet-label.active,
.facet .active,
#search_filters .facet a.active {
  color: var(--m46-ink);
  font-weight: 600;
}

.page-list .current a,
.pagination .page-item.active .page-link {
  background: var(--m46-yellow);
  color: var(--m46-black);
  border: var(--border-strong);
  font-weight: 700;
}

.cart-summary,
.checkout-step,
.card {
  border-color: var(--color-border);
  border-radius: var(--radius-md);
}

.form-control:focus,
.form-select:focus {
  border-color: var(--m46-black);
  box-shadow: 0 0 0 0.2rem rgba(255, 206, 0, 0.45);
}

.m46-404__code {
  font-family: var(--font-display);
  color: var(--m46-ink);
}

.m46-404__lead {
  color: var(--m46-steel);
}

/* -------------------------------------------------------------------------- */
/* Motion                                                                      */
/* -------------------------------------------------------------------------- */
@keyframes m46-fade-up {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.featured-products .product-miniature,
.products .product-miniature {
  animation: m46-fade-up 0.45s ease both;
}

.featured-products .product-miniature:nth-child(2),
.products .product-miniature:nth-child(2) {
  animation-delay: 0.06s;
}

.featured-products .product-miniature:nth-child(3),
.products .product-miniature:nth-child(3) {
  animation-delay: 0.12s;
}

.featured-products .product-miniature:nth-child(4),
.products .product-miniature:nth-child(4) {
  animation-delay: 0.18s;
}

/* -------------------------------------------------------------------------- */
/* Responsive                                                                  */
/* -------------------------------------------------------------------------- */
@media (max-width: 767.98px) {
  /* clip sur le contenu, pas le body — sinon position:sticky du header casse */
  #wrapper.wrapper {
    overflow-x: clip;
  }

  .m46-topbar__tagline {
    display: none;
  }

  .header-bottom.m46-header,
  .header-bottom {
    padding: max(0.45rem, env(safe-area-inset-top, 0px)) 0 0.45rem;
  }

  .header-bottom__row {
    column-gap: 0.2rem;
  }

  /* Lean header — logo fixe gauche, pas de flex-grow qui centre/élargi */
  .header-bottom__logo,
  .m46-header__logo {
    flex: 0 0 auto;
    min-width: 0;
    max-width: 7.5rem;
  }

  .header-bottom__logo img,
  .m46-header__logo img,
  #header .logo img {
    max-height: 34px !important;
    max-width: 120px !important;
    width: auto;
  }

  /* Icône seule — le libellé "Menu" faisait déborder la page (~35px) */
  .m46-header .ps-mainmenu__mobile-toggle .menu-toggle::after {
    content: none;
  }

  .m46-header .ps-mainmenu__mobile-toggle .menu-toggle {
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0.3rem;
  }

  .featured-products .products,
  .products {
    --bs-gutter-x: 0.75rem;
  }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
  .header-bottom__row {
    column-gap: 0.65rem;
  }

  /* Burger tablette : garder le libellé si la place le permet */
  /* NOTE A11y: "Menu" EN hardcodé — retirer si label HTML {l} ajouté au bouton */
  .m46-header .ps-mainmenu__mobile-toggle .menu-toggle::after {
    content: "Menu";
  }
}

/* Desktop large : champ recherche inline à l’aise */
@media (min-width: 992px) {
  .m46-header #_desktop_ps_searchbar,
  .m46-header .ps-searchbar {
    flex: 0 1 16rem;
    max-width: 20rem;
  }
}

/* Bloc atelier (ex-SEO) — plus compact, après les produits */
#custom-text,
.custom-text {
  max-width: 48rem;
  margin-inline: auto;
  padding: 2rem 1rem 3rem;
}

#custom-text h2,
.custom-text h2 {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* -------------------------------------------------------------------------- */
/* Page panier — atelier / conversion                                          */
/* -------------------------------------------------------------------------- */
.page-cart #content-wrapper,
.page-cart .page-content {
  /* inset top = margin breadcrumb */
  padding-block: 0 2.5rem;
}

.page-cart .page-title-section h1,
.page-cart .m46-cart-empty__title {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: var(--lh-tight);
  margin: 0 0 1rem;
}

/* Empty state — une colonne, CTA fort, pas de récap fantôme */
.m46-cart-empty {
  max-width: 40rem;
  margin: 0 auto 2rem;
  text-align: center;
}

.m46-cart-empty__panel {
  background: var(--m46-paper);
  border: 1px solid var(--color-border);
  border-top: 3px solid var(--m46-yellow);
  padding: 1.75rem 1.5rem 1.85rem;
}

.m46-cart-empty__lead {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  color: var(--m46-ink);
  margin: 0 0 0.5rem;
}

.m46-cart-empty__text {
  color: var(--m46-steel);
  font-size: 0.95rem;
  line-height: 1.5;
  margin: 0 0 1.35rem;
}

.m46-cart-empty__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: center;
}

.m46-cart-empty__cta {
  min-height: 3rem;
  padding-inline: 1.4rem;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
  font-size: 1.05rem;
}

.m46-cart-empty__secondary {
  min-height: 3rem;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
}

/* Panier rempli */
.m46-cart .cart__overview {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  padding: 0.25rem 1rem 0.5rem;
  margin-bottom: 1rem;
}

.m46-cart .cart__item + .cart__item {
  border-top: 1px solid var(--color-border);
}

.m46-cart .product-line {
  padding-block: 1rem;
}

.m46-cart .product-line__title {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
  font-size: 1rem;
  color: var(--m46-ink);
}

.m46-cart .product-line__img {
  border: 1px solid var(--color-border);
  background: #fff;
  overflow: hidden;
}

.m46-cart .product-line__img img {
  object-fit: contain;
  object-position: center;
  background: #fff;
  width: 100%;
  height: 100%;
}

.m46-cart__continue {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.m46-cart-summary {
  background: var(--m46-paper);
  border: 1px solid var(--color-border);
  border-top: 3px solid var(--m46-yellow);
  padding: 1.15rem 1.1rem 1.25rem;
  position: sticky;
  top: var(--scroll-padding-top, 6.5rem);
  z-index: 2;
}

.m46-cart-summary__title {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: 1.25rem;
  margin: 0 0 0.85rem;
  line-height: 1.15;
}

.m46-cart-summary .cart-summary__label,
.m46-cart-summary .cart-summary__value {
  font-size: 0.92rem;
}

.m46-cart-summary .cart-summary__line--bold .cart-summary__label,
.m46-cart-summary .cart-summary__line--bold .cart-summary__value,
.m46-cart-summary .cart-summary__total .cart-summary__label,
.m46-cart-summary .cart-summary__total .cart-summary__value {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
  font-size: 1.05rem;
}

.m46-cart-actions {
  margin-top: 1rem;
}

.m46-cart-actions__cta {
  min-height: 3.15rem;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
  font-size: 1.1rem;
  border-radius: 0;
}

/* PayPal Messages / Pay Later — air sous COMMANDER (récap panier + checkout) */
.page-cart .cart-summary [paypal-messaging-banner],
.page-cart .cart-summary .paypal-pay-later-banner,
.page-cart .cart-summary [installment-container],
.page-cart .cart-summary [data-pp-message],
.page-cart .cart-summary .pp-message,
.page-cart .m46-cart-summary [paypal-messaging-banner],
.page-cart .m46-cart-summary [data-pp-message],
.page-cart .m46-cart-summary .pp-message,
body#checkout .cart-summary [paypal-messaging-banner],
body#checkout .cart-summary .paypal-pay-later-banner,
body#checkout .cart-summary [installment-container],
body#checkout .cart-summary [data-pp-message],
body#checkout .cart-summary .pp-message,
body#checkout .m46-checkout-summary [paypal-messaging-banner],
body#checkout .m46-checkout-summary [data-pp-message],
body#checkout .m46-checkout-summary .pp-message {
  display: block;
  width: 100%;
  margin-top: var(--space-3);
  border-radius: 0;
}

.m46-cart-reassurance {
  margin-top: 1.1rem;
  padding-top: 0.85rem;
}

/* Avis atelier livraison offerte — bloc inset, pas une ligne de récap / jauge SaaS */
.m46-ship-nudge {
  margin: 0.7rem 0 0.75rem;
  background: var(--m46-paper-2);
  border: 0;
  border-left: 3px solid var(--m46-yellow);
}

.m46-ship-nudge__body {
  padding: 0.55rem 0.7rem 0.55rem 0.75rem;
}

.m46-ship-nudge__msg {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.82rem;
  letter-spacing: 0;
  text-transform: none;
  color: var(--m46-steel);
  margin: 0;
  line-height: 1.35;
}

.m46-ship-nudge__amt {
  display: block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.65rem;
  letter-spacing: 0.02em;
  line-height: 1;
  text-transform: none;
  color: var(--m46-ink);
  margin: 0.12rem 0 0.08rem;
  font-variant-numeric: tabular-nums;
}

.m46-ship-nudge__meter {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.6rem;
  align-items: center;
  margin-top: 0.55rem;
}

.m46-ship-nudge__bar {
  height: 12px;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--m46-ink);
  overflow: hidden;
}

.m46-ship-nudge__bar-fill {
  display: block;
  height: 100%;
  width: var(--m46-ship-pct, 0%);
  background: var(--m46-yellow);
  transform-origin: left center;
}

.m46-ship-nudge__pct {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  line-height: 1;
  color: var(--m46-ink);
  font-variant-numeric: tabular-nums;
  min-width: 2.6em;
  text-align: right;
}

@media (prefers-reduced-motion: no-preference) {
  .m46-ship-nudge__bar-fill {
    transition: width 0.28s ease;
  }
}

.m46-ship-nudge--done {
  background: var(--m46-paper-2);
  border-left-color: var(--m46-yellow);
}

.m46-ship-nudge__won {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.2rem;
  letter-spacing: 0.03em;
  line-height: 1.15;
  text-transform: none;
  color: var(--m46-ink);
}

.m46-ship-nudge__from {
  margin: 0.2rem 0 0;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.82rem;
  line-height: 1.3;
  color: var(--m46-steel);
}

.m46-checkout-summary .m46-ship-nudge {
  margin: 0.45rem 0 0.5rem;
}

.m46-checkout-summary .m46-ship-nudge__body {
  padding: 0.4rem 0.55rem 0.42rem 0.6rem;
}

.m46-checkout-summary .m46-ship-nudge__amt {
  font-size: 1.28rem;
}

.m46-checkout-summary .m46-ship-nudge__won {
  font-size: 1.05rem;
}

.m46-checkout-summary .m46-ship-nudge__bar {
  height: 10px;
}

.m46-checkout-summary .m46-ship-nudge__pct {
  font-size: 0.85rem;
}

.m46-shipping-notice {
  margin: 0 0 0.85rem;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--m46-steel);
}
}

.m46-cart-reco {
  margin-top: 2.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--color-border);
}

.m46-cart-reco .section-title,
.m46-cart-reco .title,
.page-cart .featured-products .title {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
}

/* Sticky CTA mobile (panier rempli uniquement) */
@media (max-width: 991.98px) {
  .page-cart:not(.cart-empty) {
    padding-bottom: 5.5rem;
  }

  .page-cart:not(.cart-empty) .m46-cart-summary {
    position: static;
    margin-top: 1.25rem;
  }

  .page-cart:not(.cart-empty) .m46-cart-actions {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1040;
    margin: 0;
    padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom, 0px));
    background: rgba(246, 244, 239, 0.96);
    border-top: 2px solid var(--m46-yellow);
    box-shadow: 0 -6px 20px rgba(20, 19, 16, 0.12);
  }

  .page-cart:not(.cart-empty) .m46-cart-reassurance {
    grid-template-columns: 1fr 1fr;
  }
}

/* -------------------------------------------------------------------------- */
/* Page catégorie — listing aéré, scan facile                                  */
/* -------------------------------------------------------------------------- */
/* Hummingbird catégorie = .columns-container (pas #content-wrapper) */
.page-category .columns-container.container,
.page-manufacturer .columns-container.container,
.page-search .columns-container.container {
  max-width: 1280px;
  /* inset top = margin breadcrumb (--m46-content-inset-top) */
  padding-top: 0;
  padding-bottom: 2.75rem;
}

.page-category #center-column,
.page-manufacturer #center-column,
.page-search #center-column {
  padding-top: 0.15rem;
}

.page-category #js-product-list-header,
.page-manufacturer #js-product-list-header,
.page-search #js-product-list-header {
  margin-top: 0;
  padding-top: 0.25rem;
}

.m46-category-header {
  margin-bottom: 1.35rem;
  padding-bottom: 0.35rem;
}

/* Retour + logo marque (page sous-catégorie) */
.m46-category-header__back {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  min-height: 2.5rem;
  margin: 0 0 0.75rem;
  padding: 0.15rem 0;
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none !important;
  color: var(--m46-steel) !important;
}

.m46-category-header__back .material-icons {
  font-size: 1.15rem;
  line-height: 1;
}

.m46-category-header__back:hover {
  color: var(--m46-black) !important;
}

.m46-category-header__back:hover span {
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.15rem;
}

.m46-category-header__top {
  display: flex;
  align-items: center;
  gap: 1rem 1.25rem;
  margin-bottom: 0.35rem;
}

.m46-category-header__logo-link {
  flex: 0 0 auto;
  text-decoration: none !important;
  color: inherit;
}

.m46-category-header__logo-frame {
  display: grid;
  place-items: center;
  width: clamp(4.25rem, 12vw, 5.75rem);
  height: clamp(4.25rem, 12vw, 5.75rem);
  padding: 0.4rem;
  background: #fff;
  border: 1px solid var(--color-border);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.m46-category-header__logo-link:hover .m46-category-header__logo-frame {
  border-color: var(--m46-black);
  box-shadow: 3px 3px 0 rgba(20, 19, 16, 0.1);
}

.m46-category-header__logo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
}

.m46-category-header--shop-brand .m46-category-header__logo-frame {
  width: 11.5rem;
  height: 5.25rem;
  padding: 0.55rem 0.7rem;
  background: #fff;
}

.m46-category-header__text {
  flex: 1 1 auto;
  min-width: 0;
}

.page-category .page-title-section,
.m46-category-header .page-title-section {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
  font-size: clamp(1.35rem, 3.2vw, 2.2rem);
  line-height: 1.08;
  margin: 0 0 0.55rem;
  padding-top: 0.15rem;
  text-wrap: balance;
}

.m46-category-header--brand .page-title-section {
  margin-bottom: 0.35rem;
}

.m46-category-header__desc,
.page-category .category__description {
  color: var(--m46-steel);
  font-size: 0.95rem;
  line-height: 1.55;
  margin: 0 0 1.15rem;
  max-width: 40rem;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none;
  border: 0;
  padding: 0;
}

.m46-category-header--brand .m46-category-header__desc {
  margin-bottom: 0.35rem;
}

.m46-category-header__desc p,
.page-category .category__description p {
  margin: 0;
  background: transparent !important;
  background-color: transparent !important;
}

/* CMS PrestaShop : spans inline background-color:#ffffff sur le papier beige */
.m46-category-header__desc span[style],
.page-category .category__description span[style],
.m46-category-header__desc *,
.page-category .category__description * {
  background: transparent !important;
  background-color: transparent !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-style: inherit !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
  color: inherit !important;
}

.m46-category-header__cover,
.page-category .category__cover {
  display: none;
}

/* -------------------------------------------------------------------------- */
/* Filtre marques - section mise en avant (nav parent → listing)               */
/* -------------------------------------------------------------------------- */
.m46-subcats {
  position: relative;
  margin: 0.35rem 0 1.65rem;
  padding: 1.05rem 1rem 1.15rem;
  background: #fff;
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--m46-yellow);
  box-shadow: 0 1px 0 rgba(20, 19, 16, 0.04);
}

/* Pas de trait sous le bloc marques — évite les séparateurs flottants */
.m46-subcats::after {
  content: none;
  display: none;
}

.m46-subcats__head {
  margin: 0 0 0.85rem;
}

.m46-subcats__label {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
  font-size: 1.05rem;
  line-height: 1.15;
  color: var(--m46-ink);
  margin: 0;
}

.m46-subcats__lead {
  margin: 0.28rem 0 0;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--m46-steel);
  max-width: 42ch;
}

/* Chips texte (fallback) : flex. Tuiles logos : grid (spec > .page-category .subcategory__list) */
.m46-subcats__list:not(.m46-subcats__list--tiles),
.page-category .subcategory__list:not(.m46-subcats__list--tiles) {
  display: flex !important;
  flex-wrap: wrap;
  gap: 0.4rem;
  overflow: visible;
  padding: 0;
  margin: 0;
}

.page-category .m46-subcats__list--tiles,
.m46-subcats__list--tiles {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(6.75rem, 1fr));
  gap: 0.75rem 0.6rem;
  align-items: start;
  overflow: visible;
  padding: 0;
  margin: 0;
  width: 100%;
  max-width: 100%;
}

.m46-subcats__chip,
.page-category .subcategory__link {
  flex: 0 0 auto;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 2.15rem;
  padding: 0.35rem 0.75rem !important;
  background: #fff;
  border: 1px solid transparent !important;
  border-radius: 0 !important;
  color: var(--m46-ink) !important;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  text-decoration: none !important;
  white-space: nowrap;
  box-shadow: none !important;
  transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.page-category .m46-subcats__tile,
.m46-subcats__tile {
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 0.4rem;
  width: auto !important;
  max-width: 8.5rem;
  min-height: 2.75rem !important; /* touch ≥44px */
  min-width: 0;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  white-space: normal;
  -webkit-tap-highlight-color: transparent;
}

.m46-subcats__media {
  position: relative;
  aspect-ratio: 4 / 3;
  width: 100%;
  max-height: none;
  min-height: 4.75rem;
  background: #fff;
  border: 1px solid var(--color-border);
  overflow: hidden;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.m46-subcats__logo {
  position: absolute;
  inset: 0.45rem;
  display: block;
  width: calc(100% - 0.9rem);
  height: calc(100% - 0.9rem);
  max-width: none;
  max-height: none;
  margin: auto;
  object-fit: contain;
  object-position: center center;
}

.m46-subcats__name {
  display: block;
  text-align: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--m46-ink);
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.m46-subcats__chip:hover,
.page-category .subcategory__link:hover {
  border-color: var(--m46-black) !important;
  background: var(--m46-yellow);
  color: var(--m46-black) !important;
  transform: none;
}

.m46-subcats__tile:hover,
.m46-subcats__tile:focus-visible {
  background: transparent !important;
  border: 0 !important;
  outline: none;
}

.m46-subcats__tile:focus-visible .m46-subcats__media {
  outline: 3px solid var(--m46-black);
  outline-offset: 2px;
}

.m46-subcats__tile:hover .m46-subcats__media,
.m46-subcats__tile:focus-visible .m46-subcats__media {
  border-color: var(--m46-black);
  box-shadow: 3px 3px 0 rgba(20, 19, 16, 0.14);
}

.m46-subcats__tile:hover .m46-subcats__name,
.m46-subcats__tile:focus-visible .m46-subcats__name {
  color: var(--m46-black);
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.18rem;
  text-decoration-thickness: 2px;
}

.m46-subcats__tile.is-fallback .m46-subcats__media {
  background: #fff;
}

.page-category .subcategory__thumbnail {
  display: none !important;
}

/* Dense (>6 marques, ex. MX) : grille un peu plus serrée, toujours lisible */
.m46-subcats--dense {
  padding: 0.95rem 0.9rem 1.05rem;
}

.m46-subcats--dense .m46-subcats__head {
  margin-bottom: 0.7rem;
}

.page-category .m46-subcats--dense .m46-subcats__list--tiles,
.m46-subcats--dense .m46-subcats__list--tiles {
  grid-template-columns: repeat(auto-fill, minmax(5.5rem, 1fr));
  gap: 0.55rem 0.45rem;
}

.m46-subcats--dense .m46-subcats__tile {
  gap: 0.3rem;
  max-width: 7.25rem;
}

.m46-subcats--dense .m46-subcats__media {
  min-height: 3.75rem;
}

.m46-subcats--dense .m46-subcats__logo {
  inset: 0.35rem;
  width: calc(100% - 0.7rem);
  height: calc(100% - 0.7rem);
}

.m46-subcats--dense .m46-subcats__name {
  font-size: 0.66rem;
}

/* Expand / collapse marques — « Voir plus » (pas de carrousel) */
.m46-subcats__more {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  width: 100%;
  min-height: 2.75rem; /* touch ≥44px */
  margin: 0.65rem 0 0;
  padding: 0.55rem 0.75rem;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--color-border);
  color: var(--m46-ink);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: color 0.15s ease, background-color 0.15s ease;
}

.m46-subcats__more:hover,
.m46-subcats__more:focus-visible {
  color: var(--m46-black);
  background: rgba(255, 206, 0, 0.18);
  outline: none;
}

.m46-subcats__more:focus-visible {
  outline: 3px solid var(--m46-black);
  outline-offset: 3px;
}

.m46-subcats__more-chevron {
  display: inline-block;
  width: 0.55rem;
  height: 0.55rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.2s ease;
  flex-shrink: 0;
  margin-top: -0.2rem;
}

.m46-subcats.is-expanded .m46-subcats__more-chevron {
  transform: rotate(225deg);
  margin-top: 0.15rem;
}

/* Mobile / tablette étroite : 6 visibles (2×3), reste masqué */
@media (max-width: 767.98px) {
  .m46-subcats--fold .m46-subcats__more {
    display: inline-flex;
  }

  .m46-subcats--fold:not(.is-expanded) .m46-subcats__list--tiles > .m46-subcats__tile:nth-child(n + 7) {
    display: none !important;
  }
}

/* Desktop dense (>9 marques, ex. MX) : même pattern, 9 visibles */
@media (min-width: 768px) {
  .m46-subcats--fold-lg .m46-subcats__more {
    display: inline-flex;
  }

  .m46-subcats--fold-lg:not(.is-expanded) .m46-subcats__list--tiles > .m46-subcats__tile:nth-child(n + 10) {
    display: none !important;
  }
}

@media (min-width: 576px) {
  .m46-subcats {
    padding: 1.15rem 1.15rem 1.25rem;
  }

  .m46-subcats__label {
    font-size: 1.15rem;
  }

  .page-category .m46-subcats__list--tiles,
  .m46-subcats__list--tiles {
    grid-template-columns: repeat(auto-fill, minmax(6.75rem, 1fr));
    gap: 0.75rem 0.65rem;
  }

  .m46-subcats__media {
    min-height: 4.75rem;
  }

  .m46-subcats__name {
    font-size: 0.76rem;
  }

  .page-category .m46-subcats--dense .m46-subcats__list--tiles,
  .m46-subcats--dense .m46-subcats__list--tiles {
    grid-template-columns: repeat(auto-fill, minmax(5.85rem, 1fr));
    gap: 0.6rem 0.5rem;
  }

  .m46-subcats--dense .m46-subcats__media {
    min-height: 4.1rem;
  }

  .m46-subcats--dense .m46-subcats__name {
    font-size: 0.7rem;
  }
}

@media (min-width: 768px) {
  .m46-subcats {
    margin-bottom: 1.85rem;
  }

  .page-category .m46-subcats__list--tiles,
  .m46-subcats__list--tiles {
    grid-template-columns: repeat(auto-fill, minmax(7.25rem, 1fr));
    gap: 0.8rem 0.7rem;
  }

  .m46-subcats__tile {
    max-width: 9rem;
  }

  .m46-subcats__media {
    min-height: 5.25rem;
  }
}

@media (min-width: 992px) {
  .m46-subcats {
    padding: 1.25rem 1.3rem 1.35rem;
    margin-bottom: 2rem;
  }

  .m46-subcats__label {
    font-size: 1.25rem;
    letter-spacing: 0.05em;
  }

  .m46-subcats__lead {
    font-size: 0.95rem;
  }

  .page-category .m46-subcats__list--tiles,
  .m46-subcats__list--tiles {
    grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
    gap: 0.9rem 0.8rem;
  }

  .m46-subcats__tile {
    max-width: 9.5rem;
  }

  .m46-subcats__media {
    min-height: 5.75rem;
  }

  .m46-subcats__name {
    font-size: 0.8rem;
  }

  .m46-subcats--dense {
    padding: 1.1rem 1.15rem 1.2rem;
  }

  .page-category .m46-subcats--dense .m46-subcats__list--tiles,
  .m46-subcats--dense .m46-subcats__list--tiles {
    grid-template-columns: repeat(auto-fill, minmax(6.75rem, 1fr));
    gap: 0.7rem 0.6rem;
  }

  .m46-subcats--dense .m46-subcats__tile {
    max-width: 8.25rem;
  }

  .m46-subcats--dense .m46-subcats__media {
    min-height: 4.85rem;
  }

  .m46-subcats--dense .m46-subcats__name {
    font-size: 0.72rem;
  }
}

/* Mobile — libérer le fold : marques plus basses, labels lisibles, produits en glimpse */
@media (max-width: 575.98px) {
  .m46-category-header__back {
    margin-bottom: 0.4rem;
    font-size: 0.72rem;
  }

  .m46-category-header__back span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: min(70vw, 16rem);
  }

  .m46-category-header__top {
    align-items: flex-start;
    gap: 0.75rem;
  }

  .page-category .page-title-section,
  .m46-category-header .page-title-section {
    font-size: clamp(1.2rem, 5.2vw, 1.45rem);
    margin-bottom: 0.35rem;
  }

  .m46-category-header__desc,
  .page-category .category__description {
    margin-bottom: 0.4rem;
    font-size: 0.84rem;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .m46-category-header--brand .m46-category-header__desc {
    font-size: 0.88rem;
  }

  .m46-subcats {
    margin: 0 0 0.4rem;
    padding: 0.45rem 0.5rem 0.45rem;
  }

  .m46-subcats__head {
    margin-bottom: 0.28rem;
  }

  .m46-subcats__label {
    font-size: 0.9rem;
  }

  /* Lead redondant sur petit écran — libère de la hauteur sans miniaturiser les logos */
  .m46-subcats__lead {
    display: none;
  }

  .page-category .m46-subcats__list--tiles,
  .m46-subcats__list--tiles {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.3rem 0.28rem;
  }

  .m46-subcats__tile {
    max-width: none;
    gap: 0.18rem;
  }

  .m46-subcats__media {
    aspect-ratio: 16 / 9;
    min-height: 2.25rem;
  }

  .m46-subcats__logo {
    inset: 0.22rem;
    width: calc(100% - 0.44rem);
    height: calc(100% - 0.44rem);
  }

  .m46-subcats__name {
    font-size: 0.75rem;
    letter-spacing: 0.03em;
  }

  .m46-subcats__more {
    min-height: 2.5rem;
    margin-top: 0.22rem;
    padding: 0.25rem 0.45rem;
    font-size: 0.8125rem;
  }

  /* Dense MX : 3 cols, hauteur contenue, labels toujours ≥12px */
  .page-category .m46-subcats--dense .m46-subcats__list--tiles,
  .m46-subcats--dense .m46-subcats__list--tiles {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.3rem 0.28rem;
  }

  .m46-subcats--dense {
    padding: 0.45rem 0.5rem 0.45rem;
  }

  .m46-subcats--dense .m46-subcats__head {
    margin-bottom: 0.25rem;
  }

  .m46-subcats--dense .m46-subcats__media {
    min-height: 2.25rem;
  }

  .m46-subcats--dense .m46-subcats__name {
    font-size: 0.75rem; /* pas microscopique */
  }

  /* Toolbar 1 ligne : tri + filtre, compteur discret — libère le fold */
  .page-category .products__selection {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.45rem 0.55rem;
    margin: 0 0 0.5rem;
    padding: 0;
  }

  .page-category .products__count {
    flex: 0 1 auto;
    min-width: 0;
    font-size: 0.75rem;
    letter-spacing: 0.03em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .page-category .products__sort {
    flex: 1 1 auto;
    min-width: 0;
    justify-content: flex-end;
    gap: 0.4rem;
  }

  .page-category .products__sort-label {
    display: none;
  }

  .page-category .products__sort-dropdown-button {
    min-height: 2.5rem;
    padding-inline: 0.65rem;
    font-size: 0.875rem;
  }
}

/* Touch : feedback clair, pas d’ombre hover fantôme */
@media (hover: none) {
  .m46-subcats__tile:hover .m46-subcats__media {
    box-shadow: none;
    border-color: var(--color-border);
  }

  .m46-subcats__tile:active .m46-subcats__media {
    border-color: var(--m46-black);
    background: #fff;
    box-shadow: 2px 2px 0 rgba(20, 19, 16, 0.12);
  }

  .m46-subcats__tile:active .m46-subcats__name {
    text-decoration: underline;
    text-decoration-color: var(--m46-yellow);
  }
}

/* Barre compteur + tri — sans traits (chrome inutile entre marques / grille) */
:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .products__selection,
.page-search .products__selection {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin: 0 0 1.15rem;
  padding: 0.35rem 0 0.55rem;
  border: 0;
  border-top: 0;
  border-bottom: 0;
  background: transparent;
  box-shadow: none;
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .products__count,
.page-search .products__count {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
  font-size: 0.8rem;
  color: var(--m46-steel);
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .products__sort,
.page-search .products__sort {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .products__sort-label,
.page-search .products__sort-label {
  font-size: 0.78rem;
  color: var(--m46-steel);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-family: var(--font-display);
  font-weight: 600;
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .products__sort-dropdown-button,
.page-search .products__sort-dropdown-button {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
  font-size: 0.78rem;
  border: 1px solid var(--color-border);
  background: #fff;
  border-radius: 0;
  min-height: 2.25rem;
  padding-inline: 0.85rem;
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .products__sort-dropdown-button:hover,
.page-search .products__sort-dropdown-button:hover {
  border-color: var(--m46-black);
  background: var(--m46-paper);
}

/* -------------------------------------------------------------------------- */
/* Rail filtres — Prop. B allégée (checklist plate, facettes seules)           */
/* -------------------------------------------------------------------------- */
.page-category #left-column,
.page-search #left-column,
.page-manufacturer #left-column,
.page-supplier #left-column,
.page-new-products #left-column,
.page-prices-drop #left-column,
.page-best-sales #left-column {
  --m46-rail-pages: 1;
}

@media (min-width: 992px) {
  .page-category #left-column,
  .page-search #left-column,
  .page-manufacturer #left-column,
  .page-supplier #left-column,
  .page-new-products #left-column,
  .page-prices-drop #left-column,
  .page-best-sales #left-column {
    position: sticky;
    top: var(--m46-filter-sticky-top);
    align-self: flex-start;
    z-index: 2;
    max-height: calc(100dvh - var(--m46-filter-sticky-top) - 1rem);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column;
    gap: 0;
    background: var(--m46-filter-rail-bg);
    border: 1px solid var(--m46-filter-rail-border);
    border-top: var(--m46-filter-rail-accent);
    border-radius: var(--m46-filter-radius);
    padding: 0;
  }
}

/* Sections transparentes dans le rail — zéro double-card */
:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #left-column .left-block,
:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .ps-categorytree,
.page-search #left-column .left-block,
.page-search .ps-facetedsearch,
:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .ps-facetedsearch.m46-faceted,
.page-search .ps-facetedsearch.m46-faceted,
:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #left-column .ps-facetedsearch.m46-faceted,
.page-search #left-column .ps-facetedsearch.m46-faceted,
:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #left-column .m46-filter-actifs,
.page-search #left-column .m46-filter-actifs {
  background: transparent;
  border: 0;
  border-top: 0;
  padding: var(--m46-filter-gap-section) var(--m46-filter-rail-pad-x);
  position: static;
  max-height: none;
  overflow: visible;
  z-index: auto;
  border-radius: 0;
  box-shadow: none;
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #left-column .m46-filter-actifs,
.page-search #left-column .m46-filter-actifs {
  position: sticky;
  top: 0;
  z-index: 3;
  background: var(--m46-filter-rail-bg);
  padding-top: var(--m46-filter-rail-pad-y);
  padding-bottom: 0.55rem;
  border-bottom: 1px solid var(--color-border);
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #left-column .m46-filter-actifs.is-empty,
.page-search #left-column .m46-filter-actifs.is-empty {
  display: none;
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #left-column .m46-affiner,
.page-search #left-column .m46-affiner {
  padding-top: var(--m46-filter-rail-pad-y);
  padding-bottom: var(--m46-filter-rail-pad-y);
}

.m46-rayons--off {
  display: none !important;
}

/* Source actifs listing — masquée après déplacement JS */
.m46-actifs-source:empty,
.m46-actifs-source:not(:has(#js-active-search-filters)) {
  display: none;
}

.m46-actifs-source:has(#js-active-search-filters) {
  margin: 0 0 0.75rem;
}

/* Bandeau Actifs — chips + clear, pas de titre */
.m46-filter-actifs__bar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-bottom: 0.4rem;
}

.m46-filter-actifs__label {
  display: none;
}

.m46-filter-actifs__clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  padding: 0.2rem 0.45rem;
  font-family: var(--font-display);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--m46-steel);
  background: transparent;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
  transition: color var(--m46-filter-motion);
}

.m46-filter-actifs__clear:hover,
.m46-filter-actifs__clear:focus-visible {
  color: var(--m46-black);
  background: transparent;
  outline: none;
}

.m46-filter-actifs__clear:focus-visible {
  outline: 2px solid var(--m46-black);
  outline-offset: 2px;
}

/* prices-drop / best-sales / new-products : masquer marques / menus hors rayon */
:is(.page-prices-drop, .page-best-sales, .page-new-products, .page-category, .page-manufacturer, .page-search) #left-column .ps-brandlist,
:is(.page-prices-drop, .page-best-sales, .page-new-products, .page-category, .page-manufacturer, .page-search) #left-column .brandlist,
:is(.page-prices-drop, .page-best-sales, .page-new-products, .page-category, .page-manufacturer, .page-search) #left-column [id*="ps_brandlist"],
:is(.page-prices-drop, .page-best-sales, .page-new-products) #left-column .ps-linklist,
:is(.page-prices-drop, .page-best-sales, .page-new-products) #left-column .blockcms,
:is(.page-prices-drop, .page-best-sales, .page-new-products) #left-column .ps-mainmenu {
  display: none !important;
}

:is(.page-category, .page-manufacturer, .page-search, .page-prices-drop, .page-best-sales, .page-new-products) .ps-categorytree .accordion-collapse.collapse:not(.show) {
  display: none;
}

/* -------------------------------------------------------------------------- */
/* Category tree — rail gauche (catégorie + recherche)                         */
/* -------------------------------------------------------------------------- */
:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .ps-categorytree,
.page-search .ps-categorytree,
:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree,
.page-search .category-tree {
  margin: 0;
  border-bottom: 1px solid var(--color-border);
  padding-bottom: var(--m46-filter-gap-section);
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .m46-rayons__title,
.page-search .m46-rayons__title {
  margin: 0 0 0.15rem;
  padding: 0.15rem 0.25rem 0.45rem;
  font-family: var(--font-display);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--m46-steel);
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree .accordion--category,
.page-search .category-tree .accordion--category,
:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .ps-categorytree .accordion--category,
.page-search .ps-categorytree .accordion--category {
  --bs-accordion-bg: transparent;
  --bs-accordion-btn-bg: transparent;
  --bs-accordion-active-bg: transparent;
  --bs-accordion-btn-color: var(--m46-ink);
  --bs-accordion-active-color: var(--m46-ink);
  --bs-accordion-border-width: 0;
  --bs-accordion-btn-focus-box-shadow: none;
  margin: 0;
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree__list,
.page-search .category-tree__list {
  display: flex;
  flex-direction: column;
  row-gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree__item,
.page-search .category-tree__item,
:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree .accordion-item,
.page-search .category-tree .accordion-item,
:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .ps-categorytree .accordion-item,
.page-search .ps-categorytree .accordion-item {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent !important;
  color: inherit;
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree__list[data-depth="0"] > .category-tree__item,
.page-search .category-tree__list[data-depth="0"] > .category-tree__item {
  border-top: 1px solid var(--color-border);
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree__list[data-depth="0"] > .category-tree__item:first-child,
.page-search .category-tree__list[data-depth="0"] > .category-tree__item:first-child {
  border-top: 0;
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree__item-header,
.page-search .category-tree__item-header {
  display: flex;
  align-items: stretch;
  gap: 0.1rem;
  min-height: var(--m46-filter-hit);
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree__item-link,
.page-search .category-tree__item-link {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  min-height: var(--m46-filter-hit);
  padding: 0.45rem 0.25rem;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
  font-size: 0.76rem;
  line-height: 1.3;
  color: var(--m46-ink) !important;
  text-decoration: none !important;
  border-left: 2px solid transparent;
  white-space: normal;
  overflow-wrap: anywhere;
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree__item-link:hover,
.page-search .category-tree__item-link:hover {
  background: var(--m46-paper);
  border-left-color: rgba(20, 19, 16, 0.22);
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree__item.is-current > .category-tree__item-header .category-tree__item-link,
.page-search .category-tree__item.is-current > .category-tree__item-header .category-tree__item-link,
:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree__item-link[aria-current="page"],
.page-search .category-tree__item-link[aria-current="page"] {
  background: var(--m46-paper);
  border-left-color: var(--m46-black);
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree__item-header.split .accordion-button,
.page-search .category-tree__item-header.split .accordion-button {
  flex: 0 0 2.5rem;
  width: 2.5rem;
  min-height: var(--m46-filter-hit);
  padding: 0;
  border: 0;
  box-shadow: none !important;
  background: transparent !important;
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree__list[data-depth="1"],
.page-search .category-tree__list[data-depth="1"],
:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree__list[data-depth="2"],
.page-search .category-tree__list[data-depth="2"] {
  padding: 0 0 0.1rem var(--m46-filter-indent);
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .category-tree__list[data-depth="1"] .category-tree__item-link,
.page-search .category-tree__list[data-depth="1"] .category-tree__item-link {
  font-weight: 600;
  font-size: 0.72rem;
  color: var(--m46-steel) !important;
  min-height: 2.15rem;
  padding: 0.35rem 0.25rem;
}

/* Grille listing */
:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #products .products,
.page-search #products .products {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
  --bs-gutter-x: 0.85rem;
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .product-miniature__inner,
.page-search .product-miniature__inner {
  border-color: rgba(20, 19, 16, 0.1);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

:is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .product-miniature__inner:hover,
.page-search .product-miniature__inner:hover {
  border-color: var(--m46-black);
  box-shadow: 3px 3px 0 rgba(20, 19, 16, 0.08);
  transform: translateY(-2px);
}

@media (min-width: 576px) {
  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #products .products,
  .page-search #products .products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 992px) {
  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #products .products,
  .page-search #products .products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.05rem;
  }
}

@media (min-width: 1200px) {
  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #products .products,
  .page-search #products .products {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Mobile: colonne collapse — drawer filtres */
@media (max-width: 991.98px) {
  .page-category #left-column,
  .page-search #left-column,
  .page-manufacturer #left-column,
  .page-supplier #left-column,
  .page-new-products #left-column,
  .page-prices-drop #left-column,
  .page-best-sales #left-column {
    flex: 0 0 0 !important;
    max-width: 0 !important;
    width: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    background: transparent;
  }

  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #left-column > .m46-rayons,
  .page-search #left-column > .m46-rayons,
  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #left-column > .m46-faceted:not(.ps-facetedsearch--mobile),
  .page-search #left-column > .m46-faceted:not(.ps-facetedsearch--mobile),
  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #left-column > .m46-filter-actifs,
  .page-search #left-column > .m46-filter-actifs,
  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #left-column > .ps-categorytree,
  .page-search #left-column > .ps-categorytree {
    display: none !important;
  }

  .m46-filter-drawer .m46-filter-actifs,
  .m46-filter-drawer .m46-facets {
    display: block !important;
  }

  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #center-column,
  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .center-column,
  .page-search #center-column,
  .page-search .center-column {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .columns-container.container,
  .page-search .columns-container.container {
    padding-inline: 0.95rem;
  }

  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .products__selection,
  .page-search .products__selection {
    flex-direction: column;
    align-items: stretch;
  }

  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .products__sort,
  .page-search .products__sort {
    justify-content: space-between;
  }

  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .products__sort-dropdown-button,
  .page-search .products__sort-dropdown-button {
    flex: 1 1 auto;
  }
}

@media (max-width: 575.98px) {
  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .columns-container.container {
    padding-inline: 0.75rem;
    padding-top: 0.55rem;
    padding-bottom: 2.25rem;
  }

  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #products .products,
  .page-search #products .products {
    gap: 0.5rem;
  }

  /* Après la règle ≤767 column : 1 ligne pour libérer le fold */
  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .products__selection,
  .page-search .products__selection {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.45rem 0.55rem;
    margin: 0 0 0.5rem;
    padding: 0;
  }

  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .products__count,
  .page-search .products__count {
    flex: 0 1 auto;
    min-width: 0;
    font-size: 0.75rem;
    letter-spacing: 0.03em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .products__sort,
  .page-search .products__sort {
    flex: 1 1 auto;
    min-width: 0;
    justify-content: flex-end;
    gap: 0.4rem;
  }

  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .products__sort-label,
  .page-search .products__sort-label {
    display: none;
  }

  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .products__sort-dropdown-button,
  .page-search .products__sort-dropdown-button {
    min-height: 2.5rem;
    padding-inline: 0.65rem;
    font-size: 0.875rem;
  }
}

@media (min-width: 992px) {
  .page-category #left-column,
  .page-search #left-column,
  .page-manufacturer #left-column,
  .page-supplier #left-column,
  .page-new-products #left-column,
  .page-prices-drop #left-column,
  .page-best-sales #left-column {
    flex: 0 0 var(--m46-filter-width);
    max-width: var(--m46-filter-width);
    padding-right: 0;
  }

  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) #center-column,
  .page-search #center-column {
    flex: 1 1 auto;
    max-width: calc(100% - var(--m46-filter-width));
    width: auto;
    padding-left: 0.85rem;
  }
}

/* -------------------------------------------------------------------------- */
/* Recherche — en-tête + empty state                                           */
/* -------------------------------------------------------------------------- */
.m46-search-header {
  margin-bottom: 1.15rem;
  padding-bottom: 0.35rem;
}

.m46-search-header__eyebrow {
  margin: 0 0 0.35rem;
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--m46-steel);
}

.m46-search-header .page-title-section {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
  font-size: clamp(1.35rem, 3.2vw, 2.2rem);
  line-height: 1.08;
  margin: 0 0 0.45rem;
  text-wrap: balance;
}

.m46-search-header__meta {
  margin: 0;
  font-family: var(--font-display);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--m46-steel);
}

.m46-search-empty {
  max-width: 28rem;
  margin: 0.5rem 0 1.5rem;
  padding: 1.25rem 1.15rem 1.35rem;
  background: #fff;
  border: 1px solid var(--color-border);
  border-top: 3px solid var(--m46-yellow);
}

.m46-search-empty__lead {
  margin: 0 0 0.45rem;
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--m46-ink);
}

.m46-search-empty__hint {
  margin: 0 0 1rem;
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--m46-steel);
}

.m46-search-empty__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.page-search #js-product-list .page-content--not-found,
.page-search #js-product-list .page-not-found {
  background: transparent;
  border: 0;
  padding: 0;
}

/* -------------------------------------------------------------------------- */
/* Facettes — groupes repliables + checklist plate atelier                     */
/* -------------------------------------------------------------------------- */
.m46-filter-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 2.75rem;
  padding-inline: 0.9rem;
  font-family: var(--font-display);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border-radius: var(--m46-filter-radius);
  border: 1px solid var(--m46-black);
  background: var(--m46-yellow);
  color: var(--m46-black);
  position: relative;
}

.m46-filter-btn:hover,
.m46-filter-btn:focus-visible {
  background: var(--m46-yellow-dark);
  border-color: var(--m46-black);
  color: var(--m46-black);
}

.m46-filter-btn:focus-visible {
  outline: 2px solid var(--m46-black);
  outline-offset: 2px;
}

.m46-filter-btn .material-icons {
  font-size: 1.1rem;
  line-height: 1;
}

.m46-filter-btn__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.3rem;
  background: var(--m46-black);
  color: var(--m46-yellow);
  font-family: var(--font-display);
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;
  border-radius: var(--m46-filter-radius);
}

.m46-filter-btn__badge:not(.d-none) {
  display: inline-flex;
}

.m46-facets {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.m46-facets__title,
.m46-filter-section__title {
  display: none !important;
}

.m46-facets__stack {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.m46-facets__group {
  margin: 0;
  padding: 0;
  border: 0;
  border-top: 1px solid var(--color-border);
  background: transparent;
}

.m46-facets__group:first-child {
  border-top: 0;
}

.m46-facets__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
  min-height: var(--m46-filter-hit);
  margin: 0;
  padding: 0.45rem 0.05rem;
  list-style: none;
  cursor: pointer;
  user-select: none;
  color: var(--m46-ink);
  transition: background-color var(--m46-filter-motion);
}

.m46-facets__toggle::-webkit-details-marker {
  display: none;
}

.m46-facets__toggle::marker {
  content: "";
  display: none;
}

.m46-facets__toggle:hover {
  background: var(--m46-paper);
}

.m46-facets__toggle:focus {
  outline: none;
}

.m46-facets__toggle:focus-visible {
  outline: 2px solid var(--m46-black);
  outline-offset: 2px;
}

.m46-facets__heading {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.2rem 0.35rem;
  margin: 0;
  padding: 0;
  font-family: var(--font-display);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--m46-ink);
  line-height: 1.25;
}

.m46-facets__count {
  font-variant-numeric: tabular-nums;
  color: var(--m46-steel);
  font-weight: 700;
}

.m46-facets__group.is-filtered .m46-facets__heading {
  color: var(--m46-black);
}

.m46-facets__group.is-filtered .m46-facets__count {
  color: var(--m46-black);
}

.m46-facets__chevron {
  flex: 0 0 auto;
  width: 0.55rem;
  height: 0.55rem;
  margin-right: 0.15rem;
  border-right: 1.5px solid var(--m46-steel);
  border-bottom: 1.5px solid var(--m46-steel);
  transform: rotate(45deg);
  transition: transform var(--m46-filter-motion), border-color var(--m46-filter-motion);
}

.m46-facets__group[open] > .m46-facets__toggle .m46-facets__chevron {
  transform: rotate(225deg);
  border-color: var(--m46-black);
}

.m46-facets__panel {
  padding: 0 0 0.55rem;
}

.m46-facets__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.m46-facets__option {
  margin: 0;
}

.m46-facets__item {
  margin: 0;
}

.m46-facets__check.form-check {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  min-height: var(--m46-filter-hit);
  margin: 0;
  padding: 0.28rem 0.05rem;
}

.m46-facets__input.form-check-input {
  flex: 0 0 auto;
  width: 1.05rem;
  height: 1.05rem;
  margin: 0.22rem 0 0;
  border: 1.5px solid var(--m46-black);
  border-radius: var(--m46-filter-radius);
  background-color: #fff;
  cursor: pointer;
}

.m46-facets__input.form-check-input:checked {
  background-color: var(--m46-yellow);
  border-color: var(--m46-black);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23141310' stroke-linecap='square' stroke-linejoin='miter' stroke-width='2.2' d='M3.5 8.5l3 3 6-6'/%3e%3c/svg%3e");
}

.m46-facets__input.form-check-input:focus {
  box-shadow: none;
  border-color: var(--m46-black);
}

.m46-facets__input.form-check-input:focus-visible {
  outline: 2px solid var(--m46-black);
  outline-offset: 2px;
}

.m46-facets__input[type="radio"].form-check-input {
  border-radius: 50%;
}

.m46-facets__input[type="radio"].form-check-input:checked {
  background-image: radial-gradient(circle, var(--m46-black) 0 35%, transparent 38%);
  background-color: var(--m46-yellow);
}

.m46-facets__label {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.86rem;
  line-height: 1.35;
  color: var(--m46-ink);
  cursor: pointer;
}

.m46-facets__label .search-filters__link,
.m46-facets__label a {
  color: inherit !important;
  text-decoration: none !important;
}

/* Pastilles couleur filtres listing — min 24px, 44px au touch, bordure ≥ 3:1 */
.m46-facets .color,
.m46-facets .color-sm,
.m46-facets__check--color .color,
.search-filters .color.color-sm {
  width: 1.5rem;
  height: 1.5rem;
  min-width: 1.5rem;
  min-height: 1.5rem;
  box-sizing: border-box;
  border-radius: 0;
  border: 1px solid rgba(20, 19, 16, 0.5);
}

@media (max-width: 991.98px) {
  .m46-facets .color,
  .m46-facets .color-sm,
  .m46-facets__check--color .color,
  .search-filters .color.color-sm {
    width: 2.75rem;
    height: 2.75rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
  }
}

.m46-facets__check:hover .m46-facets__label,
.m46-facets__item.active .m46-facets__label {
  color: var(--m46-black);
}

.m46-facets__item.active {
  background: transparent;
}

.m46-facets__slider {
  padding: 0.35rem 0 0.55rem;
}

.search-filters__magnitude,
.m46-facets .search-filters__magnitude {
  color: var(--m46-steel);
  font-variant-numeric: tabular-nums;
}

/* Chips actifs — papier, pas blocs jaunes criards */
.m46-active-filters {
  margin: 0;
}

.m46-active-filters__list,
.m46-filter-actifs__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

.m46-active-filters__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  min-height: 2rem;
  padding: 0.2rem 0.45rem;
  background: var(--m46-filter-chip-active-bg);
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--m46-yellow);
  border-radius: var(--m46-filter-radius);
  color: var(--m46-filter-chip-active-fg) !important;
  font-family: var(--font-display);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: border-color var(--m46-filter-motion), background-color var(--m46-filter-motion);
}

.m46-active-filters__chip:hover,
.m46-active-filters__chip:focus-visible {
  background: #fff;
  border-color: var(--m46-black);
  color: var(--m46-black) !important;
}

.m46-active-filters__chip:focus-visible {
  outline: 2px solid var(--m46-black);
  outline-offset: 2px;
}

.m46-active-filters__chip .material-icons {
  font-size: 0.9rem;
  line-height: 1;
}

/* Drawer mobile = même checklist */
.m46-faceted-offcanvas.offcanvas,
.m46-filter-drawer.offcanvas {
  --bs-offcanvas-width: min(20.5rem, 92vw);
  background: var(--m46-filter-rail-bg);
  border-right: 1px solid var(--m46-filter-rail-border);
}

.m46-faceted-offcanvas__header {
  border-bottom: 1px solid var(--color-border);
  background: var(--m46-filter-rail-bg);
  border-top: var(--m46-filter-rail-accent);
  padding: 0.85rem 1rem;
}

.m46-faceted-offcanvas__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--m46-ink);
}

.m46-faceted-offcanvas__body,
.m46-filter-drawer__body {
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.m46-filter-drawer__actifs,
.m46-filter-drawer__affiner {
  padding: var(--m46-filter-gap-section) var(--m46-filter-rail-pad-x);
}

.m46-filter-drawer__actifs:has(.m46-filter-actifs.is-empty),
.m46-filter-drawer__actifs:empty {
  display: none;
  padding: 0;
}

.m46-filter-drawer__actifs {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--m46-filter-rail-bg);
  border-bottom: 1px solid var(--color-border);
  padding-top: 0.85rem;
}

.m46-filter-drawer__affiner {
  padding-top: 0.85rem;
  padding-bottom: 1.5rem;
}

.m46-filter-drawer .m46-facets,
.m46-faceted-offcanvas .m46-facets {
  background: transparent;
  border: 0;
  padding: 0;
}

/* Mobile drawer : labels options lisibles (≥16px), titres section restent chrome */
@media (max-width: 991.98px) {
  .m46-filter-drawer .m46-facets__label,
  .m46-faceted-offcanvas .m46-facets__label {
    font-size: 1rem;
    line-height: 1.45;
  }

  .m46-filter-drawer .m46-facets__label .search-filters__magnitude,
  .m46-faceted-offcanvas .m46-facets__label .search-filters__magnitude {
    font-size: 0.9rem;
  }

  .m46-filter-drawer .m46-active-filters__chip,
  .m46-faceted-offcanvas .m46-active-filters__chip,
  .m46-filter-drawer .m46-filter-actifs__chips a,
  .m46-faceted-offcanvas .m46-filter-actifs__chips a {
    font-size: 0.9rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-category .product-miniature__inner,
  .page-search .product-miniature__inner,
  .m46-active-filters__chip,
  .m46-filter-actifs__clear,
  .m46-facets__toggle,
  .m46-facets__chevron {
    transition: none;
  }

  :is(.page-category, .page-manufacturer, .page-prices-drop, .page-best-sales, .page-new-products) .product-miniature__inner:hover,
  .page-search .product-miniature__inner:hover {
    transform: none;
  }
}

/* -------------------------------------------------------------------------- */
/* Compte — connexion / inscription / mot de passe                             */
/* -------------------------------------------------------------------------- */
.page-authentication #content-wrapper,
.page-authentication .page-content,
.page-registration #content-wrapper,
.page-registration .page-content,
.page-password #content-wrapper,
.page-password .page-content {
  /* inset top = margin breadcrumb */
  padding-block: 0 2.75rem;
}

.page-authentication .page-title-section,
.page-registration .page-title-section,
.page-password .page-title-section {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: var(--fs-h1);
  line-height: var(--lh-tight);
  text-align: center;
  margin: 0 0 1.15rem;
}

.m46-auth {
  max-width: 28rem;
  margin: 0 auto;
}

.m46-auth--register {
  max-width: 36rem;
}

.m46-auth__panel {
  background: var(--m46-paper);
  border: 1px solid var(--color-border);
  border-top: 3px solid var(--m46-yellow);
  padding: 1.5rem 1.35rem 1.45rem;
}

.m46-auth__lead {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.035em;
  font-weight: 600;
  font-size: 0.98rem;
  line-height: 1.3;
  color: var(--m46-steel);
  margin: 0 0 1.15rem;
  text-align: center;
}

.m46-auth__form .form-label {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 600;
  font-size: 0.85rem;
  color: var(--m46-ink);
}

.m46-auth__form .form-control,
.m46-auth__form .form-select {
  border: 2px solid var(--m46-black);
  border-radius: 0;
  min-height: 2.85rem;
  background: #fff;
  color: var(--m46-ink);
}

.m46-auth__form .form-control:focus,
.m46-auth__form .form-select:focus {
  border-color: var(--m46-black);
  box-shadow: 0 0 0 3px rgba(255, 206, 0, 0.55);
  outline: none;
}

.m46-auth__form .password-field .btn-primary {
  border-radius: 0;
  min-width: 2.85rem;
  min-height: 2.85rem;
  padding-inline: 0.65rem;
  border: 2px solid var(--m46-black);
  border-left-width: 0;
}

.m46-login-form__actions {
  margin-top: 0.35rem;
  align-items: center;
  gap: 0.75rem;
}

.m46-login-form__forgot {
  font-size: 0.88rem;
  color: var(--m46-steel);
  text-decoration: underline;
  text-underline-offset: 0.15rem;
  padding: 0;
}

.m46-login-form__forgot:hover {
  color: var(--m46-ink);
}

.m46-login-form__submit {
  min-height: 3rem;
  min-width: 10rem;
  font-size: 1.05rem;
  letter-spacing: 0.05em;
}

.m46-auth__register {
  margin-top: 1.35rem;
  padding-top: 1.2rem;
  border-top: 1px solid var(--color-border);
  text-align: center;
}

.m46-auth__register-title {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: 1.15rem;
  margin: 0 0 0.35rem;
}

.m46-auth__register-text {
  color: var(--m46-steel);
  font-size: 0.9rem;
  margin: 0 0 0.95rem;
}

.m46-auth__register .btn {
  min-height: 2.85rem;
}

.m46-auth__reassurance {
  margin-top: 1.15rem;
  grid-template-columns: 1fr 1fr;
}

.m46-auth__switch {
  margin: 1.25rem 0 0;
  padding-top: 1.1rem;
  border-top: 1px solid var(--color-border);
  text-align: center;
  font-size: 0.95rem;
}

.m46-auth__switch a {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
  color: var(--m46-ink);
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.18rem;
}

.m46-auth__footer {
  max-width: 28rem;
  margin: 1.25rem auto 0;
  text-align: center;
}

.m46-auth__footer .btn {
  min-height: 2.75rem;
}

.page-authentication .login > hr,
.page-registration .register-form > hr {
  display: none;
}

@media (max-width: 575.98px) {
  .m46-auth__panel {
    padding: 1.25rem 1rem 1.3rem;
  }

  .m46-login-form__actions {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .m46-login-form__submit {
    width: 100%;
  }

  .m46-auth__reassurance {
    grid-template-columns: 1fr;
  }
}

/* -------------------------------------------------------------------------- */
/* Compte — Mon compte (grille seule, sans sidebar dupliquée)                  */
/* -------------------------------------------------------------------------- */
.page-my-account #content-wrapper,
.page-my-account .page-content--customer {
  /* inset top = margin breadcrumb — titre .page-header aéré */
  padding-block: 0 2.5rem;
}

/* Masque la sidebar Presta uniquement sur l’accueil compte */
.page-my-account .row > .col-lg-3:has(.account-menu--sidebar) {
  display: none;
}

.page-my-account .row > .col-lg-9 {
  flex: 0 0 100%;
  max-width: 56rem;
  width: 100%;
  margin-inline: auto;
}

.page-my-account .page-header {
  margin: 0 0 0.35rem;
}

.page-my-account .page-title-section,
.page-my-account .page-header h1 {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
  font-size: clamp(1.85rem, 3.2vw, 2.55rem);
  line-height: var(--lh-tight);
  margin: 0;
  text-align: left;
}

.m46-account {
  max-width: 56rem;
}

.m46-account__lead {
  margin: 0 0 1.25rem;
  max-width: 36rem;
  color: var(--m46-steel);
  font-size: 0.95rem;
  line-height: 1.45;
}

.page-my-account .m46-account__grid.account-menu--main {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.page-my-account .m46-account__grid .account-menu__link,
.page-my-account .m46-account__grid a.account-menu__link,
.page-my-account .m46-account__grid #savedcards-link {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.7rem;
  min-height: 3.35rem;
  margin: 0;
  padding: 0.7rem 0.9rem;
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  border-radius: 0;
  box-shadow: none;
  text-decoration: none;
  color: var(--m46-ink);
  transition:
    border-color 0.2s cubic-bezier(0.16, 1, 0.3, 1),
    background-color 0.2s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.15s cubic-bezier(0.16, 1, 0.3, 1);
}

.page-my-account .m46-account__grid .account-menu__icon,
.page-my-account .m46-account__grid .account-menu__link .material-icons,
.page-my-account .m46-account__grid #savedcards-link .material-icons {
  flex: 0 0 auto;
  width: 1.35rem;
  height: 1.35rem;
  font-size: 1.25rem;
  line-height: 1.35rem;
  color: var(--m46-ink);
  margin: 0;
}

.page-my-account .m46-account__grid .account-menu__label,
.page-my-account .m46-account__grid .account-menu__link,
.page-my-account .m46-account__grid #savedcards-link {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 600;
  font-size: 0.92rem;
  line-height: 1.2;
  text-align: left;
}

.page-my-account .m46-account__grid .account-menu__link:hover,
.page-my-account .m46-account__grid .account-menu__link:focus-visible,
.page-my-account .m46-account__grid #savedcards-link:hover,
.page-my-account .m46-account__grid #savedcards-link:focus-visible {
  border-color: var(--m46-black);
  background: color-mix(in srgb, var(--m46-yellow) 18%, #fff);
  color: var(--m46-ink);
  outline: none;
}

.page-my-account .m46-account__grid .account-menu__link:active,
.page-my-account .m46-account__grid #savedcards-link:active {
  transform: translateY(1px);
}

/* PayPlug Classic leftover (.col-* / .link-item) → même tuile */
.page-my-account .m46-account__grid #savedcards-link,
.page-my-account .m46-account__grid #savedcards-link:link,
.page-my-account .m46-account__grid #savedcards-link:visited {
  flex: none;
  float: none;
  width: auto;
  max-width: none;
  color: var(--m46-ink);
  text-decoration: none;
}

.page-my-account .m46-account__grid #savedcards-link .link-item {
  display: contents;
  color: inherit;
  text-decoration: none;
}

.m46-account__signout {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 1.35rem;
  padding: 0.55rem 0;
  border-top: 1px solid var(--m46-steel-line);
  width: 100%;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--m46-red);
  text-decoration: none;
  transition: color 0.2s ease;
}

.m46-account__signout .material-icons {
  font-size: 1.2rem;
  line-height: 1;
}

.m46-account__signout:hover,
.m46-account__signout:focus-visible {
  color: var(--m46-ink);
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.2rem;
  outline: none;
}

@media (max-width: 991.98px) {
  .page-my-account .m46-account__grid.account-menu--main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .page-my-account .m46-account__grid.account-menu--main {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }

  .page-my-account .page-title-section,
  .page-my-account .page-header h1 {
    font-size: 1.75rem;
  }

  .m46-account__lead {
    margin-bottom: 1rem;
    font-size: 0.9rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-my-account .m46-account__grid .account-menu__link,
  .m46-account__signout {
    transition: none;
  }

  .page-my-account .m46-account__grid .account-menu__link:active {
    transform: none;
  }
}

/* Sidebar compte (historique, adresses…) — rythme atelier, hors page accueil */
body:not(.page-my-account) .account-menu--sidebar {
  border: 1px solid var(--m46-steel-line);
  border-top: 3px solid var(--m46-yellow);
  background: #fff;
  padding: 1.15rem 1rem 1.25rem;
}

body:not(.page-my-account) .account-menu--sidebar .account-menu__title {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 1.1rem;
  margin: 0 0 0.85rem;
  padding: 0 0.5rem;
  line-height: 1.25;
}

body:not(.page-my-account) .account-menu--sidebar .account-menu__nav {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

body:not(.page-my-account) .account-menu--sidebar .account-menu__link,
body:not(.page-my-account) .account-menu--sidebar #savedcards-link {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  padding: 0.75rem 0.75rem 0.75rem 0.85rem;
  border-radius: 0;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  font-weight: 600;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--m46-ink);
  text-decoration: none;
  border-left: 3px solid transparent;
  text-wrap: balance;
}

body:not(.page-my-account) .account-menu--sidebar .account-menu__icon,
body:not(.page-my-account) .account-menu--sidebar .account-menu__link .material-icons,
body:not(.page-my-account) .account-menu--sidebar #savedcards-link .material-icons {
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  font-size: 1.15rem;
  line-height: 1.25rem;
  margin-top: 0.05rem;
}

body:not(.page-my-account) .account-menu--sidebar .account-menu__link:hover,
body:not(.page-my-account) .account-menu--sidebar .account-menu__link--active,
body:not(.page-my-account) .account-menu--sidebar #savedcards-link:hover {
  background: color-mix(in srgb, var(--m46-yellow) 16%, #fff);
  border-left-color: var(--m46-yellow);
  color: var(--m46-ink);
}

body:not(.page-my-account) .account-menu--sidebar #savedcards-link {
  width: 100%;
  max-width: none;
  flex: none;
  float: none;
}

body:not(.page-my-account) .account-menu--sidebar #savedcards-link .link-item {
  display: contents;
  color: inherit;
}

body:not(.page-my-account) .account-menu--sidebar .account-menu__link--signout {
  margin-top: 0.65rem;
  color: var(--m46-red);
  border-top: 1px solid var(--m46-steel-line);
  padding-top: 0.85rem;
  align-items: center;
}

body:not(.page-my-account) .account-menu--sidebar .account-menu__link--active {
  font-weight: 700;
  background: color-mix(in srgb, var(--m46-yellow) 22%, #fff);
  border-left-color: var(--m46-black);
  color: var(--m46-black);
}

body:not(.page-my-account) .account-menu--sidebar .account-menu__label {
  min-width: 0;
  flex: 1 1 auto;
}

/* Pages modules compte (alertes, RGPD) — panneau cohérent */
body#module-ps_emailalerts-account .page-content,
body#module-psgdpr-gdpr .page-content {
  max-width: 56rem;
}

body#module-ps_emailalerts-account .page-content > form,
body#module-ps_emailalerts-account .page-content > .table-listed,
body#module-psgdpr-gdpr .page-content > .psgdprinfo17,
body#module-psgdpr-gdpr .page-content > section,
body#module-psgdpr-gdpr .page-content > .card {
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  border-top: 3px solid var(--m46-yellow);
  padding: 1.25rem 1.35rem 1.35rem;
  margin-bottom: 1rem;
}

/* -------------------------------------------------------------------------- */
/* Formulaires compte / auth / checkout — accessibilité visuelle              */
/* Scope: pages customer + checkout. Exclut search, newsletter, PDP buybox.   */
/* -------------------------------------------------------------------------- */
.page-customer-account:not(.page-my-account) .page-content,
.page-identity .page-content,
.page-addresses .page-content,
.page-address .page-content,
.page-password .page-content,
.page-authentication .page-content,
.page-registration .page-content,
.page-guest-tracking .page-content,
.checkout-personal-information-step,
.checkout-addresses-step,
.checkout-delivery-step,
.js-address-form,
.js-customer-form {
  --m46-field-h: 2.85rem;
}

/* Largeur lisible des colonnes formulaire (pas full-bleed) */
.page-identity .page-content form,
.page-identity .js-customer-form,
.page-addresses .address-form,
.page-address .js-address-form,
.page-address .address-form,
.page-customer-account:not(.page-my-account):not(.page-authentication):not(.page-registration) .page-content > form,
.page-customer-account:not(.page-my-account):not(.page-authentication):not(.page-registration) .page-content .js-customer-form,
.page-guest-tracking .page-content form {
  max-width: 34rem;
}

.page-identity .page-header h1,
.page-identity .page-title-section,
.page-addresses .page-header h1,
.page-address .page-header h1,
.page-guest-tracking .page-header h1 {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
}

/* Labels — encre, semibold, pas gris pâle */
.page-customer-account .form-label,
.page-customer-account .form-control-label,
.page-identity .form-label,
.page-addresses .form-label,
.page-address .form-label,
.page-password .form-label,
.page-authentication .form-label,
.page-registration .form-label,
.page-guest-tracking .form-label,
.checkout .form-label,
.checkout .form-control-label,
.js-customer-form .form-label,
.js-address-form .form-label {
  color: var(--m46-black);
  font-weight: 600;
  font-size: 0.92rem;
  margin-bottom: 0.35rem;
  line-height: 1.3;
}

.page-customer-account .form-label.required::after,
.page-customer-account .form-control-label.required::after,
.checkout .form-label.required::after,
.js-customer-form .form-label.required::after,
.js-address-form .form-label.required::after {
  color: var(--m46-red);
}

/* Inputs / selects — blanc, bordure 2px ink, sharp */
.page-customer-account .form-control:not(.ps-searchbar__input):not(.m46-newsletter__input),
.page-customer-account .form-select,
.page-identity .form-control,
.page-identity .form-select,
.page-addresses .form-control,
.page-addresses .form-select,
.page-address .form-control,
.page-address .form-select,
.page-password .form-control,
.page-password .form-select,
.page-authentication .form-control:not(.ps-searchbar__input):not(.m46-newsletter__input),
.page-authentication .form-select,
.page-registration .form-control:not(.ps-searchbar__input):not(.m46-newsletter__input),
.page-registration .form-select,
.page-guest-tracking .form-control,
.page-guest-tracking .form-select,
.checkout .form-control:not(.ps-searchbar__input),
.checkout .form-select,
.js-customer-form .form-control,
.js-customer-form .form-select,
.js-address-form .form-control,
.js-address-form .form-select {
  background-color: #fff;
  color: var(--m46-ink);
  border: 2px solid var(--m46-black);
  border-radius: 0;
  min-height: var(--m46-field-h, 2.85rem);
  padding: 0.55rem 0.85rem;
  font-size: 1rem;
  line-height: 1.35;
  box-shadow: none;
}

.page-customer-account textarea.form-control,
.page-identity textarea.form-control,
.page-addresses textarea.form-control,
.page-address textarea.form-control,
.checkout textarea.form-control,
.js-customer-form textarea.form-control,
.js-address-form textarea.form-control {
  min-height: 6.5rem;
  padding-block: 0.7rem;
}

/* Focus — anneau jaune + bordure noire (jamais outline:none seul) */
.page-customer-account .form-control:focus,
.page-customer-account .form-select:focus,
.page-identity .form-control:focus,
.page-identity .form-select:focus,
.page-addresses .form-control:focus,
.page-addresses .form-select:focus,
.page-address .form-control:focus,
.page-address .form-select:focus,
.page-password .form-control:focus,
.page-authentication .form-control:focus,
.page-authentication .form-select:focus,
.page-registration .form-control:focus,
.page-registration .form-select:focus,
.page-guest-tracking .form-control:focus,
.checkout .form-control:focus,
.checkout .form-select:focus,
.js-customer-form .form-control:focus,
.js-customer-form .form-select:focus,
.js-address-form .form-control:focus,
.js-address-form .form-select:focus {
  border-color: var(--m46-black);
  background-color: #fff;
  color: var(--m46-ink);
  box-shadow: 0 0 0 3px rgba(255, 206, 0, 0.55);
  outline: 2px solid var(--m46-black);
  outline-offset: 1px;
}

/* Helpers — contraste OK (HB: .form-text ; classic: .form-control-comment) */
.page-customer-account .form-text,
.page-customer-account .form-control-comment,
.page-identity .form-text,
.page-identity .form-control-comment,
.page-addresses .form-text,
.page-addresses .form-control-comment,
.page-address .form-text,
.page-address .form-control-comment,
.page-password .form-text,
.page-authentication .form-text,
.page-registration .form-text,
.page-registration .form-control-comment,
.page-guest-tracking .form-text,
.checkout .form-text,
.checkout .form-control-comment,
.js-customer-form .form-text,
.js-customer-form .form-control-comment,
.js-address-form .form-text,
.js-address-form .form-control-comment {
  color: var(--m46-helper);
  font-size: 0.875rem;
  line-height: 1.4;
  margin-top: 0.35rem;
}

/* Espacement entre groupes — dans @layer utilities (sinon battu par .mb-3 BS) */
@layer utilities {
  .page-customer-account .mb-3,
  .page-identity .mb-3,
  .page-addresses .mb-3,
  .page-address .mb-3,
  .page-password .mb-3,
  .page-authentication .mb-3,
  .page-registration .mb-3,
  .page-guest-tracking .mb-3,
  .checkout .mb-3,
  .js-customer-form .mb-3,
  .js-address-form .mb-3,
  .page-customer-account .form-group,
  .page-identity .form-group,
  .checkout .form-group {
    margin-bottom: 1.25rem !important;
  }

  .m46-cf__field .mb-3,
  .m46-cf__field .form-group,
  .m46-af__field .mb-3,
  .m46-af__field .form-group {
    margin-bottom: 0 !important;
  }
}

/* Radio / checkbox — cibles plus grandes, alignement */
.page-customer-account .form-check,
.page-identity .form-check,
.page-addresses .form-check,
.page-address .form-check,
.page-registration .form-check,
.checkout .form-check,
.js-customer-form .form-check,
.js-address-form .form-check {
  min-height: 1.75rem;
  padding-left: 1.85rem;
  margin-bottom: 0.45rem;
  display: flex;
  align-items: center;
}

.page-customer-account .form-check-inline,
.page-identity .form-check-inline,
.page-registration .form-check-inline,
.checkout .form-check-inline,
.js-customer-form .form-check-inline {
  margin-right: 1.15rem;
  margin-bottom: 0.35rem;
}

.page-customer-account .form-check-input,
.page-identity .form-check-input,
.page-addresses .form-check-input,
.page-address .form-check-input,
.page-registration .form-check-input,
.checkout .form-check-input,
.js-customer-form .form-check-input,
.js-address-form .form-check-input {
  width: 1.2rem;
  height: 1.2rem;
  margin-top: 0;
  margin-left: -1.85rem;
  border: 2px solid var(--m46-black);
  background-color: #fff;
  flex-shrink: 0;
}

.page-customer-account .form-check-input:checked,
.page-identity .form-check-input:checked,
.page-registration .form-check-input:checked,
.checkout .form-check-input:checked,
.js-customer-form .form-check-input:checked,
.js-address-form .form-check-input:checked {
  background-color: var(--m46-black);
  border-color: var(--m46-black);
}

.page-customer-account .form-check-input:focus,
.page-identity .form-check-input:focus,
.page-registration .form-check-input:focus,
.checkout .form-check-input:focus,
.js-customer-form .form-check-input:focus,
.js-address-form .form-check-input:focus {
  border-color: var(--m46-black);
  box-shadow: 0 0 0 3px rgba(255, 206, 0, 0.55);
  outline: none;
}

.page-customer-account .form-check-label,
.page-identity .form-check-label,
.page-registration .form-check-label,
.checkout .form-check-label,
.js-customer-form .form-check-label,
.js-address-form .form-check-label {
  color: var(--m46-ink);
  font-weight: 500;
  font-size: 0.95rem;
  line-height: 1.35;
  cursor: pointer;
}

/* Bouton œil password — hauteur alignée input */
.page-customer-account .password-field,
.page-identity .password-field,
.page-authentication .password-field,
.page-registration .password-field,
.page-password .password-field,
.checkout .password-field,
.js-customer-form .password-field {
  align-items: stretch;
}

.page-customer-account .password-field .form-control,
.page-identity .password-field .form-control,
.page-authentication .password-field .form-control,
.page-registration .password-field .form-control,
.checkout .password-field .form-control,
.js-customer-form .password-field .form-control {
  border-right-width: 0;
}

.page-customer-account .password-field .btn-primary,
.page-identity .password-field .btn-primary,
.page-authentication .password-field .btn-primary,
.page-registration .password-field .btn-primary,
.page-password .password-field .btn-primary,
.checkout .password-field .btn-primary,
.js-customer-form .password-field .btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--m46-field-h, 2.85rem);
  min-height: var(--m46-field-h, 2.85rem);
  padding: 0 0.7rem;
  border-radius: 0;
  border: 2px solid var(--m46-black);
  background: var(--m46-yellow);
  color: var(--m46-black);
  box-shadow: none;
}

.page-customer-account .password-field .btn-primary:hover,
.page-identity .password-field .btn-primary:hover,
.page-authentication .password-field .btn-primary:hover,
.page-registration .password-field .btn-primary:hover,
.checkout .password-field .btn-primary:hover,
.js-customer-form .password-field .btn-primary:hover {
  background: var(--m46-yellow-dark);
  border-color: var(--m46-black);
  color: var(--m46-black);
  transform: none;
}

.page-customer-account .password-field .btn-primary:focus-visible,
.page-identity .password-field .btn-primary:focus-visible,
.page-authentication .password-field .btn-primary:focus-visible,
.page-registration .password-field .btn-primary:focus-visible,
.checkout .password-field .btn-primary:focus-visible,
.js-customer-form .password-field .btn-primary:focus-visible {
  outline: 3px solid var(--m46-black);
  outline-offset: 3px;
  box-shadow: none;
}

/* Submit primary — hauteur alignée (hors bouton œil password) */
.page-customer-account form .buttons-wrapper .btn-primary,
.page-customer-account form > .btn-primary,
.page-identity form .buttons-wrapper .btn-primary,
.page-identity form > .btn-primary,
.page-addresses form .btn-primary,
.page-address form .btn-primary,
.page-guest-tracking form .btn-primary {
  min-height: 3rem;
  padding-inline: 1.25rem;
}

/* Placeholders — assez sombres pour contraste */
.page-customer-account .form-control::placeholder,
.page-identity .form-control::placeholder,
.page-authentication .form-control::placeholder,
.page-registration .form-control::placeholder,
.checkout .form-control::placeholder,
.js-customer-form .form-control::placeholder,
.js-address-form .form-control::placeholder {
  color: var(--m46-helper);
  opacity: 1;
}

/* Erreurs visibles */
.page-customer-account .has-error .form-control,
.page-identity .has-error .form-control,
.page-registration .has-error .form-control,
.js-customer-form .has-error .form-control,
.js-address-form .has-error .form-control {
  border-color: var(--m46-red);
}

/* Validation : rester sur le champ, pas un saut vers le haut de page */
.page-authentication [data-ps-action="form-validation"] .form-control,
.page-registration [data-ps-action="form-validation"] .form-control,
.page-password [data-ps-action="form-validation"] .form-control,
.page-identity [data-ps-action="form-validation"] .form-control,
.js-customer-form .form-control,
.js-customer-form .form-check-input,
[data-ps-action="form-validation"] .form-check-input {
  scroll-margin-top: calc(var(--scroll-padding-top, 5.5rem) + 0.75rem);
}

.m46-field-error {
  display: block !important;
  width: 100%;
  margin-top: 0.4rem;
  color: var(--m46-red);
  font-size: 0.85rem;
  line-height: 1.35;
}

[data-ps-action="form-validation"].was-validated .form-control:invalid,
[data-ps-action="form-validation"].was-validated .form-select:invalid,
[data-ps-action="form-validation"].was-validated .form-check-input:invalid {
  border-color: var(--m46-red);
}

.page-customer-account .form-control.is-invalid,
.page-identity .form-control.is-invalid,
.js-customer-form .form-control.is-invalid {
  border-color: var(--m46-red);
}

/* Adresses — CTA ajouter cohérent M46 (pas lien bleu BS) */
.page-addresses .address-item a,
.page-addresses .addresses-footer a,
.page-addresses #content a[data-link-action="add-address"],
.page-addresses .page-content a[href*="adresse"] {
  color: var(--m46-ink);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.18rem;
}

.page-addresses .page-content a[href*="adresse"]:hover {
  color: var(--m46-black);
}

/* -------------------------------------------------------------------------- */
/* Accueil M46 — réassurance / univers / marques / atelier                     */
/* -------------------------------------------------------------------------- */
.m46-home-section__head {
  margin: 0 0 1.15rem;
}

.m46-home-section__head--row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem 1.25rem;
}

.m46-home-section__title {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: clamp(1.25rem, 2.4vw, 1.75rem);
  line-height: 1.1;
  margin: 0 0 0.35rem;
  position: relative;
  display: inline-block;
  padding-bottom: 0.4rem;
}

.m46-home-section__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 2.75rem;
  height: 3px;
  background: var(--m46-yellow);
}

.m46-home-section__lead {
  margin: 0;
  color: var(--m46-steel);
  font-size: 0.95rem;
  line-height: 1.45;
  max-width: 36rem;
}

.m46-home-section__more {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.8125rem; /* R3: chrome ≥13px */
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none !important;
  color: var(--m46-ink) !important;
  border-bottom: 2px solid var(--m46-yellow);
  padding-bottom: 0.1rem;
  min-height: 2.75rem; /* touch ≥44px */
  white-space: nowrap;
}

.m46-home-section__more .material-icons {
  font-size: 1rem;
}

/* Réassurance */
.m46-home-reassure {
  background: var(--m46-black);
  color: rgba(255, 255, 255, 0.82);
  border-bottom: 2px solid var(--m46-yellow);
  padding: 0.85rem 0;
}

.m46-home-reassure__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem 1rem;
}

.m46-home-reassure__list li {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--font-display);
  font-size: 0.8125rem; /* R3: chrome ≥13px */
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.2;
}

.m46-home-reassure__list .material-icons {
  color: var(--m46-yellow);
  font-size: 1.15rem;
  flex: 0 0 auto;
}

/* Univers */
.m46-home-univers {
  padding: 2rem 0 0.5rem;
}

.m46-home-univers__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.m46-home-univers__tile {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-height: 7.25rem;
  padding: 1rem 0.9rem 0.95rem;
  background: #fff;
  border: 1px solid var(--color-border);
  text-decoration: none !important;
  color: var(--m46-ink) !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.m46-home-univers__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  margin-bottom: 0.45rem;
  padding: 0.35rem;
  background: var(--m46-yellow);
  border: 1px solid var(--m46-black);
  color: var(--m46-black);
}

.m46-home-univers__icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.m46-home-univers__label {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: 1.15;
}

.m46-home-univers__hint {
  color: var(--m46-steel);
  font-size: 0.8rem;
  line-height: 1.3;
}

.m46-home-univers__tile:hover,
.m46-home-univers__tile:focus-visible {
  border-color: var(--m46-black);
  box-shadow: 3px 3px 0 rgba(20, 19, 16, 0.12);
  transform: translateY(-2px);
  color: var(--m46-ink) !important;
}

@media (prefers-reduced-motion: reduce) {
  .m46-home-univers__tile,
  .m46-home-univers__tile:hover,
  .m46-home-univers__tile:focus-visible {
    transform: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
  }
}

/* Marques home */
.m46-home-brands {
  padding: 1.75rem 0 1.25rem;
}

.m46-home-brands__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem 0.45rem;
}

.m46-home-brands__tile {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
  text-decoration: none !important;
  color: var(--m46-ink) !important;
}

.m46-home-brands__media {
  display: grid;
  place-items: center;
  aspect-ratio: 4 / 3;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 0.4rem;
  background: #fff;
  border: 1px solid var(--color-border);
  overflow: hidden;
  box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.m46-home-brands__logo {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}

.m46-home-brands__name {
  display: block;
  text-align: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.8125rem; /* R3: chrome ≥13px */
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.m46-home-brands__tile:hover .m46-home-brands__media,
.m46-home-brands__tile:focus-visible .m46-home-brands__media {
  border-color: var(--m46-black);
  box-shadow: 3px 3px 0 rgba(20, 19, 16, 0.1);
}

.m46-home-brands__tile:hover .m46-home-brands__name {
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.15rem;
}

/* Atelier - fond papier, contraste lisible (h2 global = ink) */
.m46-home-atelier,
.page-index .ps-customtext {
  padding: 1.75rem 0 1.25rem;
  background: transparent;
}

.m46-home-atelier__panel {
  display: grid;
  gap: 1.35rem;
  background: #fff;
  color: var(--m46-ink);
  border: 1px solid var(--color-border);
  border-left: 4px solid var(--m46-yellow);
  padding: 1.35rem 1.2rem 1.4rem;
}

.m46-home-atelier__eyebrow {
  margin: 0 0 0.4rem;
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--m46-steel);
}

.m46-home-atelier__title {
  margin: 0 0 0.55rem;
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: 1.1;
  color: var(--m46-black) !important;
}

.m46-home-atelier__lead {
  margin: 0 0 1.1rem;
  color: var(--m46-steel);
  font-size: 0.95rem;
  line-height: 1.55;
  max-width: 40rem;
}

.m46-home-atelier__proofs {
  list-style: none;
  margin: 0 0 1.25rem;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.m46-home-atelier__proofs li {
  display: grid;
  gap: 0.15rem;
  padding: 0.65rem 0.75rem;
  background: var(--m46-paper);
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--m46-yellow);
}

.m46-home-atelier__proofs strong {
  font-family: var(--font-display);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--m46-black);
}

.m46-home-atelier__proofs span {
  color: var(--m46-steel);
  font-size: 0.85rem;
  line-height: 1.35;
}

.m46-home-atelier__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.m46-home-atelier__actions .btn-primary {
  background: var(--m46-yellow) !important;
  color: var(--m46-black) !important;
  border: 1px solid var(--m46-black) !important;
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.m46-home-atelier__actions .btn-outline-primary {
  color: var(--m46-black) !important;
  border: 1px solid var(--m46-black) !important;
  background: #fff !important;
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.m46-home-atelier__actions .btn-outline-primary:hover {
  background: var(--m46-paper) !important;
  border-color: var(--m46-black) !important;
  color: var(--m46-black) !important;
}

.m46-home-atelier__link {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  align-self: center;
  padding: 0.35rem 0.15rem;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none !important;
  color: var(--m46-ink) !important;
  border-bottom: 2px solid var(--m46-yellow);
  min-height: 2.75rem;
}

.m46-home-atelier__link .material-icons {
  font-size: 1rem;
}

.m46-home-atelier__link:hover,
.m46-home-atelier__link:focus-visible {
  color: var(--m46-black) !important;
  border-bottom-color: var(--m46-black);
}

.m46-home-atelier__aside {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 0;
  padding: 1.1rem 1rem;
  background: var(--m46-black);
  color: #fff;
  border: 1px solid var(--m46-black);
  text-align: center;
}

.m46-home-atelier__mark {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 11rem;
  margin: 0 auto 0.15rem;
}

.m46-home-atelier__mark img {
  display: block;
  width: 100%;
  max-width: 11rem;
  height: auto;
  max-height: 4.5rem;
  object-fit: contain;
}

.m46-home-atelier__place {
  margin: 0;
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.78);
}

.m46-home-atelier__aside-note {
  margin: 0.15rem 0 0;
  font-size: 0.82rem;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.55);
}

/* Newsletter — bandeau sombre intégré au footer (pas de carte blanche) */
.m46-newsletter,
.ps-emailsubscription.m46-newsletter {
  padding: 1.1rem 0 1.15rem;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.82);
}

.m46-newsletter__inner {
  display: grid;
  gap: 0.85rem 1.5rem;
  align-items: center;
  padding: 0;
  background: transparent;
  border: none;
}

.m46-newsletter__intro {
  min-width: 0;
}

.m46-newsletter__title {
  margin: 0 0 0.2rem;
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 2.2vw, 1.4rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: 1.15;
  color: #fff !important;
}

.m46-newsletter__lead {
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.88rem;
  line-height: 1.35;
}

.m46-newsletter__form {
  display: grid;
  gap: 0.45rem;
  min-width: 0;
}

.m46-newsletter__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.45rem;
}

.m46-newsletter__input,
.m46-newsletter .m46-newsletter__input.form-control {
  min-height: 2.5rem;
  padding: 0.5rem 0.75rem;
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
  border-radius: 0 !important;
  color: #fff !important;
  font-size: 0.92rem;
  box-shadow: none !important;
}

.m46-newsletter__input::placeholder {
  color: rgba(255, 255, 255, 0.78);
  opacity: 1;
}

.m46-newsletter__input:focus,
.m46-newsletter .m46-newsletter__input.form-control:focus {
  border-color: var(--m46-yellow) !important;
  box-shadow: 0 0 0 2px rgba(255, 206, 0, 0.35) !important;
  background: rgba(255, 255, 255, 0.1) !important;
  color: #fff !important;
}

.m46-newsletter__submit {
  min-height: 2.5rem;
  padding-inline: 1.1rem;
  background: var(--m46-yellow) !important;
  color: var(--m46-black) !important;
  border: 1px solid var(--m46-yellow) !important;
  border-radius: 0 !important;
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.m46-newsletter__submit:hover {
  filter: brightness(0.97);
}

.m46-newsletter__legal,
.m46-newsletter__legal p {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.48);
}

.m46-newsletter__legal a {
  color: var(--m46-yellow);
}

.m46-newsletter__alert {
  margin: 0;
}

/* Espacement sections produits home */
.page-index .ps-featuredproducts,
.page-index .ps-specials {
  padding-block: 1.25rem 0.75rem;
}

.page-index .ps-featuredproducts .btn,
.page-index .ps-specials .btn {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
}

@media (min-width: 576px) {
  .m46-home-reassure__list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
  }

  .m46-home-univers__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .m46-home-univers__tile--accent {
    grid-column: auto;
  }

  /* R4: tablette = 3×2, pas 6 cols serrées */
  .m46-home-brands__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem 0.55rem;
  }
}

@media (min-width: 768px) {
  .m46-home-univers {
    padding-top: 2.35rem;
  }

  .m46-home-univers__grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.75rem;
  }

  .m46-home-atelier__panel {
    grid-template-columns: minmax(0, 1.5fr) minmax(11rem, 0.7fr);
    align-items: stretch;
    padding: 1.6rem 1.5rem;
    gap: 1.35rem;
  }

  .m46-home-atelier__aside {
    padding: 1.35rem 1.1rem;
  }

  .m46-home-atelier__proofs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .m46-newsletter__inner {
    grid-template-columns: minmax(12rem, 0.95fr) minmax(0, 1.15fr);
    align-items: center;
    gap: 1rem 1.75rem;
  }

  .m46-newsletter__row {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: stretch;
  }
}

@media (min-width: 992px) {
  .m46-home-reassure {
    padding: 0.95rem 0;
  }

  .m46-home-reassure__list li {
    font-size: 0.8125rem;
    justify-content: center;
  }

  .m46-home-univers__tile {
    min-height: 8rem;
    padding: 1.15rem 1rem 1.1rem;
  }

  .m46-home-brands {
    padding: 2rem 0 1.5rem;
  }

  .m46-home-brands__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.75rem 0.65rem;
  }

  .m46-home-brands__media {
    aspect-ratio: 1 / 1;
    padding: 0.55rem;
  }

  .m46-home-brands__name {
    font-size: 0.8125rem;
  }
}

@media (max-width: 575.98px) {
  .m46-home-reassure__list li span {
    font-size: 0.75rem; /* R3: floor 12px (était 0.66rem) */
  }

  .m46-home-section__head--row .m46-home-section__more {
    width: 100%;
  }

  .m46-home-atelier__actions .btn {
    width: 100%;
  }

  .m46-home-atelier__actions .m46-home-atelier__link {
    width: auto;
    align-self: flex-start;
  }
}

@media (hover: none) {
  .m46-home-univers__tile:hover {
    transform: none;
    box-shadow: none;
  }

  .m46-home-univers__tile:active {
    border-color: var(--m46-black);
    background: var(--m46-paper);
  }
}

/* m46 rebuild 1786439500 — a11y visuelle formulaires compte */

/* -------------------------------------------------------------------------- */
/* Compte — historique commandes + détail commande (atelier)                  */
/* -------------------------------------------------------------------------- */

.page-history .page-header h1,
.page-history .page-title-section,
.page-order-detail .page-header h1,
.page-order-detail .page-title-section {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
}

.page-history .account-menu__back,
.page-order-detail .account-menu__back {
  border: 2px solid var(--m46-black);
  border-radius: 0;
  color: var(--m46-black);
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
  font-size: 0.82rem;
  background: #fff;
  margin-bottom: 1.1rem;
}

.page-history .account-menu__back:hover,
.page-order-detail .account-menu__back:hover {
  background: color-mix(in srgb, var(--m46-yellow) 28%, #fff);
  border-color: var(--m46-black);
  color: var(--m46-black);
}

/* Badges statut — carrés atelier, pas pills BS */
.m46-order-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  padding: 0.28rem 0.55rem;
  border: 2px solid var(--m46-black);
  border-radius: 0;
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.15;
  color: #fff;
  background: var(--m46-ink);
  box-shadow: 2px 2px 0 var(--m46-black);
}

.m46-order-badge--lg {
  font-size: 0.82rem;
  padding: 0.38rem 0.7rem;
}

.m46-order-badge--dark {
  color: var(--m46-black);
}

/* Couleurs sémantiques statut (historique + détail) — atelier, pas rainbow BS */
.m46-order-status--delivered {
  background: #2f5d3a; /* vert sombre atelier */
  border-color: #1e3d26;
  color: #f4f7f4;
  box-shadow: 2px 2px 0 #1e3d26;
}

.m46-order-status--shipped {
  background: #3d5a73; /* bleu encre / steel */
  border-color: #2a3f52;
  color: #f2f5f8;
  box-shadow: 2px 2px 0 #2a3f52;
}

.m46-order-status--processing {
  background: var(--m46-yellow);
  border-color: var(--m46-black);
  color: var(--m46-black);
  box-shadow: 2px 2px 0 var(--m46-black);
}

.m46-order-status--payment {
  background: var(--m46-paper);
  border-color: var(--m46-ink);
  color: var(--m46-ink);
  box-shadow: 2px 2px 0 var(--m46-ink);
}

.m46-order-status--cancelled {
  background: #6b2c32; /* bordeaux sombre */
  border-color: #4a1e22;
  color: #f8f0f1;
  box-shadow: 2px 2px 0 #4a1e22;
}

.m46-order-status--fallback {
  background: var(--m46-ink);
  border-color: var(--m46-black);
  color: var(--m46-paper);
  box-shadow: 2px 2px 0 var(--m46-black);
}

/* --- Historique --- */
.m46-orders__lead {
  margin: 0 0 1.25rem;
  color: var(--m46-steel);
  font-size: 0.95rem;
  line-height: 1.45;
  max-width: 38rem;
}

.m46-orders__list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.m46-order-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
  padding: 1.25rem 1.35rem 1.3rem 1.5rem;
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  border-left: 4px solid var(--m46-yellow);
  transition: border-color 0.2s ease, transform 0.15s ease;
}

@media (prefers-reduced-motion: no-preference) {
  .m46-order-row:hover {
    border-color: var(--m46-black);
    transform: translateY(-1px);
  }
}

.m46-order-row__body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  align-items: start;
}

.m46-order-row__label {
  display: block;
  font-family: var(--font-display);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--m46-steel);
  margin-bottom: 0.15rem;
}

.m46-order-row__ref {
  margin: 0;
}

.m46-order-row__value {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--m46-black);
  word-break: break-word;
}

.m46-order-row__date {
  margin: 0.2rem 0 0;
  color: var(--m46-steel);
  font-size: 0.9rem;
  font-variant-numeric: tabular-nums;
}

.m46-order-row__total {
  margin: 0;
}

.m46-order-row__amount {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--m46-black);
  font-variant-numeric: tabular-nums;
}

.m46-order-row__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.85rem;
}

.m46-order-row__details {
  border-radius: 0 !important;
  min-height: 2.4rem;
  padding: 0.45rem 1rem !important;
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.82rem;
}

.m46-order-row__details:active {
  transform: translateY(1px);
}

.m46-order-row__invoice,
.m46-order-row__reorder {
  color: var(--m46-ink);
  font-weight: 600;
  font-size: 0.88rem;
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.18rem;
}

.m46-order-row__invoice:hover,
.m46-order-row__reorder:hover {
  color: var(--m46-black);
}

.m46-orders__empty {
  padding: 1.5rem 1.25rem;
  background: #fff;
  border: 2px solid var(--m46-black);
}

.m46-orders__empty p {
  margin: 0 0 1rem;
  color: var(--m46-steel);
}

@media (min-width: 768px) {
  .m46-order-row {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem 1.25rem;
    padding: 1.25rem 1.35rem 1.3rem 1.5rem;
  }

  .m46-order-row__body {
    grid-template-columns: minmax(10rem, 1.4fr) minmax(7rem, 0.9fr) minmax(5.5rem, 0.7fr);
    align-items: center;
    gap: 0.75rem 1.25rem;
  }

  .m46-order-row__actions {
    justify-content: flex-end;
    flex-direction: column;
    align-items: stretch;
    min-width: 9.5rem;
  }

  .m46-order-row__details {
    width: 100%;
    text-align: center;
  }

  .m46-order-row__invoice,
  .m46-order-row__reorder {
    text-align: center;
    font-size: 0.82rem;
  }
}

@media (min-width: 992px) {
  .m46-order-row__value {
    font-size: 1.25rem;
  }

  .m46-order-row__amount {
    font-size: 1.5rem;
  }
}

/* --- Détail commande --- */
.m46-order-detail {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.m46-order-detail__head {
  padding: 1.15rem 1.15rem 1.2rem;
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  border-top: 3px solid var(--m46-yellow);
}

.m46-order-detail__head-top {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin-bottom: 1rem;
}

.m46-order-detail__kicker {
  display: block;
  font-family: var(--font-display);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--m46-steel);
  margin-bottom: 0.2rem;
}

.m46-order-detail__ref {
  margin: 0;
}

.m46-order-detail__ref-value {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.5vw, 1.85rem);
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--m46-black);
  line-height: 1.1;
  word-break: break-word;
}

.m46-order-detail__date {
  margin: 0.35rem 0 0;
  color: var(--m46-steel);
  font-size: 0.92rem;
  font-variant-numeric: tabular-nums;
}

.m46-order-detail__meta {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.55rem 1.5rem;
  margin: 0 0 0.85rem;
}

.m46-order-detail__meta-item {
  display: grid;
  gap: 0.1rem;
}

.m46-order-detail__meta dt {
  font-family: var(--font-display);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--m46-steel);
}

.m46-order-detail__meta dd {
  margin: 0;
  color: var(--m46-ink);
  font-weight: 600;
}

.m46-order-detail__note {
  margin: 0 0 0.85rem;
  padding: 0.65rem 0.75rem;
  background: var(--m46-paper);
  border-left: 3px solid var(--m46-yellow);
  color: var(--m46-steel);
  font-size: 0.9rem;
}

.m46-order-detail__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--m46-steel-line);
}

.m46-order-detail__invoice {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--m46-ink);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.18rem;
}

.m46-order-detail__invoice .material-icons {
  font-size: 1.15rem;
}

.m46-order-detail__actions .btn {
  border-radius: 0;
  border-width: 2px;
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.82rem;
}

.m46-order-detail__section {
  padding: 0;
}

.m46-order-detail__title,
.page-order-detail .order-carriers .h3,
.page-order-detail .order-messages .h3,
.page-order-detail .order-message-form .h3 {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--m46-black);
  margin: 0 0 0.85rem;
  padding-bottom: 0.4rem;
  border-bottom: 2px solid var(--m46-yellow);
  display: inline-block;
}

.page-order-detail hr.order-separator {
  display: none;
}

/* Timeline suivi */
.m46-order-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  background: #fff;
  border: 1px solid var(--m46-steel-line);
}

.m46-order-timeline__item {
  display: grid;
  grid-template-columns: minmax(6.5rem, 8rem) 1fr;
  gap: 0.75rem 1rem;
  align-items: center;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--m46-steel-line);
}

.m46-order-timeline__item:last-child {
  border-bottom: 0;
}

.m46-order-timeline__item--current {
  background: color-mix(in srgb, var(--m46-yellow) 14%, #fff);
}

.m46-order-timeline__date {
  font-size: 0.88rem;
  color: var(--m46-steel);
  font-variant-numeric: tabular-nums;
}

/* Expédition */
.m46-order-shipping__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.m46-order-shipping__item {
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  padding: 0.9rem 1rem;
}

.m46-order-shipping__row {
  display: grid;
  grid-template-columns: minmax(7rem, 9rem) 1fr;
  gap: 0.35rem 0.85rem;
  padding: 0.28rem 0;
}

.m46-order-shipping__label {
  font-family: var(--font-display);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--m46-steel);
}

.m46-order-shipping__value {
  color: var(--m46-ink);
  font-weight: 500;
  word-break: break-word;
}

.m46-order-shipping__row--tracking .m46-order-shipping__value a {
  color: var(--m46-ink);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
}

/* Adresses */
.m46-order-detail__address-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}

.m46-order-address {
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  border-top: 3px solid var(--m46-black);
  padding: 1.2rem 1.25rem 1.25rem;
}

.m46-order-address__title {
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 0 0 0.55rem;
  color: var(--m46-black);
}

.m46-order-address__alias {
  display: block;
  margin-top: 0.15rem;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--m46-steel);
}

.m46-order-address__content {
  margin: 0;
  font-style: normal;
  color: var(--m46-ink);
  line-height: 1.5;
  font-size: 0.92rem;
}

/* Produits / totaux (partials Hummingbird) */
.page-order-detail .order-products .grid-table,
.page-order-detail .order-products .grid-table__inner {
  border: 1px solid var(--m46-steel-line);
  background: #fff;
  border-radius: 0 !important;
}

.page-order-detail .order-products .grid-table__header {
  background: var(--m46-paper);
  border-bottom: 2px solid var(--m46-black);
}

.page-order-detail .order-products .grid-table__header .grid-table__cell {
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--m46-steel);
}

.page-order-detail .order-products .grid-table__row {
  border-bottom: 1px solid var(--m46-steel-line);
}

.page-order-detail .order-products .grid-table__row:last-child {
  border-bottom: 0;
}

.page-order-detail .order-product__name {
  color: var(--m46-black);
  font-weight: 600;
  text-decoration: none;
}

.page-order-detail .order-product__name:hover {
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
}

.page-order-detail .order-products .grid-table__inner--6 {
  margin-top: 0.75rem;
  border: 2px solid var(--m46-black);
  background: #fff;
}

.page-order-detail .order-products .grid-table__cell--label-value {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.02em;
  font-size: 1.05rem;
}

.page-order-detail .order-products .grid-table__inner--6 .grid-table__row:last-child {
  background: color-mix(in srgb, var(--m46-yellow) 18%, #fff);
}

.page-order-detail .order-products .grid-table__inner--6 .grid-table__row:last-child .grid-table__cell--label-value {
  font-size: 1.25rem;
  color: var(--m46-black);
}

/* Messages */
.page-order-detail .order-message-form,
.page-order-detail .order-messages {
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  padding: 1rem 1.05rem 1.15rem;
}

.page-order-detail .order-message-form .form-control,
.page-order-detail .order-message-form .form-select {
  border: 2px solid var(--m46-black);
  border-radius: 0;
  min-height: 2.85rem;
}

.page-order-detail .order-message-form .form-control:focus,
.page-order-detail .order-message-form .form-select:focus {
  border-color: var(--m46-black);
  box-shadow: 0 0 0 2px var(--m46-yellow);
  outline: none;
}

.page-order-detail .order-message-form .btn-primary {
  border-radius: 0;
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

@media (min-width: 768px) {
  .m46-order-detail__meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .m46-order-detail__address-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .m46-order-detail__head {
    padding: 1.35rem 1.35rem 1.4rem;
  }
}

/* -------------------------------------------------------------------------- */
/* Contact                                                                     */
/* -------------------------------------------------------------------------- */
.m46-contact {
  max-width: 68rem;
}

.m46-contact__intro {
  margin: 0 0 1.5rem;
  padding: 0 0 1.15rem;
  border-bottom: 1px solid var(--m46-steel-line);
}

.m46-contact__kicker,
.m46-cms__kicker,
.m46-404__kicker {
  margin: 0.65rem 0 0.35rem;
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--m46-steel);
}

.m46-contact__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 3.2vw, 2.55rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: var(--lh-tight);
  color: var(--m46-black);
}

.m46-contact__lead {
  margin: 0.65rem 0 0;
  max-width: 36rem;
  color: var(--m46-steel);
  font-size: 0.98rem;
  line-height: 1.45;
}

.m46-contact__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  align-items: start;
}

.m46-contact__aside {
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  border-top: 3px solid var(--m46-yellow);
  padding: 1.1rem 1.1rem 1.2rem;
}

.m46-storeinfo__title,
.ps-contactinfo .m46-storeinfo__title {
  margin: 0 0 1rem;
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--m46-black);
}

.m46-storeinfo__item,
.m46-contact__aside .ps-contactinfo__item {
  display: grid;
  grid-template-columns: 1.4rem 1fr;
  gap: 0.65rem;
  align-items: start;
  margin: 0 0 0.9rem;
  padding: 0;
}

.m46-storeinfo__item:last-child,
.m46-contact__aside .ps-contactinfo__item:last-child {
  margin-bottom: 0;
}

.m46-storeinfo__item .material-icons,
.m46-contact__aside .ps-contactinfo__item .material-icons {
  font-size: 1.2rem;
  line-height: 1.35;
  color: var(--m46-ink);
}

.m46-storeinfo__info,
.m46-storeinfo__info a,
.m46-contact__aside .ps-contactinfo__info,
.m46-contact__aside .ps-contactinfo__info a {
  margin: 0;
  color: var(--m46-ink);
  font-size: 0.95rem;
  line-height: 1.45;
  text-decoration: none;
  font-style: normal;
}

.m46-storeinfo__info a:hover,
.m46-contact__aside .ps-contactinfo__info a:hover {
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.18rem;
}

.m46-contact__aside .ps-contactinfo hr,
.m46-storeinfo hr {
  display: none;
}

.m46-contact-form,
.m46-contact__form-wrap .contact-form {
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  border-left: 4px solid var(--m46-yellow);
  padding: 1.15rem 1.15rem 1.25rem;
}

.m46-contact-form__title {
  margin: 0 0 0.35rem;
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--m46-black);
}

.m46-contact-form__text {
  margin: 0 0 1.15rem;
  color: var(--m46-steel);
  font-size: 0.92rem;
  line-height: 1.45;
}

.page-contact .m46-contact-form .form-control,
.page-contact .m46-contact-form .form-select,
.page-contact .contact-form .form-control,
.page-contact .contact-form .form-select {
  background: #fff;
  color: var(--m46-ink);
  border: 2px solid var(--m46-black);
  border-radius: 0;
  min-height: 2.85rem;
  box-shadow: none;
}

.page-contact .m46-contact-form .form-control:focus,
.page-contact .m46-contact-form .form-select:focus,
.page-contact .contact-form .form-control:focus,
.page-contact .contact-form .form-select:focus {
  border-color: var(--m46-black);
  box-shadow: 0 0 0 3px rgba(255, 206, 0, 0.55);
  outline: 2px solid var(--m46-black);
  outline-offset: 1px;
}

.page-contact .m46-contact-form .form-label,
.page-contact .contact-form .form-label {
  color: var(--m46-black);
  font-weight: 600;
}

.page-contact .m46-contact-form textarea.form-control,
.page-contact .contact-form textarea.form-control {
  min-height: 8rem;
}

.m46-contact-form__footer .btn-primary {
  border-radius: 0;
  min-height: 2.6rem;
}

@media (min-width: 992px) {
  .m46-contact__grid {
    grid-template-columns: minmax(15rem, 0.85fr) minmax(0, 1.35fr);
    gap: 1.5rem;
  }
}

/* -------------------------------------------------------------------------- */
/* CMS (mentions, CGV, pages légales)                                          */
/* Pleine largeur du content area site (comme le container principal).         */
/* -------------------------------------------------------------------------- */
.page-cms #left-column,
.page-cms #right-column {
  display: none !important;
}

.page-cms #center-column,
.page-cms .page.page--full-width {
  width: 100%;
  max-width: none;
  flex: 0 0 100%;
}

.m46-cms {
  width: 100%;
  max-width: none;
  margin: 0;
}

.m46-cms__intro {
  margin: 0 0 1.5rem;
  padding: 0 0 1.15rem;
  border-bottom: 1px solid var(--m46-steel-line);
}

.m46-cms__kicker {
  margin: 0.65rem 0 0.35rem;
}

.m46-cms__title,
.page-cms .page-header h1,
.page-cms .page-title-section {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 3.2vw, 2.55rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: var(--lh-tight);
  color: var(--m46-black);
  text-align: left;
}

.m46-cms__body {
  width: 100%;
  max-width: none;
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  border-left: 4px solid var(--m46-yellow);
  padding: clamp(1.25rem, 2.5vw, 1.85rem) clamp(1.35rem, 3.2vw, 2.5rem)
    clamp(1.5rem, 2.5vw, 2.1rem);
}

.m46-cms__body > *:first-child {
  margin-top: 0;
}

.m46-cms__body h1,
.m46-cms__body h2,
.m46-cms__body h3,
.m46-cms__body h4,
.m46-cms__body .p1 {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
  color: var(--m46-black);
  line-height: var(--lh-tight);
  margin: 1.75rem 0 0.65rem;
  max-width: none;
}

.m46-cms__body h2,
.m46-cms__body h3 {
  font-size: clamp(1.15rem, 1.6vw, 1.35rem);
}

.m46-cms__body p,
.m46-cms__body li,
.m46-cms__body td,
.m46-cms__body th {
  font-family: var(--font-body);
  color: var(--m46-ink);
  font-size: 1.02rem;
  line-height: 1.7;
  max-width: none;
}

.m46-cms__body p {
  margin: 0 0 1rem;
}

.m46-cms__body ul,
.m46-cms__body ol {
  margin: 0 0 1.1rem;
  padding-left: 1.25rem;
  max-width: none;
}

.m46-cms__body li + li {
  margin-top: 0.35rem;
}

.m46-cms__body a {
  color: var(--m46-ink);
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.18rem;
}

.m46-cms__body a:hover {
  color: var(--m46-black);
}

/* -------------------------------------------------------------------------- */
/* Panneaux compte (identité / adresse form)                                   */
/* -------------------------------------------------------------------------- */
.m46-account-panel {
  max-width: 42rem;
}

.m46-account-panel__lead {
  margin: 0 0 1.1rem;
  color: var(--m46-steel);
  font-size: 0.95rem;
  line-height: 1.45;
  max-width: 38rem;
}

.m46-account-panel__body {
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  border-top: 3px solid var(--m46-yellow);
  padding: 1.5rem 1.5rem 1.55rem;
}

.m46-account-panel--form .m46-account-panel__body form,
.m46-identity__form form {
  max-width: none;
}

@media (max-width: 575.98px) {
  .m46-account-panel__body {
    padding: 1.2rem 1rem 1.3rem;
  }
}

/* -------------------------------------------------------------------------- */
/* Adresses (compte) — plaques ; ne pas partager avec checkout                */
/* -------------------------------------------------------------------------- */
.m46-addresses {
  max-width: 56rem;
}

.m46-addresses__lead {
  margin: 0 0 1.25rem;
  color: var(--m46-steel);
  font-size: 0.95rem;
  line-height: 1.45;
  max-width: 38rem;
}

.m46-addresses__list,
.page-addresses .addresses__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin: 0;
  padding: 0;
  align-items: stretch;
}

.page-addresses .m46-address-card,
.page-addresses .address-card,
.m46-addresses .m46-address-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  border-left: 4px solid var(--m46-yellow);
  border-radius: 0;
  box-shadow: none;
  margin: 0;
  padding: 0;
  min-height: 11rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s ease, transform 0.15s ease;
}

.page-addresses .m46-address-card:not(.m46-address-card--add):hover,
.m46-addresses .m46-address-card:not(.m46-address-card--add):hover {
  border-color: var(--m46-black);
}

.page-addresses .m46-address-card__inner,
.page-addresses .address-card__container,
.m46-addresses .m46-address-card__inner {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  padding: 1.35rem 1.35rem 1.4rem 1.5rem;
  height: 100%;
  box-sizing: border-box;
  cursor: default;
}

.page-addresses .m46-address-card__alias,
.page-addresses .address-card__alias,
.m46-addresses .m46-address-card__alias {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--m46-black);
  line-height: 1.25;
}

.page-addresses .m46-address-card__body,
.page-addresses .address-card__content,
.m46-addresses .m46-address-card__body {
  margin: 0;
  color: var(--m46-ink);
  font-style: normal;
  font-size: 0.95rem;
  line-height: 1.5;
}

.page-addresses .m46-address-card__actions,
.page-addresses .address-card__actions,
.m46-addresses .m46-address-card__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.1rem;
  margin-top: auto;
  padding-top: 0.95rem;
  padding-bottom: 0.1rem;
  border-top: 1px solid var(--m46-steel-line);
}

.page-addresses .m46-address-card__edit,
.m46-addresses .m46-address-card__edit {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.82rem;
  color: var(--m46-ink);
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.18rem;
}

.page-addresses .m46-address-card__delete,
.m46-addresses .m46-address-card__delete {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--m46-red);
  text-decoration: none;
}

.page-addresses .m46-address-card__delete:hover,
.m46-addresses .m46-address-card__delete:hover {
  text-decoration: underline;
}

/* Carte « ajouter » — icône + label centrés dans la plaque */
.page-addresses .m46-address-card--add,
.m46-addresses .m46-address-card--add {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  min-height: 11rem;
  padding: 1.35rem 1.35rem;
  border-style: dashed;
  border-width: 2px;
  border-left: 4px solid var(--m46-yellow);
  border-color: var(--m46-steel-line);
  border-left-color: var(--m46-yellow);
  background: color-mix(in srgb, var(--m46-yellow) 8%, #fff);
  text-align: center;
}

.page-addresses .m46-address-card--add:hover,
.page-addresses .m46-address-card--add:focus-visible,
.m46-addresses .m46-address-card--add:hover,
.m46-addresses .m46-address-card--add:focus-visible {
  border-color: var(--m46-black);
  outline: none;
  transform: translateY(-1px);
}

.page-addresses .m46-address-card__add-icon,
.m46-addresses .m46-address-card__add-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  background: var(--m46-yellow);
  border: 2px solid var(--m46-black);
  color: var(--m46-black);
  flex: 0 0 auto;
}

.page-addresses .m46-address-card__add-icon .material-icons,
.m46-addresses .m46-address-card__add-icon .material-icons {
  font-size: 1.35rem;
  line-height: 1;
}

.page-addresses .m46-address-card__add-text,
.m46-addresses .m46-address-card__add-text {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.92rem;
  line-height: 1.3;
  color: var(--m46-black);
  max-width: 14rem;
  text-wrap: balance;
}

@media (min-width: 768px) {
  .m46-addresses__list,
  .page-addresses .addresses__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-addresses .m46-address-card,
  .page-addresses .m46-address-card--add,
  .m46-addresses .m46-address-card,
  .m46-addresses .m46-address-card--add {
    transition: none;
  }

  .page-addresses .m46-address-card--add:hover,
  .m46-addresses .m46-address-card--add:hover {
    transform: none;
  }
}

/* -------------------------------------------------------------------------- */
/* Paramètres compte — formulaire atelier (identité / adresse / register)      */
/* -------------------------------------------------------------------------- */
.m46-cf__field--type-hidden,
.m46-af__field--type-hidden {
  display: none;
}

.m46-cf__fields {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.m46-af__fields {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.m46-cf__section {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.m46-cf__field,
.m46-af__field {
  min-width: 0;
}

.m46-cf,
.m46-cf__fields,
.m46-cf__section {
  max-width: 100%;
}

.m46-auth__lead {
  overflow-wrap: break-word;
}

.m46-cf__field .form-text,
.m46-cf__field .form-control-comment,
.m46-af__field .form-text {
  white-space: normal;
  overflow-wrap: break-word;
}

.m46-cf__field .password-field,
.m46-af__field .password-field {
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
}

.m46-cf__field .password-field > .form-control,
.m46-af__field .password-field > .form-control {
  width: auto;
  min-width: 0;
  flex: 1 1 auto;
}

.m46-cf__field .password-field > .btn,
.m46-af__field .password-field > .btn {
  flex: 0 0 auto;
  display: inline-flex;
}

.m46-cf__heading {
  grid-column: 1 / -1;
  margin: 0;
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--m46-steel);
  line-height: 1.3;
}

.m46-account-panel .m46-cf__section + .m46-cf__section,
.m46-identity .m46-cf__section + .m46-cf__section,
.m46-auth--register .m46-cf__section + .m46-cf__section {
  margin-top: 1.35rem;
  padding-top: 1.35rem;
  border-top: 1px solid var(--m46-steel-line);
}

/* Labels du panneau — même langue que l’auth (display / uppercase) */
.m46-account-panel .form-label,
.m46-identity .form-label,
.m46-settings .form-label,
.m46-auth--register .m46-cf .form-label {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 600;
  font-size: 0.85rem;
  color: var(--m46-ink);
  margin-bottom: 0.32rem;
}

/* Helpers plus discrets, sous le champ, sans rivaliser avec le label */
.m46-account-panel .form-text,
.m46-account-panel .form-control-comment,
.m46-identity .form-text,
.m46-identity .form-control-comment,
.m46-auth--register .m46-cf .form-text,
.m46-auth--register .m46-cf .form-control-comment,
.page-address .m46-af .form-text,
.page-address .m46-af .form-control-comment {
  color: var(--m46-steel);
  font-size: 0.75rem;
  line-height: 1.35;
  margin-top: 0.28rem;
}

.m46-cf__field--firstname .form-text,
.m46-cf__field--lastname .form-text {
  max-width: 36ch;
}

/* Titre social — segmented (Mr / Mrs), pas radios empilés collés au texte */
.m46-cf__field--id_gender [aria-labelledby] {
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
  max-width: 22rem;
  border: 2px solid var(--m46-black);
  background: #fff;
}

.page-identity .m46-cf__field--id_gender .form-check,
.page-registration .m46-cf__field--id_gender .form-check,
.page-address .m46-cf__field--id_gender .form-check,
.js-customer-form .m46-cf__field--id_gender .form-check {
  position: relative;
  display: block;
  flex: 1 1 0;
  margin: 0;
  padding: 0;
  min-height: 0;
}

.js-customer-form .m46-cf__field--id_gender .form-check-input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  border: 0;
  white-space: nowrap;
}

.js-customer-form .m46-cf__field--id_gender .form-check-label {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0 1rem;
  margin: 0;
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--m46-ink);
  cursor: pointer;
  border-right: 2px solid var(--m46-black);
  background: #fff;
}

.js-customer-form .m46-cf__field--id_gender .form-check:last-child .form-check-label {
  border-right: 0;
}

.js-customer-form .m46-cf__field--id_gender .form-check-input:checked + .form-check-label {
  background: var(--m46-yellow);
  color: var(--m46-black);
}

.js-customer-form .m46-cf__field--id_gender .form-check-input:focus-visible + .form-check-label {
  box-shadow: inset 0 0 0 3px var(--m46-black);
  outline: 3px solid var(--m46-black);
  outline-offset: 3px;
}

@media (min-width: 768px) {
  .page-identity .m46-cf__section--identity,
  .page-registration .m46-cf__section--identity {
    grid-template-columns: 1fr 1fr;
    column-gap: 1rem;
    row-gap: 1rem;
  }

  .page-identity .m46-cf__field--id_gender,
  .page-identity .m46-cf__heading,
  .page-registration .m46-cf__field--id_gender {
    grid-column: 1 / -1;
  }
}

/* Checkout : rester en une colonne (pas de grille 2 col) */
#checkout-personal-information-step .m46-cf__section,
#checkout-personal-information-step .m46-cf__section--identity {
  grid-template-columns: 1fr;
  gap: 0.85rem;
}

#checkout .m46-af__fields {
  gap: 0.85rem;
}

#checkout-personal-information-step .m46-cf__field--id_gender [aria-labelledby] {
  max-width: 18rem;
}

/* Credentials / prefs */
.m46-cf__section--credentials,
.m46-cf__section--prefs,
.m46-cf__section--other {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.m46-cf__section--prefs .form-check {
  min-height: 2.75rem;
  align-items: flex-start;
  padding-top: 0.45rem;
  margin-bottom: 0;
}

.m46-cf__section--prefs .form-check-label em {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 400;
  color: var(--m46-steel);
  line-height: 1.35;
}

.m46-account-panel [data-ps-target="password-feedback-target"],
.m46-identity [data-ps-target="password-feedback-target"],
.m46-auth--register [data-ps-target="password-feedback-target"] {
  margin-top: 0.35rem;
  color: var(--m46-steel);
  font-size: 0.75rem;
  line-height: 1.35;
}

.m46-account-panel [data-ps-target="password-feedback-target"] ul,
.m46-identity [data-ps-target="password-feedback-target"] ul,
.m46-auth--register [data-ps-target="password-feedback-target"] ul {
  margin: 0.2rem 0 0;
  padding-left: 1.05rem;
}

.m46-account-panel [data-ps-target="password-feedback-target"] .progress,
.m46-identity [data-ps-target="password-feedback-target"] .progress,
.m46-auth--register [data-ps-target="password-feedback-target"] .progress {
  height: 0.35rem;
  border-radius: 0;
  background: var(--m46-paper-2);
  margin: 0.35rem 0 0.45rem;
}

/* Pied de formulaire — CTA ancré, pas un bouton orphelin */
.m46-account-panel .m46-cf__footer,
.m46-account-panel .m46-af__footer,
.m46-identity .m46-cf__footer {
  margin-top: 1.5rem;
  padding-top: 1.2rem;
  border-top: 1px solid var(--m46-steel-line);
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
}

.m46-account-panel .m46-cf__footer .btn-primary,
.m46-account-panel .m46-af__footer .btn-primary,
.m46-identity .m46-cf__footer .btn-primary {
  min-height: 3rem;
  min-width: 10rem;
  padding-inline: 1.35rem;
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.m46-auth--register .m46-cf__footer {
  margin-top: 1.25rem;
  padding-top: 0.15rem;
}

.m46-auth--register .m46-cf__footer .btn-primary {
  width: 100%;
  min-height: 3rem;
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

@media (max-width: 575.98px) {
  .m46-cf__field--id_gender [aria-labelledby] {
    max-width: none;
  }

  .js-customer-form .m46-cf__field--id_gender .form-check-label {
    min-height: 2.75rem;
  }

  .m46-account-panel .m46-cf__footer .btn-primary,
  .m46-account-panel .m46-af__footer .btn-primary {
    width: 100%;
    min-width: 0;
  }
}

/* Adresse compte — prénom/nom et CP/ville en 2 col desktop */
.page-address .m46-af__fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

@media (min-width: 768px) {
  .page-address .m46-af__fields {
    grid-template-columns: 1fr 1fr;
    column-gap: 1rem;
    row-gap: 1rem;
  }

  .page-address .m46-af__field--alias,
  .page-address .m46-af__field--company,
  .page-address .m46-af__field--vat_number,
  .page-address .m46-af__field--dni,
  .page-address .m46-af__field--address1,
  .page-address .m46-af__field--address2,
  .page-address .m46-af__field--id_country,
  .page-address .m46-af__field--id_state,
  .page-address .m46-af__field--other {
    grid-column: 1 / -1;
  }

  .page-address .m46-af__fields:not(:has(.m46-af__field--phone_mobile)) .m46-af__field--phone {
    grid-column: 1 / -1;
  }
}

/* -------------------------------------------------------------------------- */
/* Avoirs / bons / retours                                                     */
/* -------------------------------------------------------------------------- */
.m46-slips__lead,
.m46-vouchers__lead,
.m46-returns__lead {
  margin: 0 0 1.15rem;
  color: var(--m46-steel);
  font-size: 0.95rem;
  line-height: 1.45;
  max-width: 38rem;
}

.m46-slips__list,
.m46-vouchers__list,
.m46-returns__list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.m46-slip-row,
.m46-return-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
  padding: 1.25rem 1.35rem 1.3rem 1.5rem;
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  border-left: 4px solid var(--m46-yellow);
}

.m46-slip-row__body,
.m46-return-row__body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.7rem;
}

.m46-slip-row__label,
.m46-return-row__label,
.m46-voucher-card__label {
  display: block;
  font-family: var(--font-display);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--m46-steel);
  margin-bottom: 0.15rem;
}

.m46-slip-row__value,
.m46-return-row__value {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--m46-black);
  text-decoration: none;
}

.m46-slip-row__order a,
.m46-return-row__order a {
  color: var(--m46-ink);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.18rem;
}

.m46-slip-row__date,
.m46-return-row__date,
.m46-slip-row__order,
.m46-return-row__order,
.m46-slip-row__ref,
.m46-return-row__ref,
.m46-return-row__status {
  margin: 0;
}

.m46-slip-row__actions,
.m46-return-row__actions {
  display: flex;
  align-items: center;
}

.m46-slip-row__pdf,
.m46-return-row__actions .btn {
  border-radius: 0;
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.82rem;
}

.m46-slips__empty,
.m46-vouchers__empty,
.m46-returns__empty {
  padding: 1.5rem 1.25rem;
  background: #fff;
  border: 2px solid var(--m46-black);
}

.m46-slips__empty p,
.m46-vouchers__empty p,
.m46-returns__empty p {
  margin: 0 0 1rem;
  color: var(--m46-steel);
}

.m46-voucher-card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
  padding: 1.25rem 1.35rem 1.3rem 1.5rem;
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  border-left: 4px solid var(--m46-yellow);
}

.m46-voucher-card__badge {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.65rem;
  background: var(--m46-yellow);
  border: 2px solid var(--m46-black);
  box-shadow: 2px 2px 0 var(--m46-black);
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--m46-black);
  line-height: 1.1;
}

.m46-voucher-card__badge--auto {
  background: #fff;
}

.m46-voucher-card__code {
  margin: 0;
}

.m46-voucher-card__name {
  margin: 0 0 0.75rem;
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--m46-black);
}

.m46-voucher-card__meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem 1rem;
  margin: 0;
}

.m46-voucher-card__meta dt {
  font-family: var(--font-display);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--m46-steel);
}

.m46-voucher-card__meta dd {
  margin: 0.1rem 0 0;
  color: var(--m46-ink);
  font-weight: 600;
  font-size: 0.92rem;
}

@media (min-width: 768px) {
  .m46-slip-row,
  .m46-return-row {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .m46-slip-row__body {
    grid-template-columns: minmax(8rem, 1fr) minmax(8rem, 1fr) minmax(7rem, 0.8fr);
    align-items: start;
  }

  .m46-return-row__body {
    grid-template-columns: minmax(7rem, 1fr) minmax(7rem, 1fr) minmax(7rem, 1fr) minmax(6rem, 0.8fr);
    align-items: start;
  }

  .m46-voucher-card {
    grid-template-columns: minmax(8rem, 0.55fr) minmax(0, 1.45fr);
    align-items: start;
    gap: 1.15rem;
  }

  .m46-voucher-card__meta {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* -------------------------------------------------------------------------- */
/* Guest tracking                                                              */
/* -------------------------------------------------------------------------- */
.m46-guest__panel {
  position: relative;
  overflow: hidden;
}

.m46-guest__panel .m46-hazard {
  margin: -1.15rem -1.15rem 1rem;
  width: calc(100% + 2.3rem);
}

.m46-guest__footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.35rem;
}

.m46-guest__footer .btn-primary {
  border-radius: 0;
  min-width: 8rem;
}

.m46-guest-transform {
  margin-top: 1.5rem;
  padding: 1.15rem 1.15rem 1.25rem;
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  border-top: 3px solid var(--m46-yellow);
}

.m46-guest-transform__title {
  margin: 0.75rem 0 0.35rem;
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.m46-guest-transform__lead {
  margin: 0 0 1rem;
  color: var(--m46-steel);
  font-size: 0.95rem;
}

/* -------------------------------------------------------------------------- */
/* 404 polish                                                                  */
/* -------------------------------------------------------------------------- */
.m46-404 {
  text-align: left;
  max-width: 34rem;
  margin-inline: auto;
}

.m46-404__code {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(4.5rem, 14vw, 7.5rem);
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 0.9;
  color: var(--m46-black);
}

.m46-404__body {
  text-align: left;
  max-width: 34rem;
  margin: 0 auto;
  padding: 1.15rem 1.2rem 1.35rem;
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  border-left: 4px solid var(--m46-yellow);
}

.m46-404__title {
  margin: 0 0 0.55rem;
  font-family: var(--font-display);
  font-size: clamp(1.45rem, 2.8vw, 1.85rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: 1.15;
  color: var(--m46-black);
}

.m46-404__lead {
  margin: 0 0 1.15rem;
  color: var(--m46-steel);
  font-size: 0.98rem;
  line-height: 1.5;
}

.m46-404__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.m46-404__actions .btn {
  border-radius: 0;
}

.page-not-found .page-content,
.page-pagenotfound .page-content {
  text-align: left;
}

/* -------------------------------------------------------------------------- */
/* Checkout atelier M46 — stepper, étapes, récap sticky                        */
/* Option B medium : 1 jaune fort = CTA ; 1 jaune discret = étape courante.    */
/* Flatten : 1 surface / zone, filets 1px max, moins d’UPPERCASE empilé.       */
/* Pas de filets / wash / onglets / checks success jaunes saturés.             */
/* VARIANCE 4 / MOTION 3 / DENSITY 4                                           */
/* -------------------------------------------------------------------------- */

/* Checkout : filet jaune header plus fin (moins de bande bruit sous le nav) */
body#checkout .header-bottom.m46-header,
body#checkout .header-bottom,
body.page-order .header-bottom.m46-header,
body.page-order .header-bottom {
  border-bottom: 1px solid var(--m46-yellow) !important;
}

.page-order .m46-breadcrumb,
body#checkout .m46-breadcrumb {
  display: none;
}

.page-order #content-wrapper,
.page-order .page-content,
body#checkout .columns-container {
  padding-block: 0 2.5rem;
}

.m46-checkout {
  --m46-checkout-sticky-top: calc(var(--scroll-padding-top, 6.5rem) + 0.5rem);
  background: var(--m46-paper);
}

.m46-checkout__container {
  max-width: 1200px;
}

.m46-checkout__grid {
  --bs-gutter-x: 1.75rem;
  --bs-gutter-y: 1.5rem;
  align-items: flex-start;
}

.m46-checkout__main {
  min-width: 0;
}

/* ---- Stepper léger atelier (papier, pas barre noire) ---- */
.checkout-steps.m46-checkout-steps,
.m46-checkout-steps {
  --bs-success: var(--m46-ink);
  --bs-success-rgb: 20, 19, 16;
  --bs-body-color: var(--m46-ink);
  --bs-secondary-color: var(--m46-steel);
  --bs-tertiary-bg: transparent;
  --bs-border-color: var(--m46-steel-line);
  --bs-dark: var(--m46-ink);
  --bs-dark-bg-subtle: var(--m46-paper-2);
  --bs-secondary-bg: var(--m46-paper-2);
  background: transparent !important;
  color: var(--m46-ink);
  border-bottom: 1px solid var(--m46-steel-line) !important;
  border-block-end: 1px solid var(--m46-steel-line) !important;
  margin-bottom: 1.1rem !important;
  margin-block-end: 1.1rem !important;
  padding-block: 0 !important;
}

.m46-checkout-steps__inner {
  max-width: 1200px;
  padding-block: 0.85rem 0.9rem;
}

.m46-checkout-steps__brand {
  margin: 0;
  font-family: var(--font-body);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 500;
  font-size: 0.68rem;
  color: var(--m46-steel);
}

.checkout-steps.m46-checkout-steps .checkout-steps__list,
.m46-checkout-steps__list {
  list-style: none;
  margin: 0 !important;
  padding: 0;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  align-items: stretch;
  width: 100%;
  max-width: none !important;
}

.checkout-steps.m46-checkout-steps .checkout-steps__desktop,
.m46-checkout-steps__desktop {
  display: block !important;
  width: 100%;
  max-width: none !important;
  margin-inline: 0 !important;
}

/* Kill HB connector bars (anciens ::before/::after verts) — on réutilise ::before (underline) + ::after (filet) */
.checkout-steps.m46-checkout-steps .checkout-steps__step::before,
.m46-checkout-steps .checkout-steps__step::before,
.m46-checkout-steps__step::before {
  content: none;
  display: none;
  background: transparent;
  width: 0;
  height: 0;
}

/* Séparateur léger (filet tireté), pas mur blanc */
.checkout-steps.m46-checkout-steps .checkout-steps__step:not(:last-child)::after,
.m46-checkout-steps .checkout-steps__step:not(:last-child)::after,
.m46-checkout-steps__step:not(:last-child)::after {
  content: "" !important;
  display: block !important;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 1.1rem;
  border-right: 1px dashed var(--m46-steel-line);
  background: transparent !important;
  pointer-events: none;
  z-index: 0;
}

.checkout-steps.m46-checkout-steps .checkout-steps__step,
.m46-checkout-steps__step,
.m46-checkout-steps .js-step-item {
  position: relative;
  display: flex !important;
  flex-direction: row !important;
  flex-basis: auto !important;
  flex-shrink: 1;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
  text-align: left !important;
  padding: 0.35rem 0.85rem 0.5rem 0.15rem;
  margin: 0;
  border: 0;
  border-left: 0;
  background: transparent !important;
  opacity: 1;
  transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}

.m46-checkout-steps__step:first-child,
.m46-checkout-steps .js-step-item:first-child {
  padding-left: 0;
}

.checkout-steps.m46-checkout-steps .checkout-steps__step:not(.checkout-steps__step--current):not(.checkout-steps__step--success),
.m46-checkout-steps__step:not(.checkout-steps__step--current):not(.checkout-steps__step--success) {
  opacity: 1;
}

/* Courante : pastille jaune seule (pas d’underline empilé) */
.checkout-steps.m46-checkout-steps .checkout-steps__step--current,
.m46-checkout-steps__step.checkout-steps__step--current,
.js-step-item.checkout-steps__step--current {
  background: transparent !important;
}

.checkout-steps.m46-checkout-steps .checkout-steps__step--current::before,
.m46-checkout-steps__step.checkout-steps__step--current::before,
.js-step-item.checkout-steps__step--current::before {
  content: none !important;
  display: none !important;
  background: transparent !important;
  width: 0;
  height: 0;
}

.checkout-steps.m46-checkout-steps .checkout-steps__step--success,
.m46-checkout-steps__step.checkout-steps__step--success,
.js-step-item.checkout-steps__step--success {
  background: transparent !important;
}

/* Numéros — carrés fins ink, jamais pastille success verte */
.checkout-steps.m46-checkout-steps .checkout-steps__number,
.m46-checkout-steps__number,
.m46-checkout-steps .checkout-steps__number {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  place-content: center;
  width: 1.5rem !important;
  height: 1.5rem !important;
  margin: 0 !important;
  margin-block-end: 0 !important;
  margin-inline: 0 !important;
  border: 2px solid var(--m46-ink) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--m46-ink) !important;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.78rem;
  line-height: 1;
}

/* Futures : ink soft / gris */
.checkout-steps.m46-checkout-steps .checkout-steps__step:not(.checkout-steps__step--current):not(.checkout-steps__step--success) .checkout-steps__number,
.m46-checkout-steps__step:not(.checkout-steps__step--current):not(.checkout-steps__step--success) .m46-checkout-steps__number,
.m46-checkout-steps .checkout-steps__step:not(.checkout-steps__step--current):not(.checkout-steps__step--success) .checkout-steps__number {
  border-color: var(--m46-steel) !important;
  color: var(--m46-steel) !important;
  background: transparent !important;
}

/* Success (validée, pas active) — numéro ink toujours visible, jamais ✓ */
.checkout-steps.m46-checkout-steps .checkout-steps__step--success .checkout-steps__number,
.m46-checkout-steps__step.checkout-steps__step--success .m46-checkout-steps__number,
.m46-checkout-steps .checkout-steps__step--success .checkout-steps__number,
body#checkout .checkout-steps .checkout-steps__step--success .checkout-steps__number,
body#checkout .m46-checkout-steps .js-step-item.checkout-steps__step--success .checkout-steps__number {
  background: transparent !important;
  border-color: var(--m46-ink) !important;
  color: var(--m46-ink) !important;
  font-size: 0.78rem !important;
  line-height: 1 !important;
  text-indent: 0 !important;
}

/* Kill ✓ (ancien content:"✓" + ::before/::after) — spécificité max */
.checkout-steps.m46-checkout-steps .checkout-steps__step--success .checkout-steps__number::before,
.checkout-steps.m46-checkout-steps .checkout-steps__step--success .checkout-steps__number::after,
.m46-checkout-steps__step.checkout-steps__step--success .m46-checkout-steps__number::before,
.m46-checkout-steps__step.checkout-steps__step--success .m46-checkout-steps__number::after,
.m46-checkout-steps .checkout-steps__step--success .checkout-steps__number::before,
.m46-checkout-steps .checkout-steps__step--success .checkout-steps__number::after,
body#checkout .checkout-steps .checkout-steps__step--success .checkout-steps__number::before,
body#checkout .checkout-steps .checkout-steps__step--success .checkout-steps__number::after,
body#checkout .m46-checkout-steps .checkout-steps__step--success .checkout-steps__number::before,
body#checkout .m46-checkout-steps .checkout-steps__step--success .checkout-steps__number::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  font-size: 0 !important;
}

/* Current = pastille jaune discrète (gagne sur success si retour) */
.checkout-steps.m46-checkout-steps .checkout-steps__step--current .checkout-steps__number,
.m46-checkout-steps__step.checkout-steps__step--current .m46-checkout-steps__number,
.m46-checkout-steps .checkout-steps__step--current .checkout-steps__number,
.checkout-steps.m46-checkout-steps .checkout-steps__step--current.checkout-steps__step--success .checkout-steps__number,
.m46-checkout-steps__step.checkout-steps__step--current.checkout-steps__step--success .m46-checkout-steps__number,
.m46-checkout-steps .checkout-steps__step--current.checkout-steps__step--success .checkout-steps__number {
  background: var(--m46-yellow) !important;
  border-color: var(--m46-ink) !important;
  color: var(--m46-ink) !important;
  font-size: 0.78rem !important;
}

.checkout-steps.m46-checkout-steps .checkout-steps__step--current .checkout-steps__number::after,
.m46-checkout-steps__step.checkout-steps__step--current .m46-checkout-steps__number::after,
.m46-checkout-steps .checkout-steps__step--current .checkout-steps__number::after,
.checkout-steps.m46-checkout-steps .checkout-steps__step--current.checkout-steps__step--success .checkout-steps__number::after,
.m46-checkout-steps__step.checkout-steps__step--current.checkout-steps__step--success .m46-checkout-steps__number::after,
.m46-checkout-steps .checkout-steps__step--current.checkout-steps__step--success .checkout-steps__number::after {
  content: none !important;
  display: none !important;
}

/* Labels — Inter calme, 0 vert Bootstrap */
.checkout-steps.m46-checkout-steps .checkout-steps__btn,
.m46-checkout-steps__btn,
.m46-checkout-steps .checkout-steps__btn,
.m46-checkout-steps .btn.btn-link {
  --bs-btn-padding-x: 0;
  --bs-btn-padding-y: 0;
  --bs-btn-color: var(--m46-steel);
  --bs-btn-hover-color: var(--m46-ink);
  --bs-btn-disabled-color: var(--m46-steel);
  --bs-link-color: var(--m46-steel);
  padding: 0 !important;
  text-align: left !important;
  text-decoration: none !important;
  font-family: var(--font-body);
  text-transform: none;
  letter-spacing: 0.01em;
  font-weight: 500;
  font-size: clamp(0.8rem, 1vw, 0.92rem);
  line-height: 1.25;
  white-space: normal;
  max-width: 100%;
  color: var(--m46-steel) !important;
  opacity: 1 !important;
}

.checkout-steps.m46-checkout-steps .checkout-steps__btn:disabled,
.m46-checkout-steps__btn:disabled,
.m46-checkout-steps .checkout-steps__btn:disabled {
  color: var(--m46-steel) !important;
  opacity: 0.85 !important;
}

.checkout-steps.m46-checkout-steps .checkout-steps__step--success .checkout-steps__btn,
.m46-checkout-steps .checkout-steps__step--success .checkout-steps__btn,
.m46-checkout-steps .checkout-steps__step--success .m46-checkout-steps__btn,
.m46-checkout-steps .checkout-steps__step--success .btn.btn-link,
.m46-checkout-steps .text-success,
.m46-checkout-steps .checkout-steps__btn.text-success,
.m46-checkout-steps a.text-success,
.m46-checkout-steps .btn-link.text-success {
  color: var(--m46-ink) !important;
  font-weight: 500;
}

.checkout-steps.m46-checkout-steps .checkout-steps__step--current .checkout-steps__btn,
.m46-checkout-steps .checkout-steps__step--current .checkout-steps__btn,
.m46-checkout-steps .checkout-steps__step--current .m46-checkout-steps__btn,
.m46-checkout-steps .checkout-steps__step--current .btn.btn-link,
.checkout-steps.m46-checkout-steps .checkout-steps__step--current.checkout-steps__step--success .checkout-steps__btn,
.m46-checkout-steps .checkout-steps__step--current.checkout-steps__step--success .checkout-steps__btn,
.m46-checkout-steps .checkout-steps__step--current.checkout-steps__step--success .m46-checkout-steps__btn,
.m46-checkout-steps .checkout-steps__step--current.checkout-steps__step--success .btn.btn-link {
  color: var(--m46-ink) !important;
  font-weight: 600;
}

.m46-checkout-steps__btn:focus-visible,
.m46-checkout-steps .checkout-steps__btn:focus-visible {
  outline: 2px solid var(--m46-black);
  outline-offset: 3px;
}

/* Mobile stepper + progress ring — même langage léger */
.checkout-steps.m46-checkout-steps .checkout-steps__mobile,
.m46-checkout-steps__mobile {
  display: none;
  align-items: center;
  gap: 0.75rem;
  padding-block: 0.15rem;
}

.m46-checkout-steps__title,
.m46-checkout-steps .checkout-steps__title {
  margin: 0 !important;
  font-family: var(--font-body);
  text-transform: none;
  letter-spacing: 0.01em;
  font-weight: 600;
  font-size: 0.98rem !important;
  color: var(--m46-ink) !important;
  line-height: 1.25;
}

.m46-checkout-steps__subtitle,
.m46-checkout-steps .checkout-steps__subtitle {
  margin: 0.15rem 0 0 !important;
  font-family: var(--font-body);
  font-size: 0.8rem !important;
  font-weight: 500;
  color: var(--m46-steel) !important;
}

.m46-checkout-steps__circle,
.m46-checkout-steps .progress-ring,
.m46-checkout-steps .progress-ring.m46-checkout-steps__circle {
  color: var(--m46-yellow) !important;
}

.m46-checkout-steps .progress-ring__circle {
  stroke: var(--m46-yellow) !important;
}

.m46-checkout-steps .progress-ring__background-circle {
  stroke: var(--m46-steel-line) !important;
}

.m46-checkout-steps .progress-ring__text {
  fill: var(--m46-ink) !important;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.8rem;
}

/* ---- Étape (1 plaque claire, filet uniforme — pas de lid ink lourd) ---- */
.m46-checkout-step {
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  padding: 1.1rem 1.1rem 1.15rem;
}

.m46-checkout-step__heading,
.m46-checkout-step .page-title-section {
  font-family: var(--font-display);
  text-transform: none;
  letter-spacing: 0.01em;
  font-weight: 700;
  font-size: clamp(1.2rem, 2.1vw, 1.5rem);
  line-height: 1.2;
  margin: 0 0 0.85rem;
  color: var(--m46-ink);
}

.m46-checkout-step__title {
  margin-bottom: 0;
}

.m46-checkout-step__title hr {
  display: none;
}

.m46-checkout-step__content {
  max-width: 36rem;
}

#checkout-payment-step .m46-checkout-step__content,
#checkout-addresses-step .m46-checkout-step__content {
  max-width: none;
}

/* Étape 1 — rythme form / tabs / CTA */
#checkout-personal-information-step.m46-checkout-step,
#checkout-personal-information-step .m46-checkout-step {
  padding-bottom: 1.05rem;
}

#checkout-personal-information-step .m46-checkout-step__heading {
  margin-bottom: 0.65rem;
}

#checkout-personal-information-step .m46-checkout-tabs {
  margin-bottom: 0.85rem;
}

#checkout-personal-information-step .m46-checkout-tabs__content .tab-pane {
  padding-top: 0.15rem;
}

#checkout-personal-information-step .js-customer-form .mb-3,
#checkout-personal-information-step .js-customer-form .form-group,
#checkout-personal-information-step #login-form .mb-3,
#checkout-personal-information-step #login-form .form-group,
#checkout-personal-information-step .m46-checkout-tabs__content .mb-3 {
  margin-bottom: 0.85rem !important;
}

#checkout-personal-information-step .form-label,
#checkout-personal-information-step .form-control-label {
  margin-bottom: 0.28rem;
}

#checkout-personal-information-step .forgot-password,
#checkout-personal-information-step .m46-checkout-tabs__content .form-footer,
#checkout-personal-information-step .buttons-wrapper,
#checkout-personal-information-step .m46-checkout-actions {
  margin-top: 0.85rem;
  gap: 0.65rem;
}

#checkout-personal-information-step .m46-checkout-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
}

#checkout-personal-information-step .forgot-password {
  margin-bottom: 0;
}

/* Radios titre + checkbox compte — alignement / gaps */
#checkout-personal-information-step .form-control-comment,
#checkout-personal-information-step .form-text {
  margin-top: 0.2rem;
  margin-bottom: 0;
  font-size: 0.8rem;
  line-height: 1.35;
}

#checkout-personal-information-step .radio-inline,
#checkout-personal-information-step .form-check-inline,
#checkout-personal-information-step [class*="gender"] .form-check,
#checkout-personal-information-step .js-customer-form .form-group .form-check {
  margin-bottom: 0.25rem;
}

#checkout-personal-information-step .js-customer-form .form-check {
  align-items: flex-start;
  margin-bottom: 0.35rem;
}

#checkout-personal-information-step .js-customer-form .form-check-input {
  margin-top: 0.2rem;
}

#checkout-personal-information-step .js-customer-form .form-check-label {
  line-height: 1.35;
}

#checkout-personal-information-step .js-password-form__check + .form-check-label,
#checkout-personal-information-step #password-form__check + .form-check-label,
#checkout-personal-information-step .js-password-form__check ~ label,
#checkout-personal-information-step .form-check:has(#password-form__check) {
  align-items: flex-start;
}

#checkout-personal-information-step .form-check:has(#password-form__check) {
  display: grid;
  grid-template-columns: 1.2rem minmax(0, 1fr);
  column-gap: 0.65rem;
  align-items: start;
  padding-left: 0;
  margin-bottom: 0.55rem;
}

#checkout-personal-information-step .form-check:has(#password-form__check) .form-check-input {
  margin: 0.15rem 0 0;
  grid-column: 1;
}

#checkout-personal-information-step .form-check:has(#password-form__check) .form-check-label {
  grid-column: 2;
  padding: 0;
}

#checkout-personal-information-step fieldset,
#checkout-personal-information-step .form-group:has(.form-check-input[type="radio"]) {
  margin-bottom: 0.7rem !important;
}

#checkout-personal-information-step .form-group:has(.form-check-input[type="radio"]) .form-check {
  margin-bottom: 0.2rem;
}

.m46-checkout-account {
  background: var(--m46-paper);
  border: 1px solid var(--m46-steel-line);
  padding: 0.9rem 1rem;
  margin-bottom: 0.85rem;
}

.m46-checkout-account__hello {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  color: var(--m46-ink);
}

.m46-checkout-account__hello a {
  font-weight: 700;
  text-decoration-thickness: 2px;
  text-underline-offset: 2px;
}

.m46-checkout-account__logout {
  margin-bottom: 0.35rem !important;
}

.m46-checkout-account__hint {
  color: var(--m46-helper);
}

.m46-checkout-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border-bottom: 2px solid var(--m46-black);
  margin-bottom: 0.85rem;
}

.m46-checkout-tabs .nav-item {
  flex: 1 1 auto;
}

.m46-checkout-tabs .nav-link {
  border: 0;
  border-radius: 0;
  width: 100%;
  color: var(--m46-steel);
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: 0.88rem;
  padding: 0.55rem 0.75rem;
  background: transparent;
  line-height: 1.2;
}

.m46-checkout-tabs .nav-link:hover {
  color: var(--m46-ink);
}

.m46-checkout-tabs .nav-link.active {
  color: var(--m46-ink);
  background: var(--m46-paper);
  box-shadow: inset 0 -2px 0 var(--m46-ink);
}

.m46-checkout-tabs .nav-link:focus-visible {
  outline: 2px solid var(--m46-ink);
  outline-offset: 2px;
  box-shadow: inset 0 -2px 0 var(--m46-ink);
}

.m46-checkout-addresses__lead {
  color: var(--m46-helper);
  font-size: 0.95rem;
  margin-bottom: 1rem;
}

.m46-checkout-addresses__subtitle,
.m46-checkout-addresses .h3 {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--m46-ink);
}

/* ---- Adresses (checkout uniquement — scoped) ---- */
.m46-address-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
  gap: 0.85rem;
  margin-bottom: 1rem;
}

.m46-address-list .m46-address-card {
  margin: 0;
  background: var(--m46-paper);
  border: 2px solid var(--m46-steel-line);
  border-left: 2px solid var(--m46-steel-line);
  min-height: 0;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.m46-address-list .m46-address-card.selected,
.m46-address-list .m46-address-card:has(input:checked) {
  border-color: var(--m46-black);
  background: color-mix(in srgb, var(--m46-yellow) 18%, #fff);
}

.m46-address-list .m46-address-card__container {
  display: block;
  padding: 1rem 1.05rem 1.1rem;
  cursor: pointer;
  height: 100%;
}

.m46-address-list .m46-address-card__header {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 0.45rem;
}

.m46-address-list .m46-address-card__alias {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--m46-ink);
}

.m46-address-list .m46-address-card__content {
  margin: 0;
  font-style: normal;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--m46-ink);
}

.m46-address-list .m46-address-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.75rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--m46-steel-line);
  font-size: 0.85rem;
  font-weight: 600;
}

/* ---- Transporteurs ---- */
.m46-carrier-list {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-bottom: 1.25rem;
}

.m46-carrier {
  border: 2px solid var(--m46-steel-line);
  background: #fff;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.m46-carrier:has(input:checked),
.m46-carrier:has([data-active]) {
  border-color: var(--m46-black);
  background: color-mix(in srgb, var(--m46-yellow) 14%, #fff);
}

.m46-carrier .form-check-input:checked,
.m46-payment .form-check-input:checked,
.m46-address-list .m46-address-card .form-check-input:checked {
  background-color: var(--m46-black);
  border-color: var(--m46-black);
  background-image: none;
  box-shadow: inset 0 0 0 0.2rem #fff;
}

.m46-carrier__label {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto;
  gap: 0.75rem 1rem;
  align-items: center;
  margin: 0;
  padding: 0.9rem 1rem;
  cursor: pointer;
  width: 100%;
}

.m46-carrier__left {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}

.m46-carrier__name {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--m46-ink);
}

.m46-carrier__delay {
  font-size: 0.88rem;
  color: var(--m46-helper);
}

.m46-carrier__price {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
  color: var(--m46-ink);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.m46-carrier .delivery-option__extra {
  padding: 0 1rem 0.85rem;
}

.m46-carrier .delivery-option__extra:empty,
.m46-carrier .delivery-option__extra:not(:has(.js-carrier-extra-content)) {
  display: none;
}

/* ---- Paiement : radios dans la plaque step, sans cadres empilés ---- */
.m46-payment-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 1rem;
}

.m46-payment {
  border: 0;
  border-bottom: 1px solid var(--m46-steel-line);
  background: transparent;
  padding: 0.8rem 0.1rem;
  transition: background-color 0.15s ease;
}

.m46-payment:last-child {
  border-bottom: 0;
}

.m46-payment:has(input:checked) {
  border-color: transparent;
  background: color-mix(in srgb, var(--m46-yellow) 10%, transparent);
  margin-inline: -0.55rem;
  padding-inline: 0.65rem;
}

.m46-payment__check {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0;
  padding-left: 0;
  min-height: 0;
}

.m46-payment__check .form-check-input {
  margin-left: 0;
  float: none;
}

.m46-payment__label {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-family: var(--font-body);
  text-transform: none;
  letter-spacing: 0.01em;
  font-weight: 600;
  font-size: 1rem; /* body ≥16px (Pro Max) */
  color: var(--m46-ink);
  cursor: pointer;
}

.m46-payment__logo {
  max-height: 1.6rem;
  width: auto;
}

.m46-payment__info {
  margin-top: 0.65rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--m46-steel-line);
  font-size: 0.88rem;
  color: var(--m46-helper);
}

.m46-checkout-tos {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--m46-steel-line);
  padding: 0.85rem 0 0.15rem;
}

.m46-checkout-tos .form-check-input:checked {
  background-color: var(--m46-black);
  border-color: var(--m46-black);
}

.m46-checkout-recap {
  margin-top: 1rem;
  margin-bottom: 0.85rem;
  border: 0;
  border-top: 1px solid var(--m46-steel-line);
  background: transparent;
  padding: 0.9rem 0 0;
}

.m46-checkout-recap .h4,
.m46-checkout-recap h4 {
  font-family: var(--font-display);
  text-transform: none;
  letter-spacing: 0.01em;
  font-weight: 700;
}

/* ---- CTA / actions ---- */
.m46-checkout-actions {
  gap: 0.75rem;
}

.m46-checkout-cta,
.m46-checkout .btn-primary,
.page-order .btn-primary,
body#checkout .btn-primary {
  min-height: 3rem;
  border-radius: 0;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
  font-size: 1.02rem;
  padding-inline: 1.2rem;
}

.m46-checkout .btn-outline-primary,
.page-order .btn-outline-primary,
body#checkout .btn-outline-primary {
  min-height: 2.75rem; /* touch ≥44px */
  border-radius: 0;
  border-width: 2px;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: 1rem;
  padding-inline: 1.2rem;
}

.m46-checkout .btn-primary:active:not(:disabled),
.m46-checkout-cta:active:not(:disabled) {
  transform: translateY(1px);
}

/* ---- Récap sticky ---- */
.m46-checkout-summary {
  position: sticky;
  top: var(--m46-checkout-sticky-top);
  z-index: 2;
}

/* Récap : 1 surface — pas de boîte dans la boîte */
.m46-checkout-summary__item.accordion-item,
.m46-checkout-summary__item {
  border: 1px solid var(--m46-steel-line) !important;
  background: #fff !important;
  border-radius: 0;
}

/* Accordeons internes (détails / promo) : pas de cadre */
.m46-checkout-summary__panel .accordion-item,
.m46-checkout-summary__body .accordion-item,
.m46-checkout-summary .cart-voucher .accordion-item {
  border: 0 !important;
  background: transparent !important;
  border-radius: 0;
}

.m46-checkout-summary__toggle,
.m46-checkout-summary > .m46-checkout-summary__accordion > .m46-checkout-summary__item > .m46-checkout-summary__header .accordion-button,
.m46-checkout-summary__header .m46-checkout-summary__toggle {
  border-radius: 0 !important;
  background: #fff;
  color: var(--m46-ink);
  font-family: var(--font-display);
  text-transform: none;
  letter-spacing: 0.01em;
  font-weight: 700;
  font-size: 1.05rem;
  box-shadow: none !important;
  padding: 0.85rem 1rem 0.45rem;
}

.m46-checkout-summary__count {
  font-family: var(--font-body);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
  font-size: 0.82rem;
  color: var(--m46-steel);
  margin-bottom: 0.4rem;
}

.m46-checkout-summary__toggle:not(.collapsed),
.m46-checkout-summary__header .accordion-button:not(.collapsed) {
  background: #fff;
  color: var(--m46-ink);
}

.m46-checkout-summary__toggle::after,
.m46-checkout-summary__header .accordion-button::after {
  filter: none;
}

.m46-checkout-summary__panel,
.m46-checkout-summary__body {
  background: #fff;
}

.m46-checkout-summary__body {
  padding: 0 1rem 0.95rem;
}

.m46-checkout-summary__details-toggle {
  font-family: var(--font-body);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 0.84rem;
  padding-inline: 0;
  background: transparent !important;
  color: var(--m46-ink);
  box-shadow: none !important;
}

.m46-checkout-summary .cart-summary__line {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  padding-block: 0.3rem;
  font-size: 1rem; /* body ≥16px on mobile checkout */
}

.m46-checkout-summary .cart-summary__line--bold .cart-summary__label,
.m46-checkout-summary .cart-summary__line--bold .cart-summary__value,
.m46-checkout-summary .cart-summary__total .cart-summary__label,
.m46-checkout-summary .cart-summary__total .cart-summary__value {
  font-family: var(--font-display);
  text-transform: none;
  letter-spacing: 0.01em;
  font-weight: 700;
  font-size: 1.02rem;
}

.m46-checkout-summary .cart-summary__total {
  margin-top: 0.35rem;
  padding-top: 0.55rem;
  border-top: 1px solid var(--m46-steel-line);
}

/* Trust : une ligne de texte discrète */
.m46-checkout-reassurance {
  margin-top: 0.55rem;
  padding: 0.25rem 0.05rem 0;
  border-top: 0;
  gap: 0;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
}

.m46-checkout-reassurance li {
  font-family: var(--font-body);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
  font-size: 0.75rem; /* meta ≥12px (Pro Max) */
  line-height: 1.35;
  color: var(--m46-steel);
  gap: 0.25rem;
}

.m46-checkout-reassurance li:not(:last-child)::after {
  content: "·";
  margin-left: 0.55rem;
  margin-right: 0.55rem;
  color: var(--m46-steel-line);
  font-weight: 400;
}

.m46-checkout-reassurance .material-icons {
  font-size: 0.85rem;
  color: var(--m46-steel);
  opacity: 0.75;
}

/* Promo : séparateur léger sous totaux, zéro cadre */
.m46-checkout-summary .cart-voucher,
.m46-checkout-summary .js-voucher,
.m46-checkout-summary .js-cart-voucher {
  margin-top: 0.55rem;
  border: 0;
  border-top: 0;
  background: transparent;
  padding: 0.35rem 0 0;
}

.m46-checkout-summary .cart-voucher .accordion,
.m46-checkout-summary .cart-voucher .accordion-item,
.m46-checkout-summary .cart-voucher .cart-voucher__accordion-item {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.m46-checkout-summary .cart-voucher .accordion-button,
.m46-checkout-summary .cart-voucher .cart-voucher__accordion-button {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0.15rem 0 !important;
  font-family: var(--font-body);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 600;
  font-size: 0.88rem;
  color: var(--m46-ink);
}

.m46-checkout-summary .cart-voucher .accordion-body {
  padding: 0.55rem 0 0;
}

.m46-checkout-summary .cart-voucher .cart-voucher__highlight {
  margin-top: 0.55rem;
  padding: 0;
  border: 0;
  background: transparent;
}

.m46-checkout-summary .cart-voucher .cart-voucher__highlight .h5,
.m46-checkout-summary .cart-voucher .cart-voucher__highlight p.h5 {
  font-family: var(--font-body);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
  font-size: 0.82rem;
  color: var(--m46-steel);
  margin-bottom: 0.35rem;
}

.m46-checkout-summary .cart-voucher .form-control {
  border-radius: 0;
}

/* Mobile: récap replié → l’étape (adresses / carriers) reste dans le 1er viewport */
@media (max-width: 991.98px) {
  .m46-checkout-summary:not(:has(#js-checkout-summary.show)) .m46-checkout-reassurance {
    display: none;
  }

  .m46-checkout-summary__toggle {
    padding: 0.7rem 0.85rem;
  }

  /* Surface compacte quand le panneau est fermé */
  .m46-checkout-summary:not(:has(#js-checkout-summary.show)) .m46-checkout-summary__item {
    border-bottom-width: 1px;
  }
}

/* Desktop: récap toujours ouvert / sticky */
@media (min-width: 992px) {
  .m46-checkout-summary__toggle {
    pointer-events: none;
  }

  .m46-checkout-summary__toggle::after {
    display: none;
  }

  #js-checkout-summary.collapse:not(.show) {
    display: block;
    height: auto !important;
    visibility: visible;
  }

  /* A11y: le panneau est toujours exposé desktop même sans .show */
  .m46-checkout-summary__toggle.collapsed {
    cursor: default;
  }
}

/* ---- Confirmation ---- */
.m46-order-confirmation {
  max-width: 48rem;
  margin-inline: auto;
  padding-block: 0.5rem 2rem;
}

.m46-order-confirmation__banner {
  border-radius: 0;
  border: 1px solid var(--m46-steel-line);
  border-top: 3px solid var(--m46-yellow);
  background: color-mix(in srgb, var(--m46-yellow) 18%, #fff);
  color: var(--m46-ink);
}

.m46-order-confirmation__banner .page-title-section,
.m46-order-confirmation__title {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
}

.m46-order-confirmation__rule {
  border: 0;
  border-top: 1px solid var(--m46-steel-line);
  opacity: 1;
  margin: 0.85rem 0;
}

.m46-order-confirmation__details {
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  padding: 1.1rem 1.15rem;
}

.m46-order-confirmation__list {
  margin: 0.65rem 0 0;
  padding-left: 1.1rem;
  color: var(--m46-ink);
}

/* ---- Mobile ---- */
@media (max-width: 991.98px) {
  /* Stepper : pastilles 1–4 + rail continue (sans ✓ / sans libellés / sans anneau) */
  .checkout-steps.m46-checkout-steps .checkout-steps__desktop,
  .m46-checkout-steps__desktop {
    display: block !important;
  }

  .checkout-steps.m46-checkout-steps .checkout-steps__mobile,
  .m46-checkout-steps__mobile {
    display: none !important;
  }

  .checkout-steps.m46-checkout-steps .checkout-steps__list,
  .m46-checkout-steps__list {
    position: relative;
    isolation: isolate;
  }

  /* Rail muted continue (centres pastille 1 → 4) — derrière les pastilles */
  .checkout-steps.m46-checkout-steps .checkout-steps__list::before,
  .m46-checkout-steps__list::before {
    content: "";
    position: absolute;
    left: 12.5%;
    right: 12.5%;
    top: 50%;
    height: 1px;
    background: var(--m46-steel-line);
    transform: translateY(-50%);
    z-index: 0;
    pointer-events: none;
  }

  /* Remplissage discret jusqu’à l’étape courante (centres 12.5% → 87.5%) */
  .checkout-steps.m46-checkout-steps .checkout-steps__list::after,
  .m46-checkout-steps__list::after {
    content: "";
    position: absolute;
    left: 12.5%;
    top: 50%;
    width: 0;
    height: 2px;
    background: color-mix(in srgb, var(--m46-ink) 58%, var(--m46-steel-line));
    transform: translateY(-50%);
    z-index: 0;
    pointer-events: none;
    transition: width 0.2s ease;
  }

  .checkout-steps.m46-checkout-steps .checkout-steps__list:has([data-step="checkout-addresses-step"].checkout-steps__step--current)::after,
  .m46-checkout-steps__list:has([data-step="checkout-addresses-step"].checkout-steps__step--current)::after {
    width: 25%;
  }

  .checkout-steps.m46-checkout-steps .checkout-steps__list:has([data-step="checkout-delivery-step"].checkout-steps__step--current)::after,
  .m46-checkout-steps__list:has([data-step="checkout-delivery-step"].checkout-steps__step--current)::after {
    width: 50%;
  }

  .checkout-steps.m46-checkout-steps .checkout-steps__list:has([data-step="checkout-payment-step"].checkout-steps__step--current)::after,
  .m46-checkout-steps__list:has([data-step="checkout-payment-step"].checkout-steps__step--current)::after {
    width: 75%;
  }

  .checkout-steps.m46-checkout-steps .checkout-steps__step,
  .m46-checkout-steps__step,
  .m46-checkout-steps .js-step-item {
    position: relative;
    z-index: 1;
    flex-direction: column !important;
    justify-content: center;
    align-items: center;
    gap: 0;
    text-align: center !important;
    min-height: 2.75rem;
    padding: 0.35rem 0 !important;
  }

  /* Plus de tirets verticaux — le rail est sur la liste */
  .checkout-steps.m46-checkout-steps .checkout-steps__step:not(:last-child)::after,
  .m46-checkout-steps .checkout-steps__step:not(:last-child)::after,
  .m46-checkout-steps__step:not(:last-child)::after {
    content: none !important;
    display: none !important;
    border: 0 !important;
    width: 0 !important;
    height: 0 !important;
  }

  /* Pastilles au-dessus du rail (fond opaque pour masquer la ligne) */
  .checkout-steps.m46-checkout-steps .checkout-steps__number,
  .m46-checkout-steps__number,
  .m46-checkout-steps .checkout-steps__number {
    position: relative;
    z-index: 1;
    background: #fff !important;
  }

  /* Success — blanc opaque (gagne sur background:transparent desktop) */
  .checkout-steps.m46-checkout-steps .checkout-steps__step--success .checkout-steps__number,
  .m46-checkout-steps__step.checkout-steps__step--success .m46-checkout-steps__number,
  .m46-checkout-steps .checkout-steps__step--success .checkout-steps__number,
  .m46-checkout-steps .js-step-item.checkout-steps__step--success .checkout-steps__number,
  body#checkout .checkout-steps .checkout-steps__step--success .checkout-steps__number,
  body#checkout .m46-checkout-steps .checkout-steps__step--success .checkout-steps__number,
  body#checkout .m46-checkout-steps .js-step-item.checkout-steps__step--success .checkout-steps__number {
    background: #fff !important;
    border-color: var(--m46-ink) !important;
    color: var(--m46-ink) !important;
    font-size: 0.78rem !important;
  }

  body#checkout .m46-checkout-steps .checkout-steps__step--success .checkout-steps__number::before,
  body#checkout .m46-checkout-steps .checkout-steps__step--success .checkout-steps__number::after,
  body#checkout .m46-checkout-steps .checkout-steps__step--current .checkout-steps__number::before,
  body#checkout .m46-checkout-steps .checkout-steps__step--current .checkout-steps__number::after {
    content: none !important;
    display: none !important;
  }

  /* Future — blanc opaque */
  .checkout-steps.m46-checkout-steps .checkout-steps__step:not(.checkout-steps__step--current):not(.checkout-steps__step--success) .checkout-steps__number,
  .m46-checkout-steps__step:not(.checkout-steps__step--current):not(.checkout-steps__step--success) .m46-checkout-steps__number,
  .m46-checkout-steps .checkout-steps__step:not(.checkout-steps__step--current):not(.checkout-steps__step--success) .checkout-steps__number {
    background: #fff !important;
    border-color: var(--m46-steel) !important;
    color: var(--m46-steel) !important;
  }

  /* Current — jaune opaque */
  .checkout-steps.m46-checkout-steps .checkout-steps__step--current .checkout-steps__number,
  .m46-checkout-steps__step.checkout-steps__step--current .m46-checkout-steps__number,
  .m46-checkout-steps .checkout-steps__step--current .checkout-steps__number,
  .checkout-steps.m46-checkout-steps .checkout-steps__step--current.checkout-steps__step--success .checkout-steps__number,
  .m46-checkout-steps__step.checkout-steps__step--current.checkout-steps__step--success .m46-checkout-steps__number,
  .m46-checkout-steps .checkout-steps__step--current.checkout-steps__step--success .checkout-steps__number,
  body#checkout .m46-checkout-steps .checkout-steps__step--current .checkout-steps__number,
  body#checkout .m46-checkout-steps .js-step-item.checkout-steps__step--current .checkout-steps__number {
    background: var(--m46-yellow) !important;
    border-color: var(--m46-ink) !important;
    color: var(--m46-ink) !important;
  }

  .checkout-steps.m46-checkout-steps .checkout-steps__btn,
  .m46-checkout-steps__btn,
  .m46-checkout-steps .checkout-steps__btn {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    overflow: hidden;
  }

  .m46-checkout-steps__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .checkout-steps.m46-checkout-steps .checkout-steps__btn:focus,
  .checkout-steps.m46-checkout-steps .checkout-steps__btn:focus-visible,
  .m46-checkout-steps__btn:focus,
  .m46-checkout-steps__btn:focus-visible {
    outline: 2px solid var(--m46-black);
    outline-offset: 2px;
  }

  .checkout-steps.m46-checkout-steps .checkout-steps__step:focus-within .checkout-steps__number,
  .m46-checkout-steps__step:focus-within .m46-checkout-steps__number,
  .m46-checkout-steps .checkout-steps__step:focus-within .checkout-steps__number {
    border: 2px solid var(--m46-black) !important;
  }

  .m46-checkout-summary {
    position: static;
    margin-bottom: 0.85rem;
  }

  .m46-checkout__aside {
    order: -1;
  }

  .m46-carrier__label {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .m46-carrier__price {
    justify-self: start;
  }

  .m46-checkout-step {
    padding: 0.95rem 0.85rem 1rem;
  }

  .m46-checkout-actions {
    flex-direction: column-reverse;
  }

  .m46-checkout-actions .btn {
    width: 100%;
  }

  #checkout-personal-information-step .m46-checkout-actions {
    justify-content: stretch;
  }

  .m46-checkout-reassurance {
    margin-top: 0.45rem;
    padding-top: 0.2rem;
    gap: 0.15rem 0.65rem;
  }
}

@media (max-width: 575.98px) {
  .m46-address-list {
    grid-template-columns: 1fr;
  }

  .m46-checkout-tabs .nav-link {
    font-size: 0.76rem;
    padding: 0.5rem 0.45rem;
  }

  .m46-checkout-steps__inner {
    padding-block: 0.65rem 0.7rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .m46-checkout-steps__step,
  .m46-address-list .m46-address-card,
  .m46-carrier,
  .m46-payment,
  .m46-checkout .btn-primary,
  .m46-checkout .btn-primary:hover,
  .m46-checkout-cta,
  .m46-checkout-cta:hover {
    transition: none;
    transform: none;
  }
}

/* ========================================================================== */
/* Home mobile Option B — densité équilibrée (≤991px, ne touche pas desktop) */
/* ========================================================================== */

/* Touch targets + logo lean (phone + tablette) */
@media (max-width: 991.98px) {
  .m46-header .m46-search-trigger,
  .m46-header__action .header-block__action-btn,
  #_mobile_ps_customersignin .header-block__action-btn,
  #_mobile_ps_shoppingcart .header-block__action-btn {
    min-width: 2.75rem;
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.35rem;
  }

  .m46-header .header-block__icon,
  .m46-header .m46-search-trigger .material-icons {
    font-size: 1.35rem;
    line-height: 1;
  }

  .m46-header .ps-mainmenu__mobile-toggle .menu-toggle {
    min-width: 2.75rem;
    min-height: 2.75rem;
  }

  .header-bottom__logo img,
  .m46-header__logo img,
  #header .logo img {
    max-width: 120px !important;
    max-height: 36px !important;
  }

  .header-bottom.m46-header,
  .header-bottom {
    padding: max(0.4rem, env(safe-area-inset-top, 0px)) 0 0.4rem;
  }

  .header-bottom__row.m46-header__row,
  .m46-header__row {
    column-gap: 0.15rem;
    min-height: 3rem;
  }
}

/* Accueil — densité mobile native */
@media (max-width: 767.98px) {
  /* —— P1 USP : grille 2×2 compacte (plus de scroll qui coupe le texte) —— */
  .m46-home-reassure {
    padding: 0.65rem 0;
    overflow: hidden;
  }

  .m46-home-reassure .container {
    padding-inline: 0.75rem;
    max-width: 100%;
    overflow: hidden;
  }

  .m46-home-reassure__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem 0.45rem;
    overflow: hidden;
    scroll-snap-type: none;
    padding: 0;
    flex-wrap: unset;
  }

  .m46-home-reassure__list::-webkit-scrollbar {
    display: none;
  }

  .m46-home-reassure__list li {
    flex: unset;
    min-width: 0;
    max-width: 100%;
    scroll-snap-align: unset;
    white-space: normal;
    padding: 0.35rem 0.45rem;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 0.75rem; /* 12px floor */
    letter-spacing: 0.02em;
    line-height: 1.2;
    min-height: 2.75rem;
    align-items: center;
    gap: 0.3rem;
  }

  .m46-home-reassure__list li span {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.75rem;
    letter-spacing: 0.02em;
    line-height: 1.2;
    overflow-wrap: break-word;
    word-break: normal;
    hyphens: manual;
    text-wrap: balance;
  }

  .m46-home-reassure__list .material-icons {
    font-size: 1rem;
  }

  /* —— P0 Disciplines : lignes compactes —— */
  .m46-home-univers {
    padding: 1.25rem 0 0.25rem;
  }

  .m46-home-univers .m46-home-section__head {
    margin-bottom: 0.75rem;
  }

  .m46-home-univers .m46-home-section__lead {
    font-size: 1rem; /* body ≥16px */
    line-height: 1.55;
  }

  .m46-home-univers__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }

  .m46-home-univers__tile {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 0.7rem;
    row-gap: 0.1rem;
    min-height: 2.75rem; /* touch ≥44px */
    padding: 0.65rem 0.75rem;
  }

  .m46-home-univers__icon {
    width: 2.25rem;
    height: 2.25rem;
    margin-bottom: 0;
    padding: 0.25rem;
    flex: 0 0 auto;
  }

  .m46-home-univers__label {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.9375rem; /* ~15px labels */
    line-height: 1.2;
  }

  .m46-home-univers__hint {
    display: none;
  }

  /* —— P1 Marques : tuiles dans le cadre (overflow + contain) —— */
  .m46-home-brands {
    padding: 1.15rem 0 0.85rem;
    overflow: hidden;
  }

  .m46-home-brands .container {
    overflow: hidden;
    max-width: 100%;
  }

  .m46-home-brands .m46-home-section__head {
    margin-bottom: 0.75rem;
  }

  .m46-home-brands__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem 0.4rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
  }

  .m46-home-brands__tile {
    gap: 0.3rem;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
  }

  .m46-home-brands__media {
    aspect-ratio: 1 / 1;
    width: 100%;
    max-width: 100%;
    max-height: none;
    height: auto;
    padding: 0.35rem;
    overflow: hidden;
  }

  .m46-home-brands__logo {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center;
  }

  .m46-home-brands__name {
    font-size: 0.75rem; /* 12px floor — was 0.58rem / ~9px */
    line-height: 1.25;
    letter-spacing: 0.03em;
    max-width: 100%;
  }

  /* —— P0 Produits : grille rationnée + carousel promos —— */
  .page-index .ps-featuredproducts,
  .page-index .featured-products,
  .page-index .ps-specials,
  .page-index .ps-newproducts,
  .page-index .m46-home-atelier,
  .page-index .ps-customtext {
    margin-top: 1.15rem;
  }

  .page-index .ps-featuredproducts .title,
  .page-index .ps-specials .title,
  .page-index .featured-products .title,
  .page-index .ps-featuredproducts h2,
  .page-index .ps-specials h2 {
    font-size: 1.25rem;
    line-height: 1.15;
    margin-bottom: 0.75rem;
  }

  .page-index .ps-featuredproducts .products,
  .page-index .ps-featuredproducts .module-products__list .products,
  .page-index .ps-newproducts .products,
  .page-index .ps-newproducts .module-products__list .products,
  .page-index .ps-bestsellers .products,
  .page-index .ps-bestsellers .module-products__list .products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
  }

  /* Max 4 visibles — le CTA « Voir plus » reste */
  .page-index .ps-featuredproducts .products > .product-miniature:nth-child(n + 5),
  .page-index .ps-newproducts .products > .product-miniature:nth-child(n + 5),
  .page-index .ps-bestsellers .products > .product-miniature:nth-child(n + 5) {
    display: none !important;
  }

  .page-index .ps-featuredproducts .product-miniature__title,
  .page-index .ps-newproducts .product-miniature__title,
  .page-index .ps-bestsellers .product-miniature__title {
    -webkit-line-clamp: 2;
    line-clamp: 2;
    font-size: 0.9375rem;
    line-height: 1.3;
    min-height: calc(1.3em * 2); /* R2: rangées alignées */
  }

  .page-index .ps-featuredproducts .product-miniature__bottom,
  .page-index .ps-newproducts .product-miniature__bottom,
  .page-index .ps-bestsellers .product-miniature__bottom {
    padding: 0.5rem 0.55rem 0.55rem !important;
  }

  .page-index .ps-featuredproducts .product-miniature__top img,
  .page-index .ps-newproducts .product-miniature__top img,
  .page-index .ps-bestsellers .product-miniature__top img,
  .page-index .ps-specials .product-miniature__top img {
    max-height: 100%;
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  /* Promos mobile : même grille 2 cols que populaires (pas de carrousel plus large) */
  .page-index .ps-specials .module-products__list {
    margin-inline: 0;
    padding-inline: 0;
  }

  .page-index .ps-specials .products,
  .page-index .ps-specials .module-products__list .products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    overflow: visible;
    scroll-snap-type: none;
    flex-wrap: unset;
    padding-bottom: 0;
  }

  .page-index .ps-specials .products > .product-miniature {
    flex: unset;
    width: auto;
    max-width: none;
    scroll-snap-align: unset;
  }

  .page-index .ps-specials .products > .product-miniature:nth-child(n + 5) {
    display: none !important;
  }

  .page-index .ps-specials .product-miniature__title {
    -webkit-line-clamp: 2;
    line-clamp: 2;
    font-size: 0.9375rem;
    line-height: 1.3;
    min-height: calc(1.3em * 2);
  }

  .page-index .ps-specials .product-miniature__bottom {
    padding: 0.5rem 0.55rem 0.55rem !important;
  }

  .page-index .ps-featuredproducts .module-products__buttons,
  .page-index .ps-specials .module-products__buttons {
    margin-top: 0.75rem;
  }

  .page-index .ps-featuredproducts .module-products__buttons .btn,
  .page-index .ps-specials .module-products__buttons .btn {
    width: 100%;
    min-height: 2.75rem;
  }

  /* —— P1 Atelier : CTA primaire dominant —— */
  .m46-home-atelier,
  .page-index .ps-customtext {
    padding: 1.15rem 0 0.85rem;
  }

  .m46-home-atelier__panel {
    padding: 1.1rem 0.95rem 1.15rem;
    gap: 1rem;
  }

  .m46-home-atelier__eyebrow {
    font-size: 0.8125rem; /* 13px meta */
    line-height: 1.3;
  }

  .m46-home-atelier__title {
    font-size: clamp(1.5rem, 6.5vw, 1.85rem);
    line-height: 1.12;
  }

  .m46-home-atelier__lead {
    margin-bottom: 0.85rem;
    font-size: 1rem; /* body ≥16px */
    line-height: 1.55;
  }

  .m46-home-atelier__proofs {
    margin-bottom: 0.95rem;
    gap: 0.4rem;
  }

  .m46-home-atelier__proofs li {
    padding: 0.55rem 0.7rem;
  }

  .m46-home-atelier__proofs strong {
    font-size: 0.8125rem;
    line-height: 1.3;
  }

  .m46-home-atelier__proofs span {
    font-size: 0.875rem;
    line-height: 1.45;
  }

  .m46-home-atelier__place {
    font-size: 0.8125rem;
    line-height: 1.3;
  }

  .m46-home-atelier__aside-note {
    font-size: 0.875rem;
    line-height: 1.45;
  }

  .m46-home-atelier__actions {
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
  }

  .m46-home-atelier__actions .btn-primary {
    width: 100%;
    min-height: 2.85rem;
  }

  .m46-home-atelier__actions .m46-home-atelier__link {
    align-self: flex-start;
    min-height: 2.5rem;
  }

  .m46-home-atelier__aside {
    padding: 0.85rem 0.85rem;
    min-height: 0;
  }

  .m46-home-atelier__mark {
    max-width: 8.5rem;
  }

  .m46-home-atelier__mark img {
    max-width: 8.5rem;
    max-height: 3.25rem;
  }

  /* —— Hero = image module, ratio natif (pas de crop) —— */
  .page-index .m46-hero .ps-imageslider__figure,
  .page-index .ps-imageslider .ps-imageslider__figure {
    height: auto;
    min-height: 0;
  }

  .page-index .m46-hero .carousel-item,
  .page-index .ps-imageslider .carousel-item {
    overflow: hidden;
    min-height: 0;
  }

  .page-index .m46-hero .carousel-item img,
  .page-index .ps-imageslider .carousel-item img {
    display: block;
    object-fit: unset;
    object-position: center;
    min-height: 0;
    max-height: none;
    width: 100%;
    height: auto;
  }

  .page-index .m46-hero .carousel-indicators,
  .page-index .ps-imageslider .carousel-indicators {
    margin-bottom: 0.15rem;
    gap: 0;
  }

  .page-index .m46-hero .carousel-indicators [data-bs-target],
  .page-index .m46-hero .carousel-indicators button,
  .page-index .ps-imageslider .carousel-indicators [data-bs-target],
  .page-index .ps-imageslider .carousel-indicators button {
    box-sizing: content-box !important;
    width: 0.55rem !important;
    height: 0.55rem !important;
    padding: 1.1rem !important; /* hit ≥44×44 */
    margin: 0 !important;
    background-clip: content-box !important;
    border: 0 !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    border-radius: 0;
    opacity: 0.55;
  }

  .page-index .m46-hero .carousel-indicators .active,
  .page-index .ps-imageslider .carousel-indicators .active {
    opacity: 1;
  }

  .page-index .m46-hero .carousel-control-prev,
  .page-index .m46-hero .carousel-control-next,
  .page-index .ps-imageslider .carousel-control-prev,
  .page-index .ps-imageslider .carousel-control-next {
    width: 2.75rem;
  }

  .page-index .m46-hero .carousel-control-prev-icon,
  .page-index .m46-hero .carousel-control-next-icon,
  .page-index .ps-imageslider .carousel-control-prev-icon,
  .page-index .ps-imageslider .carousel-control-next-icon {
    width: 2.25rem;
    height: 2.25rem;
  }
}

/* Tablette étroite : disciplines en 2 cols rows + USP scroll */
@media (min-width: 576px) and (max-width: 767.98px) {
  .m46-home-univers__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .m46-home-univers__tile {
    min-height: 3.5rem;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .m46-home-reassure__list {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 0.75rem;
    scroll-snap-type: x mandatory;
    grid-template-columns: none;
    padding-bottom: 0.15rem;
  }

  .m46-home-reassure__list li {
    flex: 0 0 auto;
    scroll-snap-align: start;
    white-space: nowrap;
  }

  .m46-home-univers__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
  }

  .m46-home-univers__tile {
    flex-direction: row;
    align-items: center;
    gap: 0.65rem;
    min-height: 0;
    padding: 0.65rem 0.8rem;
  }

  .m46-home-univers__icon {
    width: 2.35rem;
    height: 2.35rem;
    margin-bottom: 0;
  }

  .m46-home-univers__hint {
    display: none;
  }

  .m46-home-brands__media {
    aspect-ratio: 1 / 1;
    max-height: none;
    height: auto;
    padding: 0.75rem;
  }

  .m46-home-brands__logo {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
  }

  .page-index .ps-featuredproducts .products > .product-miniature:nth-child(n + 7) {
    display: none !important;
  }

  /* Tablette : promos en grille 3 cols (comme featured), pas carrousel */
  .page-index .ps-specials .products,
  .page-index .ps-specials .module-products__list .products {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    overflow: visible;
    scroll-snap-type: none;
    flex-wrap: unset;
  }

  .page-index .ps-specials .products > .product-miniature {
    flex: unset;
    width: auto;
    max-width: none;
    scroll-snap-align: unset;
  }

  .page-index .ps-specials .products > .product-miniature:nth-child(n + 7) {
    display: none !important;
  }
}

/* ========================================================================== */
/* Mobile typography Pro Max — header / home / footer (≤767px only)            */
/* Body ≥16px · meta ≥12–13px · lh body 1.5+ · touch ≥44px · desktop intact   */
/* ========================================================================== */
@media (max-width: 767.98px) {
  /* —— Échelle section heads (home) —— */
  .m46-home-section__title {
    font-size: 1.25rem;
    line-height: 1.15;
  }

  .m46-home-section__lead {
    font-size: 1rem;
    line-height: 1.55;
    color: var(--m46-steel);
  }

  .m46-home-section__more {
    font-size: 0.8125rem;
    line-height: 1.3;
    min-height: 2.75rem;
    align-items: center;
  }

  .m46-home-section__more .material-icons {
    font-size: 1.1rem;
  }

  /* —— Header : badge panier lisible —— */
  .m46-header .header-block__badge,
  .header-block__badge {
    font-size: 0.75rem; /* 12px floor — was 10px */
    line-height: 1;
    min-width: 1.1rem;
    min-height: 1.1rem;
  }

  /* —— Cards produit : prix / meta —— */
  .page-index .product-miniature__pricing,
  .page-index .product-miniature__price,
  .page-index .product-miniature .price {
    font-size: 1rem;
    line-height: 1.25;
  }

  .page-index .product-miniature .regular-price,
  .page-index .product-miniature__regular-price {
    font-size: 0.8125rem;
    line-height: 1.3;
  }

  .page-index .product-miniature .nb-comments,
  .page-index .product-miniature__reviews,
  .page-index .product-miniature .comments_note {
    font-size: 0.75rem;
    line-height: 1.35;
  }

  /* —— Newsletter —— */
  .m46-newsletter__title {
    font-size: 1.25rem;
    line-height: 1.15;
  }

  .m46-newsletter__lead {
    font-size: 1rem;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.72);
  }

  .m46-newsletter__input,
  .m46-newsletter .m46-newsletter__input.form-control {
    min-height: 2.75rem; /* 44px */
    font-size: 1rem;
    line-height: 1.5;
    padding: 0.65rem 0.85rem;
  }

  .m46-newsletter__submit {
    min-height: 2.75rem;
    font-size: 0.9375rem;
    letter-spacing: 0.04em;
  }

  .m46-newsletter__legal,
  .m46-newsletter__legal p {
    font-size: 0.8125rem; /* 13px — was 0.72rem / ~11.5px */
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.58);
  }

  /* —— Footer : titres accordéon + liens + copy —— */
  .m46-footer .footer-block__title,
  .footer.m46-footer .footer-block__title,
  .footer__main .footer-block__title {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    min-height: 2.75rem;
    margin: 0;
    padding: 0.55rem 0;
    font-family: var(--font-display);
    font-size: 0.9375rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.2;
    color: #fff;
  }

  .m46-footer .footer-block__title--toggle .stretched-link,
  .footer.m46-footer .footer-block__title--toggle .stretched-link {
    min-width: 2.75rem;
    min-height: 2.75rem;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }

  .m46-footer .footer-block__list a,
  .footer.m46-footer .footer-block__list a,
  .footer__main .footer-block__list a {
    display: flex;
    align-items: center;
    min-height: 2.75rem;
    padding: 0.35rem 0;
    font-size: 0.9375rem;
    line-height: 1.4;
  }

  .m46-made-in-france__text {
    font-size: 0.875rem;
    line-height: 1.55;
  }

  .m46-footer__copy,
  .copyright {
    font-size: 0.8125rem;
    line-height: 1.5;
  }

  .m46-credit {
    font-size: 0.6875rem;
    letter-spacing: 0.04em;
    padding-bottom: 1.35rem;
  }

  .m46-footer .m46-plate,
  .footer .m46-plate {
    font-size: 0.8125rem;
    line-height: 1.2;
    padding: 0.4em 0.7em;
  }

  /* —— Atelier CTA secondary link —— */
  .m46-home-atelier__actions .m46-home-atelier__link {
    font-size: 0.875rem;
    min-height: 2.75rem;
  }

  .m46-home-atelier__actions .btn-primary,
  .m46-home-atelier__actions .btn-outline-primary {
    font-size: 0.9375rem;
    min-height: 2.85rem;
  }
}

/* -------------------------------------------------------------------------- */
/* Ajout panier — bottom sheet mobile / dialogue compact desktop              */
/* -------------------------------------------------------------------------- */
#blockcart-modal.m46-cart-sheet {
  --m46-sheet-pad: 1rem;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__dialog {
  max-width: 28rem;
  width: calc(100% - 1.5rem);
  margin: 1rem auto;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__content {
  background: var(--m46-paper);
  border: 2px solid var(--m46-black);
  border-top: 3px solid var(--m46-yellow);
  border-radius: 0;
  box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.22);
  overflow: hidden;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__handle {
  display: none;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.9rem var(--m46-sheet-pad);
  border-bottom: 1px solid var(--color-border);
  background: #fff;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__title {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.2;
  color: var(--m46-ink);
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  font-size: 1.1rem;
  line-height: 1;
  color: var(--m46-black);
  background: var(--m46-yellow);
  border: 1px solid var(--m46-black);
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__close {
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  opacity: 1;
  background: transparent;
  border: 1px solid transparent;
  box-sizing: border-box;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__close:focus-visible {
  outline: 2px solid var(--m46-black);
  outline-offset: 2px;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__body {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding: 1rem var(--m46-sheet-pad);
  background: var(--m46-paper);
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__product {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__media {
  flex: 0 0 5.5rem;
  width: 5.5rem;
  aspect-ratio: 1;
  background: #fff;
  border: 1px solid var(--color-border);
  overflow: hidden;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  background: #fff;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__info {
  flex: 1 1 auto;
  min-width: 0;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__name {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--m46-ink);
  margin: 0 0 0.25rem;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__property {
  font-size: 0.86rem;
  color: var(--m46-steel);
  line-height: 1.35;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.75rem;
  margin-top: 0.4rem;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__qty {
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--m46-steel);
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__price {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--m46-ink);
  line-height: 1;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__summary {
  padding-top: 0.75rem;
  border-top: 1px solid var(--color-border);
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__count {
  margin: 0 0 0.45rem;
  font-size: 0.9rem;
  color: var(--m46-ink);
  line-height: 1.4;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__total {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0.2rem 0;
  font-size: 0.9rem;
  color: var(--m46-ink);
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__total--bold {
  margin-top: 0.4rem;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__footer {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0.85rem var(--m46-sheet-pad) calc(0.85rem + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--color-border);
  background: #fff;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.75rem;
  margin: 0;
  padding: 0.65rem 1rem;
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 0;
  border: 2px solid var(--m46-black);
  box-sizing: border-box;
  transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__btn--primary {
  order: -1;
  background: var(--m46-yellow);
  color: var(--m46-black) !important;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__btn--primary:hover,
#blockcart-modal.m46-cart-sheet .m46-cart-sheet__btn--primary:focus-visible {
  background: #ffd84d;
  color: var(--m46-black) !important;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__btn--ghost {
  background: #fff;
  color: var(--m46-ink) !important;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__btn--ghost:hover,
#blockcart-modal.m46-cart-sheet .m46-cart-sheet__btn--ghost:focus-visible {
  background: var(--m46-paper);
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__btn:focus-visible {
  outline: 2px solid var(--m46-black);
  outline-offset: 2px;
}

#blockcart-modal.m46-cart-sheet .m46-cart-sheet__footer-extra {
  width: 100%;
}

@media (max-width: 767.98px) {
  /* Bottom sheet : BS5 modal = display:block → ancrage fixed bottom */
  #blockcart-modal.m46-cart-sheet {
    padding: 0 !important;
  }

  #blockcart-modal.m46-cart-sheet .m46-cart-sheet__dialog {
    position: fixed !important;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto !important;
    width: 100%;
    max-width: 100%;
    margin: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: min(78dvh, 100%);
    transform: none;
    pointer-events: none; /* clics passent autour du sheet */
  }

  #blockcart-modal.m46-cart-sheet.fade:not(.show) .m46-cart-sheet__dialog {
    transform: translateY(110%);
  }

  #blockcart-modal.m46-cart-sheet.fade.show .m46-cart-sheet__dialog,
  #blockcart-modal.m46-cart-sheet.show .m46-cart-sheet__dialog {
    transform: translateY(0);
    transition: transform 220ms ease-out;
  }

  #blockcart-modal.m46-cart-sheet .m46-cart-sheet__content {
    pointer-events: auto;
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
    box-shadow: 0 -8px 24px rgba(20, 19, 16, 0.14);
    max-height: min(78dvh, 100%);
    display: flex;
    flex-direction: column;
    height: auto;
  }

  #blockcart-modal.m46-cart-sheet .m46-cart-sheet__handle {
    display: block;
    width: 2.5rem;
    height: 0.28rem;
    margin: 0.55rem auto 0.15rem;
    background: rgba(20, 19, 16, 0.22);
    border-radius: 0;
  }

  #blockcart-modal.m46-cart-sheet .m46-cart-sheet__header {
    padding-top: 0.35rem;
  }

  #blockcart-modal.m46-cart-sheet .m46-cart-sheet__title {
    font-size: 0.95rem;
  }

  #blockcart-modal.m46-cart-sheet .m46-cart-sheet__name {
    font-size: 1rem;
    line-height: 1.3;
  }

  #blockcart-modal.m46-cart-sheet .m46-cart-sheet__body {
    overflow: auto;
    overscroll-behavior: contain;
    font-size: 1rem;
  }

  #blockcart-modal.m46-cart-sheet .m46-cart-sheet__count,
  #blockcart-modal.m46-cart-sheet .m46-cart-sheet__total {
    font-size: 1rem;
  }

  /* Sticky CTA PDP sous le sheet */
  body.modal-open .m46-buybox__cta,
  body.modal-open .m46-buybox .product__actions-qty-add {
    visibility: hidden;
    pointer-events: none;
  }
}

@media (min-width: 768px) {
  #blockcart-modal.m46-cart-sheet .m46-cart-sheet__footer {
    flex-direction: row-reverse;
    align-items: stretch;
  }

  #blockcart-modal.m46-cart-sheet .m46-cart-sheet__btn {
    flex: 1 1 0;
    width: auto;
  }

  #blockcart-modal.m46-cart-sheet .m46-cart-sheet__btn--primary {
    order: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  #blockcart-modal.m46-cart-sheet.fade.show .m46-cart-sheet__dialog,
  #blockcart-modal.m46-cart-sheet.show .m46-cart-sheet__dialog,
  #blockcart-modal.m46-cart-sheet.fade:not(.show) .m46-cart-sheet__dialog {
    transition: none;
  }
}

/* ========================================================================== */
/* Home R1–R4 — responsive + UX (Pro Max touch / densités / chrome)            */
/* ========================================================================== */

/* R2: cartes merch home — même rythme que meilleures ventes */
.page-index .ps-featuredproducts .products,
.page-index .ps-specials .products,
.page-index .featured-products .products,
.page-index .ps-newproducts .products,
.page-index .ps-bestsellers .products {
  align-items: stretch;
}

.page-index .ps-featuredproducts .product-miniature,
.page-index .ps-specials .product-miniature,
.page-index .featured-products .product-miniature,
.page-index .ps-newproducts .product-miniature {
  display: flex;
  height: 100%;
}

.page-index .ps-featuredproducts .product-miniature__inner,
.page-index .ps-specials .product-miniature__inner,
.page-index .featured-products .product-miniature__inner,
.page-index .ps-newproducts .product-miniature__inner {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}

.page-index .ps-featuredproducts .product-miniature__bottom,
.page-index .ps-specials .product-miniature__bottom,
.page-index .featured-products .product-miniature__bottom,
.page-index .ps-newproducts .product-miniature__bottom {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

.page-index .ps-featuredproducts .product-miniature__title,
.page-index .ps-specials .product-miniature__title,
.page-index .featured-products .product-miniature__title,
.page-index .ps-newproducts .product-miniature__title {
  -webkit-line-clamp: 2;
  line-clamp: 2;
  min-height: calc(1.3em * 2);
}

.page-index .ps-featuredproducts .product-miniature__prices,
.page-index .ps-specials .product-miniature__prices,
.page-index .featured-products .product-miniature__prices {
  margin-top: auto;
}

/* Desktop home : même densité que meilleures ventes (5 / 6 cols) */
@media (min-width: 992px) {
  .page-index .ps-featuredproducts .products,
  .page-index .ps-featuredproducts .module-products__list .products,
  .page-index .ps-specials .products,
  .page-index .ps-specials .module-products__list .products,
  .page-index .featured-products .products,
  .page-index .ps-newproducts .products,
  .page-index .ps-newproducts .module-products__list .products,
  .page-index .ps-bestsellers .products,
  .page-index .ps-bestsellers .module-products__list .products {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 0.75rem;
  }

  .page-index .ps-specials .products,
  .page-index .ps-specials .module-products__list .products {
    display: grid !important;
    flex-wrap: unset;
    overflow-x: visible;
    scroll-snap-type: none;
  }

  .page-index .ps-specials .products > .product-miniature {
    flex: unset;
    width: auto;
    max-width: none;
  }
}

@media (min-width: 1400px) {
  .page-index .ps-featuredproducts .products,
  .page-index .ps-featuredproducts .module-products__list .products,
  .page-index .ps-specials .products,
  .page-index .ps-specials .module-products__list .products,
  .page-index .featured-products .products,
  .page-index .ps-newproducts .products,
  .page-index .ps-newproducts .module-products__list .products,
  .page-index .ps-bestsellers .products,
  .page-index .ps-bestsellers .module-products__list .products {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  }
}

/* R4: tablette — marques 3×2 + chrome lisible + cibles nav */
@media (min-width: 768px) and (max-width: 991.98px) {
  .m46-home-brands__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0.85rem 0.75rem;
  }

  .m46-home-brands__media {
    aspect-ratio: 1 / 1;
    max-height: none;
    height: auto;
    padding: 0.85rem;
  }

  .m46-home-brands__logo {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
  }

  .m46-home-brands__name {
    font-size: 0.8125rem;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    text-overflow: unset;
  }

  .m46-home-reassure__list li {
    font-size: 0.8125rem;
    min-height: 2.75rem;
  }

  .m46-home-section__more {
    min-height: 2.75rem;
  }

  .header-top.m46-topbar,
  .header-top {
    --m46-topbar-h: 2.75rem;
    font-size: 0.8125rem;
    padding: 0.45rem 0;
  }

  .m46-topbar .header-block__action-btn,
  .m46-topbar .m46-lang__btn,
  .m46-topbar .m46-currency__btn,
  .m46-topbar__phone {
    min-height: 2.75rem;
    height: auto;
  }

  .m46-header .ps-mainmenu__tree-link,
  .m46-header .m46-nav-plus__toggle {
    min-height: 2.75rem;
    padding-block: 0.65rem !important;
    font-size: 0.8125rem;
  }

  .m46-header .ps-mainmenu__tree-dropdown-toggle {
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0.55rem 0.35rem !important;
  }
}

/* R3: desktop chrome reassure / marques (lisibilité) */
@media (min-width: 992px) {
  .m46-home-reassure__list li {
    font-size: 0.8125rem;
  }

  .m46-home-section__more {
    font-size: 0.8125rem;
  }
}

/* R1: dots carousel home — hit ≥44px (tous viewports, tactile inclus) */
.page-index .m46-hero .carousel-indicators button,
.page-index .m46-hero .carousel-indicators [data-bs-target],
.page-index .ps-imageslider .carousel-indicators button,
.page-index .ps-imageslider .carousel-indicators [data-bs-target] {
  box-sizing: content-box !important;
  width: 0.55rem !important;
  height: 0.55rem !important;
  padding: 1.1rem !important;
  margin: 0 !important;
  background-clip: content-box !important;
  border: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  opacity: 0.55;
}

.page-index .m46-hero .carousel-indicators .active,
.page-index .ps-imageslider .carousel-indicators .active {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .page-index .m46-hero .carousel-item,
  .page-index .ps-imageslider .carousel-item {
    scroll-behavior: auto;
  }
}

/* ========================================================================== */
/* Services & conception — landing atelier (CMS + cat. 17/34)                  */
/* ========================================================================== */
body.category-id-17 #left-column,
body.category-id-34 #left-column,
body.category-id-17 #right-column,
body.category-id-34 #right-column {
  display: none !important;
}

body.category-id-17 #center-column,
body.category-id-34 #center-column,
body.category-id-17 .page.page--full-width,
body.category-id-34 .page.page--full-width {
  width: 100%;
  max-width: none;
  flex: 0 0 100%;
}

.page-content--services {
  width: 100%;
  max-width: 52rem;
  margin: 0 auto;
  padding: 1.25rem 0 2rem;
}

.m46-services__intro {
  margin: 0 0 1.5rem;
  padding: 0 0 1.25rem;
  border-bottom: 1px solid var(--m46-steel-line);
}

.m46-services__title {
  margin: 0.65rem 0 0.65rem;
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 4vw, 2.55rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: 1.1;
  color: var(--m46-black);
}

.m46-services__lead {
  margin: 0 0 1.15rem;
  max-width: 38rem;
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--m46-helper);
}

.m46-services__actions,
.m46-services__cta-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
}

.m46-services__actions .btn-primary,
.m46-services__cta-actions .btn-primary {
  min-height: 2.75rem;
  padding-inline: 1.15rem;
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.m46-services__link {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  min-height: 2.75rem;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.8125rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none !important;
  color: var(--m46-ink) !important;
  border-bottom: 2px solid var(--m46-yellow);
}

.m46-services__link .material-icons {
  font-size: 1.1rem;
}

.m46-services__link:hover,
.m46-services__link:focus-visible {
  color: var(--m46-black) !important;
}

.m46-services__steps {
  list-style: none;
  margin: 0 0 1.35rem;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}

.m46-services__step {
  background: #fff;
  border: 1px solid var(--m46-steel-line);
  border-left: 4px solid var(--m46-yellow);
  padding: 1rem 1.05rem 1.1rem;
}

.m46-services__step-title {
  margin: 0 0 0.35rem;
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: 1.15;
  color: var(--m46-black);
}

.m46-services__step-text {
  margin: 0;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--m46-helper);
}

.m46-services__proofs {
  list-style: none;
  margin: 0 0 1.35rem;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.m46-services__proofs li {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.75rem 0.9rem;
  background: var(--m46-paper-2);
  border: 1px solid var(--m46-steel-line);
}

.m46-services__proofs strong {
  font-family: var(--font-display);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--m46-black);
}

.m46-services__proofs span {
  font-size: 0.95rem;
  line-height: 1.45;
  color: var(--m46-helper);
}

.m46-services__cta {
  display: grid;
  gap: 1rem;
  padding: 1.2rem 1.1rem 1.25rem;
  background: var(--m46-black);
  color: rgba(255, 255, 255, 0.88);
  border-left: 4px solid var(--m46-yellow);
}

.m46-services__cta-title {
  margin: 0 0 0.4rem;
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 2.5vw, 1.55rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #fff;
}

.m46-services__cta-text {
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.78);
}

.m46-services__mail {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  font-size: 0.95rem;
  color: var(--m46-yellow) !important;
  text-decoration: underline;
  text-underline-offset: 0.18rem;
}

.m46-services__mail:hover,
.m46-services__mail:focus-visible {
  color: #fff !important;
}

@media (min-width: 768px) {
  .m46-services__steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
  }

  .m46-services__proofs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
  }

  .m46-services__cta {
    grid-template-columns: minmax(0, 1.4fr) auto;
    align-items: center;
    padding: 1.35rem 1.4rem;
  }

  .m46-services__cta-actions {
    justify-content: flex-end;
  }
}

@media (max-width: 767.98px) {
  .page-content--services {
    padding: 0.85rem 0 1.5rem;
  }

  .m46-services__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .m46-services__actions .btn-primary {
    width: 100%;
    justify-content: center;
  }

  .m46-services__link {
    align-self: flex-start;
  }

  .m46-services__cta-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .m46-services__cta-actions .btn-primary {
    width: 100%;
    justify-content: center;
  }
}

/* -------------------------------------------------------------------------- */
/* Notifications atelier — produit / panier / checkout ($notifications)         */
/* Pas d'alert Bootstrap bleu. Filet jaune, papier, fermeture comme contrôle.  */
/* -------------------------------------------------------------------------- */
#notifications:not(:has(.alert)) {
  display: none;
}

body:has(#notifications .alert) .breadcrumb__wrapper.m46-breadcrumb,
body:has(#notifications .alert) .m46-breadcrumb {
  margin-bottom: 0.7rem;
}

#notifications.m46-notifs,
#notifications {
  position: relative;
  z-index: 1;
  margin: 0 0 1rem;
}

.m46-checkout #notifications.m46-notifs,
.m46-checkout #notifications {
  margin: 0.75rem 0 1rem;
}

#notifications .alert,
.m46-notif.alert {
  --bs-alert-color: var(--m46-ink);
  --bs-alert-bg: #fff;
  --bs-alert-border-color: var(--m46-steel-line);
  --bs-alert-link-color: var(--m46-ink);
  --bs-alert-border-radius: 0;
  --bs-alert-padding-x: 0.95rem;
  --bs-alert-padding-y: 0.7rem;
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  margin: 0 0 0.65rem;
  padding: 0.7rem 0.7rem 0.7rem 0.95rem;
  background: #fff;
  color: var(--m46-ink);
  border: 1px solid var(--m46-steel-line);
  border-left: 4px solid var(--m46-yellow);
  border-radius: 0;
  box-shadow: none;
}

#notifications .alert.alert-dismissible,
.m46-notif.alert-dismissible {
  padding-right: 0.7rem;
}

#notifications .alert-info,
.m46-notif--info {
  --bs-alert-bg: #fff;
  --bs-alert-border-color: var(--m46-steel-line);
  --bs-alert-color: var(--m46-ink);
  background: #fff;
  border-color: var(--m46-steel-line);
  border-left-color: var(--m46-yellow);
}

#notifications .alert-success,
.m46-notif--success {
  --bs-alert-bg: color-mix(in srgb, var(--m46-yellow) 14%, #fff);
  background: color-mix(in srgb, var(--m46-yellow) 14%, #fff);
  border-color: var(--m46-steel-line);
  border-left-color: var(--m46-yellow);
}

#notifications .alert-warning,
.m46-notif--warning {
  --bs-alert-bg: #fff;
  background: #fff;
  border-color: var(--m46-steel-line);
  border-left-color: var(--m46-black);
}

#notifications .alert-danger,
.m46-notif--error,
body#checkout .js-alert-payment-conditions {
  --bs-alert-bg: #fff;
  --bs-alert-border-color: var(--m46-black);
  --bs-alert-color: var(--m46-ink);
  background: #fff;
  color: var(--m46-ink);
  border: 2px solid var(--m46-black);
  border-left: 4px solid var(--m46-red);
}

#notifications .m46-notif__body,
#notifications .alert > :not(.btn-close) {
  flex: 1 1 auto;
  min-width: 0;
}

#notifications .alert-info,
#notifications .alert-success,
.m46-notif--info,
.m46-notif--success {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 0.98rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  line-height: 1.35;
}

#notifications .alert-warning,
#notifications .alert-danger,
.m46-notif--warning,
.m46-notif--error,
body#checkout .js-alert-payment-conditions {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.95rem;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.45;
}

#notifications .alert ul,
.m46-notif__list {
  margin: 0;
  padding: 0 0 0 1.15rem;
}

#notifications .alert li + li,
.m46-notif__list li + li {
  margin-top: 0.28rem;
}

#notifications .alert a,
#notifications .alert .alert-link,
.m46-notif a,
.m46-notif .alert-link,
body#checkout .js-alert-payment-conditions a,
body#checkout .js-alert-payment-conditions .alert-link {
  color: var(--m46-ink);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: var(--m46-yellow);
  text-underline-offset: 0.15rem;
}

#notifications .alert a:hover,
.m46-notif a:hover,
body#checkout .js-alert-payment-conditions a:hover {
  color: var(--m46-black);
  text-decoration-color: var(--m46-black);
}

#notifications .btn-close,
.m46-notif__close.btn-close {
  position: static;
  box-sizing: border-box;
  flex: 0 0 2.5rem;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  margin: 0;
  background-color: #fff;
  background-size: 0.72em;
  border: 1px solid var(--m46-black);
  border-radius: 0;
  opacity: 1;
}

#notifications .btn-close:hover,
.m46-notif__close.btn-close:hover {
  background-color: var(--m46-yellow);
}

#notifications .btn-close:focus-visible,
.m46-notif__close.btn-close:focus-visible {
  outline: 2px solid var(--m46-black);
  outline-offset: 2px;
  box-shadow: none;
  opacity: 1;
}

@media (max-width: 767.98px) {
  #notifications.m46-notifs,
  #notifications {
    z-index: 1; /* sous le CTA sticky PDP (1040) */
    margin-bottom: 0.85rem;
  }

  #notifications .alert,
  .m46-notif.alert {
    align-items: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  #notifications .alert,
  .m46-notif.alert,
  #notifications .btn-close,
  .m46-notif__close.btn-close {
    transition: none;
  }
}

/* -------------------------------------------------------------------------- */
/* Checkout / panier — badges promo = plaque M46 (jaune + noir, radius 0)     */
/* Hors listing : .badge.bg-primary = fond jaune + texte blanc + 0.25rem.     */
/* -------------------------------------------------------------------------- */
.page-cart .product-line__item-discount.badge,
.page-cart .product-line__item-discount.badge.bg-primary,
.page-cart .product-line__item-discount.badge.bg-success,
.page-cart .product-line__item-discount.badge.bg-danger,
body#cart .product-line__item-discount.badge,
body#checkout .product-line__item-discount.badge,
body#checkout .product-line__item-discount.badge.bg-primary,
.page-order .product-line__item-discount.badge,
.m46-cart .product-line__item-discount.badge,
.m46-checkout-summary .cart-voucher__code-value,
.page-cart .cart-voucher__code-value,
body#checkout .cart-voucher__code-value,
.page-order .cart-voucher__code-value,
.page-cart .cart-summary__label--voucher,
body#checkout .cart-summary__label--voucher,
.page-order .cart-summary__label--voucher,
#cart-subtotal-discount .cart-summary__value {
  font-family: var(--font-display) !important;
  text-transform: uppercase !important;
  font-weight: 800 !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.04em !important;
  line-height: 1.15 !important;
  border: 2px solid var(--m46-black, #141310) !important;
  border-radius: 0 !important;
  --bs-border-radius: 0 !important;
  --bs-badge-border-radius: 0 !important;
  padding: 0.28rem 0.5rem !important;
  box-shadow: none !important;
  text-shadow: none !important;
  background-color: var(--m46-yellow, #ffce00) !important;
  background: var(--m46-yellow, #ffce00) !important;
  color: var(--m46-black, #141310) !important;
  --bs-badge-color: var(--m46-black, #141310) !important;
  --bs-bg-opacity: 1 !important;
  -webkit-text-fill-color: var(--m46-black, #141310) !important;
  filter: none !important;
  opacity: 1 !important;
}

.m46-checkout-summary .cart-voucher__code-value,
.page-cart .cart-voucher__code-value,
body#checkout .cart-voucher__code-value,
.page-order .cart-voucher__code-value {
  display: inline-block;
  cursor: pointer;
}

.m46-checkout-summary .cart-voucher__code-value:hover,
.page-cart .cart-voucher__code-value:hover,
body#checkout .cart-voucher__code-value:hover,
.page-order .cart-voucher__code-value:hover {
  background: var(--m46-yellow-dark, #e0b400) !important;
  color: var(--m46-black, #141310) !important;
  -webkit-text-fill-color: var(--m46-black, #141310) !important;
}

.page-cart .cart-summary__label--voucher,
body#checkout .cart-summary__label--voucher,
.page-order .cart-summary__label--voucher {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  width: fit-content;
}

.page-cart .cart-summary__label--voucher i,
body#checkout .cart-summary__label--voucher i,
.page-order .cart-summary__label--voucher i {
  font-size: 0.95rem;
  color: inherit;
}

/* Récap checkout : plaque Promo ! à côté du prix barré (pas de badge HTML) */
.page-order .cart-summary-product__price:has(.value),
body#checkout .cart-summary-product__price:has(.value) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}

.page-order .cart-summary-product__price:has(.value)::after,
body#checkout .cart-summary-product__price:has(.value)::after {
  content: "Promo !";
  font-family: var(--font-display);
  text-transform: uppercase;
  font-weight: 800;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  line-height: 1.15;
  border: 2px solid var(--m46-black, #141310);
  border-radius: 0;
  padding: 0.28rem 0.5rem;
  background: var(--m46-yellow, #ffce00);
  color: var(--m46-black, #141310);
  -webkit-text-fill-color: var(--m46-black, #141310);
}
