/* =========================================================================
   Liora · velora-templates.css
   Complément à style.css (Velora Child, Astra). À coller à la suite de
   style.css, section « 4. TEMPLATES ». S'appuie uniquement sur les tokens
   déjà définis (--peps-*, --flash-*, --gold-*, --bg-*, --text-*, --border).
   Source visuelle : Liora Lot 1 à 5 + Liora Référence design.
   ========================================================================= */

/* ---- Tokens complémentaires (clair) ---- */
:root,
:root[data-theme="light"] {
  --price:        var(--flash-700);
  --btn-bg:       var(--peps-700);
  --btn-fg:       #FFFFFF;
  --btn-bg-hover: var(--peps-800);
  --focus-ring:   var(--peps-600);
  --tint:         var(--peps-50);
  --tint-strong:  var(--peps-100);
  --warn-bg:      var(--gold-50);
  --warn-fg:      var(--gold-900);
  --ok:           #3F9B5C;
  --ko:           #B03A3A;
  --wrap-x:       clamp(20px, 8.3vw, 120px);
  --section-y:    clamp(52px, 6.7vw, 96px);
}

/* ---- Tokens complémentaires (sombre) ---- */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --price:        var(--flash-300);
    --btn-bg:       var(--peps-300);
    --btn-fg:       var(--peps-950);
    --btn-bg-hover: var(--peps-200);
    --focus-ring:   var(--peps-200);
    --tint:         var(--bg-subtle);
    --tint-strong:  var(--peps-900);
    --warn-bg:      #2E2410;
    --warn-fg:      var(--gold-300);
    --ko:           #F08A8A;
  }
}
:root[data-theme="dark"] {
  --price:        var(--flash-300);
  --btn-bg:       var(--peps-300);
  --btn-fg:       var(--peps-950);
  --btn-bg-hover: var(--peps-200);
  --focus-ring:   var(--peps-200);
  --tint:         var(--bg-subtle);
  --tint-strong:  var(--peps-900);
  --warn-bg:      #2E2410;
  --warn-fg:      var(--gold-300);
  --ko:           #F08A8A;
}

/* ---- Base ---- */
:where(a, button, summary, input):focus-visible {
  outline: 2px solid var(--focus-ring);
  outline-offset: 3px;
  border-radius: 4px;
}
.velora-wrap { padding-inline: var(--wrap-x); }
.velora-section { padding-block: var(--section-y); }
h1 em, h2 em { font-style: italic; font-weight: 500; color: var(--accent); }

/* ---- Boutons : surcharge sombre du bouton principal ---- */
.velora-btn,
.wp-block-button .wp-block-button__link {
  background: var(--btn-bg) !important;
  color: var(--btn-fg) !important;
  min-height: 48px;
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
}
.velora-btn:hover,
.wp-block-button .wp-block-button__link:hover { background: var(--btn-bg-hover) !important; color: var(--btn-fg) !important; }
.velora-btn:active, .velora-btn--flash:active { transform: scale(.98); }
.velora-btn[aria-disabled="true"], .velora-btn:disabled,
.velora-btn--flash[aria-disabled="true"] { opacity: .4; pointer-events: none; }
.velora-btn--flash { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: .5em; box-shadow: 0 4px 14px rgba(245,35,137,.28); }
.velora-btn--flash:hover { box-shadow: 0 6px 20px rgba(245,35,137,.45); }
.velora-btn--flash:active { background: var(--flash-600) !important; }
.velora-btn--ghost { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }
.velora-btn--ghost:hover { border-color: var(--accent) !important; color: var(--accent) !important; }
.velora-btn--block { width: 100%; }
.velora-aff-link { color: var(--price); font-weight: 700; white-space: nowrap; }

/* ---- Badges et puces ---- */
.velora-badge--top {
  display: inline-flex; align-items: center; height: 26px; padding: 0 12px;
  border-radius: var(--radius-full); background: var(--flash-100); color: var(--flash-700);
  font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.velora-art-chips { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 640px) {
  .velora-art-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .velora-art-chips::-webkit-scrollbar { display: none; }
}
.velora-chip {
  flex-shrink: 0; display: inline-flex; align-items: center; height: 40px; padding: 0 18px;
  border-radius: var(--radius-full); border: 1.5px solid var(--border); color: var(--text-primary);
  font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap;
  transition: border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);
}
.velora-chip:hover { border-color: var(--accent); color: var(--accent); }
.velora-chip[aria-current="page"], .velora-chip.is-active { background: var(--btn-bg); border-color: var(--btn-bg); color: var(--btn-fg); }

/* ---- En-tête ---- */
.velora-shophead { background: var(--bg-surface); border-bottom: 1px solid var(--border); }
.velora-shophead-main { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 18px var(--wrap-x); }
.velora-shophead-brand { font-family: var(--font-serif); font-weight: 600; font-size: 30px; letter-spacing: -.02em; color: var(--accent); text-decoration: none; }
.velora-shophead-search { flex: 1; max-width: 500px; }
.velora-shophead-search input { width: 100%; height: 44px; border-radius: var(--radius-full); background: var(--bg-subtle); border: 1px solid var(--border); padding: 0 18px; }
.velora-catnav { display: flex; align-items: center; gap: 30px; height: 50px; padding: 0 var(--wrap-x); border-top: 1px solid var(--border); font-size: 15px; }
.velora-catnav a { color: var(--text-primary); text-decoration: none; }
.velora-catnav a:hover { color: var(--accent); }
.velora-catnav .is-transac { font-weight: 600; }
.velora-catnav .is-rencontre { margin-left: auto; color: var(--text-secondary); }
@media (max-width: 921px) { .velora-catnav, .velora-shophead-search { display: none; } .velora-shophead-main { padding: 10px 16px 10px 20px; } }

/* ---- Hero accueil ---- */
.velora-shop-hero { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap: 72px; align-items: center; padding: 72px var(--wrap-x) 88px; }
.velora-shop-hero h1 { font-size: clamp(38px, 4.5vw, 64px); line-height: 1.04; letter-spacing: -.025em; }
.velora-shop-hero .velora-hero-sub { color: var(--text-secondary); font-size: clamp(17px, 1.4vw, 20px); max-width: 34rem; }
.velora-shop-hero img { border-radius: var(--radius-lg); aspect-ratio: 4 / 4.4; object-fit: cover; }
@media (max-width: 921px) { .velora-shop-hero { grid-template-columns: 1fr; gap: 28px; padding: 28px 20px 48px; } .velora-shop-hero img { aspect-ratio: 4 / 3; } }

.velora-reassure { background: var(--bg-subtle); padding: 32px var(--wrap-x); display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 28px 24px; }
.velora-reassure-item::before { content: ""; display: block; width: 24px; height: 2px; background: var(--gold-600); margin-bottom: 8px; }
.velora-reassure-item span { color: var(--text-secondary); font-size: 14px; }
@media (max-width: 640px) { .velora-reassure { grid-template-columns: repeat(2, minmax(0,1fr)); padding: 28px 20px; } }

