/* =====================================================================
   THÈME AU POINT — style marketplace (orange / noir / vert)
   Chargé automatiquement par PrestaShop après theme.css
   ===================================================================== */

:root {
  --ap-orange: #f77f00;
  --ap-orange-dark: #d96c00;
  --ap-orange-soft: #fff1e3;
  --ap-green: #009e60;
  --ap-green-dark: #007a4a;
  --ap-green-soft: #e3f5ec;
  --ap-black: #111111;
  --ap-ink: #282828;
  --ap-muted: #75757a;
  --ap-line: #e4e4e6;
  --ap-bg: #f1f1f2;
  --ap-card: #ffffff;
  --ap-radius: 6px;
  --ap-shadow: 0 2px 6px rgba(0, 0, 0, .08);
  --ap-shadow-hover: 0 6px 18px rgba(0, 0, 0, .14);
  --ap-font: Roboto, Arial, sans-serif;
  --ap-font-display: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;
}

/* ---------- Base ---------- */
body {
  font-family: var(--ap-font);
  color: var(--ap-ink);
  background: var(--ap-bg);
}
a { color: var(--ap-ink); }
a:hover, a:focus { color: var(--ap-orange); }
#wrapper { background: var(--ap-bg); padding-top: 1rem; }
#index #wrapper { padding-top: .75rem; }
#index #wrapper .breadcrumb { display: none; }
.ap-icon { width: 1.25em; height: 1.25em; flex: none; vertical-align: middle; }

h1, h2, .h1, .h2 { font-family: var(--ap-font); }

/* Boutons */
.btn-primary,
.btn-primary:disabled,
.btn-primary.disabled {
  background: var(--ap-orange);
  border-color: var(--ap-orange);
  color: #fff;
  border-radius: 4px;
  font-weight: 700;
  text-transform: uppercase;
  box-shadow: 0 3px 8px rgba(247, 127, 0, .3);
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active {
  background: var(--ap-orange-dark) !important;
  border-color: var(--ap-orange-dark) !important;
  color: #fff;
}
.btn-secondary, .btn-tertiary { border-radius: 4px; }
.btn-secondary:hover { background: var(--ap-black); color: #fff; }

.ap-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  width: 100%;
  min-height: 38px;
  padding: .5rem .75rem;
  border: 0;
  border-radius: 4px;
  font: 700 .8125rem/1 var(--ap-font);
  text-transform: uppercase;
  letter-spacing: .02em;
  cursor: pointer;
  transition: background .15s, color .15s, box-shadow .15s;
}
.ap-btn--cart { background: var(--ap-orange); color: #fff; box-shadow: 0 3px 8px rgba(247, 127, 0, .25); }
.ap-btn--cart:hover, .ap-btn--cart:focus { background: var(--ap-orange-dark); color: #fff; }
.ap-btn--cart:disabled { opacity: .7; cursor: wait; }
.ap-btn--ghost { background: #fff; color: var(--ap-ink); border: 1px solid var(--ap-line); }
.ap-btn--ghost:hover { border-color: var(--ap-orange); color: var(--ap-orange); }

/* =====================================================================
   EN-TÊTE
   ===================================================================== */
#header { background: #fff; box-shadow: var(--ap-shadow); color: var(--ap-ink); }
#header .header-banner { background: var(--ap-black); }

/* Bandeau du haut */
.ap-topbar { background: var(--ap-black); color: #fff; font-size: .8125rem; }
.ap-topbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 36px;
}
.ap-topbar__left, .ap-topbar__left *, .ap-topbar__left a { color: #cfcfd2 !important; font-size: .8125rem; }
.ap-topbar__left #contact-link { padding: 0; }
.ap-topbar__left a:hover { color: var(--ap-orange); }
.ap-topbar__promo {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 0;
  font-weight: 500;
  color: #fff;
}
.ap-topbar__promo .ap-icon { color: var(--ap-orange); }
.ap-topbar__phone {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .25rem .75rem;
  border-radius: 999px;
  background: var(--ap-orange);
  color: #fff !important;
  font-weight: 700;
  white-space: nowrap;
}
.ap-topbar__phone:hover { background: var(--ap-orange-dark); }
.ap-topbar__phone .ap-icon { width: 1rem; height: 1rem; }

/* Ligne principale : logo | recherche | actions */
#header .header-top.ap-header { padding: .75rem 0; }
.ap-header__inner {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}
.ap-header__logo { flex: none; }
.ap-header__logo h1 { margin: 0; line-height: 1; }
.ap-header__logo img, .ap-header__logo .logo {
  display: block;
  width: auto;
  max-height: 56px;
}
.ap-header__search { flex: 1 1 auto; min-width: 0; }
.ap-header__actions {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex: none;
}
.ap-header__help,
.ap-account__link,
.ap-cart__link {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--ap-ink);
  font-weight: 500;
  font-size: .9375rem;
  white-space: nowrap;
}
.ap-header__help:hover,
.ap-account__link:hover,
.ap-cart__link:hover { color: var(--ap-orange); }
.ap-header__help .ap-icon,
.ap-account .ap-icon,
.ap-cart .ap-icon { width: 24px; height: 24px; }
.ap-header__nav2 { display: flex; align-items: center; gap: 1.25rem; }
.ap-header__nav2 > div { float: none !important; margin: 0 !important; }
.ap-header__nav2 .language-selector-wrapper,
.ap-header__nav2 .currency-selector { margin: 0; }
.ap-account { display: flex; align-items: center; gap: .5rem; }
.ap-account__label { max-width: 9rem; overflow: hidden; text-overflow: ellipsis; }
.ap-account__logout { font-size: .75rem; color: var(--ap-muted); }
.ap-cart { background: transparent !important; padding: 0 !important; height: auto !important; }
.ap-cart .header { margin: 0; }
.ap-cart__icon { position: relative; display: inline-flex; }
.ap-cart__count {
  position: absolute;
  top: -7px;
  right: -9px;
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--ap-orange);
  color: #fff;
  font-size: .6875rem;
  font-weight: 700;
  line-height: 19px;
  text-align: center;
}
.ap-cart.inactive .ap-cart__count { background: var(--ap-muted); }

/* Recherche (écrase les styles .search-widget de classic) */
#header .ap-search,
.ap-search {
  display: block;
  float: none;
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0;
}
.ap-search form { display: flex; gap: .5rem; margin: 0; position: relative; }
#header .ap-search form button[type="submit"].ap-search__btn {
  position: static;
  top: auto;
  bottom: auto;
  transform: none;
  background: var(--ap-orange);
  color: #fff;
}
#header .ap-search form button[type="submit"].ap-search__btn:hover { background: var(--ap-orange-dark); }
#header .ap-search form input[type="text"] {
  min-width: 0;
  height: 44px;
  border: 1px solid #bdbdc0;
  border-radius: 4px;
  padding: 0 2.25rem 0 2.75rem;
  background: #fff;
  color: var(--ap-ink);
  outline: none;
}
.ap-search__field {
  position: relative;
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
}
.ap-search__field > .ap-icon {
  position: absolute;
  left: .85rem;
  color: var(--ap-muted);
  pointer-events: none;
}
.ap-search__field input[type="text"] {
  width: 100%;
  height: 44px;
  padding: 0 2.25rem 0 2.75rem;
  border: 1px solid #bdbdc0;
  border-radius: 4px;
  background: #fff;
  font-size: .9375rem;
  color: var(--ap-ink);
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.ap-search__field input[type="text"]:focus {
  border-color: var(--ap-orange);
  box-shadow: 0 0 0 3px rgba(247, 127, 0, .18);
}
.ap-search__field .clear {
  position: absolute;
  right: .6rem;
  display: none;
  color: var(--ap-muted);
  cursor: pointer;
}
.ap-search__btn {
  flex: none;
  height: 44px;
  padding: 0 1.4rem;
  border: 0;
  border-radius: 4px;
  background: var(--ap-orange);
  color: #fff;
  font-weight: 700;
  font-size: .875rem;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 3px 8px rgba(247, 127, 0, .3);
}
.ap-search__btn:hover { background: var(--ap-orange-dark); }
.searchbar-autocomplete.ui-autocomplete {
  border: 0;
  border-radius: var(--ap-radius);
  box-shadow: var(--ap-shadow-hover);
  z-index: 1000;
}
.searchbar-autocomplete .ui-menu-item a { display: flex; align-items: center; gap: .6rem; padding: .4rem .6rem; }
.searchbar-autocomplete .autocomplete-thumbnail { width: 40px; height: 40px; object-fit: cover; }

/* Barre de menu noire */
.ap-menubar { background: var(--ap-black); }
.ap-menubar__inner { display: flex; align-items: center; min-height: 44px; }
.ap-menubar .menu { width: 100%; margin: 0; padding: 0; }
.ap-menubar .top-menu[data-depth="0"] { display: flex; flex-wrap: wrap; margin: 0; }
.ap-menubar .top-menu[data-depth="0"] > li { position: static; }
#header .ap-menubar .top-menu a[data-depth="0"] {
  display: block;
  padding: .8rem 1rem;
  color: #fff;
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
}
#header .ap-menubar .top-menu a[data-depth="0"]:hover,
#header .ap-menubar .top-menu > li:hover > a[data-depth="0"] {
  background: var(--ap-orange);
  color: #fff;
}
.ap-menubar .top-menu .sub-menu {
  margin-top: 0;
  border-top: 3px solid var(--ap-orange);
  border-radius: 0 0 var(--ap-radius) var(--ap-radius);
  box-shadow: var(--ap-shadow-hover);
}
.ap-menubar .top-menu a.dropdown-submenu { color: var(--ap-ink); }
.ap-menubar .top-menu a:not([data-depth="0"]):hover { color: var(--ap-orange); }

