/*
 * Tableau de prix Labo Maison — 0.10.0 : quatre designs (A liste claire, B bouton-prix, C meilleure offre en vedette,
 * D écarts de prix) sur une base commune. Aucun JavaScript : onglets en boutons radio, dépliants en cases à cocher et <details>.
 * Mobile : container query sur le tableau (moins de 560 px de large).
 */
.lmx, .lmr {
  --lmx-green: #35db84;
  --lmx-green-dark: #0f9d58;
  --lmx-text: #5e5e69;
  --lmx-ink: #2b2e3f;
  --lmx-indigo: #525b81;
  --lmx-indigo-soft: #eef0f7;
  --lmx-line: #e7e9f1;
  --lmx-price: #3f414d;
  --lmx-row: #fafbff;
  --lmx-best: #f0fbf5;
  --lmx-bar: #dfe3f0;
}
/* Le thème réserve 480 px (550 px sur mobile) aux conteneurs Affilizz pour limiter le CLS du widget chargé en JavaScript.
   Notre tableau est rendu côté serveur et garde ces conteneurs : la réserve est annulée pour ne pas laisser de vide. */
.wp-block-affilizz-publication:has(.lmx), .affilizz-rendering-container:has(> .lmx) { min-height: 0; }

.lmx { container-type: inline-size; position: relative; margin: 1.5rem 0; color: var(--lmx-text); font-family: inherit; font-size: 14px; line-height: 1.4; }
.lmx *, .lmx *::before, .lmx *::after, .lmr * { box-sizing: border-box; }
.lmx .screen-reader-text, .lmr .screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.lmx__title { margin: 0 0 10px; font-size: 22px; font-weight: 600; line-height: 1.25; color: var(--lmx-ink); }
.lmx__from { display: block; margin-top: 4px; font-size: 13px; font-weight: 400; color: var(--lmx-indigo); }
.lmx__from b { color: var(--lmx-price); font-weight: 700; }

