/* =====================================================================
   THÈME AU POINT — v2 « marketplace »
   Chargé automatiquement par PrestaShop après theme.css
   Sommaire :
     1. Variables & base        6. Rayons produits & vignettes
     2. En-tête                 7. Pages catégorie / produit
     3. Carrousels              8. Pied de page
     4. Cartes de l'accueil     9. Mobile
     5. Blocs de l'accueil     10. Animations
   ===================================================================== */

/* ---------------------------------------------------------------------
   1. VARIABLES & BASE
   --------------------------------------------------------------------- */
:root {
  --ap-orange: #f68b1e;
  --ap-orange-dark: #e07e1b;
  --ap-orange-soft: #fef3e9;
  --ap-red: #be1d3e;
  --ap-red-soft: #fff3f0;
  --ap-cream: #fff2d6;
  --ap-green: #009e60;
  --ap-green-dark: #007a4a;
  --ap-green-soft: #e3f5ec;
  --ap-black: #1a1a1a;
  --ap-ink: #313133;
  --ap-muted: #75757a;
  --ap-line: #e1e1e3;
  --ap-bg: #f1f1f2;
  --ap-radius: 16px;
  --ap-radius-sm: 12px;
  --ap-shadow: 0 2px 8px rgba(0, 0, 0, .06);
  --ap-shadow-hover: 0 10px 28px rgba(0, 0, 0, .14);
  --ap-font: Ubuntu, Roboto, Arial, sans-serif;
  --ap-gap: 12px;
}