/* =====================================================================
   PAGE D'ACCUEIL
   ===================================================================== */
.ap-home { display: flex; flex-direction: column; gap: 1rem; }
.ap-block,
.ap-row,
.ap-hero__cats,
.ap-hero__info {
  background: var(--ap-card);
  border-radius: var(--ap-radius);
  box-shadow: var(--ap-shadow);
}

/* Héros */
.ap-hero {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr) 230px;
  gap: 1rem;
  align-items: stretch;
}
/* La hauteur du héros est donnée par le carrousel ; les colonnes s'y adaptent */
.ap-hero__cats,
.ap-hero__side { contain: size; min-height: 0; overflow: hidden; }
.ap-hero__cats { padding: .5rem 0; }
.ap-hero__cats ul { margin: 0; padding: 0; list-style: none; }
.ap-hero__cats a {
  display: flex;
  align-items: center;
  gap: .7rem;
  padding: .52rem 1rem;
  color: var(--ap-ink);
  font-size: .875rem;
  transition: color .12s, background .12s;
}
.ap-hero__cats a .ap-icon { width: 20px; height: 20px; color: var(--ap-muted); }
.ap-hero__cats a:hover { background: var(--ap-orange-soft); color: var(--ap-orange); }
.ap-hero__cats a:hover .ap-icon { color: var(--ap-orange); }

/* Carrousel */
.ap-slider {
  position: relative;
  overflow: hidden;
  border-radius: var(--ap-radius);
  box-shadow: var(--ap-shadow);
  background: #ddd;
  align-self: start;
  width: 100%;
  aspect-ratio: 16 / 9;
}
.ap-slider__track {
  display: flex;
  height: 100%;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
}
.ap-slider__track::-webkit-scrollbar { display: none; }
.ap-slider__slide { flex: 0 0 100%; height: 100%; scroll-snap-align: start; }
.ap-slider__slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ap-slider__nav,
.ap-row__nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  color: var(--ap-ink);
  box-shadow: var(--ap-shadow-hover);
  transform: translateY(-50%);
  cursor: pointer;
  opacity: 0;
  transition: opacity .2s, background .15s, color .15s;
}
.ap-slider__nav[hidden],
.ap-row__nav[hidden] { display: none; }
.ap-slider:hover .ap-slider__nav,
.ap-slider:focus-within .ap-slider__nav,
.ap-row__body:hover .ap-row__nav,
.ap-row__body:focus-within .ap-row__nav { opacity: 1; }
.ap-slider__nav:hover,
.ap-row__nav:hover { background: var(--ap-orange); color: #fff; }
.ap-slider__nav--prev, .ap-row__nav--prev { left: 12px; }
.ap-slider__nav--next, .ap-row__nav--next { right: 12px; }
.ap-slider__dots {
  position: absolute;
  bottom: 12px;
  left: 50%;
  display: flex;
  gap: 6px;
  transform: translateX(-50%);
}
.ap-slider__dots button {
  width: 9px;
  height: 9px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, .6);
  cursor: pointer;
  transition: width .2s, background .2s;
}
.ap-slider__dots button[aria-current="true"] { width: 26px; background: var(--ap-orange); }