.lmx__radio, .lmx__gtoggle, .lmx__moretoggle { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; margin: 0; }
.lmx__tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; padding: 0; }
.lmx__tab { display: inline-flex; align-items: center; padding: 5px 12px; border: 1px solid var(--lmx-line); border-radius: 999px; background: #fff; color: var(--lmx-indigo); font-size: 13px; font-weight: 600; line-height: 1.4; cursor: pointer; }
.lmx__tab:hover { background: var(--lmx-indigo-soft); }
.lmx__radio:focus-visible ~ .lmx__tabs .lmx__tab { outline: 2px dashed #b5b7bf; outline-offset: 1px; }

/* Image : recadrée pour remplir son cadre (desktop : hauteur de la liste, 220 px au moins ; mobile : 4:3). */
.lmx__body { display: flex; align-items: stretch; gap: 16px; }
.lmx__image { position: relative; flex: 0 0 34%; max-width: 270px; min-height: 220px; margin: 0; overflow: hidden; border-radius: 12px; background: var(--lmx-indigo-soft); }
.lmx__image img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; }
.lmx__offers { flex: 1 1 auto; min-width: 0; }

.lmx__list { list-style: none; margin: 0; padding: 0; }
.lmx__item { position: relative; margin: 0; padding: 0; }
.lmx__item::before, .lmx__item::marker { content: none; }

/* Ligne : lien étiré (.lmx__hit) sous le contenu, le bouton et « + N autres offres » au-dessus. */
.lmx__row { position: relative; display: grid; align-items: center; column-gap: 14px; }
.lmx__hit { position: absolute; inset: 0; z-index: 0; border-radius: inherit; }
.lmx__row > :not(.lmx__hit) { position: relative; z-index: 1; pointer-events: none; }
.lmx__row .lmx__cta, .lmx__row .lmx__gmore { pointer-events: auto; }
.lmx__icon { flex: none; width: 32px; height: 32px; border-radius: 50%; object-fit: contain; background: #fff; box-shadow: 0 0 0 1px var(--lmx-line); }
.lmx__icon--letter { display: inline-flex; align-items: center; justify-content: center; background: var(--lmx-indigo); color: #fff; font-size: 13px; font-weight: 700; box-shadow: none; }
.lmx__who { min-width: 0; }
.lmx__name { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; line-height: 1.25; }
.lmx__shop { font-size: 15px; font-weight: 600; color: var(--lmx-ink); }
.lmx__mp { font-size: 11px; font-weight: 600; color: var(--lmx-indigo); background: var(--lmx-indigo-soft); border-radius: 999px; padding: 2px 8px; }
.lmx__var { font-size: 12px; color: var(--lmx-text); }
.lmx__price { font-weight: 700; color: var(--lmx-price); font-variant-numeric: tabular-nums; white-space: nowrap; }
.lmx__crossed { display: block; font-size: 12px; font-weight: 600; color: var(--lmx-text); }

/* Bouton : vert, texte blanc ; au survol il s'inverse (fond blanc, liseré et texte verts). */
.lmx__cta, .lmx__cta:visited { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 9px 16px; border: 2px solid var(--lmx-green); border-radius: 999px; background: var(--lmx-green); color: #fff; font-size: 14px; font-weight: 700; line-height: 1.2; text-decoration: none; white-space: nowrap; }
.lmx__cta:hover, .lmx__cta:focus-visible, .lmx__row:hover .lmx__cta, .lmx__hero:hover .lmx__cta { background: #fff; color: var(--lmx-green-dark); text-decoration: none; }
.lmx__cta:focus-visible { outline: 2px solid var(--lmx-indigo); outline-offset: 2px; }
.lmx__arr { flex: none; }
.lmx__cart { flex: none; width: 14px; height: 14px; }

/* « + N autres offres » d'un marchand. */
.lmx__gmore { display: inline-flex; align-items: center; gap: 5px; margin-top: 3px; font-size: 12px; font-weight: 600; color: var(--lmx-indigo); cursor: pointer; }
.lmx__gmore-close, .lmx__gtoggle:checked ~ .lmx__row .lmx__gmore-open { display: none; }
.lmx__gtoggle:checked ~ .lmx__row .lmx__gmore-close { display: inline; }
.lmx__gtoggle:checked ~ .lmx__row .lmx__gmore .lmx__chev { transform: rotate(180deg); }
.lmx__gtoggle:focus-visible ~ .lmx__row .lmx__gmore { outline: 2px dashed #b5b7bf; outline-offset: 1px; }
.lmx__subs { display: none; }
.lmx__gtoggle:checked ~ .lmx__subs { display: block; }

/* Offres au-delà des premières : « Voir plus d'offres ». */
.lmx__item.is-extra { display: none; }
.lmx__moretoggle:checked ~ .lmx__body .lmx__item.is-extra { display: block; }
.lmx__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 8px 16px; margin-top: 12px; font-size: 12.5px; color: var(--lmx-text); }
.lmx__morelabel { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 500; color: var(--lmx-ink); cursor: pointer; }
.lmx__morelabel--narrow { display: none; }
.lmx__more-close, .lmx__moretoggle:checked ~ .lmx__body .lmx__more-open { display: none; }
.lmx__moretoggle:checked ~ .lmx__body .lmx__more-close { display: inline; }
.lmx__moretoggle:checked ~ .lmx__body .lmx__morelabel .lmx__chev { transform: rotate(180deg); }
.lmx__moretoggle:focus-visible ~ .lmx__body .lmx__morelabel { outline: 2px dashed #b5b7bf; outline-offset: 1px; }
.lmx__gdpr { order: 0; font-size: 12px; color: var(--lmx-text); }
.lmx__gdpr > summary { display: inline-flex; gap: 4px; align-items: center; list-style: none; cursor: pointer; }
.lmx__gdpr > summary::-webkit-details-marker { display: none; }
.lmx__gdpr[open] { flex-basis: 100%; order: 2; }
.lmx__gdpr-text { margin-top: 8px; padding: 10px 12px; border-radius: 4px; background: var(--lmx-row); line-height: 1.5; }
.lmx__gdpr-text p { margin: 0 0 8px; font-size: 12px; }
.lmx__gdpr-text p:last-child { margin-bottom: 0; }

/* ===== A : liste claire ===== */
.lmx--dA .lmx__row { grid-template-columns: 32px minmax(0, 1fr) auto 150px; min-height: 60px; padding: 8px 10px; border-bottom: 1px solid var(--lmx-line); border-radius: 12px; }
.lmx--dA .lmx__row:hover { background: var(--lmx-row); }
.lmx--dA .lmx__row--best { background: var(--lmx-best); border-bottom-color: transparent; }
.lmx--dA .lmx__pricecol { text-align: right; }
.lmx--dA .lmx__price { display: block; font-size: 19px; }
.lmx--dA .lmx__row--best .lmx__price { color: var(--lmx-green-dark); }
.lmx--dA .lmx__bestlabel { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--lmx-green-dark); }
.lmx--dA .lmx__cta { width: 100%; }
.lmx__cond { display: none; }
.lmx--dA .lmx__row--sub { min-height: 50px; padding-left: 24px; }
.lmx--dA .lmx__row--sub .lmx__price { font-size: 16px; }
.lmx--dA .lmx__row--sub .lmx__cta { padding: 6px 12px; font-size: 13px; }

/* ===== B : bouton-prix ===== */
.lmx--dB .lmx__row { grid-template-columns: 32px minmax(0, 1fr) auto; column-gap: 12px; margin-bottom: 7px; padding: 7px 7px 7px 8px; border-radius: 999px; background: var(--lmx-row); }
.lmx--dB .lmx__row:hover { box-shadow: 0 2px 10px rgba(82, 91, 129, .14); }
.lmx--dB .lmx__row--best { background: var(--lmx-best); box-shadow: inset 0 0 0 2px var(--lmx-green); }
.lmx--dB .lmx__flag { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--lmx-green-dark); }
.lmx--dB .lmx__cta { min-width: 132px; padding: 8px 14px; font-size: 16px; }
.lmx--dB .lmx__cta .lmx__price { color: inherit; }
.lmx--dB .lmx__cta .lmx__crossed { display: inline; margin-left: 2px; font-size: 80%; color: inherit; }
.lmx--dB .lmx__subs { padding-left: 18px; }
.lmx--dB .lmx__row--sub { background: transparent; box-shadow: inset 0 0 0 1px var(--lmx-line); }
.lmx--dB .lmx__row--sub .lmx__cta { min-width: 116px; padding: 6px 12px; font-size: 14px; }

/* ===== C : meilleure offre en vedette ===== */
.lmx--dC .lmx__hero { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; margin-bottom: 12px; padding: 16px 18px; border-radius: 16px; background: var(--lmx-best); box-shadow: inset 0 0 0 2px var(--lmx-green); overflow: hidden; }
.lmx--dC .lmx__hero > :not(.lmx__hit) { position: relative; z-index: 1; }
.lmx--dC .lmx__herotxt { pointer-events: none; }
.lmx--dC .lmx__badge { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--lmx-green-dark); }
.lmx--dC .lmx__badge::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--lmx-green); }
.lmx--dC .lmx__heroshop { display: flex; align-items: center; gap: 10px; margin-top: 8px; }
.lmx--dC .lmx__heroshop .lmx__shop { font-size: 16px; font-weight: 700; }
.lmx--dC .lmx__heroprice { display: block; margin-top: 4px; font-size: 32px; font-weight: 800; letter-spacing: -.02em; color: var(--lmx-ink); font-variant-numeric: tabular-nums; }
.lmx--dC .lmx__save { display: block; margin-top: 2px; font-size: 12.5px; color: var(--lmx-text); }
.lmx--dC .lmx__cta--big { padding: 13px 22px; font-size: 15px; }
.lmx--dC .lmx__others { margin: 4px 0; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--lmx-text); }
.lmx--dC .is-hero-item { display: none; }
.lmx--dC .lmx__row { grid-template-columns: 26px minmax(0, 1fr) auto auto; column-gap: 12px; padding: 8px 4px; border-bottom: 1px solid var(--lmx-line); }
.lmx--dC .lmx__icon { width: 26px; height: 26px; }
.lmx--dC .lmx__heroshop .lmx__icon { width: 32px; height: 32px; }
.lmx--dC .lmx__shop { font-size: 14px; }
.lmx--dC .lmx__pricecol { text-align: right; }
.lmx--dC .lmx__price { display: block; font-size: 15px; }
.lmx--dC .lmx__delta { display: block; font-size: 11px; font-weight: 500; color: var(--lmx-text); }
.lmx--dC .lmx__row .lmx__cta { padding: 6px 12px; font-size: 13px; }
.lmx--dC .lmx__row--sub { padding-left: 20px; }

