/* Appareil Minceur : système visuel des maquettes (source du thème, assemblé par theme/assemble.py).
   Boutique bien-être : blanc et rose poudré, encre vert-noir, sauge, orange réservé à l'achat. */

@font-face {
  font-family: "Figtree";
  src: url("../police/figtree-latin-wght.woff2") format("woff2-variations");
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Figtree";
  src: url("../police/figtree-latin-wght-italic.woff2") format("woff2-variations");
  font-weight: 300 900;
  font-style: italic;
  font-display: swap;
}

:root {
  --apm-blanc: #ffffff;
  --apm-poudre: #f8ebe8;
  --apm-poudre-2: #f3dfda;
  --apm-poudre-3: #ecd0c9;
  --apm-sauge: #8fae9b;
  --apm-sauge-pale: #e8f0ea;
  --apm-sauge-fonce: #3c5e4d;
  --apm-encre: #22302a;
  --apm-encre-2: #3a4741;
  --apm-gris: #5c6862;
  --apm-gris-2: #8a948f;
  --apm-trait: #ebe3e0;
  --apm-trait-2: #ddd3cf;
  --apm-achat: #ff9900;
  --apm-achat-2: #f08800;
  --apm-alerte: #b24a2e;
  --apm-alerte-pale: #fbede8;
  --apm-ombre: 0 18px 40px -22px rgba(34, 48, 42, .32), 0 2px 6px rgba(34, 48, 42, .06);
  --apm-ombre-2: 0 30px 60px -30px rgba(34, 48, 42, .42), 0 6px 14px rgba(34, 48, 42, .07);
  --apm-r: 20px;
  --apm-r-2: 28px;
  --apm-large: 1240px;
  --apm-gouttiere: clamp(16px, 4vw, 40px);
  --apm-police: "Figtree", system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--apm-blanc);
  color: var(--apm-encre);
  font: 400 17px/1.6 var(--apm-police);
  font-feature-settings: "kern", "liga";
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; height: auto; }
a { color: var(--apm-sauge-fonce); text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { color: var(--apm-encre); }
button { font: inherit; color: inherit; cursor: pointer; }
::selection { background: var(--apm-poudre-3); color: var(--apm-encre); }
:focus-visible { outline: 2px solid var(--apm-sauge-fonce); outline-offset: 3px; border-radius: 6px; }
h1, h2, h3, h4 { margin: 0; line-height: 1.12; letter-spacing: -.02em; font-weight: 750; text-wrap: balance; }
p { margin: 0; }
.apm-num { font-variant-numeric: tabular-nums lining-nums; }
.apm-visu-cache { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.apm-cadre { width: min(100% - 2 * var(--apm-gouttiere), var(--apm-large)); margin-inline: auto; }
.apm-section { padding-block: clamp(56px, 8vw, 104px); }
.apm-section--poudre { background: var(--apm-poudre); }
.apm-section--sauge { background: var(--apm-sauge-pale); }
.apm-section--encre { background: var(--apm-encre); color: #f4efec; }
.apm-tete-section { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: clamp(24px, 4vw, 40px); }
.apm-tete-section h2 { font-size: clamp(28px, 3.6vw, 44px); }
.apm-tete-section p { color: var(--apm-gris); max-width: 52ch; margin-top: 10px; }
.apm-lien-fort { font-weight: 650; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; }
.apm-lien-fort svg { transition: transform .25s cubic-bezier(.16, 1, .3, 1); }
.apm-lien-fort:hover svg { transform: translateX(3px); }

/* ---------- pictogrammes ---------- */
.apm-ico { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.apm-ico--s { width: 16px; height: 16px; }
.apm-ico--l { width: 26px; height: 26px; }

/* ---------- boutons ---------- */
.apm-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 26px; border-radius: 999px; border: 1.5px solid transparent;
  font-weight: 650; font-size: 16px; text-decoration: none; white-space: nowrap;
  transition: transform .2s cubic-bezier(.16, 1, .3, 1), box-shadow .2s, background-color .2s, color .2s;
}
.apm-btn:active { transform: translateY(1px); }
.apm-btn--encre { background: var(--apm-encre); color: #fff; }
.apm-btn--encre:hover { background: var(--apm-sauge-fonce); color: #fff; }
.apm-btn--trait { border-color: var(--apm-encre); color: var(--apm-encre); background: transparent; }
.apm-btn--trait:hover { background: var(--apm-encre); color: #fff; }
.apm-btn--achat {
  background: var(--apm-achat); color: var(--apm-encre);
  box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .12), 0 10px 22px -12px rgba(240, 136, 0, .8);
}
.apm-btn--achat:hover { background: var(--apm-achat-2); color: var(--apm-encre); transform: translateY(-1px); }
.apm-btn--plein { width: 100%; }
.apm-btn--petit { min-height: 42px; padding: 0 18px; font-size: 15px; }

/* ---------- pastilles ---------- */
.apm-pastille {
  display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px;
  background: var(--apm-poudre); color: var(--apm-encre-2); font-size: 13px; font-weight: 600; line-height: 1.3;
}
.apm-pastille--sauge { background: var(--apm-sauge-pale); color: var(--apm-sauge-fonce); }
.apm-pastille--blanc { background: #fff; box-shadow: 0 1px 0 var(--apm-trait-2); }
.apm-note {
  display: inline-grid; place-items: center; min-width: 46px; height: 46px; padding: 0 6px; border-radius: 999px;
  background: var(--apm-encre); color: #fff; font-weight: 750; font-size: 16px; letter-spacing: -.01em;
}
.apm-note--s { min-width: 38px; height: 38px; font-size: 14px; }

/* ---------- bandeau du haut ---------- */
.apm-bandeau { background: var(--apm-poudre); font-size: 13.5px; color: var(--apm-encre-2); }
.apm-bandeau .apm-cadre { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; }
.apm-bandeau p { display: flex; align-items: center; gap: 8px; }
.apm-bandeau nav { display: flex; gap: 22px; }
.apm-bandeau a { color: var(--apm-encre-2); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.apm-bandeau a:hover { color: var(--apm-encre); text-decoration: underline; }

/* ---------- en-tête ---------- */
.apm-entete { position: sticky; top: 0; z-index: 40; background: rgba(255, 255, 255, .96); border-bottom: 1px solid var(--apm-trait); }
.apm-entete__in { display: flex; align-items: center; gap: 20px; min-height: 74px; }
.apm-logo { display: inline-flex; align-items: center; gap: 11px; text-decoration: none; color: var(--apm-encre); flex: none; }
.apm-logo__signe { width: 38px; height: 38px; }
.apm-logo__mot { font-size: 21px; font-weight: 650; letter-spacing: -.035em; line-height: 1; }
.apm-logo__mot b { font-weight: 800; color: var(--apm-sauge-fonce); }
.apm-nav { display: flex; align-items: center; gap: 4px; margin-inline: auto; }
.apm-nav__btn {
  display: inline-flex; align-items: center; gap: 5px; padding: 10px 11px; border: 0; background: none; border-radius: 999px;
  font-weight: 600; font-size: 15.5px; color: var(--apm-encre); text-decoration: none; white-space: nowrap;
}
.apm-nav__btn:hover, .apm-nav__btn[aria-expanded="true"] { background: var(--apm-poudre); color: var(--apm-encre); }
.apm-nav__btn svg { transition: transform .25s; }
.apm-nav__btn[aria-expanded="true"] svg { transform: rotate(180deg); }
.apm-outils { display: flex; align-items: center; gap: 10px; flex: none; }
.apm-recherche { position: relative; }
.apm-recherche input {
  width: clamp(150px, 13vw, 230px); height: 44px; border-radius: 999px; border: 1px solid var(--apm-trait-2); background: #fbf8f7;
  padding: 0 16px 0 42px; font: inherit; font-size: 15px; color: var(--apm-encre);
}
.apm-recherche input::placeholder { color: var(--apm-gris); }
.apm-recherche input:focus { outline: none; border-color: var(--apm-sauge-fonce); background: #fff; box-shadow: 0 0 0 3px var(--apm-sauge-pale); }
.apm-recherche svg { position: absolute; left: 15px; top: 50%; translate: 0 -50%; color: var(--apm-gris); }
.apm-calc {
  display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 16px; border-radius: 999px;
  background: var(--apm-sauge-pale); color: var(--apm-sauge-fonce); font-weight: 650; font-size: 15px; text-decoration: none; white-space: nowrap;
}
.apm-calc:hover, .apm-calc:focus-visible, .apm-calc[aria-current="page"] { background: var(--apm-sauge-fonce); color: #fff; }
.apm-burger { display: none; width: 44px; height: 44px; border-radius: 999px; border: 1px solid var(--apm-trait-2); background: #fff; place-items: center; }

/* méga-menu */
.apm-mega {
  position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-top: 1px solid var(--apm-trait);
  box-shadow: 0 40px 60px -40px rgba(34, 48, 42, .35); padding: 32px 0 36px; overflow: hidden;
  opacity: 0; visibility: hidden; translate: 0 -6px; transition: opacity .22s, translate .3s cubic-bezier(.16, 1, .3, 1), visibility 0s .22s;
}
.apm-mega.is-ouvert { opacity: 1; visibility: visible; translate: 0 0; transition-delay: 0s; }
.apm-mega__grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.25fr); gap: 32px; }
.apm-mega__titre { font-size: 13px; font-weight: 650; color: var(--apm-gris); margin-bottom: 12px; }
.apm-mega ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.apm-mega li a { display: flex; align-items: center; gap: 12px; padding: 8px 10px; margin-inline: -10px; border-radius: 12px; color: var(--apm-encre); text-decoration: none; font-weight: 550; }
.apm-mega li a:hover { background: var(--apm-poudre); }
.apm-mega li img { width: 40px; height: 40px; object-fit: contain; background: var(--apm-poudre); border-radius: 10px; padding: 4px; mix-blend-mode: multiply; }
.apm-mega__une {
  display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 16px; align-items: center; padding: 18px;
  border-radius: var(--apm-r); background: var(--apm-poudre); text-decoration: none; color: var(--apm-encre);
}
.apm-mega__une img { width: 110px; height: 110px; object-fit: contain; }
.apm-mega__une strong { display: block; font-size: 17px; line-height: 1.25; margin: 6px 0 4px; }
.apm-mega__une span { color: var(--apm-gris); font-size: 14px; }

/* tiroir mobile */
.apm-tiroir { position: fixed; inset: 0; z-index: 60; display: none; }
.apm-tiroir.is-ouvert { display: block; }
.apm-tiroir__voile { position: absolute; inset: 0; background: rgba(34, 48, 42, .45); }
.apm-tiroir__panneau {
  position: absolute; inset: 0 0 0 auto; width: min(420px, 100%); background: #fff; overflow-y: auto; padding: 18px 20px 40px;
  animation: apm-glisse .35s cubic-bezier(.16, 1, .3, 1);
}
@keyframes apm-glisse { from { translate: 30px 0; opacity: 0; } }
.apm-tiroir__tete { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.apm-tiroir details { border-bottom: 1px solid var(--apm-trait); }
.apm-tiroir summary { list-style: none; display: flex; justify-content: space-between; align-items: center; padding: 16px 2px; font-weight: 650; font-size: 18px; cursor: pointer; }
.apm-tiroir summary::-webkit-details-marker { display: none; }
.apm-tiroir details[open] summary svg { transform: rotate(180deg); }
.apm-tiroir ul { list-style: none; margin: 0 0 14px; padding: 0; }
.apm-tiroir li a { display: block; padding: 9px 2px; color: var(--apm-encre); text-decoration: none; }
.apm-tiroir .apm-recherche input { width: 100%; }

/* ---------- accueil : hero ---------- */
.apm-hero { padding: clamp(32px, 5vw, 64px) 0 0; background: #fff; }
.apm-hero + .apm-section { padding-top: clamp(48px, 6vw, 80px); }
.apm-lettre-section { padding-top: 0; }
.apm-hero__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.apm-hero h1 { font-size: clamp(38px, 4.6vw, 62px); letter-spacing: -.035em; line-height: 1.04; font-weight: 780; }
.apm-hero h1 em { font-style: normal; color: var(--apm-sauge-fonce); }
.apm-hero__chapo { font-size: clamp(17px, 1.5vw, 20px); color: var(--apm-encre-2); margin: 22px 0 30px; max-width: 46ch; }
.apm-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.apm-signature { display: flex; align-items: center; gap: 14px; margin-top: 34px; }
.apm-signature img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--apm-trait-2); }
.apm-signature p { font-size: 15px; color: var(--apm-gris); line-height: 1.45; }
.apm-signature strong { color: var(--apm-encre); display: block; font-size: 16px; }
.apm-hero__visuel { position: relative; }
.apm-hero__photo { border-radius: 220px 220px var(--apm-r-2) var(--apm-r-2); overflow: hidden; aspect-ratio: 5 / 5.4; background: var(--apm-poudre-2); box-shadow: var(--apm-ombre-2); }
.apm-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 38% 50%; }
.apm-carte-flottante {
  position: absolute; left: clamp(-56px, -4vw, -16px); bottom: 28px; width: min(330px, 78%);
  background: #fff; border-radius: var(--apm-r); box-shadow: var(--apm-ombre-2); padding: 16px 18px 18px;
  display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 4px 14px; align-items: center;
}
.apm-carte-flottante__img { grid-row: span 3; height: 92px; display: grid; place-items: center; background: var(--apm-poudre); border-radius: 16px; padding: 8px; }
.apm-carte-flottante__img img { max-height: 76px; width: auto; object-fit: contain; }
.apm-carte-flottante p { font-size: 13px; color: var(--apm-gris); line-height: 1.35; }
.apm-carte-flottante .apm-dispo { font-size: 13px; }
.apm-carte-flottante strong { font-size: 15.5px; line-height: 1.25; }
.apm-carte-flottante__ligne { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 12px; }
.apm-carte-flottante__prix { font-size: 22px; font-weight: 780; letter-spacing: -.02em; }
.apm-carte-flottante .apm-btn { grid-column: 1 / -1; margin-top: 12px; min-height: 46px; }
.apm-carte-flottante__note { position: absolute; top: -16px; right: -12px; }

/* diaporama du hero */
.apm-diapo { position: relative; aspect-ratio: 5 / 5.4; }
.apm-diapo__vue { position: absolute; inset: 0; margin: 0; opacity: 0; visibility: hidden; transition: opacity .9s cubic-bezier(.16, 1, .3, 1), visibility 0s .9s; }
.apm-diapo__vue.is-active { opacity: 1; visibility: visible; transition-delay: 0s; z-index: 1; }
.apm-diapo .apm-hero__photo { position: absolute; inset: 0; aspect-ratio: auto; }
.apm-diapo .apm-hero__photo img { transform: scale(1.06); transition: transform 6s cubic-bezier(.16, 1, .3, 1); }
.apm-diapo__vue.is-active .apm-hero__photo img { transform: scale(1); }
.apm-diapo__legende { position: absolute; left: 50%; bottom: 24px; translate: -50% 0; z-index: 2; }
.apm-diapo__legende a { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: 999px; background: rgba(255, 255, 255, .94); color: var(--apm-encre); font-weight: 700; text-decoration: none; box-shadow: var(--apm-ombre); white-space: nowrap; }
.apm-diapo__legende a:hover { background: var(--apm-encre); color: #fff; }
.apm-diapo__produit {
  position: absolute; z-index: 3; display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 12px; align-items: center; width: 260px; padding: 10px 16px 10px 10px;
  background: #fff; border-radius: 18px; box-shadow: var(--apm-ombre-2); color: var(--apm-encre); text-decoration: none;
  opacity: 0; translate: 0 14px; transition: opacity .6s .35s, translate .7s .35s cubic-bezier(.16, 1, .3, 1), box-shadow .2s;
}
.apm-diapo__vue.is-active .apm-diapo__produit { opacity: 1; translate: 0 0; }
.apm-diapo__vue.is-active .apm-diapo__produit--b { transition-delay: .55s; }
.apm-diapo__produit:hover { box-shadow: 0 0 0 1.5px var(--apm-encre), var(--apm-ombre-2); color: var(--apm-encre); }
.apm-diapo__produit--a { left: clamp(-60px, -4.5vw, -16px); top: 16%; }
.apm-diapo__produit--b { right: clamp(-40px, -3vw, -12px); top: 52%; }
.apm-diapo__vignette { position: relative; width: 64px; height: 64px; border-radius: 14px; background: var(--apm-poudre); display: grid; place-items: center; }
.apm-diapo__vignette img { width: 82%; height: 82%; object-fit: contain; }
.apm-diapo__vignette img.is-fond-blanc { mix-blend-mode: multiply; }
.apm-diapo__produit strong { display: block; font-size: 15px; line-height: 1.25; }
.apm-diapo__produit span span, .apm-diapo__produit > span:last-child > span { font-size: 13px; color: var(--apm-gris); }
.apm-diapo__points { position: absolute; left: 0; right: 0; bottom: -34px; display: flex; justify-content: center; gap: 6px; }
.apm-diapo__points button { width: 34px; height: 24px; border: 0; background: none; display: grid; place-items: center; padding: 0; }
.apm-diapo__points span { width: 8px; height: 8px; border-radius: 999px; background: var(--apm-trait-2); transition: width .35s cubic-bezier(.16, 1, .3, 1), background-color .2s; }
.apm-diapo__points [aria-selected="true"] span { width: 26px; background: var(--apm-encre); }

/* trois entrées par univers, sous le hero */
.apm-entrees { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: clamp(32px, 4vw, 48px); }
.apm-entree { position: relative; display: grid; grid-template-columns: 108px minmax(0, 1fr); gap: 16px; align-items: center; padding: 16px 44px 16px 16px; background: #fff; border-radius: var(--apm-r); box-shadow: var(--apm-ombre-2); transition: transform .3s cubic-bezier(.16, 1, .3, 1), box-shadow .3s; }
.apm-entree:hover { transform: translateY(-4px); }
.apm-entree__visu { position: relative; display: grid; place-items: center; aspect-ratio: 1; border-radius: 16px; background: var(--apm-poudre); }
.apm-entree__visu::after { content: ""; position: absolute; left: 18%; right: 18%; bottom: 10%; height: 10px; border-radius: 50%; background: radial-gradient(closest-side, rgba(34, 48, 42, .2), transparent); }
.apm-entree__visu img { position: relative; z-index: 1; width: 80%; height: 80%; object-fit: contain; transition: transform .45s cubic-bezier(.16, 1, .3, 1); }
.apm-entree__visu img.is-fond-blanc { mix-blend-mode: multiply; }
.apm-entree:hover .apm-entree__visu img { transform: scale(1.06); }
.apm-entree h2 { font-size: 20px; letter-spacing: -.02em; }
.apm-entree h2 a { color: var(--apm-encre); text-decoration: none; }
.apm-entree h2 a::before { content: ""; position: absolute; inset: 0; border-radius: var(--apm-r); }
.apm-entree p { font-size: 14px; color: var(--apm-gris); line-height: 1.45; margin-top: 4px; }
.apm-entree ul { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 12px; }
.apm-entree li a { position: relative; z-index: 1; font-size: 13.5px; font-weight: 600; color: var(--apm-sauge-fonce); }
.apm-entree__fleche { position: absolute; right: 16px; top: 50%; translate: 0 -50%; width: 30px; height: 30px; border-radius: 50%; background: var(--apm-poudre); display: grid; place-items: center; color: var(--apm-encre); transition: background-color .2s, color .2s; }
.apm-entree:hover .apm-entree__fleche { background: var(--apm-encre); color: #fff; }

/* page des calculateurs */
.apm-sous--outils { margin-top: 26px; }
.apm-sous--outils a { padding: 8px 18px; }
.apm-outil { padding-block: clamp(48px, 7vw, 88px); scroll-margin-top: 80px; }
.apm-outil--poudre { background: var(--apm-poudre); }
.apm-outil__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.apm-outil h2 { font-size: clamp(28px, 3.2vw, 40px); margin-bottom: 16px; }
.apm-outil__source { font-size: 14px; color: var(--apm-gris); margin: 16px 0 18px; }
.apm-outil .apm-lien-fort { white-space: normal; }
.apm-champs--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 14px 0; }
.apm-calc-groupe { border: 0; padding: 0; margin: 0 0 6px; }
.apm-calc-groupe legend { font-size: 14px; font-weight: 600; color: var(--apm-encre-2); margin-bottom: 8px; }
.apm-calc-groupe + .apm-calc-groupe, .apm-champs--3 + .apm-calc-groupe { margin-top: 10px; }
.apm-resultat [data-phrase] { flex: 1 1 220px; }
.apm-resultat--alerte { background: var(--apm-alerte-pale); }
.apm-resultat--alerte strong { color: #7a2f1b; }

/* réassurance */
.apm-reassurance { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: clamp(36px, 5vw, 56px) 0 0; padding: 12px 20px; border-radius: var(--apm-r); background: var(--apm-poudre); }
.apm-reassurance li { list-style: none; display: flex; gap: 12px; align-items: flex-start; padding: 14px 4px; }
.apm-reassurance svg { color: var(--apm-sauge-fonce); margin-top: 2px; }
.apm-reassurance strong { display: block; font-size: 15.5px; }
.apm-reassurance span { display: block; font-size: 14px; color: var(--apm-gris); line-height: 1.4; margin-top: 2px; }
.apm-reassurance ul { display: contents; }

/* objectif + étagère */
.apm-objectifs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.apm-objectif {
  display: inline-flex; align-items: center; gap: 9px; min-height: 48px; padding: 0 20px 0 8px; border-radius: 999px;
  border: 1.5px solid var(--apm-trait-2); background: #fff; font-weight: 600; font-size: 15.5px; transition: border-color .2s, background-color .2s, color .2s;
}
.apm-objectif img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; }
.apm-objectif:hover { border-color: var(--apm-encre); }
.apm-objectif[aria-pressed="true"] { background: var(--apm-encre); border-color: var(--apm-encre); color: #fff; }

.apm-etagere { position: relative; }
.apm-etagere__piste {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px, calc((100% - 3 * 20px) / 4)); gap: 20px;
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 6px 2px 22px; scrollbar-width: none;
}
.apm-etagere__piste::-webkit-scrollbar { display: none; }
.apm-etagere__fleche {
  position: absolute; top: 38%; z-index: 3; width: 48px; height: 48px; border-radius: 50%; border: 0; background: #fff;
  box-shadow: var(--apm-ombre); display: grid; place-items: center; transition: transform .2s, opacity .2s;
}
.apm-etagere__fleche:hover { transform: scale(1.06); }
.apm-etagere__fleche:disabled { opacity: 0; pointer-events: none; }
.apm-etagere__fleche--g { left: -22px; }
.apm-etagere__fleche--d { right: -22px; }
.apm-etagere__vide { padding: 40px; text-align: center; color: var(--apm-gris); }

/* carte produit (grille et étagère) */
.apm-produit {
  position: relative; scroll-snap-align: start; display: flex; flex-direction: column; background: #fff;
  border-radius: var(--apm-r); box-shadow: 0 0 0 1px var(--apm-trait); transition: box-shadow .3s, transform .3s cubic-bezier(.16, 1, .3, 1);
}
.apm-produit:hover { box-shadow: var(--apm-ombre-2); transform: translateY(-3px); }
.apm-produit[hidden] { display: none; }
.apm-produit__visu {
  position: relative; aspect-ratio: 1 / .92; margin: 8px 8px 0; border-radius: 15px; background: var(--apm-poudre);
  display: grid; place-items: center; overflow: hidden;
}
.apm-produit__visu::after { content: ""; position: absolute; left: 18%; right: 18%; bottom: 11%; height: 14px; border-radius: 50%; background: radial-gradient(closest-side, rgba(34, 48, 42, .18), transparent); }
.apm-produit__visu img { position: relative; z-index: 1; width: 74%; height: 74%; object-fit: contain; transition: transform .45s cubic-bezier(.16, 1, .3, 1); }
.apm-produit__visu img.is-fond-blanc { width: 82%; height: 82%; mix-blend-mode: multiply; }
.apm-produit:hover .apm-produit__visu img { transform: scale(1.04); }
.apm-produit__note { position: absolute; top: 12px; left: 12px; z-index: 2; }
.apm-panier {
  position: absolute; right: 12px; bottom: 12px; z-index: 3; height: 44px; min-width: 44px; padding: 0 12px; border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--apm-achat); color: var(--apm-encre);
  text-decoration: none; font-weight: 650; font-size: 14.5px; box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .12), 0 8px 18px -10px rgba(240, 136, 0, .9);
  overflow: hidden; transition: background-color .2s;
}
.apm-panier span { max-width: 0; overflow: hidden; white-space: nowrap; transition: max-width .35s cubic-bezier(.16, 1, .3, 1); }
.apm-panier:hover, .apm-panier:focus-visible { background: var(--apm-achat-2); color: var(--apm-encre); }
.apm-panier:hover span, .apm-panier:focus-visible span { max-width: 140px; }
.apm-produit__corps { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.apm-produit__marque { font-size: 13px; color: var(--apm-gris); font-weight: 600; }
.apm-produit h2, .apm-produit h3 { font-size: 17px; line-height: 1.28; letter-spacing: -.01em; font-weight: 700; }
.apm-produit h2 a, .apm-produit h3 a { color: var(--apm-encre); text-decoration: none; }
.apm-produit h2 a::before, .apm-produit h3 a::before { content: ""; position: absolute; inset: 0; z-index: 0; border-radius: var(--apm-r); }
.apm-mots { display: flex; flex-wrap: wrap; gap: 6px; }
.apm-mots li { list-style: none; font-size: 12.5px; padding: 3px 9px; border-radius: 999px; background: var(--apm-sauge-pale); color: var(--apm-sauge-fonce); font-weight: 600; }
.apm-mots { margin: 0; padding: 0; }
.apm-produit__prix { margin-top: auto; padding-top: 6px; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.apm-produit__prix strong { font-size: 21px; font-weight: 780; letter-spacing: -.02em; }
.apm-produit__prix span { font-size: 12.5px; color: var(--apm-gris); }

/* coups de cœur (fond encre) */
.apm-lien-fort--clair { color: #f4efec; }
.apm-lien-fort--clair:hover { color: #fff; }
.apm-top { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 20px; align-items: stretch; }
.apm-top__une { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border-radius: var(--apm-r-2); overflow: hidden; background: #2c3b34; }
.apm-top__visu { position: relative; display: grid; place-items: center; background: var(--apm-poudre); min-height: 360px; }
.apm-top__visu::after { content: ""; position: absolute; left: 18%; right: 18%; bottom: 12%; height: 22px; border-radius: 50%; background: radial-gradient(closest-side, rgba(34, 48, 42, .22), transparent); }
.apm-top__visu img { position: relative; z-index: 1; width: 74%; height: 74%; object-fit: contain; }
.apm-top__visu img.is-fond-blanc { mix-blend-mode: multiply; }
.apm-top__txt { padding: clamp(22px, 3vw, 34px); display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.apm-top__txt h3 { font-size: clamp(24px, 2.4vw, 32px); }
.apm-top__txt h3 a { color: #fff; text-decoration: none; }
.apm-top__txt h3 a:hover { text-decoration: underline; text-underline-offset: .15em; }
.apm-top__txt > p { color: #cdd5d0; font-size: 16px; }
.apm-top__note { font-size: 15px; color: #b9c5be !important; }
.apm-top__note span { font-size: 44px; font-weight: 800; letter-spacing: -.03em; color: #fff; }
.apm-top__prix-une { font-size: 28px; font-weight: 800; color: #fff !important; letter-spacing: -.02em; line-height: 1.1; }
.apm-top__prix-une small { display: block; font-size: 13px; font-weight: 500; color: #b9c5be; letter-spacing: 0; margin-top: 4px; }
.apm-top__txt .apm-btn { margin-top: 6px; }
.apm-top__rang { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(255, 255, 255, .1); color: #fff; font-weight: 800; font-size: 15px; flex: none; }
.apm-top__rang--grand { width: 42px; height: 42px; background: #fff; color: var(--apm-encre); font-size: 18px; }
.apm-top__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.apm-top__ligne { display: grid; grid-template-columns: 34px 76px minmax(0, 1fr) auto auto; gap: 14px; align-items: center; height: 100%; padding: 14px 18px 14px 14px; border-radius: var(--apm-r); background: #2c3b34; color: #fff; text-decoration: none; transition: background-color .2s; }
.apm-top__ligne:hover { background: #34463e; color: #fff; }
.apm-top__vignette { width: 76px; height: 76px; border-radius: 14px; background: var(--apm-poudre); display: grid; place-items: center; }
.apm-top__vignette img { width: 80%; height: 80%; object-fit: contain; }
.apm-top__nom strong { display: block; font-size: 16.5px; line-height: 1.25; }
.apm-top__nom span { font-size: 13.5px; color: #b9c5be; }
.apm-top__ligne .apm-note { background: #fff; color: var(--apm-encre); }
.apm-top__prix { font-weight: 750; white-space: nowrap; }

/* rubriques de l'accueil */
.apm-silos { display: grid; gap: 48px; }
.apm-silo__tete { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 18px; }
.apm-silo__tete h3 { font-size: 24px; }
.apm-tuiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.apm-tuile {
  position: relative; display: grid; grid-template-rows: auto 1fr; border-radius: var(--apm-r); background: #fff; text-decoration: none; color: var(--apm-encre);
  overflow: hidden; box-shadow: 0 0 0 1px var(--apm-trait); transition: box-shadow .3s, transform .3s cubic-bezier(.16, 1, .3, 1);
}
.apm-tuile:hover { box-shadow: var(--apm-ombre-2); transform: translateY(-3px); color: var(--apm-encre); }
.apm-tuile__visu { position: relative; aspect-ratio: 4 / 3; background: var(--apm-poudre); display: grid; place-items: center; overflow: hidden; }
.apm-tuile__visu::after, .apm-mini__visu::after, .apm-produit-inline__visu::after { content: ""; position: absolute; left: 20%; right: 20%; bottom: 10%; height: 14px; border-radius: 50%; background: radial-gradient(closest-side, rgba(34, 48, 42, .18), transparent); }
.apm-tuile__visu:has(.is-photo)::after { display: none; }
.apm-tuile__visu img, .apm-mini__visu img, .apm-produit-inline__visu img { position: relative; z-index: 1; }
.apm-tuile__visu img { width: 64%; height: 76%; object-fit: contain; transition: transform .45s cubic-bezier(.16, 1, .3, 1); }
.apm-tuile__visu img.is-photo { width: 100%; height: 100%; object-fit: cover; }
.apm-tuile__visu img.is-fond-blanc { mix-blend-mode: multiply; }
.apm-tuile:hover .apm-tuile__visu img { transform: scale(1.05); }
.apm-tuile__txt { padding: 14px 16px 16px; display: flex; justify-content: space-between; align-items: center; gap: 10px; font-weight: 700; font-size: 16.5px; line-height: 1.25; }
.apm-tuile__txt svg { color: var(--apm-sauge-fonce); }

/* Stéphanie */
.apm-coach { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 88px); align-items: center; }
.apm-coach__photo { position: relative; border-radius: var(--apm-r-2); overflow: hidden; aspect-ratio: 4 / 4.4; box-shadow: var(--apm-ombre-2); }
.apm-coach__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 58% 30%; }
.apm-coach__legende { position: absolute; left: 16px; bottom: 16px; right: 16px; background: rgba(255, 255, 255, .94); border-radius: 16px; padding: 12px 16px; font-size: 14.5px; color: var(--apm-encre-2); }
.apm-coach__legende strong { display: block; color: var(--apm-encre); font-size: 16px; }
.apm-coach h2 { font-size: clamp(30px, 3.8vw, 48px); }
.apm-coach__txt { font-size: 18px; color: var(--apm-encre-2); margin: 20px 0 28px; max-width: 54ch; }
.apm-methode { display: grid; gap: 0; margin: 0 0 30px; padding: 0; border-top: 1px solid var(--apm-trait-2); }
.apm-methode li { list-style: none; display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; padding: 18px 0; border-bottom: 1px solid var(--apm-trait-2); }
.apm-methode li > svg { width: 44px; height: 44px; padding: 10px; border-radius: 50%; background: #fff; color: var(--apm-sauge-fonce); }
.apm-methode strong { display: block; font-size: 17px; margin-bottom: 2px; }
.apm-methode span { color: var(--apm-gris); font-size: 15.5px; }

/* guides et conseils */
.apm-guides { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 20px; }
.apm-guide-carte { position: relative; display: flex; flex-direction: column; border-radius: var(--apm-r); overflow: hidden; background: #fff; text-decoration: none; color: var(--apm-encre); box-shadow: 0 0 0 1px var(--apm-trait); transition: box-shadow .3s, transform .3s cubic-bezier(.16, 1, .3, 1); }
.apm-guide-carte:hover { box-shadow: var(--apm-ombre-2); transform: translateY(-3px); color: var(--apm-encre); }
.apm-guide-carte__visu { aspect-ratio: 3 / 2; overflow: hidden; background: var(--apm-poudre); }
.apm-guide-carte__visu img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.16, 1, .3, 1); }
.apm-guide-carte:hover .apm-guide-carte__visu img { transform: scale(1.04); }
.apm-guide-carte__txt { padding: 18px 20px 22px; display: grid; gap: 8px; }
.apm-guide-carte h3 { font-size: 21px; }
.apm-guide-carte:first-child h3 { font-size: 26px; }
.apm-guide-carte p { color: var(--apm-gris); font-size: 15.5px; }
.apm-conseils { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; margin-top: 48px; padding: 0; }
.apm-conseils li { list-style: none; border-top: 1px solid var(--apm-trait-2); }
.apm-conseils a { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 16px; align-items: center; padding: 16px 0; text-decoration: none; color: var(--apm-encre); }
.apm-conseils img { width: 76px; height: 76px; border-radius: 14px; object-fit: cover; }
.apm-conseils strong { display: block; font-size: 17px; line-height: 1.3; color: var(--apm-encre); }
.apm-conseils span { font-size: 14px; color: var(--apm-gris); }
.apm-conseils a:hover strong { text-decoration: underline; text-underline-offset: .2em; }

/* calculateur */
.apm-calculateur { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.apm-calculateur h2 { font-size: clamp(30px, 3.6vw, 46px); }
.apm-calculateur__txt { color: var(--apm-encre-2); margin: 16px 0 0; max-width: 46ch; font-size: 18px; }
.apm-calc-boite { background: #fff; border-radius: var(--apm-r-2); box-shadow: var(--apm-ombre-2); padding: clamp(22px, 3vw, 34px); }
.apm-champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.apm-champ label { display: block; font-size: 14px; font-weight: 600; color: var(--apm-encre-2); margin-bottom: 6px; }
.apm-champ div { position: relative; }
.apm-champ input {
  width: 100%; height: 56px; border-radius: 16px; border: 1.5px solid var(--apm-trait-2); padding: 0 46px 0 16px;
  font: inherit; font-size: 22px; font-weight: 700; color: var(--apm-encre); background: #fbf8f7; font-variant-numeric: tabular-nums;
}
.apm-champ input:focus { outline: none; border-color: var(--apm-sauge-fonce); background: #fff; box-shadow: 0 0 0 3px var(--apm-sauge-pale); }
.apm-champ span { position: absolute; right: 16px; top: 50%; translate: 0 -50%; color: var(--apm-gris); font-weight: 600; }
.apm-resultat { margin-top: 20px; padding: 18px 20px; border-radius: 18px; background: var(--apm-sauge-pale); display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.apm-resultat strong { font-size: 44px; line-height: 1; font-weight: 800; letter-spacing: -.03em; color: var(--apm-sauge-fonce); }
.apm-resultat span { color: var(--apm-encre-2); }
.apm-calc-boite small { display: block; margin-top: 14px; color: var(--apm-gris); font-size: 13.5px; }

/* lettre */
.apm-lettre { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 32px; align-items: center; background: var(--apm-encre); color: #f4efec; border-radius: var(--apm-r-2); padding: clamp(28px, 4vw, 52px); }
.apm-lettre h2 { font-size: clamp(26px, 3vw, 38px); color: #fff; }
.apm-lettre p { color: #cdd5d0; margin-top: 12px; }
.apm-lettre form { display: grid; gap: 12px; }
.apm-lettre__ligne { display: flex; gap: 10px; }
.apm-lettre input[type="email"] { flex: 1; min-width: 0; height: 54px; border-radius: 999px; border: 0; padding: 0 20px; font: inherit; color: var(--apm-encre); }
.apm-lettre label { font-size: 13.5px; color: #cdd5d0; display: flex; gap: 10px; align-items: flex-start; }
.apm-lettre label input { margin-top: 4px; accent-color: var(--apm-sauge); }
.apm-lettre .apm-btn--blanc { background: #fff; color: var(--apm-encre); }
.apm-lettre .apm-btn--blanc:hover { background: var(--apm-poudre); }

/* pied */
.apm-pied { background: var(--apm-poudre); padding: 64px 0 36px; margin-top: 0; }
main > article { padding-bottom: clamp(56px, 8vw, 104px); }
main:has(> .apm-section--poudre:last-child) + .apm-pied, main:has(> .apm-section--encre:last-child) + .apm-pied { border-top: 1px solid var(--apm-trait-2); }
.apm-pied__grille { display: grid; grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr)); gap: 28px; }
.apm-pied__marque p { color: var(--apm-gris); font-size: 15px; margin-top: 14px; max-width: 34ch; }
.apm-pied__titre { font-weight: 700; font-size: 15px; margin-bottom: 12px; }
.apm-pied ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.apm-pied a { color: var(--apm-encre-2); text-decoration: none; font-size: 15px; }
.apm-pied a:hover { color: var(--apm-encre); text-decoration: underline; }
.apm-pied__bas { margin-top: 48px; padding-top: 22px; border-top: 1px solid var(--apm-trait-2); display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; font-size: 14px; color: var(--apm-gris); text-align: center; }

/* ---------- fil d'Ariane, rubrique ---------- */
.apm-ariane { padding: 18px 0 0; font-size: 14px; color: var(--apm-gris); }
.apm-ariane ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.apm-ariane li { display: inline-flex; align-items: center; gap: 6px; }
.apm-ariane li + li::before { content: ""; width: 5px; height: 5px; border-top: 1.5px solid var(--apm-gris-2); border-right: 1.5px solid var(--apm-gris-2); rotate: 45deg; margin-right: 4px; }
.apm-ariane a { color: var(--apm-gris); text-decoration: none; }
.apm-ariane a:hover { color: var(--apm-encre); text-decoration: underline; }
.apm-rubrique-tete { padding: 18px 0 8px; }
.apm-rubrique-tete h1 { font-size: clamp(34px, 4.6vw, 56px); letter-spacing: -.03em; }
.apm-sous { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.apm-sous a { display: inline-flex; align-items: center; gap: 8px; padding: 6px 16px 6px 6px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--apm-trait-2); color: var(--apm-encre); text-decoration: none; font-weight: 600; font-size: 15px; }
.apm-sous a img { width: 32px; height: 32px; border-radius: 50%; background: var(--apm-poudre); object-fit: contain; padding: 3px; }
.apm-sous a:hover { box-shadow: inset 0 0 0 1.5px var(--apm-encre); }
.apm-sous a[aria-current="page"] { background: var(--apm-encre); color: #fff; box-shadow: none; }
.apm-filtres { position: sticky; top: 74px; z-index: 20; background: rgba(255, 255, 255, .96); border-bottom: 1px solid var(--apm-trait); margin-top: 26px; }
.apm-filtres__in { display: flex; align-items: center; gap: 10px; min-height: 68px; flex-wrap: wrap; }
.apm-filtre { position: relative; }
.apm-filtre > button {
  display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 16px; border-radius: 999px; border: 1.5px solid var(--apm-trait-2); background: #fff; font-weight: 600; font-size: 15px;
}
.apm-filtre > button:hover, .apm-filtre > button[aria-expanded="true"] { border-color: var(--apm-encre); }
.apm-filtre > button.is-actif { background: var(--apm-encre); color: #fff; border-color: var(--apm-encre); }
.apm-filtre__panneau {
  position: absolute; top: calc(100% + 8px); left: 0; z-index: 5; min-width: 260px; background: #fff; border-radius: 18px; box-shadow: var(--apm-ombre-2); padding: 14px; display: none;
}
.apm-filtre__panneau.is-ouvert { display: block; }
.apm-filtre__panneau label { display: flex; align-items: center; gap: 10px; padding: 8px 6px; border-radius: 10px; cursor: pointer; font-size: 15px; }
.apm-filtre__panneau label:hover { background: var(--apm-poudre); }
.apm-filtre__panneau input { accent-color: var(--apm-encre); width: 18px; height: 18px; }
.apm-filtre__panneau output { font-weight: 700; }
.apm-filtre__panneau input[type="range"] { width: 100%; accent-color: var(--apm-sauge-fonce); }
.apm-tri { margin-left: auto; display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--apm-gris); }
.apm-tri select { -webkit-appearance: none; appearance: none; height: 42px; border-radius: 999px; border: 1.5px solid var(--apm-trait-2); padding: 0 40px 0 16px; font: inherit; font-weight: 600; color: var(--apm-encre); cursor: pointer;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322302a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center / 16px; }
.apm-tri select:hover { border-color: var(--apm-encre); }
.apm-grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; padding: 28px 0 8px; }
.apm-grille-vide { padding: 48px 0; text-align: center; color: var(--apm-gris); }
.apm-texte-rubrique { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; align-items: start; }
.apm-prose { font-size: 18px; color: var(--apm-encre-2); max-width: 70ch; }
.apm-prose h2 { font-size: clamp(26px, 2.8vw, 34px); color: var(--apm-encre); margin: 52px 0 16px; }
.apm-prose h2:first-child { margin-top: 0; }
.apm-prose h3 { font-size: 21px; color: var(--apm-encre); margin: 32px 0 10px; }
.apm-prose p + p, .apm-prose p + ul, .apm-prose ul + p { margin-top: 16px; }
.apm-prose ul { padding-left: 1.2em; }
.apm-prose li + li { margin-top: 6px; }
.apm-prose li::marker { color: var(--apm-sauge); }
.apm-prose strong { color: var(--apm-encre); }
.apm-aparte { position: sticky; top: 160px; display: grid; gap: 14px; }
.apm-aparte__boite { background: var(--apm-poudre); border-radius: var(--apm-r); padding: 20px; }
.apm-aparte__boite p { font-size: 15px; color: var(--apm-encre-2); }
.apm-aparte__boite strong { display: block; font-size: 16px; margin-bottom: 6px; color: var(--apm-encre); }
.apm-auteur-mini { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; }
.apm-auteur-mini img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.apm-voisines { display: flex; flex-wrap: wrap; gap: 10px; }
.apm-voisines a { padding: 10px 18px; border-radius: 999px; background: #fff; color: var(--apm-encre); text-decoration: none; font-weight: 600; box-shadow: 0 0 0 1px var(--apm-trait-2); }
.apm-voisines a:hover { box-shadow: 0 0 0 1.5px var(--apm-encre); }

.apm-aparte__boite .apm-btn { margin-top: 14px; }

/* FAQ */
.apm-faq { max-width: 860px; }
.apm-faq h2 { font-size: clamp(26px, 2.8vw, 36px); margin-bottom: 20px; }
.apm-faq details { border-top: 1px solid var(--apm-trait-2); }
.apm-faq details:last-of-type { border-bottom: 1px solid var(--apm-trait-2); }
.apm-faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 2px; font-weight: 650; font-size: 18px; cursor: pointer; }
.apm-faq summary::-webkit-details-marker { display: none; }
.apm-faq summary svg { transition: transform .3s cubic-bezier(.16, 1, .3, 1); }
.apm-faq details[open] summary svg { transform: rotate(45deg); }
.apm-faq details > div { padding: 0 2px 22px; color: var(--apm-encre-2); max-width: 70ch; }

/* ---------- fiche produit ---------- */
.apm-fiche { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); padding: 22px 0 56px; align-items: start; }
.apm-galerie { position: sticky; top: 96px; display: grid; gap: 12px; }
.apm-galerie__principale {
  position: relative; display: grid; place-items: center; aspect-ratio: 1 / 1; border-radius: var(--apm-r-2); background: var(--apm-poudre); overflow: hidden;
}
.apm-galerie__principale::after { content: ""; position: absolute; left: 20%; right: 20%; bottom: 12%; height: 24px; border-radius: 50%; background: radial-gradient(closest-side, rgba(34, 48, 42, .2), transparent); }
.apm-galerie__principale img { position: relative; z-index: 1; width: 72%; height: 72%; object-fit: contain; }
.apm-galerie__badge { position: absolute; top: 18px; left: 18px; z-index: 2; }
.apm-galerie__loupe { position: absolute; right: 16px; bottom: 16px; z-index: 2; display: inline-flex; gap: 6px; align-items: center; padding: 7px 12px; border-radius: 999px; background: #fff; font-size: 13.5px; font-weight: 600; color: var(--apm-encre); box-shadow: var(--apm-ombre); }
.apm-galerie__vignettes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.apm-galerie__vignettes button { aspect-ratio: 1 / 1; border-radius: 16px; border: 2px solid transparent; background: var(--apm-poudre); padding: 8px; }
.apm-galerie__vignettes button[aria-current="true"] { border-color: var(--apm-encre); }
.apm-galerie__vignettes img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.apm-fiche__info h1 { font-size: clamp(32px, 3.8vw, 48px); letter-spacing: -.03em; }
.apm-fiche__sous { color: var(--apm-gris); font-size: 16.5px; margin-top: 10px; }
.apm-fiche__teste { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 16px 0 22px; font-size: 14.5px; color: var(--apm-gris); }
.apm-fiche__teste img { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; }
.apm-fiche__teste span { display: inline-flex; align-items: center; gap: 8px; }
.apm-boite-prix { border-radius: var(--apm-r); background: #fff; box-shadow: var(--apm-ombre-2); padding: 22px; margin-bottom: 18px; }
.apm-boite-prix__ligne { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 14px; }
.apm-boite-prix__montant { font-size: 40px; font-weight: 800; letter-spacing: -.03em; line-height: 1; }
.apm-dispo { display: inline-flex; align-items: center; gap: 7px; font-size: 14.5px; font-weight: 600; color: var(--apm-sauge-fonce); }
.apm-dispo::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #3f9a63; box-shadow: 0 0 0 3px #dff0e5; }
.apm-boite-prix__releve { font-size: 13.5px; color: var(--apm-gris); margin: 8px 0 18px; }
.apm-boite-prix__marchand { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; background: #fbf8f7; font-size: 14.5px; color: var(--apm-encre-2); margin-bottom: 14px; }
.apm-reassur-mini { display: none; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-top: 16px; font-size: 13.5px; color: var(--apm-gris); }
.apm-reassur-mini span { display: inline-flex; align-items: center; gap: 6px; }
.apm-note-bloc { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; align-items: center; padding: 18px 0; border-top: 1px solid var(--apm-trait); border-bottom: 1px solid var(--apm-trait); margin-bottom: 18px; }
.apm-note-bloc__chiffre { font-size: 58px; font-weight: 800; letter-spacing: -.04em; line-height: .9; }
.apm-note-bloc__chiffre small { font-size: 18px; color: var(--apm-gris); font-weight: 600; letter-spacing: 0; }
.apm-note-bloc p { font-weight: 700; font-size: 17px; }
.apm-note-bloc div > span { color: var(--apm-gris); font-size: 14.5px; }
.apm-avis-court { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 14px; align-items: start; }
.apm-avis-court img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; }
.apm-avis-court blockquote { margin: 0; font-size: 17px; line-height: 1.55; }
.apm-avis-court cite { display: block; font-style: normal; color: var(--apm-gris); font-size: 14px; margin-top: 6px; }

.apm-bandeau-reassur { background: var(--apm-poudre); }
.apm-bandeau-reassur ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-block: 0; padding: 14px 0; }
.apm-bandeau-reassur li { list-style: none; display: flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 600; color: var(--apm-encre-2); }
.apm-bandeau-reassur svg { color: var(--apm-sauge-fonce); }

.apm-banc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); }
.apm-banc h2 { font-size: clamp(28px, 3.2vw, 40px); }
.apm-banc__txt { color: var(--apm-encre-2); margin-top: 14px; }
.apm-curseurs { display: grid; gap: 22px; }
.apm-curseur__tete { display: flex; justify-content: space-between; font-weight: 650; margin-bottom: 8px; }
.apm-curseur__tete b { font-variant-numeric: tabular-nums; }
.apm-graduation { position: relative; height: 12px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--apm-trait-2); }
.apm-graduation { overflow: hidden; }
.apm-graduation i { position: absolute; inset: 0; border-radius: 999px; background: var(--apm-sauge-fonce); transform-origin: left center; transform: scaleX(max(.035, var(--v))); transition: transform 1s cubic-bezier(.16, 1, .3, 1); }
.apm-graduation--global i { background: var(--apm-encre); }
.apm-echelle { display: flex; justify-content: space-between; font-size: 12.5px; color: var(--apm-gris); margin-top: 6px; }
.apm-methodo { margin-top: 26px; border-radius: 18px; background: #fff; padding: 4px 18px; }
.apm-methodo summary { list-style: none; display: flex; justify-content: space-between; align-items: center; padding: 14px 0; font-weight: 650; cursor: pointer; }
.apm-methodo summary::-webkit-details-marker { display: none; }
.apm-methodo div { padding-bottom: 16px; color: var(--apm-encre-2); font-size: 15.5px; }
.apm-methodo div p + p { margin-top: 10px; }

.apm-chiffres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(255, 255, 255, .16); }
.apm-chiffres div { padding: 26px 22px 6px 0; border-right: 1px solid rgba(255, 255, 255, .16); }
.apm-chiffres div + div { padding-left: 22px; }
.apm-chiffres div:last-child { border-right: 0; }
.apm-chiffres strong { display: block; font-size: clamp(44px, 5vw, 68px); font-weight: 800; letter-spacing: -.04em; line-height: 1; color: #fff; }
.apm-chiffres span { color: #b9c5be; font-size: 15px; }
.apm-section--encre h2 { color: #fff; }
.apm-section--encre .apm-tete-section p { color: #b9c5be; }
.apm-carac { width: 100%; border-collapse: collapse; margin-top: 40px; font-size: 16px; }
.apm-carac th, .apm-carac td { text-align: left; padding: 14px 0; border-bottom: 1px solid rgba(255, 255, 255, .14); vertical-align: top; }
.apm-carac th { font-weight: 500; color: #b9c5be; width: 42%; }
.apm-carac td { font-weight: 600; color: #fff; }
.apm-source { margin-top: 22px; font-size: 13.5px; color: #9fb0a7; }

.apm-retenir { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.apm-retenir__col { background: #fff; border-radius: var(--apm-r); padding: 24px 26px; box-shadow: 0 0 0 1px var(--apm-trait); }
.apm-retenir__col h3 { font-size: 19px; display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.apm-retenir__col ul { margin: 0; padding: 0; display: grid; gap: 12px; }
.apm-retenir__col li { list-style: none; display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px; color: var(--apm-encre-2); font-size: 16px; }
.apm-retenir__col li svg { margin-top: 3px; }
.apm-retenir__col--plus svg { color: #3f9a63; }
.apm-retenir__col--moins svg { color: var(--apm-alerte); }

.apm-test { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; align-items: start; }
.apm-ci { border-radius: var(--apm-r); background: var(--apm-alerte-pale); padding: 22px 22px 20px; position: sticky; top: 100px; }
.apm-ci h3 { display: flex; gap: 10px; align-items: center; font-size: 19px; color: #7a2f1b; margin-bottom: 14px; }
.apm-ci ul { margin: 0; padding: 0; display: grid; gap: 10px; }
.apm-ci li { list-style: none; display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; font-size: 15px; color: #4b2a20; line-height: 1.5; }
.apm-ci li::before { content: ""; width: 8px; height: 8px; margin-top: 8px; border-radius: 50%; background: var(--apm-alerte); }
.apm-ci p { margin-top: 14px; padding-top: 14px; border-top: 1px solid #f0d3c8; font-size: 14.5px; color: #4b2a20; font-weight: 600; }

.apm-verdict { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 28px; align-items: center; background: #fff; border-radius: var(--apm-r-2); padding: clamp(22px, 3vw, 36px); box-shadow: var(--apm-ombre); }
.apm-verdict h2 { font-size: clamp(26px, 2.8vw, 34px); margin-bottom: 10px; }
.apm-verdict p { color: var(--apm-encre-2); font-size: 17.5px; }
.apm-verdict .apm-note { min-width: 92px; height: 92px; font-size: 32px; }

.apm-auteur { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 22px; align-items: center; border-radius: var(--apm-r); background: var(--apm-sauge-pale); padding: 24px; max-width: 860px; }
.apm-auteur img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; }
.apm-auteur strong { font-size: 18px; display: block; }
.apm-auteur p { color: var(--apm-encre-2); font-size: 15.5px; margin-top: 4px; }

.apm-barre-achat {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; background: #fff; box-shadow: 0 -10px 30px -12px rgba(34, 48, 42, .3);
  translate: 0 110%; transition: translate .35s cubic-bezier(.16, 1, .3, 1);
}
.apm-barre-achat.is-visible { translate: 0 0; }
.apm-barre-achat .apm-cadre { display: flex; align-items: center; gap: 16px; min-height: 76px; }
.apm-barre-achat img { width: 52px; height: 52px; object-fit: contain; background: var(--apm-poudre); border-radius: 12px; padding: 4px; mix-blend-mode: multiply; }
.apm-barre-achat__nom { font-weight: 700; line-height: 1.25; }
.apm-barre-achat__nom span { display: block; font-size: 13px; color: var(--apm-gris); font-weight: 500; }
.apm-barre-achat__prix { margin-left: auto; font-size: 22px; font-weight: 800; letter-spacing: -.02em; }

.apm-figure-dans { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.apm-figure-dans p { font-weight: 650; margin-right: 6px; }

/* ---------- guide et article ---------- */
.apm-article-tete { padding: 18px 0 30px; }
.apm-article-tete h1 { font-size: clamp(36px, 4.8vw, 62px); letter-spacing: -.035em; max-width: 20ch; }
.apm-article-tete__chapo { font-size: clamp(18px, 1.6vw, 21px); color: var(--apm-encre-2); margin-top: 18px; max-width: 62ch; }
.apm-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin-top: 22px; font-size: 14.5px; color: var(--apm-gris); }
.apm-meta img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
.apm-meta > span { display: inline-flex; align-items: center; gap: 8px; }
.apm-meta strong { color: var(--apm-encre); }
.apm-une { border-radius: var(--apm-r-2); overflow: hidden; aspect-ratio: 21 / 9; margin-bottom: 8px; }
.apm-une img { width: 100%; height: 100%; object-fit: cover; }
.apm-credit { font-size: 13px; color: var(--apm-gris); margin-bottom: 36px; }
.apm-credit a { color: var(--apm-gris); }

.apm-infos { margin: 0 0 28px; }
.apm-infos__titre { font-weight: 700; font-size: 15px; color: var(--apm-encre-2); margin-bottom: 10px; }
.apm-infos__piste { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(230px, 1fr); gap: 12px; overflow-x: auto; padding-bottom: 6px; scrollbar-width: thin; scrollbar-color: var(--apm-trait-2) transparent; }
.apm-info { display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: 4px 12px; align-items: center; padding: 12px; border-radius: 16px; background: #fff; box-shadow: inset 0 0 0 1px var(--apm-trait); text-decoration: none; color: var(--apm-encre); transition: box-shadow .2s; }
.apm-info:hover, .apm-info:focus-visible { box-shadow: inset 0 0 0 1.5px var(--apm-encre); color: var(--apm-encre); outline: none; }
.apm-info img { grid-row: span 3; width: 60px; height: 60px; object-fit: contain; background: var(--apm-poudre); border-radius: 12px; padding: 4px; mix-blend-mode: multiply; }
.apm-info small { font-size: 12.5px; color: var(--apm-sauge-fonce); font-weight: 650; }
.apm-info strong { font-size: 15px; line-height: 1.2; }
.apm-info span { font-size: 13.5px; color: var(--apm-gris); }

.apm-sommaire { border-radius: 18px; background: var(--apm-poudre); padding: 2px 20px; margin-bottom: 36px; }
.apm-sommaire summary { list-style: none; display: flex; justify-content: space-between; align-items: center; padding: 16px 0; font-weight: 650; cursor: pointer; }
.apm-sommaire summary::-webkit-details-marker { display: none; }
.apm-sommaire[open] summary svg { transform: rotate(180deg); }
.apm-sommaire ol { margin: 0 0 16px; padding-left: 1.2em; display: grid; gap: 6px; }
.apm-sommaire a { color: var(--apm-encre); }

.apm-corps { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 64px; align-items: start; }
.apm-classement { margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--apm-trait-2); }
.apm-classement li { list-style: none; display: grid; grid-template-columns: 36px 64px minmax(0, 1fr) 46px 104px; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--apm-trait-2); }
.apm-classement__rang { font-size: 22px; font-weight: 800; color: var(--apm-gris-2); }
.apm-classement img { width: 64px; height: 64px; object-fit: contain; background: var(--apm-poudre); border-radius: 12px; padding: 5px; mix-blend-mode: multiply; }
.apm-classement a { color: var(--apm-encre); font-weight: 700; text-decoration: none; }
.apm-classement a:hover { text-decoration: underline; }
.apm-classement small { display: block; color: var(--apm-gris); font-size: 14px; }
.apm-classement__prix { font-weight: 750; white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; }

.apm-quiz { margin: 40px 0; border-radius: var(--apm-r-2); background: var(--apm-sauge-pale); padding: clamp(22px, 3vw, 32px); }
.apm-quiz h2 { margin-top: 0 !important; }
.apm-quiz fieldset { border: 0; padding: 0; margin: 18px 0 0; }
.apm-quiz legend { font-weight: 650; margin-bottom: 10px; color: var(--apm-encre); }
.apm-quiz__choix { display: flex; flex-wrap: wrap; gap: 8px; }
.apm-quiz__choix label { position: relative; }
.apm-quiz__choix input { position: absolute; opacity: 0; }
.apm-quiz__choix span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px; background: #fff; box-shadow: 0 0 0 1.5px var(--apm-trait-2); font-weight: 600; font-size: 15px; cursor: pointer; color: var(--apm-encre); }
.apm-quiz__choix input:checked + span { background: var(--apm-encre); color: #fff; box-shadow: none; }
.apm-quiz__choix input:focus-visible + span { outline: 2px solid var(--apm-sauge-fonce); outline-offset: 2px; }
.apm-quiz__res { margin-top: 22px; display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 18px; align-items: center; background: #fff; border-radius: 20px; padding: 16px; box-shadow: var(--apm-ombre); }
.apm-quiz__res img { width: 96px; height: 96px; object-fit: contain; background: var(--apm-poudre); border-radius: 14px; padding: 6px; mix-blend-mode: multiply; }
.apm-quiz__res strong { display: block; font-size: 18px; }
.apm-quiz__res a { color: var(--apm-encre); }
.apm-quiz__res p { font-size: 15px; color: var(--apm-gris); margin-top: 4px !important; }

.apm-mini { margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--apm-trait-2); }
.apm-mini__tete { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 28px; align-items: center; margin-bottom: 22px; }
.apm-mini__visu { position: relative; aspect-ratio: 1; border-radius: 22px; background: var(--apm-poudre); display: grid; place-items: center; }
.apm-mini__visu img { width: 78%; height: 78%; object-fit: contain; mix-blend-mode: multiply; }
.apm-mini__rang { position: absolute; top: 10px; left: 10px; width: 40px; height: 40px; border-radius: 50%; background: #fff; display: grid; place-items: center; font-weight: 800; box-shadow: var(--apm-ombre); }
.apm-mini h2 { margin: 0 0 8px !important; }
.apm-mini__usage { color: var(--apm-sauge-fonce); font-weight: 650; margin-top: -2px; }
.apm-mini__notes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.apm-mini__achat { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; margin-top: 24px; padding: 18px; border-radius: 18px; background: #fbf8f7; }
.apm-mini__achat strong { font-size: 26px; letter-spacing: -.02em; }
.apm-mini__achat small { display: block; color: var(--apm-gris); font-size: 13px; }
.apm-pour-contre { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
.apm-pour-contre div { border-radius: 16px; padding: 16px 18px; background: #fff; box-shadow: 0 0 0 1px var(--apm-trait); }
.apm-pour-contre strong { display: block; margin-bottom: 8px; color: var(--apm-encre); }
.apm-pour-contre ul { margin: 0; padding-left: 1.1em; font-size: 15.5px; }

.apm-tableau { width: 100%; border-collapse: collapse; font-size: 15.5px; margin-top: 18px; }
.apm-tableau th, .apm-tableau td { padding: 12px 10px; border-bottom: 1px solid var(--apm-trait-2); text-align: left; }
.apm-tableau thead th { font-size: 13.5px; color: var(--apm-gris); font-weight: 600; }
.apm-tableau td:first-child { font-weight: 700; color: var(--apm-encre); }
.apm-tableau-boite { overflow-x: auto; }

.apm-produit-inline { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 22px; align-items: center; margin: 34px 0; padding: 20px; border-radius: var(--apm-r); background: #fff; box-shadow: var(--apm-ombre); }
.apm-produit-inline__visu { position: relative; aspect-ratio: 1; border-radius: 16px; background: var(--apm-poudre); display: grid; place-items: center; }
.apm-produit-inline__visu img { width: 80%; height: 80%; object-fit: contain; }
.apm-produit-inline strong { font-size: 18px; display: block; color: var(--apm-encre); }
.apm-produit-inline p { font-size: 15.5px; margin-top: 6px !important; }
.apm-produit-inline__bas { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 14px; }
.apm-produit-inline__bas b { font-size: 22px; color: var(--apm-encre); }

.apm-encart { margin: 30px 0; border-radius: var(--apm-r); padding: 22px 24px; background: var(--apm-sauge-pale); }
.apm-encart strong { display: block; color: var(--apm-encre); margin-bottom: 6px; font-size: 17px; }
.apm-encart--alerte { background: var(--apm-alerte-pale); }
.apm-encart--alerte strong { color: #7a2f1b; }
.apm-niveaux { display: grid; gap: 12px; margin-top: 18px; }
.apm-niveau { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 16px; padding: 16px 18px; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1px var(--apm-trait); }
.apm-niveau b { font-size: 15px; color: var(--apm-encre); }
.apm-niveau ul { margin: 0; padding-left: 1.1em; font-size: 16px; }

.apm-a-lire { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }

/* ---------- réduit ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- responsive ---------- */
@media (max-width: 1180px) {
  .apm-recherche input { width: 150px; }
  .apm-nav__btn { padding: 10px 8px; font-size: 15px; }
  .apm-calc span { display: none; }
  .apm-calc { width: 44px; padding: 0; justify-content: center; }
}
@media (max-width: 1060px) {
  .apm-nav, .apm-recherche--entete, .apm-bandeau nav, .apm-mega { display: none; }
  .apm-burger { display: grid; }
  .apm-outils { margin-left: auto; }
  .apm-hero__grille, .apm-coach, .apm-calculateur, .apm-lettre, .apm-banc, .apm-fiche, .apm-test, .apm-corps, .apm-texte-rubrique { grid-template-columns: minmax(0, 1fr); }
  .apm-galerie, .apm-ci, .apm-aparte { position: static; }
  .apm-tuiles, .apm-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .apm-guides { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .apm-guides .apm-guide-carte:first-child { grid-column: 1 / -1; }
  .apm-pied__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .apm-pied__marque { grid-column: 1 / -1; }
  .apm-etagere__piste { grid-auto-columns: minmax(240px, calc((100% - 2 * 20px) / 3)); }
  .apm-hero__visuel { max-width: 560px; }
  .apm-outil__grille { grid-template-columns: minmax(0, 1fr); }
  .apm-entrees { grid-template-columns: minmax(0, 1fr); margin-top: 24px; padding: 0; }
  .apm-top { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  body { font-size: 16.5px; }
  .apm-entete__in { min-height: 64px; gap: 12px; }
  .apm-logo__mot { font-size: 18px; }
  .apm-logo__signe { width: 32px; height: 32px; }
  .apm-calc span { display: none; }
  .apm-calc { width: 44px; padding: 0; justify-content: center; }
  .apm-bandeau p { font-size: 12.5px; }
  .apm-hero h1 { font-size: clamp(36px, 10vw, 46px); }
  .apm-hero__actions .apm-btn { flex: 1 1 100%; }
  .apm-entree { grid-template-columns: 84px minmax(0, 1fr); padding: 12px 40px 12px 12px; }
  .apm-entree h2 { font-size: 18px; }
  .apm-carte-flottante { position: relative; left: auto; bottom: auto; width: auto; margin: -64px 14px 0; }
  .apm-diapo { aspect-ratio: 4 / 4.3; margin-top: 8px; }
  .apm-diapo__produit { width: auto; max-width: 74%; grid-template-columns: 48px minmax(0, 1fr); padding: 8px 12px 8px 8px; gap: 10px; }
  .apm-diapo__vignette { width: 48px; height: 48px; }
  .apm-diapo__produit--a { left: 10px; top: 12px; }
  .apm-diapo__produit--b { right: 10px; top: auto; bottom: 76px; }
  .apm-diapo__produit strong { font-size: 14px; }
  .apm-hero__visuel { margin-bottom: 36px; }
  .apm-carte-flottante__note { right: 10px; }
  .apm-hero__photo { border-radius: 160px 160px var(--apm-r) var(--apm-r); aspect-ratio: 4 / 4.2; }
  .apm-reassurance { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 6px 16px; }
  .apm-reassurance li { padding: 10px 0; }
  .apm-mini__achat .apm-lien-fort { white-space: normal; }
  .apm-objectifs { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--apm-gouttiere)); padding-inline: var(--apm-gouttiere); scrollbar-width: none; mask-image: linear-gradient(90deg, #000 85%, transparent); }
  .apm-objectif { flex: none; }
  .apm-etagere__piste { grid-auto-columns: 74%; margin-inline: calc(-1 * var(--apm-gouttiere)); padding-inline: var(--apm-gouttiere); scroll-padding-inline: var(--apm-gouttiere); }
  .apm-etagere__fleche { display: none; }
  .apm-tuiles, .apm-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .apm-tuile__txt { font-size: 15px; padding: 12px; }
  .apm-guides, .apm-conseils, .apm-a-lire, .apm-retenir, .apm-pour-contre { grid-template-columns: minmax(0, 1fr); }
  .apm-tete-section { flex-direction: column; align-items: flex-start; }
  .apm-silo__tete { flex-direction: column; align-items: flex-start; gap: 6px; }
  .apm-silo__tete .apm-lien-fort, .apm-tete-section .apm-lien-fort { white-space: normal; }
  .apm-top__une { grid-template-columns: minmax(0, 1fr); }
  .apm-top__visu { min-height: 260px; }
  .apm-top__ligne { grid-template-columns: 28px 60px minmax(0, 1fr) auto; gap: 10px; }
  .apm-top__ligne .apm-top__prix { display: none; }
  .apm-top__vignette { width: 60px; height: 60px; }
  .apm-champs, .apm-champs--3 { grid-template-columns: minmax(0, 1fr); }
  .apm-lettre__ligne { flex-direction: column; }
  .apm-pied__grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .apm-sous { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--apm-gouttiere)); padding-inline: var(--apm-gouttiere); scrollbar-width: none; mask-image: linear-gradient(90deg, #000 85%, transparent); }
  .apm-sous a { flex: none; }
  .apm-filtres { top: 64px; }
  .apm-filtres__in { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .apm-filtre { position: static; }
  .apm-filtre > button { flex: none; }
  .apm-filtre__panneau { position: fixed; left: 0; right: 0; bottom: 0; top: auto; border-radius: 24px 24px 0 0; padding: 22px 20px 30px; min-width: 0; }
  .apm-tri { margin-left: 0; flex: none; }
  .apm-tri span { display: none; }
  .apm-produit__corps { padding: 12px 12px 14px; }
  .apm-produit h2, .apm-produit h3 { font-size: 15.5px; }
  .apm-produit__prix strong { font-size: 18px; }
  .apm-produit__prix { flex-direction: column; align-items: flex-start; gap: 2px; }
  .apm-panier { height: 40px; min-width: 40px; }
  .apm-mots { display: none; }
  .apm-etagere .apm-mots { display: flex; }
  .apm-bandeau-reassur { display: none; }
  .apm-reassur-mini { display: flex; }
  .apm-galerie__principale { aspect-ratio: 1 / .78; }
  .apm-galerie__vignettes { gap: 8px; }
  .apm-galerie__vignettes button { border-radius: 12px; padding: 5px; }
  .apm-fiche { padding-top: 12px; }
  body:has(.apm-barre-achat) { padding-bottom: 76px; }
  .apm-chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .apm-chiffres div { padding: 20px 14px 14px 0; border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, .16); }
  .apm-chiffres div + div { padding-left: 0; }
  .apm-note-bloc__chiffre { font-size: 48px; }
  .apm-boite-prix__montant { font-size: 34px; }
  .apm-verdict { grid-template-columns: minmax(0, 1fr); }
  .apm-auteur { grid-template-columns: 64px minmax(0, 1fr); padding: 18px; }
  .apm-auteur img { width: 64px; height: 64px; }
  .apm-barre-achat__nom span { display: none; }
  .apm-barre-achat .apm-btn span { display: none; }
  .apm-barre-achat__nom { font-size: 14.5px; }
  .apm-barre-achat__prix { font-size: 18px; }
  .apm-une { aspect-ratio: 4 / 3; }
  .apm-classement li { grid-template-columns: 28px 52px minmax(0, 1fr) auto; }
  .apm-classement li .apm-classement__prix { display: none; }
  .apm-classement img { width: 52px; height: 52px; }
  .apm-mini__tete { grid-template-columns: 110px minmax(0, 1fr); gap: 16px; }
  .apm-quiz__res { grid-template-columns: 72px minmax(0, 1fr); }
  .apm-quiz__res .apm-btn { grid-column: 1 / -1; }
  .apm-quiz__res img { width: 72px; height: 72px; }
  .apm-produit-inline { grid-template-columns: 96px minmax(0, 1fr); gap: 14px; padding: 14px; }
  .apm-niveau { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .apm-prose { font-size: 17px; }
}


/* ==================================================================== */
/* Ajouts WordPress : theme/wp-ajouts.css                                */
/* ==================================================================== */
/* Ajouts propres à WordPress. Tout le design vient de maquettes/apm.css : ici, seulement ce que WordPress produit et que
   les maquettes n'avaient pas (barre d'administration, recherche réelle, contenu rédigé dans l'éditeur, formulaires, états
   vides, fiche sans offre), et les styles en ligne des maquettes passés en classes. Classes toujours préfixées apm-. */

/* Barre d'administration : l'en-tête et la barre de filtres collés descendent d'autant */
.admin-bar .apm-entete { top: 32px; }
.admin-bar .apm-filtres { top: calc(74px + 32px); }
@media (max-width: 782px) { .admin-bar .apm-entete { top: 46px; } .admin-bar .apm-filtres { top: calc(64px + 46px); } }
@media (max-width: 600px) { .admin-bar .apm-entete { top: 0; } .admin-bar .apm-filtres { top: 64px; } }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Tiroir : bouton de fermeture toujours visible (style en ligne de la maquette), recherche sous le logo */
.apm-tiroir__tete .apm-burger { display: grid; }
.apm-recherche--tiroir { margin-bottom: 8px; }
.apm-recherche--page { margin: 22px 0 8px; max-width: 520px; }
.apm-recherche--page input { width: 100%; }

/* Carte produit : le visuel laisse passer le clic vers la fiche (lien du titre étendu à la carte, C5) */
.apm-produit__visu img { pointer-events: none; }

/* Produits blancs sur tuile poudrée : fondus en multiply là où la maquette n'avait qu'un détouré (C5) */
.apm-mega__une img.is-fond-blanc, .apm-top__vignette img.is-fond-blanc, .apm-produit-inline__visu img.is-fond-blanc { mix-blend-mode: multiply; }

/* Fiche : prix barré sur une baisse (C9), réassurance sous le fil d'Ariane */
.apm-boite-prix__ancien { font-size: 18px; font-weight: 600; color: var(--apm-gris); }
.apm-bandeau-reassur--fiche { margin-top: 14px; }

/* Fiche sans offre en stock : « Plus vendu pour le moment » et alternatives en vente (C9) */
.apm-boite-prix--absente { box-shadow: 0 0 0 1px var(--apm-trait); }
.apm-boite-prix--absente p { font-size: 16px; color: var(--apm-encre-2); }
.apm-boite-prix--absente ul { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; }
.apm-boite-prix--absente li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 8px 8px 8px 14px; border-radius: 14px; background: #fbf8f7; font-size: 15px; }
.apm-boite-prix--absente li > a:first-child { color: var(--apm-encre); font-weight: 650; text-decoration: none; }
.apm-boite-prix--absente li > span { font-weight: 750; white-space: nowrap; }
@media (max-width: 760px) { .apm-boite-prix--absente .apm-btn span { display: none; } .apm-boite-prix--absente .apm-btn { padding: 0 12px; } }

/* Fiche : blocs de la maquette posés en classes (styles en ligne de build.py) */
.apm-avis-bloc { display: grid; gap: 40px; }
.apm-grille--serree { padding-top: 0; }
.apm-ci--seul { position: static; max-width: 760px; }
.apm-test .apm-prose p + h3, .apm-test .apm-prose ul + h3 { margin-top: 28px; }
.apm-test .apm-prose ul { margin: 12px 0 0; }

/* Rubrique : texte sans colonne d'aparté, rayons voisins sous la FAQ */
.apm-texte-rubrique--seul { grid-template-columns: minmax(0, 1fr); }
.apm-rayon { margin-top: 56px; }
.apm-rayon--seul { margin-top: 0; }
.apm-rayon h2 { font-size: 24px; margin-bottom: 16px; }
.apm-aparte__boite--alerte { background: var(--apm-alerte-pale); }
.apm-aparte__boite--alerte strong { color: #7a2f1b; }
.apm-aparte__boite--sauge { background: var(--apm-sauge-pale); }
.apm-aparte__boite .apm-lien-fort { margin-top: 10px; }
.apm-section--serre { padding-top: 8px; }
.apm-silo__tete h2 { font-size: 24px; }

/* Accueil : lien sous le calculateur */
.apm-calc-boite__lien { margin-top: 16px; }

/* Article et guide */
.apm-figure-une { margin: 0; }
.apm-corps--seul { grid-template-columns: minmax(0, 1fr); }
.apm-faq-bloc { margin-top: 48px; }
.apm-auteur--marge { margin-top: 40px; }
.apm-encart--seul { margin: 0; }
.apm-redaction { margin-top: 40px; max-width: 860px; border-radius: var(--apm-r); background: var(--apm-poudre); padding: 22px 24px; }
.apm-redaction strong { display: block; font-size: 17px; color: var(--apm-encre); }
.apm-redaction p { margin-top: 6px !important; font-size: 15.5px; color: var(--apm-encre-2); }
.apm-meta a { color: inherit; text-decoration: none; }
.apm-auteur strong a { color: inherit; text-decoration: none; }
.apm-auteur strong a:hover, .apm-meta a:hover { text-decoration: underline; }

/* Contenu rédigé dans l'éditeur (articles gardés, pages, routine de publication) */
.apm-prose--wp :where(p, ul, ol) { margin: 0 0 1em; }
.apm-prose--wp :where(ol) { padding-left: 1.3em; }
.apm-prose--wp :where(h4) { font-size: 18px; color: var(--apm-encre); margin: 26px 0 8px; }
.apm-prose--wp img { height: auto; border-radius: 16px; }
.apm-prose--wp :where(figure) { margin: 28px 0; }
.apm-prose--wp figcaption { margin-top: 8px; font-size: 13.5px; color: var(--apm-gris); }
.apm-prose--wp :where(table) { width: 100%; margin: 0 0 1.2em; border-collapse: collapse; font-size: 15.5px; }
.apm-prose--wp :where(th, td) { padding: 12px 10px; border-bottom: 1px solid var(--apm-trait-2); text-align: left; vertical-align: top; }
.apm-prose--wp :where(thead th) { font-size: 13.5px; color: var(--apm-gris); font-weight: 600; }
.apm-prose--wp :where(blockquote) { margin: 1.4em 0; padding: 4px 0 4px 18px; border-left: 3px solid var(--apm-sauge); color: var(--apm-encre-2); }
.apm-prose--wp .alignleft { float: left; margin: 6px 24px 12px 0; max-width: 50%; }
.apm-prose--wp .alignright { float: right; margin: 6px 0 12px 24px; max-width: 50%; }
.apm-prose--wp .aligncenter { margin-inline: auto; }
.apm-prose--wp iframe { max-width: 100%; }
.apm-prose--wp iframe[src*="youtube"] { width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; border-radius: 16px; }
.apm-prose--wp .apm-faq, .apm-prose--wp .apm-auteur { font-size: 17px; }
@media (max-width: 760px) {
  .apm-prose--wp .alignleft, .apm-prose--wp .alignright { float: none; margin: 16px 0; max-width: 100%; }
  .apm-prose--wp :where(table) { display: block; overflow-x: auto; }
}

/* Pages, index, recherche, 404 */
.apm-page { padding-bottom: clamp(56px, 8vw, 104px); }
.apm-page--vide { padding-top: clamp(40px, 6vw, 80px); }
.apm-page--vide h1 { font-size: clamp(34px, 4.6vw, 56px); letter-spacing: -.03em; }
.apm-page--vide > p { margin-top: 14px; color: var(--apm-gris); max-width: 60ch; }
.apm-page--vide .apm-voisines { margin-top: 24px; }
.apm-liste-titre { margin: 36px 0 16px; font-size: clamp(24px, 2.6vw, 32px); }
.apm-a-lire--liste { row-gap: 24px; }
.apm-coach h1 { font-size: clamp(32px, 4vw, 52px); letter-spacing: -.03em; }
@media (max-width: 1060px) { .apm-a-lire--liste { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .apm-a-lire--liste { grid-template-columns: minmax(0, 1fr); } }

/* Guide « meilleur X » (inc/guide.php) : cases sans visuel, date du classement, modèle plus vendu, modèles pas retenus */
.apm-info__vide { grid-row: span 3; width: 60px; height: 60px; border-radius: 12px; background: var(--apm-poudre); }
.apm-classement__vide { display: block; width: 64px; height: 64px; border-radius: 12px; background: var(--apm-poudre); }
.apm-guide-date { margin-top: 12px; font-size: 13.5px; color: var(--apm-gris); }
.apm-mini__achat--absent strong { font-size: 18px; letter-spacing: 0; }
.apm-mini__achat--absent small a { color: var(--apm-encre); }
.apm-mini--absent .apm-mini__visu img { opacity: .55; }
.apm-pas-retenus { margin: 0; padding: 0; display: grid; gap: 14px; }
.apm-pas-retenus li { list-style: none; padding: 16px 18px; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1px var(--apm-trait); }
.apm-pas-retenus li p { margin: 6px 0 8px; }
@media (max-width: 760px) { .apm-classement__vide { width: 52px; height: 52px; } }

/* Plan du site */
.apm-plan details { margin: 6px 0; padding: 10px 14px; border-radius: 14px; background: var(--apm-poudre); }
.apm-plan summary { cursor: pointer; font-weight: 650; color: var(--apm-encre); }
.apm-plan details ul { margin: 10px 0 4px; }

/* Bas de page : bouton « Gérer les cookies » posé comme un lien (A4) */
.apm-cmp-gerer { padding: 0; border: 0; background: none; color: var(--apm-encre-2); font: inherit; font-size: 15px; cursor: pointer; }
.apm-cmp-gerer:hover { color: var(--apm-encre); text-decoration: underline; }

/* Formulaires des extensions (Contact Form 7, Fluent Forms) : page Contact et lettre d'information */
.apm-prose--wp .wpcf7 form p, .apm-lettre .wpcf7 form p { display: flex; flex-direction: column; gap: 6px; margin: 0 0 14px; }
.apm-prose--wp :where(input[type="text"], input[type="email"], input[type="tel"], textarea, select) {
  width: 100%; min-height: 52px; padding: 12px 16px; border: 1.5px solid var(--apm-trait-2); border-radius: 16px; background: #fbf8f7; font: inherit; color: var(--apm-encre);
}
.apm-prose--wp :where(input, textarea, select):focus { outline: none; border-color: var(--apm-sauge-fonce); background: #fff; box-shadow: 0 0 0 3px var(--apm-sauge-pale); }
.apm-prose--wp :where(input[type="submit"], button[type="submit"]), .apm-lettre :where(input[type="submit"], button[type="submit"]) {
  min-height: 52px; padding: 0 26px; border: 0; border-radius: 999px; background: var(--apm-encre); color: #fff; font: inherit; font-weight: 650; cursor: pointer;
}
.apm-lettre :where(input[type="submit"], button[type="submit"]) { background: #fff; color: var(--apm-encre); }
.wpcf7 .wpcf7-spinner { display: none; }
.wpcf7 .wpcf7-not-valid-tip { margin-top: 4px; font-size: 14px; color: var(--apm-alerte); }
.wpcf7 .wpcf7-response-output { margin: 16px 0 0; padding: 12px 16px; border: 1px solid var(--apm-trait-2); border-radius: 14px; background: #fff; color: var(--apm-encre); }
.wpcf7 form.sent .wpcf7-response-output { border-color: #3f9a63; background: #e8f5ee; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { border-color: var(--apm-alerte); background: var(--apm-alerte-pale); }


/* ==========================================================================
   Composants mvt-* : articles de la routine et outils interactifs hérités (curseurs, quiz).
   Leur style vivait dans le « CSS additionnel » de Hello Elementor. Ancré sur le corps d'article (.apm-prose) ;
   le code court [apm_outil] pose l'enveloppe .apm-outil-herite. Jetons du site seulement, pas de couleur en dur.
   ========================================================================== */
.apm-prose .apm-outil-herite { margin: 34px 0; }
.apm-prose .apm-outil-herite > :first-child { margin-top: 0; }
.apm-prose .apm-outil-herite > :last-child { margin-bottom: 0; }
.apm-prose :is(.mvt-key, .mvt-tool, .mvt-src, .mvt-quote, .mvt-faq, .mvt-grid, .mvt-tab) { font-size: 17px; line-height: 1.6; }
.apm-prose .mvt-img { display: block; max-width: 100%; height: auto; border-radius: 16px; }

/* Encart clé, comme .apm-encart mais en carte */
.apm-prose .mvt-key { margin: 34px 0; border-radius: var(--apm-r); background: var(--apm-sauge-pale); overflow: hidden; box-shadow: var(--apm-ombre); }
.apm-prose .mvt-key-bar { height: 5px; background: linear-gradient(90deg, var(--apm-sauge-fonce), var(--apm-sauge)); }
.apm-prose .mvt-key-in { position: relative; padding: clamp(20px, 3vw, 28px); }
.apm-prose .mvt-key-top { display: flex; justify-content: space-between; align-items: center; gap: 10px 14px; flex-wrap: wrap; margin-bottom: 8px; }
.apm-prose .mvt-kick { display: block; margin: 0; font-size: 14px; font-weight: 650; color: var(--apm-gris); }
.apm-prose .mvt-badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: #fff; box-shadow: 0 0 0 1px var(--apm-sauge); color: var(--apm-sauge-fonce); font-size: 13.5px; font-weight: 650; line-height: 1.2; white-space: nowrap; }
.apm-prose .mvt-badge::before { content: ""; flex: none; width: 14px; height: 14px; background-color: currentColor; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/><path d='m9 12 2 2 4-4'/></svg>") no-repeat center / contain; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/><path d='m9 12 2 2 4-4'/></svg>") no-repeat center / contain; }
.apm-prose .mvt-key-h { margin: 0 0 14px; font-size: clamp(19px, 2.2vw, 22px); font-weight: 750; line-height: 1.25; letter-spacing: -.01em; color: var(--apm-encre); }
.apm-prose .mvt-key-in ul { list-style: none; margin: 0; padding: 0; counter-reset: mvt; }
.apm-prose .mvt-key-in li { position: relative; margin: 0; padding: 11px 0 11px 36px; border-bottom: 1px solid var(--apm-trait-2); line-height: 1.55; color: var(--apm-encre-2); counter-increment: mvt; }
.apm-prose .mvt-key-in li:last-child { border-bottom: 0; padding-bottom: 0; }
.apm-prose .mvt-key-in li::before { content: counter(mvt); position: absolute; left: 0; top: 11px; width: 24px; height: 24px; border-radius: 50%; background: var(--apm-sauge-fonce); color: #fff; font-size: 13px; font-weight: 700; line-height: 24px; text-align: center; font-variant-numeric: tabular-nums; }
.apm-prose .mvt-key-in li + li { margin-top: 0; }
.apm-prose .mvt-foot { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 16px 0 0; padding-top: 12px; border-top: 1px solid var(--apm-trait-2); font-size: 14px; color: var(--apm-gris); }

/* Cartes */
.apm-prose .mvt-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 16px; margin: 34px 0; }
.apm-prose .mvt-card { position: relative; min-width: 0; padding: 22px 20px; border-radius: var(--apm-r); background: #fff; box-shadow: 0 0 0 1px var(--apm-trait), var(--apm-ombre); overflow: hidden; }
.apm-prose .mvt-num { position: absolute; top: 10px; right: 16px; font-size: 40px; font-weight: 800; line-height: 1; color: var(--apm-sauge); opacity: .35; font-variant-numeric: tabular-nums; }
.apm-prose .mvt-ico { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; margin: 0 0 14px; border-radius: 14px; background: var(--apm-sauge-pale); color: var(--apm-sauge-fonce); }
.apm-prose .mvt-ico svg { width: 22px; height: 22px; fill: none; stroke: currentColor; }
.apm-prose .mvt-card-t { margin: 0 0 6px; font-size: 17px; font-weight: 700; line-height: 1.3; color: var(--apm-encre); }
.apm-prose .mvt-card-x { margin: 0; font-size: 15.5px; line-height: 1.55; color: var(--apm-encre-2); }

/* Citation */
.apm-prose .mvt-quote { margin: 30px 0; padding: 20px 24px; border: 0; border-left: 4px solid var(--apm-sauge-fonce); border-radius: 0 var(--apm-r) var(--apm-r) 0; background: var(--apm-poudre); color: var(--apm-encre); font-style: normal; }
.apm-prose .mvt-quote .mvt-kick { margin-bottom: 6px; }
.apm-prose .mvt-quote > :first-child, .apm-prose .mvt-out > :first-child, .apm-prose .mvt-q > :first-child, .apm-prose .mvt-tool > :first-child { margin-top: 0; }
.apm-prose .mvt-quote > :last-child, .apm-prose .mvt-out > :last-child, .apm-prose .mvt-q > :last-child, .apm-prose .mvt-tool > :last-child, .apm-prose .mvt-key-in > :last-child { margin-bottom: 0; }

/* Tableau, comme .apm-tableau ; défile en largeur sur mobile */
.apm-prose .mvt-tab { display: block; width: 100%; max-width: 100%; margin: 28px 0; overflow-x: auto; border-collapse: collapse; font-size: 15.5px; background: #fff; -webkit-overflow-scrolling: touch; }
.apm-prose .mvt-tab :is(thead, tbody, tfoot) { display: table; width: 100%; min-width: 480px; }
.apm-prose .mvt-tab :is(th, td) { padding: 12px 10px; border-bottom: 1px solid var(--apm-trait-2); text-align: left; vertical-align: top; color: var(--apm-encre-2); background: transparent; }
.apm-prose .mvt-tab th { font-size: 14px; font-weight: 650; color: var(--apm-encre); background: var(--apm-sauge-pale); border-bottom-color: var(--apm-sauge); }
.apm-prose .mvt-tab td:first-child { font-weight: 700; color: var(--apm-encre); }
.apm-prose .mvt-tab tbody tr:nth-child(even) td { background: var(--apm-poudre); }

/* FAQ, comme .apm-faq */
.apm-prose .mvt-faq { margin: 34px 0; max-width: 860px; }
.apm-prose .mvt-q { margin: 0; border-top: 1px solid var(--apm-trait-2); padding: 0; }
.apm-prose .mvt-q:last-of-type { border-bottom: 1px solid var(--apm-trait-2); }
.apm-prose .mvt-q summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; padding: 16px 2px; list-style: none; cursor: pointer; }
.apm-prose .mvt-q summary::-webkit-details-marker { display: none; }
.apm-prose .mvt-q summary h3 { margin: 0; font-size: 18px; font-weight: 650; line-height: 1.3; letter-spacing: 0; color: var(--apm-encre); }
.apm-prose .mvt-q summary::after { content: ""; flex: none; width: 10px; height: 10px; margin-right: 4px; border-right: 2px solid var(--apm-sauge-fonce); border-bottom: 2px solid var(--apm-sauge-fonce); transform: rotate(45deg); transition: transform .3s cubic-bezier(.16, 1, .3, 1); }
.apm-prose .mvt-q[open] summary::after { transform: rotate(-135deg); }
.apm-prose .mvt-q > p { margin: 0; padding: 0 2px 20px; max-width: 70ch; color: var(--apm-encre-2); }

/* Sources */
.apm-prose .mvt-src { margin: 34px 0; padding: clamp(18px, 3vw, 26px); border-radius: var(--apm-r); background: var(--apm-poudre); }
.apm-prose .mvt-src h2 { margin: 0 0 12px; font-size: 20px; }
.apm-prose .mvt-src ul { list-style: none; margin: 0; padding: 0; }
.apm-prose .mvt-src li { margin: 0; padding: 11px 0; border-bottom: 1px solid var(--apm-poudre-3); font-size: 15.5px; }
.apm-prose .mvt-src li:last-child { border-bottom: 0; padding-bottom: 0; }
.apm-prose .mvt-src li + li { margin-top: 0; }
.apm-prose .mvt-src a { color: var(--apm-encre); font-weight: 600; text-decoration-color: var(--apm-sauge); overflow-wrap: anywhere; }
.apm-prose .mvt-src a:hover { color: var(--apm-sauge-fonce); }
.apm-prose .mvt-tag { display: inline-block; margin: 0 8px 0 0; padding: 3px 9px; border-radius: 999px; background: #fff; color: var(--apm-sauge-fonce); font-size: 13px; font-weight: 650; line-height: 1.3; }

/* Outils : boîte, comme .apm-calc-boite */
.apm-prose .mvt-tool { margin: 34px 0; padding: clamp(22px, 3vw, 34px); border-radius: var(--apm-r-2); background: #fff; box-shadow: 0 0 0 1px var(--apm-trait), var(--apm-ombre-2); }
.apm-prose .mvt-tool label { display: block; margin: 0 0 6px; font-size: 14px; font-weight: 600; color: var(--apm-encre-2); }
.apm-prose .mvt-tool p { margin: 0 0 8px; }
.apm-prose .mvt-tool .mvt-key-h { margin-bottom: 16px; }
.apm-prose .mvt-val { display: inline-block; font-size: 30px; font-weight: 800; line-height: 1.1; letter-spacing: -.02em; color: var(--apm-sauge-fonce); font-variant-numeric: tabular-nums; }
.apm-prose .mvt-gauge { height: 12px; margin: 16px 0 4px; border-radius: 999px; background: var(--apm-trait); overflow: hidden; }
.apm-prose .mvt-gauge i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--apm-sauge-fonce), var(--apm-sauge)); transition: width .25s cubic-bezier(.16, 1, .3, 1); }

/* Curseur aux couleurs du site, zone tactile de 44 px */
.apm-prose input.mvt-rng { -webkit-appearance: none; appearance: none; display: block; width: 100%; height: 44px; margin: 4px 0 12px; padding: 0; border: 0; background: transparent; cursor: pointer; accent-color: var(--apm-sauge-fonce); }
.apm-prose input.mvt-rng::-webkit-slider-runnable-track { height: 8px; border-radius: 999px; background: var(--apm-trait-2); }
.apm-prose input.mvt-rng::-moz-range-track { height: 8px; border-radius: 999px; background: var(--apm-trait-2); }
.apm-prose input.mvt-rng::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 28px; height: 28px; margin-top: -10px; border: 3px solid #fff; border-radius: 50%; background: var(--apm-sauge-fonce); box-shadow: 0 0 0 1px var(--apm-sauge-fonce), 0 4px 10px rgba(34, 48, 42, .25); }
.apm-prose input.mvt-rng::-moz-range-thumb { width: 22px; height: 22px; border: 3px solid #fff; border-radius: 50%; background: var(--apm-sauge-fonce); box-shadow: 0 0 0 1px var(--apm-sauge-fonce), 0 4px 10px rgba(34, 48, 42, .25); }
.apm-prose input.mvt-rng:focus-visible { outline: 2px solid var(--apm-sauge-fonce); outline-offset: 2px; border-radius: 12px; }

/* Quiz par étapes : une seule étape visible (état .on) */
.apm-prose .mvt-step { display: none; }
.apm-prose .mvt-step.on { display: block; }
.apm-prose .mvt-pick { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 14px; }
.apm-prose .mvt-pick button { flex: 1 1 200px; min-height: 48px; padding: 12px 18px; border: 0; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1.5px var(--apm-trait-2); color: var(--apm-encre); font: inherit; font-size: 15.5px; font-weight: 600; line-height: 1.3; text-align: left; cursor: pointer; text-decoration: none; transition: box-shadow .15s, background .15s; }
.apm-prose .mvt-pick button:hover { box-shadow: 0 0 0 1.5px var(--apm-sauge-fonce); background: var(--apm-sauge-pale); }
.apm-prose .mvt-pick button.on { background: var(--apm-encre); color: #fff; box-shadow: none; }
.apm-prose .mvt-pick button:disabled { cursor: default; }
.apm-prose .mvt-out { margin: 16px 0 0; padding: 18px 20px; border-radius: 18px; background: var(--apm-sauge-pale); color: var(--apm-encre); font-size: 16.5px; line-height: 1.6; }
.apm-prose .mvt-out:empty { display: none; }
.apm-prose .mvt-cnt { margin: 0 0 8px; font-size: 14px; font-weight: 650; color: var(--apm-gris); font-variant-numeric: tabular-nums; }
.apm-prose .mvt-nav { display: none; margin: 16px 0 0; text-align: right; }
.apm-prose .mvt-nav.on { display: block; }
.apm-prose .mvt-nav button { min-height: 48px; padding: 0 26px; border: 0; border-radius: 999px; background: var(--apm-encre); color: #fff; font: inherit; font-weight: 650; cursor: pointer; transition: background .2s; }
.apm-prose .mvt-nav button:hover { background: var(--apm-sauge-fonce); color: #fff; }
.apm-prose .mvt-done { display: none; }
.apm-prose .mvt-done.on { display: block; margin: 16px 0 0; padding: 16px 18px; border-radius: 18px; background: var(--apm-sauge-pale); font-weight: 650; color: var(--apm-encre); }
.apm-prose .mvt-quiz-item { margin: 14px 0; padding-bottom: 14px; border-bottom: 1px solid var(--apm-trait-2); }
.apm-prose .mvt-quiz-item:last-child { border-bottom: 0; padding-bottom: 0; }
.apm-prose .mvt-quiz-item > p { margin: 0 0 8px; font-weight: 650; color: var(--apm-encre); }

/* Clavier et mouvement réduit */
.apm-prose :is(.mvt-pick button, .mvt-nav button, .mvt-q summary):focus-visible { outline: 2px solid var(--apm-sauge-fonce); outline-offset: 3px; border-radius: 16px; }
.apm-prose .mvt-pick button.on:focus-visible { outline-color: var(--apm-encre); }
@media (max-width: 760px) {
  .apm-prose .mvt-pick button { flex-basis: 100%; }
  .apm-prose .mvt-nav { text-align: stretch; }
  .apm-prose .mvt-nav button { width: 100%; }
  .apm-prose .mvt-q summary h3 { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .apm-prose :is(.mvt-gauge i, .mvt-q summary::after, .mvt-pick button, .mvt-nav button) { transition: none; }
}

/* ---------- Recette du 14/10/2026 après la bascule (375 px) ---------- */
/* Texte masqué : calé sur son bloc, sinon un libellé posé dans une rangée qui défile sort de l'écran et élargit la page. */
.apm-visu-cache { left: 0; top: 0; margin: -1px; clip-path: inset(50%); }
.apm-visu-cache:focus { width: auto; height: auto; margin: 0; padding: 10px 16px; clip: auto; clip-path: none; overflow: visible; z-index: 1000; background: var(--apm-encre); color: #fff; border-radius: 0 0 12px 0; }
/* Modèles testés mais pas retenus : une colonne qui ne s'élargit pas au contenu (C16). */
.apm-pas-retenus { grid-template-columns: minmax(0, 1fr); }
/* Lien « Mon test de… » d'un modèle non retenu : il passe à la ligne sur mobile (nom de modèle long). */
.apm-pas-retenus .apm-lien-fort { white-space: normal; }