/* Colonne droite */
.ap-hero__side { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
.ap-hero__info { margin: 0; padding: .35rem 0; list-style: none; }
.ap-hero__info a,
.ap-hero__info-link {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .6rem .9rem;
  color: var(--ap-ink);
}
.ap-hero__info a:hover strong { color: var(--ap-orange); }
.ap-hero__info strong { display: block; font-size: .8125rem; font-weight: 700; line-height: 1.2; }
.ap-hero__info small { display: block; color: var(--ap-muted); font-size: .75rem; }
.ap-hero__info-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--ap-orange-soft);
  color: var(--ap-orange);
}
.ap-hero__info-icon .ap-icon { width: 18px; height: 18px; }
.ap-hero__info-icon--green { background: var(--ap-green-soft); color: var(--ap-green); }
.ap-hero__ad {
  display: block;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  border-radius: var(--ap-radius);
  box-shadow: var(--ap-shadow);
}
.ap-hero__ad img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform .3s; }
.ap-hero__ad:hover img { transform: scale(1.03); }

/* Titres de rayons */
.ap-row__head {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .65rem 1rem;
  border-radius: var(--ap-radius) var(--ap-radius) 0 0;
  background: var(--ap-orange);
  color: #fff;
}
.ap-row__title {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin: 0;
  font-family: var(--ap-font-display);
  font-size: 1.5rem;
  font-style: italic;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: .01em;
  text-transform: uppercase;
  color: inherit;
}
.ap-row__title .ap-icon { width: 22px; height: 22px; color: #ffe066; }
.ap-row__more {
  display: inline-flex;
  align-items: center;
  gap: .15rem;
  margin-left: auto;
  color: inherit;
  font-size: .8125rem;
  font-weight: 700;
  text-transform: uppercase;
  white-space: nowrap;
}
.ap-row__more:hover { color: inherit; text-decoration: underline; }
.ap-row__more .ap-icon { width: 18px; height: 18px; }
.ap-row__countdown {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 0;
  font-size: .8125rem;
}
.ap-row__countdown,
.ap-row__countdown span { color: #fff; }
.ap-row__countdown strong {
  padding: .1rem .5rem;
  border-radius: 4px;
  background: rgba(0, 0, 0, .25);
  color: #fff;
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
}
.ap-row--flash .ap-row__head { background: linear-gradient(90deg, #e03a00, var(--ap-orange)); }
.ap-row--green .ap-row__head,
.ap-row__head--green { background: var(--ap-green); color: #fff; }
.ap-row--dark .ap-row__head { background: var(--ap-black); color: #fff; }
.ap-row--dark .ap-row__title .ap-icon { color: var(--ap-orange); }
.ap-row__head--light { background: #fff; color: var(--ap-ink); border-bottom: 1px solid var(--ap-line); }

/* Rayon horizontal */
.ap-row__body { position: relative; padding: .75rem; }
.ap-row__track {
  --ap-per-view: 6;
  --ap-gap: .75rem;
  display: flex !important;
  flex-wrap: nowrap !important;
  justify-content: flex-start !important;
  gap: var(--ap-gap);
  margin: 0 !important;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
}
.ap-row__track::-webkit-scrollbar { display: none; }
.ap-row__track > .ap-row__item {
  flex: 0 0 calc((100% - (var(--ap-per-view) - 1) * var(--ap-gap)) / var(--ap-per-view));
  max-width: none;
  min-width: 0;
  padding: 0;
  scroll-snap-align: start;
}

/* Tuiles des rayons */
.ap-cats__grid {
  display: grid;
  grid-template-columns: repeat(9, minmax(0, 1fr));
  gap: .75rem;
  padding: 1rem;
}
.ap-cats__tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  color: var(--ap-ink);
  font-size: .8125rem;
  font-weight: 500;
  text-align: center;
}
.ap-cats__tile img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 50%;
  border: 3px solid #fff;
  box-shadow: 0 0 0 2px var(--ap-line);
  transition: box-shadow .15s, transform .2s;
}
.ap-cats__tile:hover { color: var(--ap-orange); }
.ap-cats__tile:hover img { box-shadow: 0 0 0 2px var(--ap-orange); transform: translateY(-2px); }

/* Espaces pub */
.ap-ads { display: grid; gap: 1rem; }
.ap-ads--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ap-ads__item,
.ap-posters__item {
  display: block;
  overflow: hidden;
  border-radius: var(--ap-radius);
  box-shadow: var(--ap-shadow);
  background: #fff;
}
.ap-ads__item img,
.ap-posters__item img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform .3s;
}
.ap-ads__item:hover img,
.ap-posters__item:hover img { transform: scale(1.03); }
.ap-posters__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  padding: 1rem;
}

/* Modules restant dans displayHome */
.ap-home__extra > * { margin: 0; }
.ap-home__extra #custom-text {
  margin: 0;
  border-radius: var(--ap-radius);
  box-shadow: var(--ap-shadow);
}

/* Réassurance */
.ap-reassurance {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  padding: 1.25rem;
  border-radius: var(--ap-radius);
  background: var(--ap-black);
  color: #fff;
}
.ap-reassurance > div { display: flex; align-items: center; gap: .8rem; }
.ap-reassurance .ap-icon { width: 34px; height: 34px; color: var(--ap-orange); }
.ap-reassurance p { margin: 0; line-height: 1.3; }
.ap-reassurance strong { display: block; font-size: .9375rem; }
.ap-reassurance span { font-size: .8125rem; color: #bdbdc0; }

/* =====================================================================
   VIGNETTES PRODUIT (accueil, catégories, recherche…)
   ===================================================================== */
.product-miniature .product,
.product-miniature.product { margin: 0; }
#products .products,
.featured-products .products,
.product-accessories .products { gap: .75rem 0; }
.product-miniature { display: block; }
.product-miniature .thumbnail-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
  border-radius: var(--ap-radius);
  background: #fff;
  box-shadow: none;
  transition: box-shadow .2s, transform .2s;
}
.product-miniature .thumbnail-container:hover,
.product-miniature .thumbnail-container:focus-within {
  box-shadow: var(--ap-shadow-hover);
  transform: translateY(-2px);
}
.product-miniature .thumbnail-top { border-radius: var(--ap-radius) var(--ap-radius) 0 0; background: #f7f7f7; }
.product-miniature .thumbnail-container .product-thumbnail img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.product-miniature .product-description {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: .3rem;
  padding: .6rem .6rem .7rem;
  background: transparent;
}
.product-miniature .thumbnail-container:hover .product-description::after { display: none; }
.product-miniature .product-title {
  margin: 0;
  text-align: left;
  text-transform: none;
}
.product-miniature .product-title a {
  display: -webkit-box;
  min-height: 2.5em;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--ap-ink);
  font-size: .875rem;
  line-height: 1.25;
  text-align: left;
}
.product-miniature .product-title a:hover { color: var(--ap-orange); }
.product-miniature .product-price-and-shipping {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .1rem .5rem;
  text-align: left;
}
.product-miniature .product-price-and-shipping .price {
  order: -1;
  width: 100%;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--ap-black);
}
.product-miniature .regular-price { font-size: .8125rem; color: var(--ap-muted); }
.product-miniature .product-price-and-shipping .discount-product {
  display: inline-block;
  padding: 0 .3rem;
  border-radius: 3px;
  background: var(--ap-orange-soft);
  color: var(--ap-orange-dark);
  font-size: .75rem;
  font-weight: 700;
}
.product-miniature .comments_note { text-align: left; }
.ap-miniature-cart { margin-top: auto; padding-top: .3rem; }
.ap-miniature-cart__form { margin: 0; }

/* Bouton « ajouter » visible au survol sur ordinateur */
@media (hover: hover) and (min-width: 768px) {
  .ap-miniature-cart { opacity: 0; transform: translateY(4px); transition: opacity .2s, transform .2s; }
  .product-miniature .thumbnail-container:hover .ap-miniature-cart,
  .product-miniature .thumbnail-container:focus-within .ap-miniature-cart { opacity: 1; transform: none; }
}

/* Aperçu rapide */
.product-miniature .highlighted-informations { background: rgba(255, 255, 255, .95); }
.product-miniature .highlighted-informations .quick-view { color: var(--ap-ink); font-size: .8125rem; font-weight: 500; }
.product-miniature .highlighted-informations .quick-view:hover { color: var(--ap-orange); }

/* Badges */
.product-flags li.product-flag {
  margin-top: .5rem;
  padding: .2rem .45rem;
  border-radius: 0 3px 3px 0;
  background: var(--ap-green);
  font-size: .75rem;
  font-weight: 700;
}
.product-miniature .product-flags li.product-flag { min-width: 0; min-height: 0; }
.product-flags li.product-flag.new { background: var(--ap-green); }
.product-flags li.product-flag.on-sale,
.product-flags li.product-flag.discount,
.product-flags li.product-flag.discount-percentage,
.product-flags li.product-flag.discount-amount { background: var(--ap-orange); }
.product-flags li.product-flag.on-sale { width: auto; text-align: left; }
.product-flags li.product-flag.out_of_stock { background: var(--ap-black); }

/* =====================================================================
   PAGES CATÉGORIE / RECHERCHE
   ===================================================================== */
#left-column > div,
#left-column .block-categories,
#search_filters_wrapper #search_filters,
#js-product-list-top,
.block-category {
  border-radius: var(--ap-radius);
  box-shadow: var(--ap-shadow);
  background: #fff;
}
#left-column .block-categories .category-top-menu > li > a,
#search_filters .h6,
#search_filters .facet .facet-title {
  font-family: var(--ap-font-display);
  font-size: 1.125rem;
  font-style: italic;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--ap-black);
}
#left-column .block-categories a:hover { color: var(--ap-orange); }
.block-category { padding: 1.25rem; margin-bottom: 1rem; min-height: 0; }
.block-category h1 {
  font-family: var(--ap-font-display);
  font-size: 2rem;
  font-style: italic;
  font-weight: 800;
  text-transform: uppercase;
}
#js-product-list-top { padding: .6rem 1rem; margin: 0 0 .75rem; }
@media (min-width: 1200px) {
  #products .products > .js-product { width: 25%; max-width: 25%; flex: 0 0 25%; }
}
#products .products { margin: 0 -.375rem; }
#products .products > .js-product { padding: 0 .375rem; }
.custom-checkbox input[type="checkbox"]:checked + span { border-color: var(--ap-orange); }
.custom-checkbox input[type="checkbox"] + span .checkbox-checked { color: var(--ap-orange); }
.facet-label.active .custom-checkbox span.color,
.facet-label:hover .custom-checkbox span.color { border-color: var(--ap-orange); }
.pagination .current a { color: var(--ap-orange); }