/* ===== D : écarts de prix ===== */
.lmx--dD .lmx__row { grid-template-columns: 32px minmax(0, 1fr) 150px; padding: 9px 8px; border-bottom: 1px solid var(--lmx-line); border-radius: 12px; }
.lmx--dD .lmx__row--best { background: var(--lmx-best); border-bottom-color: transparent; }
.lmx--dD .lmx__top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.lmx--dD .lmx__price { font-size: 18px; }
.lmx--dD .lmx__row--best .lmx__price { color: var(--lmx-green-dark); }
.lmx--dD .lmx__track { position: relative; display: block; height: 6px; margin-top: 7px; border-radius: 99px; background: var(--lmx-bar); overflow: hidden; }
.lmx--dD .lmx__fill { position: absolute; inset: 0 auto 0 0; border-radius: 99px; background: var(--lmx-indigo); opacity: .55; transform-origin: left; }
.lmx--dD .lmx__row--best .lmx__fill { background: var(--lmx-green); opacity: 1; }
.lmx--dD .lmx__deltarow { display: flex; justify-content: space-between; gap: 8px; margin-top: 4px; font-size: 11.5px; }
.lmx--dD .lmx__delta { color: var(--lmx-ink); font-weight: 600; }
.lmx--dD .lmx__row--best .lmx__delta { color: var(--lmx-green-dark); }
.lmx--dD .lmx__cta { width: 100%; }
.lmx--dD .lmx__row--sub { padding-left: 24px; }
.lmx--dD .lmx__row--sub .lmx__cta { padding: 6px 12px; font-size: 13px; }

/* Animations sobres, jamais d'état invisible au repos. */
@media (prefers-reduced-motion: no-preference) {
  .lmx__item { animation: lmx-in .45s cubic-bezier(.2, .7, .2, 1) both; animation-delay: calc(var(--i, 0) * 55ms); }
  .lmx__cta, .lmx__tab, .lmx__row { transition: background-color .15s ease, color .15s ease, box-shadow .15s ease; }
  .lmx__arr, .lmx__chev { transition: transform .2s ease; }
  .lmx__cta:hover .lmx__arr, .lmx__row:hover .lmx__arr, .lmx__hero:hover .lmx__arr { transform: translateX(3px); }
  .lmx__subs { animation: lmx-open .25s ease-out; }
  .lmx--dC .lmx__hero::after { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .55) 50%, transparent 70%); transform: translateX(-100%); animation: lmx-shine 3.2s ease-in-out 1s infinite; pointer-events: none; }
  .lmx--dC .lmx__badge::before { animation: lmx-pulse 1.8s ease-out infinite; }
  .lmx--dD .lmx__fill { animation: lmx-grow .7s cubic-bezier(.2, .7, .2, 1) both; }
}
@keyframes lmx-in { from { transform: translateY(8px); opacity: .35; } to { transform: none; opacity: 1; } }
@keyframes lmx-open { from { transform: translateY(-4px); opacity: .4; } to { transform: none; opacity: 1; } }
@keyframes lmx-shine { 0%, 60% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }
@keyframes lmx-pulse { 0% { box-shadow: 0 0 0 0 rgba(53, 219, 132, .6); } 100% { box-shadow: 0 0 0 9px rgba(53, 219, 132, 0); } }
@keyframes lmx-grow { from { transform: scaleX(.15); } to { transform: none; } }

/* Fiche sans offre à jour (toutes écartées par le contrôle Amazon) : bouton de recherche Amazon. */
.lmx__offers--empty { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 12px; padding: 12px 0 12px 16px; }
.lmx__empty { margin: 0; font-size: 15px; color: var(--lmx-price); }
.lmx__search, .lmx__search:visited, .lmx__search:hover { text-decoration: none; }
.lmx__search .lmx__btn { padding: 10px 18px; font-size: 16px; }
.lmx--empty .lmx__image { min-height: 180px; }