body {
  font-family: var(--ap-font);
  font-size: 14px;
  color: var(--ap-ink);
  background: var(--ap-bg);
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4 { font-family: var(--ap-font); }
a { color: var(--ap-ink); }
a:hover, a:focus { color: var(--ap-orange); }
#wrapper { background: var(--ap-bg); padding-top: 16px; }
#index #wrapper { padding-top: 12px; }
#index #wrapper .breadcrumb { display: none; }
.ap-icon { width: 1.25em; height: 1.25em; flex: none; vertical-align: middle; }

@media (min-width: 1200px) {
  .container { width: 100%; max-width: 1264px; }
}

/* Boutons PrestaShop */
.btn-primary,
.btn-primary:disabled,
.btn-primary.disabled {
  border-color: var(--ap-orange);
  border-radius: 8px;
  background: var(--ap-orange);
  color: #fff;
  font-weight: 500;
  text-transform: uppercase;
  box-shadow: 0 4px 12px rgba(246, 139, 30, .35);
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active {
  border-color: var(--ap-orange-dark) !important;
  background: var(--ap-orange-dark) !important;
  color: #fff;
}
.btn-secondary, .btn-tertiary { border-radius: 8px; }

.ap-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-height: 38px;
  padding: .5rem .75rem;
  border: 0;
  border-radius: 8px;
  font: 500 .8125rem/1 var(--ap-font);
  text-transform: uppercase;
  cursor: pointer;
  transition: background .15s, color .15s, box-shadow .15s, transform .15s;
}
.ap-btn .ap-icon { width: 18px; height: 18px; }
.ap-btn--cart { background: var(--ap-orange); color: #fff; box-shadow: 0 4px 12px rgba(246, 139, 30, .35); }
.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--view { background: var(--ap-black); color: #fff; box-shadow: none; }
.ap-btn--view:hover { background: var(--ap-orange); color: #fff; }
.ap-btn--quick { width: 38px; padding: 0; background: #fff; color: var(--ap-ink); box-shadow: 0 3px 10px rgba(0, 0, 0, .15); }
.ap-btn--quick:hover { background: var(--ap-black); color: #fff; }

/* ---------------------------------------------------------------------
   2. EN-TÊTE
   --------------------------------------------------------------------- */
#header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #fff;
  box-shadow: none;
  color: var(--ap-ink);
  transition: box-shadow .3s;
}
#header .header-banner { background: var(--ap-black); }

/* 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), #ffc46b, var(--ap-green));
  transform: scaleX(0);
  transform-origin: 0 50%;
}

/* Bandeau défilant */
.ap-topbar {
  max-height: 60px;
  overflow: hidden;
  background: var(--ap-black);
  color: #fff;
  font-size: 12px;
  transition: max-height .35s ease, opacity .25s ease;
}
.ap-topbar__inner { display: flex; align-items: center; gap: 1rem; min-height: 32px; }
.ap-topbar__left { display: none; }
.ap-ticker {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.ap-ticker__track { display: flex; width: max-content; animation: ap-ticker 40s linear infinite; }
.ap-ticker:hover .ap-ticker__track { animation-play-state: paused; }
.ap-ticker__item { display: inline-flex; align-items: center; gap: .4rem; padding: 0 1.75rem; font-weight: 500; white-space: nowrap; }
.ap-ticker__item .ap-icon { width: 13px; height: 13px; color: var(--ap-orange); }
.ap-topbar__phone {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .2rem .75rem;
  border-radius: 99px;
  background: var(--ap-orange);
  color: #fff !important;
  font-weight: 700;
  white-space: nowrap;
  animation: ap-breathe 2.8s ease-in-out infinite;
}
.ap-topbar__phone .ap-icon { width: 14px; height: 14px; }

/* Ligne principale */
#header .header-top.ap-header { padding: 12px 0; background: #fff; transition: padding .3s ease; }
.ap-header__inner { display: flex; align-items: center; gap: 24px; }
.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: 52px; transition: max-height .3s ease; }
.ap-header__search { flex: 1 1 auto; min-width: 0; max-width: 640px; margin: 0 auto; }
.ap-header__actions { display: flex; align-items: center; gap: 22px; flex: none; }
.ap-header__nav2 { display: flex; align-items: center; gap: 22px; }
.ap-header__nav2 > div { float: none !important; margin: 0 !important; }
.ap-header__help,
.ap-account__link,
.ap-cart__link {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--ap-ink);
  font-size: 15px;
  font-weight: 500;
  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-account { display: flex; align-items: center; gap: .5rem; }
.ap-account__label { max-width: 9rem; overflow: hidden; text-overflow: ellipsis; }
.ap-account__logout { font-size: 12px; color: var(--ap-muted); }
.ap-cart { height: auto !important; padding: 0 !important; background: transparent !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: 99px;
  background: var(--ap-orange);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 19px;
  text-align: center;
}
.ap-cart.inactive .ap-cart__count { background: var(--ap-muted); }

/* Recherche en pastille */
#header .ap-search, .ap-search { display: block; float: none; width: 100%; max-width: none; min-width: 0; margin: 0; }
.ap-search form { position: relative; display: flex; gap: 8px; margin: 0; }
.ap-search__field { position: relative; display: flex; flex: 1 1 auto; align-items: center; min-width: 0; }
.ap-search__field > .ap-icon { position: absolute; left: 16px; color: var(--ap-muted); pointer-events: none; transition: color .2s, transform .3s; }
#header .ap-search form input[type="text"],
.ap-search__field input[type="text"] {
  width: 100%;
  min-width: 0;
  height: 44px;
  padding: 0 2.5rem 0 2.9rem;
  border: 1px solid transparent;
  border-radius: 99px;
  outline: none;
  background: var(--ap-bg);
  color: var(--ap-ink);
  font-size: 15px;
  transition: background .2s, border-color .2s, box-shadow .2s;
}
#header .ap-search form input[type="text"]:focus {
  border-color: var(--ap-orange);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(246, 139, 30, .15);
}
.ap-search__field:focus-within > .ap-icon { color: var(--ap-orange); transform: scale(1.1) rotate(-8deg); }
.ap-search__field .clear { position: absolute; right: .8rem; display: none; color: var(--ap-muted); cursor: pointer; }
#header .ap-search form button[type="submit"].ap-search__btn,
.ap-search__btn {
  position: static;
  flex: none;
  height: 44px;
  padding: 0 22px;
  border: 0;
  border-radius: 99px;
  background: var(--ap-orange);
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  cursor: pointer;
  transform: none;
  box-shadow: 0 4px 12px rgba(246, 139, 30, .35);
  transition: background .2s, transform .2s;
}
#header .ap-search form button[type="submit"].ap-search__btn:hover { background: var(--ap-orange-dark); transform: translateY(-1px); }
.searchbar-autocomplete.ui-autocomplete { z-index: 1001; border: 0; border-radius: 12px; overflow: hidden; box-shadow: var(--ap-shadow-hover); }
.searchbar-autocomplete .ui-menu-item a { display: flex; align-items: center; gap: .6rem; padding: .45rem .7rem; }
.searchbar-autocomplete .autocomplete-thumbnail { width: 40px; height: 40px; border-radius: 6px; object-fit: cover; }

/* Barre de catégories avec icônes */
.ap-catbar {
  position: relative;
  max-height: 60px;
  border-top: 1px solid var(--ap-line);
  background: #fff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .04);
  transition: max-height .35s ease, opacity .25s ease;
}
.ap-catbar__inner { position: relative; display: flex; align-items: center; }
.ap-catbar__list {
  display: flex;
  gap: 4px;
  width: 100%;
  margin: 0;
  padding: 4px 0;
  overflow-x: auto;
  list-style: none;
  scroll-behavior: smooth;
  scrollbar-width: none;
}
.ap-catbar__list::-webkit-scrollbar { display: none; }
.ap-catbar__list > li { flex: none; }
.ap-catbar__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 8px;
  color: var(--ap-ink);
  font-size: 14px;
  white-space: nowrap;
  transition: background .2s, color .2s;
}
.ap-catbar__link .ap-icon { width: 20px; height: 20px; color: var(--ap-muted); transition: color .2s, transform .25s; }
.ap-catbar__link:hover { background: var(--ap-orange-soft); color: var(--ap-orange-dark); }
.ap-catbar__link:hover .ap-icon { color: var(--ap-orange); transform: translateY(-2px) scale(1.08); }
.ap-catbar__link--hot { color: var(--ap-red); font-weight: 700; }
.ap-catbar__link--hot .ap-icon { color: var(--ap-red); }
.ap-catbar__nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: var(--ap-ink);
  box-shadow: 0 2px 10px rgba(0, 0, 0, .18);
  cursor: pointer;
  transform: translateY(-50%);
}
.ap-catbar__nav[hidden] { display: none; }
.ap-catbar__nav--prev { left: 0; }
.ap-catbar__nav--next { right: 0; }
.ap-catbar__nav .ap-icon { width: 16px; height: 16px; }

/* Menu PrestaShop : seulement dans le menu mobile */
.ap-menubar { display: none; }

/* En-tête compact au défilement */
body.ap-scrolled #header { box-shadow: 0 8px 24px rgba(0, 0, 0, .1); }
body.ap-scrolled .ap-topbar { max-height: 0; opacity: 0; }
body.ap-scrolled #header .header-top.ap-header { padding: 8px 0; }
body.ap-scrolled .ap-header__logo img, body.ap-scrolled .ap-header__logo .logo { max-height: 40px; }
@media (min-width: 768px) {
  body.ap-scrolled .ap-catbar { max-height: 0; opacity: 0; overflow: hidden; border: 0; }
}

/* ---------------------------------------------------------------------
   3. CARROUSELS (générique : .ap-car)
   --------------------------------------------------------------------- */
.ap-car { --ap-per: 6; position: relative; }
.ap-car__viewport { overflow: hidden; touch-action: pan-y; }
.ap-car__track {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: var(--ap-gap);
  margin: 0 !important;
  transition: transform .6s cubic-bezier(.25, .8, .25, 1);
  will-change: transform;
}
.ap-car.is-dragging .ap-car__track { transition: none; }
.ap-car__item {
  flex: 0 0 calc((100% - (var(--ap-per) - 1) * var(--ap-gap)) / var(--ap-per));
  max-width: none;
  min-width: 0;
  padding: 0;
  user-select: none;
  -webkit-user-drag: none;
}
.ap-car__item img { -webkit-user-drag: none; }
.ap-car__nav {
  position: absolute;
  top: 50%;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: var(--ap-ink);
  box-shadow: 0 4px 14px rgba(0, 0, 0, .2);
  cursor: pointer;
  opacity: 0;
  transform: translateY(-50%) scale(.85);
  transition: opacity .25s, transform .25s, background .2s, color .2s;
}
.ap-car__nav[hidden] { display: none; }
.ap-car:hover .ap-car__nav, .ap-car:focus-within .ap-car__nav { opacity: 1; transform: translateY(-50%) scale(1); }
.ap-car__nav:hover { background: var(--ap-orange); color: #fff; }
.ap-car__nav--prev { left: -8px; }
.ap-car__nav--next { right: -8px; }
.ap-car__dots { display: flex; justify-content: center; gap: 6px; margin-top: 12px; }
.ap-car__dots button {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 99px;
  background: #c9c9cc;
  cursor: pointer;
  transition: width .3s, background .3s;
}
.ap-car__dots button[aria-current="true"] { width: 28px; background: var(--ap-orange); }

/* ---------------------------------------------------------------------
   4. CARTES DE L'ACCUEIL (.ap-card)
   --------------------------------------------------------------------- */
.ap-home { display: flex; flex-direction: column; gap: 16px; }
.ap-card {
  position: relative;
  overflow: hidden;
  border-radius: var(--ap-radius);
  background: #fff;
  --ap-title: var(--ap-ink);
  --ap-more-bg: var(--ap-orange-soft);
  --ap-more: var(--ap-orange-dark);
}
.ap-card > .ap-car,
.ap-card > .ap-pgrid,
.ap-card > .ap-services { margin: 0 16px 16px; }
.ap-card__head { display: flex; align-items: center; gap: 16px; padding: 16px 16px 12px; }
.ap-card__title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: var(--ap-title);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.15;
  text-transform: none;
}
.ap-card__title .ap-icon { width: 26px; height: 26px; color: #ffe066; }
.ap-card__sub { margin: 2px 0 0; color: var(--ap-title); font-size: 14px; opacity: .8; }
.ap-card__more {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  padding: 8px 20px;
  border-radius: 99px;
  background: var(--ap-more-bg);
  color: var(--ap-more);
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  transition: transform .2s, box-shadow .2s;
}
.ap-card__more .ap-icon { width: 18px; height: 18px; transition: transform .25s; }
.ap-card__more:hover { color: var(--ap-more); box-shadow: 0 4px 12px rgba(0, 0, 0, .15); transform: translateY(-1px); }
.ap-card__more:hover .ap-icon { transform: translateX(4px); }

.ap-card--white { background: #fff; }
.ap-card--peach { background: var(--ap-orange-soft); --ap-title: var(--ap-orange-dark); --ap-more-bg: #fff; }
.ap-card--rose { background: var(--ap-red-soft); --ap-title: var(--ap-red); --ap-more-bg: #fff; --ap-more: var(--ap-red); }
.ap-card--cream { background: var(--ap-cream); --ap-title: var(--ap-ink); --ap-more-bg: #fff; }
.ap-card--orange { background: var(--ap-orange); --ap-title: #fff; --ap-more-bg: #fff; --ap-more: var(--ap-orange-dark); }
.ap-card--flash { background: var(--ap-red); --ap-title: #fff; --ap-more-bg: #fff; --ap-more: var(--ap-red); }

/* Compte à rebours en pastille */
.ap-countdown {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 6px 14px;
  border-radius: 99px;
  background: #fff;
  color: var(--ap-red);
  font-size: 14px;
  font-weight: 500;
}
.ap-countdown .ap-icon { width: 18px; height: 18px; }
.ap-countdown strong { font-variant-numeric: tabular-nums; }
.ap-digit { display: inline-block; min-width: .6em; text-align: center; }

/* ---------------------------------------------------------------------
   5. BLOCS DE L'ACCUEIL
   --------------------------------------------------------------------- */
/* Grand carrousel : 3 visuels carrés */
.ap-hero .ap-car { --ap-per: 3; }
.ap-hero__item { display: block; overflow: hidden; border-radius: var(--ap-radius); background: #ddd; box-shadow: var(--ap-shadow); }
.ap-hero__item img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.ap-hero__item:hover img { transform: scale(1.04); }
.ap-hero .ap-car__nav--prev { left: 12px; }
.ap-hero .ap-car__nav--next { right: 12px; }

/* Tuiles des rayons */
.ap-tiles.ap-car__track { --ap-gap: 12px; }
.ap-card--peach .ap-car { --ap-per: 8; }
.ap-tile { display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--ap-ink); text-align: center; }
.ap-tile__img { display: block; width: 100%; overflow: hidden; border-radius: var(--ap-radius-sm); background: #fff; box-shadow: var(--ap-shadow); }
.ap-tile__img img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.ap-tile__name { font-size: 14px; font-weight: 500; line-height: 1.25; }
.ap-tile:hover { color: var(--ap-orange-dark); }
.ap-tile:hover .ap-tile__img { box-shadow: var(--ap-shadow-hover); }
.ap-tile:hover .ap-tile__img img { transform: scale(1.08); }

/* Services */
.ap-services { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.ap-service {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px;
  border-radius: var(--ap-radius-sm);
  background: var(--ap-orange-soft);
  color: var(--ap-ink);
  transition: transform .25s, box-shadow .25s;
}
a.ap-service:hover { color: var(--ap-ink); box-shadow: var(--ap-shadow-hover); transform: translateY(-3px); }
.ap-service__icon {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--ap-orange);
  color: #fff;
}
.ap-service__icon .ap-icon { width: 26px; height: 26px; }
.ap-service__text strong { display: block; font-size: 15px; font-weight: 700; }
.ap-service__text small { display: block; margin-top: 2px; color: var(--ap-muted); font-size: 13px; }
.ap-service--green { background: var(--ap-green-soft); }
.ap-service--green .ap-service__icon { background: var(--ap-green); }
.ap-service--black { background: #ececee; }
.ap-service--black .ap-service__icon { background: var(--ap-black); }
.ap-service--red { background: var(--ap-red-soft); }
.ap-service--red .ap-service__icon { background: var(--ap-red); }

/* Bannières larges */
.ap-banners .ap-car { --ap-per: 1; }
.ap-banner { position: relative; display: block; overflow: hidden; border-radius: var(--ap-radius); background: #222; }
.ap-banner img { display: block; width: 100%; height: auto; aspect-ratio: 1232 / 400; object-fit: cover; transition: transform 6s ease-out; }
.ap-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(0, 0, 0, .72) 0%, rgba(0, 0, 0, .35) 42%, transparent 70%);
}
.ap-banner__text {
  position: absolute;
  top: 50%;
  left: 48px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  max-width: 46%;
  color: #fff;
  transform: translateY(-50%);
}
.ap-banner__text small {
  padding: 4px 12px;
  border-radius: 99px;
  background: var(--ap-orange);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.ap-banner__text strong { font-size: 40px; font-weight: 700; line-height: 1.05; text-shadow: 0 2px 12px rgba(0, 0, 0, .35); }
.ap-banner__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  padding: 10px 22px;
  border-radius: 99px;
  background: #fff;
  color: var(--ap-ink);
  font-weight: 500;
  transition: background .2s, color .2s, gap .2s;
}
.ap-banner__btn .ap-icon { width: 16px; height: 16px; }
.ap-banner:hover .ap-banner__btn { gap: 12px; background: var(--ap-orange); color: #fff; }
.ap-banners .ap-car__nav--prev { left: 12px; }
.ap-banners .ap-car__nav--next { right: 12px; }

/* Affiches (entières) */
.ap-card--rose .ap-car { --ap-per: 5; }
.ap-poster { display: block; overflow: hidden; border-radius: var(--ap-radius-sm); background: #fff; box-shadow: var(--ap-shadow); }
.ap-poster img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; }

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

/* ---------------------------------------------------------------------
   6. RAYONS PRODUITS & VIGNETTES
   --------------------------------------------------------------------- */
.ap-prow .ap-car { --ap-per: 6; }
.ap-pgrid { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin: 0; }
.featured-products .ap-car__track.products { gap: var(--ap-gap); }
.featured-products .ap-pgrid.products { gap: 8px; }
.ap-pgrid > .ap-pgrid__item { width: auto; max-width: none; min-width: 0; padding: 0; }
.ap-pgrid__item .product-miniature, .ap-car__item .product-miniature { min-width: 0; }

/* Vignette produit (accueil, catégories, recherche…) */
.product-miniature { display: block; }
.product-miniature .product, .product-miniature.product { margin: 0; }
#products .products, .featured-products .products, .product-accessories .products { gap: 8px 0; }
.product-miniature .thumbnail-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
  overflow: hidden;
  border-radius: var(--ap-radius-sm);
  background: #fff;
  box-shadow: none;
  transition: box-shadow .25s, transform .25s;
}
.product-miniature .thumbnail-container:hover,
.product-miniature .thumbnail-container:focus-within { box-shadow: var(--ap-shadow-hover); transform: translateY(-4px); }
.ap-card--white .product-miniature .thumbnail-container { border: 1px solid #f0f0f1; }
.product-miniature .thumbnail-top { position: relative; overflow: hidden; background: #f7f7f7; }
.product-miniature .thumbnail-container .product-thumbnail img {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
.product-miniature .thumbnail-container:hover .product-thumbnail img { transform: scale(1.08); }
.product-miniature .highlighted-informations { display: none; }
.product-miniature .product-description {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 4px;
  padding: 8px 8px 12px;
  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.6em;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--ap-ink);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.3;
  text-align: left;
}
.product-miniature .product-title a:hover { color: var(--ap-orange-dark); }
.product-miniature .product-price-and-shipping { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; text-align: left; }
.product-miniature .product-price-and-shipping .price { order: -1; width: 100%; color: var(--ap-ink); font-size: 18px; font-weight: 500; }
.product-miniature .regular-price { color: var(--ap-muted); font-size: 12px; }
.product-miniature .product-price-and-shipping .discount-product {
  display: inline-block;
  padding: 1px 6px;
  border-radius: 4px;
  background: var(--ap-green);
  color: #fff;
  font-size: 12px;
  font-weight: 500;
}
.product-miniature .comments_note { text-align: left; }

/* Badges */
.product-flags li.product-flag { margin-top: 8px; padding: 2px 8px; border-radius: 0 6px 6px 0; background: var(--ap-green); font-size: 11px; font-weight: 700; }
.product-miniature .product-flags li.product-flag { min-width: 0; min-height: 0; }
.product-miniature .product-flags li.product-flag.on-sale,
.product-miniature .product-flags li.product-flag.discount,
.product-miniature .product-flags li.product-flag.discount-percentage,
.product-miniature .product-flags li.product-flag.discount-amount { display: none; }
.product-flags li.product-flag.out_of_stock { background: var(--ap-black); }

/* Stock (ventes flash) */
.ap-stock { display: flex; flex-direction: column; gap: 4px; margin-top: 2px; }
.ap-stock__label { color: var(--ap-ink); font-size: 12px; }
.ap-stock__bar { display: block; height: 6px; overflow: hidden; border-radius: 99px; background: #e9e9eb; }
.ap-stock__bar i {
  display: block;
  width: clamp(8%, calc(var(--ap-q, 10) * 4%), 100%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--ap-orange), var(--ap-red));
  transform-origin: 0 50%;
}

/* Barre d'actions sur la photo */
.ap-miniature-cart { position: absolute; left: 8px; right: 8px; bottom: 8px; z-index: 3; display: flex; gap: 6px; margin: 0; padding: 0; }
.ap-miniature-cart__form { flex: 1 1 auto; margin: 0; }
.ap-miniature-cart .ap-btn--cart, .ap-miniature-cart .ap-btn--view { width: 100%; }
.ap-miniature-variants { padding: 6px 8px 0; }
.ap-miniature-variants .variant-links { position: static; min-height: 0; padding: 0; background: none; text-align: left; }
@media (hover: hover) and (min-width: 768px) {
  .ap-miniature-cart { transform: translateY(calc(100% + 12px)); transition: transform .35s cubic-bezier(.2, .8, .2, 1); }
  .product-miniature .thumbnail-container:hover .ap-miniature-cart,
  .product-miniature .thumbnail-container:focus-within .ap-miniature-cart { transform: none; }
}
@media (hover: none), (max-width: 767px) {
  .ap-miniature-cart { left: auto; }
  .ap-miniature-cart__form { flex: none; }
  .ap-miniature-cart .ap-btn--cart, .ap-miniature-cart .ap-btn--view { width: 38px; height: 38px; min-height: 38px; padding: 0; border-radius: 50%; }
  .ap-miniature-cart .ap-btn__label, .ap-btn--quick { display: none; }
}

/* ---------------------------------------------------------------------
   7. PAGES CATÉGORIE / PRODUIT / PANIER
   --------------------------------------------------------------------- */
#left-column > div,
#left-column .block-categories,
#search_filters_wrapper #search_filters,
#js-product-list-top,
.block-category,
#product .product-container,
.tabs,
.card,
#main .page-content.card,
.cart-grid-body .card,
.cart-summary {
  border: 0;
  border-radius: var(--ap-radius);
  background: #fff;
  box-shadow: none;
}
#left-column .block-categories .category-top-menu > li > a,
#search_filters .h6,
#search_filters .facet .facet-title { color: var(--ap-ink); font-size: 16px; font-weight: 700; text-transform: none; }
#left-column .block-categories a:hover { color: var(--ap-orange); }
.block-category { min-height: 0; margin-bottom: 16px; padding: 20px; }
.block-category h1 { font-size: 28px; font-weight: 700; text-transform: none; }
#js-product-list-top { margin: 0 0 12px; padding: 10px 16px; }
#products .products { margin: 0 -4px; }
#products .products > .js-product { padding: 0 4px; }
@media (min-width: 1200px) {
  #products .products > .js-product { flex: 0 0 25%; width: 25%; max-width: 25%; }
}
.custom-checkbox input[type="checkbox"] + span .checkbox-checked { color: var(--ap-orange); }
.pagination .current a { color: var(--ap-orange); }
#product .product-container { padding: 20px; }
#product h1.h1 { font-size: 24px; font-weight: 500; text-transform: none; }
.product-prices .current-price-value { color: var(--ap-ink); font-size: 28px; font-weight: 700; }
.product-prices .discount { border-radius: 4px; background: var(--ap-green); }
.product-add-to-cart .add-to-cart { min-height: 48px; font-size: 16px; }
.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: 8px; }
.product-accessories .products > .js-product,
.featured-products .products > .js-product:not(.ap-car__item):not(.ap-pgrid__item) { width: calc((100% - 3 * 8px) / 4); }
#blockcart-modal .modal-content { overflow: hidden; border-radius: var(--ap-radius); }
#blockcart-modal .modal-header { background: var(--ap-green); }
#blockcart-modal .modal-title, #blockcart-modal .modal-title i { color: #fff; }

/* ---------------------------------------------------------------------
   8. PIED DE PAGE
   --------------------------------------------------------------------- */
#footer { padding-top: 24px; background: var(--ap-bg); }
.ap-footer-top { background: #313133; color: #fff; }
.ap-footer-top__inner { display: flex; flex-wrap: wrap; align-items: center; padding: 20px 0; }
.ap-footer-top__inner::before, .ap-footer-top__inner::after { display: none; }
.ap-footer-top .block_newsletter { flex: 1 1 0; width: auto; max-width: none; margin: 0; padding: 0; border: 0; background: transparent; color: #fff; }
.ap-footer-top .block_newsletter #block-newsletter-label,
.ap-footer-top .block_newsletter p.col-md-5 { color: #fff; font-size: 18px; font-weight: 700; line-height: 1.2; text-transform: none; }
.ap-footer-top .block_newsletter p:not(.alert):not(.col-md-5) { color: #bdbdc0; font-size: 12px; }
.ap-footer-top .block_newsletter form input[type="email"] { height: 44px; padding: 0 18px; border: 0; border-radius: 99px 0 0 99px; }
.ap-footer-top .block_newsletter form .btn,
.ap-footer-top .block_newsletter form input[type="submit"] { height: 44px; border-radius: 0 99px 99px 0; background: var(--ap-orange); color: #fff; box-shadow: none; }
.ap-footer-top .block-social { flex: 0 0 auto; width: auto; max-width: none; text-align: right; }
.ap-footer-top .block-social ul { margin: 0; }
.ap-footer-top .block-social ul li { border-radius: 50%; background-color: rgba(255, 255, 255, .12); transition: background-color .2s, transform .2s; }
.ap-footer-top .block-social ul li:hover { background-color: var(--ap-orange); transform: translateY(-3px); }

.ap-footer.footer-container { margin: 0; padding-top: 28px; background: #242426; 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-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.ap-footer li { margin-bottom: 6px; }
.ap-footer a, .ap-footer li a, .ap-footer .block-contact, .ap-footer .block-contact a { color: #cfcfd2; font-size: 14px; }
.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__bottom { margin-top: 20px; border-top: 1px solid rgba(255, 255, 255, .1); background: #19191a; }
.ap-footer__bottom-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding-top: 14px; padding-bottom: 14px; }
.ap-footer__bottom p { margin: 0; color: #9a9a9e; font-size: 13px; }
.ap-footer__bottom a { color: #fff; font-size: 13px; }
.ap-footer__contact { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 20px; }
.ap-footer__contact a { display: inline-flex; align-items: center; gap: 6px; }
.ap-footer__contact .ap-icon { width: 16px; height: 16px; color: var(--ap-orange); }

/* Boutons flottants */
.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; }
.ap-whatsapp-float::before, .ap-whatsapp-float::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 2px solid var(--ap-green);
  border-radius: 50%;
  pointer-events: none;
  animation: ap-wave 2.4s ease-out infinite;
}
.ap-whatsapp-float::after { animation-delay: 1.2s; }
.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;
  pointer-events: none;
  transform: translateY(20px) scale(.8);
  transition: opacity .3s, transform .3s cubic-bezier(.2, .8, .2, 1.4), background .2s;
}
.ap-totop.is-visible { opacity: 1; pointer-events: auto; transform: none; }
.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); pointer-events: none; transform: rotate(-90deg); }
.ap-totop__ring circle { fill: none; stroke: rgba(246, 139, 30, .2); stroke-width: 3; }
.ap-totop__ring circle + circle { stroke: var(--ap-orange); stroke-dasharray: 132; stroke-dashoffset: 132; stroke-linecap: round; }

/* ---------------------------------------------------------------------
   9. TABLETTE & 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: 16px; }
.ap-mobile-menu { border-top: 3px solid var(--ap-orange); background: #fff; }
.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: 14px; }
.ap-mobile-menu__cats a:last-child:nth-child(odd) { grid-column: span 2; }
.ap-mobile-menu__cats .ap-icon { width: 20px; height: 20px; color: var(--ap-orange); }

@media (max-width: 1199px) {
  .ap-prow .ap-car { --ap-per: 5; }
  .ap-pgrid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .ap-card--peach .ap-car { --ap-per: 6.5; }
  .ap-card--rose .ap-car { --ap-per: 4; }
}
@media (max-width: 991px) {
  .ap-hero .ap-car { --ap-per: 2; }
  .ap-prow .ap-car { --ap-per: 4; }
  .ap-pgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ap-card--peach .ap-car { --ap-per: 5.5; }
  .ap-card--rose .ap-car { --ap-per: 3.3; }
  .ap-services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ap-header__help span { display: none; }
  .ap-header__inner { gap: 16px; }
  .ap-banner__text strong { font-size: 30px; }
  .product-accessories .products > .js-product,
  .featured-products .products > .js-product:not(.ap-car__item):not(.ap-pgrid__item) { width: calc((100% - 2 * 8px) / 3); }
}
@media (max-width: 767px) {
  body { font-size: 13px; }
  .ap-topbar__inner { justify-content: space-between; gap: 8px; }
  .ap-ticker__item { padding: 0 1rem; font-size: 11px; }
  .ap-topbar__phone { padding: .15rem .6rem; font-size: 11px; }
  #header .header-top.ap-header { padding: 8px 0 10px; }
  .ap-header__inner { display: grid; grid-template-columns: auto 1fr auto; grid-template-areas: "burger logo actions" "search search search"; gap: 8px 12px; }
  .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 { width: auto; max-height: 38px; }
  #_desktop_logo { display: none; }
  .ap-header__search { grid-area: search; max-width: none; }
  .ap-header__actions { grid-area: actions; gap: 12px; }
  .ap-account__label { display: none; }
  #header .ap-search form button[type="submit"].ap-search__btn { padding: 0 16px; font-size: 0; }
  #header .ap-search form button[type="submit"].ap-search__btn::before { content: "OK"; font-size: 14px; }
  .ap-catbar__nav { display: none; }
  .ap-catbar__link { padding: 6px 10px; font-size: 13px; }

  #wrapper > .container { padding-left: 10px; padding-right: 10px; }
  .ap-home { gap: 12px; }
  .ap-hero .ap-car { --ap-per: 1.15; --ap-gap: 10px; }
  .ap-car__nav { display: none; }
  .ap-card { border-radius: 12px; }
  .ap-card > .ap-car, .ap-card > .ap-pgrid, .ap-card > .ap-services { margin: 0 10px 12px; }
  .ap-card__head { flex-wrap: wrap; gap: 8px 12px; padding: 12px 12px 10px; }
  .ap-card__title { font-size: 20px; }
  .ap-card__title .ap-icon { width: 20px; height: 20px; }
  .ap-card__more { padding: 6px 14px; font-size: 13px; }
  .ap-countdown { order: 3; padding: 4px 12px; font-size: 13px; }
  .ap-prow .ap-car { --ap-per: 2.3; --ap-gap: 8px; }
  .ap-pgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ap-card--peach .ap-car { --ap-per: 3.4; --ap-gap: 10px; }
  .ap-tile__name { font-size: 12px; }
  .ap-card--rose .ap-car { --ap-per: 2.2; --ap-gap: 10px; }
  .ap-services { grid-template-columns: 1fr 1fr; gap: 8px; }
  .ap-service { flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px; }
  .ap-service__icon { width: 40px; height: 40px; }
  .ap-service__icon .ap-icon { width: 20px; height: 20px; }
  .ap-service__text strong { font-size: 13px; }
  .ap-service__text small { font-size: 11px; }
  .ap-banner img { aspect-ratio: 16 / 9; }
  .ap-banner::before { background: linear-gradient(0deg, rgba(0, 0, 0, .75) 0%, rgba(0, 0, 0, .2) 55%, transparent 80%); }
  .ap-banner__text { top: auto; bottom: 16px; left: 16px; max-width: 80%; gap: 6px; transform: none; }
  .ap-banner__text strong { font-size: 22px; }
  .ap-banner__btn { padding: 7px 16px; font-size: 13px; }
  .product-miniature .product-price-and-shipping .price { font-size: 16px; }
  .ap-footer-top .block-social { width: 100%; margin-top: 12px; text-align: center; }
  .ap-footer__bottom-inner { justify-content: center; text-align: center; }
  .ap-totop { right: 18px; bottom: 82px; width: 42px; height: 42px; }
  .product-accessories .products > .js-product,
  .featured-products .products > .js-product:not(.ap-car__item):not(.ap-pgrid__item) { width: calc((100% - 8px) / 2); }
  #products .products > .js-product { width: 50%; }
}

/* ---------------------------------------------------------------------
   10. ANIMATIONS
   --------------------------------------------------------------------- */
@keyframes ap-ticker { to { transform: translateX(-50%); } }
@keyframes ap-breathe {
  0%, 100% { box-shadow: 0 0 0 0 rgba(246, 139, 30, .55); }
  50% { box-shadow: 0 0 0 7px rgba(246, 139, 30, 0); }
}
@keyframes ap-wave { from { transform: scale(1); opacity: .8; } to { transform: scale(1.8); opacity: 0; } }

/* Apparition au défilement (activée par le script dans <head>) */
.ap-anim .js-ap-reveal { opacity: 0; transform: translateY(30px); 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; }
.ap-anim .js-ap-reveal .ap-car__item,
.ap-anim .js-ap-reveal .ap-pgrid__item,
.ap-anim .js-ap-reveal .ap-service {
  opacity: 0;
  transform: translateY(24px) scale(.97);
  transition: opacity .5s ease, transform .5s cubic-bezier(.2, .8, .2, 1.15);
  transition-delay: calc(var(--ap-i, 0) * 60ms + 120ms);
}
.ap-anim .js-ap-reveal.is-visible .ap-car__item,
.ap-anim .js-ap-reveal.is-visible .ap-pgrid__item,
.ap-anim .js-ap-reveal.is-visible .ap-service { opacity: 1; transform: none; }
.ap-anim .js-ap-reveal.is-done .ap-car__item,
.ap-anim .js-ap-reveal.is-done .ap-pgrid__item,
.ap-anim .js-ap-reveal.is-done .ap-service { transition-delay: 0s; }

/* Reflet qui traverse les titres de cartes colorées */
.ap-card--flash .ap-card__head, .ap-card--orange .ap-card__head { position: relative; overflow: hidden; }
.ap-card--flash .ap-card__head::after,
.ap-card--orange .ap-card__head::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -40%;
  width: 30%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .28), transparent);
  pointer-events: none;
  transform: skewX(-20deg);
}
.is-visible.ap-card--orange .ap-card__head::after { animation: ap-sweep 1.4s .4s ease both; }
.ap-card--flash .ap-card__head::after { animation: ap-sweep 3s 1s ease-in-out infinite; }
@keyframes ap-sweep { to { left: 130%; } }

/* Ventes flash : fond vivant, éclair, chiffres qui basculent, jauge */
.ap-card--flash { background: linear-gradient(120deg, #a3122f, var(--ap-red) 40%, #d12a4c 60%, var(--ap-red)); background-size: 250% 100%; animation: ap-gradient 8s ease infinite; }
@keyframes ap-gradient { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
.ap-card--flash .ap-card__title .ap-icon { transform-origin: 50% 60%; animation: ap-bolt 1.6s ease-in-out infinite; }
@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-countdown .ap-icon { animation: ap-tick 1s steps(2) infinite; }
@keyframes ap-tick { 50% { transform: rotate(8deg); } }
.ap-digit.is-changed { animation: ap-flip .45s ease; }
@keyframes ap-flip { from { transform: translateY(-60%); opacity: 0; } to { transform: none; opacity: 1; } }
.is-visible .ap-stock__bar i { animation: ap-fill 1.2s .3s cubic-bezier(.2, .8, .2, 1) both; }
@keyframes ap-fill { from { transform: scaleX(0); } }

/* Reflet sur les photos produit au survol */
.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, .5), transparent);
  pointer-events: none;
  transform: skewX(-22deg);
}
.product-miniature .thumbnail-container:hover .thumbnail-top::after { animation: ap-shine .8s ease; }
@keyframes ap-shine { to { left: 130%; } }
.product-miniature .product-flags li.product-flag { animation: ap-pop .5s cubic-bezier(.2, .8, .2, 1.4) both; }
@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); }

/* Carrousels : zoom lent sur la bannière active */
.ap-banner.is-active img { transform: scale(1.06); }

/* Vague au clic */
.ap-btn, .ap-search__btn, .btn-primary, .ap-card__more, .ap-banner__btn { position: relative; overflow: hidden; }
.ap-ripple { position: absolute; border-radius: 50%; background: rgba(255, 255, 255, .55); pointer-events: none; transform: scale(0); animation: ap-ripple .6s ease-out forwards; }
@keyframes ap-ripple { to { transform: scale(4); opacity: 0; } }

/* Relief 3D (affiches) */
.js-ap-tilt { 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 { box-shadow: var(--ap-shadow-hover); transition: transform .08s linear, box-shadow .3s; }
.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;
  pointer-events: none;
  transition: opacity .3s;
}
.ap-poster { position: relative; }
.js-ap-tilt.is-tilting::after { opacity: 1; }

/* Panier : rebond après un ajout */
.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 { 25% { transform: scale(1.25) rotate(-10deg); } 50% { transform: scale(.95) rotate(6deg); } }
@keyframes ap-count { 0%, 100% { background: var(--ap-orange); } 40% { background: var(--ap-green); transform: scale(1.5); } }

/* Services : icônes qui flottent */
.ap-service__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(-4px); } }

/* 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; }
}