/* =====================================================================
   FICHE PRODUIT
   ===================================================================== */
#product #content,
#product .product-information,
.product-container .product-actions { background: transparent; }
#product #wrapper > .container > .row,
#product #main { background: transparent; }
#product .product-container {
  padding: 1.25rem;
  border-radius: var(--ap-radius);
  box-shadow: var(--ap-shadow);
  background: #fff;
}
#product h1.h1 { font-size: 1.5rem; font-weight: 700; text-transform: none; }
.product-prices .current-price-value { font-size: 1.75rem; font-weight: 700; color: var(--ap-black); }
.product-prices .discount { background: var(--ap-orange); border-radius: 3px; }
.product-add-to-cart .add-to-cart { min-height: 48px; font-size: 1rem; }
.tabs {
  border-radius: var(--ap-radius);
  box-shadow: var(--ap-shadow);
  background: #fff;
}
.tabs .nav-tabs .nav-link.active,
.tabs .nav-tabs .nav-link:hover { border-bottom-color: var(--ap-orange); color: var(--ap-orange); }
.product-accessories .products,
.product-category-products .products { gap: .75rem; }
.product-accessories .products > .js-product,
.featured-products .products > .js-product:not(.ap-row__item) { width: calc((100% - 3 * .75rem) / 4); }