/* Bouton vert du rappel compact et de la fiche sans offre. */
.lmx__btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 6px 12px; border: 2px solid var(--lmx-green); border-radius: 999px; background: var(--lmx-green); color: #fff; font-size: 15px; font-weight: 700; line-height: 1.2; white-space: nowrap; font-variant-numeric: tabular-nums; }
.lmr__cta:hover .lmx__btn, .lmr__cta:focus .lmx__btn, .lmx__search:hover .lmx__btn, .lmx__search:focus .lmx__btn { background: #fff; color: var(--lmx-green-dark); }
.lmx__btn .lmx__crossed { display: inline; margin-left: 2px; font-size: 80%; color: inherit; }

/* Mobile (tableau de moins de 560 px de large). */
@container (max-width: 560px) {
  .lmx__title { margin: 8px 0 6px; font-size: 20px; }
  .lmx__tab { font-size: 14px; }
  .lmx__body { flex-direction: column; gap: 10px; }
  .lmx__image { flex: none; width: 100%; max-width: 100%; min-height: 0; aspect-ratio: 4 / 3; }
  .lmx__item.is-extra-narrow { display: none; }
  .lmx__moretoggle:checked ~ .lmx__body .lmx__item.is-extra-narrow { display: block; }
  .lmx__morelabel--narrow { display: inline-flex; }
  .lmx__shop { font-size: 14px; }
  /* Mobile : une offre par ligne (logo, marchand, prix, « Voir »), comme chez les Numériques (23/09). */
  .lmx__long, .lmx--dA .lmx__bestlabel { display: none; }
  .lmx--dA .lmx__row, .lmx--dC .lmx__row { grid-template-columns: 28px minmax(0, 1fr) auto auto; grid-template-areas: none; column-gap: 8px; min-height: 54px; padding: 7px 6px; }
  .lmx--dA .lmx__row > *, .lmx--dC .lmx__row > * { grid-area: auto; }
  .lmx--dA .lmx__cta, .lmx--dC .lmx__row .lmx__cta, .lmx--dD .lmx__cta { width: auto; padding: 6px 11px; font-size: 13px; }
  .lmx--dA .lmx__price { font-size: 16px; }
  .lmx--dA .lmx__crossed { font-size: 11px; }
  /* Design A en mobile : colonne des prix en bande vert pâle continue, « Neuf » sous le prix, sans séparateurs. */
  .lmx--dA .lmx__row, .lmx--dA .lmx__row--best, .lmx--dA .lmx__row:hover { padding: 0 0 0 4px; min-height: 60px; border-bottom: 0; border-radius: 0; background: none; }
  .lmx--dA .lmx__row > .lmx__icon { align-self: start; margin-top: 11px; }
  .lmx--dA .lmx__who { align-self: start; padding: 9px 0; }
  .lmx--dA .lmx__pricecol { align-self: stretch; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 104px; padding: 6px 4px; background: var(--lmx-best); text-align: center; }
  .lmx--dA .lmx__cond { display: block; font-size: 11px; color: var(--lmx-text); }
  .lmx--dA .lmx__row .lmx__var { display: none; } /* la couleur passe sous le prix */
  .lmx--dA .lmx__ctacol { padding: 0 2px 0 4px; }
  .lmx--dA .lmx__list > .lmx__item:first-child .lmx__pricecol { border-radius: 10px 10px 0 0; }
  .lmx--dA .lmx__subs .lmx__row { padding-left: 14px; }
  .lmx__row .lmx__name { gap: 2px 5px; }
  .lmx__row .lmx__mp { font-size: 10px; padding: 1px 6px; }
  .lmx__row .lmx__var { font-size: 11px; }
  .lmx__row .lmx__icon { width: 28px; height: 28px; }
  .lmx--dB .lmx__cta { min-width: 112px; padding: 7px 10px; font-size: 15px; }
  .lmx--dC .lmx__hero { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 14px; }
  .lmx--dC .lmx__hero .lmx__cta { width: 100%; }
  .lmx--dC .lmx__heroprice { font-size: 28px; }
  .lmx--dD .lmx__row { grid-template-columns: 28px minmax(0, 1fr) auto; grid-template-areas: none; column-gap: 8px; padding: 8px 6px; }
  .lmx--dD .lmx__row > * { grid-area: auto; }
  .lmx--dD .lmx__row > .lmx__icon { align-self: start; margin-top: 2px; }
  .lmx--dD .lmx__price { font-size: 16px; }
  .lmx__offers--empty { align-items: stretch; padding: 12px 0 0; }
  .lmx__search .lmx__btn { display: flex; width: 100%; }
}

/* Rappel compact (« Où acheter… ») */
.lmr { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; margin: 1rem 0; padding: 8px; border-radius: 40px; background: var(--lmx-row); color: var(--lmx-price); font-size: 14px; line-height: 1.3; }
.lmr--no-image { grid-template-columns: minmax(0, 1fr) auto; padding-left: 16px; }
.lmr__thumb { display: block; width: 56px; height: 48px; overflow: hidden; border-radius: 24px; background: #fff; }
.lmr__thumb img { width: 100%; height: 100%; object-fit: cover; }
.lmr__txt { min-width: 0; }
.lmr__more, .lmr__more:visited { display: block; margin-top: 2px; font-size: 12px; color: var(--lmx-indigo); }
.lmr__cta, .lmr__cta:visited, .lmr__cta:hover { text-decoration: none; }
.lmr--empty .lmr__txt { font-size: 14px; }
.lmr__cta:focus-visible { outline: 2px solid var(--lmx-indigo); outline-offset: 2px; border-radius: 20px; }
@media (max-width: 580px) {
  .lmr { grid-template-columns: auto minmax(0, 1fr); border-radius: 20px; }
  .lmr--no-image { grid-template-columns: minmax(0, 1fr); }
  .lmr__cta { grid-column: 1 / -1; }
  .lmr__cta .lmx__btn { display: flex; width: 100%; margin: 0; }
}

/* ================= Cartes (0.11.0) ================= */
.lmcta, .lmk { --lmx-green: #35db84; --lmx-green-dark: #0f9d58; --lmx-text: #5e5e69; --lmx-ink: #2b2e34; --lmx-indigo: #525b81; --lmx-indigo-soft: #eef0f7; --lmx-line: #e7e9f1; --lmx-price: #3f414d; --lmx-row: #fafbff; }

/* Bouton d'achat des cartes des comparatifs (fond foncé du thème). Le thème fixe .affilizz-container à 28 px. */
.lm-test-card-cta .affilizz-container:has(.lmcta) { display: block; width: 100%; height: auto; }
/* Sélecteurs renforcés : le thème impose `.lm-test-card-content * { color: #fff }` et la couleur des liens du site. */
.lmcta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 10px; width: 100%; margin-top: 12px; padding: 10px 10px 10px 14px; border-radius: 14px; background: rgba(255, 255, 255, .08); font-family: inherit; line-height: 1.25; }
.lmcta .lmcta__info { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; }
.lmcta .lmcta__label { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--lmx-green); }
.lmcta .lmcta__price { font-size: 19px; font-weight: 700; color: #fff; font-variant-numeric: tabular-nums; white-space: nowrap; }
.lmcta .lmcta__shop { font-size: 12px; color: rgba(255, 255, 255, .75); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lmcta a.lmcta__btn, .lmcta a.lmcta__btn:visited { flex: none; margin-left: auto; display: inline-flex; align-items: center; gap: 6px; padding: 8px 13px; border: 2px solid var(--lmx-green); border-radius: 999px; background: var(--lmx-green); color: #fff; font-size: 13.5px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.lmcta a.lmcta__btn *, .lmcta a.lmcta__btn:visited * { color: inherit; }
.lmcta a.lmcta__btn:hover, .lmcta a.lmcta__btn:focus-visible { background: #fff; color: var(--lmx-green-dark); text-decoration: none; }
.lmcta a.lmcta__btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.lmcta--empty { justify-content: center; }

/* Carte complète et carte simple (guides, sélections). */
.lmk { position: relative; margin: 1.5rem 0; padding: 16px 14px; border: 1px solid #f0f0f2; border-radius: 10px; background: #fff; box-shadow: 0 2px 5px rgba(204, 204, 204, .6); color: var(--lmx-text); font-size: 14.5px; line-height: 1.5; container-type: inline-size; }
.lmk * { box-sizing: border-box; }
.lmk--complete > .lmk__grid { display: grid; grid-template-columns: 42% minmax(0, 1fr); grid-template-areas: "media head" "media offers" "text text" "points points" "foot foot"; grid-template-rows: auto 1fr; column-gap: 18px; row-gap: 12px; }
.lmk--complete.lmk--no-image > .lmk__grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "offers" "text" "points" "foot"; }
.lmk a.lmk__badge, .lmk a.lmk__badge:visited { position: absolute; top: -1px; left: -1px; z-index: 1; padding: 4px 10px; border: 1.5px solid #a8192e; border-radius: 10px 0 10px 0; background: #fff; color: #a8192e; font-size: 13px; font-weight: 700; text-decoration: none; }
.lmk a.lmk__badge:hover { background: #a8192e; color: #fff; }
.lmk__media { grid-area: media; position: relative; min-height: 220px; margin-top: 22px; overflow: hidden; border-radius: 10px; background: var(--lmx-indigo-soft); }
.lmk__media img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.lmk__head { grid-area: head; }
.lmk__title { margin: 22px 0 0; font-size: 22px; font-weight: 700; line-height: 1.2; color: var(--lmx-ink); }
.lmk .lmk__title a, .lmk .lmk__title a:visited { color: inherit; text-decoration: none; }
.lmk__offerswrap { grid-area: offers; min-width: 0; }
.lmk__offers { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.lmk__offer { margin: 0; }
.lmk__offer::before, .lmk__offer::marker { content: none; }
.lmk .lmx__btn, .lmk .lmx__btn * { color: #fff; }
.lmk .lmk__offer a:hover .lmx__btn, .lmk .lmk__offer a:hover .lmx__btn * { color: var(--lmx-green-dark); }
.lmk .lmk__offer a, .lmk .lmk__offer a:visited { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 6px 6px 6px 8px; border-radius: 40px; background: var(--lmx-row); color: inherit; text-decoration: none; }
.lmk .lmk__offer--best a { background: #f0fbf5; box-shadow: inset 0 0 0 2px var(--lmx-green); }
.lmk .lmk__offer a:hover .lmx__btn { background: #fff; color: var(--lmx-green-dark); }
.lmk__merchant { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; min-width: 0; }
.lmk__merchant .lmx__mp { font-size: 10.5px; padding: 1px 7px; }
.lmk__merchant .lmx__icon { width: 28px; height: 28px; }
.lmk__shop { min-width: 0; font-size: 14.5px; font-weight: 600; color: var(--lmx-ink); overflow-wrap: anywhere; }
.lmk__toggle { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.lmk__more { display: none; margin-top: 6px; }
.lmk__toggle:checked + .lmk__more { display: grid; }
.lmk__morelabel, .lmk__expand { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; font-size: 13.5px; font-weight: 600; color: var(--lmx-indigo); cursor: pointer; }
.lmk__morelabel { float: right; }
.lmk__close, .lmk__toggle:checked ~ .lmk__morelabel .lmk__open, .lmk__toggle:checked ~ .lmk__expand .lmk__open { display: none; }
.lmk__toggle:checked ~ .lmk__morelabel .lmk__close, .lmk__toggle:checked ~ .lmk__expand .lmk__close { display: inline; }
.lmk__toggle:checked ~ .lmk__morelabel .lmx__chev, .lmk__toggle:checked ~ .lmk__expand .lmx__chev { transform: rotate(180deg); }
.lmk__text { grid-area: text; }
.lmk__text p { margin: 0; }
.lmk__rest { display: none; }
.lmk__toggle:checked ~ p .lmk__rest { display: inline; }
.lmk__toggle:checked ~ p .lmk__dots { display: none; }
.lmk__points { grid-area: points; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 22px; padding: 14px 16px; border-radius: 8px; background: #f3f3f5; }
.lmk__ph { margin: 0 0 6px; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--lmx-ink); }
.lmk__points ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: 14px; }
.lmk__points li { display: grid; grid-template-columns: 16px 1fr; gap: 7px; line-height: 1.4; }
.lmk__points li::before { content: none; }
.lmk__points svg { margin-top: 2px; }
.lmk__pro svg { color: #3fbf73; }
.lmk__con svg { color: #d4383f; }
.lmk__foot { grid-area: foot; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.lmk a.lmk__testlink, .lmk a.lmk__testlink:visited { display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border: 1.5px solid var(--lmx-ink); border-radius: 22px; background: #fff; color: var(--lmx-ink); font-size: 14.5px; font-weight: 700; text-decoration: none; }
.lmk a.lmk__testlink:hover { background: var(--lmx-ink); color: #fff; }
.lmk__note { font-size: 11.5px; color: #8b8d98; }
.lmk--simple > .lmk__grid { display: grid; grid-template-columns: 38% minmax(0, 1fr); gap: 16px; align-items: stretch; }
.lmk--simple.lmk--no-image > .lmk__grid { grid-template-columns: minmax(0, 1fr); }
.lmk--simple .lmk__media, .lmk--simple .lmk__body { grid-area: auto; }
.lmk--simple .lmk__media { margin-top: 0; min-height: 180px; }
.lmk .screen-reader-text, .lmcta .screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.lmk--simple .lmk__title { margin: 0 0 10px; font-size: 20px; }
@container (max-width: 600px) {
  .lmk--complete > .lmk__grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "media" "head" "offers" "text" "points" "foot"; grid-template-rows: none; row-gap: 10px; }
  .lmk__media { min-height: 0; aspect-ratio: 4 / 3; margin-top: 26px; }
  .lmk__title { margin-top: 0; font-size: 20px; }
  .lmk__points { grid-template-columns: minmax(0, 1fr); padding: 12px; }
  .lmk__foot { flex-direction: column; align-items: stretch; }
  .lmk__testlink { justify-content: center; }
  .lmk__note { text-align: center; }
  .lmk--simple > .lmk__grid { grid-template-columns: minmax(0, 1fr); }
  .lmk--simple .lmk__media { aspect-ratio: 4 / 3; min-height: 0; }
}

/* ================= 0.12.0 : versions des boutons des comparatifs ================= */
.lmcta--dB, .lmcta--dC, .lmcta--dD { background: none; padding: 0; margin-top: 14px; }
.lmcta--dB { flex-direction: column; align-items: stretch; gap: 6px; }
.lmcta--dB a.lmcta__btn, .lmcta--dC a.lmcta__btn { width: 100%; justify-content: center; margin: 0; padding: 11px 14px; font-size: 14.5px; }
.lmcta .lmcta__sub { text-align: center; font-size: 12px; color: rgba(255, 255, 255, .75); }
.lmcta--dC a.lmcta__btn { font-size: 15px; }
.lmcta .lmcta__from { font-weight: 500; }
.lmcta--dD { flex-wrap: nowrap; gap: 10px; }
.lmcta--dD a.lmcta__btn { flex: 1 1 auto; justify-content: space-between; margin: 0; padding: 5px 12px 5px 5px; font-size: 16px; }
.lmcta .lmcta__logo { display: inline-flex; align-items: center; gap: 8px; font-variant-numeric: tabular-nums; }
.lmcta .lmcta__logo .lmx__icon { width: 24px; height: 24px; box-shadow: none; }
.lmcta a.lmcta__compare, .lmcta a.lmcta__compare:visited { flex: none; font-size: 12px; font-weight: 600; color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* ================= 0.12.0 : versions des cartes des guides ================= */
.lmk { container-type: inline-size; }
.lmk__media { position: relative; }
.lmk a.lmk__score, .lmk a.lmk__score:visited { position: absolute; right: 10px; bottom: 10px; z-index: 1; width: 62px; height: 62px; border-radius: 50%; background: #fff; box-shadow: 0 3px 10px rgba(0, 0, 0, .18); display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--lmx-ink); text-decoration: none; line-height: 1; }
.lmk__score b { font-size: 20px; font-weight: 800; }
.lmk__score small { font-size: 10px; color: var(--lmx-text); margin-top: 2px; }
.lmk a.lmk__cta, .lmk a.lmk__cta:visited { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 18px; border: 2px solid var(--lmx-green); border-radius: 999px; background: var(--lmx-green); color: #fff; font-size: 15px; font-weight: 700; text-decoration: none; }
.lmk a.lmk__cta:hover, .lmk a.lmk__cta:focus-visible { background: #fff; color: var(--lmx-green-dark); }
.lmk__cta .lmx__icon { width: 24px; height: 24px; box-shadow: none; }
.lmk__links { display: inline-flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; font-weight: 600; }
.lmk .lmk__links a, .lmk .lmk__links a:visited { color: var(--lmx-indigo); }
.lmk__verdict { margin: 6px 0 10px; }

/* B : verdict express */
.lmk--dB > .lmk__grid { display: grid; grid-template-columns: 190px minmax(0, 1fr); grid-template-areas: none; grid-template-rows: none; gap: 16px; }
.lmk--dB .lmk__media, .lmk--dD .lmk__media, .lmk--dB .lmk__main, .lmk--dD .lmk__main, .lmk--dD .lmk__side { grid-area: auto; }
.lmk--dB .lmk__media { margin-top: 0; min-height: 190px; }
.lmk--dB .lmk__title { margin: 0; }
.lmk__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.lmk__chip { font-size: 12px; font-weight: 600; padding: 3px 9px; border-radius: 999px; }
.lmk__chip--p { background: #e7f8ee; color: #1b7a44; }
.lmk__chip--c { background: #fdecee; color: #b3262f; }
.lmk__buy { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }

/* C : sélection */
.lmk--dC { padding: 0; overflow: hidden; }
.lmk__rib { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 10px; padding: 10px 16px; background: var(--lmx-ink); color: #fff; }
/* Place et badge jamais coupés : si la largeur manque, le badge passe entier à la ligne. */
.lmk__rib b, .lmk__ed { white-space: nowrap; }
.lmk__rib--ed { justify-content: flex-end; }
.lmk__rib b { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: #fff; }
.lmk__ed { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; background: #f5b301; color: #2b2e34; font-size: 11.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.lmk--dC > .lmk__grid { padding: 16px 14px; display: grid; grid-template-columns: 40% minmax(0, 1fr); grid-template-areas: "media head" "media offers" "text text" "points points" "foot foot"; grid-template-rows: auto 1fr; column-gap: 18px; row-gap: 12px; }
.lmk--dC .lmk__media { margin-top: 0; }
.lmk--dC .lmk__title { margin-top: 0; }

/* D : ligne comparative */
.lmk--dD > .lmk__grid { display: grid; grid-template-columns: 150px minmax(0, 1fr) 200px; grid-template-areas: none; grid-template-rows: none; gap: 16px; align-items: start; }
.lmk--dD .lmk__media { margin-top: 0; min-height: 150px; }
.lmk--dD .lmk__title { margin: 0 0 4px; font-size: 19px; }
.lmk--dD .lmk__text { font-size: 14px; }
.lmk--dD .lmk__points { margin-top: 8px; padding: 10px 12px; font-size: 13px; }
.lmk__side { display: grid; gap: 6px; justify-items: stretch; text-align: center; align-self: center; }
.lmk__side small { font-size: 12px; color: var(--lmx-text); }
.lmk__side b { font-size: 22px; color: var(--lmx-ink); font-variant-numeric: tabular-nums; }
.lmk__side .lmk__links { justify-content: center; }

@container (max-width: 600px) {
  .lmk--dB > .lmk__grid, .lmk--dD > .lmk__grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: none; }
  .lmk--dB .lmk__media, .lmk--dD .lmk__media { min-height: 0; aspect-ratio: 4 / 3; }
  .lmk--dB a.lmk__cta, .lmk--dC a.lmk__cta, .lmk--dD a.lmk__cta { width: 100%; }
  .lmk--dC > .lmk__grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "media" "head" "offers" "text" "points" "foot"; grid-template-rows: none; }
  .lmk--dC .lmk__media { aspect-ratio: 4 / 3; min-height: 0; }
  .lmk__side { text-align: left; }
  .lmk__rib b { font-size: 12px; letter-spacing: .04em; }
  .lmk__ed { font-size: 10.5px; }
  .lmk__side .lmk__links { justify-content: flex-start; }
}
@media (prefers-reduced-motion: no-preference) {
  .lmk { animation: lmx-in .45s cubic-bezier(.2, .7, .2, 1) both; }
  .lmk a.lmk__cta .lmx__arr, .lmcta a.lmcta__btn .lmx__arr { transition: transform .2s ease; }
  .lmk a.lmk__cta:hover .lmx__arr, .lmcta a.lmcta__btn:hover .lmx__arr { transform: translateX(3px); }
}

/* ===== Hauteur de ligne identique quel que soit le contenu (23/09) =====
   Ligne 1 : marchand + « Marketplace » (+ couleur en desktop), jamais coupée (points de suspension) ;
   ligne 2 : « + N autres offres » s'il y en a. */
.lmx__row .lmx__name { flex-wrap: nowrap; min-width: 0; overflow: hidden; }
.lmx__row .lmx__shop { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lmx__row .lmx__mp, .lmx__row .lmx__var { flex: none; white-space: nowrap; }
.lmx__gmore { white-space: nowrap; }
.lmx--dA .lmx__row { height: 64px; min-height: 0; padding-top: 0; padding-bottom: 0; }
.lmx--dA .lmx__row--sub { height: 56px; }
.lmx--dA .lmx__who { align-self: center; }
@container (max-width: 560px) {
  .lmx--dA .lmx__row, .lmx--dA .lmx__row--best, .lmx--dA .lmx__row:hover { height: 60px; min-height: 0; }
  .lmx--dA .lmx__row--sub { height: 56px; }
  .lmx--dA .lmx__row > .lmx__icon { align-self: center; margin-top: 0; }
  .lmx--dA .lmx__who { align-self: center; padding: 0; }
  .lmx--dA .lmx__row .lmx__mp { font-size: 9.5px; padding: 1px 5px; }
  /* Nom sur toute la ligne 1 ; « Marketplace » et « + N offres » sur la ligne 2. */
  .lmx--dA .lmx__who { display: flex; flex-wrap: wrap; align-items: center; align-content: center; gap: 2px 6px; }
  .lmx--dA .lmx__who .lmx__name { display: contents; }
  .lmx--dA .lmx__who .lmx__shop { flex: 1 0 100%; }
  .lmx--dA .lmx__who .lmx__gmore { margin-top: 0; }
  .lmx--dA .lmx__row { column-gap: 6px; }
  .lmx--dA .lmx__pricecol { width: 92px; }
  .lmx--dA .lmx__price { font-size: 15.5px; }
  .lmx--dA .lmx__cta { padding: 6px 9px; }
  .lmx--dA .lmx__subs .lmx__row { padding-left: 4px; } /* bande des prix alignée */
  .lmx--dA .lmx__subs .lmx__row > .lmx__icon { opacity: .75; }
}

/* ===== Onglets et hauteur réservée (23/09) =====
   Une liste par onglet ; seule celle de l'onglet choisi est affichée. La zone des offres réserve la hauteur du plus
   grand onglet (--lmx-rows lignes × hauteur de ligne du design, + « Voir plus d'offres ») : changer d'onglet ou de
   produit ne fait plus bouger l'image ni les lignes. */
.lmx__panel:not([data-p="all"]) { display: none; }
.lmx { --lmx-rh: 64px; --lmx-rh-m: 60px; --lmx-extra: 0px; --lmx-extra-m: 0px; }
.lmx--dB { --lmx-rh: 66px; --lmx-rh-m: 66px; }
.lmx--dC { --lmx-rh: 56px; --lmx-rh-m: 56px; --lmx-extra: 232px; --lmx-extra-m: 250px; }
.lmx--dC .lmx__hero { height: 186px; }
.lmx--dC .lmx__others { height: 22px; margin: 4px 0 6px; }
.lmx--dD { --lmx-rh: 78px; --lmx-rh-m: 80px; }
.lmx__offers { min-height: calc(var(--lmx-rows, 0) * var(--lmx-rh) + var(--lmx-more, 0) * 40px + var(--lmx-extra)); }
.lmx__panel > .lmx__morelabel:not(.lmx__morelabel--narrow) { display: flex; justify-content: flex-end; margin-top: 10px; }
.lmx--dB .lmx__row { height: 60px; margin-bottom: 6px; padding-top: 0; padding-bottom: 0; }
.lmx--dB .lmx__row--sub { height: 52px; }
.lmx--dC .lmx__row { height: 56px; padding-top: 0; padding-bottom: 0; }
.lmx--dC .lmx__row--sub { height: 50px; }
.lmx--dD .lmx__row { height: 78px; padding-top: 0; padding-bottom: 0; }
.lmx--dD .lmx__row--sub { height: 72px; }
@container (max-width: 560px) {
  .lmx__offers { min-height: calc(var(--lmx-rows-m, 0) * var(--lmx-rh-m) + var(--lmx-more, 0) * 44px + var(--lmx-extra-m)); }
  .lmx__panel > .lmx__morelabel { display: flex; justify-content: flex-end; margin-top: 8px; }
  .lmx--dD .lmx__row { height: 80px; }
  .lmx--dC .lmx__row { height: 56px; }
  .lmx--dC .lmx__hero { height: auto; }
}

/* Image desktop fixe : 270 × 384 px, recadrée (demande du 23/09) — ne dépend plus du nombre d'offres ni de l'onglet. */
.lmx__body { align-items: flex-start; }
.lmx__image { flex: 0 0 270px; width: 270px; max-width: 270px; height: 384px; min-height: 0; }
@container (max-width: 560px) {
  .lmx__image { flex: none; width: 100%; max-width: 100%; height: auto; aspect-ratio: 4 / 3; }
}

/* Design A, toutes largeurs : nom seul sur la ligne 1 ; Marketplace, couleur (desktop) et « + N offres » sur la ligne 2. */
.lmx--dA .lmx__who { display: flex; flex-wrap: wrap; align-items: center; align-content: center; gap: 2px 6px; }
.lmx--dA .lmx__who .lmx__name { display: contents; }
.lmx--dA .lmx__who .lmx__shop { flex: 1 0 100%; }
.lmx--dA .lmx__who .lmx__gmore { margin-top: 0; }

/* Espacement (23/09) : pas plus de blanc autour du tableau qu'entre le bandeau et le chapô (10 px), pour les 4 designs.
   Le bloc suivant du gabarit des tests (.gb-container « test_content ») ajoute 20 px de marge intérieure : supprimée
   uniquement quand notre tableau le précède. */
.lmx { margin: 10px 0; }
.dynamic-entry-content:has(.lmx) + .gb-container { padding-top: 0; }