/* ---- Tuiles de rubrique ---- */
.velora-tilegrid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.velora-tile { min-height: 190px; border-radius: var(--radius-lg); padding: 26px; display: flex; flex-direction: column; justify-content: space-between; text-decoration: none !important; background: var(--tint); color: var(--text-primary) !important; transition: transform var(--duration-base) var(--ease-out); }
.velora-tile:hover { transform: translateY(-3px); }
.velora-tile .velora-tile-title { font-family: var(--font-serif); font-weight: 600; font-size: 28px; }
.velora-tile--violet { background: var(--peps-700); color: #FFFFFF !important; }
.velora-tile--tint { background: var(--peps-100); }
.velora-tile--gold { background: var(--gold-50); }
.velora-tile--flash { background: var(--flash-50); }
.velora-tile--ink { background: #1C1418; color: #F3E8D4 !important; }
@media (max-width: 640px) { .velora-tilegrid { grid-template-columns: repeat(2, minmax(0,1fr)); } .velora-tile { min-height: 124px; padding: 16px; } .velora-tile .velora-tile-title { font-size: 20px; } .velora-tile p { display: none; } }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .velora-tile--tint, :root:not([data-theme="light"]) .velora-tile--gold, :root:not([data-theme="light"]) .velora-tile--flash { background: var(--bg-subtle); } }
:root[data-theme="dark"] .velora-tile--tint, :root[data-theme="dark"] .velora-tile--gold, :root[data-theme="dark"] .velora-tile--flash { background: var(--bg-subtle); }

/* ---- Cartes ---- */
.velora-guide-grid, .velora-cat-grid, .velora-prodgrid, .velora-next-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.velora-guide-card, .velora-prodcard { border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; background: var(--bg-surface); display: flex; flex-direction: column; text-decoration: none; color: var(--text-primary); transition: transform var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out); }
.velora-guide-card:hover, .velora-prodcard:hover { transform: translateY(-3px); box-shadow: var(--shadow-card-hover); }
.velora-guide-card-img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.velora-prodcard-media { position: relative; aspect-ratio: 4 / 3; }
.velora-prodcard-media .velora-badge--top { position: absolute; top: 10px; left: 10px; }
.velora-prodcard-body, .velora-guide-card > div { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.velora-prodcard-name { font-family: var(--font-serif); font-weight: 600; font-size: 21px; line-height: 1.2; }
.velora-prodcard-foot { margin-top: auto; padding-top: 8px; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.velora-prodcard-price { font-weight: 700; }
.velora-cat-card { display: flex; flex-direction: column; gap: 16px; color: var(--text-primary); text-decoration: none; }
.velora-cat-card:hover { color: var(--accent); }
.velora-cat-card-thumb { border-radius: 14px; aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
@media (max-width: 921px) {
  .velora-guide-grid, .velora-cat-grid, .velora-prodgrid, .velora-next-grid { grid-template-columns: 1fr; }
  .velora-cat-card, .velora-next-c { flex-direction: row; }
  .velora-cat-card-thumb { width: 104px; aspect-ratio: 1 / 1; flex-shrink: 0; }
  .velora-prodcard { flex-direction: row; }
  .velora-prodcard-media { width: 112px; aspect-ratio: auto; flex-shrink: 0; }
}

/* ---- Bandeaux ---- */
.velora-hero-band { background: var(--peps-700); color: #FFFFFF; padding: 52px var(--wrap-x) 60px; }
.velora-hero-band h1 { color: #FFFFFF !important; font-size: clamp(34px, 4.2vw, 60px); line-height: 1.05; letter-spacing: -.025em; }
.velora-cat-band { background: var(--peps-700); color: #FFFFFF; border-radius: var(--radius-lg); }
.velora-cat-band h2 { color: #FFFFFF !important; }
.velora-rencontre .velora-hero-band { background: #1C1418; color: #F3E8D4; }
.velora-band--tint { background: var(--tint); border-radius: 28px; }
.velora-founder { display: grid; grid-template-columns: 280px minmax(0,1fr); gap: 72px; align-items: center; }
.velora-founder .velora-avatar--lg { width: 100%; height: auto; aspect-ratio: 1 / 1; border-radius: 50%; object-fit: cover; }
@media (max-width: 921px) { .velora-founder { grid-template-columns: 1fr; gap: 24px; } .velora-founder .velora-avatar--lg { width: 140px; } .velora-hero-band { padding: 24px 20px 36px; } }

/* ---- Article ---- */
.velora-readbar { height: 3px; background: var(--tint); }
.velora-readbar > span { display: block; height: 3px; background: var(--accent); width: var(--read, 0%); }
.velora-art-hero { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 64px; align-items: center; padding: 48px var(--wrap-x) 56px; }
.velora-art-title { font-size: clamp(32px, 3.9vw, 56px); line-height: 1.06; letter-spacing: -.025em; }
.velora-art-lede { color: var(--text-secondary); font-size: clamp(17px, 1.4vw, 20px); }
.velora-art-byline { display: flex; align-items: center; gap: 12px; font-size: 14px; }
.velora-art-grid { display: grid; grid-template-columns: minmax(0,720px) 260px; gap: 72px; align-items: start; padding: 16px var(--wrap-x) 96px; }
.velora-art-grid--notoc { grid-template-columns: minmax(0,720px); }
.velora-art-side--toc { position: sticky; top: 24px; }
.velora-toc { display: flex; flex-direction: column; gap: 12px; padding-left: 18px; border-left: 2px solid var(--tint); }
.velora-toc a { color: var(--text-secondary); text-decoration: none; font-size: 15px; }
.velora-toc a[aria-current="true"] { color: var(--accent); font-weight: 700; }
.velora-toc--box { border: 1px solid var(--border); border-left: 1px solid var(--border); border-radius: 16px; padding: 18px 22px; }
.velora-side-cta { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 22px; display: flex; gap: 20px; align-items: center; }
.velora-author { border-top: 1px solid var(--border); padding-top: 28px; display: flex; gap: 18px; }
@media (max-width: 921px) {
  .velora-art-hero, .velora-art-grid { grid-template-columns: 1fr; gap: 24px; padding-inline: 20px; }
  .velora-art-side--toc { display: none; }
  .velora-side-cta { flex-direction: column; align-items: stretch; }
}

/* ---- Encadrés ---- */
.velora-callout { background: var(--tint); border: 0; border-radius: 16px; padding: 20px 22px; }
.velora-callout > strong:first-child { color: var(--accent); }
.velora-callout--warn { background: var(--warn-bg); }
.velora-callout--warn > strong:first-child { color: var(--warn-fg); }
.velora-callout--ok { background: var(--success-100); }
.velora-disclosure { background: var(--bg-subtle); border-radius: 10px; padding: 14px 18px; font-size: 14px; color: var(--text-secondary); max-width: 900px; }
.velora-disclosure strong { color: var(--text-primary); }
.velora-quote { background: var(--tint); border-radius: var(--radius-lg); padding: 28px 32px; margin: 0; }
.velora-quote blockquote { margin: 0; font-family: var(--font-serif); font-style: italic; font-size: clamp(19px, 1.6vw, 24px); line-height: 1.38; }

/* ---- Guide « Meilleur X » ---- */
.velora-art-cards { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.velora-art-card { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 20px; display: flex; flex-direction: column; gap: 16px; background: var(--bg-surface); }
.velora-art-card.is-winner { border: 2px solid var(--flash-500); box-shadow: 0 8px 24px rgba(245,35,137,.14); }
@media (max-width: 921px) { .velora-art-cards { grid-template-columns: 1fr; } .velora-art-card { flex-direction: row; flex-wrap: wrap; padding: 14px; } .velora-art-card > img { width: 84px; aspect-ratio: 1 / 1; } .velora-art-card .velora-btn, .velora-art-card .velora-btn--flash { flex: 1 1 100%; } }
.velora-table-wrap { border-radius: 14px; }
.velora-table thead th { background: var(--bg-subtle); }
.velora-table td.price, .velora-ranked-price { color: var(--price); }
.velora-ranked-item { border-radius: var(--radius-lg); padding: 28px; gap: 32px; }
.velora-ranked-media { width: 240px; }
.velora-ranked-media img, .velora-ranked-media .velora-img-ph { width: 240px; height: 240px; border-radius: 14px; object-fit: cover; }
.velora-ranked-badge { width: 42px; height: 42px; top: -10px; left: -10px; background: var(--flash-500); color: var(--peps-950); font-weight: 800; }
.velora-ranked-price-row { border-top: 1px solid var(--border); padding-top: 16px; }
@media (max-width: 640px) { .velora-ranked-item { padding: 18px; gap: 18px; } .velora-ranked-media, .velora-ranked-media img, .velora-ranked-media .velora-img-ph { width: 100%; height: 200px; } .velora-ranked-price-row .velora-btn--flash { flex: 1 1 100%; } }
.velora-pc h4 { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.velora-pc h4:first-child { color: var(--ok); }
.velora-no { color: var(--ko); }
.velora-mission { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 28px; }
.velora-mission-item { border-top: 2px solid var(--gold-600); padding-top: 18px; display: flex; flex-direction: column; gap: 8px; }
.velora-mission-item .velora-mission-num { font-family: var(--font-serif); font-weight: 600; font-size: 40px; line-height: 1; color: var(--accent); }
@media (max-width: 921px) { .velora-mission { grid-template-columns: 1fr; } }
.velora-faq { border-radius: 14px; padding: 18px 20px; }
.velora-faq summary { list-style: none; display: flex; justify-content: space-between; gap: 16px; cursor: pointer; font-weight: 600; }
.velora-faq summary::-webkit-details-marker { display: none; }
.velora-faq summary::after { content: "+"; color: var(--accent); font-size: 22px; line-height: 1; }
.velora-faq[open] summary::after { content: "−"; }
.velora-faq[open] { border-color: var(--accent); }

/* ---- Comparatif ---- */
.velora-compare { display: grid; grid-template-columns: minmax(0,1fr) 80px minmax(0,1fr); gap: 8px; align-items: stretch; }
.velora-compare-col { border: 1px solid var(--border); border-radius: 24px; padding: 28px 32px; display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; background: var(--bg-surface); }
.velora-compare-col--winner { border: 2px solid var(--flash-500); box-shadow: 0 10px 28px rgba(245,35,137,.14); }
.velora-vs { align-self: center; justify-self: center; width: 64px; height: 64px; border-radius: 50%; background: var(--peps-700); color: #FFFFFF; display: flex; align-items: center; justify-content: center; font-family: var(--font-serif); font-style: italic; font-size: 24px; }
@media (max-width: 640px) { .velora-compare { grid-template-columns: minmax(0,1fr) 30px minmax(0,1fr); gap: 4px; } .velora-compare-col { padding: 14px 10px; } .velora-vs { width: 30px; height: 30px; font-size: 14px; } }
.velora-verdict { background: var(--tint); border-radius: 24px; padding: 36px 44px; display: grid; grid-template-columns: 200px minmax(0,1fr); gap: 48px; align-items: center; }
.velora-verdict-score { width: 140px; height: 140px; border-radius: 50%; background: var(--bg-surface); border: 6px solid var(--accent); display: flex; flex-direction: column; align-items: center; justify-content: center; }
.velora-verdict-score strong { font-family: var(--font-serif); font-size: 42px; line-height: 1; }
.velora-verdict-bar { height: 8px; border-radius: 4px; background: var(--tint-strong); }
.velora-verdict-bar > span { display: block; height: 8px; border-radius: 4px; background: var(--accent); }
@media (max-width: 921px) { .velora-verdict { grid-template-columns: 1fr; padding: 24px 20px; gap: 20px; } }

/* ---- Fiche produit, avis de marque ---- */
.velora-product-hero { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap: 64px; align-items: start; }
.velora-gallery { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; }
.velora-gallery > :first-child { grid-column: 1 / -1; border-radius: 24px; aspect-ratio: 1 / 1; object-fit: cover; }
.velora-buybox { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px; display: flex; flex-direction: column; gap: 14px; }
.velora-buybox .velora-price { font-size: 38px; font-weight: 700; color: var(--price); line-height: 1; }
.velora-buybox .was { text-decoration: line-through; color: var(--text-secondary); font-size: 16px; }
.velora-trust-badges { display: flex; flex-wrap: wrap; gap: 8px; border-top: 1px solid var(--border); padding-top: 12px; }
.velora-trust-badges span { height: 32px; padding: 0 12px; border-radius: var(--radius-full); background: var(--bg-subtle); display: inline-flex; align-items: center; font-size: 13px; }
.velora-offers > div { display: flex; align-items: center; gap: 14px; padding: 16px 20px; border-top: 1px solid var(--border); }
.velora-offers > div:first-child { border-top: 0; background: var(--flash-50); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .velora-offers > div:first-child { background: var(--bg-subtle); } }
:root[data-theme="dark"] .velora-offers > div:first-child { background: var(--bg-subtle); }
.velora-art-stats { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; }
.velora-art-stat { border: 1px solid var(--border); border-radius: 18px; padding: 20px; }
.velora-art-stat strong { display: block; font-family: var(--font-serif); font-weight: 600; font-size: 34px; color: var(--accent); }
.velora-monogram--lg { width: 240px; aspect-ratio: 1 / 1; border-radius: 28px; background: var(--bg-surface); border: 1px solid var(--border); }
@media (max-width: 921px) { .velora-product-hero { grid-template-columns: 1fr; gap: 24px; } .velora-art-stats { grid-template-columns: repeat(2, minmax(0,1fr)); } .velora-monogram--lg { width: 96px; border-radius: 20px; } .velora-buybox .velora-btn--flash { width: 100%; } }

/* ---- Pagination, 404, recherche ---- */
.velora-cat-pagination .page-numbers { min-width: 44px; height: 44px; border-radius: 12px; }
.velora-cat-pagination .current { background: var(--btn-bg); color: var(--btn-fg); border-color: var(--btn-bg); }
.velora-404-num { font-family: var(--font-serif); font-style: italic; font-weight: 500; font-size: clamp(120px, 14vw, 200px); line-height: .9; letter-spacing: -.04em; color: var(--tint-strong); }

/* ---- Pied de page ---- */
.velora-footer { background: var(--peps-950); color: #F3E8D4; padding: 64px var(--wrap-x) 36px; }
.velora-footer a { color: #F3E8D4; text-decoration: none; }
.velora-footer a:hover { color: #FFFFFF; text-decoration: underline; }
.velora-footer-grid { display: grid; grid-template-columns: minmax(0,1.6fr) repeat(3, minmax(0,1fr)); gap: 36px 28px; }
.velora-footer-col h3 { font-family: var(--font-sans); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--peps-300) !important; }
.velora-footer-bar { margin-top: 44px; padding-top: 20px; border-top: 1px solid rgba(243,232,212,.16); display: flex; flex-wrap: wrap; gap: 10px 22px; font-size: 13px; color: rgba(243,232,212,.72); }
@media (max-width: 640px) { .velora-footer { padding: 44px 20px 28px; } .velora-footer-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } .velora-footer-brand { grid-column: span 2; } }

/* ---- Vérification d'âge (fenêtre injectée par l'extension) ---- */
.velora-agegate { position: fixed; inset: 0; z-index: 9999; background: rgba(20,16,26,.78); display: flex; align-items: center; justify-content: center; padding: 16px; }
.velora-agegate-box { width: 100%; max-width: 460px; background: var(--bg-surface); color: var(--text-primary); border-radius: 18px; padding: 32px 24px; display: flex; flex-direction: column; gap: 14px; text-align: center; }
.velora-agegate-box .velora-btn, .velora-agegate-box .velora-btn--ghost { width: 100%; }

/* ---- Mouvement réduit ---- */
@media (prefers-reduced-motion: reduce) {
  .velora-btn, .velora-btn--flash, .velora-card, .velora-tile, .velora-guide-card, .velora-prodcard { transition: none !important; transform: none !important; }
}

/* =========================================================================
   5. COUCHE D'INTEGRATION v3 (Astra + Gutenberg)
   Ce fichier n'est charge QUE sur les pages dont le contenu contient
   "velora-v3" (cf. velora_is_v3() dans functions.php). Les pages existantes
   (guides .velora-guide, articles, ancienne home .velora-home) ne le recoivent
   pas : aucune regression possible sur elles.
   ========================================================================= */

/* Breakout du conteneur Astra : la page v3 gere ses propres marges. */
.velora-v3-page .entry-header { display: none !important; }
.velora-v3-page #content.site-content { background: var(--bg-primary); }
.velora-v3-page .ast-container,
.velora-v3-page.ast-separate-container .site-content > .ast-container { max-width: 100% !important; padding: 0 !important; }
.velora-v3-page #primary,
.velora-v3-page .site-main,
.velora-v3-page .content-area { margin: 0 !important; padding: 0 !important; max-width: none !important; width: 100% !important; }
.velora-v3-page .ast-article-single,
.velora-v3-page article.page { background: transparent !important; box-shadow: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; }
.velora-v3-page .entry-content { margin: 0 !important; }
.velora-v3-page .entry-content > .velora-v3 { margin: 0; max-width: none; }

/* Neutralisation des anciennes regles de style.css portant les memes classes
   (home v2, hubs) : sans ca, elles debordent sur les gabarits v3. */
.velora-v3-page .entry-content > .velora-v3 { padding: 0 !important; }
.velora-v3 .velora-shop-hero { border-radius: 0; overflow: visible; color: var(--text-primary); background: none; box-shadow: none; }
.velora-v3 .velora-shop-hero .velora-eyebrow { color: var(--accent) !important; }
.velora-v3 .velora-shop-hero h1 { color: var(--text-primary); max-width: none; margin: 0; }
.velora-v3 .velora-shop-hero p { color: var(--text-secondary); max-width: 34rem; font-size: inherit; margin: 0; }
.velora-v3 .velora-shop-hero .velora-hero-sub { font-size: clamp(17px, 1.4vw, 20px); line-height: 1.55; }
.velora-v3 .velora-guide-grid, .velora-v3 .velora-cat-grid { margin: 0; }
.velora-v3 .velora-guide-card-img { position: static; inset: auto; width: 100%; height: auto; }
.velora-v3 .velora-guide-card { box-shadow: none; }
.velora-v3 .velora-reassure { border: 0; border-radius: 0; margin: 0; }
.velora-v3 .velora-tile { border: 0; }
.velora-v3 .velora-tile--violet { background: var(--peps-700); }
.velora-v3 .velora-tile--tint { background: var(--peps-100); }
.velora-v3 .velora-tile--ink { background: #1C1418; }
.velora-v3 .velora-cat-band { text-align: left; margin: 0; }
.velora-v3 .velora-cat-band .velora-stars { color: rgba(255,255,255,.28); }
.velora-v3 .velora-founder { flex-wrap: nowrap; background: none; margin: 0; }
.velora-v3 .velora-badge--top { display: inline-flex; align-items: center; height: 28px; padding: 0 14px; font-size: 12px; letter-spacing: .08em; }
.velora-v3 .velora-avatar { width: 40px; height: 40px; background: var(--peps-100); color: var(--accent); font-weight: 600; }

/* Remise a zero des marges heritees de style.css dans les groupes v3. */
.velora-v3 h1, .velora-v3 h2, .velora-v3 h3 { margin: 0; }
.velora-v3 .wp-block-group > h2, .velora-v3 > h2 { margin: 0; }
.velora-v3 p { margin: 0; }
.velora-v3 .wp-block-group.is-layout-flow > * + *,
.velora-v3 .wp-block-group.is-layout-constrained > * + * { margin-block-start: 0; }
.velora-v3 h1 { font-size: clamp(34px, 4.4vw, 64px); line-height: 1.04; letter-spacing: -.025em; }
.velora-v3 h2 { font-size: clamp(28px, 2.8vw, 40px); line-height: 1.12; letter-spacing: -.015em; }
.velora-v3 .velora-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.velora-v3 .velora-muted { color: var(--text-secondary); }
.velora-v3 img { max-width: 100%; height: auto; display: block; }

/* Sections */
.velora-v3 .velora-section { padding: var(--section-y) var(--wrap-x); display: flex; flex-direction: column; gap: 32px; }
.velora-v3 .velora-section--top0 { padding-top: 0; }
.velora-v3 .velora-section--subtle { background: var(--bg-subtle); }
.velora-v3 .velora-sechead { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.velora-v3 .velora-sechead a,
.velora-v3 .velora-more { font-size: 15px; font-weight: 600; color: var(--accent); white-space: nowrap; }
.velora-v3 .velora-sechead-text { display: flex; flex-direction: column; gap: 10px; max-width: 40rem; }

/* Boutons Gutenberg (core/buttons) */
.velora-v3 .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.velora-v3 .wp-block-button .wp-block-button__link { min-height: 52px; padding: 0 28px; border-radius: var(--radius-full); font-weight: 700; font-size: 16px; text-decoration: none; transition: transform var(--duration-base) var(--ease-bounce), box-shadow var(--duration-base) var(--ease-out); }
.velora-v3 .wp-block-button .wp-block-button__link:hover { transform: translateY(-1px); box-shadow: var(--shadow-cta-glow); }
.velora-v3 .wp-block-button.is-style-outline .wp-block-button__link { background: transparent !important; color: var(--text-primary) !important; border: 1.5px solid var(--border) !important; font-weight: 600; }
.velora-v3 .wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--accent) !important; color: var(--accent) !important; box-shadow: none; }
.velora-v3 .velora-btn--flash { height: 54px; padding: 0 30px; border-radius: var(--radius-full); background: var(--flash-500); color: var(--peps-950) !important; font-weight: 700; font-size: 16px; text-decoration: none !important; transition: transform var(--duration-base) var(--ease-bounce), box-shadow var(--duration-base) var(--ease-out), background var(--duration-base) var(--ease-out); }
.velora-v3 .velora-btn--flash:hover { background: var(--flash-400); transform: translateY(-1px) scale(1.03); }

/* Hero accueil */
.velora-v3 .velora-hero-text { display: flex; flex-direction: column; gap: 22px; }
.velora-v3 .velora-shop-hero .wp-block-image { margin: 0; }
.velora-v3 .velora-shop-hero .wp-block-image img { width: 100%; border-radius: var(--radius-lg); aspect-ratio: 4 / 4.4; object-fit: cover; }
.velora-v3 .velora-byline { display: flex; align-items: center; gap: 12px; margin-top: 8px; font-size: 14px; color: var(--text-secondary); }
.velora-v3 .velora-byline strong { color: var(--text-primary); }
.velora-v3 .velora-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--peps-100); flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-serif); font-weight: 600; color: var(--accent); }
@media (max-width: 921px) { .velora-v3 .velora-shop-hero .wp-block-image img { aspect-ratio: 4 / 3; } }

/* Hero en bande violette pleine largeur (choix client 2026-09-28, remplace le
   hero blanc de la maquette). */
.velora-v3 .velora-shop-hero { background: linear-gradient(120deg, var(--peps-900) 0%, var(--peps-700) 55%, var(--peps-600) 100%); }
.velora-v3 .velora-shop-hero .velora-eyebrow { color: var(--gold-300) !important; }
.velora-v3 .velora-shop-hero h1 { color: #FFFFFF; }
.velora-v3 .velora-shop-hero h1 em { color: var(--gold-300); }
.velora-v3 .velora-shop-hero p,
.velora-v3 .velora-shop-hero .velora-hero-sub { color: rgba(255,255,255,.88); }
.velora-v3 .velora-shop-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: #FFFFFF !important; color: var(--peps-700) !important; }
.velora-v3 .velora-shop-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--gold-300) !important; color: var(--peps-900) !important; box-shadow: 0 6px 20px rgba(0,0,0,.18); }
.velora-v3 .velora-shop-hero .wp-block-button.is-style-outline .wp-block-button__link { color: #FFFFFF !important; border-color: rgba(255,255,255,.55) !important; }
.velora-v3 .velora-shop-hero .wp-block-button.is-style-outline .wp-block-button__link:hover { color: #FFFFFF !important; border-color: #FFFFFF !important; }
.velora-v3 .velora-shop-hero .velora-byline { color: rgba(255,255,255,.8); }
.velora-v3 .velora-shop-hero .velora-byline strong { color: #FFFFFF; }
.velora-v3 .velora-shop-hero .velora-avatar { background: #FFFFFF; color: var(--peps-700); }
.velora-v3 .velora-shop-hero .wp-block-image img { box-shadow: 0 20px 48px rgba(20,8,26,.35); }

/* Cartes guides avec packshot du produit n°1 */
.velora-v3 .velora-guide-card--product .velora-guide-card-img { aspect-ratio: 4 / 3; object-fit: contain; background: #FFFFFF; padding: 20px; border-bottom: 1px solid var(--border); }
@media (max-width: 921px) {
  .velora-v3 .velora-guide-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
  .velora-v3 .velora-guide-card--product .velora-guide-card-img { padding: 12px; }
  .velora-v3 .velora-guide-card--product > div { padding: 12px 14px 14px; }
  .velora-v3 .velora-guide-card--product .t { font-size: 16px; }
  .velora-v3 .velora-guide-card--product .m { display: none; }
  .velora-v3 .velora-guide-card--product .kicker { font-size: 10px; letter-spacing: .08em; }
}

/* Cartes conseils (liste curatee) */
.velora-v3 .velora-cat-card .kicker { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.velora-v3 .velora-cat-card .t { font-family: var(--font-serif); font-weight: 600; font-size: 20px; line-height: 1.25; color: var(--text-primary); }
.velora-v3 .velora-cat-card:hover .t { color: var(--accent); }
.velora-v3 .velora-cat-card, .velora-v3 .velora-guide-card { text-decoration: none !important; }
.velora-v3 .velora-cat-card-body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
@media (max-width: 921px) { .velora-v3 .velora-cat-card .t { font-size: 17px; } }

/* Bandeau de reassurance */
.velora-v3 .velora-reassure-item { display: flex; flex-direction: column; gap: 6px; }
.velora-v3 .velora-reassure-item strong { font-size: 15px; }
.velora-v3 .velora-reassure-item p + p { font-size: 14px; line-height: 1.5; color: var(--text-secondary); }

/* Tuiles */
.velora-v3 .velora-tile-title { font-family: var(--font-serif); font-weight: 600; font-size: 28px; line-height: 1.15; }
.velora-v3 .velora-tile-foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; font-size: 14px; line-height: 1.45; color: var(--text-secondary); }
.velora-v3 .velora-tile-foot .arr { font-size: 20px; color: var(--accent); }
.velora-v3 .velora-tile--violet .velora-tile-foot { color: rgba(255,255,255,.84); }
.velora-v3 .velora-tile--violet .velora-tile-foot .arr { color: #FFFFFF; }
.velora-v3 .velora-tile--flash .velora-tile-foot .arr { color: var(--flash-700); }
.velora-v3 .velora-tile--gold .velora-tile-foot .arr { color: var(--gold-900); }
.velora-v3 .velora-tile--ink .velora-tile-foot { color: rgba(243,232,212,.78); }
.velora-v3 .velora-tile--ink .velora-tile-foot .arr { color: #F3E8D4; }
.velora-v3 .velora-tile-tag { align-self: flex-start; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; border: 1px solid rgba(243,232,212,.35); border-radius: var(--radius-full); padding: 2px 8px; margin-bottom: 8px; }
@media (max-width: 640px) { .velora-v3 .velora-tile-title { font-size: 20px; } .velora-v3 .velora-tile-foot > span:first-child { display: none; } .velora-v3 .velora-tile-foot { justify-content: flex-end; } }

/* Cartes guides */
.velora-v3 .velora-guide-card-img { aspect-ratio: 16 / 10; object-fit: cover; }
.velora-v3 .velora-guide-card .kicker { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.velora-v3 .velora-guide-card .t { font-family: var(--font-serif); font-weight: 600; font-size: 21px; line-height: 1.2; }
.velora-v3 .velora-guide-card .m { font-size: 14px; color: var(--text-secondary); }
.velora-v3 .velora-guide-card .cta { margin-top: auto; padding-top: 10px; font-size: 15px; font-weight: 600; color: var(--accent); }

/* Bandeau coup de coeur (pleine largeur) */
.velora-v3 .velora-cat-band { border-radius: 0; padding: var(--section-y) var(--wrap-x); display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 72px; align-items: center; }
.velora-v3 .velora-cat-band .wp-block-image { margin: 0; }
.velora-v3 .velora-cat-band .wp-block-image img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; background: #FFFFFF; border-radius: var(--radius-lg); padding: 24px; }
.velora-v3 .velora-cat-band .velora-band-text { display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }
.velora-v3 .velora-cat-band p { color: rgba(255,255,255,.86); max-width: 34rem; }
.velora-v3 .velora-band-product { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.velora-v3 .velora-band-product .n { font-family: var(--font-serif); font-weight: 600; font-size: 22px; color: #FFFFFF; }
.velora-v3 .velora-stars { color: var(--gold-500); letter-spacing: 2px; font-size: 16px; }
.velora-v3 .velora-band-buy { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; margin-top: 4px; }
.velora-v3 .velora-band-buy .price { font-size: 26px; font-weight: 700; color: #FFFFFF; }
.velora-v3 .velora-cat-band .velora-aff-note { font-size: 13px; color: rgba(255,255,255,.74); }
@media (max-width: 921px) { .velora-v3 .velora-cat-band { grid-template-columns: 1fr; gap: 28px; } .velora-v3 .velora-cat-band .wp-block-image img { aspect-ratio: 4 / 3; } }

/* Fondatrice */
.velora-v3 .velora-founder { padding: var(--section-y) var(--wrap-x); max-width: 1440px; }
.velora-v3 .velora-monogram-xl { width: 280px; max-width: 100%; aspect-ratio: 1 / 1; border-radius: 50%; background: var(--peps-100); display: flex; align-items: center; justify-content: center; font-family: var(--font-serif); font-style: italic; font-weight: 500; font-size: 120px; color: var(--accent); }
.velora-v3 .velora-founder-text { display: flex; flex-direction: column; gap: 18px; max-width: 44rem; }
.velora-v3 .velora-founder-quote { font-family: var(--font-serif); font-style: italic; font-weight: 400; font-size: clamp(24px, 2.4vw, 34px); line-height: 1.3; letter-spacing: -.01em; text-wrap: balance; }
@media (max-width: 921px) { .velora-v3 .velora-monogram-xl { width: 140px; font-size: 60px; } }

/* Derniers articles : core/query */
.velora-v3 .wp-block-post-template.velora-cat-grid { list-style: none; margin: 0; padding: 0; gap: 28px; }
.velora-v3 .velora-cat-grid > li { margin: 0; display: flex; flex-direction: column; gap: 16px; }
.velora-v3 .velora-cat-grid .wp-block-post-featured-image { margin: 0; }
.velora-v3 .velora-cat-grid .wp-block-post-featured-image img { border-radius: 14px; aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.velora-v3 .velora-cat-grid .wp-block-post-terms { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.velora-v3 .velora-cat-grid .wp-block-post-terms a { color: inherit; text-decoration: none; }
.velora-v3 .velora-cat-grid .wp-block-post-title { font-size: 20px; line-height: 1.25; margin: 6px 0 0; }
.velora-v3 .velora-cat-grid .wp-block-post-title a { color: var(--text-primary); text-decoration: none; }
.velora-v3 .velora-cat-grid .wp-block-post-title a:hover { color: var(--accent); }
@media (max-width: 921px) {
  .velora-v3 .velora-cat-grid > li { display: grid; grid-template-columns: 104px minmax(0,1fr); gap: 4px 16px; align-items: start; }
  .velora-v3 .velora-cat-grid .wp-block-post-featured-image { grid-row: span 2; }
  .velora-v3 .velora-cat-grid .wp-block-post-featured-image img { aspect-ratio: 1 / 1; }
  .velora-v3 .velora-cat-grid .wp-block-post-title { font-size: 17px; margin: 0; }
}

/* Newsletter */
.velora-v3 .velora-band--tint { padding: 64px 48px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 16px; }
.velora-v3 .velora-band--tint h2 { max-width: 36rem; }
.velora-v3 .velora-news-form { display: flex; gap: 10px; width: 100%; max-width: 520px; margin-top: 8px; }
.velora-v3 .velora-news-form input[type="email"] { flex: 1 1 auto; min-width: 0; height: 52px; border-radius: var(--radius-full); border: 1.5px solid rgba(28,20,24,.18); background: var(--bg-surface); padding: 0 20px; font-size: 16px; color: var(--text-primary); font-family: inherit; }
.velora-v3 .velora-news-form button { height: 52px; padding: 0 28px; border-radius: var(--radius-full); border: 0; background: var(--btn-bg); color: var(--btn-fg); font-weight: 700; font-size: 16px; font-family: inherit; cursor: pointer; }
.velora-v3 .velora-news-consent { display: flex; gap: 10px; align-items: flex-start; text-align: left; font-size: 13px; color: var(--text-secondary); max-width: 520px; }
.velora-v3 .velora-news-consent input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--accent); flex-shrink: 0; }
@media (max-width: 640px) { .velora-v3 .velora-band--tint { padding: 40px 20px; } .velora-v3 .velora-news-form { flex-direction: column; } }

/* =========================================================================
   6. GABARIT ARTICLE v3 (classes la-*, maquette LioraArticle)
   ========================================================================= */
.la-article { --la-x: var(--wrap-x); background: var(--bg-primary); }
.la-hero { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 64px; align-items: center; padding: 48px var(--la-x) 56px; max-width: 1440px; margin: 0 auto; }
.la-hero--nomedia { grid-template-columns: minmax(0, 860px); }
.la-hero-text { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.la-crumb { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; color: var(--text-secondary); }
.la-crumb a { color: var(--text-secondary); text-decoration: underline; text-underline-offset: 2px; }
.la-crumb a:hover { color: var(--accent); }
.la-crumb [aria-current] { color: var(--text-primary); }
.la-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.la-chip { display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border-radius: var(--radius-full); border: 1px solid var(--border); font-size: 12px; color: var(--text-secondary); }
.la-chip--cat { background: var(--peps-100); border-color: var(--peps-100); color: var(--peps-900); font-weight: 700; }
.la-article .la-title { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: clamp(32px, 3.9vw, 56px); line-height: 1.06; letter-spacing: -.025em; color: var(--text-primary); text-wrap: balance; }
.la-lede { margin: 0; font-size: clamp(17px, 1.4vw, 20px); line-height: 1.55; color: var(--text-secondary); max-width: 40rem; }
.la-byline { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--text-secondary); }
.la-byline > span:last-child { display: flex; flex-direction: column; line-height: 1.4; }
.la-byline strong { color: var(--text-primary); font-size: 14px; }
.la-hero-media { margin: 0; }
.la-hero-media img { width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; border-radius: var(--radius-lg); display: block; }
.la-stats { max-width: 1440px; margin: 0 auto; padding: 0 var(--la-x) 24px; }
.la-stats .velora-art-stats { margin: 0; }
.la-stats .velora-art-stat { margin: 0; background: var(--bg-surface); }
.la-stats .velora-art-stat .num { display: block; font-family: var(--font-serif); font-weight: 600; font-size: 30px; line-height: 1.1; color: var(--accent); }
.la-stats .velora-art-stat .lbl { font-size: 14px; color: var(--text-secondary); }

.la-grid { display: grid; grid-template-columns: minmax(0,720px) 260px; gap: 72px; align-items: start; padding: 24px var(--la-x) 80px; max-width: 1440px; margin: 0 auto; }
.la-grid--notoc { grid-template-columns: minmax(0,720px); }
.la-main { min-width: 0; font-size: 17px; line-height: 1.75; }
.la-main > * + * { margin-top: 1.1em; }
.la-main h2 { font-family: var(--font-serif); font-weight: 600; font-size: clamp(25px, 2.4vw, 32px); line-height: 1.15; letter-spacing: -.015em; margin: 2.2em 0 .6em !important; scroll-margin-top: 110px; }
.la-main h3 { font-family: var(--font-serif); font-weight: 600; font-size: 21px; line-height: 1.25; margin: 1.8em 0 .5em !important; scroll-margin-top: 110px; }
.la-main p, .la-main ul, .la-main ol { margin-bottom: 0; }
.la-main ul, .la-main ol { padding-left: 1.3em; }
.la-main li + li { margin-top: .35em; }
.la-main a:not([class]) { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.la-main img { border-radius: 14px; }
.la-main .velora-callout { border: 0 !important; border-radius: 16px; padding: 20px 22px; background: var(--tint); }
.la-main .velora-callout--warn { background: var(--warn-bg); }
.la-main .velora-callout--ok { background: var(--success-100); }
.la-main .velora-callout > :first-child { margin-top: 0; }
.la-main .velora-callout > * + * { margin-top: .5em; }
.la-main .velora-faq-list { display: flex; flex-direction: column; gap: 10px; }
.la-main details.velora-faq { border: 1px solid var(--border); border-radius: 14px; padding: 18px 20px; background: var(--bg-surface); }
.la-main details.velora-faq summary { font-weight: 600; font-size: 16px; }
.la-main details.velora-faq[open] { border-color: var(--accent); }
.la-main details.velora-faq > p { margin-top: 10px; color: var(--text-secondary); font-size: 16px; }
.la-main .wp-block-table { overflow-x: auto; }
.la-main .wp-block-table table { border-collapse: collapse; width: 100%; font-size: 15px; }
.la-main .wp-block-table th { background: var(--bg-subtle); text-align: left; }
.la-main .wp-block-table th, .la-main .wp-block-table td { padding: 12px 14px; border: 0; border-bottom: 1px solid var(--border); }

.la-side { position: sticky; top: 140px; display: flex; flex-direction: column; gap: 22px; }
.la-article .la-toc { box-shadow: none !important; background: none !important; border: 0 !important; border-left: 2px solid var(--tint) !important; border-radius: 0 !important; padding: 0 0 0 18px !important; }
.la-article .la-toc a { text-decoration: none !important; }
.la-article .la-toc .velora-toc-l3 { display: none; }
.la-toc { display: block; padding: 0 0 0 18px; border-left: 2px solid var(--tint); background: none; border-radius: 0; margin: 0; }
.la-toc h4 { margin: 0 0 10px; font-family: var(--font-sans); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--text-secondary); }
.la-toc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.la-toc a { display: block; padding: 3px 0; font-size: 14px; line-height: 1.4; color: var(--text-secondary); text-decoration: none; background: none !important; }
.la-toc a:hover, .la-toc a.is-active { color: var(--accent); font-weight: 700; }
.la-toc .velora-toc-l3 a { padding-left: 12px; font-size: 13px; }
.la-share { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--text-secondary); }
.la-share-btn { height: 34px; padding: 0 14px; border-radius: var(--radius-full); border: 1.5px solid var(--border); background: transparent; color: var(--text-primary); font-size: 13px; font-weight: 600; cursor: pointer; }
.la-share-btn.is-copied { border-color: var(--accent); color: var(--accent); }

.la-kicker { margin: 0; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.la-cta { margin-top: 2.4em !important; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 22px 24px; }
.la-cta > div { display: flex; flex-direction: column; gap: 4px; }
.la-cta .la-cta-t { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: 20px; line-height: 1.25; }
.la-cta p { margin: 0; font-size: 15px; color: var(--text-secondary); }
.la-btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 24px; border-radius: var(--radius-full); background: var(--btn-bg); color: var(--btn-fg) !important; font-weight: 700; font-size: 15px; text-decoration: none !important; transition: transform var(--duration-base) var(--ease-bounce), box-shadow var(--duration-base) var(--ease-out); }
.la-btn:hover { background: var(--btn-bg-hover); transform: translateY(-1px); box-shadow: var(--shadow-cta-glow); }

.la-author { margin-top: 2.4em !important; border-top: 1px solid var(--border); padding-top: 28px; display: flex; gap: 20px; align-items: flex-start; }
.la-author > div { display: flex; flex-direction: column; gap: 6px; }
.la-author .la-author-name { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: 21px; }
.la-author p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--text-secondary); }
.la-author a { font-weight: 600; font-size: 15px; color: var(--accent); }

.la-next { background: var(--bg-subtle); }
.la-next-in { max-width: 1440px; margin: 0 auto; padding: var(--section-y) var(--la-x); display: flex; flex-direction: column; gap: 32px; }
.la-next h2 { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: clamp(28px, 2.8vw, 40px); letter-spacing: -.015em; }
.la-next-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 28px; }
.la-next-card { display: flex; flex-direction: column; gap: 10px; color: var(--text-primary); text-decoration: none !important; }
.la-next-card img, .la-next-ph { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 14px; display: block; background: var(--peps-100); }
.la-next-card .la-kicker { margin-top: 6px; }
.la-next-t { font-family: var(--font-serif); font-weight: 600; font-size: 20px; line-height: 1.25; }
.la-next-card:hover .la-next-t { color: var(--accent); }

@media (max-width: 921px) {
  .la-hero { grid-template-columns: 1fr; gap: 24px; padding: 24px 20px 32px; }
  .la-hero-media { order: -1; }
  .la-hero-media img { aspect-ratio: 16 / 10; }
  .la-grid { grid-template-columns: 1fr; gap: 0; padding: 8px 20px 56px; }
  .la-side { position: static; order: -1; margin-bottom: 8px; }
  .la-article .la-toc { border: 1px solid var(--border) !important; border-radius: 16px !important; padding: 16px 18px !important; }
  .la-share { display: none; }
  .la-stats { padding: 0 20px 16px; }
  .la-next-grid { grid-template-columns: 1fr; gap: 20px; }
  .la-next-card { display: grid; grid-template-columns: 104px minmax(0,1fr); gap: 4px 16px; }
  .la-next-card img, .la-next-ph { grid-row: span 2; aspect-ratio: 1 / 1; }
  .la-next-t { font-size: 17px; }
}

/* Breakout : la page article gere ses propres marges (anciennes regles
   .velora-article-page conservees pour le conteneur Astra). */
.velora-article-page .la-article { margin: 0 !important; padding: 0 !important; }

/* =========================================================================
   7. GABARIT GUIDE v3 (maquette LioraGuide), sur le balisage .velora-guide
      transforme au rendu par velora_guide_v3() (classe .vg-v3).
   ========================================================================= */
.velora-guide.vg-v3 { background: var(--bg-primary); }
.velora-guide.vg-v3 .vg-hero,
.velora-guide.vg-v3 .vg-hero--img { background: linear-gradient(120deg, var(--peps-900) 0%, var(--peps-700) 60%, var(--peps-600) 100%) !important; padding: 44px var(--wrap-x) 56px; border-radius: 0; }
.velora-guide.vg-v3 .vg-hero::before, .velora-guide.vg-v3 .vg-hero::after { display: none !important; }
.velora-guide.vg-v3 .vg-hero-inner { max-width: 1200px; margin: 0 auto; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.velora-guide.vg-v3 .vg-hero .breadcrumb, .velora-guide.vg-v3 .vg-hero .breadcrumb a { color: rgba(255,255,255,.72); font-size: 13px; }
.velora-guide.vg-v3 .vg-hero .eyebrow { align-self: flex-start; margin: 0; background: #FFFFFF; color: var(--peps-700); border-radius: var(--radius-full); padding: 4px 12px; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.velora-guide.vg-v3 .vg-hero h1 { margin: 0; color: #FFFFFF; font-family: var(--font-serif); font-weight: 600; font-size: clamp(34px, 4.2vw, 60px); line-height: 1.05; letter-spacing: -.025em; max-width: 22ch; }
.velora-guide.vg-v3 .vg-hero .lede { margin: 0; color: rgba(255,255,255,.88); font-size: clamp(17px, 1.4vw, 20px); line-height: 1.55; max-width: 44rem; }
.velora-guide.vg-v3 .vg-hero .article-meta { color: rgba(255,255,255,.8); font-size: 13px; display: flex; align-items: center; gap: 10px; }
.velora-guide.vg-v3 .vg-hero .article-meta strong { color: #FFFFFF; }
.velora-guide.vg-v3 .vg-hero .article-meta .avatar { width: 40px; height: 40px; border-radius: 50%; border: 2px solid rgba(255,255,255,.6); flex-shrink: 0; }

.velora-guide.vg-v3 .vg-wrap { max-width: 1200px; margin: 0 auto; padding: 28px var(--wrap-x) 80px; box-sizing: content-box; }
.velora-guide.vg-v3 .disclosure { background: var(--bg-subtle); border: 0; border-radius: 10px; padding: 14px 18px; font-size: 14px; color: var(--text-secondary); max-width: 900px; margin: 0 0 8px; }
.velora-guide.vg-v3 .layout { display: block !important; }
.velora-guide.vg-v3 .layout__main { max-width: none; width: 100%; }
.velora-guide.vg-v3 .layout__main > h2 { font-family: var(--font-serif); font-weight: 600; font-size: clamp(28px, 2.8vw, 40px); line-height: 1.12; letter-spacing: -.015em; margin: 64px 0 20px; scroll-margin-top: 130px; }

/* Top 3 */
.velora-guide.vg-v3 .vg-top3 { margin-top: 40px; }
.velora-guide.vg-v3 .vg-top3 h2 { font-family: var(--font-serif); font-weight: 600; font-size: clamp(28px, 2.8vw, 40px); margin: 0 0 6px; }
.velora-guide.vg-v3 .vg-top3-sub { color: var(--text-secondary); margin: 0 0 22px; }
.velora-guide.vg-v3 .vg-top3-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.velora-guide.vg-v3 .vg-card { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 20px; display: flex; flex-direction: column; gap: 10px; background: var(--bg-surface); }
.velora-guide.vg-v3 .vg-card.is-winner { border: 2px solid var(--flash-500); box-shadow: 0 8px 24px rgba(245,35,137,.14); }
.velora-guide.vg-v3 .vg-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: #FFFFFF; border-radius: 14px; }
.velora-guide.vg-v3 .vg-card-badge { align-self: flex-start; display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: var(--radius-full); background: var(--peps-50); color: var(--peps-700); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.velora-guide.vg-v3 .vg-card.is-winner .vg-card-badge { background: var(--flash-100); color: var(--flash-700); }
.velora-guide.vg-v3 .vg-card-name { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: 20px; line-height: 1.2; }
.velora-guide.vg-v3 .vg-card-foot { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }

/* Prix et boutons affilies (rose : zone vente) */
.velora-guide.vg-v3 .vg-price { font-weight: 700; font-size: 20px; color: var(--price); }
.velora-guide.vg-v3 .product__cta .btn,
.velora-guide.vg-v3 .vg-card .btn { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 20px; border-radius: var(--radius-full); background: var(--flash-500) !important; color: var(--peps-950) !important; font-weight: 700; font-size: 15px; text-decoration: none !important; box-shadow: 0 4px 14px rgba(245,35,137,.28); transition: transform var(--duration-base) var(--ease-bounce), box-shadow var(--duration-base) var(--ease-out), background var(--duration-base) var(--ease-out); }
.velora-guide.vg-v3 .product__cta .btn::after,
.velora-guide.vg-v3 .vg-card .btn::after { content: "↗"; }
.velora-guide.vg-v3 .product__cta .btn:hover,
.velora-guide.vg-v3 .vg-card .btn:hover { background: var(--flash-400) !important; transform: translateY(-1px) scale(1.03); box-shadow: 0 6px 20px rgba(245,35,137,.45); }

/* Tableau comparatif */
.velora-guide.vg-v3 .cmp-table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--border); border-radius: 14px; overflow: hidden; font-size: 15px; background: var(--bg-surface); }
.velora-guide.vg-v3 .cmp-table th { background: var(--bg-subtle); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-secondary); text-align: left; padding: 14px 16px; border: 0; }
.velora-guide.vg-v3 .cmp-table td { padding: 14px 16px; border: 0; border-top: 1px solid var(--border); vertical-align: middle; }
.velora-guide.vg-v3 .cmp-table td:last-child { font-weight: 700; color: var(--price); white-space: nowrap; }
.velora-guide.vg-v3 .cmp-prod { display: flex; align-items: center; gap: 12px; font-weight: 600; }
.velora-guide.vg-v3 .cmp-thumb { width: 44px; height: 44px; object-fit: contain; background: #FFFFFF; border: 1px solid var(--border); border-radius: 10px; flex-shrink: 0; }

/* Sommaire en encadre */
.velora-guide.vg-v3 .vg-tocbox { margin: 48px 0 0; border: 1px solid var(--border); border-radius: 16px; padding: 20px 24px; }
.velora-guide.vg-v3 .vg-tocbox h4 { margin: 0 0 10px; font-family: var(--font-sans); font-size: 15px; font-weight: 700; }
.velora-guide.vg-v3 .vg-tocbox ol { margin: 0; padding-left: 1.2em; columns: 2; column-gap: 40px; }
.velora-guide.vg-v3 .vg-tocbox li { margin: 0 0 6px; break-inside: avoid; }
.velora-guide.vg-v3 .vg-tocbox a { color: var(--accent); }

/* Fiches produit classees */
.velora-guide.vg-v3 .product { position: relative; display: grid; grid-template-columns: 240px minmax(0,1fr); gap: 32px; align-items: start; border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 28px; margin: 0 0 20px; background: var(--bg-surface); box-shadow: none; }
.velora-guide.vg-v3 .product__rank { position: absolute; top: -10px; left: -10px; width: 42px; height: 42px; border-radius: 50%; background: var(--flash-500); color: var(--peps-950); font-weight: 800; font-size: 17px; display: flex; align-items: center; justify-content: center; z-index: 2; }
.velora-guide.vg-v3 .product__media { width: 240px; height: 240px; border-radius: 14px; overflow: hidden; background: #FFFFFF; border: 1px solid var(--border); }
.velora-guide.vg-v3 .product__media img { width: 100%; height: 100%; object-fit: contain; }
.velora-guide.vg-v3 .product__body { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.velora-guide.vg-v3 .product__brand { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--text-secondary); }
.velora-guide.vg-v3 .product__body h3 { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: 24px; line-height: 1.2; }
.velora-guide.vg-v3 .product__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.velora-guide.vg-v3 .product__tags span { background: var(--bg-subtle); border: 0; border-radius: var(--radius-full); padding: 3px 10px; font-size: 12px; color: var(--text-secondary); }
.velora-guide.vg-v3 .product__body > p { margin: 0; color: var(--text-secondary); font-size: 16px; line-height: 1.65; }
.velora-guide.vg-v3 .prosbox { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; background: none; border: 0; padding: 0; }
.velora-guide.vg-v3 .prosbox h4 { margin: 0 0 6px; font-family: var(--font-sans); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ok); }
.velora-guide.vg-v3 .prosbox .cons h4 { color: var(--ko); }
.velora-guide.vg-v3 .prosbox ul { list-style: none; margin: 0; padding: 0; font-size: 15px; }
.velora-guide.vg-v3 .prosbox li { position: relative; padding-left: 22px; margin: 0 0 4px; }
.velora-guide.vg-v3 .prosbox .pros li::before { content: "✓"; position: absolute; left: 0; color: var(--ok); font-weight: 700; }
.velora-guide.vg-v3 .prosbox .cons li::before { content: "✕"; position: absolute; left: 0; color: var(--ko); font-weight: 700; }
.velora-guide.vg-v3 .product__cta { margin-top: 6px; padding-top: 16px; border-top: 1px solid var(--border); display: flex; align-items: center; justify-content: flex-end; gap: 14px 18px; flex-wrap: wrap; }
.velora-guide.vg-v3 .product__cta .vg-price { margin-right: auto; }
.velora-guide.vg-v3 .aff-note { font-size: 12px; color: var(--text-secondary); }

/* Blocs de fin */
.velora-guide.vg-v3 .related { background: var(--tint); border: 0; border-radius: 16px; padding: 20px 22px; }
.velora-guide.vg-v3 .faq { display: flex; flex-direction: column; gap: 10px; }
.velora-guide.vg-v3 .faq details { border: 1px solid var(--border); border-radius: 14px; padding: 18px 20px; background: var(--bg-surface); }
.velora-guide.vg-v3 .faq details[open] { border-color: var(--accent); }
.velora-guide.vg-v3 .faq summary { font-weight: 600; cursor: pointer; }
.velora-guide.vg-v3 .faq details > div { margin-top: 10px; color: var(--text-secondary); }
.velora-guide.vg-v3 .author { display: flex; gap: 18px; align-items: flex-start; border: 0; border-top: 1px solid var(--border); border-radius: 0; background: none; padding: 28px 0 0; margin-top: 48px; }
.velora-guide.vg-v3 .author .avatar { width: 64px; height: 64px; border-radius: 50%; flex-shrink: 0; }

@media (max-width: 921px) {
  .velora-guide.vg-v3 .vg-hero { padding: 24px 20px 36px; }
  .velora-guide.vg-v3 .vg-wrap { padding: 20px 20px 56px; }
  .velora-guide.vg-v3 .vg-top3-grid { grid-template-columns: 1fr; }
  .velora-guide.vg-v3 .vg-card { display: grid; grid-template-columns: 96px minmax(0,1fr); gap: 6px 14px; padding: 14px; }
  .velora-guide.vg-v3 .vg-card img { grid-row: span 3; aspect-ratio: 1 / 1; }
  .velora-guide.vg-v3 .vg-card-foot { grid-column: 1 / -1; }
  .velora-guide.vg-v3 .cmp-table { display: block; overflow-x: auto; white-space: nowrap; }
  .velora-guide.vg-v3 .vg-tocbox ol { columns: 1; }
  .velora-guide.vg-v3 .product { grid-template-columns: 1fr; gap: 18px; padding: 18px; }
  .velora-guide.vg-v3 .product__media { width: 100%; height: 200px; }
  .velora-guide.vg-v3 .prosbox { grid-template-columns: 1fr; gap: 12px; }
  .velora-guide.vg-v3 .product__cta .btn { flex: 1 1 100%; justify-content: center; }
}

/* =========================================================================
   8. RUBRIQUE (archive de categorie, category.php) + RECHERCHE + 404
   ========================================================================= */
body.category .site-content > .ast-container,
body.search .site-content > .ast-container,
body.error404 .site-content > .ast-container { max-width: 100% !important; padding: 0 !important; display: block; }
body.category #primary, body.search #primary, body.error404 #primary { margin: 0 !important; padding: 0 !important; width: 100% !important; max-width: none !important; }
.lr { background: var(--bg-primary); }
.lr-in { max-width: 1200px; margin: 0 auto; padding-inline: var(--wrap-x); box-sizing: content-box; }
.lr-hero { background: var(--peps-50); border-bottom: 1px solid var(--border); padding: 40px 0 44px; }
.lr-hero .lr-in { display: flex; flex-direction: column; gap: 14px; }
.lr-title { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: clamp(38px, 4.6vw, 64px); line-height: 1.04; letter-spacing: -.025em; }
.lr-desc { max-width: 40rem; color: var(--text-secondary); font-size: 18px; line-height: 1.55; }
.lr-desc p { margin: 0; }
.lr-chips { margin-top: 6px; }
.lr-chips .velora-chip { background: var(--bg-surface); }
.lr-chips .velora-chip.is-active { background: var(--btn-bg); border-color: var(--btn-bg); color: var(--btn-fg); }
.lr-body { padding-top: 56px; padding-bottom: 80px; }
.lr-feature { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 48px; align-items: center; margin-bottom: 72px; }
.lr-feature-media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius-lg); display: block; }
.lr-feature-text { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.lr-badge { display: inline-flex; align-items: center; height: 26px; padding: 0 12px; border-radius: var(--radius-full); background: var(--peps-100); color: var(--peps-900); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.lr-feature h2 { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: clamp(28px, 2.6vw, 38px); line-height: 1.12; letter-spacing: -.015em; }
.lr-feature h2 a, .lr-card h3 a { color: var(--text-primary); text-decoration: none; }
.lr-feature h2 a:hover, .lr-card h3 a:hover { color: var(--accent); }
.lr-feature p { margin: 0; color: var(--text-secondary); font-size: 17px; line-height: 1.55; }
.lr-h2 { margin: 0 0 28px; font-family: var(--font-serif); font-weight: 600; font-size: clamp(26px, 2.4vw, 32px); }
.lr-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 40px 28px; }
.lr-card { display: flex; flex-direction: column; gap: 8px; }
.lr-card-media img, .lr-card-media .la-next-ph { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 14px; display: block; margin-bottom: 8px; }
.lr-card h3 { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: 20px; line-height: 1.25; }
.lr-card p { margin: 0; color: var(--text-secondary); font-size: 15px; line-height: 1.5; }
.lr-meta { font-size: 13px; color: var(--text-secondary); }
.lr-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 48px; flex-wrap: wrap; }
.lr-pagination .page-numbers { min-width: 44px; height: 44px; padding: 0 14px; border-radius: 12px; border: 1px solid var(--border); display: inline-flex; align-items: center; justify-content: center; color: var(--text-primary); text-decoration: none; font-weight: 600; }
.lr-pagination .current { background: var(--btn-bg); color: var(--btn-fg); border-color: var(--btn-bg); }
.lr-empty { color: var(--text-secondary); font-size: 17px; }
.lr-band { margin-top: 72px; background: var(--bg-subtle); border-radius: 24px; padding: 36px 44px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.lr-band > div { display: flex; flex-direction: column; gap: 6px; }
.lr-band p { margin: 0; color: var(--text-secondary); }
.lr-band .lr-band-t { font-family: var(--font-serif); font-weight: 600; font-size: 26px; color: var(--text-primary); }
.lr-band-btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 24px; border-radius: var(--radius-full); border: 1.5px solid var(--border); color: var(--text-primary); font-weight: 600; text-decoration: none; }
.lr-band-btn:hover { border-color: var(--accent); color: var(--accent); }
@media (max-width: 921px) {
  .lr-hero { padding: 24px 0 28px; }
  .lr-body { padding-top: 32px; padding-bottom: 56px; }
  .lr-feature { grid-template-columns: 1fr; gap: 20px; margin-bottom: 44px; }
  .lr-grid { grid-template-columns: 1fr; gap: 20px; }
  .lr-card { display: grid; grid-template-columns: 104px minmax(0,1fr); gap: 4px 16px; align-items: start; }
  .lr-card-media { grid-row: span 4; }
  .lr-card-media img, .lr-card-media .la-next-ph { aspect-ratio: 1 / 1; margin: 0; }
  .lr-card h3 { font-size: 17px; }
  .lr-card p { display: none; }
  .lr-band { padding: 24px 20px; }
}

/* =========================================================================
   9. HUBS DE VENTE v3 ([velora_hub]) + bandeau violet des pages v3
   ========================================================================= */
.velora-v3 .velora-hero-band { background: linear-gradient(120deg, var(--peps-900) 0%, var(--peps-700) 60%, var(--peps-600) 100%); color: #FFFFFF; padding: 44px var(--wrap-x) 56px; }
.velora-v3 .velora-hero-band { padding-left: max(var(--wrap-x), calc((100% - 1200px) / 2)); padding-right: max(var(--wrap-x), calc((100% - 1200px) / 2)); }
.velora-v3 .velora-hero-band .la-crumb, .velora-v3 .velora-hero-band .la-crumb a { color: rgba(255,255,255,.72); }
.velora-v3 .velora-hero-band .la-crumb [aria-current] { color: #FFFFFF; }
.velora-v3 .velora-hero-band .velora-eyebrow { color: var(--gold-300); margin-top: 14px !important; }
.velora-v3 .velora-hero-band h1 { color: #FFFFFF !important; margin-top: 10px !important; max-width: 20ch; }
.velora-v3 .velora-hero-band h1 em { color: var(--gold-300); }
.velora-v3 .velora-hero-band .velora-hero-sub { color: rgba(255,255,255,.88); font-size: clamp(17px, 1.4vw, 20px); line-height: 1.55; max-width: 44rem; margin-top: 14px !important; }
.velora-v3 .vh3-wrap { max-width: 1200px; margin: 0 auto; padding: 28px var(--wrap-x) 24px; box-sizing: content-box; }
.velora-v3 .velora-disclosure { margin: 0; }
.velora-v3 .vh3-sec { max-width: 1200px; margin: 0 auto; padding: 48px var(--wrap-x) 0; box-sizing: content-box; display: flex; flex-direction: column; gap: 24px; }
.velora-v3 .vh3-sec:last-child { padding-bottom: 88px; }
.velora-v3 .vh3-head { display: flex; flex-direction: column; gap: 6px; }
.velora-v3 .vh3-head h2, .velora-v3 .vh3-faq h2 { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: clamp(26px, 2.6vw, 36px); letter-spacing: -.015em; }
.velora-v3 .vh3-head p { margin: 0; color: var(--text-secondary); }
.velora-v3 .vh3-picks { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.velora-v3 .vh3-pick { position: relative; border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; background: var(--bg-surface); display: flex; flex-direction: column; }
.velora-v3 .vh3-pick img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: #FFFFFF; padding: 20px; border-bottom: 1px solid var(--border); }
.velora-v3 .vh3-rank { position: absolute; top: 12px; left: 12px; height: 24px; padding: 0 10px; border-radius: var(--radius-full); background: var(--flash-100); color: var(--flash-700); font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; }
.velora-v3 .vh3-pick-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.velora-v3 .vh3-pick h3 { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: 19px; line-height: 1.25; }
.velora-v3 .vh3-pick .velora-stars { color: var(--peps-100); }
.velora-v3 .vh3-pick-foot { margin-top: auto; padding-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.velora-v3 .vh3-price { font-weight: 700; font-size: 20px; color: var(--price); }
.velora-v3 .vh3-buy { display: inline-flex; align-items: center; gap: 6px; height: 44px !important; padding: 0 20px !important; font-size: 15px !important; }
.velora-v3 .vh3-sec--tight { padding-top: 56px; }
.velora-v3 .vh3-band { background: var(--flash-50); border-radius: 24px; padding: 32px 40px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.velora-v3 .vh3-band > div { display: flex; flex-direction: column; gap: 6px; }
.velora-v3 .vh3-band p { margin: 0; color: var(--text-secondary); }
.velora-v3 .vh3-band .vh3-band-t { font-family: var(--font-serif); font-weight: 600; font-size: 24px; color: var(--text-primary); }
.velora-v3 .vh3-faq .velora-faq-list { display: flex; flex-direction: column; gap: 10px; max-width: 760px; }
.velora-v3 details.velora-faq { border: 1px solid var(--border); border-radius: 14px; padding: 18px 20px; background: var(--bg-surface); }
.velora-v3 details.velora-faq[open] { border-color: var(--accent); }
.velora-v3 details.velora-faq > p { margin-top: 10px; color: var(--text-secondary); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .velora-v3 .vh3-band { background: var(--bg-subtle); } }
:root[data-theme="dark"] .velora-v3 .vh3-band { background: var(--bg-subtle); }
@media (max-width: 921px) {
  .velora-v3 .velora-hero-band { padding: 24px 20px 36px; }
  .velora-v3 .vh3-wrap { padding: 20px 20px 8px; }
  .velora-v3 .vh3-sec { padding: 36px 20px 0; }
  .velora-v3 .vh3-sec:last-child { padding-bottom: 56px; }
  .velora-v3 .vh3-picks { grid-template-columns: 1fr; }
  .velora-v3 .vh3-pick { display: grid; grid-template-columns: 112px minmax(0,1fr); }
  .velora-v3 .vh3-pick img { height: 100%; aspect-ratio: auto; padding: 10px; border: 0; border-right: 1px solid var(--border); }
  .velora-v3 .vh3-rank { top: 8px; left: 8px; }
  .velora-v3 .vh3-band { padding: 24px 20px; }
}

/* Recherche et 404 */
.lr-title--sm { font-size: clamp(30px, 3.4vw, 48px); }
.lr-search { display: flex; gap: 10px; width: 100%; max-width: 620px; margin-top: 6px; }
.lr-search input[type="search"] { flex: 1 1 auto; min-width: 0; height: 52px; border-radius: var(--radius-full); border: 1.5px solid rgba(28,20,24,.18); background: var(--bg-surface); padding: 0 20px; font-size: 16px; color: var(--text-primary); }
.lr-search button { height: 52px; padding: 0 26px; border-radius: var(--radius-full); border: 0; background: var(--btn-bg); color: var(--btn-fg); font-weight: 700; font-size: 16px; cursor: pointer; }
.lr-count { margin: 0; font-size: 14px; color: var(--text-secondary); }
.lr-noresult { display: flex; flex-direction: column; gap: 10px; }
.lr-noresult p { margin: 0; color: var(--text-secondary); }
.lr-noresult .lr-band-t { font-family: var(--font-serif); font-weight: 600; font-size: 26px; color: var(--text-primary); }
.lr-quick { margin: 28px 0 8px; }
.lr-quick .velora-tile { min-height: 112px !important; box-shadow: none; }
.lr-404 { padding-top: 56px; padding-bottom: 88px; display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.lr-404 .velora-404-num { margin: 0; }
.lr-404 .lr-quick { width: 100%; }
@media (max-width: 640px) { .lr-search { flex-direction: column; } }

/* Pages texte (legales, transparence, contact) */
.la-hero--tint { max-width: none; background: var(--peps-50); border-bottom: 1px solid var(--border); padding-left: max(var(--la-x), calc((100% - 1200px) / 2)); padding-right: max(var(--la-x), calc((100% - 1200px) / 2)); margin-bottom: 16px; }
.la-updated { margin: 0; font-size: 14px; color: var(--text-secondary); }
.la-article--text .la-grid { max-width: 1200px; padding-left: var(--la-x); padding-right: var(--la-x); box-sizing: content-box; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .la-hero--tint { background: var(--bg-subtle); } }
:root[data-theme="dark"] .la-hero--tint { background: var(--bg-subtle); }

/* A propos */
.velora-v3 .velora-founder-img { margin: 0; }
.velora-v3 .velora-founder-img img { width: 280px; max-width: 100%; aspect-ratio: 1 / 1; border-radius: 50%; }
.velora-v3 .velora-about-lead { font-size: 19px; line-height: 1.65; color: var(--text-secondary); max-width: 46rem; }
.velora-v3 .velora-about-lead a { color: var(--accent); }
.velora-v3 .velora-mission-item { text-align: left; align-items: flex-start; }
.velora-v3 .velora-mission h3 { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: 22px; }
.velora-v3 .velora-mission p { color: var(--text-secondary); line-height: 1.6; }
.velora-v3 .velora-about-quote { margin: 8px 0 0; max-width: 820px; }
.velora-v3 .velora-about-quote figcaption { display: flex; align-items: center; gap: 10px; margin-top: 14px; font-weight: 600; font-size: 14px; }
@media (max-width: 921px) { .velora-v3 .velora-founder-img img { width: 140px; } }

/* Selecteur de langue : pastille drapeau + liste deroulante */
.velora-langsel { position: relative; }
.velora-langsel > summary { list-style: none; display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 12px 0 10px; border: 1px solid var(--border); border-radius: var(--radius-full); background: var(--bg-surface); color: var(--text-primary); font-size: 13px; font-weight: 700; letter-spacing: .04em; cursor: pointer; user-select: none; transition: border-color var(--duration-fast) var(--ease-out); }
.velora-langsel > summary::-webkit-details-marker { display: none; }
.velora-langsel > summary:hover, .velora-langsel[open] > summary { border-color: var(--peps-300); }
.velora-flag { width: 22px; height: 15px; border-radius: 3px; flex-shrink: 0; box-shadow: 0 0 0 1px rgba(28,20,24,.12); display: block; }
.velora-langsel-caret { width: 12px; height: 12px; color: var(--text-secondary); transition: transform var(--duration-fast) var(--ease-out); }
.velora-langsel[open] .velora-langsel-caret { transform: rotate(180deg); }
.velora-langsel-menu { position: absolute; right: 0; top: calc(100% + 8px); z-index: 1000; min-width: 190px; margin: 0; padding: 6px; list-style: none; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 14px; box-shadow: 0 14px 32px rgba(28,20,24,.16); }
.velora-langsel-menu li { margin: 0; }
.velora-langsel-menu a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; color: var(--text-primary); text-decoration: none; font-size: 15px; font-weight: 500; }
.velora-langsel-menu a:hover, .velora-langsel-menu a:focus-visible { background: var(--peps-50); color: var(--accent); }
.velora-langsel-menu a[aria-current] { font-weight: 700; }
.velora-langsel-menu a[aria-current]::after { content: "✓"; margin-left: auto; color: var(--accent); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .velora-langsel-menu a:hover { background: var(--bg-subtle); } }
:root[data-theme="dark"] .velora-langsel-menu a:hover { background: var(--bg-subtle); }

/* Bloc « Nos derniers articles » (core/query sur les accueils) */
.velora-v3 .velora-latest .wp-block-post-template { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 36px 28px; }
.velora-v3 .velora-latest .wp-block-post-template > li { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.velora-v3 .velora-latest .wp-block-post-featured-image { margin: 0 0 6px; }
.velora-v3 .velora-latest .wp-block-post-featured-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 14px; }
.velora-v3 .velora-latest .wp-block-post-terms { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.velora-v3 .velora-latest .wp-block-post-terms a { color: inherit; text-decoration: none; }
.velora-v3 .velora-latest .wp-block-post-title { margin: 0; font-family: var(--font-serif); font-weight: 600; font-size: 20px; line-height: 1.25; }
.velora-v3 .velora-latest .wp-block-post-title a { color: var(--text-primary); text-decoration: none; }
.velora-v3 .velora-latest .wp-block-post-title a:hover { color: var(--accent); }
.velora-v3 .velora-latest .wp-block-post-excerpt { margin: 0; }
.velora-v3 .velora-latest .wp-block-post-excerpt__excerpt { margin: 0; font-size: 15px; line-height: 1.5; color: var(--text-secondary); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.velora-v3 .velora-latest .wp-block-post-date { font-size: 13px; color: var(--text-secondary); }
.velora-v3 .velora-latest .wp-block-query-pagination { display: flex; justify-content: center; align-items: center; gap: 8px; margin-top: 40px; flex-wrap: wrap; }
.velora-v3 .velora-latest .wp-block-query-pagination a, .velora-v3 .velora-latest .wp-block-query-pagination .page-numbers { min-width: 44px; height: 44px; padding: 0 14px; border-radius: 12px; border: 1px solid var(--border); display: inline-flex; align-items: center; justify-content: center; color: var(--text-primary); text-decoration: none; font-weight: 600; font-size: 15px; }
.velora-v3 .velora-latest .wp-block-query-pagination .current { background: var(--btn-bg); color: var(--btn-fg); border-color: var(--btn-bg); }
@media (max-width: 921px) {
  .velora-v3 .velora-latest .wp-block-post-template { grid-template-columns: 1fr; gap: 20px; }
  .velora-v3 .velora-latest .wp-block-post-template > li { display: grid; grid-template-columns: 104px minmax(0,1fr); gap: 4px 16px; align-items: start; }
  .velora-v3 .velora-latest .wp-block-post-featured-image { grid-row: span 4; margin: 0; }
  .velora-v3 .velora-latest .wp-block-post-featured-image img { aspect-ratio: 1 / 1; }
  .velora-v3 .velora-latest .wp-block-post-title { font-size: 17px; }
  .velora-v3 .velora-latest .wp-block-post-excerpt { display: none; }
}

/* Logo Liora (SVG) : violet en theme clair, creme en theme sombre et dans le pied de page */
.velora-logo { display: block; height: auto; max-width: none; }
.velora-shophead-brand { display: inline-flex; align-items: center; line-height: 0; }
.velora-shophead-brand .velora-logo { width: 120px; }
.velora-logo--sombre { display: none; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .velora-logo--clair { display: none; }
  :root:not([data-theme="light"]) .velora-logo--sombre { display: block; }
}
:root[data-theme="dark"] .velora-logo--clair { display: none; }
:root[data-theme="dark"] .velora-logo--sombre { display: block; }
.velora-footer .velora-footer-logo { display: inline-block; line-height: 0; margin-bottom: 14px; }
.velora-footer .velora-logo--footer { width: 132px; }
@media (max-width: 921px) { .velora-shophead-brand .velora-logo { width: 96px; } }

/* Pied de page : logo et accroche lisibles sur fond sombre */
.velora-footer .velora-footer-logo { color: #FFFFFF !important; font-family: var(--font-serif); font-weight: 600; font-size: 30px; letter-spacing: -.02em; }
.velora-footer .velora-footer-logo span { color: var(--gold-300); }
.velora-footer .velora-footer-brand p { color: rgba(243,232,212,.78) !important; max-width: 22rem; }

/* Illustration de Liora : remplace partout l'avatar a initiale "L".
   Bibliotheque Claude Design (assets/img/liora/, source design/liora-bibliotheque/) :
   rendus en WebP (mediatheque, l'endpoint write-file refuse le webp ; sources dans assets/img/liora/avatar/) : avatar simplifie (B) jusqu'a 48px, portrait detaille au dela, expression "verdict"
   dans les encadres verdict signes. */
.velora-avatar,
.velora-guide .article-meta .avatar,
.velora-guide .author .avatar {
  background: url('/wp-content/uploads/2026/10/avatar-liora-simple.webp') center / cover no-repeat, var(--peps-100) !important;
  color: transparent !important;
  overflow: hidden;
}
.velora-avatar--lg,
.velora-avatar--xl,
.velora-guide .author .avatar {
  background-image: url('/wp-content/uploads/2026/10/avatar-liora-reference.webp') !important;
}
.velora-quote .velora-avatar {
  background-image: url('/wp-content/uploads/2026/10/avatar-liora-verdict.webp') !important;
  width: 3.5rem; height: 3.5rem;
}
/* Illustrations maison des articles et guides (figures .liora-illu inserees par les agents). */
.liora-illu { margin: 1.75rem 0 2.25rem; }
.liora-illu img { display: block; width: 100%; height: auto; border-radius: 20px; }
.liora-illu figcaption { margin-top: .65rem; font-size: .92rem; line-height: 1.5; color: var(--text-secondary, #5E545A); text-align: center; font-style: italic; }
.velora-avatar--xl { width: 72px !important; height: 72px !important; border-radius: 50%; flex-shrink: 0; display: inline-block; }

/* =========================================================================
   10. GABARIT AVIS DE MARQUE (.velora-avis, maquette LioraAvis)
   ========================================================================= */
.velora-avis { color: var(--text-primary); }
.velora-avis .va-hero { background: var(--tint); padding: 52px var(--wrap-x) 56px; display: grid; grid-template-columns: 240px minmax(0,1fr); gap: 56px; align-items: center; }
.velora-avis .velora-monogram--lg { width: 240px; height: 240px; max-width: 100%; aspect-ratio: auto; display: flex; align-items: center; justify-content: center; font-family: var(--font-serif); font-style: italic; font-weight: 500; font-size: 120px; line-height: 1; color: var(--accent); }
.velora-avis .va-hero-text { display: flex; flex-direction: column; gap: 14px; }
.velora-avis .velora-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; color: var(--text-secondary); }
.velora-avis .velora-breadcrumb a { color: var(--text-secondary); }
.velora-avis .velora-breadcrumb [aria-current] { color: var(--text-primary); }
.velora-avis .velora-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--flash-700); }
.velora-avis h1 { font-family: var(--font-serif); font-weight: 600; font-size: clamp(32px, 3.8vw, 54px); line-height: 1.05; letter-spacing: -.025em; text-wrap: balance; }
.velora-avis .va-lede { margin: 0; font-size: clamp(16px, 1.35vw, 19px); color: var(--text-secondary); max-width: 40rem; text-wrap: pretty; }
.velora-avis .va-hero-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; margin-top: 4px; }
.velora-avis .velora-rating { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--text-secondary); }
.velora-avis .velora-rating strong { color: var(--text-primary); }
.velora-avis .va-stars, .velora-avis .va-star { color: #F5B82E; letter-spacing: 2px; }
.velora-avis .velora-art-byline { border: 0; margin: 0; padding: 0; display: flex; align-items: center; gap: 10px; font-size: 14px; }
.velora-avis .velora-avatar { width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0; display: inline-block; }

.velora-avis .va-wrap { padding: 40px var(--wrap-x) 96px; display: flex; flex-direction: column; gap: 64px; }
.velora-avis .velora-disclosure { margin: 0; line-height: 1.55; }
.velora-avis .velora-art-stat { display: flex; flex-direction: column; gap: 4px; }
.velora-avis .velora-art-stat strong { font-size: clamp(26px, 2.4vw, 34px); line-height: 1.1; }
.velora-avis .velora-art-stat span { font-size: 14px; color: var(--text-secondary); }
.velora-avis h2 { font-family: var(--font-serif); font-weight: 600; font-size: clamp(24px, 2.1vw, 30px); line-height: 1.12; margin: 0 0 14px; }
.velora-avis .va-prose { max-width: 760px; }
.velora-avis [id] { scroll-margin-top: 140px; }
.velora-avis .va-prose p, .velora-avis .va-prose ul { margin: 0 0 14px; text-wrap: pretty; }
.velora-avis .va-prose h3 { font-family: var(--font-serif); font-weight: 600; font-size: 22px; line-height: 1.2; margin: 26px 0 10px; }
.velora-avis .va-prose a { color: var(--accent); }
.velora-avis .va-grid h2 { margin-bottom: 22px; }
.velora-avis .velora-prodgrid { margin: 0; }
.velora-avis .velora-prodcard:hover { transform: none; box-shadow: var(--shadow-card-hover); }
.velora-avis .velora-prodcard-media { background: #FFFFFF; border-bottom: 1px solid var(--border); }
.velora-avis .velora-prodcard-media img { width: 100%; height: 100%; object-fit: contain; padding: 18px; display: block; }
.velora-avis .velora-prodcard-name { margin: 0; }
.velora-avis .va-kicker { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.velora-avis .va-meta { font-size: 13px; color: var(--text-secondary); }
.velora-avis .velora-prodcard-price { font-size: 17px; }
.velora-avis .velora-prodcard .velora-btn--flash { height: 40px; min-height: 40px; padding: 0 16px; font-size: 14px; white-space: nowrap; }
.velora-avis .va-model { border-top: 1px solid var(--border); padding-top: 6px; }
.velora-avis .va-model-pc { font-size: 15px; color: var(--text-secondary); }
.velora-avis .va-model-pc strong { color: var(--text-primary); }
.velora-avis .va-link { font-weight: 700; color: var(--accent) !important; }

.velora-avis .velora-pc { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; max-width: 900px; }
.velora-avis .velora-pc > div { background: var(--bg-subtle); border-radius: 20px; padding: 22px; }
.velora-avis .velora-pc h3 { font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ok); margin: 0 0 10px; }
.velora-avis .velora-pc > div + div h3 { color: var(--ko); }
.velora-avis .velora-pc ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.velora-avis .velora-pc li { display: flex; gap: 10px; }
.velora-avis .velora-pc li::before { content: "✓"; color: var(--ok); font-weight: 700; }
.velora-avis .velora-pc > div + div li::before { content: "×"; color: var(--ko); }

.velora-avis .velora-quote { display: flex; gap: 18px; align-items: flex-start; max-width: 900px; border-radius: 20px; }
.velora-avis .velora-quote .velora-avatar { width: 56px; height: 56px; }
.velora-avis .velora-quote figcaption { margin-top: 10px; font-size: 14px; color: var(--text-secondary); }
.velora-avis .velora-quote figcaption strong { color: var(--text-primary); }

.velora-avis .va-band { border-radius: 24px; padding: 36px 44px; display: flex; align-items: center; justify-content: space-between; gap: 20px 32px; }
.velora-avis .va-band h2 { margin: 0 0 6px; font-size: clamp(22px, 2vw, 28px); }
.velora-avis .va-band p { margin: 0; font-size: 15px; color: rgba(255,255,255,.8); }
.velora-avis .va-band .velora-btn--flash { flex-shrink: 0; white-space: nowrap; }

.velora-avis .va-faq, .velora-avis .va-related { max-width: 900px; }
.velora-avis .va-related { max-width: none; }
.velora-avis .velora-faq-list { display: flex; flex-direction: column; gap: 12px; }
.velora-avis .velora-faq { border: 1px solid var(--border); }
.velora-avis .velora-faq p { margin: 12px 0 0; color: var(--text-secondary); }
.velora-avis .velora-guide-grid { margin: 0; }
.velora-avis .velora-guide-card > div { gap: 8px; }

@media (max-width: 921px) {
  .velora-avis .va-hero { grid-template-columns: minmax(0,1fr); gap: 18px; padding: 20px 20px 32px; }
  .velora-avis .velora-monogram--lg { width: 96px; height: 96px; font-size: 48px; border-radius: 20px; }
  .velora-avis .va-wrap { padding: 24px 20px 56px; gap: 44px; }
  .velora-avis .velora-pc { grid-template-columns: minmax(0,1fr); }
  .velora-avis .va-band { flex-direction: column; align-items: flex-start; padding: 24px 20px; }
  .velora-avis .velora-prodcard-media img { padding: 8px; }
}

/* =========================================================================
   11. DUEL COMPARATIF (.velora-duel, maquette LioraComparatif)
   Insere dans les articles (la-*) et les guides (.velora-guide) comparatifs.
   ========================================================================= */
.velora-duel { display: flex; flex-direction: column; gap: 28px; margin: 32px 0 40px; }
.velora-duel .velora-compare-col { position: relative; padding: 28px 24px 24px; gap: 10px; border: 1px solid var(--border) !important; border-radius: 24px !important; }
.velora-duel .velora-compare-col > a { white-space: nowrap; }
.velora-duel .vd-badge { display: inline-flex; align-items: center; height: 28px; padding: 0 14px; border-radius: 9999px; background: var(--tint-strong); color: var(--accent); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.velora-duel .vd-img { width: 100%; max-width: 200px; aspect-ratio: 1 / 1; object-fit: contain; background: #FFFFFF; border-radius: 16px; padding: 10px; margin: 4px 0; }
.velora-duel .vd-mono { width: 140px; height: 140px; border-radius: 50%; background: var(--tint-strong); display: flex; align-items: center; justify-content: center; font-family: var(--font-serif); font-style: italic; font-weight: 500; font-size: 72px; line-height: 1; color: var(--accent); margin: 8px 0; }
.velora-duel .vd-brand { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--text-secondary); }
.velora-duel .vd-name { font-family: var(--font-serif); font-weight: 600; font-size: clamp(18px, 1.8vw, 24px); line-height: 1.2; color: var(--text-primary); }
.velora-duel .vd-price { font-weight: 700; font-size: clamp(17px, 1.6vw, 22px); color: var(--price); }
.velora-duel .velora-compare-col > a { margin-top: auto; }
.velora-duel .velora-btn--flash { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px; border-radius: 9999px; background: var(--flash-500); color: var(--peps-950) !important; font-weight: 700; font-size: 15px; text-decoration: none !important; }
.velora-duel .velora-btn--flash:hover { background: var(--flash-400); }
.velora-duel .velora-btn--ghost { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px; border-radius: 9999px; border: 1.5px solid var(--accent); color: var(--accent) !important; font-weight: 700; font-size: 15px; text-decoration: none !important; background: transparent; }
.velora-duel .velora-btn--ghost:hover { background: var(--tint); }
.velora-duel .velora-vs { margin: 0; }
.velora-duel .velora-verdict { margin: 0; }
.velora-duel .velora-verdict-id { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; }
.velora-duel .velora-verdict-score strong { font-size: 30px; color: var(--text-primary); }
.velora-duel .velora-verdict-score span { font-size: 12px; color: var(--text-secondary); text-align: center; line-height: 1.2; padding: 0 12px; }
.velora-duel .velora-verdict-name { font-family: var(--font-serif); font-weight: 600; font-size: 20px; line-height: 1.2; }
.velora-duel .vd-verdict-body { display: flex; flex-direction: column; gap: 14px; }
.velora-duel .velora-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--flash-700); }
.velora-duel .vd-verdict-body p { margin: 0; font-family: var(--font-serif); font-size: clamp(18px, 1.6vw, 22px); line-height: 1.4; color: var(--text-primary); }
.velora-duel .vd-crits { display: flex; flex-direction: column; gap: 10px; }
.velora-duel .vd-crit { display: grid; grid-template-columns: 190px minmax(0,1fr) 110px; gap: 14px; align-items: center; font-size: 15px; }
.velora-duel .vd-crit-w { font-weight: 700; font-size: 14px; }
.velora-duel .vd-bar { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.velora-duel .vd-bar i { display: block; height: 8px; border-radius: 4px; background: var(--tint-strong); }
.velora-duel .vd-bar--a i:first-child { background: var(--accent); }
.velora-duel .vd-bar--b i:last-child { background: var(--gold-600); }
.velora-duel .vd-legend { display: flex; gap: 20px; font-size: 13px; color: var(--text-secondary); }
.velora-duel .vd-legend span { display: inline-flex; align-items: center; gap: 6px; }
.velora-duel .vd-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.velora-duel .vd-dot--a { background: var(--accent); }
.velora-duel .vd-dot--b { background: var(--gold-600); }
@media (max-width: 921px) {
  .velora-duel .vd-crit { grid-template-columns: 120px minmax(0,1fr) 84px; gap: 8px; font-size: 14px; }
  .velora-duel .velora-verdict-score { width: 110px; height: 110px; }
  .velora-duel .velora-verdict-score strong { font-size: 24px; }
}
@media (max-width: 640px) {
  .velora-duel .vd-badge { height: auto !important; min-height: 24px; padding: 3px 8px !important; line-height: 1.25; }
  .velora-duel .vd-mono { width: 72px; height: 72px; font-size: 36px; }
  .velora-duel .vd-badge { font-size: 10px; height: 24px; padding: 0 8px; letter-spacing: .02em; text-align: center; }
  .velora-duel .velora-compare-col { padding: 14px 10px 14px !important; }
  .velora-duel .velora-btn--flash, .velora-duel .velora-btn--ghost { padding: 0 8px; gap: 4px; font-size: 13px; min-height: 42px; width: 100%; }
  .velora-duel .vd-crit { grid-template-columns: minmax(0,1fr) 84px; }
  .velora-duel .vd-crit .vd-bar { grid-column: 1 / -1; grid-row: 2; }
}

/* =========================================================================
   12. GUIDES : « Comment on a choisi » et « Guides lies » (maquette LioraGuide)
   ========================================================================= */
.velora-guide.vg-v3 .vg-methode { margin: 48px 0 8px; }
.velora-guide.vg-v3 .vg-methode h2 { margin-bottom: 22px; }
.velora-guide.vg-v3 .velora-mission { gap: 28px; }
.velora-guide.vg-v3 .velora-mission-item { text-align: left; align-items: flex-start; }
.velora-guide.vg-v3 .velora-mission-item strong { font-size: 17px; color: var(--text-primary); }
.velora-guide.vg-v3 .velora-mission-item > span:last-child { font-size: 15px; line-height: 1.55; color: var(--text-secondary); }
.velora-guide.vg-v3 .vg-lies { margin-top: 48px; }
.velora-guide.vg-v3 .vg-lies h2 { margin-bottom: 20px; }
.velora-guide.vg-v3 .velora-next-grid { gap: 16px; }
.velora-guide.vg-v3 .velora-next-c { position: relative; display: flex; flex-direction: column; gap: 8px; min-height: 128px; padding: 20px 22px 44px; border: 1px solid var(--border); border-radius: 18px; background: var(--bg-surface); color: var(--text-primary); text-decoration: none; transition: border-color var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out); }
.velora-guide.vg-v3 .velora-next-c:hover { border-color: var(--accent); transform: translateY(-2px); }
.velora-guide.vg-v3 .velora-next-tag { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.velora-guide.vg-v3 .velora-next-t { font-family: var(--font-serif); font-weight: 600; font-size: 19px; line-height: 1.25; }
.velora-guide.vg-v3 .velora-next-go { position: absolute; left: 22px; bottom: 16px; color: var(--accent); font-weight: 700; }
@media (max-width: 921px) {
  .velora-guide.vg-v3 .velora-next-c { flex-direction: column; min-height: 0; }
}

/* =========================================================================
   13. EN-TETE (bouton clair/sombre) et PIED DE PAGE (pastille 18+, barre legale)
   Maquettes LioraHeader / LioraFooter.
   ========================================================================= */
.velora-shophead .velora-theme-toggle { width: 40px; height: 40px; flex-shrink: 0; border-radius: 50%; border: 1px solid var(--border); background: var(--bg-surface); color: var(--text-primary); display: inline-flex; align-items: center; justify-content: center; padding: 0; cursor: pointer; transition: border-color var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out); }
.velora-shophead .velora-theme-toggle:hover { border-color: var(--accent); color: var(--accent); }
.velora-shophead .velora-theme-toggle svg { display: block; }
.velora-shophead .velora-shophead-actions { gap: 10px; }

.velora-footer .velora-footer-brand { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.velora-footer .velora-footer-brand p { margin: 0; }
.velora-footer .velora-footer-pill { font-size: 11px; font-weight: 700; letter-spacing: .08em; color: #F3E8D4; border: 1px solid rgba(243,232,212,.4); border-radius: 9999px; padding: 4px 10px; }
.velora-footer .velora-footer-disclosure { max-width: 72rem; margin: 36px auto 0; font-size: 13px; color: rgba(243,232,212,.6); }
.velora-footer .velora-footer-bar { margin-top: 14px; justify-content: flex-start; align-items: center; max-width: 72rem; }
.velora-footer .velora-footer-bar a { color: rgba(243,232,212,.85); text-decoration: underline; text-underline-offset: 3px; }
.velora-footer .velora-footer-cookies { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; color: rgba(243,232,212,.85); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.velora-footer .velora-footer-cookies:hover, .velora-footer .velora-footer-bar a:hover { color: #FFFFFF; }
/* Le lien « Gerer mes cookies » du pied de page remplace le bouton flottant de CookieAdmin. */
.cookieadmin_re_consent { display: none !important; }

/* =========================================================================
   14. VERIFICATION D'AGE (extension Age Gate) et BANDEAU COOKIES (CookieAdmin)
   Handoff : logo Liora, textes FR, bandeau cookies APRES la verification,
   trois boutons cookies de meme style.
   ========================================================================= */
.age-gate__wrapper { z-index: 2147483000 !important; font-family: var(--font-sans); }
.age-gate__background-color { background: rgba(20,16,26,.78) !important; opacity: 1 !important; }
.age-gate { width: calc(100% - 32px) !important; max-width: 460px !important; background: var(--bg-surface) !important; color: var(--text-primary) !important; border-radius: 22px !important; padding: 36px 28px 28px !important; box-shadow: 0 24px 60px rgba(20,16,26,.35); border: 0 !important; }
.age-gate__form { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; }
.age-gate__heading { margin: 0 0 6px !important; }
.age-gate__heading-title { font-size: 0 !important; line-height: 0 !important; width: 150px; height: 56px; margin: 0 auto !important; background: url('../brand/liora-logo.svg') center / contain no-repeat; }
:root[data-theme="dark"] .age-gate__heading-title { background-image: url('../brand/liora-logo-creme.svg'); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .age-gate__heading-title { background-image: url('../brand/liora-logo-creme.svg'); } }
.age-gate__headline { margin: 0 !important; font-family: var(--font-serif) !important; font-weight: 600 !important; font-size: 26px !important; line-height: 1.15 !important; color: var(--text-primary) !important; }
.age-gate__subheadline { margin: 0 !important; font-size: 15px !important; line-height: 1.55 !important; color: var(--text-secondary) !important; }
.age-gate__fields { width: 100%; display: flex; flex-direction: column; gap: 14px; margin-top: 6px; }
.age-gate__challenge { margin: 0 !important; font-weight: 700 !important; font-size: 17px !important; color: var(--text-primary) !important; }
.age-gate__buttons { display: flex !important; flex-direction: column !important; gap: 10px !important; width: 100%; }
.age-gate__submit { width: 100% !important; min-height: 50px !important; margin: 0 !important; border-radius: 9999px !important; font: 700 16px/1.2 var(--font-sans) !important; cursor: pointer; transition: background var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out); }
.age-gate__submit--yes { background: var(--btn-bg) !important; color: var(--btn-fg) !important; border: 0 !important; }
.age-gate__submit--yes:hover { background: var(--btn-bg-hover) !important; }
.age-gate__submit--no { background: transparent !important; color: var(--text-secondary) !important; border: 1.5px solid var(--border) !important; }
.age-gate__submit--no:hover { border-color: var(--accent) !important; color: var(--accent) !important; }
/* « Se souvenir de moi » coche d'office (30 jours) : case masquee. */
.age-gate__remember-wrapper, .age-gate__remember { display: none !important; }
.age-gate__errors { width: 100%; }
.age-gate__error { margin: 4px 0 0 !important; padding: 10px 14px; border-radius: 12px; background: var(--warn-bg); color: var(--warn-fg) !important; font-size: 14px; }
.age-gate__loader { background: var(--bg-surface) !important; }
.age-gate__loader svg circle { fill: var(--accent) !important; }

/* Bandeau cookies : jamais par-dessus la verification d'age. */
.age-gate__restricted .cookieadmin_law_container { display: none !important; }
.cookieadmin_law_container { z-index: 99990 !important; font-family: var(--font-sans) !important; background: var(--bg-surface) !important; color: var(--text-primary) !important; border: 1px solid var(--border) !important; border-radius: 18px !important; box-shadow: 0 16px 40px rgba(20,16,26,.18) !important; max-width: 400px !important; }
.cookieadmin_law_container #cookieadmin_notice_title, .cookieadmin_law_container .cookieadmin_consent_inside > p:first-child { font-family: var(--font-serif) !important; font-weight: 600 !important; font-size: 19px !important; color: var(--text-primary) !important; }
.cookieadmin_law_container .cookieadmin_notice_con, .cookieadmin_law_container #cookieadmin_notice { font-size: 14px !important; line-height: 1.55 !important; color: var(--text-secondary) !important; }
.cookieadmin_law_container .cookieadmin_notice_con b { color: var(--text-primary); }
.cookieadmin_consent_btns { display: flex !important; flex-direction: column !important; gap: 8px !important; }
.cookieadmin_btn,
.cookieadmin_cookie_modal .cookieadmin_btn,
.cookieadmin_consent_btns .cookieadmin_btn { width: 100% !important; min-height: 44px !important; margin: 0 !important; border-radius: 9999px !important; background: transparent !important; background-color: transparent !important; color: var(--accent) !important; border: 1.5px solid var(--accent) !important; font: 700 15px/1.2 var(--font-sans) !important; box-shadow: none !important; cursor: pointer; }
.cookieadmin_btn:hover { background: var(--tint) !important; background-color: var(--tint) !important; }
.cookieadmin-poweredby { opacity: .55; }
.cookieadmin_cookie_modal { font-family: var(--font-sans) !important; }

/* =========================================================================
   15. MODE SOMBRE : lisibilite (audit de contraste du 29/09/2026)
   Astra injecte ses couleurs globales (titres #1E293B, texte #334155) sans
   variante sombre : on les rebranche sur les jetons Liora. Meme bloc pour le
   choix explicite (data-theme) et pour la preference systeme.
   ========================================================================= */
:root[data-theme="dark"] { --ast-global-color-0: var(--accent); --ast-global-color-1: var(--peps-200); --ast-global-color-2: var(--text-primary); --ast-global-color-3: var(--text-primary); --success-100: #1B3324; --success-700: #9FD8AE; }
:root[data-theme="dark"] .velora-callout--ok,
:root[data-theme="dark"] .velora-callout--ok p,
:root[data-theme="dark"] .velora-callout--ok strong,
:root[data-theme="dark"] .velora-callout--ok li { color: var(--text-primary) !important; }
:root[data-theme="dark"] .lr-hero { background: var(--bg-subtle) !important; }
:root[data-theme="dark"] .velora-next-tag { background: var(--tint-strong) !important; color: var(--peps-200) !important; }
:root[data-theme="dark"] .velora-guide .related .eyebrow,
:root[data-theme="dark"] .velora-guide .related a,
:root[data-theme="dark"] .velora-guide .cmp-prod span,
:root[data-theme="dark"] .velora-guide td.pick { color: var(--accent) !important; }
:root[data-theme="dark"] .velora-404-num { color: var(--peps-300) !important; }
:root[data-theme="dark"] .velora-eyebrow,
:root[data-theme="dark"] .velora-duel .velora-eyebrow,
:root[data-theme="dark"] .velora-avis .velora-eyebrow { color: var(--flash-300) !important; }
:root[data-theme="dark"] .velora-catnav a.hot { color: var(--flash-300) !important; }
:root[data-theme="dark"] .velora-quote blockquote,
:root[data-theme="dark"] .velora-quote blockquote p { color: var(--text-primary) !important; }
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) { --ast-global-color-0: var(--accent); --ast-global-color-1: var(--peps-200); --ast-global-color-2: var(--text-primary); --ast-global-color-3: var(--text-primary); --success-100: #1B3324; --success-700: #9FD8AE; }
:root:not([data-theme="light"]) .velora-callout--ok,
:root:not([data-theme="light"]) .velora-callout--ok p,
:root:not([data-theme="light"]) .velora-callout--ok strong,
:root:not([data-theme="light"]) .velora-callout--ok li { color: var(--text-primary) !important; }
:root:not([data-theme="light"]) .lr-hero { background: var(--bg-subtle) !important; }
:root:not([data-theme="light"]) .velora-next-tag { background: var(--tint-strong) !important; color: var(--peps-200) !important; }
:root:not([data-theme="light"]) .velora-guide .related .eyebrow,
:root:not([data-theme="light"]) .velora-guide .related a,
:root:not([data-theme="light"]) .velora-guide .cmp-prod span,
:root:not([data-theme="light"]) .velora-guide td.pick { color: var(--accent) !important; }
:root:not([data-theme="light"]) .velora-404-num { color: var(--peps-300) !important; }
:root:not([data-theme="light"]) .velora-eyebrow,
:root:not([data-theme="light"]) .velora-duel .velora-eyebrow,
:root:not([data-theme="light"]) .velora-avis .velora-eyebrow { color: var(--flash-300) !important; }
:root:not([data-theme="light"]) .velora-catnav a.hot { color: var(--flash-300) !important; }
:root:not([data-theme="light"]) .velora-quote blockquote,
:root:not([data-theme="light"]) .velora-quote blockquote p { color: var(--text-primary) !important; }
}
:root[data-theme="dark"] .post-navigation,
:root[data-theme="dark"] .ast-separate-container .post-navigation { background: var(--bg-surface) !important; border-color: var(--border) !important; }
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) .post-navigation,
:root:not([data-theme="light"]) .ast-separate-container .post-navigation { background: var(--bg-surface) !important; border-color: var(--border) !important; }
}

/* Carte bonus hors classement (partenaire secondaire, apres le top 6) */
.velora-guide.vg-v3 .vg-bonus-intro { margin: 28px 0 14px; font-size: 15px; color: var(--text-secondary); }
.velora-guide.vg-v3 .product--bonus { border-style: dashed; }
.velora-guide.vg-v3 .product--bonus .product__rank { width: auto; height: 30px; padding: 0 12px; border-radius: 999px; font-size: 13px; top: -12px; }