/* Modale « ajouté au panier » */
#blockcart-modal .modal-header { background: var(--ap-green); }
#blockcart-modal .modal-title { color: #fff; }
#blockcart-modal .modal-title i { color: #fff; }

/* =====================================================================
   PIED DE PAGE
   ===================================================================== */
#footer { padding-top: 1.5rem; background: var(--ap-bg); }
.ap-footer-top { background: var(--ap-orange); color: #fff; }
.ap-footer-top__inner { display: flex; flex-wrap: wrap; align-items: center; padding: 1.25rem 0; }
.ap-footer-top__inner::before,
.ap-footer-top__inner::after { display: none; }
.ap-footer-top .block_newsletter p:not(.alert):not(.col-md-5) { color: rgba(255, 255, 255, .85); }
.ap-footer-top .block-social { flex: 0 0 auto; width: auto; max-width: none; }
.ap-footer-top .block-social ul { margin: 0; }
.ap-footer-top .block_newsletter {
  flex: 1 1 0;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  background: transparent;
  color: #fff;
  border: 0;
}
.ap-footer-top .block_newsletter #block-newsletter-label,
.ap-footer-top .block_newsletter p {
  color: #fff;
  font-family: var(--ap-font-display);
  font-size: 1.375rem;
  font-style: italic;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
}
.ap-footer-top .block_newsletter p.alert,
.ap-footer-top .block_newsletter .col-xs-12 p {
  font-family: var(--ap-font);
  font-size: .8125rem;
  font-style: normal;
  font-weight: 400;
  text-transform: none;
}
.ap-footer-top .block_newsletter form input[type="email"] {
  height: 44px;
  border: 0;
  border-radius: 4px;
  padding: 0 1rem;
}
.ap-footer-top .block_newsletter form .btn,
.ap-footer-top .block_newsletter form input[type="submit"] {
  height: 44px;
  border-radius: 4px;
  background: var(--ap-black);
  color: #fff;
  box-shadow: none;
}
.ap-footer-top .block-social { text-align: right; }
.ap-footer-top .block-social ul li { background-color: rgba(0, 0, 0, .18); border-radius: 50%; }
.ap-footer-top .block-social ul li:hover { background-color: var(--ap-black); }

.ap-footer.footer-container {
  margin: 0;
  padding-top: 2rem;
  background: var(--ap-black);
  color: #cfcfd2;
  box-shadow: none;
}
.ap-footer .h3,
.ap-footer .h4,
.ap-footer .title .h3,
.ap-footer p.h3,
.ap-footer .block-contact-title,
.ap-footer .myaccount-title a {
  color: #fff !important;
  font-family: var(--ap-font-display);
  font-size: 1.125rem;
  font-style: italic;
  font-weight: 800;
  text-transform: uppercase;
}
.ap-footer li { margin-bottom: .35rem; }
.ap-footer a,
.ap-footer li a,
.ap-footer .block-contact,
.ap-footer .block-contact a { color: #cfcfd2; font-size: .875rem; }
.ap-footer a:hover,
.ap-footer li a:hover { color: var(--ap-orange); }
.ap-footer .block-contact { border-left: 0; }
.ap-footer .collapse-icons .material-icons,
.ap-footer .navbar-toggler .material-icons { color: #fff; }
.ap-footer #blockEmailSubscription_displayFooter,
.ap-footer .blockreassurance_product { color: #cfcfd2; }
.ap-footer__bottom {
  margin-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, .12);
  background: #0a0a0a;
}
.ap-footer__bottom-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.ap-footer__bottom p { margin: 0; font-size: .8125rem; color: #9a9a9e; }
.ap-footer__bottom a { color: #fff; font-size: .8125rem; }
.ap-footer__contact { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.25rem; }
.ap-footer__contact a { display: inline-flex; align-items: center; gap: .35rem; }
.ap-footer__contact .ap-icon { width: 16px; height: 16px; color: var(--ap-orange); }

/* Bouton WhatsApp flottant */
.ap-whatsapp-float {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 990;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: var(--ap-green);
  color: #fff !important;
  box-shadow: 0 6px 18px rgba(0, 158, 96, .45);
  transition: transform .2s, background .2s;
}
.ap-whatsapp-float:hover { background: var(--ap-green-dark); transform: scale(1.06); }
.ap-whatsapp-float .ap-icon { width: 28px; height: 28px; }

/* =====================================================================
   MENU MOBILE
   ===================================================================== */
.ap-header__burger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ap-ink);
  cursor: pointer;
}
.ap-header__mobile-icons { display: flex; align-items: center; gap: 1rem; }
.ap-mobile-menu { background: #fff; border-top: 3px solid var(--ap-orange); }
.ap-mobile-menu .top-menu a[data-depth="0"] { color: var(--ap-ink); font-weight: 700; }
.ap-mobile-menu__cats { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--ap-line); }
.ap-mobile-menu__cats a {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .85rem 1rem;
  background: #fff;
  color: var(--ap-ink);
  font-size: .875rem;
}
.ap-mobile-menu__cats .ap-icon { color: var(--ap-orange); width: 20px; height: 20px; }
.ap-mobile-menu__cats a:last-child:nth-child(odd) { grid-column: span 2; }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 1199px) {
  .ap-hero { grid-template-columns: 200px minmax(0, 1fr) 210px; }
  .ap-row__track { --ap-per-view: 5; }
  .ap-cats__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

@media (max-width: 991px) {
  .ap-hero { grid-template-columns: minmax(0, 1fr); }
  .ap-hero__cats { display: none; }
  .ap-hero__side { contain: none; overflow: visible; display: grid; grid-template-columns: 1fr 1fr; }
  .ap-hero__ad { aspect-ratio: 2 / 1; }
  .ap-row__track { --ap-per-view: 4; }
  .ap-reassurance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ap-header__help span { display: none; }
  .ap-header__inner { gap: 1rem; }
  .product-accessories .products > .js-product,
  .featured-products .products > .js-product:not(.ap-row__item) { width: calc((100% - 2 * .75rem) / 3); }
}

@media (max-width: 767px) {
  .ap-topbar__inner { justify-content: center; min-height: 32px; }
  .ap-topbar__promo { display: none; }
  #header .header-top.ap-header { padding: .5rem 0 .6rem; }
  .ap-header__inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "burger logo actions" "search search search";
    gap: .5rem .75rem;
  }
  .ap-header__burger { grid-area: burger; }
  .ap-header__logo--mobile { grid-area: logo; justify-self: center; }
  .ap-header__logo--mobile img, .ap-header__logo--mobile .logo { max-height: 40px; width: auto; }
  #_desktop_logo { display: none; }
  .ap-header__search { grid-area: search; }
  .ap-header__actions { grid-area: actions; gap: .75rem; }
  .ap-account__label { display: none; }
  .ap-search__btn { padding: 0 .9rem; }
  .ap-search__btn { font-size: 0; }
  .ap-search__btn::before { content: "OK"; font-size: .875rem; }

  .ap-home { gap: .75rem; }
  .ap-slider { aspect-ratio: 2 / 1; border-radius: 0; width: calc(100% + 30px); margin: 0 -15px; }
  .ap-slider__nav { display: none; }
  .ap-hero__side { grid-template-columns: 1fr; }
  .ap-hero__info { display: grid; grid-template-columns: repeat(3, 1fr); padding: .25rem; }
  .ap-hero__info a, .ap-hero__info-link { flex-direction: column; gap: .35rem; padding: .5rem .25rem; text-align: center; }
  .ap-hero__info small { display: none; }
  .ap-hero__info strong { font-size: .6875rem; font-weight: 500; }
  .ap-row__head { padding: .55rem .75rem; flex-wrap: wrap; row-gap: .25rem; }
  .ap-row__title { font-size: 1.25rem; }
  .ap-row__countdown { order: 3; width: 100%; }
  .ap-row__body { padding: .5rem; }
  .ap-row__track { --ap-per-view: 2.3; --ap-gap: .5rem; }
  .ap-row__nav { display: none; }
  .ap-cats__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: .75rem; }
  .ap-ads--3 { grid-template-columns: 1fr 1fr 1fr; gap: .5rem; }
  .ap-posters__grid { grid-template-columns: 1fr 1fr 1fr; gap: .5rem; padding: .5rem; }
  .ap-reassurance { grid-template-columns: 1fr 1fr; padding: 1rem; }
  .ap-reassurance > div { flex-direction: column; text-align: center; gap: .4rem; }
  .ap-footer-top .block-social { text-align: center; }
  .ap-footer__bottom-inner { justify-content: center; text-align: center; }
  .product-accessories .products > .js-product,
  .featured-products .products > .js-product:not(.ap-row__item) { width: calc((100% - .75rem) / 2); }
  #products .products > .js-product { width: 50%; }
}

@media (max-width: 479px) {
  .ap-ads--3 { grid-template-columns: 1fr 1fr; }
  .ap-ads--3 .ap-ads__item:last-child { display: none; }
  .ap-posters__grid { grid-template-columns: 1fr 1fr; }
  .ap-posters__grid .ap-posters__item:last-child { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ap-slider__track, .ap-row__track { scroll-behavior: auto; }
  .ap-slider *, .ap-row *, .ap-cats *, .ap-ads *, .ap-posters * { transition: none !important; }
}

/* =====================================================================
   ANIMATIONS & EFFETS DYNAMIQUES
   (tout est désactivé si l'appareil demande « réduire les animations »)
   ===================================================================== */

/* ---------- Barre de progression de lecture ---------- */
.ap-progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1100;
  height: 3px;
  pointer-events: none;
}
.ap-progress span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--ap-orange), #ffb347, var(--ap-green));
  transform: scaleX(0);
  transform-origin: 0 50%;
  box-shadow: 0 0 10px rgba(247, 127, 0, .6);
}

/* ---------- En-tête collant qui se compacte ---------- */
#header {
  position: sticky;
  top: 0;
  z-index: 1000;
  transition: box-shadow .3s;
}
.ap-topbar {
  max-height: 60px;
  overflow: hidden;
  transition: max-height .35s ease, opacity .25s ease;
}
.ap-menubar {
  max-height: 60px;
  transition: max-height .35s ease, opacity .25s ease;
}
#header .header-top.ap-header { transition: padding .3s ease; }
.ap-header__logo img, .ap-header__logo .logo { transition: max-height .3s ease; }
body.ap-scrolled #header { box-shadow: 0 8px 24px rgba(0, 0, 0, .12); }
body.ap-scrolled .ap-topbar { max-height: 0; opacity: 0; }
body.ap-scrolled #header .header-top.ap-header { padding: .45rem 0; }
body.ap-scrolled .ap-header__logo img,
body.ap-scrolled .ap-header__logo .logo { max-height: 42px; }
@media (min-width: 768px) {
  body.ap-scrolled .ap-menubar { max-height: 0; opacity: 0; overflow: hidden; }
}

/* ---------- Bandeau défilant ---------- */
.ap-ticker {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.ap-ticker__track {
  display: flex;
  width: max-content;
  animation: ap-ticker 38s linear infinite;
}
.ap-ticker:hover .ap-ticker__track { animation-play-state: paused; }
.ap-ticker__item {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: 0 1.75rem;
  color: #fff;
  font-weight: 500;
  white-space: nowrap;
}
.ap-ticker__item .ap-icon { width: 14px; height: 14px; color: var(--ap-orange); }
@keyframes ap-ticker { to { transform: translateX(-50%); } }

/* Pastille téléphone qui « respire » */
.ap-topbar__phone { position: relative; animation: ap-breathe 2.8s ease-in-out infinite; }
@keyframes ap-breathe {
  0%, 100% { box-shadow: 0 0 0 0 rgba(247, 127, 0, .55); }
  50% { box-shadow: 0 0 0 7px rgba(247, 127, 0, 0); }
}

/* ---------- Apparition au défilement ---------- */
.ap-anim .js-ap-reveal {
  opacity: 0;
  transform: translateY(34px);
  transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1);
}
.ap-anim .js-ap-reveal.is-visible { opacity: 1; transform: none; }

/* Éléments enfants en cascade */
.ap-anim .js-ap-reveal .ap-cats__tile,
.ap-anim .js-ap-reveal .ap-ads__item,
.ap-anim .js-ap-reveal .ap-posters__item,
.ap-anim .js-ap-reveal .ap-row__item,
.ap-anim .js-ap-reveal .ap-hero__cats li,
.ap-anim .js-ap-reveal.ap-reassurance > div {
  opacity: 0;
  transform: translateY(22px) scale(.97);
  transition: opacity .55s ease, transform .55s cubic-bezier(.2, .8, .2, 1.15);
  transition-delay: calc(var(--ap-i, 0) * 70ms + 150ms);
}
.ap-anim .js-ap-reveal.is-visible .ap-cats__tile,
.ap-anim .js-ap-reveal.is-visible .ap-ads__item,
.ap-anim .js-ap-reveal.is-visible .ap-posters__item,
.ap-anim .js-ap-reveal.is-visible .ap-row__item,
.ap-anim .js-ap-reveal.is-visible .ap-hero__cats li,
.ap-anim .js-ap-reveal.is-visible.ap-reassurance > div {
  opacity: 1;
  transform: none;
}
.ap-anim .js-ap-reveal.ap-hero .ap-hero__cats li { transform: translateX(-16px); }
.ap-anim .js-ap-reveal.is-visible.ap-hero .ap-hero__cats li { transform: none; }
/* Une fois apparus, les éléments retrouvent leurs transitions de survol normales */
.ap-anim .js-ap-reveal.is-done .ap-cats__tile,
.ap-anim .js-ap-reveal.is-done .ap-ads__item,
.ap-anim .js-ap-reveal.is-done .ap-posters__item,
.ap-anim .js-ap-reveal.is-done .ap-row__item { transition-delay: 0s; }

/* Titres de rayons : trait lumineux qui passe */
.ap-row__head { position: relative; overflow: hidden; }
.ap-row__head::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -40%;
  width: 30%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .35), transparent);
  transform: skewX(-20deg);
  pointer-events: none;
}
.is-visible .ap-row__head::after { animation: ap-sweep 1.4s .4s ease both; }
.ap-row--flash .ap-row__head::after { animation: ap-sweep 2.6s 1s ease-in-out infinite; }
.ap-row__head--light::after { display: none; }
@keyframes ap-sweep { to { left: 130%; } }

/* ---------- Carrousel ---------- */
.ap-slider__slide { overflow: hidden; }
.ap-slider__slide img { transform: scale(1.08); transition: transform 6s ease-out; }
.ap-slider__slide.is-active img { transform: scale(1); }
.ap-slider__bar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 4px;
  background: rgba(255, 255, 255, .25);
}
.ap-slider__bar span {
  display: block;
  height: 100%;
  background: var(--ap-orange);
  transform: scaleX(0);
  transform-origin: 0 50%;
}
.ap-slider__bar span.is-running { animation: ap-bar var(--ap-slide-ms, 5000ms) linear forwards; }
.ap-slider:hover .ap-slider__bar span { animation-play-state: paused; }
@keyframes ap-bar { to { transform: scaleX(1); } }
.ap-slider__nav { transform: translateY(-50%) scale(.85); }
.ap-slider:hover .ap-slider__nav { transform: translateY(-50%) scale(1); }

/* ---------- Ventes flash ---------- */
.ap-row--flash .ap-row__head {
  background: linear-gradient(90deg, #e03a00, var(--ap-orange), #ff9d2e, #e03a00);
  background-size: 300% 100%;
  animation: ap-gradient 6s ease infinite;
}
@keyframes ap-gradient {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}
.ap-row--flash .ap-row__title .ap-icon { animation: ap-bolt 1.6s ease-in-out infinite; transform-origin: 50% 60%; }
@keyframes ap-bolt {
  0%, 100% { transform: scale(1) rotate(0); filter: drop-shadow(0 0 0 #ffe066); }
  40% { transform: scale(1.25) rotate(-12deg); filter: drop-shadow(0 0 6px #ffe066); }
  60% { transform: scale(1.1) rotate(8deg); }
}
.ap-row__countdown .ap-digit { display: inline-block; min-width: .6em; text-align: center; }
.ap-row__countdown .ap-digit.is-changed { animation: ap-flip .45s ease; }
@keyframes ap-flip {
  0% { transform: translateY(-60%); opacity: 0; }
  100% { transform: none; opacity: 1; }
}

/* ---------- Vignettes produit ---------- */
.product-miniature .thumbnail-top { overflow: hidden; }
.product-miniature .product-thumbnail img { transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.product-miniature .thumbnail-container:hover .product-thumbnail img { transform: scale(1.09); }
.product-miniature .thumbnail-top::after {
  content: "";
  position: absolute;
  top: 0;
  left: -75%;
  z-index: 1;
  width: 50%;
  height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .55), transparent);
  transform: skewX(-22deg);
  pointer-events: none;
}
.product-miniature .thumbnail-container:hover .thumbnail-top::after { animation: ap-shine .8s ease; }
@keyframes ap-shine { to { left: 130%; } }
.product-miniature .thumbnail-container:hover { transform: translateY(-5px); }
.product-miniature .product-flags li.product-flag { animation: ap-pop .5s cubic-bezier(.2, .8, .2, 1.4) both; }
.product-miniature .product-flags li.product-flag:nth-child(2) { animation-delay: .12s; }
@keyframes ap-pop {
  from { transform: scale(.4); opacity: 0; }
  to { transform: none; opacity: 1; }
}
.product-miniature .wishlist-button-add { transition: transform .25s cubic-bezier(.2, .8, .2, 1.5); }
.product-miniature .wishlist-button-add:hover { transform: scale(1.18); }

/* ---------- Boutons : vague au clic ---------- */
.ap-btn, .ap-search__btn, .btn-primary { position: relative; overflow: hidden; }
.ap-ripple {
  position: absolute;
  border-radius: 50%;
  background: rgba(255, 255, 255, .55);
  transform: scale(0);
  animation: ap-ripple .6s ease-out forwards;
  pointer-events: none;
}
@keyframes ap-ripple { to { transform: scale(4); opacity: 0; } }
.ap-btn--cart:hover, .ap-search__btn:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(247, 127, 0, .4); }

/* ---------- Tuiles des rayons : anneau tournant ---------- */
.ap-cats__tile { position: relative; }
.ap-cats__tile::before {
  content: "";
  position: absolute;
  top: -4px;
  left: 50%;
  z-index: 0;
  width: calc(100% + 8px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(var(--ap-orange), #fff 25%, var(--ap-green) 50%, #fff 75%, var(--ap-orange));
  opacity: 0;
  transform: translateX(-50%) rotate(0);
  transition: opacity .3s;
}
.ap-cats__tile img { position: relative; z-index: 1; }
.ap-cats__tile:hover::before { opacity: 1; animation: ap-spin 2.2s linear infinite; }
.ap-cats__tile:hover img { box-shadow: none; transform: scale(.94); }
@keyframes ap-spin { to { transform: translateX(-50%) rotate(360deg); } }

/* ---------- Pubs : relief 3D au survol ---------- */
.js-ap-tilt {
  position: relative;
  transform: perspective(900px) rotateX(var(--ap-rx, 0deg)) rotateY(var(--ap-ry, 0deg));
  transition: transform .4s ease, box-shadow .3s;
}
.js-ap-tilt.is-tilting { transition: transform .08s linear, box-shadow .3s; box-shadow: var(--ap-shadow-hover); }
.ap-anim .js-ap-reveal.is-done .js-ap-tilt {
  transform: perspective(900px) rotateX(var(--ap-rx, 0deg)) rotateY(var(--ap-ry, 0deg));
}
.js-ap-tilt::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--ap-mx, 50%) var(--ap-my, 50%), rgba(255, 255, 255, .35), transparent 55%);
  opacity: 0;
  transition: opacity .3s;
  pointer-events: none;
}
.js-ap-tilt.is-tilting::after { opacity: 1; }

/* ---------- Panier : rebond quand on ajoute ---------- */
.ap-cart.is-bumping .ap-cart__icon { animation: ap-cart-bump .7s cubic-bezier(.2, .8, .2, 1.4); }
.ap-cart.is-bumping .ap-cart__count { animation: ap-count .7s ease; }
@keyframes ap-cart-bump {
  0% { transform: none; }
  25% { transform: scale(1.25) rotate(-10deg); }
  50% { transform: scale(.95) rotate(6deg); }
  100% { transform: none; }
}
@keyframes ap-count {
  0%, 100% { background: var(--ap-orange); transform: none; }
  40% { background: var(--ap-green); transform: scale(1.5); }
}

/* ---------- Réassurance : icônes qui flottent ---------- */
.ap-reassurance > div .ap-icon { animation: ap-float 3.2s ease-in-out infinite; animation-delay: calc(var(--ap-i, 0) * .4s); }
@keyframes ap-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

/* ---------- WhatsApp : ondes ---------- */
.ap-whatsapp-float::before,
.ap-whatsapp-float::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 2px solid var(--ap-green);
  animation: ap-wave 2.4s ease-out infinite;
  pointer-events: none;
}
.ap-whatsapp-float::after { animation-delay: 1.2s; }
@keyframes ap-wave {
  from { transform: scale(1); opacity: .8; }
  to { transform: scale(1.8); opacity: 0; }
}

/* ---------- Bouton retour en haut ---------- */
.ap-totop {
  position: fixed;
  right: 22px;
  bottom: 86px;
  z-index: 989;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--ap-black);
  color: #fff;
  box-shadow: var(--ap-shadow-hover);
  cursor: pointer;
  opacity: 0;
  transform: translateY(20px) scale(.8);
  pointer-events: none;
  transition: opacity .3s, transform .3s cubic-bezier(.2, .8, .2, 1.4), background .2s;
}
.ap-totop.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.ap-totop:hover { background: var(--ap-orange); }
.ap-totop__arrow { width: 20px; height: 20px; transition: transform .2s; }
.ap-totop:hover .ap-totop__arrow { transform: translateY(-3px); }
.ap-totop__ring {
  position: absolute;
  inset: -3px;
  width: calc(100% + 6px);
  height: calc(100% + 6px);
  transform: rotate(-90deg);
  pointer-events: none;
}
.ap-totop__ring circle { fill: none; stroke-width: 3; stroke: rgba(247, 127, 0, .2); }
.ap-totop__ring circle + circle {
  stroke: var(--ap-orange);
  stroke-linecap: round;
  stroke-dasharray: 132;
  stroke-dashoffset: 132;
}

/* ---------- Recherche : icône animée au focus ---------- */
.ap-search__field > .ap-icon { transition: color .2s, transform .3s; }
.ap-search__field:focus-within > .ap-icon { color: var(--ap-orange); transform: scale(1.15) rotate(-8deg); }

/* ---------- Menu : soulignement animé ---------- */
#header .ap-menubar .top-menu a[data-depth="0"] { position: relative; }
#header .ap-menubar .top-menu a[data-depth="0"]::after {
  content: "";
  position: absolute;
  left: 1rem;
  right: 1rem;
  bottom: .5rem;
  height: 2px;
  background: #fff;
  transform: scaleX(0);
  transition: transform .25s ease;
}
#header .ap-menubar .top-menu a[data-depth="0"]:hover::after { transform: scaleX(1); }
.ap-menubar .top-menu .sub-menu { animation: ap-drop .25s ease; }
@keyframes ap-drop {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: none; }
}

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
  .ap-topbar__inner { justify-content: space-between; gap: .5rem; }
  .ap-ticker__item { padding: 0 1rem; font-size: .75rem; }
  .ap-topbar__phone { padding: .2rem .6rem; font-size: .75rem; }
  .ap-totop { right: 18px; bottom: 82px; width: 42px; height: 42px; }
}

/* ---------- Accessibilité : réduire les animations ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .ap-ticker__track { animation: none; }
  .ap-anim .js-ap-reveal,
  .ap-anim .js-ap-reveal * { opacity: 1 !important; transform: none !important; }
}
