/* ==========================================================================
   K-Vital — Premium theme stylesheet
   ========================================================================== */

/* ---- Announcement top bar ---- */
.topbar{
  background: var(--c-primary-dark);
  color: #eafbfb;
  font-size: 13px;
}
.topbar .container{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:36px;
  padding:9px 24px;
  flex-wrap:wrap;
}
.topbar span{ display:flex; align-items:center; gap:8px; opacity:.95; }
.topbar .dot{ color: var(--c-gold); }

/* ---- Main header ---- */
.site-header{
  background: var(--c-white);
  border-bottom: 1px solid var(--c-border);
  position: sticky;
  top: 0;
  z-index: 100;
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:16px;
  padding-bottom:16px;
  gap:24px;
}
.site-logo{
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}
.site-header .site-logo-img{ height:44px; width:auto; max-width:none; }
.main-nav{ display:flex; gap:30px; }
.main-nav a{
  font-size:15px;
  font-weight:500;
  color: var(--c-text);
  position:relative;
  padding:6px 0;
  transition: color .2s;
}
.main-nav a:hover{ color: var(--c-primary); }
.main-nav li.menu-item-has-children{ position:relative; }
.main-nav .sub-menu{
  position:absolute;
  top:100%; left:0; margin-top:14px;
  background: var(--c-white);
  box-shadow: var(--shadow-lg);
  border-radius: var(--radius-md);
  padding:10px;
  min-width:240px;
  opacity:0; pointer-events:none; filter: blur(14px);
  transform: translateY(-12px) scale(.97);
  transition: opacity .4s ease, filter .4s ease, transform .4s cubic-bezier(.2,.7,.3,1);
}
.main-nav li.menu-item-has-children:hover .sub-menu,
.main-nav li.menu-item-has-children.kv-open .sub-menu{
  opacity:1; pointer-events:auto; filter: blur(0);
  transform: translateY(0) scale(1);
}
.main-nav .sub-menu a{ display:block; padding:8px 12px; border-radius:6px; }
.main-nav .sub-menu a:hover{ background: var(--c-primary-light); }

.header-actions{ display:flex; align-items:center; gap:20px; flex-shrink:0; }
.header-actions button, .header-actions a{ background:none; border:none; color:var(--c-text); }
.header-icon{ position:relative; display:flex; align-items:center; }
.cart-count{
  position:absolute; top:-8px; right:-10px;
  background: var(--c-gold); color:#fff;
  font-size:11px; font-weight:700;
  width:18px; height:18px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.locale-switch{ font-size:13px; color:var(--c-text-muted); font-weight:600; }
.nav-toggle{ display:none; }

/* ---- Méga-menus (base commune « Boutique » et « Blog ») ---- */
.kv-mega-parent{ position:relative; }
.kv-mega-menu{
  position:absolute; top:100%; left:50%;
  width:min(880px, 92vw); background:#fff; border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg); padding:28px; z-index:150; margin-top:14px;
  opacity:0; pointer-events:none; filter: blur(18px);
  transform: translateX(-50%) translateY(-16px) scale(.97);
  transition: opacity .45s ease, filter .45s ease, transform .45s cubic-bezier(.2,.7,.3,1);
}
/* Pont invisible au-dessus du panneau : le curseur traverse l'espace lien → panneau sans le fermer. */
.kv-mega-menu::before{ content:""; position:absolute; left:0; right:0; bottom:100%; height:28px; }
.kv-mega-parent:hover .kv-mega-menu,
.kv-mega-parent.kv-open .kv-mega-menu,
.kv-mega-parent:focus-within .kv-mega-menu{
  opacity:1; pointer-events:auto; filter: blur(0);
  transform: translateX(-50%) translateY(0) scale(1);
}
.kv-mega-cats-label{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color: var(--c-text-muted); margin-bottom:8px; }
.kv-mega-viewall{ margin-top:12px; font-weight:700; font-size:13.5px; color: var(--c-primary-dark) !important; }

/* ---- Méga-menu « Boutique » ----
   Le <li> passe en static : le panneau se cale alors sur le header (sticky, donc
   positionné) et se centre sur la page au lieu de déborder à gauche du lien.
   Les liens sont préfixés .kv-shop-mega pour l'emporter sur `.main-nav a`. */
.main-nav li.kv-mega-parent--shop{ position:static; }
.kv-mega-menu.kv-shop-mega{
  width:min(1100px, calc(100vw - 32px)); padding:0; margin-top:0;
  border:1px solid var(--c-border);
  box-shadow: 0 34px 70px -18px rgba(7,81,88,.32), 0 2px 8px rgba(7,81,88,.06);
}
.kv-shop-mega .kv-mega-menu-inner{ display:grid; grid-template-columns:280px minmax(0,1fr); }

.kv-shop-mega .kv-mega-side{
  display:flex; flex-direction:column; padding:22px 18px 18px;
  background: var(--c-primary-soft); border-right:1px solid var(--c-border);
  border-radius: var(--radius-lg) 0 0 0;
}
.kv-shop-mega .kv-mega-cats-label{ padding-left:10px; }
.kv-shop-mega .kv-mega-cats{ list-style:none; margin:0 0 16px; padding:0; display:flex; flex-direction:column; gap:2px; }
.kv-shop-mega .kv-mega-cat{
  display:flex; align-items:center; gap:12px; padding:7px 10px 7px 7px; border-radius:12px;
  font-size:14px; font-weight:600; line-height:1.3; color: var(--c-text);
  transition: background .2s ease, box-shadow .2s ease;
}
.kv-shop-mega .kv-mega-cat__ico{
  width:34px; height:34px; flex-shrink:0; border-radius:10px; display:grid; place-items:center;
  color: var(--cat); background: color-mix(in srgb, var(--cat) 13%, #fff);
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), background .2s ease, color .2s ease;
}
.kv-shop-mega .kv-mega-cat__ico svg{ width:19px; height:19px; }
.kv-shop-mega .kv-mega-cat__name{ flex:1; min-width:0; }
.kv-shop-mega .kv-mega-cat__count{
  min-width:24px; padding:2px 8px; border-radius:999px; text-align:center;
  font-size:11.5px; font-weight:700; color: var(--c-text-muted); background:#fff;
  transition: background .2s ease, color .2s ease;
}
.kv-shop-mega .kv-mega-cat:hover,
.kv-shop-mega .kv-mega-cat:focus-visible,
.kv-shop-mega .kv-mega-cat.is-active{ background:#fff; box-shadow: var(--shadow-sm); color: var(--c-text); }
.kv-shop-mega .kv-mega-cat.is-active .kv-mega-cat__ico{ background: var(--cat); color:#fff; transform:scale(1.06) rotate(-5deg); }
.kv-shop-mega .kv-mega-cat.is-active .kv-mega-cat__count{ background: color-mix(in srgb, var(--cat) 13%, #fff); color: var(--cat); }

.kv-shop-mega .kv-mega-quiz{
  margin-top:auto; display:flex; align-items:center; gap:12px; padding:13px 14px; border-radius:14px;
  color:#fff; background: radial-gradient(120% 140% at 0% 0%, #0f8a96 0%, transparent 60%), var(--c-primary-dark);
}
.kv-shop-mega .kv-mega-quiz__ico{
  width:36px; height:36px; flex-shrink:0; border-radius:50%; display:grid; place-items:center;
  background: rgba(200,162,74,.18); color: var(--c-gold);
}
.kv-shop-mega .kv-mega-quiz__ico svg{ width:20px; height:20px; }
.kv-shop-mega .kv-mega-quiz__txt{ flex:1; min-width:0; display:flex; flex-direction:column; line-height:1.3; }
.kv-shop-mega .kv-mega-quiz__txt strong{ font-size:13.5px; }
.kv-shop-mega .kv-mega-quiz__txt span{ font-size:12px; color: rgba(255,255,255,.74); }
.kv-shop-mega .kv-mega-quiz__go svg{ width:16px; height:16px; transition: transform .2s ease; }
.kv-shop-mega .kv-mega-quiz:hover{ color:#fff; }
.kv-shop-mega .kv-mega-quiz:hover .kv-mega-quiz__go svg{ transform:translateX(3px); }

.kv-shop-mega .kv-mega-main{ min-width:0; padding:20px 22px 18px; }
.kv-shop-mega .kv-mega-main__head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:14px; }
.kv-shop-mega .kv-mega-main__title{ margin:0; font-family: var(--font-heading); font-size:20px; font-weight:700; color: var(--c-text); }
.kv-shop-mega .kv-mega-main__title small{ margin-left:6px; font-family: var(--font-body); font-size:12.5px; font-weight:600; color: var(--c-text-muted); }
.kv-shop-mega .kv-mega-main__all{ display:inline-flex; align-items:center; gap:6px; padding:0; font-size:13.5px; font-weight:700; color: var(--c-primary-dark); transition: gap .2s ease; }
.kv-shop-mega .kv-mega-main__all svg{ width:15px; height:15px; }
.kv-shop-mega .kv-mega-main__all:hover{ gap:9px; }

.kv-shop-mega .kv-mega-products{ display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:10px; }
.kv-shop-mega .kv-mega-product[hidden]{ display:none; }
/* Vue « Tous » : deux rangées maximum, le reste est dans « Tout voir ». */
.kv-shop-mega .kv-mega-products:not([data-filtered]) .kv-mega-product:nth-child(n+11){ display:none; }
.kv-shop-mega .kv-mega-product{
  display:flex; flex-direction:column; gap:2px; padding:6px 6px 10px; border-radius:14px;
  color: var(--c-text); transition: background .2s ease, transform .25s ease;
}
.kv-shop-mega .kv-mega-product:hover{ background: var(--c-primary-soft); transform:translateY(-2px); }
.kv-shop-mega .kv-mega-product-thumb{
  position:relative; display:block; width:100%; aspect-ratio:1/1; margin-bottom:7px;
  border-radius:12px; overflow:hidden; background: color-mix(in srgb, var(--accent, var(--c-primary)) 9%, #fff);
}
.kv-shop-mega .kv-mega-product-thumb img{ width:100%; height:100%; object-fit:cover; transition: transform .45s ease; }
.kv-shop-mega .kv-mega-product:hover .kv-mega-product-thumb img{ transform:scale(1.05); }
.kv-shop-mega .kv-mega-product-flag{
  position:absolute; top:6px; left:6px; padding:3px 7px; border-radius:999px;
  font-size:9.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase;
  background: var(--c-gold); color:#fff;
}
.kv-shop-mega .kv-mega-product-name{
  font-size:12.5px; font-weight:600; line-height:1.3; color: var(--c-text);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.kv-shop-mega .kv-mega-product-badge{ font-size:10.5px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color: var(--accent); }
.kv-shop-mega .kv-mega-product-price{ font-size:12.5px; font-weight:700; color: var(--c-primary-dark); }
.kv-shop-mega .kv-mega-product-price del{ margin-right:4px; font-weight:400; color: var(--c-text-muted); }
.kv-shop-mega .kv-mega-product-price ins{ text-decoration:none; }
.kv-shop-mega .kv-mega-more{
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:4px;
  padding:14px; border-radius:14px; aspect-ratio:1/1; align-self:start;
  border:1.5px dashed color-mix(in srgb, var(--cat, var(--c-primary)) 45%, #fff);
  background: color-mix(in srgb, var(--cat, var(--c-primary)) 6%, #fff); color: var(--c-text);
  transition: background .2s ease, border-color .2s ease;
}
.kv-shop-mega .kv-mega-more[hidden]{ display:none; }
.kv-shop-mega .kv-mega-more:hover{ background: color-mix(in srgb, var(--cat, var(--c-primary)) 12%, #fff); border-style:solid; }
.kv-shop-mega .kv-mega-more__ico{
  width:36px; height:36px; margin-bottom:6px; border-radius:10px; display:grid; place-items:center;
  background: var(--cat, var(--c-primary)); color:#fff;
}
.kv-shop-mega .kv-mega-more__ico svg{ width:19px; height:19px; }
.kv-shop-mega .kv-mega-more__txt{ font-size:12px; color: var(--c-text-muted); font-weight:600; }
.kv-shop-mega .kv-mega-more__name{ font-size:14px; line-height:1.25; }
.kv-shop-mega .kv-mega-more__go{ margin-top:6px; color: var(--cat, var(--c-primary)); transition: transform .2s ease; }
.kv-shop-mega .kv-mega-more__go svg{ width:18px; height:18px; }
.kv-shop-mega .kv-mega-more:hover .kv-mega-more__go{ transform:translateX(4px); }
.kv-shop-mega .kv-mega-product.kv-in,
.kv-shop-mega .kv-mega-more.kv-in{ animation: kv-mega-in .38s cubic-bezier(.2,.7,.3,1) both; }
@keyframes kv-mega-in{ from{ opacity:0; transform:translateY(10px) scale(.98); } to{ opacity:1; transform:none; } }

.kv-shop-mega .kv-mega-foot{
  display:flex; flex-wrap:wrap; justify-content:center; gap:8px 30px; padding:11px 22px;
  border-top:1px solid var(--c-border); border-radius:0 0 var(--radius-lg) var(--radius-lg);
  font-size:12.5px; font-weight:600; color: var(--c-text-muted);
}
.kv-shop-mega .kv-mega-foot > span{ display:inline-flex; align-items:center; gap:8px; }
.kv-shop-mega .kv-mega-foot svg{ width:16px; height:16px; color: var(--c-primary); }
.kv-shop-mega .kv-mega-foot .kv-seal{ --seal-h:15px; color: var(--c-primary); }
@media (max-width:1100px) and (min-width:721px){
  .kv-shop-mega .kv-mega-menu-inner{ grid-template-columns:230px minmax(0,1fr); }
  .kv-shop-mega .kv-mega-products{ grid-template-columns:repeat(4, minmax(0,1fr)); }
  .kv-shop-mega .kv-mega-products:not([data-filtered]) .kv-mega-product:nth-child(n+9){ display:none; }
}
@media (prefers-reduced-motion:reduce){
  .kv-shop-mega .kv-mega-product.kv-in{ animation:none; }
  .kv-shop-mega .kv-mega-product, .kv-shop-mega .kv-mega-product-thumb img, .kv-shop-mega .kv-mega-cat__ico{ transition:none; transform:none !important; }
}

/* ---- "Blog" mega-menu (blog categories) — reuses the .kv-mega-menu cloud reveal ---- */
/* ---- Méga-menu « Conseils » : rubriques à gauche, derniers articles à droite ---- */
.main-nav li.kv-mega-parent--blog{ position:static; }
.kv-mega-menu.kv-blog-mega{ width:min(1020px, calc(100vw - 32px)); padding:0; margin-top:0; overflow:hidden; }
.kv-blog-mega-inner{ display:grid; grid-template-columns:400px minmax(0,1fr); }
.kv-blog-mega .kv-mega-side{ display:flex; flex-direction:column; gap:10px; padding:20px 16px; background:#f7f6f1; border-right:1px solid var(--c-border); }
.kv-blog-mega .kv-mega-cats-label{ padding-left:10px; margin-bottom:2px; }
.kv-blog-cats{ list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 6px; margin:0; padding:0; }
.main-nav .kv-blog-cat{ display:flex; align-items:center; gap:9px; padding:7px 9px; border-radius:12px; font-size:13.5px; font-weight:600; line-height:1.25; color:var(--c-text); transition:background .2s, box-shadow .2s; }
.kv-blog-cat__ico{ flex:0 0 30px; display:inline-flex; width:30px; height:30px; align-items:center; justify-content:center; border-radius:10px; border:1px solid var(--c-border); background:#fff; color:var(--c-primary-dark); transition:background .2s, color .2s, transform .2s; }
.kv-blog-cat__ico svg{ width:16px; height:16px; }
.kv-blog-cat__name{ font-size:13px; }
.kv-blog-cat__name{ flex:1; min-width:0; }
.kv-blog-cat__count{ padding:2px 9px; border-radius:999px; border:1px solid var(--c-border); background:#fff; font-size:11.5px; font-weight:700; color:var(--c-text-muted); }
.main-nav .kv-blog-cat:hover, .main-nav .kv-blog-cat:focus-visible{ background:#fff; box-shadow:var(--shadow-sm); color:var(--c-text); }
.main-nav .kv-blog-cat:hover .kv-blog-cat__ico{ background:var(--c-primary-dark); border-color:var(--c-primary-dark); color:#fff; transform:scale(1.06) rotate(-4deg); }
.main-nav .kv-blog-mega .current-menu-item > .kv-blog-cat, .main-nav .kv-blog-cat.is-active{ background:#fff; box-shadow:var(--shadow-sm); }
.main-nav .kv-blog-mega__quiz{ display:flex; align-items:center; gap:11px; margin-top:auto; padding:12px 14px; border-radius:14px; background:linear-gradient(120deg,var(--c-primary-dark),#0e6f74); color:#fff !important; font-size:13.5px; }
.kv-blog-mega__quiz-ico{ flex:0 0 34px; display:inline-flex; width:34px; height:34px; align-items:center; justify-content:center; border-radius:10px; background:rgba(255,255,255,.16); }
.kv-blog-mega__quiz-ico svg{ width:18px; height:18px; }
.kv-blog-mega__quiz-txt{ flex:1; min-width:0; display:flex; flex-direction:column; line-height:1.3; }
.kv-blog-mega__quiz-txt strong{ font-size:13.5px; }
.kv-blog-mega__quiz-txt span{ font-size:12px; color:rgba(255,255,255,.78); }
.main-nav .kv-blog-mega__quiz:hover{ filter:brightness(1.06); }
.kv-blog-mega .kv-mega-main{ min-width:0; padding:20px 22px 22px; }
.kv-blog-mega__head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:14px; }
.kv-blog-mega__head h3{ margin:0; font-family:var(--font-heading); font-size:20px; font-weight:600; color:var(--c-text); }
.main-nav .kv-blog-mega .kv-mega-viewall{ margin:0; display:inline-flex; align-items:center; gap:6px; transition:gap .2s; }
.main-nav .kv-blog-mega .kv-mega-viewall:hover{ gap:9px; }
.kv-blog-mega__posts{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.main-nav .kv-blog-mega__post{ display:flex; flex-direction:column; gap:7px; padding:0; color:var(--c-text); }
.kv-blog-mega__thumb{ display:block; overflow:hidden; border-radius:14px; background:var(--c-primary-light); aspect-ratio:16/10; }
.kv-blog-mega__thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.main-nav .kv-blog-mega__post:hover .kv-blog-mega__thumb img{ transform:scale(1.05); }
.kv-blog-mega__cat{ font-size:10.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--c-primary-dark); }
.main-nav .kv-blog-mega__post strong{ display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; font-family:var(--font-heading); font-size:14.5px; font-weight:600; line-height:1.3; }
.main-nav .kv-blog-mega__post:hover strong{ color:var(--c-primary-dark); }
.main-nav .kv-blog-mega__post small{ font-size:12px; color:var(--c-text-muted); }
@media (max-width:1180px){
  .kv-mega-menu.kv-blog-mega{ width:min(880px, calc(100vw - 32px)); }
  .kv-blog-mega-inner{ grid-template-columns:360px minmax(0,1fr); }
  .kv-blog-mega__posts{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kv-blog-mega__post:nth-child(3){ display:none; }
}

/* ---- Search panel ---- */
.kv-search-panel{ max-height:0; overflow:hidden; transition: max-height .2s ease; background: var(--c-primary-soft); }
.kv-search-panel.open{ max-height:80px; }
.kv-search-panel form{ padding:16px 24px; }
.kv-search-panel input{
  width:100%; padding:12px 18px; border-radius:999px; border:1px solid var(--c-border); font-size:14px;
}

/* ---- Buttons ---- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:8px;
  padding:14px 26px;
  border-radius: 999px;
  font-weight:600;
  font-size:15px;
  border:1px solid transparent;
  transition: all .2s ease;
  white-space:nowrap;
}
.btn-primary{ background: var(--c-primary); color:#fff; box-shadow: var(--shadow-sm); }
.btn-primary:hover{ background: var(--c-primary-dark); transform: translateY(-1px); }
.btn-outline{ background:#fff; color:var(--c-primary-dark); border-color: var(--c-primary); }
.btn-outline:hover{ background: var(--c-primary-light); }
.btn-gold{ background: var(--c-gold); color:#fff; }
.btn-gold:hover{ background: var(--c-gold-dark); }
.btn-sm{ padding:10px 18px; font-size:14px; }
.btn-block{ width:100%; }

/* ---- Sceau de certification cacher ----
   Le PNG (trait noir sur fond transparent) sert de MASQUE : le trait prend la
   couleur du texte parent (currentColor). Plus de rectangle blanc autour, et le
   même sceau se lit en or sur fond sombre comme en teal sur fond clair. */
.kv-seal{
  display:inline-block; flex-shrink:0;
  /* Fichier rogné au plus près du trait (145×102) : l'original 360×120 avait
     un tiers de marge vide de chaque côté, qui décentrait le sceau. */
  height:var(--seal-h, 40px); aspect-ratio:145 / 102;
  background-color:currentColor;
  -webkit-mask:url("../images/brand/logo-cacher-seal-trim.png") center / contain no-repeat;
          mask:url("../images/brand/logo-cacher-seal-trim.png") center / contain no-repeat;
}

/* ---- Hero (scène lumineuse) ----
   Une scène claire par produit, même cadrage et même lumière (haut droite) pour
   se lire comme une seule campagne ; le vrai packshot est incrusté sur le podium.
   Un voile crème à gauche garantit la lisibilité du titre (texte >= 7:1).
   NB : les règles ciblant des <img> sont préfixées par .hero — Elementor charge
   `.elementor img{height:auto;border-radius:0}` après le CSS du thème. */
.hero{
  --hero-ink:#10302f;
  --hero-dim:#48615f;
  --hero-accent:#075158;
  --hero-gold:#b8913e;
  --hero-delay:7000ms;
  --ease-out-expo:cubic-bezier(.16,1,.3,1);
  --ease-out-quint:cubic-bezier(.22,1,.36,1);
  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:var(--hero-ink);
  background:#f7f4ee;
}

/* --- Scène : photo pleine largeur + voile crème de lisibilité --- */
.hero__scene{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.hero .hero__bg{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover; object-position:68% 50%;
  transform-origin:66% 60%;
  opacity:0; transition:opacity .8s var(--ease-out-quint);
}
.hero .hero__bg.is-current{ opacity:1; }
.hero__veil{
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(250,248,243,.95) 0%, rgba(250,248,243,.86) 24%, rgba(250,248,243,.45) 42%, rgba(250,248,243,0) 58%);
}

.hero__viewport{ position:relative; z-index:1; overflow:hidden; }
.hero__track{ display:flex; transition:transform .7s var(--ease-out-expo); }
.hero__slide{ flex:0 0 100%; min-width:0; }
.hero__grid{
  display:grid; grid-template-columns:minmax(0,1fr); align-items:center;
  min-height:clamp(500px,40vw,640px);
  padding-block:clamp(38px,4.4vw,62px) clamp(18px,2.2vw,28px);
}
.hero__copy{ position:relative; z-index:2; max-width:35rem; }

.hero__kicker{
  display:inline-flex; align-items:center; gap:12px;
  margin:0 0 24px; padding:7px 18px 7px 12px;
  border:1px solid rgba(184,145,62,.38); border-radius:999px;
  background:rgba(255,255,255,.8); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  box-shadow:0 10px 26px rgba(40,34,20,.07);
  font-size:13px; font-weight:600; color:var(--hero-ink);
}
.hero__kicker .kv-seal{ --seal-h:32px; color:#8a6a28; }
.hero__kicker-sep{ width:1px; height:22px; background:rgba(184,145,62,.45); }

.hero__title{
  font-size:clamp(2.7rem,5.7vw,4.9rem);
  line-height:1.02; letter-spacing:-.028em;
  text-wrap:balance; color:var(--hero-ink); margin:0;
}
.hero__rule{
  display:block; width:88px; height:3px; margin:22px 0 0;
  border-radius:3px; background:linear-gradient(90deg,var(--hero-gold),#e6c98a); transform-origin:left center;
}
.hero__desc{
  margin:20px 0 0; max-width:44ch;
  font-size:clamp(15px,1.1vw,17px); line-height:1.62;
  color:var(--hero-dim); text-wrap:pretty;
}

.hero__proof{ display:flex; align-items:center; gap:10px; margin:22px 0 0; font-size:14px; color:var(--hero-dim); }
.hero__stars{ position:relative; display:inline-block; color:rgba(16,48,47,.16); font-size:15px; letter-spacing:2px; }
.hero__stars i{ position:absolute; inset:0; overflow:hidden; white-space:nowrap; font-style:normal; color:#d9a521; }
.hero__rating{ font-weight:700; color:var(--hero-ink); }

.hero__buy{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin:28px 0 0; }
.hero__price{
  margin:0; font-family:var(--font-heading); font-weight:600;
  font-size:clamp(1.9rem,2.7vw,2.35rem); line-height:1.1; color:var(--hero-accent);
}
.hero__price small{
  display:block; margin-top:5px;
  font-family:var(--font-body); font-size:12px; font-weight:500; color:var(--hero-dim);
}
.hero__price del{ opacity:.5; font-size:.62em; margin-right:.3em; }
.hero__price ins{ text-decoration:none; }
.btn-hero{
  background:var(--hero-accent); color:#fff;
  box-shadow:0 14px 30px rgba(7,81,88,.24);
}
.btn-hero:hover{ background:#053f45; color:#fff; transform:translateY(-1px); }
.hero__link{
  font-size:14px; font-weight:600; color:var(--hero-ink);
  border-bottom:1px solid rgba(16,48,47,.3); padding-bottom:2px;
  transition:border-color .2s ease;
}
.hero__link:hover{ border-bottom-color:var(--hero-gold); }

/* Ligne d'arguments : séparateurs plutôt que pastilles, le produit et le titre
   restent les deux seuls points forts de la composition. */
.hero__meta{
  margin:28px 0 0; font-size:13px; font-weight:600; letter-spacing:.01em;
  color:var(--hero-dim);
}

/* --- Rail produit, aligné sur la colonne de texte --- */
.hero__rail{ position:relative; z-index:3; padding-bottom:clamp(72px,7.2vw,104px); }
.hero__rail-inner{ display:flex; justify-content:flex-start; gap:9px; }
.hero__thumb{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; gap:9px;
  padding:7px 15px 9px 7px; border-radius:13px;
  border:1px solid rgba(16,48,47,.12); background:rgba(255,255,255,.72);
  color:var(--hero-dim); font-size:12.5px; font-weight:600; white-space:nowrap;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  transition:background .22s ease, border-color .22s ease, color .22s ease;
}
.hero .hero__thumb img{ width:34px; height:34px; object-fit:contain; flex-shrink:0; }
.hero__thumb:hover{ background:#fff; color:var(--hero-ink); }
.hero__thumb[aria-selected="true"]{ background:#fff; border-color:rgba(184,145,62,.6); color:var(--hero-ink); box-shadow:0 8px 20px rgba(40,34,20,.08); }
.hero__thumb::after{
  content:''; position:absolute; left:0; bottom:0; width:100%; height:2px;
  background:var(--hero-gold); transform:scaleX(0); transform-origin:left center;
}
.hero__thumb[aria-selected="true"]::after{ animation:kvProgress var(--hero-delay) linear forwards; }
.hero.is-paused .hero__thumb[aria-selected="true"]::after{ animation-play-state:paused; }

/* --- Chorégraphie d'ouverture : animations CSS au chargement, le contenu reste
   lisible même si le JS ne tourne pas. --- */
@keyframes kvRise{ from{ opacity:0; transform:translate3d(0,20px,0); } to{ opacity:1; transform:none; } }
@keyframes kvTitle{
  from{ opacity:0; transform:translate3d(0,26px,0); clip-path:inset(0 0 100% 0); }
  to  { opacity:1; transform:none; clip-path:inset(0 0 -12% 0); }
}
@keyframes kvRule{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
@keyframes kvScene{ from{ transform:scale(1.06); } to{ transform:scale(1); } }
@keyframes kvProgress{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }

.hero .hero__bg.is-current{ animation:kvScene 1.6s var(--ease-out-expo) backwards; }
.hero__slide.is-active .hero__reveal{
  animation:kvRise .66s var(--ease-out-quint) backwards;
  animation-delay:calc(var(--i,0) * 72ms + 160ms);
}
.hero__slide.is-active .hero__title{ animation:kvTitle .95s var(--ease-out-expo) .18s backwards; }
.hero__slide.is-active .hero__rule{ animation:kvRule .8s var(--ease-out-expo) .46s backwards; }

/* Parallaxe au défilement, sans JS, là où le navigateur la gère. */
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion: no-preference){
    @keyframes kvParallax{ to{ transform:translate3d(0,6%,0) scale(1.04); } }
    .hero__scene{ animation:kvParallax linear both; animation-timeline:view(); animation-range:entry 0% exit 100%; }
  }
}

/* Tablette et mobile : la scène (recadrée sur le produit) passe au-dessus du texte. */
@media (max-width:1024px){
  .hero{ background:#faf8f3; }
  .hero__scene{ position:relative; inset:auto; height:clamp(260px,64vw,480px); }
  .hero .hero__bg{ object-position:50% 60%; }
  .hero__veil{ background:linear-gradient(180deg, rgba(250,248,243,0) 72%, #faf8f3 100%); }
  @supports (animation-timeline: view()){ .hero__scene{ animation:none; } }
  .hero__grid{ min-height:0; padding-block:4px 16px; }
  .hero__copy{ max-width:none; }
  .hero__kicker{ margin-bottom:16px; }
  .hero__rail{ padding-bottom:56px; }
}
@media (max-width:720px){
  .hero__rail-inner{ overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .hero__rail-inner::-webkit-scrollbar{ display:none; }
  .hero__buy{ gap:14px; }
  .hero__buy .btn{ flex:1 1 auto; justify-content:center; text-align:center; }
  .hero__price{ flex:1 0 100%; }
}
@media (max-width:480px){
  .hero__title{ font-size:clamp(2.1rem,9vw,2.7rem); }
  .hero__desc{ font-size:15px; }
  .hero__meta{ margin-top:22px; font-size:12px; }
}
@media (prefers-reduced-motion: reduce){
  .hero__track{ transition:none; }
  .hero .hero__bg{ transition:none; }
  .hero .hero__bg,
  .hero .hero__bg.is-current,
  .hero__slide.is-active .hero__reveal,
  .hero__slide.is-active .hero__title,
  .hero__slide.is-active .hero__rule,
  .hero__thumb[aria-selected="true"]::after{ animation:none; }
  .hero__thumb[aria-selected="true"]::after{ transform:scaleX(1); }
}

/* ---- Trust bar ---- */
.trust-bar{
  background:#fff;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  margin: clamp(-84px,-6vw,-60px) auto clamp(8px,1vw,12px);
  max-width: var(--container);
  position:relative;
  z-index:5;
  padding: 26px 30px;
}
/* Variante sans chevauchement : placée après .trust-bar, dont le raccourci
   `margin` écraserait la règle si elle venait avant. */
.trust-bar--flat{ margin-top:0; }

.trust-bar ul{
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  gap:20px;
}
.trust-bar li{ display:flex; align-items:center; gap:12px; }
.trust-bar svg{ width:30px; height:30px; color: var(--c-primary); flex-shrink:0; }
.trust-bar strong{ display:block; font-size:14px; }
.trust-bar small{ color: var(--c-text-muted); font-size:12px; }

/* ---- Section heading ---- */
.section{ padding: clamp(22px,2.4vw,34px) 0; }
/* La section produits est un bloc Elementor sans wrapper .section. Ses valeurs
   diffèrent de .section parce que son titre (.section-head-row) n'a pas le même
   interlignage au-dessus : ce sont les BLANCS visibles qui sont alignés, pas les
   paddings bruts. */
/* Le rythme de la section produits est réglé dans Elementor (padding de section),
   son CSS généré l'emporte sur celui du thème. */
/* Elementor met 10px de padding par défaut sur .elementor-widget-wrap : ici il
   décalait la grille produits de 10px vers la droite par rapport aux autres blocs. */
.elementor-element-1145d13 > .elementor-container > .elementor-column > .elementor-widget-wrap{
  padding-left:0; padding-right:0;
}
.section-tight{ padding: clamp(28px,3vw,42px) 0; }
.section-head{ text-align:center; max-width:640px; margin:0 auto 30px; }
.section-head h2{ font-size:clamp(25px,3.2vw,34px); line-height:1.14; text-wrap:balance; }
.section-head p{ color: var(--c-text-muted); }
.section-head-row{
  display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; flex-wrap:wrap; gap:14px;
}
.section-head-row h2{ font-size:clamp(24px,2.8vw,30px); margin:0; text-wrap:balance; }
@media (max-width:600px){
  .section-head-row{ flex-direction:column; align-items:flex-start; }
  /* WooCommerce Blocks cross-sell grid (cart/checkout) uses a negative
     margin to bleed its gutters into the parent's padding — with no
     padding left to absorb it on a narrow screen it just bleeds past
     the edge of the viewport instead. */
  .wc-block-grid__products{ margin-left:0; margin-right:0; }
}

/* ---- Product grid / carousel ---- */
.products-carousel{ position:relative; }
.products-track{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns: calc(25% - 18px);
  gap:24px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding-bottom:8px;
  scrollbar-width:none;
}
.products-track::-webkit-scrollbar{ display:none; }
/* ---- Carte produit ----
   Sans cadre ni ombre : le visuel studio porte la carte, le texte vit sur le
   fond de page. La photo est l'élément dominant, le reste reste calme. */
.product-card{
  display:flex; flex-direction:column;
  background:none; border:0; border-radius:0; box-shadow:none;
  overflow:visible; position:relative; transform:none;
}
.product-card:hover{ box-shadow:none; transform:none; }

.pc__media{
  position:relative; display:block; overflow:hidden;
  aspect-ratio:1/1; border-radius:18px;
  background:var(--c-primary-soft);
  margin-bottom:16px;
}
.product-card .pc__img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .55s cubic-bezier(.22,1,.36,1);
}
.product-card:hover .pc__img{ transform:scale(1.04); }

.pc__tag{
  position:absolute; top:14px; left:14px; z-index:2;
  padding:6px 13px; border-radius:999px;
  background:rgba(255,255,255,.94); color:var(--c-text);
  font-size:12.5px; font-weight:600; line-height:1;
  box-shadow:0 2px 10px rgba(12,40,43,.10);
}
.pc__flag{
  position:absolute; top:14px; right:14px; z-index:2;
  padding:6px 13px; border-radius:999px;
  background:var(--c-gold); color:#0a2c31;
  font-size:12.5px; font-weight:700; line-height:1;
  box-shadow:0 2px 10px rgba(12,40,43,.14);
}
.pc__flag--sale{ background:#b8323f; color:#fff; }

.pc__go{
  position:absolute; right:14px; bottom:14px; z-index:2;
  width:38px; height:38px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:#fff; color:var(--c-primary-dark);
  box-shadow:0 3px 12px rgba(12,40,43,.16);
  transition:transform .28s cubic-bezier(.22,1,.36,1), background .2s ease, color .2s ease;
}
.pc__go svg{ width:17px; height:17px; }
.product-card:hover .pc__go{ transform:translate(2px,-2px); background:var(--c-primary); color:#fff; }

.pc__brand{
  margin:0 0 6px; font-size:11px; font-weight:600;
  letter-spacing:.09em; text-transform:uppercase; color:var(--c-text-muted);
}
.pc__name{
  margin:0 0 5px; font-family:var(--font-body); font-weight:600;
  font-size:17px; line-height:1.28; color:var(--c-text);
}
.pc__name a{ color:inherit; }
.product-card:hover .pc__name a{ color:var(--c-primary-dark); }
.pc__line{ margin:0; font-size:14px; line-height:1.45; color:var(--c-text-muted); }

/* Hauteur fixe : le libellé du bouton change ("Ajouter" / "Lire la suite") et
   faisait varier la hauteur de la ligne, donc l'aplomb des prix d'une carte à l'autre. */
.pc__buy{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  margin-top:auto; padding-top:18px; box-sizing:content-box; height:38px;
}
.pc__price{
  font-family:var(--font-heading); font-weight:600; font-size:19px; line-height:1.1;
  color:var(--c-text); white-space:nowrap;
}
.pc__price del{ opacity:.5; font-size:.72em; margin-right:.28em; }
.pc__price ins{ text-decoration:none; }
.pc__soon{ font-family:var(--font-body); font-size:13.5px; line-height:1.1; font-weight:500; color:var(--c-text-muted); }
.pc__add{
  display:inline-flex; align-items:center; gap:8px; flex-shrink:0;
  height:38px; padding:0 16px; box-sizing:border-box; border-radius:999px;
  border:1px solid var(--c-border); background:#fff; color:var(--c-text);
  font-size:14px; font-weight:600; line-height:1;
  transition:border-color .2s ease, background .2s ease, color .2s ease;
}
.pc__add svg{ width:15px; height:15px; }
.pc__add:hover{ border-color:var(--c-primary); background:var(--c-primary); color:#fff; }
.pc__add.added{ display:none; }
.product-card .added_to_cart{
  display:inline-flex; align-items:center; height:38px; padding:0 16px; box-sizing:border-box; border-radius:999px;
  border:1px solid var(--c-primary); color:var(--c-primary-dark);
  font-size:14px; font-weight:600; line-height:1;
}

@media (max-width:600px){
  .pc__media{ border-radius:14px; margin-bottom:12px; }
  /* Une ligne de marque sur deux lignes gâche la hauteur sur une carte de ~165px. */
  .pc__brand{ font-size:9.5px; letter-spacing:.03em; margin-bottom:4px; }
  .pc__name{ font-size:15px; }
  .pc__line{ font-size:13px; }
  /* Prix et bouton ne tiennent pas côte à côte sur deux colonnes : on empile. */
  .pc__buy{
    flex-direction:column; align-items:stretch; gap:9px;
    height:auto; padding-top:14px;
  }
  .pc__price{ font-size:17px; }
  .pc__add{ height:36px; padding:0 13px; font-size:13px; justify-content:center; }
  .product-card .added_to_cart{ height:36px; justify-content:center; }
  .pc__go{ width:32px; height:32px; right:10px; bottom:10px; }
  .pc__tag{ top:10px; left:10px; padding:5px 10px; font-size:11.5px; }
  .pc__flag{ top:10px; right:10px; padding:5px 10px; font-size:11px; }
}

/* Ancien style de carte (cadre blanc, vignette, corps) retiré : la nouvelle
   carte .pc__* est définie plus haut et n'a ni fond ni bordure. */

.carousel-arrows{ display:flex; gap:10px; }
.carousel-arrow{
  width:42px; height:42px; border-radius:50%;
  border:1px solid var(--c-border); background:#fff;
  display:flex; align-items:center; justify-content:center;
  color: var(--c-primary-dark);
  transition: background .2s;
}
.carousel-arrow:hover{ background: var(--c-primary-light); }

/* ---- Benefits grid ---- */
/* ---- Styles repris des sections Elementor ----
   Ces sections portaient leurs couleurs et tailles en attribut `style` inline.
   En passant aux blocs, tout redescend ici : une seule source de vérité. */
.kv-faq-section{ background: var(--c-primary-soft); }
.about-section h2{ font-size: clamp(24px,2.8vw,30px); }
.about-lead{ color: var(--c-text-muted); }
.featured-intro{ color: var(--c-text-muted); max-width:420px; }
/* Rythme repris du réglage Elementor de l'ancienne section produits. */
.kv-products-band{ padding-top: clamp(28px,3vw,40px); padding-bottom: clamp(14px,1.6vw,18px); }

/* ---- Préoccupations : entrée par besoin ----
   Chaque besoin montre le produit qui y répond. Le nom et le prix restent
   visibles en permanence : au doigt il n'y a pas de survol, et un texte caché
   ne convertit pas. Le survol ajoute seulement de l'emphase. */
.kv-concerns-section{ background: var(--c-primary-soft); }
.kv-concerns-section .section-head p{ margin:10px 0 0; font-size:16px; }
.kv-concerns{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(12px,1.4vw,18px);
}
@media (max-width:1024px){ .kv-concerns{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .kv-concerns{ grid-template-columns:minmax(0,1fr); } }

.kv-concern{
  display:flex; align-items:center; gap:16px;
  padding:14px; border-radius:18px;
  background:#fff; border:1px solid var(--c-border); color:inherit;
  transition:transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s ease, border-color .3s ease;
}
a.kv-concern:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:transparent; }
a.kv-concern:focus-visible{ outline:2px solid var(--c-primary); outline-offset:3px; }

.kv-concern__media{
  flex-shrink:0; width:92px; height:92px; border-radius:14px; overflow:hidden;
  background:var(--c-primary-soft);
}
.kv-concern .kv-concern__media img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s cubic-bezier(.22,1,.36,1);
}
a.kv-concern:hover .kv-concern__media img{ transform:scale(1.08); }

.kv-concern__body{ display:flex; flex-direction:column; gap:4px; min-width:0; flex:1; }
.kv-concern__head{ display:flex; align-items:center; gap:8px; }
.kv-concern__head svg{ width:20px; height:20px; color:var(--c-primary); flex-shrink:0; }
.kv-concern__title{
  font-family:var(--font-heading); font-weight:600; font-size:17px; line-height:1.2; color:var(--c-text);
}
.kv-concern__desc{ font-size:13.5px; line-height:1.45; color:var(--c-text-muted); }

.kv-concern__product{
  display:flex; align-items:flex-start; gap:8px;
  margin-top:6px; padding-top:8px; border-top:1px solid var(--c-border);
  font-size:13px;
}
.kv-concern__name{
  flex:1; min-width:0; font-weight:600; line-height:1.35; color:var(--c-primary-dark);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.kv-concern__price{ flex-shrink:0; line-height:1.35; font-weight:700; color:var(--c-text); white-space:nowrap; }
.kv-concern__price del{ opacity:.5; font-weight:500; margin-right:.25em; }
.kv-concern__price ins{ text-decoration:none; }
.kv-concern__go{ flex-shrink:0; display:inline-flex; padding-top:1px; color:var(--c-primary); transition:transform .3s cubic-bezier(.22,1,.36,1); }
.kv-concern__go svg{ width:16px; height:16px; }
a.kv-concern:hover .kv-concern__go{ transform:translateX(3px); }

@media (prefers-reduced-motion: reduce){
  .kv-concern, .kv-concern .kv-concern__media img, .kv-concern__go{ transition:none; }
  a.kv-concern:hover, a.kv-concern:hover .kv-concern__media img, a.kv-concern:hover .kv-concern__go{ transform:none; }
}

.benefits-grid{
  display:grid;
  grid-template-columns: repeat(6, 1fr);
  gap:18px;
}
.benefit-card{
  background:#fff;
  border:1px solid var(--c-border);
  border-radius: var(--radius-md);
  padding:26px 18px;
  text-align:center;
  transition: box-shadow .2s, transform .2s;
  display:block; color:inherit; text-decoration:none;
}
.benefit-card:hover{ box-shadow: var(--shadow-sm); transform: translateY(-3px); }
.benefit-card .icon{
  width:52px; height:52px; margin:0 auto 14px;
  background: var(--c-primary-light);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color: var(--c-primary);
}
.benefit-card h3{ font-size:15px; font-family: var(--font-body); font-weight:600; margin-bottom:4px; }
.benefit-card p{ font-size:13px; color: var(--c-text-muted); margin:0; }

/* ---- Featured product split ---- */
.featured-product{
  background: linear-gradient(120deg, var(--c-primary-light) 0%, var(--c-primary-soft) 100%);
  border-radius: var(--radius-lg);
  overflow:hidden;
}
.featured-product .container{
  display:grid;
  grid-template-columns: 1.1fr .9fr auto;
  align-items:center;
  gap:40px;
  padding-top:0; padding-bottom:0;
}
.featured-product-inner{
  display:grid;
  grid-template-columns: 1.1fr .9fr auto;
  align-items:center;
  gap:40px;
  padding:48px 44px;
}
.featured-eyebrow{
  text-transform:uppercase; letter-spacing:.1em; font-size:12px; font-weight:700; color:var(--c-primary);
  margin-bottom:12px;
}
/* Bandeau best-seller du produit phare : même or et même forme que la pastille
   des cartes produits, pour que ce soit lu comme la même information. */
.featured-badge{
  display:inline-block; margin:0 0 14px; padding:6px 14px;
  border-radius:999px; background:var(--c-gold); color:#0a2c31;
  font-size:12.5px; font-weight:700; line-height:1; letter-spacing:.01em;
}

.featured-product h2{ font-size:30px; margin-bottom:14px; }
.featured-list{ display:flex; flex-direction:column; gap:10px; margin-bottom:22px; }
.featured-list li{ display:flex; gap:10px; font-size:14.5px; align-items:flex-start; }
.featured-list svg{ width:18px; height:18px; color: var(--c-primary); flex-shrink:0; margin-top:3px; }
.featured-price-row{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.featured-price{ font-family: var(--font-heading); font-size:28px; font-weight:700; color: var(--c-primary-dark); }
.featured-product img{ max-width:100%; filter: drop-shadow(0 24px 34px rgba(12,116,128,.25)); }
.featured-stats{ display:flex; flex-direction:column; gap:22px; }
.featured-stat{ text-align:center; }
.featured-stat strong{ display:block; font-family: var(--font-heading); font-size:26px; color: var(--c-primary-dark); }
.featured-stat span{ font-size:11px; font-weight:700; color: var(--c-text-muted); letter-spacing:.06em; text-transform:uppercase; }

/* ---- Testimonials ---- */
/* ---- Carrousel horizontal (piste + barre), utilisé par les avis .kv-rv ---- */
.kv-carousel-track{
  display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:4px 2px 10px; flex:1; scrollbar-width:none;
}
.kv-carousel-track::-webkit-scrollbar{ display:none; }
.kv-carousel-bar{ height:4px; background: var(--c-border); border-radius:999px; margin-top:6px; overflow:hidden; }
.kv-carousel-bar-fill{ display:block; height:100%; width:25%; background: var(--c-primary); border-radius:999px; transition:width .15s; }

/* ---- About ---- */
.about-section .container{ display:grid; grid-template-columns: 1fr 1fr; gap:60px; align-items:center; }
.about-checklist{ display:grid; grid-template-columns: 1fr 1fr; gap:14px; margin-top:24px; }
.about-checklist li{ display:flex; gap:10px; font-size:14.5px; align-items:flex-start; }
.about-checklist svg{ width:18px; height:18px; color:var(--c-primary); flex-shrink:0; margin-top:2px; }
.about-badges{ display:flex; gap:28px; margin-top:28px; flex-wrap:wrap; }
.about-badge{ text-align:center; max-width:110px; }
.about-badge .icon{ width:44px; height:44px; margin:0 auto 8px; color: var(--c-primary); }
.about-badge span{ font-size:12px; font-weight:600; color: var(--c-text-muted); }
.about-visual{
  background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-dark) 100%);
  border-radius: var(--radius-lg);
  min-height:420px;
  position:relative;
  overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.about-visual svg{ width:70%; opacity:.9; }
/* Point focal à 70 % : en mobile le cadre est vertical (≈327×420) et un recadrage
   centré couperait la kippa, qui est le sujet même de l'image. */
.about-visual{ background-position:70% center; }
.about-visual-card{
  position:absolute; bottom:24px; left:24px; right:24px;
  background:rgba(255,255,255,.96);
  border-radius: var(--radius-md);
  padding:18px 20px;
}
.about-visual-card ul{ display:flex; flex-direction:column; gap:8px; }
.about-visual-card li{ display:flex; gap:8px; align-items:center; font-size:13.5px; font-weight:600; }
.about-visual-card svg{ width:16px; height:16px; color: var(--c-primary); flex-shrink:0; }

/* ---- FAQ ---- */
.faq-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:16px 24px; }
.faq-item{ border:1px solid var(--c-border); border-radius: var(--radius-sm); background:#fff; overflow:hidden; }
.faq-question{
  width:100%; display:flex; align-items:center; justify-content:space-between;
  padding:18px 20px; background:none; border:none; font-weight:600; font-size:15px; text-align:left;
}
.faq-question .plus{ font-size:20px; color: var(--c-primary); transition: transform .2s; flex-shrink:0; margin-left:12px; }
.faq-item.open .plus{ transform: rotate(45deg); }
.faq-answer{ max-height:0; overflow:hidden; transition: max-height .25s ease; padding:0 20px; }
.faq-item.open .faq-answer{ max-height:240px; padding-bottom:18px; }
.faq-answer p{ color: var(--c-text-muted); font-size:14px; margin:0; }

/* ---- Newsletter ---- */
.newsletter{ background: var(--c-primary-dark); color:#fff; }
.newsletter .container{ display:flex; align-items:center; justify-content:space-between; gap:30px; padding:44px 24px; flex-wrap:wrap; }
.newsletter h3{ color:#fff; font-size:22px; margin-bottom:4px; }
.newsletter p{ color:#cfe9ea; margin:0; }
.newsletter-form{ display:flex; gap:10px; flex:1; max-width:420px; }
.newsletter-form input{
  flex:1; padding:13px 18px; border-radius:999px; border:none; font-size:14px;
}
.newsletter-social{ display:flex; gap:12px; }
.newsletter-social a{
  width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.12);
  display:flex; align-items:center; justify-content:center;
}

/* ---- Footer ---- */
.site-footer{ background: #0a3237; color:#cfe6e7; padding:60px 0 24px; }
.footer-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr; gap:32px; }
.footer-col h4{ color:#fff; font-size:14px; margin-bottom:16px; }
.footer-col ul{ display:flex; flex-direction:column; gap:10px; }
.footer-col a{ font-size:13.5px; color:#a9cbcd; }
.footer-col a:hover{ color:#fff; }
.footer-brand{ display:flex; align-items:center; gap:8px; font-family: var(--font-heading); font-size:20px; color:#fff; margin-bottom:10px; }
.footer-logo-img{ height:38px; width:auto; margin-bottom:14px; filter:brightness(0) invert(1); }
.footer-seal{
  display:flex; flex-direction:column; align-items:flex-start; gap:6px;
  margin-top:18px; color:#e6c98a; font-size:12.5px; font-weight:600;
}
.footer-seal .kv-seal{ --seal-h:42px; }
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1); margin-top:40px; padding-top:20px;
  display:flex; justify-content:space-between; font-size:12.5px; color:#8fb6b8; flex-wrap:wrap; gap:10px;
}
.kosher-seal{
  width:56px; height:56px; border:2px solid var(--c-gold); border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  font-size:8px; font-weight:700; color: var(--c-gold); text-align:center; line-height:1.2;
}

/* ---- WooCommerce: shop archive ---- */
.woocommerce ul.products{ display:grid; grid-template-columns: repeat(4,1fr); gap:24px; list-style:none; padding:0; }
.woocommerce ul.products li.product{ list-style:none; }
/* WooCommerce core adds float-clearfix ::before/::after on ul.products —
   those become real grid items in our CSS-Grid layout and push cards
   out of place (an invisible cell eats column 1, the last card wraps alone). */
.woocommerce ul.products::before,
.woocommerce ul.products::after{ content:none; display:none; }
.woocommerce-page > .container{ padding-top:0; padding-bottom:70px; }
/* Colonne de lecture des pages rédactionnelles (l'ancien style était en inline). */
.kv-page-body{ padding:10px 0 70px; max-width:820px; }

.page-hero{ background: var(--c-primary-soft); padding:40px 0; margin-bottom:16px; text-align:center; }
.page-hero h1{ font-size:32px; margin:0 0 16px; }


.woocommerce-result-count, .woocommerce-ordering{
  font-size:13.5px; color: var(--c-text-muted); margin-bottom:24px;
}
.woocommerce-ordering select{
  padding:8px 14px; border-radius:999px; border:1px solid var(--c-border); font-size:13.5px;
}
.woocommerce nav.woocommerce-pagination{ margin-top:40px; text-align:center; }
.woocommerce nav.woocommerce-pagination ul{ display:inline-flex; gap:8px; border:none; }
.woocommerce nav.woocommerce-pagination ul li{ border:none; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%;
  border:1px solid var(--c-border); color: var(--c-text);
  padding:0; font-size:13.5px;
}
.woocommerce nav.woocommerce-pagination ul li span.current{ background: var(--c-primary); border-color: var(--c-primary); color:#fff; }
.woocommerce nav.woocommerce-pagination ul li a:hover{ background: var(--c-primary-light); }

/* ---- WooCommerce: single product ---- */
.woocommerce div.product{
  display:grid;
  grid-template-columns: .78fr 1fr;
  column-gap:56px;
  row-gap:0;
  padding-top:10px;
  margin-bottom:60px;
}
/* Every direct child of the product grid spans full width by default —
   only the gallery/summary pair explicitly sits in the 2-column hero row.
   (Without this, any section a hook adds later silently gets crushed into
   a single 1fr column by CSS Grid auto-placement.) */
.woocommerce div.product > *{ grid-column: 1 / -1; min-width:0; }
.woocommerce div.product > div.images,
.woocommerce div.product > div.summary,
.woocommerce div.product > div.kv-gallery-sticky{ grid-column: auto; }
.kv-gallery-sticky{ position:relative; }
.kv-kosher-seal-badge{
  position:absolute; top:16px; left:16px; z-index:5;
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:10px 14px 8px; border-radius:14px;
  background:rgba(255,255,255,.94); box-shadow:0 6px 18px rgba(12,40,43,.14);
  color:var(--c-primary-dark);
}
.kv-kosher-seal-badge .kv-seal{ --seal-h:36px; }
.kv-kosher-seal-badge__label{ font-size:10.5px; font-weight:700; letter-spacing:.02em; white-space:nowrap; }
@media (max-width:600px){
  .kv-kosher-seal-badge{ top:10px; left:10px; padding:7px 10px 6px; }
  .kv-kosher-seal-badge .kv-seal{ --seal-h:28px; }
}
/* Stick the gallery in view while the (much longer) summary column scrolls
   past it, instead of leaving a tall blank gap under a short image.
   .images stays stretched (default) to the full row height so it has room
   to hold the sticky wrapper in view; the wrapper itself is only as tall
   as the actual photo + thumbnails. */
.woocommerce div.product div.images.woocommerce-product-gallery{ position:sticky; top:96px; width:100%; float:none; }
@media (max-width:1024px){ .woocommerce div.product div.images.woocommerce-product-gallery{ position:static; } }
.woocommerce div.product div.images{ margin:0; }
.woocommerce div.product div.images img{
  border-radius: var(--radius-lg);
  background: var(--c-primary-soft);
}
.woocommerce div.product .woocommerce-product-gallery__wrapper{ margin:0; }
.woocommerce div.product .flex-control-thumbs{ display:flex; gap:12px; margin-top:14px; padding:0; list-style:none; }
.woocommerce div.product .flex-control-thumbs li{ width:74px; list-style:none; }
.woocommerce div.product .flex-control-thumbs li img{
  border-radius: var(--radius-sm); border:2px solid transparent; opacity:.7; cursor:pointer;
}
.woocommerce div.product .flex-control-thumbs li img.flex-active, .woocommerce div.product .flex-control-thumbs li img:hover{
  border-color: var(--c-primary); opacity:1;
}

.woocommerce div.product div.summary{ margin:0; width:100%; float:none; min-width:0; }
.woocommerce div.product .product_title{ font-size:32px; margin-bottom:10px; }
.woocommerce div.product .woocommerce-product-rating{ display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.woocommerce div.product .star-rating{ color: var(--c-gold); }
.woocommerce div.product p.price, .woocommerce div.product span.price{
  font-family: var(--font-heading); font-size:30px; color: var(--c-primary-dark); font-weight:700;
}
.woocommerce div.product p.price ins, .woocommerce div.product span.price ins{ text-decoration:none; }
.woocommerce div.product p.price del{ opacity:.5; font-size:20px; margin-right:8px; }
.woocommerce div.product .woocommerce-product-details__short-description{ color: var(--c-text-muted); margin:18px 0 24px; }
.woocommerce div.product .woocommerce-product-details__short-description ul{ padding-left:0; }
.woocommerce div.product .woocommerce-product-details__short-description li{ display:flex; gap:8px; margin-bottom:8px; font-size:14.5px; }

/* Variation picker ("Goût", "Format"...) — bare WooCommerce markup otherwise
   renders as an unstyled browser-default table + select. */
.woocommerce div.product table.variations{ width:100%; margin-bottom:18px; border:none; }
.woocommerce div.product table.variations tbody, .woocommerce div.product table.variations tr{ display:block; }
.woocommerce div.product table.variations tr{ margin-bottom:14px; }
.woocommerce div.product table.variations th, .woocommerce div.product table.variations td{ display:block; padding:0; border:none; }
.woocommerce div.product table.variations th label{ display:block; font-weight:700; font-size:13px; color: var(--c-text); margin-bottom:8px; }
.woocommerce div.product table.variations td select{
  width:100%; max-width:340px; padding:13px 40px 13px 16px; border-radius:999px;
  border:1.5px solid var(--c-border); background:#fff; font-size:14.5px; color: var(--c-text);
  appearance:none; cursor:pointer; transition:border-color .2s;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235c7377' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center;
}
.woocommerce div.product table.variations td select:focus{ border-color: var(--kv-product-accent, var(--c-primary)); outline:none; }
.woocommerce div.product table.variations td .reset_variations{ display:inline-block; margin-top:8px; font-size:12px; color: var(--c-text-muted); }
.woocommerce div.product .woocommerce-variation{
  background: var(--c-primary-soft); border-radius: var(--radius-md); padding:16px 18px; margin-bottom:18px;
}
.woocommerce div.product .woocommerce-variation-price .price{ font-size:22px !important; }
.woocommerce div.product .woocommerce-variation-availability{ margin-top:6px; }

.woocommerce div.product form.cart{ display:flex; align-items:center; gap:14px; margin-bottom:20px; flex-wrap:wrap; }
.woocommerce div.product form.cart .quantity{ margin:0; }
.woocommerce div.product form.cart .quantity input{
  width:70px; padding:13px 10px; border-radius: 999px; border:1px solid var(--c-border); text-align:center; font-size:15px;
}
.woocommerce div.product form.cart .button{
  padding:14px 30px; border-radius:999px; background: var(--kv-product-accent, var(--c-primary)); color:#fff;
  font-weight:600; font-size:15px; border:none; box-shadow: var(--shadow-sm);
  transition: background .2s;
}
.woocommerce div.product form.cart .button:hover{ background: color-mix(in srgb, var(--kv-product-accent, var(--c-primary)) 82%, black); }
.woocommerce div.product .stock{
  display:inline-flex; align-items:center; gap:7px;
  margin-bottom:18px; padding:7px 16px; border-radius:999px;
  background: color-mix(in srgb, var(--kv-product-accent, var(--c-primary)) 12%, white);
  color: color-mix(in srgb, var(--kv-product-accent, var(--c-primary)) 80%, black);
  font-size:13px; font-weight:700;
}
.woocommerce div.product .stock::before{
  content:''; width:8px; height:8px; border-radius:50%; background: var(--kv-product-accent, var(--c-primary)); flex-shrink:0;
}
.woocommerce div.product .stock.out-of-stock{ background:#fbe9e9; color:#a13030; }
.woocommerce div.product .stock.out-of-stock::before{ background:#a13030; }

.woocommerce div.product .product_meta{
  margin-top:24px; padding:16px 18px; border-radius: var(--radius-sm);
  background: var(--c-primary-soft); border:1px solid var(--c-primary-light);
  font-size:13px; color: var(--c-text-muted); display:flex; flex-direction:column; gap:8px;
}
.woocommerce div.product .product_meta > span{ display:block; }
.woocommerce div.product .product_meta .sku_wrapper .sku{ font-weight:700; color: var(--c-text); font-family: var(--font-heading); }
.woocommerce div.product .product_meta a{ color: var(--c-primary); font-weight:600; }

.kv-trust-badges{ display:flex; flex-wrap:wrap; gap:14px 22px; }
.kv-reassurance-box{
  margin:22px 0; padding:20px 22px; background: var(--c-primary-soft);
  border:1px solid var(--c-primary-light); border-radius: var(--radius-md);
}
.kv-reassurance-box .kv-trust-badges span{ font-size:13px; font-weight:600; color:var(--c-text); display:flex; align-items:center; gap:7px; }
.kv-reassurance-box .kv-trust-badges svg{ width:18px; height:18px; color:var(--c-primary); flex-shrink:0; }
.kv-reassurance-divider{ height:1px; background: var(--c-primary-light); margin:16px 0; }
.kv-reassurance-box .kv-payment-badges{ margin:0; }
.kv-trust-badges span{ display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color: var(--c-text); }
.kv-trust-badges svg{ width:18px; height:18px; color: var(--c-primary); flex-shrink:0; }

.woocommerce-tabs{ grid-column: 1 / -1; margin-top:20px; }
.woocommerce-tabs ul.tabs{ display:flex; gap:8px; border-bottom:1px solid var(--c-border); margin-bottom:28px; padding:0; list-style:none; flex-wrap:wrap; }
.woocommerce-tabs ul.tabs li{ list-style:none; }
.woocommerce-tabs ul.tabs li a{
  display:block; padding:12px 22px; font-weight:600; font-size:14.5px; color: var(--c-text-muted); border-bottom:2px solid transparent;
}
.woocommerce-tabs ul.tabs li.active a{ color: var(--c-primary-dark); border-bottom-color: var(--c-primary); }
.woocommerce-tabs .panel{ max-width:760px; color: var(--c-text-muted); }
.woocommerce-tabs .panel h2{ font-size:22px; margin-bottom:14px; }

.related.products{ grid-column: 1 / -1; margin-top:50px; padding-top:50px; border-top:1px solid var(--c-border); }
.related.products > h2{ font-size:26px; margin-bottom:28px; text-align:center; }

@media (max-width: 900px){
  .woocommerce div.product{ grid-template-columns: 1fr; gap:28px; }
}

/* ---- Responsive ---- */
@media (max-width: 1024px){
  .trust-bar ul{ grid-template-columns: repeat(3,1fr); }
  .trust-bar li:nth-child(4){ grid-column:1 / 3; }
  .trust-bar li:nth-child(5){ grid-column:3 / -1; }
  .benefits-grid{ grid-template-columns: repeat(3,1fr); }
  .products-track{ grid-auto-columns: calc(50% - 12px); }
  .featured-product-inner{ grid-template-columns: 1fr; text-align:center; }
  .featured-product-inner > *{ min-width:0; }
  .featured-list{ align-items:center; }
  .featured-price-row{ justify-content:center; }
  .featured-stats{ flex-direction:row; justify-content:center; flex-wrap:wrap; }
  .about-section .container{ grid-template-columns: 1fr; }
  .faq-grid{ grid-template-columns: 1fr; }
  .footer-grid{ grid-template-columns: 1fr 1fr 1fr; }
  .woocommerce ul.products{ grid-template-columns: repeat(2,1fr); }
}
/* ---- Mobile off-canvas menu drawer (.main-nav-wrap becomes the panel) ---- */
.kv-drawer-header, .kv-drawer-search, .kv-drawer-footer, .kv-nav-backdrop{ display:none; }
@media (max-width: 720px){
  /* Header row: only logo + cart + hamburger stay in the top bar — search,
     account and the locale switch move inside the drawer so the row never
     has to fit more than 3 items on a narrow screen. */
  .site-header .container{ gap:10px; padding-top:12px; padding-bottom:12px; }
  .site-header .site-logo-img{ height:32px; }
  .header-actions{ gap:6px; }
  .header-icon{ padding:6px; }
  .kv-header-search-btn, .kv-header-account-link, .kv-wish-link, .header-actions > .locale-switch{ display:none; }

  .main-nav-wrap{
    position:fixed; top:0; right:0; bottom:0; width:86%; max-width:340px;
    background:#fff; z-index:200; display:flex; flex-direction:column;
    transform:translateX(100%); transition:transform .3s cubic-bezier(.4,0,.2,1);
    overflow-y:auto;
  }
  /* Ombre seulement à l'ouverture : fermé, le tiroir est collé au bord droit
     et son ombre débordait dans la page en bande claire. */
  body.nav-open .main-nav-wrap{ transform:translateX(0); box-shadow: var(--shadow-lg); }
  .kv-drawer-header{
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 20px; border-bottom:1px solid var(--c-border); flex-shrink:0;
  }
  .kv-drawer-title{ font-family: var(--font-heading); font-weight:600; font-size:17px; color: var(--c-primary-dark); }
  .kv-drawer-close{ background:none; border:none; font-size:26px; line-height:1; color: var(--c-text-muted); cursor:pointer; padding:0 4px; }
  .kv-drawer-search{
    display:flex; align-items:center; gap:10px; margin:16px 20px 4px;
    padding:10px 16px; border:1px solid var(--c-border); border-radius:999px;
    color: var(--c-text-muted); flex-shrink:0;
  }
  .kv-drawer-search input{ border:none; outline:none; font-size:14px; width:100%; background:none; }
  .main-nav{
    display:flex; flex-direction:column; gap:0; padding:8px 20px 20px;
  }
  .main-nav a{ padding:14px 0; border-bottom:1px solid var(--c-border); font-size:15.5px; }
  .main-nav .sub-menu{
    position:static; box-shadow:none; padding-left:14px; min-width:0; margin-top:0;
    opacity:1; pointer-events:auto; filter:none; transform:none; transition:none;
  }
  .main-nav .sub-menu a{ padding:10px 0; font-size:14.5px; color: var(--c-text-muted); }

  /* Mega-menu becomes an always-expanded inline panel in the drawer
     instead of a hover dropdown — same idea as the "À propos" sub-menu.
     No hover on touch, so the cloud reveal is switched off: shown flat
     and immediately, matching the rest of the drawer's inline items. */
  .kv-mega-menu, .kv-mega-menu.kv-shop-mega{
    position:static; width:auto; background:none; box-shadow:none; border:0;
    padding:4px 0 16px; margin:0;
    opacity:1; pointer-events:auto; filter:none; transform:none; transition:none;
  }
  .kv-mega-menu::before{ display:none; }
  .main-nav .kv-mega-menu a{ border-bottom:0; }
  .kv-shop-mega .kv-mega-menu-inner{ grid-template-columns:minmax(0,1fr); }
  .kv-shop-mega .kv-mega-side{ padding:0; background:none; border:0; border-radius:0; }
  .kv-shop-mega .kv-mega-cats-label{ padding-left:0; }
  .kv-shop-mega .kv-mega-cats{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:6px; margin-bottom:12px; }
  .kv-shop-mega .kv-mega-cat{ gap:8px; padding:6px; font-size:13px; background: var(--c-primary-soft); }
  .kv-shop-mega .kv-mega-cat__ico{ width:28px; height:28px; border-radius:8px; }
  .kv-shop-mega .kv-mega-cat__ico svg{ width:16px; height:16px; }
  .kv-shop-mega .kv-mega-cat__count{ display:none; }
  .kv-shop-mega .kv-mega-quiz{ margin:0 0 14px; }
  .kv-shop-mega .kv-mega-main{ padding:0; }
  /* Menu mobile : le panneau « Conseils » se réduit aux rubriques, dans le flux du tiroir */
  .kv-mega-menu.kv-blog-mega{ position:static; width:auto; max-width:100%; min-width:0; margin:0; padding:0; left:auto; transform:none; box-shadow:none; background:transparent; border-radius:0; overflow:visible; }
  /* L'état ouvert du desktop (3 classes) recentre le panneau : on l'annule ici, sinon il déborde du tiroir. */
  .kv-mega-parent:hover .kv-mega-menu.kv-blog-mega,
  .kv-mega-parent.kv-open .kv-mega-menu.kv-blog-mega,
  .kv-mega-parent:focus-within .kv-mega-menu.kv-blog-mega{ left:auto; transform:none; }
  .kv-blog-mega-inner{ grid-template-columns:minmax(0,1fr); }
  .kv-blog-mega .kv-mega-side{ padding:0; background:none; border:0; }
  .kv-blog-mega .kv-mega-cats-label{ padding-left:0; }
  .kv-blog-cats{ grid-template-columns:minmax(0,1fr); gap:2px; }
  .main-nav .kv-blog-cat{ padding:8px 0; }
  .kv-blog-cat__name{ font-size:14px; }
  .main-nav .kv-blog-mega__quiz{ margin:12px 0 0; }
  .kv-blog-mega .kv-mega-main{ padding:12px 0 0; }
  .kv-blog-mega__head{ display:none; }
  .kv-blog-mega__posts{ display:none; }
  .kv-shop-mega .kv-mega-main__head{ align-items:center; margin-bottom:8px; }
  .kv-shop-mega .kv-mega-main__title{ font-size:16px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
  .kv-shop-mega .kv-mega-main__title small{ display:none; }
  .kv-shop-mega .kv-mega-main__all{ flex-shrink:0; white-space:nowrap; font-size:13px; }
  .kv-shop-mega .kv-mega-more{ display:none !important; }
  .kv-shop-mega .kv-mega-products{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:6px; }
  .kv-shop-mega .kv-mega-products:not([data-filtered]) .kv-mega-product:nth-child(n+7){ display:none; }
  .kv-shop-mega .kv-mega-product{ padding:4px 4px 8px; }
  .kv-shop-mega .kv-mega-product-name{ font-size:11px; }
  .kv-shop-mega .kv-mega-product-price{ font-size:11px; }
  .kv-shop-mega .kv-mega-product-badge, .kv-shop-mega .kv-mega-product-flag, .kv-shop-mega .kv-mega-foot{ display:none; }
  .kv-blog-cats-grid{ grid-template-columns:1fr; }
  .kv-drawer-footer{
    display:flex; align-items:center; justify-content:space-between;
    margin-top:auto; padding:16px 20px; border-top:1px solid var(--c-border); flex-shrink:0;
  }
  .kv-drawer-footer a{ display:flex; align-items:center; gap:8px; font-size:14.5px; color: var(--c-text); }
  .kv-drawer-locale{ flex:0 0 auto; margin-left:auto; white-space:nowrap; font-size:13px; color: var(--c-text-muted); font-weight:600; }

  .kv-nav-backdrop{
    display:block; position:fixed; inset:0; background:rgba(9,38,42,.5);
    z-index:199; opacity:0; visibility:hidden; transition:opacity .3s ease;
  }
  body.nav-open .kv-nav-backdrop{ opacity:1; visibility:visible; }
  body.nav-open{ overflow:hidden; }

  .nav-toggle{ display:flex; }
  .topbar .container{ display:none; }
  .trust-bar ul{ grid-template-columns: repeat(2,1fr); }
  .trust-bar li:nth-child(4){ grid-column:auto; }
  .trust-bar li:nth-child(5){ grid-column:1 / -1; }
  .benefits-grid{ grid-template-columns: repeat(2,1fr); }
  .products-track{ grid-auto-columns: 78%; }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
  .newsletter .container{ flex-direction:column; align-items:flex-start; }
  .woocommerce ul.products{ grid-template-columns: repeat(2,1fr); gap:14px; }
}
@media (max-width: 480px){
  .product-card .body{ padding:12px 12px 16px; gap:5px; }
  .product-card h3{ font-size:13.5px; line-height:1.3; }
  .product-card .price{ font-size:16px; }
  .product-card .rating{ font-size:11.5px; }
  .product-card .thumb{ padding:16px; }
  .product-card .badge{ top:10px; left:10px; font-size:10px; padding:4px 8px; }
  .product-card .btn{ font-size:12.5px; padding:9px 14px; }
}

/* ---- Seasonal promo banner ---- */
.kv-promo-banner{
  background-size:cover; background-position:center right; min-height:320px;
  display:flex; align-items:center; position:relative;
}
/* .container est ici un item flex : sans width:100% il se rétracte à la largeur
   de son contenu et son margin:0 auto le recentre — le texte finissait au milieu. */
.kv-promo-banner > .container{ width:100%; }
.kv-promo-banner::before{ content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(4,32,36,.90) 0%, rgba(4,32,36,.66) 34%, rgba(4,32,36,.20) 62%, rgba(4,32,36,0) 84%); }
.kv-promo-banner-content{ position:relative; z-index:1; max-width:30rem; padding:52px 0 64px; color:#fff; }
.kv-promo-eyebrow{
  display:inline-block; padding:5px 13px; border-radius:999px;
  background:rgba(200,162,74,.16); border:1px solid rgba(230,201,138,.48);
  font-size:12.5px; font-weight:600; color:#f0dcae;
}
.kv-promo-banner-content h2{ color:#fff; font-size:clamp(28px,3.1vw,40px); line-height:1.1; letter-spacing:-.02em; margin:16px 0 12px; }
.kv-promo-banner-content p{ color:rgba(255,255,255,.92); margin-bottom:24px; font-size:15.5px; line-height:1.6; max-width:34ch; }
@media (max-width:640px){ .kv-promo-banner{ min-height:340px; } .kv-promo-banner-content{ max-width:100%; } .kv-promo-banner-content h2{ font-size:26px; } }

/* ---- Sticky mobile add-to-cart bar ---- */
.kv-sticky-atc{ display:none; }
@media (max-width:768px){
  .kv-sticky-atc{
    position:fixed; left:0; right:0; bottom:0; z-index:900;
    background:#fff; border-top:1px solid var(--c-border); box-shadow:0 -6px 20px rgba(0,0,0,.08);
    padding:10px 14px; display:flex; align-items:center; gap:12px;
  }
  .kv-sticky-atc[hidden]{ display:none; }
  .kv-sticky-atc img{ width:42px; height:42px; object-fit:contain; border-radius:8px; background:var(--c-primary-soft); flex-shrink:0; }
  .kv-sticky-atc-info{ flex:1; min-width:0; display:flex; flex-direction:column; }
  .kv-sticky-atc-info strong{ font-size:12.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .kv-sticky-atc-info span{ font-size:13px; font-weight:700; color:var(--c-primary-dark); }
  .kv-sticky-atc #kv-sticky-atc-btn{ background: var(--kv-product-accent, var(--c-primary)); box-shadow:none; }
}

/* ---- FAQ chatbot ---- */
#kv-chatbot{ position:fixed; right:20px; bottom:20px; z-index:1100; }
#kv-chatbot-toggle{
  width:56px; height:56px; border-radius:50%; border:none; cursor:pointer;
  background: var(--c-primary); color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow: var(--shadow-lg); transition: transform .2s;
}
#kv-chatbot-toggle:hover{ transform:scale(1.06); }
#kv-chatbot-panel{
  position:absolute; right:0; bottom:70px; width:340px; max-width:calc(100vw - 40px);
  background:#fff; border-radius: var(--radius-md); box-shadow: var(--shadow-lg);
  border:1px solid var(--c-border); display:flex; flex-direction:column; overflow:hidden;
  height:440px; max-height:70vh;
}
#kv-chatbot-panel[hidden]{ display:none; }
.kv-chatbot-head{
  background: var(--c-primary); color:#fff; padding:14px 16px;
  display:flex; align-items:center; justify-content:space-between;
}
.kv-chatbot-head button{ background:none; border:none; color:#fff; font-size:22px; cursor:pointer; line-height:1; }
.kv-chatbot-messages{ flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:10px; }
.kv-chatbot-msg{ max-width:85%; padding:10px 13px; border-radius:14px; font-size:13.5px; line-height:1.5; }
.kv-chatbot-msg--bot{ background: var(--c-primary-soft); align-self:flex-start; border-bottom-left-radius:4px; }
.kv-chatbot-msg--user{ background: var(--c-primary); color:#fff; align-self:flex-end; border-bottom-right-radius:4px; }
.kv-chatbot-link{ color: var(--c-primary-dark); font-weight:600; text-decoration:underline; }
.kv-chatbot-msg--bot .kv-chatbot-link{ display:inline-block; margin-top:2px; }
#kv-chatbot-form{ display:flex; border-top:1px solid var(--c-border); }
#kv-chatbot-input{ flex:1; border:none; padding:12px 14px; font-size:13.5px; outline:none; }
#kv-chatbot-form button{ width:48px; border:none; background: var(--c-primary); color:#fff; cursor:pointer; font-size:16px; }
@media (max-width:480px){ #kv-chatbot-panel{ width:calc(100vw - 24px); right:-8px; } }

/* ---- Checkout postcode autocomplete ---- */
.kv-postcode-suggest{
  z-index:1200; background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-sm, 8px);
  box-shadow: var(--shadow-md); max-height:220px; overflow-y:auto;
}
.kv-postcode-suggest-item{
  display:block; width:100%; text-align:left; background:none; border:none; cursor:pointer;
  padding:9px 12px; font-size:13.5px; color: var(--c-text);
}
.kv-postcode-suggest-item:hover, .kv-postcode-suggest-item:focus{ background: var(--c-primary-light); }

/* ---- Cookie consent banner ---- */
.kv-cookie-banner{
  position:fixed; left:16px; right:16px; bottom:16px; z-index:999;
  display:flex; justify-content:center;
}
.kv-cookie-banner[hidden]{ display:none; }
.kv-cookie-box{
  background:#fff; border-radius: var(--radius-md); box-shadow: var(--shadow-lg);
  padding:20px 24px; max-width:640px; width:100%;
  border:1px solid var(--c-border);
}
.kv-cookie-box p{ font-size:13.5px; color: var(--c-text-muted); margin:0 0 14px; line-height:1.6; }
.kv-cookie-box p strong{ color: var(--c-text); }
.kv-cookie-actions{ display:flex; gap:10px; flex-wrap:wrap; }
.kv-cookie-prefs{ margin-top:16px; padding-top:16px; border-top:1px solid var(--c-border); display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
.kv-cookie-prefs[hidden]{ display:none; }
.kv-cookie-pref{ display:flex; align-items:center; gap:8px; font-size:13.5px; }
.kv-footer-link-btn{ background:none; border:none; padding:0; color:inherit; font:inherit; cursor:pointer; text-decoration:none; }
.kv-footer-link-btn:hover{ text-decoration:underline; }
@media (max-width:640px){ .kv-cookie-banner{ left:8px; right:8px; bottom:8px; } .kv-cookie-actions{ flex-direction:column; } .kv-cookie-actions .btn{ width:100%; } }

/* ---- Welcome popup ---- */
.kv-popup-overlay{
  position:fixed; inset:0; background:rgba(9,38,42,.55);
  display:flex; align-items:center; justify-content:center;
  z-index:1000; opacity:0; visibility:hidden;
  transition: opacity .3s ease;
  padding:20px;
}
.kv-popup-overlay.open{ opacity:1; visibility:visible; }
.kv-popup-box{
  background:#fff; border-radius: var(--radius-lg);
  max-width:420px; width:100%;
  padding:40px 34px 30px;
  text-align:center;
  position:relative;
  box-shadow: var(--shadow-lg);
  transform: translateY(16px) scale(.98);
  transition: transform .3s ease;
}
.kv-popup-overlay.open .kv-popup-box{ transform: translateY(0) scale(1); }
.kv-popup-close{
  position:absolute; top:14px; right:16px;
  background:none; border:none; font-size:26px; line-height:1;
  color: var(--c-text-muted); cursor:pointer;
}
.kv-popup-eyebrow{
  text-transform:uppercase; letter-spacing:.1em; font-size:11px; font-weight:700;
  color: var(--c-gold); margin-bottom:10px;
}
.kv-popup-box h3{ font-size:24px; margin-bottom:8px; }
.kv-popup-box p{ color: var(--c-text-muted); font-size:14.5px; margin-bottom:20px; }
.kv-popup-box form{ display:flex; flex-direction:column; gap:12px; }
.kv-popup-box input[type="email"]{
  padding:14px 18px; border-radius:999px; border:1px solid var(--c-border); font-size:15px; text-align:center;
}
.kv-popup-box small{ display:block; margin-top:16px; color: var(--c-text-muted); font-size:11.5px; }
.kv-popup-success{ display:flex; flex-direction:column; gap:14px; }
.kv-popup-code{
  font-family: var(--font-heading); font-size:22px; font-weight:700; letter-spacing:.05em;
  background: var(--c-primary-light); color: var(--c-primary-dark);
  border-radius: var(--radius-sm); padding:12px; border:1.5px dashed var(--c-primary);
}
.kv-popup-error{ color:#a13030; font-size:13px; margin-top:10px; }

/* ---- Contact form ---- */
.kv-contact-form{ max-width:480px; margin:0 auto; text-align:left; display:flex; flex-direction:column; gap:16px; }
.kv-contact-form label{ display:block; font-size:13px; font-weight:600; margin-bottom:6px; color:var(--c-text); }
.kv-contact-form input, .kv-contact-form textarea{
  width:100%; padding:13px 16px; border-radius: var(--radius-sm); border:1px solid var(--c-border);
  font-size:14.5px; font-family:inherit;
}
.kv-contact-form textarea{ min-height:120px; resize:vertical; }
.kv-contact-form .kv-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.kv-form-row-type{ display:flex; gap:10px; flex-wrap:wrap; }
.kv-radio-pill{
  display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:500;
  border:1px solid var(--c-border); border-radius:999px; padding:9px 16px 9px 14px; cursor:pointer;
  margin:0; color: var(--c-text-muted); transition: border-color .2s, color .2s, background .2s;
}
.kv-radio-pill input{ accent-color: var(--c-primary); width:15px; height:15px; margin:0; }
.kv-radio-pill:has(input:checked){ border-color: var(--c-primary); background: var(--c-primary-light); color: var(--c-primary-dark); font-weight:600; }
@media (max-width:640px){ .kv-contact-form .kv-form-row{ grid-template-columns:1fr; } }
.kv-form-success{ margin-top:14px; padding:14px 18px; border-radius:var(--radius-sm); background:var(--c-primary-light); color:var(--c-primary-dark); font-size:14px; font-weight:600; }
.kv-form-error{ margin-top:14px; padding:14px 18px; border-radius:var(--radius-sm); background:#fbe9e9; color:#a13030; font-size:14px; font-weight:600; }
@media (max-width:600px){ .kv-contact-form .kv-form-row{ grid-template-columns:1fr; } }

/* ---- Quiz ---- */
.kv-quiz-wrap{ max-width:760px; margin:0 auto; }
.kv-quiz-card{
  background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-lg);
  padding:44px 40px; box-shadow: var(--shadow-md); text-align:center;
}
.kv-quiz-card h2{ font-size:26px; margin:12px 0 14px; }
.kv-quiz-intro p{ color:var(--c-text-muted); margin-bottom:26px; }
.kv-quiz-progress{ height:6px; background:var(--c-primary-light); border-radius:999px; margin-bottom:18px; overflow:hidden; }
.kv-quiz-progress-bar{ height:100%; background:var(--c-primary); transition:width .3s ease; }
.kv-quiz-step{ font-size:12px; font-weight:700; color:var(--c-text-muted); text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px; }
.kv-quiz-options{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:24px; }
.kv-quiz-option{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  padding:22px 14px; border-radius:var(--radius-md); border:1.5px solid var(--c-border);
  background:#fff; font-size:14px; font-weight:600; color:var(--c-text); text-align:center;
  transition: border-color .2s, background .2s, transform .2s;
}
.kv-quiz-option-emoji{ font-size:34px; line-height:1; transition: transform .25s cubic-bezier(.2,.7,.3,1); }
.kv-quiz-option-label{ line-height:1.3; }
.kv-quiz-option:hover{ border-color:var(--c-primary); background:var(--c-primary-soft); transform:translateY(-3px); }
.kv-quiz-option:hover .kv-quiz-option-emoji{ transform:scale(1.15) rotate(-4deg); }
.kv-quiz-option:active{ transform:translateY(-1px) scale(.98); }
@media (max-width:640px){ .kv-quiz-options{ grid-template-columns:repeat(2,1fr); } }
.kv-quiz-back{ background:none; border:none; color:var(--c-text-muted); font-size:13px; margin-top:22px; text-decoration:underline; cursor:pointer; }
.kv-quiz-result-products{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:20px; margin:26px 0; text-align:left; }
.kv-quiz-loading{ color:var(--c-text-muted); grid-column:1/-1; text-align:center; }

/* ---- « K-Vital en chiffres » (bloc kvital/stats) ---- */
.kv-stats-panel{
  position:relative; isolation:isolate; overflow:hidden; color:#fff;
  padding:clamp(28px,4vw,46px) clamp(18px,4vw,48px);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-lg);
  background:
    radial-gradient(90% 130% at 0% 0%, rgba(15,138,150,.9) 0%, transparent 58%),
    radial-gradient(70% 120% at 100% 100%, rgba(200,162,74,.30) 0%, transparent 60%),
    var(--c-primary-dark);
}
/* Sceau cacher en filigrane : la signature de la marque, sans bruit. */
.kv-stats-panel__seal{ position:absolute; right:-34px; bottom:-46px; z-index:-1; --seal-h:230px; color:#fff; opacity:.055; }
.kv-stats-head{ text-align:center; max-width:640px; margin:0 auto clamp(22px,3vw,34px); }
.kv-stats-head h2{ margin:0; color:#fff; font-size:clamp(25px,3.2vw,34px); line-height:1.14; text-wrap:balance; }
.kv-stats-head p{ margin:10px 0 0; color: rgba(255,255,255,.74); }
.kv-stats-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); }
.kv-stat + .kv-stat{ border-left:1px solid rgba(255,255,255,.14); }
.kv-stat__inner{
  position:relative; height:100%; display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:14px 12px 16px; margin:0 8px; text-align:center; color:inherit;
  border-radius: var(--radius-md); transition: background .25s ease;
}
a.kv-stat__inner:hover, a.kv-stat__inner:focus-visible{ background: rgba(255,255,255,.07); color:#fff; }
.kv-stat__icon{
  width:48px; height:48px; margin-bottom:4px; border-radius:50%; display:grid; place-items:center;
  color: var(--c-gold); background: rgba(200,162,74,.14); box-shadow: inset 0 0 0 1px rgba(200,162,74,.38);
  transition: transform .35s cubic-bezier(.34,1.56,.64,1);
}
.kv-stat__icon svg{ width:22px; height:22px; }
a.kv-stat__inner:hover .kv-stat__icon{ transform:translateY(-3px) scale(1.06); }
.kv-stat-number{
  font-family: var(--font-heading); font-weight:700; font-size:clamp(34px,4vw,50px); line-height:1;
  color:#fff; font-variant-numeric: tabular-nums lining-nums; white-space:nowrap;
}
.kv-stat-label{ font-size:14px; line-height:1.35; color: rgba(255,255,255,.78); }
.kv-stats-panel .kv-stars{
  font-size:13px;
  background: linear-gradient(90deg, var(--c-gold) var(--kv-rate,100%), rgba(255,255,255,.22) var(--kv-rate,100%));
}
.kv-stat__go{
  position:absolute; top:12px; right:12px; color: var(--c-gold);
  opacity:0; transform:translateX(-4px); transition: opacity .2s ease, transform .2s ease;
}
.kv-stat__go svg{ width:16px; height:16px; }
a.kv-stat__inner:hover .kv-stat__go, a.kv-stat__inner:focus-visible .kv-stat__go{ opacity:1; transform:none; }
@media (max-width:720px){
  .kv-stats-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .kv-stat + .kv-stat{ border-left:0; }
  .kv-stat:nth-child(even){ border-left:1px solid rgba(255,255,255,.14); }
  .kv-stat:nth-child(n+3){ border-top:1px solid rgba(255,255,255,.14); }
  .kv-stat__inner{ margin:0; padding:16px 6px; }
  .kv-stat__icon{ width:40px; height:40px; }
  .kv-stat__icon svg{ width:19px; height:19px; }
  .kv-stat-number{ font-size:32px; }
  .kv-stat-label{ font-size:13px; }
  .kv-stat__go{ display:none; }
}
@media (prefers-reduced-motion:reduce){ .kv-stat__icon, .kv-stat__go{ transition:none; } }

/* Homepage/blog/contact quiz teaser banner */
/* Bandeau quiz (haut de page)
   Reprend la scène marine du hero pour faire le lien visuel, et montre trois
   produits réels : c'est ce que le quiz recommande, autant le donner à voir. */
.kv-quiz-strip{
  position:relative; isolation:isolate; overflow:hidden;
  display:flex; align-items:center; gap:clamp(16px,2.2vw,28px);
  padding:24px clamp(22px,2.6vw,32px);
  border-radius:22px; color:#fff;
  border:1px solid rgba(230,201,138,.26);
  background:#05343a;
  box-shadow:0 14px 40px rgba(3,32,36,.20);
  transition:box-shadow .3s ease, transform .3s cubic-bezier(.22,1,.36,1), border-color .3s ease;
}
.kv-quiz-strip:hover{
  transform:translateY(-3px);
  box-shadow:0 20px 52px rgba(3,32,36,.30);
  border-color:rgba(230,201,138,.5);
}
.kv-quiz-strip__scene{
  position:absolute; inset:0; z-index:-1;
  background-size:cover; background-position:74% 26%;
  opacity:.42;
  transition:transform .6s cubic-bezier(.22,1,.36,1);
}
.kv-quiz-strip:hover .kv-quiz-strip__scene{ transform:scale(1.05); }
/* Voile : sans lui, le texte passe sur les zones claires de la scène. */
.kv-quiz-strip::before{
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(96deg, rgba(4,42,47,.94) 0%, rgba(4,42,47,.80) 46%, rgba(4,42,47,.55) 78%, rgba(4,42,47,.72) 100%);
}

.kv-quiz-strip__badge{
  flex-shrink:0; width:52px; height:52px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--c-gold);
  background:rgba(230,201,138,.10);
  border:1px solid rgba(230,201,138,.42);
  box-shadow:0 0 0 6px rgba(230,201,138,.06);
  transition:transform .35s cubic-bezier(.22,1,.36,1);
}
.kv-quiz-strip__badge svg{ width:24px; height:24px; }
.kv-quiz-strip:hover .kv-quiz-strip__badge{ transform:rotate(28deg); }

.kv-quiz-strip__text{ display:flex; flex-direction:column; gap:4px; flex:0 1 auto; min-width:0; }
.kv-quiz-strip__text strong{
  font-family:var(--font-heading); font-weight:600; font-size:clamp(18px,1.6vw,21px); line-height:1.22;
}
.kv-quiz-strip__text span{ font-size:14px; line-height:1.5; color:#e2f5f6; }

/* Trois produits qui se chevauchent : rend concret ce que le quiz renvoie. */
.kv-quiz-strip__thumbs{ display:flex; flex-shrink:0; }
.kv-quiz-strip .kv-quiz-strip__thumbs img{
  width:58px; height:58px; border-radius:50%; object-fit:cover;
  border:2px solid rgba(255,255,255,.88);
  box-shadow:0 4px 14px rgba(3,32,36,.34);
  transition:transform .35s cubic-bezier(.22,1,.36,1);
}
.kv-quiz-strip .kv-quiz-strip__thumbs img + img{ margin-left:-18px; }
.kv-quiz-strip:hover .kv-quiz-strip__thumbs img:nth-child(1){ transform:translateX(-7px); }
.kv-quiz-strip:hover .kv-quiz-strip__thumbs img:nth-child(3){ transform:translateX(7px); }

.kv-quiz-strip__cta{
  flex-shrink:0; margin-left:auto; display:inline-flex; align-items:center; gap:9px;
  height:44px; padding:0 22px; border-radius:999px;
  background:var(--c-gold); color:#0a2c31;
  font-weight:600; font-size:14.5px; white-space:nowrap;
  transition:background .25s ease;
}
.kv-quiz-strip__cta svg{ width:17px; height:17px; transition:transform .3s cubic-bezier(.22,1,.36,1); }
.kv-quiz-strip:hover .kv-quiz-strip__cta{ background:#efd9a4; }
.kv-quiz-strip:hover .kv-quiz-strip__cta svg{ transform:translateX(4px); }

@media (max-width:1100px){ .kv-quiz-strip__thumbs{ display:none; } }
@media (max-width:760px){
  .kv-quiz-strip{ flex-wrap:wrap; gap:16px; padding:22px; border-radius:18px; }
  .kv-quiz-strip__text{ flex:1 1 100%; order:2; }
  .kv-quiz-strip__badge{ order:1; }
  .kv-quiz-strip__cta{ order:3; width:100%; margin-left:0; justify-content:center; }
}
@media (prefers-reduced-motion: reduce){
  .kv-quiz-strip,
  .kv-quiz-strip__scene,
  .kv-quiz-strip__badge,
  .kv-quiz-strip__thumbs img,
  .kv-quiz-strip__cta svg{ transition:none; }
  .kv-quiz-strip:hover{ transform:none; }
  .kv-quiz-strip:hover .kv-quiz-strip__scene,
  .kv-quiz-strip:hover .kv-quiz-strip__badge,
  .kv-quiz-strip:hover .kv-quiz-strip__thumbs img,
  .kv-quiz-strip:hover .kv-quiz-strip__cta svg{ transform:none; }
}

.kv-quiz-teaser{
  background: linear-gradient(120deg, var(--c-primary) 0%, var(--c-primary-dark) 100%);
  border-radius: var(--radius-lg); color:#fff; padding:44px; text-align:center;
}
.kv-quiz-teaser h2{ color:#fff; font-size:26px; margin-bottom:10px; }
.kv-quiz-teaser p{ color:#cfe9ea; margin-bottom:22px; }

/* ---- Quantity tiers ("achat par lot") ---- */
.kv-qty-tiers{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px 12px; margin:22px 0; }
.kv-qty-tier{
  position:relative;
  display:flex; flex-direction:column;
  border-radius: var(--radius-md);
  border:1.5px solid var(--c-border); background:#fff;
  text-align:center; width:100%; overflow:visible; margin-top:11px;
  transition: border-color .2s, box-shadow .2s, transform .15s;
}
.kv-qty-tier:hover{ border-color: var(--kv-tier-accent, var(--c-primary)); transform: translateY(-1px); }
.kv-qty-tier.active{ border-color: var(--kv-tier-accent, var(--c-primary)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--kv-tier-accent, var(--c-primary)) 22%, transparent); }
/* The anchor/"recommended" tier stays visibly marked even when another
   tier is selected — a permanent tint + ribbon, not just a hover state. */
.kv-qty-tier.recommended{
  border-color: var(--kv-tier-accent, var(--c-primary));
  background: color-mix(in srgb, var(--kv-tier-accent, var(--c-primary)) 6%, #fff);
}
.kv-qty-tier.recommended.active{ box-shadow: 0 0 0 3px color-mix(in srgb, var(--kv-tier-accent, var(--c-primary)) 30%, transparent); }
.kv-qty-tier-ribbon{
  position:absolute; top:-11px; left:50%; transform:translateX(-50%);
  background: var(--c-gold); color:#fff; font-size:10.5px; font-weight:700;
  padding:4px 12px; border-radius:999px; white-space:nowrap; z-index:2;
  box-shadow: 0 2px 6px rgba(0,0,0,.15);
}
.kv-qty-tier-flag{
  display:block; background: var(--kv-tier-accent, var(--c-primary)); color:#fff;
  font-size:12px; font-weight:700; padding:7px 10px 9px;
  clip-path: polygon(0 0, 100% 0, 100% 78%, 50% 100%, 0 78%);
}
.kv-qty-tier-body{ display:flex; flex-direction:column; align-items:center; gap:6px; padding:16px 14px 18px; }
.kv-qty-tier-radio{
  width:18px; height:18px; border-radius:50%; border:2px solid var(--c-border);
  flex-shrink:0; position:relative; transition: border-color .2s;
}
.kv-qty-tier.active .kv-qty-tier-radio{ border-color: var(--kv-tier-accent, var(--c-primary)); }
.kv-qty-tier.active .kv-qty-tier-radio::after{
  content:''; position:absolute; inset:3px; border-radius:50%; background: var(--kv-tier-accent, var(--c-primary));
}
.kv-qty-tier-badge{
  background: var(--c-gold); color:#fff; font-size:10.5px; font-weight:700;
  padding:3px 8px; border-radius:999px; white-space:nowrap;
}
.kv-qty-tier-subtitle{ font-size:12px; color:var(--c-text-muted); line-height:1.4; }
.kv-qty-tier-price{ font-family: var(--font-heading); font-weight:700; font-size:17px; color:var(--c-text); white-space:nowrap; }
@media (max-width:600px){
  /* Grid items default to a content-based min-width, which let a long
     subtitle force each tier wider than its 1fr share and overflow the
     row. min-width:0 lets them actually shrink to fit; a single column
     also just reads better than two squeezed tiers on a phone. */
  .kv-qty-tiers{ grid-template-columns:1fr; gap:10px; }
  .kv-qty-tier{ min-width:0; }
}
@media (max-width:420px){
  .kv-qty-tier-price{ font-size:14.5px; }
  .kv-qty-tier-badge{ font-size:9.5px; padding:3px 6px; }
}

/* ---- "Comment l'intégrer à votre routine" (usage photo + flat guide) ---- */
.kv-usage-grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:24px; }
.kv-usage-photo, .kv-usage-flat{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-sm); }
.kv-usage-photo img, .kv-usage-flat img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:720px){ .kv-usage-grid{ grid-template-columns:1fr; } }

/* ---- Payment trust badges ---- */
.kv-payment-badges{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:18px 0; }
.kv-payment-badge{
  display:flex; align-items:center; gap:6px;
  padding:7px 14px; border-radius:999px; border:1px solid var(--c-border);
  font-size:12.5px; font-weight:600; color:var(--c-text-muted); background:#fff;
}
.kv-payment-badge svg{ width:16px; height:16px; color:var(--c-primary); flex-shrink:0; }

/* ---- Product page framed sections ---- */
.kv-product-box{
  background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md);
  padding:24px 26px; margin-bottom:22px;
}
.kv-product-box--teal{ background: var(--c-primary-soft); border-color: var(--c-primary-light); }
.kv-product-box--gold{ background:#fdf8ee; border-color:#f0e2bc; }
.kv-product-box h3{ font-size:16px; margin-bottom:12px; display:flex; align-items:center; gap:8px; }
.kv-product-box h3 svg{ width:20px; height:20px; color:var(--c-primary); }
.kv-product-box ul{ display:flex; flex-direction:column; gap:8px; }
.kv-product-box li{ display:flex; gap:9px; font-size:14px; color:var(--c-text); align-items:flex-start; }
.kv-product-box li svg{ width:16px; height:16px; color:var(--c-primary); flex-shrink:0; margin-top:2px; }
.kv-product-boxes-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:30px 0; }
@media (max-width:700px){ .kv-product-boxes-grid{ grid-template-columns:1fr; } }

/* ---- Rich product page: hero extras ---- */
.kv-product-badge{
  display:inline-block; padding:6px 16px; border-radius:999px;
  border:1.5px solid var(--c-primary); color: var(--c-primary-dark);
  font-size:12px; font-weight:700; margin-bottom:14px;
}
.kv-product-badge--soon{ background: var(--c-gold); border-color: var(--c-gold); color:#fff; }
.kv-quick-checklist{ display:flex; flex-direction:column; gap:8px; margin:16px 0 20px; }
.kv-quick-checklist li{ display:flex; gap:9px; align-items:flex-start; font-size:14.5px; color:var(--c-text); font-weight:500; }
.kv-quick-checklist svg{ width:18px; height:18px; color: var(--c-primary); flex-shrink:0; margin-top:2px; }
.kv-price-subtitle{ font-size:13px; color:var(--c-text-muted); margin-top:-14px; margin-bottom:16px; }
.woocommerce div.product form.cart{ margin-bottom:10px; }
.kv-buy-now{ margin-bottom:6px; }
.kv-quick-icons{ display:flex; flex-wrap:wrap; gap:16px; margin:14px 0; }
.kv-quick-icons span{ display:flex; align-items:center; gap:7px; font-size:13px; font-weight:600; color:var(--c-text-muted); }
.kv-quick-icons svg{ width:17px; height:17px; color: var(--c-primary); flex-shrink:0; }

/* ---- 300 Daltons infographic ---- */
.kv-daltons-box{
  display:grid; grid-template-columns:1.3fr 1fr; gap:40px; align-items:center;
  background:#fff; border-radius: var(--radius-lg); padding:44px; border:1px solid var(--c-primary-light);
  position:relative; overflow:visible;
}
.kv-daltons-box[style*="--kv-decor-img"]{ padding-top:120px; }
.kv-daltons-box[style*="--kv-decor-img"]::before{
  content:""; position:absolute; top:-90px; right:20px; width:280px; height:150px;
  background-image:var(--kv-decor-img); background-position:center; background-repeat:no-repeat; background-size:contain;
  pointer-events:none;
}
@media (max-width:1100px){ .kv-daltons-box[style*="--kv-decor-img"]{ padding-top:44px; } .kv-daltons-box[style*="--kv-decor-img"]::before{ display:none; } }
.kv-daltons-text h2{ font-size:26px; margin-bottom:8px; }
.kv-daltons-text > p{ color:var(--c-text-muted); margin-bottom:24px; }
.kv-daltons-compare{ display:flex; align-items:center; gap:18px; }
.kv-daltons-chain{ flex:1; background: var(--c-primary-soft); border-radius: var(--radius-md); padding:18px; text-align:center; }
.kv-daltons-chain--bad{ background:#f5f5f3; }
.kv-chain-dots{ display:flex; justify-content:center; gap:4px; margin-bottom:12px; flex-wrap:wrap; }
.kv-chain-dots span{ width:10px; height:10px; border-radius:50%; background: var(--c-primary); }
.kv-daltons-chain--bad .kv-chain-dots span{ background:#9a9a92; width:8px; height:8px; }
.kv-daltons-chain strong{ display:block; font-family: var(--font-heading); font-size:15px; color: var(--c-primary-dark); }
.kv-daltons-chain--bad strong{ color:#6b6b62; }
.kv-daltons-chain small{ display:block; font-size:11.5px; color:var(--c-text-muted); margin-top:4px; }
.kv-daltons-vs{ font-weight:700; color:var(--c-text-muted); font-size:13px; flex-shrink:0; }
.kv-daltons-stats{ display:flex; flex-direction:column; gap:18px; align-items:center; justify-content:center; }
.kv-daltons-stat{
  width:100%; text-align:center; background: var(--c-primary); color:#fff;
  border-radius: var(--radius-md); padding:18px;
}
.kv-daltons-stat strong{ display:block; font-family: var(--font-heading); font-size:22px; }
.kv-daltons-stat span{ font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; opacity:.9; }
@media (max-width:800px){ .kv-daltons-box{ grid-template-columns:1fr; } }

/* ---- Certification badges row (ingredient section) ---- */
.kv-cert-badges{ display:flex; gap:14px; margin-top:26px; flex-wrap:wrap; }
.kv-cert-badge{
  padding:10px 16px; border:1.5px solid var(--c-border); border-radius: var(--radius-sm);
  font-size:12.5px; font-weight:700; color: var(--c-text); background: var(--c-primary-soft);
}

/* ---- Flavor / highlight banner (full-width tinted, per-product accent) ---- */
.kv-flavor-banner{
  display:grid; grid-template-columns:1fr 1.3fr; align-items:stretch; overflow:hidden;
  border-radius: var(--radius-lg);
  background: linear-gradient(120deg, var(--kv-flavor-accent), color-mix(in srgb, var(--kv-flavor-accent) 60%, #000 20%));
  color:#fff;
}
.kv-flavor-banner-media{ background:rgba(255,255,255,.08); min-height:200px; }
.kv-flavor-banner-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.kv-flavor-banner-body{ padding:32px 36px; }
.kv-flavor-banner-body h3{ color:#fff; font-size:22px; margin:0 0 18px; }
.kv-flavor-banner-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.kv-flavor-banner-list li{ display:flex; align-items:center; gap:10px; font-size:14.5px; }
.kv-flavor-banner-list svg{ flex-shrink:0; background:rgba(255,255,255,.2); border-radius:50%; padding:3px; width:22px; height:22px; }
@media (max-width:760px){ .kv-flavor-banner{ grid-template-columns:1fr; } .kv-flavor-banner-media{ min-height:160px; } }

/* ---- Routine steps ---- */
.kv-routine-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.kv-routine-step{ background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md); padding:24px; position:relative; }
.kv-routine-icon{ width:72px; height:72px; border-radius:50%; overflow:hidden; background: var(--c-primary-light); margin-bottom:12px; }
.kv-routine-icon img{ width:100%; height:100%; object-fit:cover; }
.kv-routine-num{
  width:26px; height:26px; border-radius:50%; background: var(--c-primary); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:700; font-family:var(--font-heading); font-size:13px;
  margin-bottom:12px;
}
.kv-routine-step:has(.kv-routine-icon) .kv-routine-num{
  position:absolute; top:16px; left:80px; margin-bottom:0; box-shadow:0 0 0 3px #fff;
}
.kv-routine-step h3{ font-size:15px; margin-bottom:6px; }
.kv-routine-step p{ font-size:13.5px; color:var(--c-text-muted); margin:0; }
.kv-routine-tip{
  background: var(--c-primary); color:#fff; border-radius: var(--radius-md); padding:24px;
  display:flex; flex-direction:column; align-items:flex-start; gap:8px;
}
.kv-routine-tip svg{ width:22px; height:22px; }
.kv-routine-tip strong{ font-size:14px; }
.kv-routine-tip span{ font-size:13px; opacity:.92; line-height:1.4; }
@media (max-width:900px){ .kv-routine-grid{ grid-template-columns:repeat(2,1fr); } }

/* ---- Science stats ---- */
.kv-science-split{ display:grid; grid-template-columns:.9fr 1.1fr; gap:50px; align-items:center; }
.kv-science-visual img{ width:100%; height:auto; border-radius: var(--radius-lg); }
.kv-science-grid--stacked{ grid-template-columns:1fr; gap:14px; }
.kv-science-grid--stacked .kv-science-stat{ display:flex; align-items:center; gap:16px; text-align:left; padding:16px 20px; }
.kv-science-grid--stacked .kv-science-stat .icon{ margin:0; flex-shrink:0; }
.kv-science-grid--stacked .kv-science-stat strong{ font-size:20px; }
@media (max-width:900px){ .kv-science-split{ grid-template-columns:1fr; } }
.kv-science-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.kv-science-stat{ text-align:center; padding:24px; border:1px solid var(--c-border); border-radius: var(--radius-md); }
.kv-science-stat .icon{
  width:46px; height:46px; margin:0 auto 12px; background: var(--c-primary-light); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color: var(--c-primary);
}
.kv-science-stat strong{ display:block; font-family:var(--font-heading); font-size:24px; color: var(--c-primary-dark); }
.kv-science-stat span{ font-size:12.5px; color:var(--c-text-muted); }
.kv-science-footnote{ text-align:center; font-size:12px; color:var(--c-text-muted); margin-top:20px; }
@media (max-width:700px){ .kv-science-grid{ grid-template-columns:1fr; } }

/* ---- Actives grid ("synergie d'actifs") ---- */
.kv-actives-wrap{ display:grid; grid-template-columns:1.3fr 1fr; gap:44px; align-items:center; }
.kv-actives-wrap .kv-actives-grid{ grid-template-columns:repeat(2,1fr); }
.kv-actives-orbit{ position:relative; width:320px; height:320px; margin:0 auto; }
.kv-actives-orbit::before{
  content:''; position:absolute; inset:10px; border-radius:50%; z-index:0;
  background-image: var(--kv-orbit-bg, none); background-size:cover; background-position:center;
  opacity:.16; filter:blur(3px) saturate(1.1);
}
.kv-orbit-svg{ position:absolute; inset:0; width:100%; height:100%; z-index:1; }
.kv-orbit-center{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:76px; height:76px; border-radius:50%;
  background:linear-gradient(135deg, var(--c-primary), var(--c-primary-dark));
  display:flex; align-items:center; justify-content:center; box-shadow: var(--shadow-md); z-index:2;
}
.kv-orbit-center--product{ background:#fff; border:3px solid #fff; box-shadow: var(--shadow-lg); padding:6px; }
.kv-orbit-center--product img{ width:100%; height:100%; object-fit:contain; }
.kv-orbit-node{
  position:absolute; border-radius:50%; overflow:hidden;
  border:3px solid #fff; box-shadow: var(--shadow-sm); z-index:2; background: var(--c-primary-light);
}
.kv-orbit-node img{ width:100%; height:100%; object-fit:cover; }

/* ---- Benefit-icon orbit variant: vivid tinted backdrop, solid-color icon nodes ---- */
.kv-actives-orbit--benefit::before{
  background-image:none;
  background:radial-gradient(circle, color-mix(in srgb, var(--kv-orbit-accent) 22%, transparent) 0%, color-mix(in srgb, var(--kv-orbit-accent) 8%, transparent) 55%, transparent 75%);
  opacity:1; filter:none;
}
.kv-orbit-node--benefit{
  display:flex; align-items:center; justify-content:center;
  border:3px solid #fff; box-shadow: var(--shadow-md);
}
.kv-orbit-label{
  position:absolute; text-align:center; font-size:11px; font-weight:700; line-height:1.25;
  color: var(--c-text); z-index:2; pointer-events:none;
}
@media (max-width:900px){ .kv-actives-wrap{ grid-template-columns:1fr; } .kv-actives-orbit{ margin-top:20px; } }
.kv-actives-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.kv-active-card{
  background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md);
  padding:20px; text-align:center;
}
.kv-active-name{ display:block; font-family: var(--font-heading); font-weight:600; font-size:15px; color: var(--c-text); margin-bottom:4px; }
.kv-active-dose{ display:block; font-size:13px; color: var(--c-primary-dark); font-weight:600; }
.kv-active-icon{ width:64px; height:64px; margin:0 auto 12px; border-radius:50%; overflow:hidden; background: var(--c-primary-light); }
.kv-active-icon img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:800px){ .kv-actives-grid{ grid-template-columns:repeat(2,1fr); } }

/* ---- Nutrition facts table (real HTML table, not an image) ---- */
.kv-nutrition-table{ width:100%; border-collapse:collapse; background:#fff; border-radius: var(--radius-md); overflow:hidden; box-shadow: var(--shadow-sm); }
.kv-nutrition-table th, .kv-nutrition-table td{ padding:12px 18px; text-align:right; font-size:14px; border-bottom:1px solid var(--c-border); }
.kv-nutrition-table th:first-child, .kv-nutrition-table td:first-child{ text-align:left; font-weight:600; color: var(--c-text); }
.kv-nutrition-table thead th{ font-size:12.5px; text-transform:uppercase; letter-spacing:.04em; color: var(--c-text-muted); font-weight:600; background: var(--c-primary-light); }
.kv-nutrition-table tr:last-child td{ border-bottom:none; }
.kv-comparison-table th:not(:first-child), .kv-comparison-table td:not(:first-child){ text-align:center; }
.kv-comparison-table .kv-comparison-yes{ color:#fff; font-weight:700; }
.kv-comparison-table tr td.kv-comparison-yes{ background: var(--c-primary); }
.kv-comparison-table .kv-comparison-unknown{ color: var(--c-text-muted); font-weight:700; }
.kv-nutrition-sub td:first-child{ font-weight:400; color: var(--c-text-muted); padding-left:32px; }
.kv-nutrition-footnote{ font-size:13px; color: var(--c-text-muted); margin-top:16px; text-align:center; }

/* ---- Warning / safety callout ---- */
.kv-warning-box{
  display:flex; align-items:center; gap:12px;
  background:#fdf6e3; border:1px solid #f0dfa0; color:#7a5c00;
  border-radius: var(--radius-md); padding:14px 20px; font-size:13.5px; font-weight:500;
  max-width:900px; margin:0 auto;
}
.kv-warning-box svg{ width:22px; height:22px; flex-shrink:0; color:#c99b1e; }

/* ---- Blog archive grid ---- */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.blog-card{ background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md); overflow:hidden; transition: box-shadow .2s, transform .2s; display:flex; flex-direction:column; }
.blog-card:hover{ box-shadow: var(--shadow-sm); transform: translateY(-3px); }
.blog-card-thumb{ display:block; aspect-ratio:16/10; overflow:hidden; background: var(--c-primary-light); }
.blog-card-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.blog-card-thumb-fallback{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; color: var(--c-primary); }
.blog-card-body{ padding:20px 22px 24px; display:flex; flex-direction:column; gap:8px; flex:1; }
.blog-card-body h2{ font-size:17px; line-height:1.35; margin:0; }
.blog-card-body h2 a{ color: var(--c-text); }
.blog-card-body p{ font-size:13.5px; color: var(--c-text-muted); margin:0; flex:1; }
.blog-card-link{ font-size:13px; font-weight:700; color: var(--c-primary-dark); margin-top:4px; }
.kv-pagination{ display:flex; justify-content:center; margin-top:48px; }
.kv-pagination .nav-links{ display:flex; gap:8px; }
.kv-pagination .page-numbers{
  min-width:38px; height:38px; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--c-border); border-radius: var(--radius-sm); font-size:14px; font-weight:600; color: var(--c-text);
  padding:0 10px;
}
.kv-pagination .page-numbers.current{ background: var(--c-primary); color:#fff; border-color: var(--c-primary); }
.kv-pagination .page-numbers:hover:not(.current){ background: var(--c-primary-light); }
@media (max-width:1024px){ .blog-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .blog-grid{ grid-template-columns:1fr; } }

/* ---- Cart: free-shipping gauge ---- */
.kv-shipping-gauge{
  background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md);
  padding:20px 24px; margin-bottom:28px;
}
.kv-shipping-gauge p{ margin:0 0 12px; font-size:14.5px; color: var(--c-text); text-align:center; }
.kv-shipping-gauge p strong{ color: var(--c-primary-dark); }
.kv-shipping-gauge-done{ color: var(--c-primary-dark) !important; font-weight:700; }
.kv-shipping-gauge-track{ height:8px; background: var(--c-primary-light); border-radius:999px; overflow:hidden; }
.kv-shipping-gauge-fill{ height:100%; background: linear-gradient(90deg, var(--c-primary) 0%, var(--c-gold) 100%); border-radius:999px; transition: width .4s ease; }
.kv-cart-drawer-gauge{ padding:14px 16px; margin-bottom:16px; }
.kv-cart-drawer-gauge p{ font-size:13px; margin-bottom:8px; }

/* ---- Cart drawer: single upsell/cross-sell nudge ---- */
.kv-cart-nudge{
  background: color-mix(in srgb, var(--kv-tier-accent, var(--c-primary)) 7%, #fff);
  border:1px solid var(--kv-tier-accent, var(--c-primary)); border-radius: var(--radius-md);
  padding:16px; margin-bottom:16px;
}
.kv-cart-nudge-title{ margin:0 0 4px; font-weight:700; font-size:14px; color: var(--c-text); }
.kv-cart-nudge-text{ margin:0 0 12px; font-size:13px; color: var(--c-text-muted); }
.kv-cart-nudge-product{ display:flex; gap:10px; align-items:center; margin-bottom:12px; }
.kv-cart-nudge-product .kv-cart-drawer-thumb img{ width:48px; height:48px; object-fit:cover; border-radius:var(--radius-sm); display:block; }
.kv-cart-nudge-product .kv-cart-drawer-name{ font-size:13.5px; font-weight:600; color: var(--c-text); display:block; }
.kv-cart-nudge-product .kv-cart-drawer-price{ font-size:12.5px; color: var(--kv-tier-accent, var(--c-primary-dark)); font-weight:700; }
.kv-cart-nudge .btn{ background: var(--kv-tier-accent, var(--c-primary)); border-color: var(--kv-tier-accent, var(--c-primary)); }
.kv-thankyou-upsell{ max-width:420px; margin:28px 0; padding:22px; }
.kv-thankyou-upsell .kv-cart-nudge-title{ font-size:16px; }
.kv-thankyou-upsell .kv-cart-nudge-product .kv-cart-drawer-thumb img{ width:64px; height:64px; }
.kv-thankyou-upsell .kv-cart-nudge-product .kv-cart-drawer-name{ font-size:15px; }

.kv-reabo-optin{
  display:flex; gap:10px; align-items:flex-start; cursor:pointer;
  background: var(--c-primary-soft); border-radius: var(--radius-md);
  padding:12px 14px; margin-bottom:16px;
}
.kv-reabo-optin input{ margin-top:3px; flex-shrink:0; width:16px; height:16px; accent-color: var(--c-primary); cursor:pointer; }
.kv-reabo-optin strong{ display:block; font-size:13px; color: var(--c-text); }
.kv-reabo-optin small{ display:block; font-size:11.5px; color: var(--c-text-muted); margin-top:2px; line-height:1.4; }

/* ---- Cart: cross-sell block (WooCommerce's native cross-sells, restyled) ---- */
.cross-sells{ margin-top:48px; padding-top:36px; border-top:1px solid var(--c-border); }
.cross-sells h2{ font-size:22px; margin-bottom:20px; text-align:center; }
.cross-sells ul.products{ grid-template-columns:repeat(auto-fit, minmax(220px,1fr)) !important; }

/* ---- "Où nous trouver" store/pharmacy finder ---- */
.kv-store-toggle{ display:flex; justify-content:center; gap:10px; margin-bottom:36px; flex-wrap:wrap; }
.kv-store-toggle-btn{
  padding:12px 22px; border-radius:999px; border:1.5px solid var(--c-border); background:#fff;
  font-size:14px; font-weight:700; color: var(--c-text-muted); transition: all .2s;
}
.kv-store-toggle-btn span{ opacity:.7; font-weight:600; }
.kv-store-toggle-btn.active{ background: var(--c-primary); border-color: var(--c-primary); color:#fff; }
.kv-store-toggle-btn.active span{ opacity:.85; }
.kv-store-toggle-btn:not(.active):hover{ border-color: var(--c-primary); color: var(--c-primary-dark); }

.kv-store-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.kv-store-grid[hidden]{ display:none; }
.kv-store-card{
  background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-lg);
  padding:26px 24px; position:relative; transition: box-shadow .25s, transform .25s;
}
.kv-store-card:hover{ box-shadow: var(--shadow-md); transform: translateY(-4px); }
.kv-store-card-top{ display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:12px; }
.kv-store-card-icon{
  width:46px; height:46px; border-radius:50%; background: var(--c-primary-light); color: var(--c-primary);
  display:flex; align-items:center; justify-content:center;
}
.kv-store-card-icon svg{ width:22px; height:22px; }
.kv-store-badge{
  background: var(--c-gold); color:#fff; font-size:11px; font-weight:700; text-transform:uppercase;
  letter-spacing:.04em; padding:4px 10px; border-radius:999px;
}
.kv-store-badge--soon{ background: var(--c-text-muted); }
.kv-store-card h3{ font-size:17px; margin:0 0 12px; }
.kv-store-line{ display:flex; align-items:flex-start; gap:9px; font-size:13.5px; color: var(--c-text-muted); margin:0 0 8px; line-height:1.4; }
.kv-store-line a{ display:flex; align-items:flex-start; gap:9px; color: var(--c-text-muted); }
.kv-store-line a:hover{ color: var(--c-primary-dark); }
.kv-store-line-icon{ width:16px; height:16px; flex-shrink:0; margin-top:1px; color: var(--c-primary); }
.kv-store-line-icon svg{ width:100%; height:100%; }
.kv-store-note{ font-size:12px; color: var(--c-primary-dark); background: var(--c-primary-soft); border-radius: var(--radius-sm); padding:8px 12px; margin:10px 0; }
.kv-store-directions{ margin-top:14px; display:inline-block; }

/* pin-drop entrance for the card icon, triggered by the shared scroll-reveal observer */
@keyframes kv-pin-drop{
  0%{ transform: translateY(-16px) scale(.5); opacity:0; }
  55%{ transform: translateY(3px) scale(1.12); opacity:1; }
  100%{ transform: translateY(0) scale(1); }
}
.kv-store-card.kv-visible .kv-store-card-icon{ animation: kv-pin-drop .6s cubic-bezier(.34,1.56,.64,1) both; }

@media (max-width:1024px){ .kv-store-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .kv-store-grid{ grid-template-columns:1fr; } }

/* ---- "À propos" hub navigation cards ---- */
.kv-hub-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.kv-hub-card{
  display:block; background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-lg);
  padding:30px 26px; transition: box-shadow .25s, transform .25s, border-color .25s; color: var(--c-text);
}
.kv-hub-card:hover{ box-shadow: var(--shadow-md); transform: translateY(-4px); border-color: var(--c-primary-light); }
.kv-hub-card-icon{
  width:52px; height:52px; border-radius:50%; background: var(--c-primary-light); color: var(--c-primary);
  display:flex; align-items:center; justify-content:center; margin-bottom:16px;
}
.kv-hub-card-icon svg{ width:24px; height:24px; }
.kv-hub-card h3{ font-size:18px; margin:0 0 8px; }
.kv-hub-card p{ font-size:13.5px; color: var(--c-text-muted); margin:0 0 14px; line-height:1.5; }
.kv-hub-card-link{ font-size:13px; font-weight:700; color: var(--c-primary-dark); }
@media (max-width:1024px){ .kv-hub-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .kv-hub-grid{ grid-template-columns:1fr; } }

/* ---- Blog article content (imported from Shopify — needs its own typography) ---- */
.kv-post-content{ font-size:16px; color: var(--c-text); line-height:1.75; }
.kv-post-content h2{ font-size:26px; margin:44px 0 16px; color: var(--c-primary-dark); }
.kv-post-content h3{ font-size:20px; margin:32px 0 12px; color: var(--c-primary-dark); }
.kv-post-content p{ margin:0 0 18px; }
.kv-post-content ul, .kv-post-content ol{ margin:0 0 20px; padding-left:22px; }
.kv-post-content li{ margin-bottom:8px; }
.kv-post-content a{ color: var(--c-primary-dark); text-decoration:underline; text-underline-offset:2px; }
.kv-post-content strong{ color: var(--c-text); font-weight:700; }
.kv-post-content blockquote{
  margin:28px 0; padding:18px 24px; background: var(--c-primary-soft); border-left:3px solid var(--c-primary);
  border-radius: 0 var(--radius-md) var(--radius-md) 0; font-style:italic; color: var(--c-text-muted);
}
.kv-post-content img{ border-radius: var(--radius-md); max-width:100%; height:auto; }
.kv-post-content hr{ border:none; border-top:1px solid var(--c-border); margin:36px 0; }

/* Real HTML tables (nutrition facts, comparisons) — style them, don't leave default browser look */
.kv-post-content table{
  width:100%; border-collapse:collapse; margin:24px 0; border-radius: var(--radius-md); overflow:hidden;
  box-shadow: var(--shadow-sm); font-size:14.5px;
}
.kv-post-content th, .kv-post-content td{ padding:12px 16px; text-align:left; border-bottom:1px solid var(--c-border); }
.kv-post-content thead th{ background: var(--c-primary); color:#fff; font-weight:600; }
.kv-post-content tbody tr:nth-child(even){ background: var(--c-primary-soft); }
.kv-post-content tr:last-child td{ border-bottom:none; }

/* Recurring content components from the imported articles (their own mini
   design system) — restyled to match the K-Vital palette instead of the
   unstyled/Shopify look they'd otherwise fall back to. */
.kv-post-content .hero{
  background: linear-gradient(120deg, var(--c-primary-light) 0%, var(--c-primary-soft) 100%);
  border-radius: var(--radius-lg); padding:36px 34px; margin:0 0 32px; text-align:center;
}
.kv-post-content .hero-badge{
  display:table; position:static; background:#fff; color: var(--c-primary-dark); font-size:12px; font-weight:700;
  letter-spacing:.04em; text-transform:uppercase; padding:6px 14px; border-radius:999px; margin:0 auto 14px;
}
.kv-post-content .hero h1{ position:static; font-size:28px; margin:0 0 10px; color: var(--c-primary-dark); }
.kv-post-content .hero-sub, .kv-post-content .hero-inner p{ color: var(--c-text-muted); font-size:15px; margin:0; }
.kv-post-content .hero-divider{ display:none; }
.kv-post-content .zen-div{ display:none; }

.kv-post-content .toc{
  background: var(--c-primary-soft); border-radius: var(--radius-md); padding:24px 28px; margin:0 0 32px;
}
.kv-post-content .toc-title{ font-weight:700; color: var(--c-primary-dark); margin-bottom:10px; font-size:15px; }
.kv-post-content .toc ol{ margin:0; padding-left:20px; columns:2; column-gap:24px; }
.kv-post-content .toc li{ margin-bottom:6px; break-inside:avoid; }
.kv-post-content .toc a{ color: var(--c-text); text-decoration:none; font-size:14px; }
.kv-post-content .toc a:hover{ color: var(--c-primary-dark); text-decoration:underline; }
@media (max-width:640px){ .kv-post-content .toc ol{ columns:1; } }

.kv-post-content .kf-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:28px 0; }
.kv-post-content .kf{ background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md); padding:18px 12px; text-align:center; }
.kv-post-content .kf-num{ font-family: var(--font-heading); font-size:22px; font-weight:700; color: var(--c-primary-dark); }
.kv-post-content .kf-label{ font-size:11.5px; color: var(--c-text-muted); margin-top:4px; line-height:1.35; }
@media (max-width:640px){ .kv-post-content .kf-grid{ grid-template-columns:repeat(2,1fr); } }

.kv-post-content .faq-item{ border:1px solid var(--c-border); border-radius: var(--radius-md); margin-bottom:12px; padding:18px 22px; background:#fff; }
.kv-post-content .faq-q, .kv-post-content .faq-title{ font-weight:700; color: var(--c-primary-dark); margin:0 0 8px; font-size:15px; }
.kv-post-content .faq-a{ color: var(--c-text-muted); font-size:14.5px; margin:0; }

.kv-post-content .callout{
  background: var(--c-primary-soft); border-left:3px solid var(--c-primary); border-radius:0 var(--radius-md) var(--radius-md) 0;
  padding:16px 22px; margin:24px 0;
}
.kv-post-content .callout-label{ font-weight:700; color: var(--c-primary-dark); font-size:12px; text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px; }

.kv-post-content .disclaimer{ background: var(--c-primary-soft); border-radius: var(--radius-md); padding:16px 22px; font-size:13px; color: var(--c-text-muted); margin:28px 0; display:flex; gap:12px; align-items:flex-start; }
.kv-post-content .disclaimer-icon{ flex-shrink:0; }

.kv-post-content .cert-block{ display:flex; gap:16px; flex-wrap:wrap; margin:24px 0; }
.kv-post-content .cert-card{ background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md); padding:16px 20px; flex:1; min-width:180px; }
.kv-post-content .cert-badge{ display:inline-block; background: var(--c-primary-light); color: var(--c-primary-dark); font-size:11px; font-weight:700; padding:4px 10px; border-radius:999px; margin-bottom:8px; }
.kv-post-content .cert-badge.gold{ background: var(--c-gold); color:#fff; }

/* Leftover Shopify icon markup ("Retour au blog" arrow link etc.) — has no
   intrinsic size without Shopify's own theme CSS, so the raw SVG renders huge.
   Constrain to the icon's actual viewBox size. */
.kv-post-content .icon-wrap,
.kv-post-content .svg-wrapper{ display:inline-flex; align-items:center; vertical-align:middle; }
.kv-post-content svg.icon{ width:14px; height:10px; display:inline-block; }
.kv-post-content .article-template__link{ display:inline-flex; align-items:center; gap:6px; color: var(--c-primary-dark); font-weight:600; text-decoration:none; }

/* ---- Blog content: generic component fallback ------------------------
   The blog has dozens of one-off component class names from earlier
   scraped/generated content ( *-grid, *-card, *-box, hero-*, timeline-*,
   resto-*, recipe-*, etc.) that never got a matching rule, so they were
   rendering as plain unstyled text stacked vertically. Rather than a
   bespoke rule per class, these pattern-matched fallbacks give every
   such component a consistent card/grid look site-wide. Specific
   components below (mini-cal, timeline...) still get their own richer
   treatment; this is the safety net under all of them. ------------------ */
.kv-post-content [class*="-grid"]{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:16px; margin:24px 0; }
.kv-post-content [class$="-row"], .kv-post-content [class*="-rows"]{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.kv-post-content [class$="-card"], .kv-post-content [class$="-box"], .kv-post-content [class$="-tile"]{
  background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md); padding:20px 22px;
}
.kv-post-content [class$="-card"] > *:first-child{ margin-top:0; }
.kv-post-content [class*="-card-header"], .kv-post-content [class*="-header"]:not(.kv-post-content-header){ font-weight:700; color: var(--c-primary-dark); margin-bottom:8px; }
.kv-post-content [class$="-name"], .kv-post-content [class$="-title"]:not(h1):not(h2):not(h3){ font-weight:700; color: var(--c-text); display:block; margin-bottom:4px; }
.kv-post-content [class$="-desc"], .kv-post-content [class$="-sub"], .kv-post-content [class$="-label"]{ font-size:13.5px; color: var(--c-text-muted); display:block; }
.kv-post-content [class$="-emoji"], .kv-post-content [class$="-icon"]{ font-size:22px; display:inline-block; margin-bottom:6px; }
.kv-post-content [class*="hero-"]{ display:block; }
.kv-post-content [class*="timeline-item"], .kv-post-content [class*="step"]{
  display:flex; gap:14px; align-items:flex-start; padding:14px 0; border-bottom:1px solid var(--c-border);
}
.kv-post-content [class*="timeline-item"]:last-child, .kv-post-content [class*="-steps"] > *:last-child{ border-bottom:none; }
.kv-post-content [class$="-num"], .kv-post-content [class$="-marker"]{
  flex-shrink:0; width:30px; height:30px; border-radius:50%; background: var(--c-primary); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:13px;
}
.kv-post-content table, .kv-post-content [class*="table"]{ width:100%; border-collapse:collapse; margin:24px 0; }
.kv-post-content [class*="table"] th, .kv-post-content [class*="table"] td{ padding:10px 14px; border-bottom:1px solid var(--c-border); text-align:left; font-size:14px; }
.kv-post-content [class*="quote"]{ font-style:italic; border-left:3px solid var(--c-primary); padding:4px 0 4px 18px; color: var(--c-text-muted); margin:20px 0; }
.kv-post-content [class*="cta-banner"], .kv-post-content [class*="sticky-cta"]{
  background: var(--c-primary-soft); border-radius: var(--radius-md); padding:22px 26px; margin:28px 0; text-align:center;
}
.kv-post-content [class*="divider"]:not(hr){ height:1px; background: var(--c-border); border:none; margin:32px 0; }
.kv-post-content [class^="pill"], .kv-post-content [class*=" pill"], .kv-post-content [class$="-badge"], .kv-post-content [class$="-tag"], .kv-post-content [class$="-chip"]{
  display:inline-block; background: var(--c-primary-light); color: var(--c-primary-dark); font-size:11.5px; font-weight:700;
  padding:3px 10px; border-radius:999px; margin:2px 4px 2px 0;
}
.kv-post-content .shopify-block, .kv-post-content .shopify-app-block{ display:none; } /* leftover scrape junk, never rendered anyway */

/* ---- Blog content: Jewish holiday mini-calendar ---- */
.kv-post-content .mini-cal-wrap{ margin:28px 0; }
.kv-post-content .mini-cal-month{ display:flex; align-items:baseline; gap:10px; margin:20px 0 10px; }
.kv-post-content .mini-cal-month-label{ font-family: var(--font-heading); font-size:17px; font-weight:700; color: var(--c-primary-dark); }
.kv-post-content .mini-cal-month-sub{ font-size:12.5px; color: var(--c-text-muted); }
.kv-post-content .mini-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.kv-post-content .mini-cal-dow{ text-align:center; font-size:11px; font-weight:700; color: var(--c-text-muted); text-transform:uppercase; padding-bottom:4px; }
.kv-post-content .mini-cal-day{
  aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  border-radius:8px; background: var(--c-primary-soft); font-size:12px; gap:2px;
}
.kv-post-content .mini-cal-day-num{ font-weight:700; color: var(--c-text); }
.kv-post-content .mini-cal-day-label{ font-size:9px; font-weight:700; text-transform:uppercase; color: var(--c-primary-dark); }
.kv-post-content .mini-cal-day.shabbat{ box-shadow: inset 0 0 0 2px var(--c-primary); }
.kv-post-content .mini-cal-day.gold{ background: #f5e3b3; }
.kv-post-content .mini-cal-day.wine{ background: #e6c9d1; }
.kv-post-content .mini-cal-day.olive{ background: #d8e3c4; }
.kv-post-content .mini-cal-day.rust{ background: #eccdb8; }
.kv-post-content .mini-cal-day.minor{ background: #ececec; }
.kv-post-content .mini-cal-day.hol-hamoed{ background: #e2ecec; }
.kv-post-content .mini-cal-divider{ height:1px; background: var(--c-border); margin:24px 0; border:none; }
.kv-post-content .mini-cal-legend{ display:flex; flex-wrap:wrap; gap:16px; margin-top:18px; }
.kv-post-content .legend-item{ display:flex; align-items:center; gap:7px; font-size:12.5px; color: var(--c-text-muted); }
.kv-post-content .legend-dot{ width:11px; height:11px; border-radius:50%; }
.kv-post-content .legend-dot.gold{ background:#d9b45a; }
.kv-post-content .legend-dot.wine{ background:#b06a7d; }
.kv-post-content .legend-dot.olive{ background:#8fa568; }
.kv-post-content .legend-dot.rust{ background:#c4805a; }
@media (max-width:480px){ .kv-post-content .mini-cal-day{ font-size:10px; } .kv-post-content .mini-cal-day-label{ font-size:7.5px; } }

/* ---- Blog content: second audit pass — components the generic
   fallback couldn't safely catch (BEM modifiers, bare single-word
   classes, several redundant naming conventions for the same visual
   idea across different articles). ---- */

/* Intro / lead / subtitle / inline emphasis text */
.kv-post-content .lead{ font-size:19px; line-height:1.6; color: var(--c-text); margin:0 0 24px; }
.kv-post-content .subtitle{ color: var(--c-text-muted); font-size:15px; margin:0; }
.kv-post-content .highlight{
  background: var(--c-primary-soft); border-left:3px solid var(--c-primary); border-radius:0 var(--radius-md) var(--radius-md) 0;
  padding:14px 20px; margin:20px 0;
}
.kv-post-content .key-point{
  background: var(--c-primary-dark); color:#fff; border-radius: var(--radius-md); padding:18px 22px; margin:24px 0;
}
.kv-post-content .key-point strong{ color:#fff; }

/* callout-dark / callout-gold variants + their .label span */
.kv-post-content .callout-dark{ background: var(--c-primary-dark); color:#fff; border-radius: var(--radius-md); padding:18px 22px; margin:24px 0; }
.kv-post-content .callout-dark p, .kv-post-content .callout-dark strong{ color:#fff; }
.kv-post-content .callout-gold{ background: #fbf3e2; border:1px solid #ecd9a6; border-radius: var(--radius-md); padding:18px 22px; margin:24px 0; }
.kv-post-content .callout-dark .label, .kv-post-content .callout-gold .label, .kv-post-content .callout .label{
  display:block; font-weight:700; font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px; color: var(--c-gold);
}
.kv-post-content .callout-dark .label{ color:#f0d896; }

/* Info box "ib" family + long-form "info-box" family — both used across
   different articles for the same colored-callout idea, with a shared
   modifier color vocabulary. */
.kv-post-content .ib, .kv-post-content .info-box, .kv-post-content .info{
  background: var(--c-primary-soft); border:1px solid var(--c-border); border-left:4px solid var(--c-primary);
  border-radius: var(--radius-md); padding:16px 20px; margin:22px 0;
}
.kv-post-content .ib-t{ font-weight:700; color: var(--c-primary-dark); margin-bottom:6px; }
.kv-post-content .info-box-title{ font-weight:700; color: var(--c-primary-dark); margin-bottom:6px; display:block; }
.kv-post-content .ib--gold, .kv-post-content .info-box--gold{ border-left-color: var(--c-gold); background:#fbf3e2; }
.kv-post-content .ib--wine, .kv-post-content .info-box--wine{ border-left-color:#b06a7d; background:#f7ecef; }
.kv-post-content .ib--coral, .kv-post-content .info-box--alert{ border-left-color:#d2664f; background:#fbebe7; }
.kv-post-content .ib--indigo, .kv-post-content .info-box--purple{ border-left-color:#5a5fc7; background:#eeeefb; }
.kv-post-content .ib--purple{ border-left-color:#7a5fb0; background:#f2eefa; }
.kv-post-content .ib--ocean{ border-left-color:#2ba6a6; background:#e9f7f6; }
.kv-post-content .ib--zen, .kv-post-content .info-box--green{ border-left-color:#5a8f5a; background:#eef6ea; }
.kv-post-content .info-box--neutral{ border-left-color: var(--c-text-muted); background: var(--c-primary-soft); }

/* Small K-Vital signature block at the end of an article — implemented
   under 3 different class names across the imported articles. */
.kv-post-content .ft, .kv-post-content .footer-brand, .kv-post-content .article-footer{
  text-align:center; padding:18px 10px; margin:20px 0 0; border-top:1px solid var(--c-border);
}
.kv-post-content .ft-b, .kv-post-content .footer-brand{ font-family: var(--font-heading); font-weight:700; color: var(--c-primary-dark); letter-spacing:.04em; }
.kv-post-content .ft-t, .kv-post-content .footer-tagline{ font-size:12.5px; color: var(--c-text-muted); margin-top:2px; }

/* CTA family — many variants (cta, cta-block, cta-section) for the same
   "promote a K-Vital product" box. */
.kv-post-content .cta, .kv-post-content .cta-block, .kv-post-content .cta-section, .kv-post-content .kvc{
  background: linear-gradient(135deg, var(--c-primary-light) 0%, var(--c-primary-soft) 100%);
  border-radius: var(--radius-lg); padding:28px 30px; margin:30px 0; text-align:center;
}
.kv-post-content .cta-eyebrow{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color: var(--c-primary-dark); margin-bottom:8px; }
.kv-post-content .cta-title, .kv-post-content .cta-hl, .kv-post-content .kvc h3{ font-family: var(--font-heading); font-size:22px; color: var(--c-primary-dark); margin:0 0 10px; }
.kv-post-content .cta-txt, .kv-post-content .cta-text, .kv-post-content .cta-note{ color: var(--c-text-muted); font-size:14.5px; margin:0 0 18px; }
.kv-post-content .cta-hebrew{ font-family: var(--font-heading); font-size:20px; direction:rtl; color: var(--c-primary-dark); margin-bottom:4px; }
.kv-post-content .cta-transliteration{ font-style:italic; color: var(--c-text-muted); font-size:13px; margin-bottom:14px; }
.kv-post-content .cta-btn, .kv-post-content .cta-button{
  display:inline-block; background: var(--c-primary); color:#fff !important; font-weight:700; font-size:14px;
  padding:12px 26px; border-radius:999px; text-decoration:none !important; margin-top:4px;
}
.kv-post-content .cta-btn:hover, .kv-post-content .cta-button:hover{ background: var(--c-primary-dark); }

/* Product tile strip (alternate naming: prod-tile/prod-nom/prod-ico/prod-cert) */
.kv-post-content .prod-nom{ font-weight:700; color: var(--c-text); margin-top:6px; }
.kv-post-content .prod-ico{ font-size:26px; }
.kv-post-content .prod-cert{ font-size:11.5px; color: var(--c-primary-dark); margin-top:2px; }

/* Ingredient risk cards (cacherout guides): status colored by a bare
   modifier class alongside .ingredient-card / .case-card-header. */
.kv-post-content .ic-status{ font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.02em; margin-bottom:6px; }
.kv-post-content .ic-name{ font-weight:700; color: var(--c-text); display:block; margin-bottom:4px; }
.kv-post-content .ic-desc{ font-size:13.5px; color: var(--c-text-muted); }
.kv-post-content .ingredient-card.danger, .kv-post-content .ingredient-card.forbidden, .kv-post-content .case-card-header.danger{ border-left:4px solid #c0483a; }
.kv-post-content .ingredient-card.danger .ic-status, .kv-post-content .case-card-header.danger{ color:#c0483a; }
.kv-post-content .ingredient-card.caution, .kv-post-content .case-card-header.caution{ border-left:4px solid var(--c-gold-dark); }
.kv-post-content .ingredient-card.caution .ic-status, .kv-post-content .case-card-header.caution{ color: var(--c-gold-dark); }
.kv-post-content .ingredient-card.safe, .kv-post-content .ingredient-card.allowed, .kv-post-content .case-card-header.allowed{ border-left:4px solid #4c8c5a; }
.kv-post-content .ingredient-card.safe .ic-status, .kv-post-content .ingredient-card.allowed .ic-status, .kv-post-content .case-card-header.allowed{ color:#4c8c5a; }
.kv-post-content .case-card-body{ font-size:14px; color: var(--c-text-muted); }

/* Stats strip (e.g. "30% des adultes...") */
.kv-post-content .stats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:16px; margin:26px 0; text-align:center; }
.kv-post-content .stat{ background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md); padding:20px 14px; }
.kv-post-content .stat .num{ font-family: var(--font-heading); font-size:28px; font-weight:700; color: var(--c-primary-dark); }
.kv-post-content .stat .desc{ font-size:12.5px; color: var(--c-text-muted); margin-top:4px; }

/* Checklists / avoid-lists with colored bullets */
.kv-post-content ul.checklist{ padding-left:0; }
.kv-post-content ul.checklist li{ list-style:none; padding-left:26px; position:relative; margin-bottom:10px; }
.kv-post-content ul.checklist li::before{ content:"✓"; position:absolute; left:0; color:#4c8c5a; font-weight:700; }
.kv-post-content ul.avoid-list{ padding-left:0; }
.kv-post-content ul.avoid-list li{ list-style:none; padding-left:26px; position:relative; margin-bottom:8px; color: var(--c-text-muted); }
.kv-post-content ul.avoid-list li::before{ content:"✕"; position:absolute; left:0; color:#c0483a; font-weight:700; }

/* Commandments grid (Chavouot article) */
.kv-post-content .commandments{ background: var(--c-primary-soft); border-radius: var(--radius-md); padding:22px 24px; margin:26px 0; }
.kv-post-content .cmd-item{ display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--c-border); font-size:14px; }
.kv-post-content .cmd-item:last-child{ border-bottom:none; }

/* Schedule list (candle-lighting times etc.) */
.kv-post-content .schedule-list{ margin:20px 0; }
.kv-post-content .schedule-row{ display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--c-border); flex-wrap:wrap; }
.kv-post-content .schedule-row:last-child{ border-bottom:none; }
.kv-post-content .schedule-dot{ width:8px; height:8px; border-radius:50%; background: var(--c-primary); flex-shrink:0; }
.kv-post-content .schedule-time{ margin-left:auto; font-weight:700; color: var(--c-primary-dark); font-size:13.5px; }

/* Timeline (Tichri calendar recap) — base + parts not already covered
   by the generic timeline-item fallback. */
.kv-post-content .timeline{ margin:24px 0; }
.kv-post-content .timeline-content{ flex:1; }
.kv-post-content .timeline-date{ font-weight:700; color: var(--c-primary-dark); font-size:13.5px; }
.kv-post-content .timeline-date span{ font-weight:400; color: var(--c-text-muted); }
.kv-post-content .timeline-event{ font-size:14px; color: var(--c-text); margin-top:2px; }

/* Recipe boxes */
.kv-post-content .recipe-header{ display:flex; flex-wrap:wrap; gap:14px; margin:16px 0 24px; }
.kv-post-content .recipe-info{ background: var(--c-primary-soft); border-radius: var(--radius-sm); padding:10px 16px; text-align:center; flex:1; min-width:90px; }
.kv-post-content .recipe-info-value{ font-weight:700; color: var(--c-primary-dark); font-size:15px; }
.kv-post-content .ingredients{ margin:16px 0 26px; }
.kv-post-content .ingredient-item{ display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid var(--c-border); font-size:14px; }
.kv-post-content .ingredient-item:last-child{ border-bottom:none; }
.kv-post-content .ingredient-amount{ color: var(--c-text-muted); }
.kv-post-content .instructions ol{ padding-left:20px; }
.kv-post-content .instructions li{ margin-bottom:14px; line-height:1.7; }
.kv-post-content .variations{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; margin:20px 0; }
.kv-post-content .error-number{
  display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%;
  background: var(--c-gold); color:#fff; font-weight:700; font-size:13px; margin-bottom:8px;
}
.kv-post-content .meal-plan{ display:grid; gap:10px; margin:20px 0; }
.kv-post-content .meal-time{ display:block; font-weight:700; color: var(--c-primary-dark); font-size:13px; margin-bottom:3px; }

/* Sidebar aside (ingredient status quick-reference) */
.kv-post-content .sidebar{ background: var(--c-primary-soft); border-radius: var(--radius-md); padding:22px 24px; margin:26px 0; }
.kv-post-content .sidebar-item{ padding:12px 0; border-bottom:1px solid var(--c-border); }
.kv-post-content .sidebar-item:last-child{ border-bottom:none; }
.kv-post-content .sidebar-item h5{ margin:0 0 4px; font-size:14px; color: var(--c-text); }
.kv-post-content .sidebar-cta{ background:#fff; border-radius: var(--radius-sm); padding:14px 16px; margin-top:12px; text-align:center; }
.kv-post-content .sidebar-cta h5{ margin:0 0 6px; }
.kv-post-content .sidebar-cta a{ display:inline-block; margin-top:6px; font-weight:700; color: var(--c-primary-dark); }

/* Toggles / active states on chip-style filters */
.kv-post-content .locale-chip.active, .kv-post-content .mini-tag:hover{ background: var(--c-primary); color:#fff; }

/* Alternate TOC wrapper class names — mirror .toc */
.kv-post-content .toc-section, .kv-post-content .toc-wrap, .kv-post-content .toc-wrapper{
  background: var(--c-primary-soft); border-radius: var(--radius-md); padding:24px 28px; margin:0 0 32px;
}

/* Article hero / header structural aliases — some articles build their
   hero as .article-hero instead of .hero. */
.kv-post-content .article-hero, .kv-post-content .article-header{
  background: linear-gradient(120deg, var(--c-primary-light) 0%, var(--c-primary-soft) 100%);
  border-radius: var(--radius-lg); padding:36px 34px; margin:0 0 32px; text-align:center;
}
.kv-post-content .article-badge{
  display:table; background:#fff; color: var(--c-primary-dark); font-size:12px; font-weight:700;
  letter-spacing:.04em; text-transform:uppercase; padding:6px 14px; border-radius:999px; margin:0 auto 14px;
}
.kv-post-content .article-meta{ display:flex; justify-content:center; gap:16px; flex-wrap:wrap; font-size:13px; color: var(--c-text-muted); margin-top:12px; }
.kv-post-content .meta-bar{ display:flex; justify-content:center; gap:14px; flex-wrap:wrap; font-size:13px; color: var(--c-text-muted); margin-top:10px; }
.kv-post-content .meta-cert{ font-weight:700; color: var(--c-primary-dark); }
.kv-post-content .breadcrumb{ font-size:12.5px; color: var(--c-text-muted); margin-bottom:14px; }
.kv-post-content .breadcrumb a{ color: var(--c-text-muted); text-decoration:none; }
.kv-post-content .breadcrumb a:hover{ text-decoration:underline; }
.kv-post-content .header-section{ text-align:center; margin-bottom:28px; }
.kv-post-content .article-wrap, .kv-post-content .article-body, .kv-post-content .article-content{ display:block; }
.kv-post-content .section-anchor{ scroll-margin-top:90px; }

/* Related-products grid parts */
.kv-post-content .related-card-top{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.kv-post-content .related-card-body{ font-size:13.5px; color: var(--c-text-muted); }
.kv-post-content .related-card-body a{ display:inline-block; margin-top:8px; font-weight:700; }
.kv-post-content .product-card-body{ font-size:13.5px; color: var(--c-text-muted); }
.kv-post-content .product-type{ font-size:12px; color: var(--c-primary-dark); font-weight:700; margin-top:2px; }

/* Product spotlight box */
.kv-post-content .product-spotlight{ background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md); padding:22px 24px; margin:24px 0; }
.kv-post-content .product-spotlight-top{ display:flex; align-items:center; gap:14px; margin-bottom:12px; }
.kv-post-content .product-spotlight-top .icon{ font-size:30px; }

/* Whey teaser ("bientôt disponible") */
.kv-post-content .whey-teaser{ background: var(--c-primary-soft); border:1px dashed var(--c-primary); border-radius: var(--radius-md); padding:20px 22px; margin:24px 0; }
.kv-post-content .whey-badge{ display:inline-block; background: var(--c-gold); color:#fff; font-size:11px; font-weight:700; padding:3px 10px; border-radius:999px; margin-bottom:8px; }

/* Chabad philosophy box (Judaïsme et Santé article) */
.kv-post-content .kv-habad-section{ background: var(--c-primary-soft); border-left:4px solid var(--c-gold); border-radius:0 var(--radius-md) var(--radius-md) 0; padding:20px 24px; margin:26px 0; }

/* Paris districts travel guide (restaurant articles) */
.kv-post-content .district-banner{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; background: var(--c-primary-dark); color:#fff; border-radius: var(--radius-md) var(--radius-md) 0 0; padding:18px 24px; margin:30px 0 0; }
.kv-post-content .district-banner .district-name, .kv-post-content .district-banner .district-sub{ color:#fff; }
.kv-post-content .district-name{ font-family: var(--font-heading); font-size:18px; font-weight:700; }
.kv-post-content .district-sub{ font-size:13px; opacity:.85; }
.kv-post-content .district-stat{ font-size:13px; font-weight:700; text-align:right; }
.kv-post-content .district-stat .vol{ color:#fff; }
.kv-post-content .district-body{ border:1px solid var(--c-border); border-top:none; border-radius:0 0 var(--radius-md) var(--radius-md); padding:20px 24px; margin-bottom:8px; }
.kv-post-content .zone-map{ background: var(--c-primary-soft); border-radius: var(--radius-md); padding:22px 24px; margin:26px 0; }
.kv-post-content .zone-map-header{ font-weight:700; color: var(--c-primary-dark); margin-bottom:14px; }
.kv-post-content .zone-row{ padding:12px 0; border-bottom:1px solid var(--c-border); }
.kv-post-content .zone-row:last-child{ border-bottom:none; }
.kv-post-content .zone-row h4{ font-size:14px; margin:0 0 4px; }

/* Restaurant listing cards */
.kv-post-content .resto-card-full{ background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md); padding:22px 24px; margin:20px 0; }
.kv-post-content .resto-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; }
.kv-post-content .resto-full-name, .kv-post-content .resto-name{ font-family: var(--font-heading); font-size:17px; font-weight:700; color: var(--c-text); }
.kv-post-content .resto-type{ display:inline-block; font-size:12px; font-weight:700; padding:3px 10px; border-radius:999px; margin:6px 0; background: var(--c-primary-light); color: var(--c-primary-dark); }
.kv-post-content .resto-type.halavi{ background:#eef2fb; color:#4a5fc1; }
.kv-post-content .resto-type.bassari{ background:#fbebe7; color:#c0483a; }
.kv-post-content .resto-type.sushi{ background:#f2eefa; color:#7a5fb0; }
.kv-post-content .resto-addr, .kv-post-content .resto-cert{ font-size:13px; color: var(--c-text-muted); display:block; margin-top:4px; }
.kv-post-content .resto-tags{ display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.kv-post-content .google-score{ text-align:center; }
.kv-post-content .google-score .score-num{ font-family: var(--font-heading); font-size:20px; font-weight:700; color: var(--c-primary-dark); }
.kv-post-content .google-score .score-stars{ color: var(--c-gold); font-size:13px; }
.kv-post-content .google-score .score-source{ font-size:10.5px; color: var(--c-text-muted); }

/* Sticky bottom CTA bar (recipe articles) — checkbox-driven dismiss */
.kv-post-content input.sticky-dismiss-input{ display:none; }
.kv-post-content .sticky-cta{
  position:sticky; bottom:16px; z-index:5; background: var(--c-primary-dark); color:#fff;
  border-radius: var(--radius-md); padding:14px 20px; margin:26px 0 0; box-shadow: var(--shadow-md);
}
.kv-post-content input.sticky-dismiss-input:checked ~ .sticky-cta{ display:none; }
.kv-post-content .sticky-cta-inner{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.kv-post-content .sticky-cta-text{ font-size:13.5px; }
.kv-post-content .sticky-cta-actions{ display:flex; align-items:center; gap:12px; }
.kv-post-content .sticky-cta-btn{ background:#fff; color: var(--c-primary-dark) !important; font-weight:700; font-size:13px; padding:8px 16px; border-radius:999px; text-decoration:none !important; }
.kv-post-content .sticky-cta-close{ cursor:pointer; font-size:18px; line-height:1; opacity:.8; }
.kv-post-content .sticky-cta-close:hover{ opacity:1; }

/* Leftover internal CMS-field scaffold ("Champs Shopify — prêts à
   copier-coller") — an authoring aid never meant for public view, was
   rendering fully visible at the bottom of one article. */
.kv-post-content .shopify-fields{ display:none; }

/* ---- Blog content: third pass — remaining real one-off classes ---- */
.kv-post-content .aw, .kv-post-content .c, .kv-post-content .wrap, .kv-post-content .article-wrapper{ display:block; }
.kv-post-content .night-div, .kv-post-content .rose-div{ display:none; } /* empty spacer divs, same idea as .zen-div */
.kv-post-content .kv-divider{ border:none; border-top:1px solid var(--c-border); margin:36px 0; }
.kv-post-content .em{ font-size:24px; line-height:1; }
.kv-post-content .sep{ color: var(--c-text-muted); margin:0 6px; }
.kv-post-content .src, .kv-post-content .attr{ display:block; font-size:12.5px; font-style:italic; color: var(--c-text-muted); margin-top:10px; }
.kv-post-content .vol{ font-family: var(--font-heading); font-size:22px; font-weight:700; color: var(--c-primary-dark); }
.kv-post-content .cert{ display:inline-block; font-size:11.5px; font-weight:700; color: var(--c-primary-dark); background: var(--c-primary-light); padding:3px 10px; border-radius:999px; margin-top:8px; }
.kv-post-content .final-cta{
  background: linear-gradient(135deg, var(--c-primary-light) 0%, var(--c-primary-soft) 100%);
  border-radius: var(--radius-lg); padding:28px 30px; margin:30px 0; text-align:center;
}
.kv-post-content .product-spotlight-body{ font-size:14px; color: var(--c-text-muted); }
.kv-post-content .products-section{ background: var(--c-primary-soft); border-radius: var(--radius-lg); padding:32px; margin:30px 0; }

/* CTA button variants (btn-main / btn-or) + CTA paragraph alias */
.kv-post-content .btn-main{
  display:inline-block; background: var(--c-primary); color:#fff !important; font-weight:700; font-size:14px;
  padding:12px 26px; border-radius:999px; text-decoration:none !important; margin-top:4px;
}
.kv-post-content .btn-main:hover{ background: var(--c-primary-dark); }
.kv-post-content .btn-or{
  display:inline-block; border:1.5px solid var(--c-primary); color: var(--c-primary-dark) !important; font-weight:700; font-size:13.5px;
  padding:10px 22px; border-radius:999px; text-decoration:none !important; margin:10px 0;
}
.kv-post-content .cta-body{ color: var(--c-text-muted); font-size:14.5px; margin:0 0 18px; }

/* Table status badges (medications / ingredients comparison tables) */
.kv-post-content .badge-ok, .kv-post-content .status-ok{ color:#4c8c5a; font-weight:700; }
.kv-post-content .badge-warn{ color: var(--c-gold-dark); font-weight:700; }
.kv-post-content .badge-no{ color:#c0483a; font-weight:700; }
.kv-post-content .status-ask{ color: var(--c-gold-dark); font-weight:600; }
.kv-post-content .case-card-header.consult{ color: var(--c-gold-dark); border-left:4px solid var(--c-gold-dark); }

/* Checklist variant reusing a different class name */
.kv-post-content ul.benefits-list{ padding-left:0; }
.kv-post-content ul.benefits-list li{ list-style:none; padding-left:26px; position:relative; margin-bottom:10px; }
.kv-post-content ul.benefits-list li::before{ content:"✓"; position:absolute; left:0; color:#4c8c5a; font-weight:700; }

/* "Problème / Solution" comparison pattern (product-comparison articles) */
.kv-post-content .problematique{ color:#c0483a; font-weight:700; margin-top:14px; }
.kv-post-content .solution{ color:#4c8c5a; font-weight:700; margin-top:6px; }

/* Product link lists (keto-diet style articles) */
.kv-post-content .product-links{ display:flex; flex-wrap:wrap; gap:10px; margin:20px 0; }
.kv-post-content .product-link{
  display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--c-border);
  border-radius:999px; padding:8px 18px; font-weight:600; font-size:13.5px; color: var(--c-primary-dark) !important; text-decoration:none !important;
}
.kv-post-content .product-link:hover{ border-color: var(--c-primary); }
.kv-post-content .pc-body{ font-size:13.5px; color: var(--c-text-muted); }
.kv-post-content .pc-cta{ display:inline-flex; align-items:center; gap:4px; font-weight:700; color: var(--c-primary-dark); margin-top:8px; }
.kv-post-content .pcc-body{ flex:1; }
.kv-post-content .pcc-arrow{ color: var(--c-primary); font-size:18px; }

/* Feast cards (Tichri holidays grid) — colored modifiers + date field */
.kv-post-content .feast-date{ font-size:12.5px; color: var(--c-text-muted); margin:2px 0 6px; }
.kv-post-content .feast-card.feast-card--wine{ border-left:4px solid #b06a7d; }
.kv-post-content .feast-card.feast-card--olive{ border-left:4px solid #8fa568; }
.kv-post-content .feast-card.feast-card--rust{ border-left:4px solid #c4805a; }

/* Keto "aliments autorisés/à éviter" food category blocks */
.kv-post-content .food-category{ background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md); padding:16px 20px; margin-bottom:12px; }

/* Quick-facts chip row (holiday guides) */
.kv-post-content .quickfacts{ display:flex; flex-wrap:wrap; gap:10px; margin:18px 0; }
.kv-post-content .quickfacts--wine .qf-chip{ background:#f7ecef; color:#8a4f5f; }
.kv-post-content .quickfacts--olive .qf-chip{ background:#eef3e6; color:#5f7a45; }
.kv-post-content .schedule-list--wine .schedule-dot{ background:#b06a7d; }
.kv-post-content .schedule-list--olive .schedule-dot{ background:#8fa568; }

/* SEO tags footer + restaurant feature tags */
.kv-post-content .seo-tags{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:30px 0 10px; padding-top:20px; border-top:1px solid var(--c-border); }
.kv-post-content .stag, .kv-post-content .rtag{
  display:inline-block; background: var(--c-primary-soft); color: var(--c-primary-dark); font-size:12px; font-weight:600;
  padding:4px 12px; border-radius:999px;
}
.kv-post-content .rtag.gold{ background:#fbf3e2; color: var(--c-gold-dark); }
.kv-post-content .resto-type.mix{ background:#eef3e6; color:#5f7a45; }

/* Judaïsme et Santé article's own bespoke "kv-*" component set (distinct
   from the theme's own kv- namespace, but scoped inside .kv-post-content
   so there is no collision). */
.kv-post-content .kv-article{ display:block; }
.kv-post-content .kv-hero{
  background: linear-gradient(120deg, var(--c-primary-light) 0%, var(--c-primary-soft) 100%);
  border-radius: var(--radius-lg); padding:36px 34px; margin:0 0 32px; text-align:center;
}
.kv-post-content .kv-hero h1{ font-size:26px; margin:0 0 10px; color: var(--c-primary-dark); }
.kv-post-content .kv-toc{ background: var(--c-primary-soft); border-radius: var(--radius-md); padding:24px 28px; margin:0 0 32px; }
.kv-post-content .kv-faq-item{ border:1px solid var(--c-border); border-radius: var(--radius-md); margin-bottom:12px; padding:18px 22px; background:#fff; }
.kv-post-content .kv-faq-item h3{ font-size:15px; margin:0 0 8px; color: var(--c-primary-dark); }
.kv-post-content .kv-highlight{ background: var(--c-primary-light); padding:1px 6px; border-radius:4px; font-weight:600; }
.kv-post-content .kv-product-cta{ display:inline-block; margin-top:10px; font-weight:700; color: var(--c-primary-dark); }
.kv-post-content .kvital-callout{
  background: var(--c-primary-soft); border-left:4px solid var(--c-primary); border-radius:0 var(--radius-md) var(--radius-md) 0;
  padding:18px 22px; margin:26px 0;
}

.kv-post-content .locale-chips, .kv-post-content .mini-tags{ display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
.kv-post-content .meta-item{ display:inline-flex; align-items:center; gap:5px; }
.kv-post-content .ic, .kv-post-content .faq-toggle{ float:right; color: var(--c-primary); font-weight:700; }
.kv-post-content .resto-card-full.featured, .kv-post-content .case-card.featured{ border-color: var(--c-gold); box-shadow:0 0 0 1px var(--c-gold); }

/* Explicit base rules for cards that also carry a trailing modifier
   class (e.g. class="feast-card feast-card--wine") — the generic
   [class$="-card"] fallback only matches when that suffix is the very
   end of the whole class attribute, so it silently drops the box
   styling whenever a second class follows. Give these their own rule
   instead of relying on the fallback. */
.kv-post-content .feast-card, .kv-post-content .ingredient-card, .kv-post-content .resto-card{
  background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-md); padding:20px 22px;
}
.kv-post-content .resto-card.featured{ border-color: var(--c-gold); box-shadow:0 0 0 1px var(--c-gold); }
.kv-post-content .locale-chip{
  display:inline-block; background: var(--c-primary-light); color: var(--c-primary-dark); font-size:11.5px; font-weight:700;
  padding:3px 10px; border-radius:999px; margin:2px 4px 2px 0;
}

/* ---- Scroll-reveal animations ---- */
/* Le masquage est conditionné à la classe .js posée par header.php : sans JS
   (éditeur de blocs, rendu headless, script en échec) le contenu reste visible
   au lieu de disparaître définitivement. */
.js .kv-reveal{ opacity:0; transform: translateY(22px) scale(.97); transition: opacity .55s ease, transform .55s cubic-bezier(.2,.7,.3,1); }
.js .kv-reveal.kv-visible{ opacity:1; transform: translateY(0) scale(1); }
@media (prefers-reduced-motion: reduce){
  .js .kv-reveal{ opacity:1; transform:none; transition:none; }
}

/* ---- Cart drawer ---- */
.kv-cart-drawer{
  position:fixed; top:0; right:0; height:100vh; width:400px; max-width:92vw;
  background:#fff; z-index:1200; transform:translateX(100%);
  transition:transform .3s cubic-bezier(.2,.7,.3,1);
  display:flex; flex-direction:column;
}
body.cart-drawer-open .kv-cart-drawer{ transform:translateX(0); box-shadow:-12px 0 32px rgba(9,30,32,.14); }
.kv-cart-drawer-backdrop{
  position:fixed; inset:0; background:rgba(9,30,32,.45); z-index:1150;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
body.cart-drawer-open .kv-cart-drawer-backdrop{ opacity:1; pointer-events:auto; }
.kv-cart-drawer-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 24px; border-bottom:1px solid var(--c-border); flex-shrink:0;
}
.kv-cart-drawer-header h3{ margin:0; font-size:18px; }
.kv-cart-drawer-close{
  background:none; border:none; font-size:26px; line-height:1; color:var(--c-text-muted);
  cursor:pointer; padding:0 4px;
}
.kv-cart-drawer-body{ padding:20px 24px; overflow-y:auto; flex:1; display:flex; flex-direction:column; }
.kv-cart-drawer-empty{ color:var(--c-text-muted); }
.kv-cart-drawer-items{ list-style:none; margin:0 0 18px; padding:0; display:flex; flex-direction:column; gap:16px; }
.kv-cart-drawer-item{ display:flex; gap:12px; align-items:flex-start; position:relative; padding-right:20px; }
.kv-cart-drawer-thumb{ flex-shrink:0; }
.kv-cart-drawer-thumb img{ width:56px; height:56px; object-fit:cover; border-radius:var(--radius-sm); display:block; }
.kv-cart-drawer-info{ display:flex; flex-direction:column; gap:3px; font-size:13.5px; }
.kv-cart-drawer-name{ font-weight:600; color:var(--c-text); }
.kv-cart-drawer-qty{ color:var(--c-text-muted); font-size:12.5px; }
.kv-cart-drawer-price{ color:var(--c-primary-dark); font-weight:700; font-size:13px; }
.kv-cart-drawer-remove{
  position:absolute; top:0; right:0; color:var(--c-text-muted); font-size:20px; line-height:1;
}
.kv-cart-drawer-remove:hover{ color:var(--c-text); }
.kv-cart-drawer-subtotal{
  display:flex; justify-content:space-between; align-items:center; font-size:15.5px;
  padding:16px 0; border-top:1px solid var(--c-border); margin-top:auto;
}
.kv-cart-drawer-body .btn-block{ width:100%; margin-bottom:10px; text-align:center; }

/* Trust bar : 5 éléments, donc liste pleine largeur sur mobile.
   Placé en fin de fichier pour passer après les media queries plus larges. */
@media (max-width:560px){
  .trust-bar{ padding:18px 20px; border-radius:var(--radius-md); }
  .trust-bar ul{ grid-template-columns:1fr; gap:14px; }
  .trust-bar li:nth-child(5){ grid-column:auto; }
}

/* ---- Avis clients (bloc kvital/testimonials) ---- */
.screen-reader-text{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
/* Étoiles au prorata de la note : un dégradé masqué par cinq étoiles.
   --kv-rate est posé en ligne par kvital_stars_html(). */
.kv-stars{
  display:inline-block; vertical-align:middle; flex-shrink:0;
  width:5.5em; height:1em; font-size:15px;
  background:linear-gradient(90deg, var(--c-gold) var(--kv-rate,100%), #d5e1e2 var(--kv-rate,100%));
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26.4 24'%3E%3Cpath d='M13.2 1.6l3.1 6.3 6.9 1-5 4.9 1.2 6.9-6.2-3.3-6.2 3.3 1.2-6.9-5-4.9 6.9-1z'/%3E%3C/svg%3E") 0 0/1.1em 1em repeat-x;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26.4 24'%3E%3Cpath d='M13.2 1.6l3.1 6.3 6.9 1-5 4.9 1.2 6.9-6.2-3.3-6.2 3.3 1.2-6.9-5-4.9 6.9-1z'/%3E%3C/svg%3E") 0 0/1.1em 1em repeat-x;
}
.kv-reviews{ background: var(--c-primary-soft); }
.kv-reviews__head{
  display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end;
  gap:22px 48px; margin-bottom:28px;
}
.kv-reviews__title h2{ font-size:clamp(25px,3.2vw,34px); line-height:1.14; margin:0; text-wrap:balance; }
.kv-reviews__title p{ margin:10px 0 0; color: var(--c-text-muted); max-width:54ch; text-wrap:pretty; }

.kv-rsum{
  display:flex; align-items:center; gap:22px;
  background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-lg);
  padding:16px 22px; box-shadow: var(--shadow-sm);
}
.kv-rsum__score{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.kv-rsum__value{
  margin:0; font-family: var(--font-heading); font-weight:700; font-size:42px; line-height:.9;
  color: var(--c-primary-dark); font-variant-numeric:tabular-nums;
}
.kv-rsum__value small{ font-size:16px; font-weight:600; color: var(--c-text-muted); margin-left:3px; }
.kv-rsum__count{ margin:0; font-size:12.5px; color: var(--c-text-muted); }
.kv-rsum__dist{
  list-style:none; margin:0; padding:0 0 0 22px; border-left:1px solid var(--c-border);
  display:grid; gap:4px; width:190px;
}
.kv-rsum__dist li{
  display:grid; grid-template-columns:22px minmax(0,1fr) 20px; align-items:center; gap:8px;
  font-size:12px; line-height:1.2; color: var(--c-text-muted); font-variant-numeric:tabular-nums;
}
.kv-rsum__lbl span[aria-hidden]{ color: var(--c-gold); margin-left:1px; }
.kv-rsum__bar{ height:6px; border-radius:999px; background: var(--c-primary-light); overflow:hidden; }
.kv-rsum__bar > span{ display:block; height:100%; background: var(--c-gold); border-radius:inherit; }
.kv-rsum__n{ text-align:right; }

.kv-rv-track{
  display:flex; gap:20px; overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory; scrollbar-width:none;
  /* Le padding laisse respirer l'ombre des cartes, la marge négative le compense. */
  padding:6px 6px 22px; margin:-6px -6px 0; scroll-padding-inline:6px;
}
.kv-rv-track::-webkit-scrollbar{ display:none; }
.kv-rv{
  position:relative; flex:0 0 calc((100% - 40px) / 3); min-width:0; scroll-snap-align:start;
  display:flex; flex-direction:column; gap:14px;
  background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-lg);
  padding:22px 22px 16px; box-shadow: var(--shadow-sm);
  transition: box-shadow .25s ease, transform .25s ease;
}
.kv-rv:hover{ box-shadow: var(--shadow-md); transform:translateY(-2px); }
/* Grand guillemet décoratif, en filigrane dans le coin. */
.kv-rv::after{
  content:"\201D"; position:absolute; top:6px; right:18px; pointer-events:none;
  font-family: var(--font-heading); font-size:72px; line-height:1; color: var(--c-primary-light);
}
.kv-rv__top{ display:flex; align-items:center; gap:10px; }
.kv-rv__top time{ font-size:12px; color: var(--c-text-muted); }
.kv-rv__quote{ margin:0; }
.kv-rv__quote p{
  margin:0; font-size:15px; line-height:1.6; color: var(--c-text);
  display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden;
}
.kv-rv.is-open .kv-rv__quote p{ display:block; -webkit-line-clamp:unset; overflow:visible; }
.kv-rv__more{
  align-self:flex-start; margin-top:-8px; padding:0; border:0; background:none; cursor:pointer;
  font-size:13px; font-weight:600; color: var(--c-primary);
  text-decoration:underline; text-underline-offset:3px;
}
.kv-rv__author{ display:flex; align-items:center; gap:10px; margin-top:auto; }
.kv-rv__avatar{
  width:36px; height:36px; flex-shrink:0; border-radius:50%;
  display:grid; place-items:center; font-weight:700; font-size:14px;
  background: var(--c-primary-light); color: var(--c-primary-dark);
}
.kv-rv__author strong{ display:block; font-size:14px; line-height:1.3; }
.kv-rv__verified{ display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:600; color: var(--c-primary); }
.kv-rv__verified svg{ width:13px; height:13px; stroke-width:2.4; }

.kv-rv__product{
  display:flex; align-items:center; gap:12px; padding:8px 10px 8px 8px;
  background: var(--c-primary-soft); border:1px solid transparent; border-radius: var(--radius-md);
  transition: background .2s ease, border-color .2s ease;
}
.kv-rv__product:hover,
.kv-rv__product:focus-visible{ background:#fff; border-color: var(--c-primary); }
.kv-rv__thumb{
  width:50px; height:50px; flex-shrink:0; overflow:hidden;
  border-radius:10px; background:#fff;
}
.kv-rv__thumb img{ width:100%; height:100%; object-fit:cover; }
.kv-rv__pinfo{ flex:1; min-width:0; display:flex; flex-direction:column; line-height:1.3; }
.kv-rv__plabel{ font-size:10.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color: var(--c-text-muted); }
.kv-rv__pname{
  font-size:13.5px; font-weight:700; color: var(--c-text);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.kv-rv__pprice{ font-size:12.5px; font-weight:700; color: var(--c-primary-dark); }
.kv-rv__pprice del{ font-weight:400; color: var(--c-text-muted); margin-right:4px; }
.kv-rv__pprice ins{ text-decoration:none; }
.kv-rv__go{
  width:30px; height:30px; flex-shrink:0; border-radius:50%;
  display:grid; place-items:center; background:#fff; color: var(--c-primary-dark);
  transition: transform .2s ease, background .2s ease, color .2s ease;
}
.kv-rv__go svg{ width:14px; height:14px; }
.kv-rv__product:hover .kv-rv__go{ transform:translateX(3px); background: var(--c-primary); color:#fff; }

.kv-rv-nav{ display:flex; align-items:center; gap:18px; }
.kv-rv-nav .kv-carousel-bar{ flex:1; margin:0; }
.kv-rv-nav .kv-carousel-bar-fill{ transition: transform .15s linear; }
.kv-rv-nav .carousel-arrow svg{ width:18px; height:18px; }
.kv-rv-arrow--prev svg{ transform:scaleX(-1); }
.carousel-arrow:disabled{ opacity:.35; cursor:default; background:#fff; }
.kv-rv-carousel.is-static .kv-rv-nav{ display:none; }
.kv-reviews__note{ margin:16px 0 0; font-size:12px; line-height:1.5; color: var(--c-text-muted); }
.kv-reviews__empty{ padding:24px; border:1px dashed var(--c-border); border-radius: var(--radius-md); color: var(--c-text-muted); }

@media (max-width:1024px){
  .kv-rv{ flex-basis:calc((100% - 20px) / 2); }
}
@media (max-width:780px){
  .kv-reviews__head{ grid-template-columns:minmax(0,1fr); align-items:start; }
}
@media (max-width:640px){
  .kv-rv{ flex-basis:86%; padding:20px 18px 14px; }
  .kv-rv-nav .carousel-arrows{ display:none; }
  .kv-rsum{ padding:14px 16px; gap:16px; }
  .kv-rsum__dist{ width:auto; flex:1; min-width:0; padding-left:16px; }
  .kv-rsum__value{ font-size:36px; }
}
@media (prefers-reduced-motion:reduce){
  .kv-rv, .kv-rv__product, .kv-rv__go, .kv-rv-nav .kv-carousel-bar-fill{ transition:none; }
  .kv-rv:hover{ transform:none; }
}

/* Formulaire d'avis des fiches produits (onglet « Avis » retiré en mise en page riche).
   woocommerce.css cible le formulaire par ID (#respond input#submit…) : les règles
   ci-dessous passent donc aussi par #respond pour l'emporter. */
.kv-rv-form{ margin-top:22px; }
.kv-rv-form > summary{
  display:inline-flex; align-items:center; gap:8px; list-style:none; cursor:pointer;
  padding:11px 20px; border-radius:999px; border:1px solid var(--c-primary);
  background:#fff; color: var(--c-primary-dark); font-weight:700; font-size:14px;
  transition: background .2s ease, color .2s ease;
}
.kv-rv-form > summary::-webkit-details-marker{ display:none; }
.kv-rv-form > summary svg{ width:18px; height:18px; }
.kv-rv-form > summary:hover{ background: var(--c-primary-light); }
.kv-rv-form[open] > summary{ background: var(--c-primary); color:#fff; }
.kv-rv-form__body{
  margin-top:16px; max-width:720px; padding:24px;
  background:#fff; border:1px solid var(--c-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm);
}
/* La liste des avis est déjà dans le carrousel au-dessus : on ne garde que le formulaire. */
.kv-rv-form #comments, .kv-rv-form .clear{ display:none; }
.kv-rv-form .comment-reply-title{ display:block; margin-bottom:4px; font-family: var(--font-heading); font-size:21px; font-weight:700; color: var(--c-text); }
.kv-rv-form .comment-notes, .kv-rv-form .woocommerce-verification-required{ font-size:13px; color: var(--c-text-muted); }
.kv-rv-form p{ margin:0 0 14px; }
.kv-rv-form label{ display:block; margin-bottom:6px; font-size:13px; font-weight:600; }
.kv-rv-form .required{ color:#b3261e; text-decoration:none; }
.kv-rv-form input[type="text"], .kv-rv-form input[type="email"], .kv-rv-form textarea, .kv-rv-form select{
  width:100%; padding:11px 13px; font:inherit; font-size:15px; color: var(--c-text);
  background: var(--c-bg); border:1px solid var(--c-border); border-radius: var(--radius-sm);
}
.kv-rv-form textarea{ min-height:120px; resize:vertical; }
.kv-rv-form input:focus, .kv-rv-form textarea:focus, .kv-rv-form select:focus{
  outline:2px solid var(--c-primary); outline-offset:1px; border-color: var(--c-primary); background:#fff;
}
.kv-rv-form .comment-form-cookies-consent{ display:flex; align-items:flex-start; gap:8px; }
.kv-rv-form .comment-form-cookies-consent label{ font-weight:400; font-size:13px; color: var(--c-text-muted); margin:0; }
.kv-rv-form #respond .form-submit input#submit{
  padding:12px 26px; border:0; border-radius:999px; cursor:pointer;
  background: var(--c-primary); color:#fff; font:inherit; font-weight:700; font-size:15px;
}
.kv-rv-form #respond .form-submit input#submit:hover{ background: var(--c-primary-dark); }
/* Étoiles de notation injectées par le JS WooCommerce (p.stars > span > a.star-N). */
/* line-height:0 : sans lui, la ligne de base du paragraphe creusait un grand blanc sous le libellé. */
.kv-rv-form #respond p.stars{ margin:0; line-height:0; }
.kv-rv-form #respond p.stars span{ display:inline-flex; gap:2px; }
.kv-rv-form #respond p.stars a{ display:block; width:30px; height:30px; font-size:0; text-decoration:none; }
.kv-rv-form #respond p.stars a::before{ content:"\2605"; font-family:inherit; display:block; font-size:28px; line-height:30px; color:#d5e1e2; transition:color .12s; }
.kv-rv-form #respond p.stars:hover a::before,
.kv-rv-form #respond p.stars.selected a::before{ color: var(--c-gold); }
.kv-rv-form #respond p.stars.selected a.active ~ a::before{ color:#d5e1e2; }
.kv-rv-form #respond p.stars:hover a:hover ~ a::before,
.kv-rv-form #respond p.stars.selected:hover a:hover ~ a::before{ color:#d5e1e2; }
.kv-rv-form #respond p.stars.selected:hover a::before{ color: var(--c-gold); }
@media (max-width:640px){ .kv-rv-form__body{ padding:18px; } }

/* ==========================================================================
   Boutique (archives produits) — inc/shop.php, woocommerce/archive-product.php
   ========================================================================== */
.kv-eyebrow{ margin:0 0 12px; font-size:11.5px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color: var(--c-text-muted); }

/* ---- Hero ---- */
.kv-shop-hero{
  position:relative; overflow:hidden; border-bottom:1px solid var(--c-border);
  background:
    radial-gradient(60% 90% at 85% 40%, rgba(200,162,74,.10) 0%, transparent 60%),
    linear-gradient(100deg, #f5faf9 0%, #eef6f4 55%, #e6f0ec 100%);
}
.kv-shop-hero__inner{
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:36px; align-items:center;
  min-height:clamp(380px,32vw,450px); padding-block:clamp(28px,4vw,44px);
}
.kv-shop-hero h1{ margin:0; font-size:clamp(36px,4.6vw,58px); line-height:1.02; letter-spacing:-.01em; color: var(--c-text); }
.kv-shop-hero__sub{ margin:12px 0 0; font-size:clamp(17px,1.6vw,20px); font-weight:600; color: var(--c-text); }
.kv-shop-hero__intro{ margin:14px 0 0; max-width:54ch; font-size:15.5px; line-height:1.6; color: var(--c-text-muted); }
.kv-shop-hero__trust{ list-style:none; margin:26px 0 0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.kv-shop-hero__trust li{ display:flex; align-items:flex-start; gap:10px; }
.kv-shop-hero__trust svg{ width:30px; height:30px; flex-shrink:0; color: var(--c-primary-dark); stroke-width:1.5; }
.kv-shop-hero__trust strong{ display:block; font-size:13.5px; line-height:1.25; }
.kv-shop-hero__trust small{ display:block; margin-top:2px; font-size:12px; line-height:1.3; color: var(--c-text-muted); }

.kv-shop-hero__visual{ position:relative; align-self:stretch; min-height:340px; }
.kv-shop-collage{ position:absolute; inset:8% 2% 4% 10%; }
.kv-shop-collage__item{
  position:absolute; width:44%; aspect-ratio:1/1; overflow:hidden; border-radius:22px; background:#fff;
  box-shadow: 0 26px 50px -20px rgba(7,81,88,.45), 0 2px 6px rgba(7,81,88,.08);
  border:4px solid #fff;
}
.kv-shop-collage__item img{ width:100%; height:100%; object-fit:cover; }
.kv-shop-collage__item:nth-child(1){ left:0; top:22%; transform:rotate(-6deg); z-index:1; animation: kv-float 7s ease-in-out infinite; }
.kv-shop-collage__item:nth-child(2){ left:27%; top:4%; width:50%; transform:rotate(1.5deg); z-index:3; animation: kv-float 7s ease-in-out -2.3s infinite; }
.kv-shop-collage__item:nth-child(3){ right:0; top:26%; transform:rotate(7deg); z-index:2; animation: kv-float 7s ease-in-out -4.6s infinite; }
@keyframes kv-float{ 0%,100%{ translate:0 0; } 50%{ translate:0 -8px; } }
.kv-shop-hero__note{
  position:absolute; left:-2%; top:0; z-index:4; margin:0;
  font-family:'Caveat', 'Segoe Script', cursive; font-weight:600; font-size:clamp(22px,2.1vw,29px); line-height:1.05;
  color: var(--c-text); transform:rotate(-8deg);
}
.kv-shop-hero__note svg{ display:block; width:66px; height:36px; margin:2px 0 0 70px; }
.kv-shop-badge{ position:absolute; right:0; top:-2%; z-index:5; width:clamp(92px,8.6vw,116px); height:auto; color: var(--c-primary-dark); }
.kv-shop-badge__bg{ fill:#fff; }
.kv-shop-badge__ring{ fill:none; stroke: var(--c-primary-dark); stroke-width:1; opacity:.35; }
.kv-shop-badge text{ font-family: var(--font-body); font-size:9.5px; font-weight:700; letter-spacing:.14em; fill: var(--c-primary-dark); }
.kv-shop-badge__text{ transform-origin:60px 60px; animation: kv-spin 32s linear infinite; }
@keyframes kv-spin{ to{ transform:rotate(360deg); } }

.kv-shop-hero--compact .container{ padding-block:34px; }
.kv-shop-hero--compact h1{ font-size:clamp(28px,3.4vw,40px); }

.kv-shop-hero--term{ background: linear-gradient(100deg, color-mix(in srgb, var(--cat) 10%, #fff) 0%, #f5faf9 70%); }
.kv-shop-hero--term .container{ padding-block:22px 30px; }
.kv-breadcrumb{ margin-bottom:16px; font-size:12.5px; color: var(--c-text-muted); }
.kv-breadcrumb a{ color: var(--c-text-muted); text-decoration:underline; text-underline-offset:3px; }
.kv-term-hero{ display:flex; align-items:center; gap:20px; }
.kv-term-hero__ico{
  width:66px; height:66px; flex-shrink:0; border-radius:18px; display:grid; place-items:center;
  background: var(--cat); color:#fff; box-shadow: 0 14px 26px -12px var(--cat);
}
.kv-term-hero__ico svg{ width:32px; height:32px; }
.kv-shop-hero--term h1{ font-size:clamp(28px,3.6vw,44px); }
.kv-term-hero__desc, .kv-term-hero__desc p{ margin:6px 0 0; max-width:62ch; color: var(--c-text-muted); }

/* ---- Raccourcis ---- */
.kv-shop-tiles{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:22px 0 18px; }
.kv-shop-tile{
  display:flex; align-items:center; gap:14px; min-height:70px; padding:12px 18px;
  border:1px solid transparent; border-radius:14px; color: var(--c-text);
  transition: transform .2s ease, box-shadow .2s ease;
}
.kv-shop-tile:hover{ transform:translateY(-2px); box-shadow: var(--shadow-md); color: var(--c-text); }
.kv-shop-tile--teal{ background: var(--c-primary-light); border-color:#cfe6e8; }
.kv-shop-tile--gold{ background:#f8f1e1; border-color:#ecdfc0; }
.kv-shop-tile--light{ background:#eef3f6; border-color:#dde7ec; }
.kv-shop-tile__ico{ width:42px; height:42px; flex-shrink:0; border-radius:50%; display:grid; place-items:center; }
.kv-shop-tile__ico svg{ width:24px; height:24px; }
.kv-shop-tile--teal .kv-shop-tile__ico{ color: var(--c-primary-dark); }
.kv-shop-tile--gold .kv-shop-tile__ico{ background: var(--c-gold); color:#fff; }
.kv-shop-tile__imgs{ display:flex; flex-shrink:0; }
.kv-shop-tile__imgs img{ width:46px; height:46px; object-fit:cover; border-radius:10px; border:2px solid #fff; box-shadow: var(--shadow-sm); }
.kv-shop-tile__imgs img + img{ margin-left:-14px; }
.kv-shop-tile__txt{ flex:1; min-width:0; display:flex; flex-direction:column; line-height:1.3; }
.kv-shop-tile__txt strong{ font-family: var(--font-heading); font-size:17px; color: var(--c-primary-dark); }
.kv-shop-tile--gold .kv-shop-tile__txt strong{ color:#7a5b16; }
.kv-shop-tile__txt span{ font-size:13px; color: var(--c-text-muted); }
.kv-shop-tile__go svg{ width:18px; height:18px; transition: transform .2s ease; }
.kv-shop-tile:hover .kv-shop-tile__go svg{ transform:translateX(3px); }

/* ---- Puces de catégories ---- */
.kv-shop-chips{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 28px; }
.kv-chip{
  display:inline-flex; align-items:center; gap:8px; padding:8px 16px; border-radius:999px;
  border:1px solid var(--c-border); background:#fff; font-size:13.5px; font-weight:600; color: var(--c-text);
  transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.kv-chip svg{ width:16px; height:16px; margin-left:-3px; color: var(--cat, var(--c-primary)); }
.kv-chip:hover{ border-color: var(--cat, var(--c-primary)); background: color-mix(in srgb, var(--cat, var(--c-primary)) 7%, #fff); color: var(--c-text); }
.kv-chip.is-active{ background: var(--c-primary-dark); border-color: var(--c-primary-dark); color:#fff; }
.kv-chip.is-active svg{ color:#fff; }

/* ---- Mise en page filtres + résultats ---- */
.kv-shop-layout{ display:grid; grid-template-columns:232px minmax(0,1fr); gap:32px; align-items:start; }
.kv-filters{ position:sticky; top:100px; max-height:calc(100vh - 116px); overflow-y:auto; padding-right:8px; scrollbar-width:thin; }
.kv-filters__bar{ display:none; }
.kv-filters-backdrop{ display:none; }
.kv-fgroup{ padding:14px 0; border-bottom:1px solid var(--c-border); }
.kv-fgroup:first-of-type{ padding-top:2px; }
.kv-fgroup > summary{
  display:flex; align-items:center; justify-content:space-between; gap:10px; cursor:pointer; list-style:none;
  font-size:15px; font-weight:700; color: var(--c-text);
}
.kv-fgroup > summary::-webkit-details-marker{ display:none; }
.kv-fgroup__chev{ width:8px; height:8px; margin-right:4px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transition: transform .2s ease; }
.kv-fgroup[open] .kv-fgroup__chev{ transform:rotate(-135deg); }
.kv-fgroup__body{ display:grid; gap:7px; padding-top:12px; }
.kv-check{ position:relative; display:flex; align-items:center; gap:10px; cursor:pointer; font-size:13.5px; line-height:1.3; color: var(--c-text); }
.kv-check input{ position:absolute; opacity:0; width:1px; height:1px; margin:0; }
.kv-check__box{
  width:17px; height:17px; flex-shrink:0; display:grid; place-items:center;
  border:1.5px solid #b7c8ca; border-radius:4px; background:#fff; transition: background .15s ease, border-color .15s ease;
}
.kv-check input[type="radio"] + .kv-check__box{ border-radius:50%; }
.kv-check:hover .kv-check__box{ border-color: var(--c-primary); }
.kv-check input:checked + .kv-check__box{ background: var(--c-primary-dark); border-color: var(--c-primary-dark); }
.kv-check input[type="checkbox"]:checked + .kv-check__box::after{
  content:""; width:9px; height:5px; margin-top:-2px; border-left:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(-45deg);
}
.kv-check input[type="radio"]:checked + .kv-check__box::after{ content:""; width:7px; height:7px; border-radius:50%; background:#fff; }
.kv-check input:focus-visible + .kv-check__box{ outline:2px solid var(--c-primary); outline-offset:2px; }
.kv-check__lbl{ display:inline-flex; align-items:center; gap:6px; }
.kv-check__n{ margin-left:-4px; font-size:12.5px; color: var(--c-text-muted); }
.kv-check__more{ font-size:12.5px; color: var(--c-text-muted); }
.kv-check .kv-stars{ font-size:12.5px; }

.kv-price__vals{ margin:0 0 10px; font-size:13px; color: var(--c-text-muted); font-variant-numeric:tabular-nums; }
.kv-price__track{ position:relative; height:22px; }
.kv-price__track::before{ content:""; position:absolute; left:0; right:0; top:9px; height:4px; border-radius:4px; background: var(--c-border); }
.kv-price__fill{ position:absolute; top:9px; left:0; right:0; height:4px; border-radius:4px; background: var(--c-primary-dark); }
.kv-price input[type="range"]{
  position:absolute; inset:0; width:100%; height:22px; margin:0; background:none;
  -webkit-appearance:none; appearance:none; pointer-events:none;
}
.kv-price input[type="range"]::-webkit-slider-runnable-track{ background:none; border:0; }
.kv-price input[type="range"]::-moz-range-track{ background:none; border:0; }
.kv-price input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none; pointer-events:auto; cursor:grab; width:18px; height:18px; border-radius:50%;
  background: var(--c-primary-dark); border:3px solid #fff; box-shadow:0 0 0 1px var(--c-primary-dark), 0 2px 6px rgba(0,0,0,.18);
}
.kv-price input[type="range"]::-moz-range-thumb{
  pointer-events:auto; cursor:grab; width:12px; height:12px; border-radius:50%;
  background: var(--c-primary-dark); border:3px solid #fff; box-shadow:0 0 0 1px var(--c-primary-dark);
}
.kv-price input[type="range"]:focus-visible::-webkit-slider-thumb{ outline:2px solid var(--c-primary); outline-offset:2px; }

.kv-filters__actions{ display:flex; align-items:center; gap:14px; padding-top:16px; }
.js .kv-filters__apply{ display:none; }
.kv-filters__reset{ font-size:13px; font-weight:600; color: var(--c-primary-dark); text-decoration:underline; text-underline-offset:3px; }

/* ---- Barre d'outils ---- */
.kv-shop-toolbar{ display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:16px; }
.kv-shop-count{ margin:0 auto 0 0; font-size:14px; color: var(--c-text-muted); }
.kv-shop-sort{ display:flex; flex-wrap:wrap; gap:10px; }
.kv-select{
  position:relative; display:inline-flex; align-items:center; gap:6px; height:38px; padding:0 32px 0 12px;
  border:1px solid var(--c-border); border-radius:10px; background:#fff; font-size:13px; color: var(--c-text-muted);
}
.kv-select::after{ content:""; position:absolute; right:13px; top:14px; width:6px; height:6px; border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor; transform:rotate(45deg); pointer-events:none; }
.kv-select select{ padding:0; border:0; background:none; outline:none; cursor:pointer; font:inherit; font-weight:600; color: var(--c-text); -webkit-appearance:none; appearance:none; }
.kv-select:focus-within{ border-color: var(--c-primary); box-shadow:0 0 0 3px rgba(12,116,128,.12); }
.kv-view-toggle{ display:inline-flex; overflow:hidden; border:1px solid var(--c-border); border-radius:10px; background:#fff; }
.kv-view-toggle button{ width:38px; height:36px; display:grid; place-items:center; border:0; background:none; color: var(--c-text-muted); cursor:pointer; }
.kv-view-toggle button svg{ width:18px; height:18px; }
.kv-view-toggle button[aria-pressed="true"]{ background: var(--c-primary-light); color: var(--c-primary-dark); }
.kv-filters-toggle{
  display:none; align-items:center; gap:8px; height:38px; padding:0 14px; border:1px solid var(--c-border); border-radius:10px;
  background:#fff; font:inherit; font-size:13.5px; font-weight:600; color: var(--c-text); cursor:pointer;
}
.kv-filters-toggle svg{ width:17px; height:17px; }
.kv-filters-toggle__n{ min-width:20px; height:20px; padding:0 6px; border-radius:999px; background: var(--c-primary-dark); color:#fff; font-size:11.5px; line-height:20px; text-align:center; }

.kv-active-filters{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:-4px 0 16px; }
.kv-active-filter{
  display:inline-flex; align-items:center; gap:6px; padding:5px 10px 5px 12px; border-radius:999px;
  background: var(--c-primary-light); color: var(--c-primary-dark); font-size:12.5px; font-weight:600;
}
.kv-active-filter > span[aria-hidden]{ font-size:16px; line-height:1; }
.kv-active-filter:hover{ background:#d5ecee; color: var(--c-primary-dark); }
.kv-active-filters__clear{ font-size:12.5px; font-weight:600; color: var(--c-text-muted); text-decoration:underline; text-underline-offset:3px; }

/* ---- Grille ---- */
.kv-shop-main ul.products{ grid-template-columns:repeat(5, minmax(0,1fr)); gap:16px; margin:0; transition: opacity .2s ease; }
.kv-shop-layout.is-loading .kv-shop-main ul.products{ opacity:.45; pointer-events:none; }
.kv-shop-main .woocommerce-pagination{ margin-top:28px; text-align:center; }
.kv-shop-main .woocommerce-pagination ul{ display:inline-flex; gap:6px; margin:0; padding:0; list-style:none; border:0; }
.kv-shop-main .woocommerce-pagination li{ border:0; }
.kv-shop-main .woocommerce-pagination .page-numbers{ display:grid; place-items:center; min-width:38px; height:38px; padding:0 10px; border:1px solid var(--c-border); border-radius:10px; background:#fff; font-weight:600; color: var(--c-text); }
.kv-shop-main .woocommerce-pagination .page-numbers.current{ background: var(--c-primary-dark); border-color: var(--c-primary-dark); color:#fff; }

/* ---- Carte produit « boutique » ---- */
/* woocommerce.css donne aux li.product une largeur de 22 %, une marge et un float
   (grille flottante d'origine) : dans notre grille CSS, ça écrasait les cartes. */
.woocommerce .kv-shop-main ul.products li.product.pc--shop,
.woocommerce-page .kv-shop-main ul.products li.product.pc--shop{ width:auto; margin:0; padding:0; float:none; clear:none; }
.pc--shop{
  height:100%; overflow:hidden; background:#fff; border:1px solid var(--c-border); border-radius:14px;
  transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.pc--shop:hover{ box-shadow: var(--shadow-md); transform:translateY(-3px); border-color:#d2e2e3; }
.pc--shop .pc__media{ margin:0; border-radius:0; aspect-ratio:5/4; background: color-mix(in srgb, var(--accent, var(--c-primary)) 8%, #fff); }
.pc--shop .pc__media-link{ display:block; width:100%; height:100%; }
.pc--shop .pc__tag, .pc--shop .pc__flag{ top:10px; left:10px; right:auto; padding:5px 10px; font-size:11px; }
.pc--shop .pc__body{ display:flex; flex:1; flex-direction:column; padding:12px 12px 12px; }
.pc--shop .pc__brand{ margin-bottom:4px; font-size:10px; letter-spacing:.08em; }
.pc--shop .pc__name{
  margin:0 0 2px; font-size:14.5px; line-height:1.3; max-height:2.6em;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.pc--shop .pc__name a{ display:inline; }
/* woocommerce.css impose aux titres des cartes « padding:.5em 0; font-size:1em » et une
   marge sous les images, avec une spécificité plus forte : le titre grossissait et le
   padding mangeait la hauteur de deux lignes, d'où la deuxième ligne coupée. */
.woocommerce ul.products li.product.pc--shop .pc__name,
.kv-wishlist ul.products li.product.pc--shop .pc__name{ padding:0; margin:0 0 2px; font-size:14.5px; line-height:1.3; }
.woocommerce ul.products li.product.pc--shop a img{ margin:0; }
.pc--shop .pc__line{ font-size:12.5px; line-height:1.4; }
.pc--shop .pc__rating{ display:flex; align-items:center; gap:6px; margin:7px 0 0; font-size:12px; color: var(--c-text-muted); }
.pc--shop .pc__rating .kv-stars{ font-size:12.5px; }
.pc--shop .pc__price{ margin:7px 0 0; font-family: var(--font-body); font-size:16px; font-weight:700; color: var(--c-text); }
.pc--shop .pc__price del{ margin-right:5px; font-size:.82em; font-weight:500; opacity:.55; }
.pc--shop .pc__price ins{ text-decoration:none; }
.pc--shop .pc__cta{
  display:flex; align-items:center; justify-content:center; gap:8px; height:38px; margin-top:auto;
  border-radius:8px; background: var(--c-primary-dark); color:#fff; font-size:13.5px; font-weight:600;
  transition: background .2s ease;
}
.pc--shop .pc__price + .pc__cta, .pc--shop .pc__rating + .pc__cta, .pc--shop .pc__line + .pc__cta{ margin-top:auto; }
.pc--shop .pc__body > :nth-last-child(1){ margin-top:auto; }
.pc--shop .pc__price{ margin-bottom:10px; }
.pc--shop .pc__cta svg{ width:16px; height:16px; }
.pc--shop .pc__cta:hover{ background: var(--c-primary); color:#fff; }
.pc--shop .pc__cta.loading{ opacity:.7; }
.pc--shop .pc__cta--ghost{ background: var(--c-primary-soft); color: var(--c-text-muted); }
.pc--shop .pc__cta--ghost:hover{ background: var(--c-primary-light); color: var(--c-primary-dark); }
.pc--shop .added_to_cart{
  display:block; height:auto; margin-top:6px; padding:0; border:0; text-align:center;
  font-size:12.5px; font-weight:600; color: var(--c-primary-dark); text-decoration:underline;
}

/* Vue liste */
.kv-shop-layout.is-list .kv-shop-main ul.products{ grid-template-columns:minmax(0,1fr); gap:12px; }
.kv-shop-layout.is-list .pc--shop{ flex-direction:row; }
.kv-shop-layout.is-list .pc--shop .pc__media{ width:210px; flex-shrink:0; aspect-ratio:auto; min-height:170px; }
.kv-shop-layout.is-list .pc--shop .pc__body{ padding:16px 20px; }
.kv-shop-layout.is-list .pc--shop .pc__name{ font-size:17px; }
.kv-shop-layout.is-list .pc--shop .pc__cta{ align-self:flex-start; padding:0 22px; }

/* ---- État vide ---- */
.kv-shop-empty{ padding:48px 20px; text-align:center; border:1px dashed var(--c-border); border-radius:16px; background:#fff; }
.kv-shop-empty__ico{ width:54px; height:54px; margin:0 auto 12px; display:grid; place-items:center; border-radius:50%; background: var(--c-primary-light); color: var(--c-primary-dark); }
.kv-shop-empty__ico svg{ width:26px; height:26px; }
.kv-shop-empty h2{ margin:0 0 6px; font-size:22px; }
.kv-shop-empty p{ margin:0 0 18px; color: var(--c-text-muted); }

/* ---- Bandeau de confiance ---- */
.kv-shop-trust{
  list-style:none; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:18px;
  margin:44px 0 0; padding:22px 26px; border:1px solid var(--c-border); border-radius:16px; background: var(--c-primary-soft);
}
.kv-shop-trust li{ display:flex; align-items:center; gap:14px; }
.kv-shop-trust svg{ width:34px; height:34px; flex-shrink:0; color: var(--c-primary-dark); stroke-width:1.5; }
.kv-shop-trust strong{ display:block; font-size:14.5px; line-height:1.3; }
.kv-shop-trust small{ display:block; margin-top:2px; font-size:12.5px; color: var(--c-text-muted); }

/* ---- Responsive ---- */
@media (max-width:1280px){
  .kv-shop-main ul.products{ grid-template-columns:repeat(4, minmax(0,1fr)); }
}
@media (max-width:1024px){
  .kv-shop-hero__inner{ grid-template-columns:minmax(0,1fr); min-height:0; }
  .kv-shop-hero__visual{ min-height:320px; max-width:560px; width:100%; margin:0 auto; }
  .kv-shop-layout{ grid-template-columns:minmax(0,1fr); }
  .kv-filters{
    position:fixed; top:0; bottom:0; left:0; z-index:1300; width:min(360px, 88vw); max-height:none;
    padding:0 20px 20px; background:#fff; overflow-y:auto;
    transform:translateX(-100%); transition: transform .3s cubic-bezier(.4,0,.2,1);
  }
  body.kv-filters-open{ overflow:hidden; }
  body.kv-filters-open .kv-filters{ transform:none; box-shadow: var(--shadow-lg); }
  .kv-filters-backdrop{
    display:block; position:fixed; inset:0; z-index:1250; background:rgba(9,30,32,.45);
    opacity:0; pointer-events:none; transition: opacity .3s ease;
  }
  body.kv-filters-open .kv-filters-backdrop{ opacity:1; pointer-events:auto; }
  .kv-filters__bar{
    position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between;
    margin:0 -20px 10px; padding:16px 20px 12px; background:#fff; border-bottom:1px solid var(--c-border);
  }
  .kv-filters__title{ display:flex; align-items:center; gap:8px; margin:0; font-family: var(--font-heading); font-size:19px; font-weight:700; }
  .kv-filters__title svg{ width:19px; height:19px; }
  .kv-filters__close{ border:0; background:none; font-size:28px; line-height:1; color: var(--c-text-muted); cursor:pointer; }
  .kv-filters__actions{ position:sticky; bottom:-20px; margin:0 -20px; padding:14px 20px 20px; background:#fff; border-top:1px solid var(--c-border); }
  .js .kv-filters__apply{ display:inline-flex; flex:1; justify-content:center; }
  .kv-filters-toggle{ display:inline-flex; }
  .kv-shop-main ul.products{ grid-template-columns:repeat(3, minmax(0,1fr)); }
  .kv-shop-trust{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width:720px){
  .kv-shop-hero h1{ font-size:36px; }
  .kv-shop-hero__trust{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .kv-shop-hero__visual{ min-height:250px; }
  .kv-shop-hero__note{ font-size:20px; left:0; }
  .kv-shop-hero__note svg{ width:48px; margin-left:50px; }
  .kv-shop-badge{ width:82px; }
  .kv-shop-tiles{ grid-template-columns:minmax(0,1fr); gap:10px; }
  .kv-shop-chips{ flex-wrap:nowrap; overflow-x:auto; margin:0 -16px 20px; padding:0 16px 4px; scrollbar-width:none; }
  .kv-shop-chips::-webkit-scrollbar{ display:none; }
  .kv-chip{ flex-shrink:0; }
  .kv-shop-count{ order:-1; width:100%; }
  .kv-shop-sort{ flex:1; min-width:0; }
  .kv-shop-sort .kv-select{ flex:1; }
  .kv-shop-sort .kv-select:first-of-type{ display:none; }
  .kv-select span{ display:none; }
  .kv-select select{ width:100%; }
  .kv-view-toggle{ display:none; }
  .kv-shop-main ul.products{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
  .kv-shop-layout.is-list .kv-shop-main ul.products{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .kv-shop-layout.is-list .pc--shop{ flex-direction:column; }
  .kv-shop-layout.is-list .pc--shop .pc__media{ width:auto; min-height:0; aspect-ratio:5/4; }
  .pc--shop .pc__body{ padding:10px; }
  .pc--shop .pc__name,
  .woocommerce ul.products li.product.pc--shop .pc__name,
  .kv-wishlist ul.products li.product.pc--shop .pc__name{ font-size:13.5px; }
  .pc--shop .pc__cta{ height:36px; font-size:12.5px; gap:6px; }
  .pc--shop .pc__cta svg{ display:none; }
  .kv-shop-trust{ grid-template-columns:minmax(0,1fr); padding:18px; }
}
@media (prefers-reduced-motion:reduce){
  .kv-shop-collage__item, .kv-shop-badge__text{ animation:none; }
  .pc--shop, .kv-shop-tile, .kv-filters{ transition:none; }
  .pc--shop:hover, .kv-shop-tile:hover{ transform:none; }
}

/* ==========================================================================
   Pack Bien-être (bloc kvital/pack-builder)
   ========================================================================== */
.kv-pack{ padding-block:clamp(30px,4vw,52px); }
.kv-pack__head{ max-width:760px; margin:0 auto 30px; text-align:center; }
.kv-pack__title{ margin:0; font-size:clamp(30px,4vw,46px); line-height:1.08; text-wrap:balance; }
.kv-pack__intro{ max-width:60ch; margin:12px auto 0; color: var(--c-text-muted); }
.kv-pack__tiers{ list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin:22px 0 0; padding:0; }
.kv-pack__tiers li{
  display:flex; flex-direction:column; align-items:center; min-width:108px; padding:10px 14px;
  border:1px solid var(--c-border); border-radius:14px; background:#fff; transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
.kv-pack__tiers strong{ font-family: var(--font-heading); font-size:22px; line-height:1.1; color: var(--c-primary-dark); }
.kv-pack__tiers span{ font-size:12.5px; color: var(--c-text-muted); }
.kv-pack__tiers li.is-reached{ background: var(--c-primary-dark); border-color: var(--c-primary-dark); transform:translateY(-2px); }
.kv-pack__tiers li.is-reached strong, .kv-pack__tiers li.is-reached span{ color:#fff; }

.kv-pack__form{ display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:28px; align-items:start; }
.kv-pack__grid{ list-style:none; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:14px; margin:0; padding:0; }
.kv-pk{
  position:relative; display:flex; flex-direction:column; overflow:hidden; cursor:pointer;
  background:#fff; border:1.5px solid var(--c-border); border-radius:16px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.kv-pk:hover{ box-shadow: var(--shadow-md); }
.kv-pk.is-selected{ border-color: var(--c-primary); box-shadow:0 0 0 3px rgba(12,116,128,.14); }
.kv-pk__media{ display:block; aspect-ratio:5/4; background: color-mix(in srgb, var(--accent, var(--c-primary)) 8%, #fff); }
.kv-pk__media img{ width:100%; height:100%; object-fit:cover; }
.kv-pk__check{
  position:absolute; top:10px; right:10px; width:28px; height:28px; display:grid; place-items:center;
  border:1.5px solid var(--c-border); border-radius:50%; background:#fff; color:transparent; transition: background .2s ease, color .2s ease;
}
.kv-pk__check svg{ width:15px; height:15px; stroke-width:2.4; }
.kv-pk.is-selected .kv-pk__check{ background: var(--c-primary); border-color: var(--c-primary); color:#fff; }
.kv-pk__body{ flex:1; display:flex; flex-direction:column; gap:2px; padding:12px 12px 10px; }
.kv-pk__name{ font-size:14px; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.kv-pk__line{ font-size:12.5px; color: var(--c-text-muted); }
.kv-pk__price{ margin-top:4px; font-size:15px; font-weight:700; color: var(--c-text); }
.kv-pk__qty{ display:flex; align-items:center; justify-content:space-between; margin:0 12px 12px; overflow:hidden; border:1px solid var(--c-border); border-radius:10px; }
.kv-pk__qty button{ width:40px; height:36px; border:0; background: var(--c-primary-soft); color: var(--c-primary-dark); font-size:18px; font-weight:600; cursor:pointer; }
.kv-pk__qty button:hover{ background: var(--c-primary-light); }
.kv-pk__qty input{ width:48px; border:0; text-align:center; font:inherit; font-weight:700; color: var(--c-text); background:#fff; -moz-appearance:textfield; }
.kv-pk__qty input::-webkit-inner-spin-button, .kv-pk__qty input::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }

.kv-pack__summary{ position:sticky; top:100px; padding:20px; background:#fff; border:1px solid var(--c-border); border-radius:18px; box-shadow: var(--shadow-md); }
.kv-pack__sum-title{ display:flex; align-items:center; gap:8px; margin:0 0 10px; font-family: var(--font-heading); font-size:20px; font-weight:700; }
.kv-pack__sum-title svg{ width:22px; height:22px; color: var(--c-gold); }
.kv-pack__empty{ margin:0 0 12px; font-size:13.5px; color: var(--c-text-muted); }
.kv-pack__lines{ list-style:none; display:grid; gap:6px; margin:0 0 14px; padding:0; font-size:13.5px; }
.kv-pack__lines li{ display:flex; justify-content:space-between; gap:10px; }
.kv-pack__lines li span:last-child{ font-weight:600; white-space:nowrap; }
.kv-pack__meter{ position:relative; height:8px; margin:6px 0 8px; border-radius:999px; background: var(--c-primary-light); }
.kv-pack__meter span{ position:absolute; inset:0 auto 0 0; width:0; border-radius:inherit; background: linear-gradient(90deg, var(--c-primary), var(--c-gold)); transition: width .35s cubic-bezier(.2,.7,.3,1); }
.kv-pack__meter i{ position:absolute; top:50%; width:4px; height:4px; margin:-2px 0 0 -2px; border-radius:50%; background:#fff; }
.kv-pack__next{ min-height:1.3em; margin:0 0 14px; font-size:13px; font-weight:600; color: var(--c-primary-dark); }
.kv-pack__totals{ display:grid; gap:6px; margin:0 0 16px; padding-top:12px; border-top:1px solid var(--c-border); }
.kv-pack__totals div{ display:flex; justify-content:space-between; gap:10px; font-size:14px; }
.kv-pack__totals dt, .kv-pack__totals dd{ margin:0; }
.kv-pack__saving dd{ font-weight:700; color:#1c7a47; }
.kv-pack__total{ font-size:17px !important; font-weight:700; }
.kv-pack__cta{ display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%; }
.kv-pack__cta svg{ width:18px; height:18px; }
.kv-pack__cta:disabled{ opacity:.45; cursor:not-allowed; transform:none; }
.kv-pack__fine{ margin:10px 0 0; font-size:12px; line-height:1.45; color: var(--c-text-muted); }
@media (max-width:1024px){
  .kv-pack__form{ grid-template-columns:minmax(0,1fr); }
  .kv-pack__summary{ position:static; }
}
@media (max-width:720px){
  .kv-pack__grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
  .kv-pack__tiers li{ min-width:0; flex:1 1 40%; }
}
@media (prefers-reduced-motion:reduce){ .kv-pack__meter span, .kv-pack__tiers li{ transition:none; } }

/* ==========================================================================
   Abonnement — option d'achat sur la fiche produit (inc/subscriptions.php)
   ========================================================================== */
.woocommerce div.product form.cart{ flex-wrap:wrap; }
.kv-buy{ flex:1 0 100%; display:grid; gap:8px; width:100%; margin:0 0 18px; padding:0; border:0; }
.kv-buy__opt{
  position:relative; display:flex; align-items:center; gap:12px; padding:13px 14px; cursor:pointer;
  border:1.5px solid var(--c-border); border-radius:12px; background:#fff; transition: border-color .2s ease, background .2s ease;
}
.kv-buy__opt input{ position:absolute; opacity:0; width:1px; height:1px; }
.kv-buy__radio{ width:18px; height:18px; flex-shrink:0; display:grid; place-items:center; border:1.5px solid #b7c8ca; border-radius:50%; background:#fff; }
.kv-buy__opt input:checked + .kv-buy__radio{ border-color: var(--c-primary); }
.kv-buy__opt input:checked + .kv-buy__radio::after{ content:""; width:9px; height:9px; border-radius:50%; background: var(--c-primary); }
.kv-buy__opt input:focus-visible + .kv-buy__radio{ outline:2px solid var(--c-primary); outline-offset:2px; }
.kv-buy__opt:has(input:checked){ border-color: var(--c-primary); background: var(--c-primary-soft); }
.kv-buy__txt{ flex:1; min-width:0; display:flex; flex-direction:column; line-height:1.3; }
.kv-buy__txt strong{ font-size:15px; }
.kv-buy__txt small{ margin-top:2px; font-size:12.5px; color: var(--c-text-muted); }
.kv-buy__badge{ display:inline-block; margin-left:6px; padding:2px 8px; border-radius:999px; background: var(--c-gold); color:#fff; font-size:11.5px; font-weight:700; vertical-align:1px; }
.kv-buy__price{ font-weight:700; white-space:nowrap; }
.kv-buy__price del{ margin-right:4px; font-size:.9em; font-weight:500; opacity:.5; }
.kv-buy__price ins{ text-decoration:none; color: var(--c-primary-dark); }
.kv-buy__freq{ display:none; padding:12px 14px; border-radius:12px; background: var(--c-primary-soft); }
.kv-buy:has(input[value="sub"]:checked) .kv-buy__freq{ display:block; }
.kv-buy__freq label{ display:block; margin-bottom:6px; font-size:13px; font-weight:600; }
.kv-buy__freq select{ width:100%; height:40px; padding:0 12px; border:1px solid var(--c-border); border-radius:10px; background:#fff; font:inherit; }
.kv-buy__freq p{ margin:8px 0 0; font-size:12.5px; color: var(--c-text-muted); }

/* ---- Mon compte › Mes abonnements ---- */
.kv-subs{ display:grid; gap:16px; }
.kv-sub{ padding:18px 20px; border:1px solid var(--c-border); border-radius:16px; background:#fff; }
.kv-sub--cancelled{ opacity:.72; }
.kv-sub__head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.kv-sub__head h3{ margin:0; font-size:18px; }
.kv-sub__status{ padding:4px 10px; border-radius:999px; background: var(--c-primary-light); color: var(--c-primary-dark); font-size:12px; font-weight:700; }
.kv-sub--paused .kv-sub__status{ background:#f8f1e1; color:#7a5b16; }
.kv-sub--cancelled .kv-sub__status{ background:#f5e4e3; color:#8a2e2e; }
.kv-sub__items{ list-style:none; display:flex; flex-wrap:wrap; gap:10px 20px; margin:0 0 12px; padding:0; }
.kv-sub__items li{ display:flex; align-items:center; gap:10px; font-size:14px; }
.kv-sub__items img{ width:44px; height:44px; object-fit:cover; border-radius:10px; }
.kv-sub__facts{ display:flex; flex-wrap:wrap; gap:8px 28px; margin:0 0 14px; }
.kv-sub__facts dt{ font-size:12px; color: var(--c-text-muted); }
.kv-sub__facts dd{ margin:0; font-size:14px; font-weight:600; }
.kv-sub__pay{ font-weight:700; color: var(--c-primary-dark); }
.kv-sub__actions{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding-top:14px; border-top:1px solid var(--c-border); }
.kv-sub__actions form{ display:flex; gap:6px; margin:0; }
.kv-sub__btn{ height:36px; padding:0 14px; border:1px solid var(--c-border); border-radius:999px; background:#fff; font:inherit; font-size:13px; font-weight:600; color: var(--c-text); cursor:pointer; }
.kv-sub__btn:hover{ border-color: var(--c-primary); }
.kv-sub__btn--primary{ background: var(--c-primary-dark); border-color: var(--c-primary-dark); color:#fff; }
.kv-sub__btn--danger{ color:#a3322e; }
.kv-sub__btn--danger:hover{ border-color:#a3322e; }
.kv-sub__freq select{ height:36px; padding:0 12px; border:1px solid var(--c-border); border-radius:999px; font:inherit; font-size:13px; background:#fff; }
.kv-subs-empty{ padding:28px; text-align:center; border:1px dashed var(--c-border); border-radius:16px; }

/* ---- Page Abonnement (bloc kvital/subscription) ---- */
.kv-subl{ padding-block:clamp(30px,4vw,52px); }
.kv-subl__hero{ max-width:760px; margin:0 auto 32px; text-align:center; }
.kv-subl__hero h1{ margin:0; font-size:clamp(30px,4vw,46px); line-height:1.08; text-wrap:balance; }
.kv-subl__intro{ max-width:60ch; margin:12px auto 0; color: var(--c-text-muted); }
.kv-subl__perks{ list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:10px 22px; margin:18px 0 0; padding:0; }
.kv-subl__perks li{ display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; }
.kv-subl__perks svg{ width:16px; height:16px; color: var(--c-primary); stroke-width:2.4; }
.kv-subl__steps{ list-style:none; counter-reset:kvstep; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; margin:0 0 44px; padding:0; }
.kv-subl__steps li{ position:relative; counter-increment:kvstep; padding:22px 20px 20px; border:1px solid var(--c-border); border-radius:18px; background: var(--c-primary-soft); }
.kv-subl__steps li::after{ content:counter(kvstep); position:absolute; top:14px; right:18px; font-family: var(--font-heading); font-size:42px; font-weight:700; line-height:1; color: rgba(12,116,128,.12); }
.kv-subl__step-ico{ width:46px; height:46px; margin-bottom:12px; display:grid; place-items:center; border-radius:14px; background: var(--c-primary-dark); color:#fff; }
.kv-subl__step-ico svg{ width:22px; height:22px; }
.kv-subl__steps h3{ margin:0 0 6px; font-size:17px; }
.kv-subl__steps p{ margin:0; font-size:14px; color: var(--c-text-muted); }
.kv-subl__title2{ margin:0 0 20px; text-align:center; font-size:clamp(24px,3vw,32px); }
.kv-subl__grid{ list-style:none; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:16px; margin:0 0 48px; padding:0; }
.kv-subl-card{ display:flex; flex-direction:column; overflow:hidden; background:#fff; border:1px solid var(--c-border); border-radius:14px; transition: box-shadow .25s ease, transform .25s ease; }
.kv-subl-card:hover{ box-shadow: var(--shadow-md); transform:translateY(-3px); }
.kv-subl-card__media{ display:block; aspect-ratio:5/4; background: color-mix(in srgb, var(--accent, var(--c-primary)) 8%, #fff); }
.kv-subl-card__media img{ width:100%; height:100%; object-fit:cover; }
.kv-subl-card__body{ flex:1; display:flex; flex-direction:column; gap:3px; padding:12px; }
.kv-subl-card__name{ margin:0; font-family: var(--font-body); font-size:14.5px; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.kv-subl-card__name a{ color: var(--c-text); }
.kv-subl-card__line{ margin:0; font-size:12.5px; color: var(--c-text-muted); }
.kv-subl-card__price{ margin:6px 0 0; }
.kv-subl-card__price del{ margin-right:4px; font-size:13px; opacity:.5; }
.kv-subl-card__price ins{ text-decoration:none; font-size:17px; font-weight:700; color: var(--c-primary-dark); }
.kv-subl-card__price small{ display:block; font-size:11.5px; color: var(--c-text-muted); }
.kv-subl-card__cta{ display:flex; align-items:center; justify-content:center; gap:8px; height:38px; margin-top:auto; border-radius:8px; background: var(--c-gold); color:#fff; font-size:13.5px; font-weight:600; transition: background .2s ease; }
.kv-subl-card__body > .kv-subl-card__price + .kv-subl-card__cta{ margin-top:10px; }
.kv-subl-card__cta svg{ width:16px; height:16px; }
.kv-subl-card__cta:hover{ background: var(--c-gold-dark); color:#fff; }
.kv-subl__faq{ max-width:760px; margin:0 auto; }
.kv-subl__faq details{ padding:14px 0; border-bottom:1px solid var(--c-border); }
.kv-subl__faq summary{ cursor:pointer; font-weight:700; }
.kv-subl__faq p{ margin:8px 0 0; color: var(--c-text-muted); }
@media (max-width:1024px){ .kv-subl__grid{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width:720px){
  .kv-subl__steps{ grid-template-columns:minmax(0,1fr); }
  .kv-subl__grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
}

/* ==========================================================================
   Favoris (inc/wishlist.php)
   ========================================================================== */
.kv-heart{
  position:absolute; top:8px; right:8px; z-index:3; width:34px; height:34px; display:grid; place-items:center;
  border:0; border-radius:50%; background:rgba(255,255,255,.94); color: var(--c-text); cursor:pointer;
  box-shadow:0 2px 8px rgba(12,40,43,.14); transition: transform .2s ease, color .2s ease;
}
.kv-heart svg{ width:18px; height:18px; }
.kv-heart:hover{ transform:scale(1.08); color:#c2255c; }
.kv-heart.is-on{ color:#c2255c; }
.kv-heart.is-on svg{ fill:currentColor; }
.kv-heart.kv-pop{ animation: kv-pop .35s cubic-bezier(.34,1.56,.64,1); }
@keyframes kv-pop{ 0%{ transform:scale(1); } 40%{ transform:scale(1.28); } 100%{ transform:scale(1); } }
.kv-heart--text{
  position:static; width:auto; height:auto; display:inline-flex; gap:8px; margin-top:12px; padding:8px 0;
  background:none; box-shadow:none; font:inherit; font-size:14px; font-weight:600; color: var(--c-text-muted);
}
.kv-heart--text:hover{ transform:none; }
.kv-heart--text.is-on{ color:#c2255c; }
.kv-wishlist__head{ max-width:640px; margin:0 auto 26px; text-align:center; }
.kv-wishlist__head h1{ margin:0; font-size:clamp(30px,4vw,42px); }
.kv-wishlist__head p{ margin:10px 0 0; color: var(--c-text-muted); }
.kv-wishlist ul.products{ display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); gap:16px; margin:0; padding:0; list-style:none; }
.kv-wishlist ul.products::before, .kv-wishlist ul.products::after{ content:none; }
.kv-wishlist ul.products li.product.pc--shop{ width:auto; margin:0; padding:0; float:none; }
.kv-wishlist__loading{ text-align:center; color: var(--c-text-muted); }
.kv-wishlist__empty{ padding:48px 20px; text-align:center; border:1px dashed var(--c-border); border-radius:16px; background:#fff; }
.kv-wishlist__empty-ico{ width:56px; height:56px; margin:0 auto 12px; display:grid; place-items:center; border-radius:50%; background:#fbe6ee; color:#c2255c; }
.kv-wishlist__empty-ico svg{ width:26px; height:26px; }
.kv-wishlist__empty h2{ margin:0 0 6px; font-size:22px; }
.kv-wishlist__empty p{ margin:0 0 18px; color: var(--c-text-muted); }
.kv-wishlist__note{ margin-top:24px; text-align:center; font-size:12.5px; color: var(--c-text-muted); }
.kv-wish-link{ position:relative; }
.kv-wish-count{
  position:absolute; top:-8px; right:-10px; min-width:18px; height:18px; padding:0 5px; border-radius:999px;
  background:#c2255c; color:#fff; font-size:11px; font-weight:700; line-height:18px; text-align:center;
}
@media (max-width:1280px){ .kv-wishlist ul.products{ grid-template-columns:repeat(4, minmax(0,1fr)); } }
@media (max-width:1024px){ .kv-wishlist ul.products{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width:720px){ .kv-wishlist ul.products{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; } }
@media (prefers-reduced-motion:reduce){ .kv-heart, .kv-heart.kv-pop{ transition:none; animation:none; } }
.kv-buy__price small{ margin-left:4px; font-size:11.5px; font-weight:500; color: var(--c-text-muted); }


/* ==========================================================================
   Fiche produit — woocommerce/content-single-product.php, inc/product-page.php
   ========================================================================== */
.woocommerce div.product.kv-pdp{ display:block; }
.kv-pdp__hero{
  display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr) minmax(300px,360px);
  grid-template-areas:"gallery info buy"; gap:32px; align-items:start;
}
.kv-pdp__gallery{ grid-area:gallery; min-width:0; }
.kv-pdp__info{ grid-area:info; min-width:0; padding-top:4px; }
.kv-pdp__buy{
  grid-area:buy; position:sticky; top:100px; padding:20px;
  background:#fff; border:1px solid var(--c-border); border-radius:18px; box-shadow: var(--shadow-md);
}

/* ---- Galerie ---- */
.kv-pdp__media{ position:relative; }
.kv-pdp .kv-kosher-seal-badge{ z-index:4; }
.woocommerce div.product.kv-pdp div.images.woocommerce-product-gallery{ position:relative; top:auto; }
.kv-pdp .flex-viewport{ border-radius:18px; overflow:hidden; }
.kv-pdp .woocommerce-product-gallery__image img{ border-radius:18px; }
.woocommerce div.product.kv-pdp .flex-control-thumbs{ gap:10px; margin-top:12px; }
.woocommerce div.product.kv-pdp .flex-control-thumbs li{ width:calc((100% - 30px) / 4); }
.woocommerce div.product.kv-pdp .flex-control-thumbs li img{ aspect-ratio:1/1; object-fit:cover; border-radius:10px; }
.kv-pdp .flex-direction-nav{ list-style:none; margin:0; padding:0; }
.kv-pdp .flex-direction-nav a{
  position:absolute; top:calc(50% - 76px); z-index:3; width:40px; height:40px; display:grid; place-items:center;
  border-radius:50%; background:#fff; box-shadow:0 4px 14px rgba(12,40,43,.16);
  font-size:0; color:transparent; overflow:hidden; transition: transform .2s ease;
}
.kv-pdp .flex-direction-nav a::before{ content:""; width:9px; height:9px; border-left:2px solid var(--c-text); border-bottom:2px solid var(--c-text); }
.kv-pdp .flex-direction-nav .flex-prev{ left:14px; }
.kv-pdp .flex-direction-nav .flex-prev::before{ transform:translateX(2px) rotate(45deg); }
.kv-pdp .flex-direction-nav .flex-next{ right:14px; }
.kv-pdp .flex-direction-nav .flex-next::before{ transform:translateX(-2px) rotate(-135deg); }
.kv-pdp .flex-direction-nav a:hover{ transform:scale(1.06); }
.kv-pdp .flex-direction-nav .flex-disabled{ opacity:0; pointer-events:none; }

/* ---- Informations ---- */
.kv-pdp__badge{ display:inline-block; margin:0 0 12px; padding:5px 12px; border-radius:999px; background: var(--c-primary-light); color: var(--c-primary-dark); font-size:12px; font-weight:700; }
.woocommerce div.product .kv-pdp__title{ margin:0 0 8px; font-size:clamp(26px,2.4vw,32px); line-height:1.15; }
.kv-pdp__rating{ display:inline-flex; align-items:center; gap:8px; font-size:14px; color: var(--c-text); }
.kv-pdp__rating .kv-stars{ font-size:16px; }
.kv-pdp__rating:hover span{ text-decoration:underline; }
.woocommerce div.product p.price.kv-pdp__price{ margin:14px 0 2px; font-family: var(--font-heading); font-size:30px; font-weight:700; line-height:1.1; color: var(--c-text); }
.kv-pdp__subtitle{ margin:0 0 14px; font-size:13px; color: var(--c-text-muted); }
.kv-pdp__excerpt{ margin:0 0 18px; font-size:14px; line-height:1.6; color: var(--c-text-muted); }
.kv-pdp__checks{ list-style:none; display:grid; gap:10px; margin:0 0 22px; padding:0; }
.kv-pdp__checks li{ display:flex; align-items:center; gap:12px; font-size:14.5px; font-weight:500; }
.kv-pdp__checks svg{ width:22px; height:22px; flex-shrink:0; padding:4px; border-radius:50%; background: var(--c-primary-dark); color:#fff; stroke-width:3; }
.kv-pdp__badges{ list-style:none; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px 16px; margin:0; padding:16px 0 0; border-top:1px solid var(--c-border); }
.kv-pdp__badges li{ display:flex; align-items:center; gap:8px; font-size:12px; font-weight:600; line-height:1.25; color: var(--c-text); }
.kv-pdp__badges svg{ width:28px; height:28px; flex-shrink:0; color: var(--c-primary-dark); stroke-width:1.5; }

/* ---- Carte d'achat ---- */
.kv-pdp__buy-title{ margin:0 0 14px; font-family: var(--font-heading); font-size:16px; font-weight:700; }
.kv-cure__grid{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:8px; }
.kv-cure__opt{
  position:relative; display:flex; flex-direction:column; align-items:center; gap:6px; padding:16px 4px 10px; cursor:pointer; text-align:center;
  border:1.5px solid var(--c-border); border-radius:12px; background:#fff; transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.kv-cure__opt input{ position:absolute; opacity:0; width:1px; height:1px; }
.kv-cure__opt:hover{ border-color:#b7d3d5; }
.kv-cure__opt:has(input:checked){ border-color: var(--c-primary); background: var(--c-primary-soft); box-shadow:0 0 0 3px rgba(12,116,128,.10); }
.kv-cure__ribbon{ position:absolute; top:-10px; left:50%; transform:translateX(-50%); padding:2px 8px; border-radius:999px; background: var(--c-gold); color:#fff; font-size:10px; font-weight:700; white-space:nowrap; }
.kv-cure__label{ font-family: var(--font-heading); font-size:15px; font-weight:700; }
.kv-cure__radio{ width:16px; height:16px; display:grid; place-items:center; border:1.5px solid #b7c8ca; border-radius:50%; background:#fff; }
.kv-cure__opt input:checked ~ .kv-cure__radio{ border-color: var(--c-primary); }
.kv-cure__opt input:checked ~ .kv-cure__radio::after{ content:""; width:8px; height:8px; border-radius:50%; background: var(--c-primary); }
.kv-cure__opt input:focus-visible ~ .kv-cure__radio{ outline:2px solid var(--c-primary); outline-offset:2px; }
.kv-cure__badge{ min-height:19px; padding:1px 8px; border-radius:999px; background:#f3e6c4; color:#7a5b16; font-size:11px; font-weight:700; line-height:17px; }
.kv-cure__badge--empty{ background:none; }
.kv-cure__price{ font-family: var(--font-heading); font-size:17px; font-weight:700; color: var(--c-text); }
.kv-cure__per{ font-size:11px; line-height:1.3; color: var(--c-text-muted); }
.kv-cure__more{ margin:10px 0 0; font-size:12.5px; color: var(--c-text-muted); }
.kv-cure__more button{ padding:0 2px; border:0; background:none; font:inherit; font-weight:600; color: var(--c-primary-dark); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.kv-cure__more button.is-active{ color: var(--c-text); text-decoration:none; }

.woocommerce div.product .kv-pdp__buy form.cart{ display:grid; grid-template-columns:minmax(0,1fr); gap:10px; margin:16px 0 10px; }
.kv-pdp__buy .kv-buy{ margin:0 0 4px; }
/* Carte étroite : prix à droite du titre, mention sur toute la largeur en dessous. */
.kv-pdp__buy .kv-buy__opt{
  display:grid; grid-template-columns:18px minmax(0,1fr) auto; column-gap:10px; row-gap:3px; align-items:center; padding:11px 12px;
}
.kv-pdp__buy .kv-buy__radio{ grid-column:1; grid-row:1 / span 2; align-self:start; margin-top:2px; }
.kv-pdp__buy .kv-buy__txt{ display:contents; }
.kv-pdp__buy .kv-buy__txt strong{ grid-column:2; grid-row:1; }
.kv-pdp__buy .kv-buy__txt small{ grid-column:2 / 4; grid-row:2; margin:0; font-size:11.5px; }
.kv-pdp__buy .kv-buy__price{ grid-column:3; grid-row:1; text-align:right; }
.kv-pdp__buy .kv-buy__opt:not(.kv-buy__opt--sub) .kv-buy__radio{ grid-row:1; margin-top:0; align-self:center; }
/* Option abonnement : titre et remise sur une ligne, prix en dessous, puis la mention. */
.kv-pdp__buy .kv-buy__opt--sub .kv-buy__radio{ grid-row:1 / span 3; }
.kv-pdp__buy .kv-buy__opt--sub .kv-buy__txt strong{ grid-column:2 / 4; }
.kv-pdp__buy .kv-buy__opt--sub .kv-buy__price{ grid-column:2 / 4; grid-row:2; text-align:left; }
.kv-pdp__buy .kv-buy__opt--sub .kv-buy__txt small{ grid-row:3; }
.kv-pdp__field-label{ margin:2px 0 -4px; font-size:13px; font-weight:700; }
.woocommerce div.product .kv-pdp__buy form.cart .quantity{ display:flex; align-items:stretch; width:100%; margin:0; overflow:hidden; border:1px solid var(--c-border); border-radius:10px; background:#fff; }
.woocommerce div.product .kv-pdp__buy form.cart .quantity input.qty{ flex:1; width:auto; height:42px; margin:0; padding:0; border:0; border-radius:0; text-align:center; font-weight:700; background:#fff; -moz-appearance:textfield; }
.kv-pdp__buy .quantity input::-webkit-inner-spin-button, .kv-pdp__buy .quantity input::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }
.kv-qty-btn{ width:46px; flex-shrink:0; border:0; background: var(--c-primary-soft); font-size:20px; line-height:1; color: var(--c-text); cursor:pointer; }
.kv-qty-btn:hover{ background: var(--c-primary-light); }
.woocommerce div.product .kv-pdp__buy form.cart .single_add_to_cart_button{
  display:flex; align-items:center; justify-content:center; gap:10px; width:100%; height:50px; margin:4px 0 0; padding:0 20px;
  border-radius:999px; background: var(--c-primary-dark); color:#fff; font-size:16px; font-weight:700;
}
.woocommerce div.product .kv-pdp__buy form.cart .single_add_to_cart_button::before{
  content:""; width:20px; height:20px; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2.2l2.1 10.3a1.6 1.6 0 0 0 1.6 1.3h8.4a1.6 1.6 0 0 0 1.6-1.2L20.5 8H6.1'/%3E%3Ccircle cx='9.5' cy='19.5' r='1.3'/%3E%3Ccircle cx='17' cy='19.5' r='1.3'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2.2l2.1 10.3a1.6 1.6 0 0 0 1.6 1.3h8.4a1.6 1.6 0 0 0 1.6-1.2L20.5 8H6.1'/%3E%3Ccircle cx='9.5' cy='19.5' r='1.3'/%3E%3Ccircle cx='17' cy='19.5' r='1.3'/%3E%3C/svg%3E") center/contain no-repeat;
}
.woocommerce div.product .kv-pdp__buy form.cart .single_add_to_cart_button:hover{ background: var(--c-primary); }
.kv-pdp__buy .kv-buy-now{ display:flex; align-items:center; justify-content:center; height:48px; margin:0; border-radius:999px; font-weight:700; }
/* L'état « en stock » est dit dans le pied de carte ; seule la rupture reste affichée ici. */
.woocommerce div.product .kv-pdp__buy .stock.in-stock{ display:none; }
.kv-pdp__buy-foot{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 12px; margin-top:14px; padding-top:12px; border-top:1px solid var(--c-border); font-size:12.5px; }
.kv-pdp__buy-foot .kv-heart--text{ margin:0; padding:0; font-size:12.5px; }
.kv-pdp__stock{ display:inline-flex; align-items:center; gap:6px; color: var(--c-text-muted); }
.kv-pdp__stock svg{ width:14px; height:14px; color:#1c7a47; stroke-width:2.8; }
.kv-pdp__soon{ margin:8px 0 0; padding:12px 14px; border-radius:12px; background: var(--c-primary-soft); font-size:13.5px; color: var(--c-text-muted); }

/* ---- Bandeau de confiance ---- */
.kv-pdp-trust{ list-style:none; display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); margin:40px 0 0; padding:18px 8px; border-radius:16px; background:#f6f2ea; }
.kv-pdp-trust li{ display:flex; align-items:center; gap:12px; padding:4px 16px; }
.kv-pdp-trust li + li{ border-left:1px solid #e6ddcd; }
.kv-pdp-trust svg{ width:30px; height:30px; flex-shrink:0; color: var(--c-primary-dark); stroke-width:1.5; }
.kv-pdp-trust strong{ display:block; font-size:13.5px; line-height:1.3; }
.kv-pdp-trust small{ display:block; margin-top:2px; font-size:12px; color: var(--c-text-muted); }

/* ---- Onglets ---- */
.kv-pdp-tabs{ margin:30px 0 6px; }
.kv-pdp-tabs__list{ display:flex; gap:4px; overflow-x:auto; border-bottom:1px solid var(--c-border); scrollbar-width:none; }
.kv-pdp-tabs__list::-webkit-scrollbar{ display:none; }
.kv-pdp-tabs__tab{
  margin-bottom:-1px; padding:12px 18px; border:0; border-bottom:2.5px solid transparent; background:none; cursor:pointer; white-space:nowrap;
  font:inherit; font-size:14.5px; font-weight:600; color: var(--c-text-muted);
}
.kv-pdp-tabs__tab:hover{ color: var(--c-text); }
.kv-pdp-tabs__tab[aria-selected="true"]{ color: var(--c-text); border-bottom-color: var(--c-primary-dark); }
.kv-pdp-tabs__tab:focus-visible{ outline:2px solid var(--c-primary); outline-offset:-2px; border-radius:6px 6px 0 0; }
.kv-pdp-tabs__panel{ padding:26px 0 6px; }
.kv-pdp-tabs__panel:focus-visible{ outline:none; }

.kv-desc{ display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1.05fr) minmax(0,1fr); gap:28px; align-items:center; }
.kv-desc__text{ position:relative; max-height:14em; overflow:hidden; font-size:14.5px; line-height:1.65; color: var(--c-text-muted); }
.kv-desc__text:not(.is-open)::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:4.5em; background:linear-gradient(rgba(251,253,253,0), var(--c-bg)); }
.kv-desc__text.is-open{ max-height:none; }
.kv-desc__text h2{ margin:0 0 10px; font-size:21px; line-height:1.25; color: var(--c-text); }
.kv-desc__text h2 ~ h2{ margin-top:22px; font-size:18px; }
.kv-desc__text p{ margin:0 0 10px; }
.kv-desc__text ul{ margin:0 0 10px; padding-left:18px; }
.kv-desc__text strong{ color: var(--c-text); }
.kv-desc__more{ margin-top:8px; padding:0; border:0; background:none; cursor:pointer; font:inherit; font-size:13.5px; font-weight:700; color: var(--c-primary-dark); text-decoration:underline; text-underline-offset:3px; }
.kv-desc__icons{ list-style:none; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); margin:0; padding:0; }
.kv-desc__icons li{ display:flex; flex-direction:column; align-items:center; gap:10px; padding:8px 12px; text-align:center; }
.kv-desc__icons li + li{ border-left:1px solid var(--c-border); }
.kv-desc__icon svg, .kv-desc__icon img{ width:38px; height:38px; color: var(--c-primary-dark); }
.kv-desc__icons strong{ font-size:13.5px; font-weight:600; line-height:1.3; }
.kv-desc__quote{ position:relative; display:flex; align-items:center; min-height:190px; margin:0; overflow:hidden; border-radius:16px; }
.kv-desc__quote img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.kv-desc__quote::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg, rgba(255,255,255,.88) 0%, rgba(255,255,255,.35) 75%); }
.kv-desc__quote blockquote{ position:relative; z-index:2; margin:0; padding:22px 26px; font-family: var(--font-heading); font-style:italic; font-size:22px; line-height:1.25; color: var(--c-text); }

.kv-bnf{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px; }
.kv-bnf__card{ padding:20px; border:1px solid var(--c-border); border-radius:16px; background:#fff; }
.kv-bnf__icon{ width:46px; height:46px; margin-bottom:12px; display:grid; place-items:center; border-radius:50%; background: var(--c-primary-light); color: var(--c-primary-dark); }
.kv-bnf__icon svg, .kv-bnf__icon img{ width:24px; height:24px; }
.kv-bnf__card h3{ margin:0 0 6px; font-size:16px; }
.kv-bnf__card p{ margin:0; font-size:13.5px; color: var(--c-text-muted); }
.kv-checks{ list-style:none; display:grid; gap:9px; margin:0; padding:0; }
.kv-checks li{ display:flex; align-items:flex-start; gap:10px; font-size:14px; }
.kv-checks svg{ width:18px; height:18px; flex-shrink:0; margin-top:1px; color: var(--c-primary); stroke-width:2.6; }
.kv-bnf__list{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:9px 28px; margin-top:20px; }

.kv-ing{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:36px; }
.kv-ing h3{ margin:0 0 12px; font-size:19px; }
.kv-ing p{ margin:0; font-size:14.5px; line-height:1.65; color: var(--c-text-muted); }
.kv-ing__badges{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 0; padding:0; }
.kv-ing__badges li{ padding:5px 10px; border-radius:999px; background: var(--c-primary-light); color: var(--c-primary-dark); font-size:11.5px; font-weight:700; letter-spacing:.03em; }
.kv-ing__steps{ display:grid; gap:10px; margin:0; padding-left:20px; font-size:14.5px; color: var(--c-text-muted); }
.kv-ing__steps strong{ color: var(--c-text); }
.kv-ing__visual{ width:100%; max-height:240px; margin-top:18px; object-fit:cover; border-radius:14px; }
.kv-ing .woocommerce-product-attributes{ width:100%; margin-top:18px; border:0; border-collapse:collapse; font-size:13.5px; }
.kv-ing .woocommerce-product-attributes th, .kv-ing .woocommerce-product-attributes td{ padding:8px 0; border:0; border-top:1px solid var(--c-border); text-align:left; background:none; }
.kv-ing .woocommerce-product-attributes th{ width:40%; font-weight:600; }
.kv-ing .woocommerce-product-attributes td p{ margin:0; font-size:13.5px; }

.kv-ship{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px; }
.kv-ship__card{ padding:18px; border:1px solid var(--c-border); border-radius:16px; background:#fff; }
.kv-ship__card svg{ width:30px; height:30px; color: var(--c-primary-dark); stroke-width:1.5; }
.kv-ship__card strong{ display:block; margin:10px 0 4px; font-size:15px; }
.kv-ship__card p{ margin:0; font-size:13px; line-height:1.5; color: var(--c-text-muted); }
.kv-ship__card a{ color: var(--c-primary-dark); font-weight:600; text-decoration:underline; }

/* ---- Vous aimerez aussi ---- */
.kv-pdp-related{ margin:44px 0 0; }
.kv-pdp-related__head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:14px; }
.kv-pdp-related__head h2{ margin:0; font-size:24px; }
.kv-pdp-related__head a{ display:inline-flex; align-items:center; gap:6px; font-size:13.5px; font-weight:600; color: var(--c-text); text-decoration:underline; text-underline-offset:3px; }
.kv-pdp-related__head a svg{ width:15px; height:15px; }
.kv-pdp-related__grid{ list-style:none; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px; margin:0; padding:0; }
.kv-mini{ position:relative; display:flex; align-items:center; gap:14px; padding:12px 60px 12px 12px; background:#fff; border:1px solid var(--c-border); border-radius:14px; transition: box-shadow .25s ease; }
.kv-mini:hover{ box-shadow: var(--shadow-md); }
.kv-mini__img{ width:86px; height:86px; flex-shrink:0; overflow:hidden; border-radius:10px; background: color-mix(in srgb, var(--accent, var(--c-primary)) 8%, #fff); }
.kv-mini__img img{ width:100%; height:100%; object-fit:cover; }
.kv-mini__body{ min-width:0; }
.kv-mini__name{ margin:0; font-family: var(--font-heading); font-size:15px; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.kv-mini__name a{ color: var(--c-text); }
.kv-mini__line{ margin:2px 0 0; font-size:12px; color: var(--c-text-muted); }
.kv-mini__rating{ display:flex; align-items:center; gap:5px; margin:4px 0 0; font-size:11.5px; color: var(--c-text-muted); }
.kv-mini__rating .kv-stars{ font-size:12px; }
.kv-mini__price{ margin:4px 0 0; font-family: var(--font-heading); font-size:18px; font-weight:700; color: var(--c-text); }
.kv-mini__price del{ margin-right:4px; font-size:13px; opacity:.5; }
.kv-mini__price ins{ text-decoration:none; }
.kv-mini__cart{ position:absolute; right:12px; bottom:12px; width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background: var(--c-primary-dark); color:#fff; transition: background .2s ease, transform .2s ease; }
.kv-mini__cart svg{ width:18px; height:18px; }
.kv-mini__cart:hover{ background: var(--c-primary); color:#fff; transform:scale(1.06); }
.kv-mini__cart--ghost{ background: var(--c-primary-light); color: var(--c-primary-dark); }
.kv-mini__cart.loading{ opacity:.6; }
.kv-mini__cart.added{ background:#1c7a47; }
.kv-mini .added_to_cart{ display:none !important; }

/* ---- Bandeau de marque ---- */
.kv-brand-strip{
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:28px;
  margin:44px 0 0; padding:20px 28px; border:1px solid var(--c-border); border-radius:16px; background: var(--c-primary-soft);
}
.kv-brand-strip__id{ display:flex; align-items:center; gap:16px; }
.kv-brand-strip__id img{ width:auto; height:30px; }
.kv-brand-strip__id p{ max-width:18ch; margin:0; font-size:13px; line-height:1.4; color: var(--c-text-muted); }
.kv-brand-strip ul{ list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:14px 30px; margin:0; padding:0; }
.kv-brand-strip li{ display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; }
.kv-brand-strip li svg{ width:22px; height:22px; color: var(--c-primary-dark); stroke-width:1.5; }
.kv-brand-strip__script{ margin:0; font-family:'Caveat', 'Segoe Script', cursive; font-size:24px; line-height:1.1; color: var(--c-primary-dark); text-align:right; transform:rotate(-3deg); }

/* ---- Responsive ---- */
@media (max-width:1200px){
  .kv-pdp__hero{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-areas:"gallery info" "gallery buy"; }
  .kv-pdp__buy{ position:static; }
  .kv-pdp-trust{ grid-template-columns:repeat(3, minmax(0,1fr)); row-gap:14px; }
  .kv-pdp-trust li:nth-child(4){ border-left:0; }
  .kv-desc{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .kv-desc__main{ grid-column:1 / -1; }
  .kv-bnf, .kv-ship{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .kv-pdp-related__grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width:860px){
  .kv-pdp__hero{ grid-template-columns:minmax(0,1fr); grid-template-areas:"gallery" "info" "buy"; gap:22px; }
  .kv-pdp-trust{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .kv-pdp-trust li + li{ border-left:0; }
  .kv-desc, .kv-ing{ grid-template-columns:minmax(0,1fr); }
  .kv-brand-strip{ grid-template-columns:minmax(0,1fr); justify-items:center; text-align:center; }
  .kv-brand-strip__id{ flex-direction:column; gap:8px; }
  .kv-brand-strip__script{ text-align:center; }
}
@media (max-width:560px){
  .kv-pdp-related__grid, .kv-bnf, .kv-ship, .kv-pdp-trust{ grid-template-columns:minmax(0,1fr); }
  .kv-bnf__list{ grid-template-columns:minmax(0,1fr); }
  .kv-cure__grid{ gap:6px; }
  .kv-cure__label{ font-size:14px; }
  .kv-cure__price{ font-size:15px; }
  .kv-desc__icons li{ padding:8px 6px; }
  .kv-pdp .flex-direction-nav a{ top:calc(50% - 60px); width:34px; height:34px; }
}
@media (prefers-reduced-motion:reduce){
  .kv-cure__opt, .kv-mini, .kv-mini__cart, .kv-pdp .flex-direction-nav a{ transition:none; }
}

/* Fiche produit à options (Goût…) : le formulaire de variantes garde ses marges
   d'origine, qui creusaient de grands blancs dans la carte d'achat. */
.woocommerce div.product .kv-pdp__buy form.variations_form{ margin-top:0; }
.woocommerce div.product .kv-pdp__buy table.variations{ margin:0; }
.woocommerce div.product .kv-pdp__buy table.variations tr{ margin-bottom:10px; }
.woocommerce div.product .kv-pdp__buy table.variations tr:last-child{ margin-bottom:0; }
.woocommerce div.product .kv-pdp__buy table.variations td select{ height:44px; border-radius:10px; }
.woocommerce div.product .kv-pdp__buy .single_variation_wrap{ display:grid; gap:10px; }
.woocommerce div.product .kv-pdp__buy .woocommerce-variation:empty,
.woocommerce div.product .kv-pdp__buy .woocommerce-variation[style*="display: none"]{ display:none; }
.woocommerce div.product .kv-pdp__buy .woocommerce-variation{ margin:0; }
.woocommerce div.product .kv-pdp__buy .woocommerce-variation-add-to-cart{ display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
/* Lien « Effacer » invisible tant qu'aucune option n'est choisie : il ne doit pas occuper de place. */
.woocommerce div.product .kv-pdp__buy .reset_variations{ margin-top:4px; }
.woocommerce div.product .kv-pdp__buy .reset_variations[style*="hidden"]{ display:none; }

/* ==========================================================================
   Fiche produit — sections détaillées (inc/product-sections.php)
   Un seul système : en-tête commun, cartes blanches, deux panneaux teintés max.
   ========================================================================== */
/* Les sections vivent déjà dans le conteneur de la page : pas de second conteneur ni de fond en retrait. */
.kv-pdp__sections .container{ max-width:none; padding-inline:0; }
.kv-ps{ padding-block:clamp(30px,4.2vw,54px); }
.kv-ps__head{ max-width:640px; margin:0 0 24px; }
.kv-ps__head--center{ margin-inline:auto; text-align:center; }
.kv-ps__head h2{ margin:0; font-size:clamp(24px,2.6vw,32px); line-height:1.15; text-wrap:balance; }
.kv-ps__intro{ margin:10px 0 0; font-size:15.5px; line-height:1.6; color: var(--c-text-muted); }
.kv-ps__foot{ margin:14px 0 0; font-size:12.5px; color: var(--c-text-muted); }
.kv-ps__split{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.25fr); gap:clamp(24px,4vw,56px); align-items:center; }
.kv-ps__split > .kv-ps__head{ margin:0; }
.kv-panel{ position:relative; overflow:hidden; padding:clamp(24px,4vw,48px); border-radius:24px; }
.kv-panel--soft{ background: var(--c-primary-soft); border:1px solid var(--c-border); }
.kv-panel--dark{
  color:#fff;
  background:
    radial-gradient(80% 120% at 0% 0%, rgba(15,138,150,.85) 0%, transparent 58%),
    radial-gradient(60% 100% at 100% 100%, rgba(200,162,74,.25) 0%, transparent 60%),
    var(--c-primary-dark);
}
.kv-panel--dark .kv-eyebrow{ color: rgba(255,255,255,.7); }
.kv-panel--dark h2{ color:#fff; }
.kv-panel--dark .kv-ps__intro{ color: rgba(255,255,255,.78); }

/* ---- Actifs ---- */
.kv-actives{ list-style:none; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; margin:0; padding:0; }
.kv-active{ display:flex; align-items:center; gap:14px; padding:14px 16px; background:#fff; border:1px solid var(--c-border); border-radius:16px; transition: box-shadow .25s ease, transform .25s ease; }
.kv-active:hover{ box-shadow: var(--shadow-md); transform:translateY(-2px); }
.kv-active__ico{ width:58px; height:58px; flex-shrink:0; display:grid; place-items:center; overflow:hidden; border-radius:50%; background: var(--c-primary-soft); color: var(--c-primary-dark); }
.kv-active__ico img{ width:100%; height:100%; object-fit:cover; }
.kv-active__ico svg{ width:26px; height:26px; }
.kv-active__txt{ display:flex; flex-direction:column; min-width:0; line-height:1.3; }
.kv-active__txt strong{ font-family: var(--font-heading); font-size:16px; }
.kv-active__txt small{ margin-top:2px; font-size:12.5px; font-weight:600; color: var(--c-primary); }

/* ---- Assimilation (panneau sombre) ---- */
.kv-dalt{ display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr); gap:clamp(24px,4vw,48px); align-items:center; }
.kv-dalt__visual{ position:absolute; right:-40px; bottom:-70px; width:340px; max-width:none; opacity:.16; pointer-events:none; }
.kv-dalt__text, .kv-dalt__stats{ position:relative; }
.kv-dalt__compare{ display:flex; align-items:stretch; gap:12px; margin-top:24px; }
.kv-dalt__chain{ flex:1; display:flex; flex-direction:column; gap:3px; padding:14px 16px; border-radius:14px; background: rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); }
.kv-dalt__chain strong{ font-size:14.5px; }
.kv-dalt__chain small{ font-size:12px; color: rgba(255,255,255,.72); }
.kv-dalt__chain.is-good{ background: rgba(255,255,255,.14); border-color: rgba(200,162,74,.55); }
.kv-dalt__dots{ display:flex; gap:4px; margin-bottom:6px; }
.kv-dalt__dots i{ width:8px; height:8px; border-radius:50%; background: rgba(255,255,255,.4); }
.kv-dalt__chain.is-good .kv-dalt__dots i{ width:11px; height:11px; background: var(--c-gold); }
.kv-dalt__vs{ align-self:center; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color: rgba(255,255,255,.6); }
.kv-dalt__stats{ list-style:none; display:grid; gap:10px; margin:0; padding:0; }
.kv-dalt__stats li{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:16px 20px; border-radius:14px; background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); }
.kv-dalt__stats strong{ font-family: var(--font-heading); font-size:28px; line-height:1; }
.kv-dalt__stats span{ font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color: rgba(255,255,255,.75); text-align:right; }

/* ---- Goût ---- */
.kv-flavor{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); align-items:stretch; overflow:hidden; border-radius:24px;
  background: color-mix(in srgb, var(--accent, var(--c-primary)) 6%, #fff); border:1px solid color-mix(in srgb, var(--accent, var(--c-primary)) 16%, #fff);
}
.kv-flavor.is-plain{ grid-template-columns:minmax(0,1fr); }
.kv-flavor__media{ min-height:280px; padding:16px; }
.kv-flavor__media img{ width:100%; height:100%; object-fit:cover; border-radius:18px; }
.kv-flavor__body{ align-self:center; padding:clamp(22px,4vw,44px); }
.kv-flavor__body h2{ margin:0 0 18px; font-size:clamp(24px,2.6vw,32px); line-height:1.15; }
.kv-flavor .kv-checks svg{ color: var(--accent, var(--c-primary)); }
.kv-flavor .kv-checks li{ font-size:15px; }

/* ---- Utilisation ---- */
.kv-routine2{ display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(24px,4vw,48px); align-items:center; }
.kv-routine2.has-photo{ grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
.kv-routine2__photo{ margin:0; overflow:hidden; border-radius:18px; aspect-ratio:4/5; max-height:520px; }
.kv-routine2__photo img{ width:100%; height:100%; object-fit:cover; }
.kv-routine2__body .kv-ps__head{ margin-bottom:20px; }
.kv-steps{ list-style:none; display:grid; gap:10px; margin:0 0 16px; padding:0; }
.kv-routine2:not(.has-photo) .kv-steps{ grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); }
.kv-steps li{ display:flex; align-items:center; gap:14px; padding:12px 16px; background:#fff; border:1px solid var(--c-border); border-radius:14px; }
.kv-steps__num{ width:32px; height:32px; flex-shrink:0; display:grid; place-items:center; border-radius:50%; background: var(--c-primary-dark); color:#fff; font-family: var(--font-heading); font-size:15px; font-weight:700; }
.kv-steps__ico{ width:50px; height:50px; flex-shrink:0; overflow:hidden; border-radius:50%; background: var(--c-primary-soft); }
.kv-steps__ico img{ width:100%; height:100%; object-fit:cover; }
.kv-steps__txt{ display:flex; flex-direction:column; min-width:0; line-height:1.35; }
.kv-steps__txt strong{ font-size:15px; }
.kv-steps__txt small{ font-size:13px; color: var(--c-text-muted); }
.kv-tip{ display:flex; align-items:flex-start; gap:10px; margin:0; padding:14px 16px; border-radius:14px; background:#fff; border-left:3px solid var(--c-gold); font-size:14px; line-height:1.5; color: var(--c-text-muted); }
.kv-tip svg{ width:20px; height:20px; flex-shrink:0; color: var(--c-gold); }
.kv-tip strong{ color: var(--c-text); }

/* ---- Chiffres clés ---- */
.kv-science2{ display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(24px,4vw,48px); align-items:center; }
.kv-science2.has-visual{ grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); }
.kv-science2__visual{ margin:0; }
.kv-science2__visual img{ width:100%; max-height:340px; object-fit:contain; }
.kv-figures{ list-style:none; display:grid; grid-template-columns:repeat(auto-fit, minmax(170px,1fr)); gap:12px; margin:0; padding:0; }
.kv-figures li{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:20px 18px; background:#fff; border:1px solid var(--c-border); border-radius:16px; }
.kv-science2:not(.has-visual) .kv-figures li{ align-items:center; text-align:center; }
.kv-figures__ico{ width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background: var(--c-primary-light); color: var(--c-primary-dark); }
.kv-figures__ico svg{ width:20px; height:20px; }
.kv-figures strong{ font-family: var(--font-heading); font-size:clamp(24px,2.4vw,30px); line-height:1.1; color: var(--c-primary-dark); }
.kv-figures li > span:last-child{ font-size:13px; line-height:1.4; color: var(--c-text-muted); }
.kv-science2:not(.has-visual) .kv-ps__foot{ text-align:center; }

/* ---- Avis (dans la fiche : panneau clair, sans second conteneur) ---- */
.kv-pdp__sections .kv-reviews{ margin-block:clamp(16px,2vw,24px); padding:clamp(24px,4vw,44px); border-radius:24px; background: var(--c-primary-soft); border:1px solid var(--c-border); }

/* ---- Comparatif ---- */
.kv-table-wrap{ overflow-x:auto; }
.kv-compare__table{ width:100%; border-collapse:separate; border-spacing:0; overflow:hidden; background:#fff; border:1px solid var(--c-border); border-radius:16px; font-size:14px; }
.kv-compare__table th, .kv-compare__table td{ padding:14px 16px; text-align:left; border-top:1px solid var(--c-border); }
.kv-compare__table thead th{ border-top:0; background: var(--c-primary-soft); font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color: var(--c-text-muted); }
.kv-compare__table tbody th{ font-weight:600; }
.kv-compare__table td{ width:1%; white-space:nowrap; text-align:center; }
.kv-compare__table thead th:not(:first-child){ text-align:center; }
.kv-yes{ display:inline-grid; place-items:center; width:28px; height:28px; border-radius:50%; background: var(--c-primary-dark); color:#fff; }
.kv-yes svg{ width:15px; height:15px; stroke-width:2.8; }
.kv-maybe{ display:inline-block; padding:4px 10px; border-radius:999px; background:#f2f5f5; font-size:12px; font-weight:600; color: var(--c-text-muted); }

/* ---- FAQ ---- */
.kv-faq2{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr); gap:clamp(24px,4vw,56px); align-items:start; }
.kv-faq2__side{ position:sticky; top:110px; }
.kv-faq2__cta{ display:inline-flex; margin-top:4px; }
.kv-faq2__list{ border-top:1px solid var(--c-border); }
.kv-faq2__item{ border-bottom:1px solid var(--c-border); }
.kv-faq2__item summary{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 2px; cursor:pointer; list-style:none; font-size:16px; font-weight:600; color: var(--c-text); }
.kv-faq2__item summary::-webkit-details-marker{ display:none; }
.kv-faq2__item summary:hover{ color: var(--c-primary-dark); }
.kv-faq2__item summary:focus-visible{ outline:2px solid var(--c-primary); outline-offset:2px; border-radius:6px; }
.kv-faq2__chev{ width:9px; height:9px; flex-shrink:0; margin-right:4px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transition: transform .2s ease; }
.kv-faq2__item[open] .kv-faq2__chev{ transform:rotate(-135deg); }
.kv-faq2__item p{ margin:0; padding:0 2px 18px; font-size:15px; line-height:1.65; color: var(--c-text-muted); }

/* ---- Onglet Ingrédients : tableau nutritionnel, précautions ---- */
.kv-ing__nutri{ margin-top:28px; }
.kv-ing__nutri h3{ margin:0 0 12px; font-size:19px; }
.kv-nutri{ width:100%; min-width:420px; border-collapse:separate; border-spacing:0; overflow:hidden; background:#fff; border:1px solid var(--c-border); border-radius:14px; font-size:14px; }
.kv-nutri th, .kv-nutri td{ padding:11px 16px; text-align:right; border-top:1px solid var(--c-border); }
.kv-nutri thead th{ border-top:0; background: var(--c-primary-soft); font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color: var(--c-text-muted); }
.kv-nutri tbody th{ text-align:left; font-weight:600; }
.kv-nutri tr.is-sub th{ padding-left:32px; font-weight:400; color: var(--c-text-muted); }
.kv-ing__foot{ margin:10px 0 0; font-size:12.5px; line-height:1.55; color: var(--c-text-muted); }
.kv-note-warn, .kv-pdp__warning{ display:flex; align-items:flex-start; gap:10px; margin:22px 0 0; padding:12px 16px; border-radius:12px; background:#fbf5e6; border:1px solid #f0e2bd; font-size:13.5px; line-height:1.5; color:#6b5212; }
.kv-note-warn svg, .kv-pdp__warning svg{ width:18px; height:18px; flex-shrink:0; margin-top:1px; color:#b98a1c; }
.kv-pdp__warning{ margin-top:16px; padding:10px 12px; font-size:12.5px; }

/* ---- Responsive ---- */
@media (max-width:900px){
  .kv-ps__split, .kv-dalt, .kv-flavor, .kv-routine2.has-photo, .kv-science2.has-visual, .kv-faq2{ grid-template-columns:minmax(0,1fr); }
  .kv-faq2__side{ position:static; }
  .kv-routine2__photo{ aspect-ratio:16/10; }
  .kv-flavor__media{ min-height:220px; padding:12px 12px 0; }
  .kv-science2__visual img{ max-height:220px; }
}
@media (max-width:560px){
  .kv-actives{ grid-template-columns:minmax(0,1fr); }
  .kv-dalt__compare{ flex-direction:column; }
  .kv-dalt__vs{ align-self:flex-start; }
  .kv-figures{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (prefers-reduced-motion:reduce){ .kv-active, .kv-faq2__chev{ transition:none; } .kv-active:hover{ transform:none; } }
.kv-actives.is-single{ grid-template-columns:minmax(0,1fr); max-width:520px; }
.kv-compare__table thead th{ white-space:nowrap; }

/* ==========================================================================
   Boutique sans colonne de filtres (retour du 10/09) : grille pleine largeur,
   deux offres seules en raccourci.
   ========================================================================== */
.kv-shop-layout{ grid-template-columns:minmax(0,1fr); }
.kv-shop-tiles{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; }
.kv-shop-tile{ min-height:84px; padding:16px 22px; }
.kv-shop-tile__ico{ width:48px; height:48px; }
.kv-shop-tile__txt strong{ font-size:19px; }
.kv-shop-tile__txt span{ font-size:14px; }
.kv-shop-main ul.products{ grid-template-columns:repeat(5, minmax(0,1fr)); gap:18px; }
@media (max-width:1280px){ .kv-shop-main ul.products{ grid-template-columns:repeat(4, minmax(0,1fr)); } }
@media (max-width:1024px){ .kv-shop-main ul.products{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width:720px){
  .kv-shop-tiles{ grid-template-columns:minmax(0,1fr); }
  .kv-shop-main ul.products{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
}

/* ==========================================================================
   Fiche produit : colonnes équilibrées (retour du 10/09).
   Les pastilles forment une zone à part, sous la galerie ; la carte d'achat
   est compacte (options côte à côte, quantité sur une ligne).
   ========================================================================== */
.kv-pdp__hero{
  grid-template-areas:"gallery info buy" "extra info buy";
  grid-template-rows:auto 1fr;
  row-gap:18px;
}
.kv-pdp__extra{ grid-area:extra; min-width:0; }
.kv-pdp__extra .kv-pdp__badges{
  grid-template-columns:repeat(4, minmax(0,1fr)); gap:10px; padding:16px 14px; border:1px solid var(--c-border); border-top:1px solid var(--c-border);
  border-radius:16px; background:#fff;
}
.kv-pdp__extra .kv-pdp__badges li{ flex-direction:column; align-items:center; gap:6px; text-align:center; font-size:11.5px; }
.kv-pdp__extra .kv-pdp__badges svg{ width:26px; height:26px; }

.kv-pdp__buy{ padding:18px; }
.kv-pdp__buy-title{ margin-bottom:12px; }
.kv-cure__opt{ gap:4px; padding:14px 4px 9px; }
.kv-cure__per{ font-size:10.5px; white-space:nowrap; }
.kv-cure__more{ margin-top:8px; }
.woocommerce div.product .kv-pdp__buy form.cart{ margin:14px 0 8px; gap:8px; }
/* Achat unique / Abonnement côte à côte. */
.kv-pdp__buy .kv-buy{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; margin:0 0 2px; }
.kv-pdp__buy .kv-buy__opt, .kv-pdp__buy .kv-buy__opt--sub{
  display:grid; grid-template-columns:16px minmax(0,1fr); grid-template-rows:auto auto; column-gap:8px; row-gap:4px;
  align-items:center; padding:10px 12px;
}
.kv-pdp__buy .kv-buy__radio, .kv-pdp__buy .kv-buy__opt--sub .kv-buy__radio, .kv-pdp__buy .kv-buy__opt:not(.kv-buy__opt--sub) .kv-buy__radio{ grid-column:1; grid-row:1; width:16px; height:16px; margin:0; align-self:center; }
.kv-pdp__buy .kv-buy__txt strong, .kv-pdp__buy .kv-buy__opt--sub .kv-buy__txt strong{ grid-column:2; grid-row:1; font-size:14px; white-space:nowrap; }
.kv-pdp__buy .kv-buy__badge{ margin-left:4px; padding:1px 6px; font-size:10.5px; }
.kv-pdp__buy .kv-buy__price, .kv-pdp__buy .kv-buy__opt--sub .kv-buy__price{ grid-column:1 / -1; grid-row:2; text-align:left; font-size:15px; white-space:normal; }
.kv-pdp__buy .kv-buy__price del{ font-size:12px; }
.kv-pdp__buy .kv-buy__price small{ margin-left:2px; font-size:11px; }
.kv-pdp__buy .kv-buy__freq{ grid-column:1 / -1; padding:10px 12px; }
.kv-pdp__buy .kv-buy__freq select{ height:36px; }
.kv-pdp__buy .kv-buy__freq p{ font-size:11.5px; line-height:1.45; }
/* Quantité sur une ligne : libellé à gauche, sélecteur à droite. */
.woocommerce div.product .kv-pdp__buy form.cart,
.woocommerce div.product .kv-pdp__buy .woocommerce-variation-add-to-cart{ grid-template-columns:auto minmax(0,1fr); column-gap:14px; }
.woocommerce div.product .kv-pdp__buy form.cart > *,
.woocommerce div.product .kv-pdp__buy .woocommerce-variation-add-to-cart > *{ grid-column:1 / -1; }
.woocommerce div.product .kv-pdp__buy form.cart > .kv-pdp__field-label,
.woocommerce div.product .kv-pdp__buy .woocommerce-variation-add-to-cart > .kv-pdp__field-label{ grid-column:1; margin:0; align-self:center; }
.woocommerce div.product .kv-pdp__buy form.cart > .quantity,
.woocommerce div.product .kv-pdp__buy .woocommerce-variation-add-to-cart > .quantity{ grid-column:2; }
.woocommerce div.product .kv-pdp__buy form.cart .quantity input.qty{ height:40px; }
.woocommerce div.product .kv-pdp__buy form.cart .single_add_to_cart_button{ height:48px; margin-top:2px; }
.kv-pdp__buy .kv-buy-now{ height:44px; }
.kv-pdp__buy-foot{ flex-wrap:nowrap; margin-top:12px; padding-top:10px; font-size:12px; }
.kv-pdp__buy-foot .kv-heart--text{ font-size:12px; white-space:nowrap; }
.kv-pdp__stock{ white-space:nowrap; }

@media (max-width:1200px){
  .kv-pdp__hero{ grid-template-areas:"gallery info" "extra buy"; grid-template-rows:auto auto; }
}
@media (max-width:860px){
  .kv-pdp__hero{ grid-template-areas:"gallery" "info" "extra" "buy"; }
  .kv-pdp__extra .kv-pdp__badges{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .kv-pdp__extra .kv-pdp__badges li{ flex-direction:row; text-align:left; }
}
/* Option étroite : la remise devient une étiquette dans le coin, au lieu de déborder à droite du titre. */
.kv-pdp__buy .kv-buy__opt--sub .kv-buy__badge{ position:absolute; top:-9px; right:10px; margin:0; box-shadow:0 2px 6px rgba(12,40,43,.12); }
.kv-pdp__buy .kv-buy__opt{ position:relative; }

/* Icônes de bienfaits (onglet Description) : pastilles, comme dans l'onglet Bienfaits. */
.kv-desc__icon{ width:64px; height:64px; display:grid; place-items:center; border-radius:50%; background: var(--c-primary-light); color: var(--c-primary-dark); }
.kv-desc__icon svg, .kv-desc__icon img{ width:30px; height:30px; stroke-width:1.6; }
.kv-bnf__icon svg{ stroke-width:1.6; }

/* Bloc « Que voulez-vous améliorer ? » : icônes en pastilles, comme sur les fiches produit. */
.kv-concern__head{ gap:10px; }
.kv-concern__icon{ width:34px; height:34px; flex-shrink:0; display:grid; place-items:center; border-radius:50%; background: var(--c-primary-light); color: var(--c-primary-dark); transition: background .25s ease, color .25s ease; }
.kv-concern__head .kv-concern__icon svg{ width:18px; height:18px; color:currentColor; stroke-width:1.7; }
a.kv-concern:hover .kv-concern__icon{ background: var(--c-primary-dark); color:#fff; }
@media (prefers-reduced-motion:reduce){ .kv-concern__icon{ transition:none; } }

/* =====================================================================
 * Diagnostic (page Quiz) : page-quiz.php + assets/js/quiz.js
 * =================================================================== */
.kvq-page{
  --g:#2f8f4e; --g-dark:#1f6b39; --g-soft:#eef7f0; --g-line:#cfe6d6;
  background:
    radial-gradient(900px 420px at 88% -80px, rgba(47,143,78,.10), transparent 70%),
    radial-gradient(700px 380px at -10% 20%, rgba(12,116,128,.07), transparent 70%),
    #fbfcf9;
  padding-block:40px 64px;
}
.kvq-page [hidden]{ display:none !important; }
.kvq-ico{ display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; width:42px; height:42px; border-radius:50%; background:var(--g-soft); color:var(--g); }
.kvq-ico svg{ width:21px; height:21px; }
.kvq-sub{ margin:4px 0 0; color:var(--c-text-muted); font-size:14.5px; line-height:1.5; }
.kvq-eyebrow{ margin:0 0 6px; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--g); }

/* En-tête */
.kvq-head{ position:relative; max-width:940px; margin:0 auto 34px; text-align:center; }
.kvq-badge{ display:inline-flex; align-items:center; gap:8px; margin:0 0 16px; padding:7px 14px; border-radius:999px; background:var(--g-soft); border:1px solid var(--g-line); color:var(--g-dark); font-size:13px; font-weight:600; }
.kvq-badge span{ width:7px; height:7px; border-radius:50%; background:var(--g); box-shadow:0 0 0 4px rgba(47,143,78,.18); }
.kvq-head h1{ margin:0; font-family:var(--font-heading); font-weight:600; font-size:clamp(32px,4.4vw,52px); line-height:1.08; letter-spacing:-.02em; color:var(--c-text); }
.kvq-head h1 em{ font-style:normal; color:var(--g); }
.kvq-head__sub{ max-width:560px; margin:14px auto 0; color:var(--c-text-muted); font-size:16.5px; line-height:1.55; }
.kvq-script{ position:absolute; right:-40px; bottom:-18px; margin:0; font-family:'Caveat','Segoe Script',cursive; font-weight:600; font-size:27px; line-height:1.05; color:var(--g-dark); transform:rotate(-5deg); text-align:left; }
.kvq-script::after{ content:""; display:block; width:74px; height:22px; margin:4px 0 0 18px; border-bottom:2px solid var(--g); border-radius:0 0 60% 40%; opacity:.6; }
@media (max-width:1180px){ .kvq-script{ display:none; } }

/* Scène : introduction + carte du quiz */
.kvq-stage{ display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.3fr); gap:26px; align-items:start; }
.kvq-intro{ position:sticky; top:110px; display:flex; flex-direction:column; gap:18px; padding:26px; border-radius:var(--radius-lg); background:linear-gradient(160deg,#f1f8f2 0%,#f7fbf6 55%,#fff 100%); border:1px solid var(--g-line); }
.kvq-intro__hero{ display:grid; grid-template-columns:1fr 132px; gap:14px; align-items:center; }
.kvq-intro__txt h2{ margin:0 0 8px; font-family:var(--font-heading); font-size:23px; line-height:1.2; font-weight:600; color:var(--c-text); }
.kvq-intro__txt p{ margin:0; color:var(--c-text-muted); font-size:14px; line-height:1.55; }
.kvq-intro__img{ aspect-ratio:1; border-radius:50%; background:radial-gradient(circle at 50% 60%, #fff 0 55%, rgba(47,143,78,.10) 56% 100%); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.kvq-intro__img img{ width:88%; height:88%; object-fit:contain; mix-blend-mode:multiply; }
.kvq-intro__points{ list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.kvq-intro__points li{ display:flex; gap:12px; align-items:center; }
.kvq-intro__points strong{ display:block; font-size:15px; color:var(--c-text); }
.kvq-intro__points small{ display:block; font-size:13px; color:var(--c-text-muted); }
.kvq-how{ padding:18px; border-radius:var(--radius-md); background:#fff; border:1px solid var(--c-border); }
.kvq-how__title{ margin:0 0 12px; font-weight:700; font-size:15px; color:var(--c-text); }
.kvq-how ol{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.kvq-how li{ display:flex; align-items:center; gap:12px; font-size:14px; color:var(--c-text); }
.kvq-how li span{ flex:0 0 26px; height:26px; border-radius:50%; background:var(--g); color:#fff; font-size:13px; font-weight:700; display:flex; align-items:center; justify-content:center; }

.kvq-card{ padding:30px 32px 24px; border-radius:var(--radius-lg); background:#fff; border:1px solid var(--c-border); box-shadow:0 24px 60px rgba(31,107,57,.10); scroll-margin-top:110px; }
.kvq-progress p{ display:flex; justify-content:space-between; margin:0 0 9px; font-size:13.5px; font-weight:600; color:var(--c-text); }
.kvq-progress p span:last-child{ color:var(--g); }
.kvq-bar{ height:8px; border-radius:99px; background:#edf2ee; overflow:hidden; }
.kvq-bar span{ display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#46b36a,var(--g)); transition:width .5s var(--ease-out-quint); }
.kvq-question{ margin-top:24px; }
.kvq-question h2{ margin:0; font-family:var(--font-heading); font-size:clamp(22px,2.4vw,27px); font-weight:600; line-height:1.2; color:var(--c-text); outline:none; }

.kvq-objs{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:18px; }
.kvq-obj{ position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px; padding:18px 12px 16px; border-radius:16px; border:1.5px solid var(--c-border); background:#fff; cursor:pointer; font:inherit; color:var(--c-text); transition:border-color .2s, box-shadow .2s, transform .2s, background .2s; }
.kvq-obj:hover{ border-color:color-mix(in srgb, var(--c) 45%, #fff); transform:translateY(-2px); box-shadow:0 10px 24px rgba(22,40,43,.07); }
.kvq-obj:focus-visible, .kvq-chip:focus-visible, .kvq-opt:focus-visible, .kvq-next:focus-visible, .kvq-cta:focus-visible{ outline:3px solid rgba(47,143,78,.45); outline-offset:2px; }
.kvq-obj__ico{ width:54px; height:54px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:color-mix(in srgb, var(--c) 12%, #fff); color:var(--c); margin-bottom:4px; }
.kvq-obj__ico svg{ width:27px; height:27px; }
.kvq-obj strong{ font-size:15px; }
.kvq-obj small{ font-size:12.5px; line-height:1.35; color:var(--c-text-muted); }
.kvq-obj__tick{ position:absolute; top:9px; right:9px; width:22px; height:22px; border-radius:50%; background:var(--g); color:#fff; display:flex; align-items:center; justify-content:center; opacity:0; transform:scale(.6); transition:.2s; }
.kvq-obj__tick svg{ width:13px; height:13px; }
.kvq-obj.is-on{ border-color:var(--g); background:var(--g-soft); box-shadow:0 0 0 3px rgba(47,143,78,.14); }
.kvq-obj.is-on .kvq-obj__tick{ opacity:1; transform:none; }

.kvq-more{ margin-top:22px; padding-top:18px; border-top:1px dashed var(--c-border); }
.kvq-more__title{ margin:0; font-weight:700; font-size:15px; color:var(--c-text); }
.kvq-more__title span{ font-weight:500; color:var(--c-text-muted); }
.kvq-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.kvq-chip{ display:inline-flex; align-items:center; gap:7px; padding:8px 14px; border-radius:999px; border:1.5px solid var(--c-border); background:#fff; font:inherit; font-size:14px; color:var(--c-text); cursor:pointer; transition:.2s; }
.kvq-chip span{ color:var(--g); font-weight:700; width:12px; text-align:center; }
.kvq-chip:hover{ border-color:var(--g-line); background:#fafdfb; }
.kvq-chip.is-on{ border-color:var(--g); background:var(--g-soft); color:var(--g-dark); font-weight:600; }

.kvq-opts{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:18px; }
.kvq-opt{ display:flex; align-items:center; gap:12px; padding:15px 16px; border-radius:14px; border:1.5px solid var(--c-border); background:#fff; font:inherit; font-size:15px; text-align:left; color:var(--c-text); cursor:pointer; transition:.2s; }
.kvq-opt:hover{ border-color:var(--g-line); background:#fafdfb; }
.kvq-opt__mark{ flex:0 0 22px; height:22px; border-radius:50%; border:1.5px solid #c9d6d8; display:flex; align-items:center; justify-content:center; color:transparent; transition:.2s; }
.kvq-opt.is-multi .kvq-opt__mark{ border-radius:6px; }
.kvq-opt__mark svg{ width:13px; height:13px; }
.kvq-opt.is-on{ border-color:var(--g); background:var(--g-soft); font-weight:600; }
.kvq-opt.is-on .kvq-opt__mark{ background:var(--g); border-color:var(--g); color:#fff; }

.kvq-nav{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:24px; }
.kvq-back{ border:0; background:none; font:inherit; font-size:14.5px; font-weight:600; color:var(--c-text-muted); cursor:pointer; padding:10px 4px; }
.kvq-back:hover{ color:var(--c-text); }
.kvq-next, .kvq-cta{ display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:54px; padding:0 30px; margin-left:auto; border:0; border-radius:14px; background:var(--g); color:#fff; font:inherit; font-size:16px; font-weight:700; cursor:pointer; box-shadow:0 10px 24px rgba(47,143,78,.28); transition:background .2s, transform .2s, box-shadow .2s, opacity .2s; }
.kvq-next svg, .kvq-cta svg{ width:19px; height:19px; }
.kvq-next:hover:not(:disabled), .kvq-cta:hover:not(:disabled){ background:var(--g-dark); transform:translateY(-1px); }
.kvq-next:disabled, .kvq-cta:disabled{ opacity:.45; cursor:not-allowed; box-shadow:none; }
.kvq-cta.is-loading{ opacity:.7; cursor:progress; }
.kvq-hint{ margin:12px 0 0; text-align:right; font-size:13px; color:var(--c-text-muted); }
.kvq-hint span{ color:var(--g-dark); font-weight:600; }

/* Réassurance et preuve sociale */
.kvq-trust{ list-style:none; margin:30px 0 0; padding:18px 20px; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; border-radius:var(--radius-lg); background:#fff; border:1px solid var(--c-border); }
.kvq-trust li{ display:flex; align-items:center; gap:11px; min-width:0; }
.kvq-trust li + li{ border-left:1px solid var(--c-border); padding-left:14px; }
.kvq-trust strong{ display:block; font-size:14px; line-height:1.25; color:var(--c-text); }
.kvq-trust small{ display:block; font-size:12.5px; line-height:1.3; color:var(--c-text-muted); }
.kvq-proof{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:18px 28px; margin-top:26px; }
.kvq-proof__faces{ display:flex; }
.kvq-proof__faces span{ width:40px; height:40px; border-radius:50%; margin-left:-10px; border:3px solid #fbfcf9; display:flex; align-items:center; justify-content:center; font-weight:700; color:#fff; background:var(--c-primary); }
.kvq-proof__faces span:first-child{ margin-left:0; background:var(--g); }
.kvq-proof__faces span:nth-child(3){ background:var(--c-gold-dark); }
.kvq-proof__score strong{ display:block; font-size:15px; color:var(--c-text); }
.kvq-proof__score span{ display:flex; align-items:center; gap:6px; font-size:13.5px; color:var(--c-text-muted); }
.kvq-proof__score b{ color:var(--c-text); }
.kvq-proof__quote{ margin:0; max-width:430px; padding-left:22px; border-left:2px solid var(--g-line); }
.kvq-proof__quote p{ margin:0; font-family:var(--font-heading); font-style:italic; font-size:15.5px; line-height:1.45; color:var(--c-text); }
.kvq-proof__quote cite{ display:block; margin-top:4px; font-style:normal; font-size:12.5px; color:var(--c-text-muted); }
.kvq-disclaimer{ max-width:760px; margin:26px auto 0; text-align:center; font-size:12.5px; line-height:1.55; color:var(--c-text-muted); }

/* Chargement */
.kvq-loading{ max-width:520px; margin:10px auto; padding:48px 28px; text-align:center; border-radius:var(--radius-lg); background:#fff; border:1px solid var(--c-border); box-shadow:var(--shadow-md); }
.kvq-loading h2{ margin:18px 0 14px; font-family:var(--font-heading); font-size:24px; font-weight:600; }
.kvq-loading ul{ list-style:none; margin:0; padding:0; display:grid; gap:8px; color:var(--c-text-muted); font-size:14.5px; }
.kvq-loading li{ opacity:0; animation:kvqIn .4s var(--ease-out-quint) forwards; }
.kvq-loading li:nth-child(2){ animation-delay:.45s; } .kvq-loading li:nth-child(3){ animation-delay:.9s; }
.kvq-loading li::before{ content:"✓ "; color:var(--g); font-weight:700; }
.kvq-spinner{ display:inline-block; width:46px; height:46px; border-radius:50%; border:4px solid var(--g-soft); border-top-color:var(--g); animation:kvqSpin .9s linear infinite; }
@keyframes kvqSpin{ to{ transform:rotate(360deg); } }
@keyframes kvqIn{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }

/* Résultat */
.kvq-result{ display:grid; gap:26px; scroll-margin-top:110px; }
.kvq-res-head{ text-align:center; max-width:720px; margin:0 auto; }
.kvq-res-check{ display:inline-flex; width:52px; height:52px; border-radius:50%; align-items:center; justify-content:center; background:var(--g); color:#fff; margin-bottom:12px; box-shadow:0 0 0 8px var(--g-soft); }
.kvq-res-check svg{ width:26px; height:26px; }
.kvq-res-head h2{ margin:0; font-family:var(--font-heading); font-size:clamp(28px,3.6vw,42px); font-weight:600; line-height:1.12; outline:none; }
.kvq-res-head h2 em{ font-style:normal; color:var(--g); }
.kvq-res-head > p{ margin:12px auto 0; max-width:580px; color:var(--c-text-muted); font-size:16px; line-height:1.55; }
.kvq-res-chips{ list-style:none; margin:16px 0 8px; padding:0; display:flex; flex-wrap:wrap; justify-content:center; gap:6px; }
.kvq-res-chips li{ padding:5px 11px; border-radius:999px; background:#fff; border:1px solid var(--g-line); font-size:13px; color:var(--g-dark); }
.kvq-link{ border:0; background:none; padding:6px; font:inherit; font-size:14px; font-weight:600; color:var(--c-primary); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.kvq-alerts{ display:grid; gap:10px; max-width:900px; margin:0 auto; width:100%; }
.kvq-alert{ padding:14px 18px; border-radius:var(--radius-md); background:#eef6fb; border:1px solid #cfe2ee; }
.kvq-alert.is-warning{ background:#fff7e8; border-color:#f1d9a6; }
.kvq-alert > strong{ display:block; font-size:14.5px; color:var(--c-text); }
.kvq-alert p{ margin:3px 0 0; font-size:14px; line-height:1.5; color:var(--c-text-muted); }



.kvq-science, .kvq-timeline{ padding:28px; border-radius:var(--radius-lg); background:#fff; border:1px solid var(--c-border); }
.kvq-findings{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:16px; }
.kvq-findings article{ padding:16px 18px; border-radius:var(--radius-md); background:#f7faf8; border:1px solid #e6efe8; }
.kvq-findings h4{ margin:0 0 6px; font-size:15px; color:var(--c-text); }
.kvq-findings p{ margin:0; font-size:14px; line-height:1.55; color:var(--c-text-muted); }
.kvq-findings p strong{ color:var(--c-text); font-weight:600; }
.kvq-findings cite{ display:block; margin-top:8px; font-style:normal; font-size:12px; color:var(--g-dark); }
.kvq-timeline ol{ list-style:none; margin:18px 0 0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; counter-reset:t; }
.kvq-timeline li{ position:relative; padding-top:22px; }
.kvq-timeline li::before{ content:""; position:absolute; top:5px; left:0; right:-14px; height:2px; background:var(--g-line); }
.kvq-timeline li:last-child::before{ right:0; }
.kvq-timeline li::after{ content:""; position:absolute; top:0; left:0; width:12px; height:12px; border-radius:50%; background:var(--g); box-shadow:0 0 0 4px var(--g-soft); }
.kvq-timeline li span{ display:block; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--g); }
.kvq-timeline li strong{ display:block; margin:4px 0 3px; font-size:15.5px; color:var(--c-text); }
.kvq-timeline li p{ margin:0; font-size:13.5px; line-height:1.5; color:var(--c-text-muted); }
.kvq-timeline > .kvq-sub{ margin-top:16px; font-size:12.5px; }
.kvq-sticky{ display:none; }

@media (max-width:1024px){
  .kvq-stage{ grid-template-columns:1fr; }
  .kvq-card{ order:-1; }
  .kvq-intro{ position:static; display:grid; grid-template-columns:1fr 1fr; gap:18px; }
  .kvq-intro__hero{ grid-column:1 / -1; }
  .kvq-trust{ grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:16px; }
  .kvq-trust li:nth-child(4){ border-left:0; padding-left:0; }
  .kvq-timeline ol{ grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:20px; }
  .kvq-timeline li::before{ right:0; }
}
@media (max-width:760px){
  .kvq-page{ padding-block:22px 40px; }
  .kvq-head{ margin-bottom:20px; }
  .kvq-head__sub{ font-size:15px; }
  .kvq-card{ padding:20px 16px 18px; border-radius:18px; }
  .kvq-objs{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .kvq-obj{ padding:14px 8px 12px; }
  .kvq-obj__ico{ width:46px; height:46px; }
  .kvq-obj small{ display:none; }
  .kvq-opts{ grid-template-columns:1fr; }
  .kvq-nav{ position:sticky; bottom:0; z-index:5; margin:18px -16px 0; padding:12px 16px; background:rgba(255,255,255,.96); border-top:1px solid var(--c-border); }
  .kvq-next{ flex:1; padding:0 18px; }
  .kvq-hint{ text-align:center; }
  .kvq-intro{ grid-template-columns:1fr; padding:20px; }
  .kvq-intro__hero{ grid-template-columns:1fr 96px; }
  .kvq-trust{ grid-template-columns:1fr 1fr; padding:16px; }
  .kvq-trust li + li{ border-left:0; padding-left:0; }
  .kvq-trust li:last-child{ grid-column:1 / -1; }
  .kvq-proof{ flex-direction:column; text-align:center; }
  .kvq-proof__score span{ justify-content:center; }
  .kvq-proof__quote{ border-left:0; padding-left:0; }
  .kvq-science, .kvq-timeline{ padding:20px 16px; }
  .kvq-findings{ grid-template-columns:1fr; }
  .kvq-timeline ol{ grid-template-columns:1fr; }
  .kvq-result{ padding-bottom:76px; }
  .kvq-sticky{ position:fixed; left:0; right:0; bottom:0; z-index:40; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid var(--c-border); box-shadow:0 -10px 30px rgba(22,40,43,.08); }
  .kvq-sticky span{ font-size:19px; font-weight:800; font-variant-numeric:tabular-nums; }
  .kvq-sticky small{ display:block; font-size:11.5px; font-weight:500; color:var(--c-text-muted); }
  .kvq-sticky .kvq-cta{ min-height:48px; padding:0 18px; margin:0; font-size:15px; }
  /* La bulle d'aide remonte au-dessus des barres d'action fixées en bas. */
  body:has(.kvq-page) #kv-chatbot{ bottom:92px; }
}
@media (prefers-reduced-motion:reduce){
  .kvq-obj, .kvq-bar span, .kvq-loading li{ transition:none; animation:none; opacity:1; }
}

/* Diagnostic : fonds végétaux, panneau photo et icônes (visuels Magnific) */
.kvq-page{ position:relative; isolation:isolate; overflow-x:clip; }
.kvq-page::before, .kvq-page::after{ content:""; position:absolute; z-index:-1; pointer-events:none; background-repeat:no-repeat; background-size:100% 100%; mix-blend-mode:multiply; }
.kvq-page::before{ top:0; left:0; width:min(48vw,660px); aspect-ratio:1100/651; background-image:url(../images/quiz/quiz-bg-leaves-tl.webp); opacity:.6;
  -webkit-mask-image:radial-gradient(120% 120% at 0 0,#000 40%,transparent 75%); mask-image:radial-gradient(120% 120% at 0 0,#000 40%,transparent 75%); }
.kvq-page::after{ right:0; bottom:0; width:min(38vw,520px); aspect-ratio:1100/1067; background-image:url(../images/quiz/quiz-bg-leaves-br.webp); opacity:.5;
  -webkit-mask-image:radial-gradient(110% 110% at 100% 100%,#000 35%,transparent 72%); mask-image:radial-gradient(110% 110% at 100% 100%,#000 35%,transparent 72%); }

.kvq-intro{ padding:0; gap:0; overflow:hidden; background:#fff; border-color:var(--c-border); }
.kvq-intro__hero{ position:relative; display:block; min-height:340px; padding:30px 26px 70px; background:#f4f2ec; }
.kvq-intro__img{ position:absolute; inset:0 0 0 34%; aspect-ratio:auto; border-radius:0; background:none; overflow:hidden; }
.kvq-intro__img img{ width:100%; height:100%; object-fit:cover; object-position:60% 55%; mix-blend-mode:normal; }
.kvq-intro__hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg,#f4f2ec 30%,rgba(244,242,236,.82) 44%,rgba(244,242,236,0) 64%); }
.kvq-intro__txt{ position:relative; z-index:1; max-width:54%; }
.kvq-intro__txt h2{ font-size:clamp(24px,2.3vw,31px); line-height:1.12; margin-bottom:12px; }
.kvq-intro__txt p{ font-size:14.5px; }
.kvq-intro__points{ position:relative; z-index:2; margin:-52px 16px 0; padding:18px; gap:14px; border-radius:18px; background:rgba(255,255,255,.94); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); box-shadow:0 14px 34px rgba(22,40,43,.09); }
.kvq-intro__points .kvq-ico{ width:46px; height:46px; }
.kvq-intro__points .kvq-ico svg{ width:24px; height:24px; }
.kvq-intro__points strong{ font-family:var(--font-heading); font-size:17px; font-weight:600; }
.kvq-how{ margin:6px 16px 16px; padding:14px 4px 0; border:0; border-top:1px solid var(--c-border); border-radius:0; background:none; }
.kvq-how ol{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.kvq-how li{ position:relative; align-items:flex-start; gap:10px; font-size:13px; line-height:1.35; color:var(--c-text-muted); }
.kvq-how li span{ flex:0 0 34px; height:34px; background:var(--g-soft); color:var(--g-dark); font-size:15px; }
.kvq-how li:not(:last-child)::after{ content:"›"; position:absolute; right:-11px; top:5px; font-size:19px; color:#9fb2b5; }

.kvq-obj__ico{ width:58px; height:58px; }
.kvq-obj__ico svg{ width:31px; height:31px; }

.kvq-trust{ background:linear-gradient(90deg,#e9f5f3,#edf5f8); border-color:#d6ebea; }
.kvq-trust li + li{ border-left-color:#d3e6e6; }
.kvq-ico--flat{ background:#fff; border-radius:12px; box-shadow:0 3px 10px rgba(22,40,43,.07); color:inherit; }
.kvq-ico--flat svg{ width:26px; height:26px; }

@media (max-width:1024px){
  .kvq-intro{ display:flex; }
  .kvq-intro__img{ inset:0 0 0 40%; }
}
@media (max-width:760px){
  .kvq-page::before{ width:80vw; opacity:.45; }
  .kvq-page::after{ display:none; }
  .kvq-intro{ padding:0; }
  .kvq-intro__hero{ min-height:280px; padding:22px 18px 64px; }
  .kvq-intro__img{ inset:0 0 0 30%; }
  .kvq-intro__hero::after{ background:linear-gradient(90deg,#f4f2ec 36%,rgba(244,242,236,.8) 52%,rgba(244,242,236,0) 76%); }
  .kvq-intro__txt{ max-width:64%; }
  .kvq-intro__points{ margin:-48px 12px 0; }
  .kvq-how{ margin:4px 12px 14px; }
  .kvq-how ol{ grid-template-columns:1fr; gap:10px; }
  .kvq-how li{ align-items:center; }
  .kvq-how li::after{ display:none; }
}

/* Diagnostic : préoccupations sur une seule ligne (défilement au doigt sur mobile) */
.kvq-chips{ flex-wrap:nowrap; gap:7px; }
.kvq-chip{ flex:0 0 auto; padding:8px 12px; font-size:13.5px; white-space:nowrap; }
@media (max-width:1180px){
  .kvq-chips{ overflow-x:auto; scrollbar-width:none; margin-inline:-4px; padding:2px 4px 6px; scroll-snap-type:x proximity; }
  .kvq-chips::-webkit-scrollbar{ display:none; }
  .kvq-chip{ scroll-snap-align:start; }
}
@media (max-width:760px){
  .kvq-chips{ margin-inline:-16px; padding-inline:16px; }
}

/* Pictos en trait : un léger contour pour qu'ils restent lisibles en petit */
.kvq-obj__ico svg :is(path,circle,ellipse,polygon,polyline,line):not([class$="cls-1"]):not([style*="stroke"]){ stroke:currentColor; stroke-width:.7px; vector-effect:non-scaling-stroke; stroke-linejoin:round; }
.kvq-intro__points .kvq-ico svg :is(path,circle,ellipse,polygon,polyline,line):not([style*="stroke"]){ stroke:currentColor; stroke-width:.5px; vector-effect:non-scaling-stroke; }

/* Panneau d'introduction : le titre ne touche plus la pochette */
.kvq-intro__img{ inset:0 0 0 42%; }
.kvq-intro__img img{ object-position:30% 55%; }
.kvq-intro__txt{ max-width:47%; }
.kvq-intro__txt h2{ font-size:clamp(23px,2.1vw,28px); }
.kvq-intro__hero::after{ background:linear-gradient(90deg,#f4f2ec 38%,rgba(244,242,236,.8) 50%,rgba(244,242,236,0) 66%); }
.kvq-how ol{ gap:20px; }
.kvq-how li{ font-size:12.5px; }
.kvq-how li span{ flex-basis:30px; height:30px; font-size:14px; }
.kvq-how li:not(:last-child)::after{ right:-15px; }
@media (max-width:760px){
  .kvq-intro__img{ inset:0 0 0 46%; }
  .kvq-intro__txt{ max-width:56%; }
  .kvq-intro__txt h2{ font-size:22px; }
  .kvq-intro__hero::after{ background:linear-gradient(90deg,#f4f2ec 44%,rgba(244,242,236,.75) 56%,rgba(244,242,236,0) 74%); }
  .kvq-how li{ font-size:13.5px; }
}

/* Diagnostic : la ligne de puces défile sans élargir la carte (grille à une colonne) */
.kvq-card, .kvq-intro, .kvq-question, .kvq-more{ min-width:0; }
@media (max-width:1024px){
  .kvq-stage{ grid-template-columns:minmax(0,1fr); }
}

/* =====================================================================
 * Diagnostic : résultat (maquette « Votre routine … est prête »)
 * =================================================================== */
.kvq-page.is-result{ padding-block:28px 56px; }
.kvq-result{ display:block; }
.kvq-res-grid{ position:relative; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:30px; align-items:start; }
.kvq-res-main{ display:grid; gap:22px; min-width:0; }
.kvq-res-head{ text-align:left; max-width:none; margin:0; }
.kvq-res-eyebrow{ display:flex; align-items:center; gap:12px; margin:0 0 12px; font-size:12.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--c-text-muted); }
.kvq-res-head .kvq-res-check{ width:40px; height:40px; margin:0; box-shadow:0 0 0 6px var(--g-soft); }
.kvq-res-head .kvq-res-check svg{ width:20px; height:20px; }
.kvq-res-head h2{ font-size:clamp(30px,3.3vw,44px); }
.kvq-res-head > p{ margin:10px 0 0; max-width:640px; font-size:15.5px; color:var(--c-text-muted); }
.kvq-res-head .kvq-res-chips{ justify-content:flex-start; margin:14px 0 8px; }
.kvq-res-chips li{ padding:6px 13px; font-size:13px; }
.kvq-res-links{ display:flex; flex-wrap:wrap; gap:4px 18px; margin:0; }
.kvq-res-links .kvq-link{ padding:4px 0; font-size:13.5px; }

.kvq-result .kvq-alerts{ grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); max-width:none; margin:0; gap:14px; }
.kvq-alert{ display:flex; gap:12px; align-items:flex-start; padding:16px 18px; }
.kvq-alert > div > strong{ display:block; font-size:14.5px; color:var(--c-text); }
.kvq-alert p strong{ display:inline; font-size:inherit; }
.kvq-alert__ico{ flex:0 0 30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:15px; font-family:Georgia,serif; color:#fff; background:#2f6fb0; }
.kvq-alert.is-warning .kvq-alert__ico{ background:#e8a13a; border-radius:8px; font-family:inherit; }

.kvq-reco h3, .kvq-res-bottom h3{ margin:0; font-family:var(--font-heading); font-size:25px; font-weight:600; color:var(--c-text); }
.kvq-reco .kvq-prods{ display:grid; gap:14px; margin-top:14px; }
.kvq-rprod{ display:grid; grid-template-columns:132px minmax(0,1fr) auto; gap:20px; padding:16px; border-radius:18px; background:#fff; border:1px solid var(--c-border); box-shadow:0 6px 20px rgba(22,40,43,.05); transition:opacity .2s; }
.kvq-rprod.is-main{ border-color:var(--g-line); box-shadow:0 14px 34px rgba(31,107,57,.10); }
.kvq-rprod.is-off{ opacity:.55; }
.kvq-rprod__img{ display:block; aspect-ratio:1; border-radius:14px; overflow:hidden; background:color-mix(in srgb, var(--c) 9%, #fff); }
.kvq-rprod__img img{ width:100%; height:100%; object-fit:cover; }
.kvq-rprod__badge{ display:inline-block; padding:3px 9px; border-radius:6px; background:var(--g-soft); color:var(--g-dark); font-size:11.5px; font-weight:700; }
.kvq-rprod:not(.is-main) .kvq-rprod__badge{ background:#f1f4f5; color:var(--c-text-muted); }
.kvq-rprod h4{ margin:8px 0; font-family:var(--font-heading); font-size:19px; font-weight:600; line-height:1.25; }
.kvq-rprod h4 a{ color:var(--c-text); text-decoration:none; }
.kvq-rprod h4 a:hover{ color:var(--g-dark); }
.kvq-rprod__bullets{ list-style:none; margin:0; padding:0; display:grid; gap:5px; }
.kvq-rprod__bullets li{ display:flex; gap:8px; align-items:flex-start; font-size:13.5px; line-height:1.4; color:var(--c-text); }
.kvq-rprod__bullets svg{ flex:0 0 16px; width:16px; height:16px; margin-top:1px; padding:2px; border-radius:4px; background:var(--g); color:#fff; }
.kvq-rprod__foot{ display:flex; align-items:center; justify-content:space-between; gap:8px 12px; flex-wrap:wrap; margin-top:10px; }
.kvq-rprod__rating{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--c-text-muted); }
.kvq-rprod__rating b{ color:var(--c-text); }
.kvq-rprod__link{ display:inline-flex; align-items:center; gap:5px; font-size:13.5px; font-weight:600; color:var(--c-primary-dark); text-decoration:underline; text-underline-offset:3px; }
.kvq-rprod__link svg{ width:14px; height:14px; }
.kvq-rprod__side{ display:flex; flex-direction:column; align-items:flex-end; text-align:right; min-width:92px; }
.kvq-rprod__price{ font-size:21px; font-weight:800; white-space:nowrap; font-variant-numeric:tabular-nums; color:var(--c-text); }
.kvq-rprod__price del{ display:block; font-size:12.5px; font-weight:500; color:var(--c-text-muted); }
.kvq-rprod__side small{ font-size:13px; color:var(--c-text-muted); }
.kvq-rprod__toggle{ display:inline-flex; align-items:center; gap:6px; margin-top:auto; padding-top:10px; font-size:13px; font-weight:600; color:var(--g-dark); cursor:pointer; }
.kvq-rprod__toggle input{ width:18px; height:18px; accent-color:var(--g); }
.kvq-stars{ position:relative; display:inline-block; font-size:15px; letter-spacing:1px; line-height:1; color:#dfe5e6; }
.kvq-stars span{ position:absolute; inset:0 auto 0 0; overflow:hidden; white-space:nowrap; color:#f0b429; }

.kvq-rsum{ position:sticky; top:100px; min-width:0; padding:24px; border-radius:22px; background:#fff; border:1px solid var(--c-border); box-shadow:0 26px 60px rgba(22,40,43,.10); }
.kvq-rsum__top{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.kvq-rsum__title{ display:flex; align-items:center; gap:10px; margin:0; font-family:var(--font-heading); font-size:24px; font-weight:600; color:var(--c-text); }
.kvq-rsum__title svg{ width:24px; height:24px; color:var(--g-dark); }
.kvq-rsum__badge{ display:inline-flex; align-items:center; gap:8px; padding:7px 12px; border-radius:999px; background:var(--g-soft); color:var(--g-dark); font-size:11.5px; font-weight:600; line-height:1.2; }
.kvq-rsum__badge svg{ flex:0 0 auto; width:18px; height:18px; }
.kvq-rsum__dur{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.kvq-rsum__dur button{ display:flex; flex-direction:column; align-items:center; gap:3px; min-height:74px; padding:10px 6px; border-radius:12px; border:1.5px solid var(--c-border); background:#f7faf8; font:inherit; color:var(--c-text); cursor:pointer; transition:border-color .2s, background .2s, box-shadow .2s; }
.kvq-rsum__dur strong{ font-size:15px; }
.kvq-rsum__dur small{ font-size:12px; color:var(--c-text-muted); }
.kvq-rsum__dur em{ font-style:normal; padding:2px 8px; border-radius:6px; background:#dff0e4; color:var(--g-dark); font-size:12px; font-weight:700; }
.kvq-rsum__dur button[aria-checked="true"]{ border-color:var(--g); background:var(--g-soft); box-shadow:0 0 0 3px rgba(47,143,78,.12); }
.kvq-rsum__dur button[aria-checked="true"] em{ background:var(--g); color:#fff; }
.kvq-rsum__dur button:focus-visible, .kvq-rsum__buy:focus-visible{ outline:3px solid rgba(47,143,78,.45); outline-offset:2px; }
.kvq-rsum__lines{ list-style:none; margin:16px 0 0; padding:0 0 14px; display:grid; gap:12px; border-bottom:1px solid var(--c-border); }
.kvq-rsum__lines li{ display:grid; grid-template-columns:48px minmax(0,1fr) auto; gap:12px; align-items:center; }
.kvq-rsum__lines img{ width:48px; height:48px; border-radius:10px; object-fit:cover; background:#f3f6f6; }
.kvq-rsum__lines strong{ display:block; font-size:14px; line-height:1.3; color:var(--c-text); }
.kvq-rsum__lines small{ display:block; font-size:12.5px; color:var(--c-text-muted); }
.kvq-rsum__lines b{ font-size:15px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.kvq-rsum__rows{ display:grid; gap:8px; margin:14px 0 0; }
.kvq-rsum__rows div{ display:flex; justify-content:space-between; gap:12px; font-size:14px; }
.kvq-rsum__rows dt{ color:var(--c-text); }
.kvq-rsum__rows dd{ margin:0; font-weight:600; font-variant-numeric:tabular-nums; white-space:nowrap; }
.kvq-rsum__rows .is-save dt, .kvq-rsum__rows .is-save dd, .kvq-rsum__rows .is-free{ color:var(--g); }
.kvq-rsum__ship{ display:flex; align-items:center; gap:8px; margin:12px 0 0; padding:9px 12px; border-radius:10px; background:var(--g-soft); font-size:13px; font-weight:600; color:var(--g-dark); }
.kvq-rsum__ship svg{ flex:0 0 auto; width:18px; height:18px; }
.kvq-rsum__total{ display:flex; justify-content:space-between; align-items:flex-end; gap:12px; margin-top:14px; padding:16px; border-radius:14px; background:#f3f8f4; }
.kvq-rsum__total strong{ display:block; font-size:16px; color:var(--c-text); }
.kvq-rsum__total small{ display:block; margin-top:2px; font-size:13px; color:var(--c-text-muted); }
.kvq-rsum__total > div:last-child{ text-align:right; }
.kvq-rsum__total b{ display:block; font-size:30px; font-weight:800; line-height:1.1; font-variant-numeric:tabular-nums; color:var(--c-text); }
.kvq-rsum__total span{ display:inline-block; margin-top:6px; padding:3px 9px; border-radius:999px; background:#dcefe1; color:var(--g-dark); font-size:12px; font-weight:700; }
.kvq-rsum .kvq-rsum__add{ width:100%; min-height:58px; margin:16px 0 0; background:var(--g-dark); }
.kvq-rsum .kvq-rsum__add:hover:not(:disabled){ background:#17542c; }
.kvq-rsum__buy{ display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:52px; margin-top:10px; border-radius:14px; border:1.5px solid var(--g-dark); background:#fff; color:var(--g-dark); font:inherit; font-size:16px; font-weight:700; cursor:pointer; transition:background .2s; }
.kvq-rsum__buy svg{ width:18px; height:18px; }
.kvq-rsum__buy:hover:not(:disabled){ background:var(--g-soft); }
.kvq-rsum__buy:disabled{ opacity:.45; cursor:not-allowed; }
.kvq-rsum__fine{ margin:10px 0 0; text-align:center; font-size:12px; line-height:1.45; color:var(--c-text-muted); }
.kvq-rsum__empty{ margin:16px 0 0; font-size:14px; color:var(--c-text-muted); }
.kvq-rsum__trust{ list-style:none; margin:16px 0 0; padding:14px 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; border-top:1px solid var(--c-border); }
.kvq-rsum__trust li{ display:flex; align-items:center; gap:8px; font-size:11.5px; line-height:1.3; color:var(--c-text-muted); }
.kvq-rsum__trust svg{ flex:0 0 22px; width:22px; height:22px; color:var(--g-dark); }

.kvq-res-script{ position:absolute; top:30px; right:-215px; width:190px; margin:0; font-family:'Caveat','Segoe Script',cursive; font-weight:600; font-size:28px; line-height:1.05; color:var(--c-gold-dark); transform:rotate(-8deg); }
.kvq-res-badge{ position:absolute; top:560px; right:-200px; width:150px; aspect-ratio:1; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:16px; text-align:center; background:rgba(255,255,255,.85); border:1px solid var(--g-line); color:var(--g-dark); }
.kvq-res-badge svg{ width:26px; height:26px; color:var(--g); }
.kvq-res-badge span{ font-size:10.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; line-height:1.4; }
.kvq-res-badge em{ font-style:normal; font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--c-text-muted); }
@media (max-width:1640px){ .kvq-res-script, .kvq-res-badge{ display:none; } }

.kvq-res-bottom{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:22px; margin-top:28px; }
.kvq-res-bottom .kvq-science, .kvq-res-bottom .kvq-timeline{ padding:24px; border-radius:20px; background:rgba(255,255,255,.94); border:1px solid var(--c-border); }
.kvq-res-bottom .kvq-findings{ grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:14px; }
.kvq-res-bottom .kvq-findings article{ display:flex; gap:12px; }
.kvq-finding__ico{ flex:0 0 42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--g-soft); color:var(--g); }
.kvq-finding__ico svg{ width:21px; height:21px; }
.kvq-res-bottom .kvq-findings h4{ font-family:var(--font-heading); font-size:15.5px; font-weight:600; }
.kvq-res-bottom .kvq-timeline ol{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.kvq-res-bottom .kvq-timeline li strong{ font-size:14.5px; }
.kvq-res-bottom .kvq-timeline li p{ font-size:12.5px; }

.kvq-page.is-result .kvq-foot{ display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:22px; align-items:stretch; margin-top:22px; }
.kvq-page.is-result .kvq-trust{ margin:0; grid-template-columns:repeat(4,minmax(0,1fr)); background:#fff; }
.kvq-page.is-result .kvq-trust li:first-child{ display:none; }
.kvq-page.is-result .kvq-trust li:nth-child(2){ border-left:0; padding-left:0; }
.kvq-page.is-result .kvq-proof{ flex-direction:column-reverse; flex-wrap:nowrap; align-items:flex-start; justify-content:center; gap:8px; margin:0; padding:18px 22px; border-radius:var(--radius-lg); background:#fff; border:1px solid var(--c-border); text-align:left; }
.kvq-page.is-result .kvq-proof__faces, .kvq-page.is-result .kvq-proof__score strong{ display:none; }
.kvq-page.is-result .kvq-proof__quote{ max-width:none; padding-left:0; border-left:0; }

@media (max-width:1100px){
  .kvq-res-grid{ grid-template-columns:minmax(0,1fr); }
  .kvq-rsum{ position:static; }
  .kvq-res-bottom, .kvq-page.is-result .kvq-foot{ grid-template-columns:minmax(0,1fr); }
}
@media (max-width:760px){
  .kvq-rprod{ grid-template-columns:84px minmax(0,1fr); gap:12px; padding:14px; }
  .kvq-rprod__side{ grid-column:1 / -1; flex-direction:row; align-items:baseline; gap:6px; padding-top:10px; border-top:1px solid var(--c-border); text-align:left; }
  .kvq-rprod__price del{ display:inline; margin-right:6px; }
  .kvq-rprod__toggle{ margin:0 0 0 auto; padding:0; }
  .kvq-rsum{ padding:18px; }
  .kvq-rsum__top{ flex-wrap:wrap; }
  .kvq-rsum__trust{ grid-template-columns:minmax(0,1fr); }
  .kvq-result .kvq-alerts{ grid-template-columns:minmax(0,1fr); }
  .kvq-res-bottom .kvq-findings, .kvq-res-bottom .kvq-timeline ol{ grid-template-columns:minmax(0,1fr); }
  .kvq-res-bottom .kvq-timeline li::before{ display:none; }
  .kvq-page.is-result .kvq-trust{ grid-template-columns:1fr 1fr; }
}

/* Diagnostic : bandeau de confiance compact à côté de l'avis (résultat) */
.kvq-page.is-result .kvq-trust{ padding:14px 16px; gap:10px; align-items:center; }
.kvq-page.is-result .kvq-trust li{ gap:9px; }
.kvq-page.is-result .kvq-trust li + li{ padding-left:10px; }
.kvq-page.is-result .kvq-trust .kvq-ico{ width:34px; height:34px; }
.kvq-page.is-result .kvq-trust .kvq-ico svg{ width:20px; height:20px; }
.kvq-page.is-result .kvq-trust strong{ font-size:12.5px; }
.kvq-page.is-result .kvq-trust small{ font-size:11px; }

/* =====================================================================
 * Page « À propos » (bloc kvital/about-hub)
 * =================================================================== */
.kv-ab{ --g:#2f7d4f; --g-dark:#1f5e3a; --g-soft:#eef5ef; background:#fbfaf6; padding-bottom:56px; overflow-x:clip; }
.kv-ab__hero{ position:relative; isolation:isolate; padding:48px 0 76px; text-align:center; background:linear-gradient(180deg,#f5f3ec 0%,#fbfaf6 100%); }
.kv-ab__hero::before, .kv-ab__hero::after{ content:""; position:absolute; z-index:-1; pointer-events:none; background-repeat:no-repeat; background-size:100% 100%; mix-blend-mode:multiply; }
.kv-ab__hero::before{ top:0; left:0; width:min(40vw,560px); aspect-ratio:1100/651; background-image:url(../images/quiz/quiz-bg-leaves-tl.webp); opacity:.75;
  -webkit-mask-image:radial-gradient(120% 120% at 0 0,#000 40%,transparent 75%); mask-image:radial-gradient(120% 120% at 0 0,#000 40%,transparent 75%); }
.kv-ab__hero::after{ top:0; right:0; width:min(34vw,470px); height:100%; background-image:url(../images/quiz/quiz-bg-leaves-br.webp); background-size:cover; background-position:left center; opacity:.7;
  -webkit-mask-image:linear-gradient(270deg,#000 35%,transparent 95%); mask-image:linear-gradient(270deg,#000 35%,transparent 95%); }
.kv-ab__eyebrow{ margin:0 0 14px; font-size:12.5px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--c-text-muted); }
.kv-ab__title{ max-width:960px; margin:0 auto; font-family:var(--font-heading); font-weight:600; font-size:clamp(30px,3.5vw,46px); line-height:1.12; letter-spacing:-.01em; color:var(--c-text); }
.kv-ab__title span{ display:block; color:var(--g); }
.kv-ab__intro{ max-width:640px; margin:16px auto 0; font-size:16px; line-height:1.6; color:var(--c-text-muted); }
.kv-ab__script{ position:absolute; top:190px; right:max(24px,calc((100vw - 1240px) / 2)); max-width:220px; margin:0; font-family:'Caveat','Segoe Script',cursive; font-weight:600; font-size:27px; line-height:1.05; color:var(--g-dark); text-align:left; transform:rotate(-12deg); }
.kv-ab__script::after{ content:""; display:block; width:60px; height:2px; margin:10px 0 0 40px; background:var(--g-dark); opacity:.6; transform:rotate(6deg); }

.kv-ab__pills{ position:relative; z-index:2; list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:16px; margin:-36px 0 0; padding:0; }
.kv-ab__pills li{ display:flex; align-items:center; gap:12px; padding:12px 24px 12px 12px; border-radius:999px; background:#fff; border:1px solid var(--c-border); box-shadow:0 12px 30px rgba(22,40,43,.08); text-align:left; }
.kv-ab__pills strong{ display:block; font-size:14.5px; color:var(--c-text); }
.kv-ab__pills small{ display:block; font-size:12.5px; color:var(--c-text-muted); }
.kv-ab__ico{ flex:0 0 auto; width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--g-soft); color:var(--g-dark); }
.kv-ab__ico svg{ width:22px; height:22px; }

.kv-ab__grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:40px; }
.kv-ab-card{ position:relative; display:block; min-height:232px; border-radius:18px; overflow:hidden; background:#fff; border:1px solid var(--c-border); box-shadow:0 8px 24px rgba(22,40,43,.06); color:inherit; text-decoration:none; transition:transform .25s var(--ease-out-quint), box-shadow .25s; }
a.kv-ab-card:hover{ transform:translateY(-4px); box-shadow:0 20px 44px rgba(22,40,43,.11); }
a.kv-ab-card:focus-visible{ outline:3px solid rgba(47,125,79,.45); outline-offset:3px; }
.kv-ab-card__media{ position:absolute; inset:0 0 0 40%; }
.kv-ab-card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease-out-quint); }
a.kv-ab-card:hover .kv-ab-card__media img{ transform:scale(1.04); }
.kv-ab-card__media::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.88) 18%,rgba(255,255,255,0) 58%); }
.kv-ab-card__tag{ position:absolute; top:18px; right:18px; z-index:2; max-width:150px; padding-bottom:4px; border-bottom:2px solid var(--g); font-size:10.5px; font-weight:700; line-height:1.35; letter-spacing:.14em; text-transform:uppercase; color:var(--c-text); }
.kv-ab-card__body{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:flex-start; min-height:232px; max-width:62%; padding:22px 0 22px 24px; }
.kv-ab-card h2{ margin:14px 0 0; font-family:var(--font-heading); font-size:24px; font-weight:600; line-height:1.15; color:var(--c-text); }
.kv-ab-card h2::after{ content:""; display:block; width:26px; height:2px; margin-top:9px; border-radius:2px; background:var(--g); }
.kv-ab-card p{ margin:10px 0 16px; font-size:14px; line-height:1.5; color:var(--c-text-muted); }
.kv-ab-card__link{ display:inline-flex; align-items:center; gap:6px; margin-top:auto; font-size:14px; font-weight:700; color:var(--g-dark); }
.kv-ab-card__link svg{ width:15px; height:15px; transition:transform .2s; }
a.kv-ab-card:hover .kv-ab-card__link svg{ transform:translateX(3px); }

.kv-ab__values{ position:relative; overflow:hidden; margin-top:36px; padding:30px 24px 34px; border-radius:24px; background:linear-gradient(180deg,#eff5ef 0%,#f5f7f1 100%); text-align:center; }
.kv-ab__values h2{ margin:0; font-family:var(--font-heading); font-size:clamp(23px,2.2vw,29px); font-weight:600; color:var(--c-text); }
.kv-ab__values h2::after{ content:""; display:block; width:44px; height:2px; margin:12px auto 0; border-radius:2px; background:var(--g); }
.kv-ab__values ul{ list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); max-width:1000px; margin:22px auto 0; padding:0; }
.kv-ab__values li{ padding:4px 28px; }
.kv-ab__values li + li{ border-left:1px solid #d9e6db; }
.kv-ab__value-ico{ display:inline-flex; color:var(--g-dark); }
.kv-ab__value-ico svg{ width:32px; height:32px; }
.kv-ab__values h3{ margin:10px 0 6px; font-family:var(--font-heading); font-size:17.5px; font-weight:600; color:var(--c-text); }
.kv-ab__values p{ margin:0; font-size:14px; line-height:1.55; color:var(--c-text-muted); }
.kv-ab__values-script{ position:absolute; right:46px; top:22px; max-width:150px; margin:0; font-family:'Caveat','Segoe Script',cursive; font-weight:600; font-size:24px; line-height:1.05; color:var(--g-dark); transform:rotate(-12deg); }

@media (max-width:1360px){ .kv-ab__script{ display:none; } }
@media (max-width:1240px){ .kv-ab__values-script{ display:none; } }
@media (max-width:1100px){ .kv-ab__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px){
  .kv-ab__hero{ padding:34px 0 64px; }
  .kv-ab__hero::after{ width:46vw; opacity:.45; }
  .kv-ab__intro{ font-size:15px; }
  .kv-ab__pills{ flex-direction:column; align-items:stretch; gap:10px; margin-top:-40px; }
  .kv-ab__pills li{ border-radius:16px; }
  .kv-ab__grid{ grid-template-columns:minmax(0,1fr); gap:14px; margin-top:28px; }
  .kv-ab-card, .kv-ab-card__body{ min-height:200px; }
  .kv-ab-card__body{ max-width:64%; padding:18px 0 18px 18px; }
  .kv-ab-card h2{ font-size:21px; }
  .kv-ab__values ul{ grid-template-columns:minmax(0,1fr); gap:18px; }
  .kv-ab__values li + li{ border-left:0; border-top:1px solid #d9e6db; padding-top:18px; }
}
@media (prefers-reduced-motion:reduce){ .kv-ab-card, .kv-ab-card__media img, .kv-ab-card__link svg{ transition:none; } }

/* Carte « Cacherout » : le sceau passe par .kv-seal (masque CSS), jamais par une image */
.kv-ab-card__seal{ position:absolute; z-index:2; top:50%; right:5%; --seal-h:86px; color:#2b2a26; transform:translateY(-44%) rotate(-9deg); filter:drop-shadow(0 6px 10px rgba(60,50,30,.12)); }
@media (max-width:700px){ .kv-ab-card__seal{ --seal-h:78px; right:6%; } }

/* =====================================================================
 * Page « Où nous trouver » (bloc kvital/store-locator)
 * =================================================================== */
.kv-sl{ background:#fbfaf6; padding-bottom:56px; }  /* pas d'overflow ici : il annulerait le position:sticky de la carte */
.kv-sl__hero{ position:relative; isolation:isolate; overflow:hidden; padding-block:34px 30px; background:linear-gradient(90deg,#f7f5ef 0%,#f3f1ea 60%,#edf0e8 100%); }
.kv-sl__hero::before{ content:""; position:absolute; z-index:-1; top:0; left:0; width:min(34vw,470px); aspect-ratio:1100/651; background:url(../images/quiz/quiz-bg-leaves-tl.webp) no-repeat 0 0/100% 100%; mix-blend-mode:multiply; opacity:.55; pointer-events:none;
  -webkit-mask-image:radial-gradient(120% 120% at 0 0,#000 35%,transparent 72%); mask-image:radial-gradient(120% 120% at 0 0,#000 35%,transparent 72%); }
.kv-sl__hero::after{ content:""; position:absolute; z-index:-1; right:0; bottom:0; width:min(30vw,420px); height:100%; background:url(../images/quiz/quiz-bg-leaves-br.webp) no-repeat right bottom/cover; mix-blend-mode:multiply; opacity:.55; pointer-events:none;
  -webkit-mask-image:linear-gradient(270deg,#000 30%,transparent 95%); mask-image:linear-gradient(270deg,#000 30%,transparent 95%); }
.kv-sl__hero-in{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr) auto; align-items:center; gap:28px; }
.kv-sl__eyebrow{ margin:0 0 10px; font-size:12.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--c-text-muted); }
.kv-sl__title{ margin:0; font-family:var(--font-heading); font-weight:600; font-size:clamp(34px,4vw,54px); line-height:1.05; letter-spacing:-.01em; color:var(--c-text); }
.kv-sl__sub{ margin:6px 0 0; font-family:var(--font-heading); font-weight:500; font-size:clamp(20px,2vw,27px); line-height:1.2; color:var(--c-text); }
.kv-sl__intro{ max-width:560px; margin:14px 0 0; font-size:15.5px; line-height:1.6; color:var(--c-text-muted); }
.kv-sl__visual{ position:relative; }
.kv-sl__visual img{ display:block; width:100%; max-width:440px; height:auto; margin-inline:auto; filter:drop-shadow(0 22px 26px rgba(30,40,30,.18)); }
.kv-sl__script{ position:absolute; z-index:2; top:-6px; left:-30px; max-width:190px; margin:0; font-family:'Caveat','Segoe Script',cursive; font-weight:600; font-size:26px; line-height:1.05; color:var(--c-primary-dark); transform:rotate(-12deg); }
.kv-sl__points{ list-style:none; display:grid; gap:18px; margin:0; padding:0; }
.kv-sl__points li{ display:flex; align-items:center; gap:12px; font-size:14px; line-height:1.3; color:var(--c-text); }
.kv-sl__ico{ flex:0 0 auto; width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:1.5px solid #c8d8d6; background:rgba(255,255,255,.75); color:var(--c-primary-dark); }
.kv-sl__ico svg{ width:21px; height:21px; }

.kv-sl__bar{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; margin-top:22px; padding:14px 16px; border-radius:18px; background:#edf4f3; border:1px solid #d8e7e5; }
.kv-sl__search{ flex:1 1 360px; display:flex; align-items:center; gap:8px; padding:5px 5px 5px 14px; border-radius:12px; background:#fff; border:1px solid var(--c-border); }
.kv-sl__search:focus-within{ border-color:var(--c-primary); box-shadow:0 0 0 3px rgba(12,116,128,.14); }
.kv-sl__search > svg{ flex:0 0 18px; width:18px; height:18px; color:var(--c-text-muted); }
.kv-sl__search input{ flex:1; min-width:0; padding:9px 4px; border:0; outline:0; background:transparent; font:inherit; font-size:14.5px; color:var(--c-text); }
.kv-sl__search button{ padding:11px 20px; border:0; border-radius:9px; background:var(--c-primary-dark); color:#fff; font:inherit; font-size:14.5px; font-weight:600; cursor:pointer; }
.kv-sl__search button:hover{ background:#053f45; }
.kv-sl__depts{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.kv-sl__depts > span{ margin-right:4px; font-size:13px; color:var(--c-text-muted); }
.kv-sl__chip{ min-width:50px; padding:8px 14px; border-radius:999px; border:1px solid var(--c-border); background:#fff; font:inherit; font-size:13.5px; font-weight:600; color:var(--c-text); cursor:pointer; }
.kv-sl__chip[aria-pressed="true"]{ background:var(--c-primary-dark); border-color:var(--c-primary-dark); color:#fff; }
.kv-sl__tabs{ display:flex; flex-wrap:wrap; gap:8px; margin-left:auto; }
.kv-sl__tab{ display:inline-flex; align-items:center; gap:8px; padding:11px 18px; border-radius:12px; border:1px solid var(--c-border); background:#fff; font:inherit; font-size:14px; font-weight:600; color:var(--c-text); cursor:pointer; }
.kv-sl__tab svg{ width:18px; height:18px; }
.kv-sl__tab[aria-selected="true"]{ background:var(--c-primary-dark); border-color:var(--c-primary-dark); color:#fff; }
.kv-sl__chip:focus-visible, .kv-sl__tab:focus-visible, .kv-sl-card__btn:focus-visible, .kv-sl__search button:focus-visible{ outline:3px solid rgba(12,116,128,.4); outline-offset:2px; }

.kv-sl__main{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr); gap:24px; align-items:start; margin-top:22px; }
.kv-sl__map-wrap{ position:sticky; top:100px; overflow:hidden; border-radius:20px; border:1px solid var(--c-border); background:#e8ede8; box-shadow:0 12px 30px rgba(22,40,43,.07); }
.kv-sl__map{ height:min(580px,72vh); }
.kv-sl__map .leaflet-tile-pane{ filter:saturate(.35) brightness(1.05) contrast(.94); }
.kv-sl__map .leaflet-popup-content{ margin:12px 14px; font:13px/1.45 var(--font-body); }
.kv-sl__map .leaflet-popup-content a{ font-weight:700; color:var(--c-primary-dark); }
.kv-sl__map-head{ position:absolute; z-index:500; top:14px; left:14px; right:14px; max-width:330px; display:flex; gap:10px; padding:14px 16px; border-radius:14px; background:rgba(255,255,255,.94); box-shadow:0 8px 22px rgba(22,40,43,.1); pointer-events:none; }
.kv-sl__map-head > svg{ flex:0 0 22px; width:22px; height:22px; color:var(--c-primary-dark); }
.kv-sl__map-head h2{ margin:0; font-family:var(--font-heading); font-size:19px; font-weight:600; line-height:1.2; color:var(--c-text); }
.kv-sl__map-head p{ margin:4px 0 0; font-size:13px; line-height:1.45; color:var(--c-text-muted); }
.kv-sl-pop{ display:flex; align-items:flex-start; gap:10px; }
.kv-sl-pop__logo{ flex:0 0 42px; display:flex; width:42px; height:42px; align-items:center; justify-content:center; overflow:hidden; border-radius:10px; border:1px solid var(--c-border); background:#fff; object-fit:contain; }
.kv-sl-pop__logo.is-mono{ background:linear-gradient(160deg,var(--c-primary-soft),#fff); font-family:var(--font-heading); font-size:15px; font-weight:600; color:var(--c-primary-dark); }
.kv-sl-pop__txt{ min-width:0; }
.kv-sl-pin{ background:none; border:0; color:var(--c-primary-dark); }
.kv-sl-pin.is-pharmacy{ color:#2f7d4f; }
.kv-sl-pin.is-soon{ color:#98a7a5; }
.kv-sl-pin svg{ width:30px; height:40px; filter:drop-shadow(0 3px 4px rgba(0,0,0,.25)); transform-origin:50% 100%; transition:transform .2s; }
.kv-sl-pin.is-active svg, .kv-sl-pin:hover svg{ transform:scale(1.22); }

.kv-sl__results-head{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; }
.kv-sl__count{ margin:0; font-size:15px; font-weight:700; color:var(--c-text); }
.kv-sl__sort{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--c-text-muted); }
.kv-sl__sort select{ padding:8px 32px 8px 12px; border-radius:10px; border:1px solid var(--c-border); background:#fff; font:inherit; font-size:13.5px; color:var(--c-text); }
.kv-sl__status{ margin:0 0 12px; padding:10px 14px; border-radius:10px; background:#fff7e6; font-size:13px; color:#7a5200; }
.kv-sl__grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px; }
.kv-sl-card{ display:flex; flex-direction:column; padding:16px 16px 14px; border-radius:16px; background:#fff; border:1px solid var(--c-border); box-shadow:0 6px 18px rgba(22,40,43,.05); transition:border-color .2s, box-shadow .2s; }
.kv-sl-card.is-active{ border-color:var(--c-primary); box-shadow:0 0 0 3px rgba(12,116,128,.14), 0 10px 24px rgba(22,40,43,.08); }
.kv-sl-card.is-soon{ background:#f8f9f6; }
.kv-sl-card__head{ display:flex; align-items:flex-start; gap:12px; }
.kv-sl-card__ident{ flex:1; min-width:0; }
.kv-sl-card__logo{ flex:0 0 54px; display:flex; width:54px; height:54px; align-items:center; justify-content:center; overflow:hidden; border-radius:14px; border:1px solid var(--c-border); background:#fff; }
.kv-sl-card__logo img{ width:100%; height:100%; object-fit:contain; padding:5px; }
.kv-sl-card__logo.is-mono{ background:linear-gradient(160deg,var(--c-primary-soft),#fff); border-color:#d5e6e4; font-family:var(--font-heading); font-size:19px; font-weight:600; color:var(--c-primary-dark); }
.kv-sl-card__top{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.kv-sl-card__type{ display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--c-primary-dark); }
.kv-sl-card__type svg{ width:16px; height:16px; }
.kv-sl-card__badge{ padding:3px 10px; border-radius:999px; background:#e5f2ea; color:#1f6b3f; font-size:11.5px; font-weight:700; }
.kv-sl-card.is-soon .kv-sl-card__badge{ background:#fdf0d2; color:#865700; }
.kv-sl-card h3{ margin:6px 0 10px; font-family:var(--font-heading); font-size:18.5px; font-weight:600; line-height:1.25; color:var(--c-text); }
.kv-sl-card ul{ list-style:none; display:grid; gap:6px; margin:0; padding:0; }
.kv-sl-card li{ display:flex; align-items:flex-start; gap:8px; font-size:13px; line-height:1.4; color:#40575a; }
.kv-sl-card li svg{ flex:0 0 15px; width:15px; height:15px; margin-top:1px; color:var(--c-primary); }
.kv-sl-card li a{ color:inherit; text-decoration:none; }
.kv-sl-card li a:hover{ color:var(--c-primary-dark); text-decoration:underline; }
.kv-sl-card__dist{ font-weight:700; color:var(--c-primary-dark); }
.kv-sl-card__note{ margin:8px 0 0; font-size:12.5px; line-height:1.45; color:var(--c-text-muted); }
.kv-sl-card__actions{ display:grid; grid-template-columns:repeat(auto-fit,minmax(0,1fr)); gap:8px; margin-top:auto; padding-top:14px; }
.kv-sl-card__btn{ display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:42px; padding:0 12px; border-radius:999px; border:1.5px solid var(--c-primary-dark); font:inherit; font-size:13px; font-weight:700; text-decoration:none; white-space:nowrap; cursor:pointer; transition:background .2s, color .2s; }
.kv-sl-card__btn svg{ width:15px; height:15px; }
.kv-sl-card__btn--map{ background:var(--c-primary-dark); color:#fff; }
.kv-sl-card__btn--map:hover{ background:#053f45; }
.kv-sl-card__btn--dir{ background:#fff; color:var(--c-primary-dark); }
.kv-sl-card__btn--dir:hover{ background:var(--c-primary-soft); }
.kv-sl__empty{ margin:0; padding:30px 20px; border-radius:16px; border:1px dashed var(--c-border); background:#fff; text-align:center; font-size:14px; color:var(--c-text-muted); }

.kv-sl__trust{ list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:30px 0 0; padding:18px 22px; border-radius:18px; background:#fff; border:1px solid var(--c-border); box-shadow:0 6px 18px rgba(22,40,43,.04); }
.kv-sl__trust li{ display:flex; align-items:center; gap:14px; }
.kv-sl__trust li + li{ padding-left:14px; border-left:1px solid var(--c-border); }
.kv-sl__trust svg{ flex:0 0 30px; width:30px; height:30px; color:var(--c-primary-dark); }
.kv-sl__trust strong{ display:block; font-size:14.5px; color:var(--c-text); }
.kv-sl__trust strong a{ color:inherit; }
.kv-sl__trust small{ display:block; font-size:12.5px; color:var(--c-text-muted); }

@media (max-width:1180px){
  .kv-sl__hero-in{ grid-template-columns:minmax(0,1fr) minmax(0,.85fr); }
  .kv-sl__points{ grid-column:1 / -1; grid-template-columns:repeat(3,auto); justify-content:start; gap:14px 28px; }
  .kv-sl__tabs{ margin-left:0; }
}
@media (max-width:1024px){
  .kv-sl__main{ grid-template-columns:minmax(0,1fr); }
  .kv-sl__map-wrap{ position:relative; top:auto; }
  .kv-sl__map{ height:400px; }
  .kv-sl__trust{ grid-template-columns:1fr 1fr; }
  .kv-sl__trust li:nth-child(3){ padding-left:0; border-left:0; }
}
@media (max-width:700px){
  .kv-sl__hero{ padding-block:26px 24px; }
  .kv-sl__hero-in{ grid-template-columns:minmax(0,1fr); gap:18px; }
  .kv-sl__visual img{ max-width:320px; }
  .kv-sl__script{ display:none; }
  .kv-sl__points{ grid-template-columns:minmax(0,1fr); gap:10px; }
  .kv-sl__bar{ padding:12px; }
  .kv-sl__search{ flex-basis:100%; }
  .kv-sl__search button{ padding:10px 14px; }
  .kv-sl__tabs{ display:grid; grid-template-columns:1fr 1fr; width:100%; }
  .kv-sl__tab{ justify-content:center; padding:10px 8px; font-size:12.5px; }
  .kv-sl__map{ height:330px; }
  .kv-sl__map-head p{ display:none; }
  .kv-sl__grid{ grid-template-columns:minmax(0,1fr); }
  .kv-sl-card__logo{ flex-basis:46px; width:46px; height:46px; }
  .kv-sl__trust{ grid-template-columns:minmax(0,1fr); }
  .kv-sl__trust li + li{ padding-left:0; border-left:0; }
}
@media (prefers-reduced-motion:reduce){ .kv-sl-pin svg, .kv-sl-card{ transition:none; } }
/* Points de vente : les deux boutons d'une fiche ont la même taille (le bouton hérite sinon du style global) */
.kv-sl-card .kv-sl-card__btn{ box-sizing:border-box; height:42px; min-height:42px; margin:0; padding:0 12px; line-height:1; font-size:13px; border-radius:999px; box-shadow:none; }
.kv-sl__map .leaflet-tile-pane{ filter:saturate(.22) brightness(1.08) contrast(.86); }
/* Points de vente : les fiches filtrées (attribut hidden) doivent disparaître malgré leur display:flex */
.kv-sl [hidden]{ display:none !important; }

/* =====================================================================
 * Pages « Pourquoi K-Vital » — base commune
 * =================================================================== */
.kv-st, .kv-ks, .kv-cm, .kv-fq, .kv-ct{ overflow-x:clip; }
.kv-st h1, .kv-ks h1, .kv-cm h1, .kv-fq h1, .kv-ct h1,
.kv-st h2, .kv-ks h2, .kv-cm h2, .kv-fq h2, .kv-ct h2{ font-family:var(--font-heading); font-weight:600; letter-spacing:-.01em; color:var(--c-text); }
.kv-st [hidden], .kv-fq [hidden]{ display:none !important; }

/* ---------- Notre histoire ---------- */
.kv-st{ background:#fbf8f2; padding-bottom:64px; }
.kv-st__hero{ position:relative; isolation:isolate; padding-block:44px 56px; background:linear-gradient(180deg,#f6f1e7 0%,#fbf8f2 100%); }
.kv-st__hero::before{ content:""; position:absolute; z-index:-1; top:0; left:0; width:min(34vw,460px); aspect-ratio:1100/651; background:url(../images/quiz/quiz-bg-leaves-tl.webp) no-repeat 0 0/100% 100%; mix-blend-mode:multiply; opacity:.45; -webkit-mask-image:radial-gradient(120% 120% at 0 0,#000 35%,transparent 72%); mask-image:radial-gradient(120% 120% at 0 0,#000 35%,transparent 72%); }
.kv-st__hero-in{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:56px; align-items:center; }
.kv-st__eyebrow{ margin:0 0 14px; font-size:12.5px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--c-gold-dark); }
.kv-st__title{ margin:0; font-size:clamp(38px,5vw,66px); line-height:1.02; }
.kv-st__lead{ max-width:520px; margin:20px 0 0; font-family:var(--font-heading); font-size:clamp(19px,1.8vw,24px); font-style:italic; line-height:1.4; color:#4b5d60; }
.kv-st__script{ margin:26px 0 0; font-family:'Caveat','Segoe Script',cursive; font-weight:600; font-size:30px; color:var(--c-primary-dark); transform:rotate(-4deg); display:inline-block; }
.kv-st__hero-media{ position:relative; margin:0; justify-self:end; width:min(100%,460px); }
.kv-st__hero-media img{ display:block; width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:240px 240px 26px 26px; box-shadow:0 30px 60px rgba(40,34,20,.16); }
.kv-st__route{ position:absolute; left:-34px; bottom:34px; display:flex; align-items:center; gap:12px; padding:12px 18px 12px 12px; border-radius:16px; background:#fff; box-shadow:0 16px 34px rgba(40,34,20,.14); }
.kv-st__route-ico{ width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--c-primary-light); color:var(--c-primary-dark); }
.kv-st__route-ico svg{ width:20px; height:20px; }
.kv-st__route strong{ display:block; font-size:15px; color:var(--c-text); }
.kv-st__route small{ display:block; font-size:12.5px; color:var(--c-text-muted); }

.kv-st__quote{ padding-block:24px 30px; }
.kv-st__quote figure{ position:relative; max-width:900px; margin:0 auto; padding:46px 56px 40px; border-radius:28px; background:#fff; border:1px solid #efe6d6; box-shadow:0 20px 50px rgba(40,34,20,.07); text-align:center; }
.kv-st__quote-mark{ position:absolute; top:-34px; left:50%; transform:translateX(-50%); width:68px; height:68px; border-radius:50%; display:flex; align-items:center; justify-content:center; padding-top:18px; background:var(--c-primary-dark); color:#fff; font-family:var(--font-heading); font-size:62px; line-height:1; }
.kv-st__quote blockquote{ margin:0; }
.kv-st__quote blockquote p{ margin:0; font-family:var(--font-heading); font-size:clamp(21px,2.3vw,30px); font-style:italic; line-height:1.45; color:var(--c-text); }
.kv-st__quote figcaption{ margin-top:18px; font-family:'Caveat','Segoe Script',cursive; font-size:26px; font-weight:600; color:var(--c-gold-dark); }

.kv-st__chapters{ padding-block:40px 20px; }
.kv-st__chapters .container{ position:relative; display:grid; gap:64px; }
.kv-st__chapters .container::before{ content:""; position:absolute; top:20px; bottom:20px; left:50%; width:1px; background:linear-gradient(180deg,transparent,#e2d5bd 8%,#e2d5bd 92%,transparent); }
.kv-st-ch{ position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:72px; align-items:center; }
.kv-st-ch::before{ content:""; position:absolute; left:50%; top:50%; width:13px; height:13px; margin:-6px 0 0 -6px; border-radius:50%; background:var(--c-gold); box-shadow:0 0 0 6px #fbf8f2, 0 0 0 7px #e2d5bd; }
.kv-st-ch.is-flip .kv-st-ch__media{ order:2; }
.kv-st-ch__media{ margin:0; }
.kv-st-ch__media img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:22px; box-shadow:0 22px 44px rgba(40,34,20,.12); }
.kv-st-ch__num{ display:flex; align-items:center; gap:12px; margin:0 0 12px; font-size:12.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--c-gold-dark); }
.kv-st-ch__num span{ font-family:var(--font-heading); font-size:30px; letter-spacing:0; color:var(--c-primary-dark); }
.kv-st-ch h2{ margin:0 0 14px; font-size:clamp(25px,2.6vw,34px); line-height:1.15; }
.kv-st-ch p{ margin:0 0 12px; font-size:16px; line-height:1.7; color:#4b5d60; }

.kv-st__pillars{ margin-top:56px; padding-block:50px; background:var(--c-primary-dark); color:#fff; }
.kv-st__pillars h2{ margin:0 0 28px; text-align:center; color:#fff; font-size:clamp(26px,2.8vw,36px); }
.kv-st__pillars ul{ list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin:0; padding:0; }
.kv-st__pillars li{ padding:22px 20px; border-radius:18px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); text-align:center; }
.kv-st__pillar-ico{ display:inline-flex; width:50px; height:50px; align-items:center; justify-content:center; border-radius:50%; background:rgba(230,201,138,.16); color:#e6c98a; }
.kv-st__pillar-ico svg{ width:24px; height:24px; }
.kv-st__pillars strong{ display:block; margin-top:12px; font-size:16px; }
.kv-st__pillars small{ display:block; margin-top:4px; font-size:13.5px; color:#c3dcdd; }
.kv-st__pillars-note{ max-width:680px; margin:26px auto 0; text-align:center; font-family:var(--font-heading); font-style:italic; font-size:18px; color:#e8f3f3; }

.kv-st__cta{ padding-top:48px; }
.kv-st__cta-in{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:22px; padding:30px 34px; border-radius:24px; background:#fff; border:1px solid #efe6d6; }
.kv-st__cta h2{ margin:0; font-size:26px; }
.kv-st__cta p{ margin:6px 0 0; color:var(--c-text-muted); }
.kv-st__cta-links{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.kv-st__cta-card{ display:inline-flex; align-items:center; gap:8px; padding:12px 16px; border-radius:12px; border:1px solid var(--c-border); color:var(--c-text); font-weight:600; text-decoration:none; }
.kv-st__cta-card svg{ width:18px; height:18px; color:var(--c-primary); }
.kv-st__cta-card:hover{ border-color:var(--c-primary); }

/* ---------- Cacherout ---------- */
.kv-ks{ background:#f9fbfa; padding-bottom:60px; }
.kv-ks__hero{ position:relative; overflow:hidden; padding-block:56px; background:radial-gradient(900px 500px at 85% 20%,rgba(200,162,74,.18),transparent 60%),linear-gradient(135deg,#053b40 0%,#075158 55%,#0a6069 100%); color:#fff; }
.kv-ks__hero-in{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:center; }
.kv-ks__eyebrow{ margin:0 0 14px; font-size:12.5px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:#e6c98a; }
.kv-ks__hero h1{ margin:0; color:#fff; font-size:clamp(34px,4.3vw,56px); line-height:1.05; }
.kv-ks__lead{ max-width:520px; margin:18px 0 0; font-size:17px; line-height:1.6; color:#cfe3e4; }
.kv-ks__seal-row{ display:inline-flex; align-items:center; gap:14px; margin:28px 0 0; padding:12px 18px; border-radius:16px; background:rgba(255,255,255,.08); border:1px solid rgba(230,201,138,.35); }
.kv-ks__seal-row .kv-seal{ --seal-h:44px; color:#e6c98a; }
.kv-ks__seal-row strong{ display:block; color:#fff; font-size:15px; }
.kv-ks__seal-row small{ display:block; color:#c3dcdd; font-size:12.5px; }
.kv-ks__hero-media{ margin:0; }
.kv-ks__hero-media img{ display:block; width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:24px; box-shadow:0 30px 60px rgba(0,0,0,.35); border:6px solid rgba(255,255,255,.08); }
.kv-ks__sec{ padding-block:60px 0; }
.kv-ks__head{ max-width:720px; margin:0 auto 30px; text-align:center; }
.kv-ks__head h2, .kv-ks__process h2{ margin:0; font-size:clamp(27px,3vw,38px); line-height:1.15; }
.kv-ks__process h2{ text-align:center; margin-bottom:34px; }
.kv-ks__head p{ margin:12px 0 0; font-size:16px; line-height:1.6; color:var(--c-text-muted); }
.kv-ks-levels{ list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:end; margin:0; padding:0; }
.kv-ks-levels__item{ display:flex; flex-direction:column; gap:12px; }
.kv-ks-levels__bar{ height:calc(18px + var(--lvl) * 26px); border-radius:14px 14px 4px 4px; background:linear-gradient(180deg,#d8e8e9,#bcd7d9); }
.kv-ks-levels__item.is-choice .kv-ks-levels__bar{ background:linear-gradient(180deg,#e6c98a,#c8a24a); }
.kv-ks-levels__card{ position:relative; flex:1; padding:22px; border-radius:18px; background:#fff; border:1px solid var(--c-border); }
.kv-ks-levels__item.is-choice .kv-ks-levels__card{ border-color:#e6c98a; box-shadow:0 18px 40px rgba(200,162,74,.18); }
.kv-ks-levels__kicker{ font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--c-text-muted); }
.kv-ks-levels__badge{ position:absolute; top:18px; right:18px; padding:4px 10px; border-radius:999px; background:var(--c-gold); color:#fff; font-size:11.5px; font-weight:700; }
.kv-ks-levels h3{ margin:8px 0 8px; font-family:var(--font-heading); font-size:23px; font-weight:600; }
.kv-ks-levels p{ margin:0; font-size:14.5px; line-height:1.55; color:var(--c-text-muted); }
.kv-ks-risks{ list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:0; padding:0; }
.kv-ks-risks li{ padding:24px 22px; border-radius:18px; background:#fff; border:1px solid var(--c-border); transition:transform .25s, box-shadow .25s; }
.kv-ks-risks li:hover{ transform:translateY(-3px); box-shadow:0 16px 34px rgba(12,116,128,.09); }
.kv-ks-risks__ico{ display:inline-flex; width:50px; height:50px; align-items:center; justify-content:center; border-radius:14px; background:#fbf3e2; color:var(--c-gold-dark); }
.kv-ks-risks__ico svg{ width:25px; height:25px; }
.kv-ks-risks h3{ margin:14px 0 6px; font-family:var(--font-heading); font-size:19px; font-weight:600; }
.kv-ks-risks p{ margin:0; font-size:14px; line-height:1.55; color:var(--c-text-muted); }
.kv-ks-steps{ list-style:none; position:relative; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; margin:0; padding:0; counter-reset:none; }
.kv-ks-steps::before{ content:""; position:absolute; top:27px; left:10%; right:10%; height:2px; background:linear-gradient(90deg,var(--c-primary-light),var(--c-primary),var(--c-gold)); }
.kv-ks-steps li{ position:relative; text-align:center; }
.kv-ks-steps__num{ position:relative; display:inline-flex; width:56px; height:56px; align-items:center; justify-content:center; border-radius:50%; background:#fff; border:2px solid var(--c-primary); font-family:var(--font-heading); font-size:22px; font-weight:600; color:var(--c-primary-dark); box-shadow:0 0 0 8px #f9fbfa; }
.kv-ks-steps li:last-child .kv-ks-steps__num{ border-color:var(--c-gold); background:var(--c-gold); color:#fff; }
.kv-ks-steps h3{ margin:14px 0 6px; font-size:14px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--c-text); }
.kv-ks-steps p{ margin:0; font-size:13.5px; line-height:1.5; color:var(--c-text-muted); }
.kv-ks__parve{ margin-top:64px; padding-block:44px; background:linear-gradient(90deg,#fbf3e2,#f7efe0); }
.kv-ks__parve-in{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:44px; align-items:center; }
.kv-ks__parve-word{ margin:0; font-family:var(--font-heading); font-size:clamp(64px,9vw,120px); font-weight:600; line-height:.9; color:transparent; -webkit-text-stroke:1.5px var(--c-gold-dark); }
.kv-ks__parve h2{ margin:0 0 10px; font-size:clamp(24px,2.6vw,32px); }
.kv-ks__parve p{ margin:0; max-width:640px; font-size:16px; line-height:1.6; color:#5b5040; }
.kv-ks__parve ul{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 0; padding:0; }
.kv-ks__parve li{ padding:7px 14px; border-radius:999px; background:#fff; border:1px solid #ead9b6; font-size:13.5px; font-weight:600; color:#6b5a38; }
.kv-ks__press-in{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:44px; align-items:center; }
.kv-ks__press-media{ margin:0; }
.kv-ks__press-media img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:24px; box-shadow:0 22px 44px rgba(22,40,43,.12); }
.kv-ks__press h2{ margin:0; font-size:clamp(27px,3vw,38px); }
.kv-ks__press-intro{ margin:12px 0 18px; font-size:16px; line-height:1.6; color:var(--c-text-muted); }
.kv-ks__press-logo{ display:block; width:190px; height:auto; margin-bottom:18px; }
.kv-ks-quotes{ display:grid; gap:14px; }
.kv-ks-quote{ margin:0; padding:20px 22px; border-radius:18px; background:#fff; border:1px solid var(--c-border); border-left:4px solid var(--c-gold); }
.kv-ks-quote blockquote{ margin:0; }
.kv-ks-quote blockquote p{ margin:0; font-family:var(--font-heading); font-style:italic; font-size:18.5px; line-height:1.45; color:var(--c-text); }
.kv-ks-quote__note{ margin:8px 0 0; font-size:13.5px; line-height:1.5; color:var(--c-text-muted); }
.kv-ks-quote figcaption{ display:flex; align-items:center; gap:10px; margin-top:14px; }
.kv-ks-quote__avatar{ width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--c-primary-dark); color:#fff; font-weight:700; }
.kv-ks-quote strong{ display:block; font-size:14.5px; }
.kv-ks-quote small{ display:block; font-size:12.5px; color:var(--c-text-muted); }
.kv-ks-quote__link{ display:inline-flex; align-items:center; gap:6px; margin-top:12px; font-size:13.5px; font-weight:700; color:var(--c-primary-dark); }
.kv-ks-quote__link svg{ width:14px; height:14px; }
.kv-ks__article{ margin:16px 0 0; font-size:14px; color:var(--c-text-muted); }
.kv-ks__article a{ font-weight:700; color:var(--c-primary-dark); }
.kv-ks-social{ list-style:none; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(210px,1fr); gap:16px; margin:0; padding:4px 2px 14px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; }
.kv-ks-social li{ scroll-snap-align:start; }
.kv-ks-social a{ display:block; overflow:hidden; border-radius:18px; background:#fff; border:1px solid var(--c-border); color:inherit; text-decoration:none; transition:transform .25s, box-shadow .25s; }
.kv-ks-social a:hover{ transform:translateY(-4px); box-shadow:0 18px 36px rgba(22,40,43,.12); }
.kv-ks-social img{ display:block; width:100%; aspect-ratio:9/13; object-fit:cover; object-position:top; }
.kv-ks-social__body{ display:block; padding:14px 16px 16px; }
.kv-ks-social strong{ display:flex; align-items:center; gap:6px; font-size:14px; color:var(--c-primary-dark); }
.kv-ks-social strong svg{ width:16px; height:16px; }
.kv-ks-social small{ display:block; margin-top:6px; font-size:13px; line-height:1.45; color:var(--c-text-muted); }
.kv-ks__outro{ padding-top:40px; text-align:center; }
.kv-ks__outro p{ max-width:640px; margin:0 auto 16px; font-family:var(--font-heading); font-style:italic; font-size:19px; color:var(--c-text); }

/* ---------- Nos engagements ---------- */
.kv-cm{ background:#fff; padding-bottom:64px; }
.kv-cm__hero{ position:relative; isolation:isolate; padding-block:80px 64px; background:#06343a; color:#fff; text-align:center; overflow:hidden; }
.kv-cm__hero::before{ content:""; position:absolute; inset:0; z-index:-2; background:var(--kv-cm-bg) center/cover no-repeat; opacity:.9; }
.kv-cm__hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(4,40,44,.55) 0%,rgba(4,40,44,.35) 45%,rgba(4,40,44,.85) 100%); }
.kv-cm__eyebrow{ margin:0 0 14px; font-size:12.5px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; color:#e6c98a; }
.kv-cm__hero h1{ margin:0 auto; max-width:820px; color:#fff; font-size:clamp(36px,5vw,64px); line-height:1.05; }
.kv-cm__lead{ max-width:620px; margin:18px auto 0; font-size:17px; line-height:1.6; color:#d7e8e9; }
.kv-cm__nav{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:34px; }
.kv-cm__nav a{ display:inline-flex; align-items:center; gap:10px; padding:10px 18px 10px 10px; border-radius:999px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22); color:#fff; font-size:14px; font-weight:600; text-decoration:none; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); transition:background .2s; }
.kv-cm__nav a:hover{ background:rgba(255,255,255,.2); }
.kv-cm__nav span{ display:inline-flex; width:30px; height:30px; align-items:center; justify-content:center; border-radius:50%; background:#e6c98a; color:#06343a; font-size:12.5px; font-weight:800; }
.kv-cm-item{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:64px; align-items:center; padding-top:80px; scroll-margin-top:90px; }
.kv-cm-item.is-flip .kv-cm-item__media{ order:2; }
.kv-cm-item__media{ position:relative; }
.kv-cm-item__media img{ display:block; width:100%; aspect-ratio:5/4; object-fit:cover; border-radius:26px; }
.kv-cm-item__tag{ position:absolute; left:20px; bottom:20px; padding:9px 16px; border-radius:999px; background:rgba(255,255,255,.94); font-size:13px; font-weight:700; color:var(--c-primary-dark); box-shadow:0 10px 24px rgba(0,0,0,.12); }
.kv-cm-item__body{ position:relative; }
.kv-cm-item__num{ position:absolute; top:-58px; left:-6px; z-index:0; font-family:var(--font-heading); font-size:120px; font-weight:600; line-height:1; color:transparent; -webkit-text-stroke:1.5px #d5e6e7; pointer-events:none; }
.kv-cm-item h2{ position:relative; margin:0 0 16px; font-size:clamp(27px,3vw,40px); line-height:1.12; }
.kv-cm-item__body p{ position:relative; margin:0 0 12px; font-size:16px; line-height:1.7; color:#4b5d60; }
.kv-cm-item__list{ list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 18px; margin:20px 0 0; padding:18px 0 0; border-top:1px solid var(--c-border); }
.kv-cm-item__list li{ display:flex; gap:10px; align-items:flex-start; font-size:14px; line-height:1.45; color:var(--c-text); }
.kv-cm-item__list svg{ flex:0 0 20px; width:20px; height:20px; padding:3px; border-radius:50%; background:var(--c-primary-light); color:var(--c-primary-dark); }
.kv-cm__facts{ list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin:84px 0 0; padding:0; overflow:hidden; border-radius:22px; background:rgba(255,255,255,.14); }
.kv-cm__facts li{ padding:28px 20px; background:var(--c-primary-dark); text-align:center; }
.kv-cm__facts strong{ display:block; font-family:var(--font-heading); font-size:clamp(24px,2.6vw,34px); font-weight:600; color:#e6c98a; }
.kv-cm__facts span{ display:block; margin-top:6px; font-size:13.5px; color:#cfe3e4; }
.kv-cm__cta{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; margin-top:28px; padding:30px 34px; border-radius:22px; background:var(--c-primary-soft); border:1px solid var(--c-border); }
.kv-cm__cta h2{ margin:0; font-size:26px; }
.kv-cm__cta p{ margin:6px 0 0; color:var(--c-text-muted); }
.kv-cm__cta-actions{ display:flex; flex-wrap:wrap; gap:10px; }

/* ---------- FAQ ---------- */
.kv-fq{ background:#f7faf9; padding-bottom:64px; }
.kv-fq__hero{ position:relative; isolation:isolate; padding-block:52px 44px; text-align:center; background:radial-gradient(700px 300px at 50% 0%,rgba(12,116,128,.12),transparent 70%),linear-gradient(180deg,#eaf4f3,#f7faf9); }
.kv-fq__hero::before{ content:""; position:absolute; z-index:-1; top:0; right:0; width:min(30vw,420px); aspect-ratio:1100/1067; background:url(../images/quiz/quiz-bg-leaves-br.webp) no-repeat right top/100% 100%; mix-blend-mode:multiply; opacity:.35; -webkit-mask-image:radial-gradient(110% 110% at 100% 0,#000 35%,transparent 72%); mask-image:radial-gradient(110% 110% at 100% 0,#000 35%,transparent 72%); }
.kv-fq__eyebrow{ display:inline-flex; align-items:center; gap:8px; margin:0 0 14px; padding:6px 14px; border-radius:999px; background:#fff; border:1px solid var(--c-border); font-size:13px; font-weight:600; color:var(--c-primary-dark); }
.kv-fq__eyebrow svg{ width:16px; height:16px; }
.kv-fq__hero h1{ margin:0; font-size:clamp(34px,4.4vw,54px); line-height:1.05; }
.kv-fq__lead{ max-width:620px; margin:14px auto 0; font-size:16.5px; line-height:1.6; color:var(--c-text-muted); }
.kv-fq__search{ display:flex; align-items:center; gap:10px; max-width:620px; margin:26px auto 0; padding:6px 8px 6px 18px; border-radius:16px; background:#fff; border:1px solid var(--c-border); box-shadow:0 14px 34px rgba(12,116,128,.1); }
.kv-fq__search:focus-within{ border-color:var(--c-primary); box-shadow:0 0 0 4px rgba(12,116,128,.12), 0 14px 34px rgba(12,116,128,.1); }
.kv-fq__search svg{ flex:0 0 20px; width:20px; height:20px; color:var(--c-text-muted); }
.kv-fq__search input{ flex:1; min-width:0; padding:13px 4px; border:0; outline:0; background:transparent; font:inherit; font-size:16px; color:var(--c-text); }
.kv-fq__count{ margin:12px 0 0; font-size:13px; color:var(--c-text-muted); }
.kv-fq__body{ display:grid; grid-template-columns:260px minmax(0,1fr); gap:34px; align-items:start; margin-top:34px; }
.kv-fq__nav{ position:sticky; top:100px; display:grid; gap:4px; padding:14px; border-radius:18px; background:#fff; border:1px solid var(--c-border); }
.kv-fq__nav-title{ margin:4px 10px 8px; font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--c-text-muted); }
.kv-fq__nav button{ display:flex; align-items:center; gap:10px; width:100%; padding:10px 10px; border:0; border-radius:10px; background:transparent; font:inherit; font-size:14px; text-align:left; color:var(--c-text); cursor:pointer; transition:background .2s; }
.kv-fq__nav button svg{ flex:0 0 18px; width:18px; height:18px; color:var(--c-primary); }
.kv-fq__nav button span{ flex:1; }
.kv-fq__nav button em{ font-style:normal; min-width:24px; padding:1px 7px; border-radius:999px; background:#eef4f4; font-size:12px; font-weight:700; text-align:center; color:var(--c-text-muted); }
.kv-fq__nav button:hover{ background:var(--c-primary-soft); }
.kv-fq__nav button[aria-pressed="true"]{ background:var(--c-primary-dark); color:#fff; }
.kv-fq__nav button[aria-pressed="true"] svg{ color:#e6c98a; }
.kv-fq__nav button[aria-pressed="true"] em{ background:rgba(255,255,255,.18); color:#fff; }
.kv-fq-group{ margin-bottom:28px; scroll-margin-top:100px; }
.kv-fq-group h2{ display:flex; align-items:center; gap:10px; margin:0 0 12px; font-size:22px; }
.kv-fq-group__ico{ display:inline-flex; width:36px; height:36px; align-items:center; justify-content:center; border-radius:10px; background:var(--c-primary-light); color:var(--c-primary-dark); }
.kv-fq-group__ico svg{ width:19px; height:19px; }
.kv-fq-item{ margin-bottom:8px; border-radius:14px; background:#fff; border:1px solid var(--c-border); transition:border-color .2s, box-shadow .2s; }
.kv-fq-item[open]{ border-color:#b9d6d8; box-shadow:0 10px 26px rgba(12,116,128,.08); }
.kv-fq-item summary{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:17px 20px; list-style:none; cursor:pointer; font-weight:600; font-size:15.5px; color:var(--c-text); }
.kv-fq-item summary::-webkit-details-marker{ display:none; }
.kv-fq-item summary:focus-visible{ outline:3px solid rgba(12,116,128,.35); outline-offset:2px; border-radius:14px; }
.kv-fq-item__ico{ position:relative; flex:0 0 28px; height:28px; border-radius:50%; background:var(--c-primary-soft); }
.kv-fq-item__ico::before, .kv-fq-item__ico::after{ content:""; position:absolute; top:50%; left:50%; width:12px; height:2px; margin:-1px 0 0 -6px; border-radius:2px; background:var(--c-primary-dark); transition:transform .25s; }
.kv-fq-item__ico::after{ transform:rotate(90deg); }
.kv-fq-item[open] .kv-fq-item__ico{ background:var(--c-primary-dark); }
.kv-fq-item[open] .kv-fq-item__ico::before, .kv-fq-item[open] .kv-fq-item__ico::after{ background:#fff; transform:rotate(180deg); }
.kv-fq-item__a{ padding:0 20px 18px; font-size:15px; line-height:1.65; color:#4b5d60; }
.kv-fq-item__a p{ margin:0 0 8px; }
.kv-fq-item__a a{ font-weight:600; color:var(--c-primary-dark); }
.kv-fq__empty{ padding:30px; border-radius:16px; border:1px dashed var(--c-border); background:#fff; text-align:center; color:var(--c-text-muted); }
.kv-fq__help-wrap{ margin-top:30px; }
.kv-fq-help{ display:grid; grid-template-columns:260px minmax(0,1fr); gap:34px; align-items:center; overflow:hidden; border-radius:24px; background:var(--c-primary-dark); color:#fff; }
.kv-fq-help img{ display:block; width:100%; height:100%; min-height:260px; object-fit:cover; }
.kv-fq-help__body{ padding:30px 34px 30px 0; }
.kv-fq-help h2{ margin:0; color:#fff; font-size:clamp(24px,2.6vw,32px); }
.kv-fq-help p{ margin:10px 0 0; color:#cfe3e4; }
.kv-fq-help__actions{ display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-top:20px; }
.kv-fq-help .btn-primary{ background:#e6c98a; border-color:#e6c98a; color:#06343a; }
.kv-fq-help__mail{ display:inline-flex; align-items:center; gap:8px; color:#fff; font-weight:600; }
.kv-fq-help__mail svg{ width:18px; height:18px; }
.kv-fq-help__quiz{ font-size:14px; }
.kv-fq-help__quiz a{ color:#e6c98a; font-weight:700; }

/* ---------- Contact ---------- */
.kv-ct{ background:#fbf9f5; padding-bottom:64px; }
.kv-ct__hero{ padding-block:44px 30px; }
.kv-ct__hero-in{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:52px; align-items:center; }
.kv-ct__eyebrow{ margin:0 0 12px; font-size:12.5px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--c-primary); }
.kv-ct__hero h1{ margin:0; font-size:clamp(34px,4.4vw,56px); line-height:1.05; }
.kv-ct__lead{ max-width:540px; margin:16px 0 0; font-size:17px; line-height:1.6; color:var(--c-text-muted); }
.kv-ct__tiles{ list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:28px 0 0; padding:0; }
.kv-ct__tiles li{ display:flex; align-items:center; gap:12px; padding:14px; border-radius:16px; background:#fff; border:1px solid var(--c-border); }
.kv-ct__tiles small{ display:block; font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--c-text-muted); }
.kv-ct__tiles strong, .kv-ct__tiles a{ display:block; font-size:14px; font-weight:700; color:var(--c-text); word-break:break-word; }
.kv-ct__tiles a:hover{ color:var(--c-primary-dark); }
.kv-ct__ico{ flex:0 0 42px; width:42px; height:42px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; background:var(--c-primary-light); color:var(--c-primary-dark); }
.kv-ct__ico svg{ width:20px; height:20px; }
.kv-ct__hero-media{ position:relative; margin:0; }
.kv-ct__hero-media img{ display:block; width:100%; aspect-ratio:10/9; object-fit:cover; border-radius:28px; box-shadow:0 26px 54px rgba(40,34,20,.14); }
.kv-ct__hero-media figcaption{ position:absolute; left:20px; bottom:20px; display:flex; align-items:center; gap:10px; padding:10px 16px; border-radius:999px; background:rgba(255,255,255,.95); font-size:13.5px; font-weight:600; color:var(--c-text); box-shadow:0 10px 24px rgba(0,0,0,.12); }
.kv-ct__dot{ width:9px; height:9px; border-radius:50%; background:#2f9e5b; box-shadow:0 0 0 4px rgba(47,158,91,.18); }
.kv-ct__main{ display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:26px; align-items:start; margin-top:20px; }
.kv-ct__form{ padding:32px; border-radius:24px; background:#fff; border:1px solid var(--c-border); box-shadow:0 20px 50px rgba(22,40,43,.07); }
.kv-ct__form h2{ margin:0; font-size:28px; }
.kv-ct__form-intro{ margin:8px 0 22px; color:var(--c-text-muted); }
.kv-ct__form .kv-contact-form{ margin:0; max-width:none; }
.kv-ct__form .kv-contact-form input[type="text"], .kv-ct__form .kv-contact-form input[type="email"], .kv-ct__form .kv-contact-form textarea{ border-radius:12px; background:#fbfcfc; }
.kv-ct__form .kv-contact-form textarea{ min-height:150px; }
.kv-ct__aside{ display:grid; gap:14px; }
.kv-ct-card{ padding:22px; border-radius:20px; background:#fff; border:1px solid var(--c-border); }
.kv-ct-card h3{ margin:12px 0 6px; font-family:var(--font-heading); font-size:19px; font-weight:600; color:var(--c-text); }
.kv-ct-card p{ margin:0 0 12px; font-size:14px; line-height:1.55; color:var(--c-text-muted); }
.kv-ct-card a:not(.btn){ font-size:14px; font-weight:700; color:var(--c-primary-dark); }
.kv-ct-card.is-accent{ background:linear-gradient(160deg,#075158,#0c7480); border-color:transparent; color:#fff; }
.kv-ct-card.is-accent h3{ color:#fff; }
.kv-ct-card.is-accent p{ color:#d5e9ea; }
.kv-ct-card.is-accent .kv-ct__ico{ background:rgba(255,255,255,.14); color:#e6c98a; }
.kv-ct-card.is-accent .btn-primary{ background:#e6c98a; border-color:#e6c98a; color:#06343a; }

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .kv-st__hero-in, .kv-ks__hero-in, .kv-ct__hero-in, .kv-ks__press-in{ grid-template-columns:minmax(0,1fr); gap:32px; }
  .kv-st__hero-media{ justify-self:center; }
  .kv-st__pillars ul, .kv-cm__facts{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kv-ks-risks{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kv-ks-steps{ grid-template-columns:minmax(0,1fr); gap:18px; }
  .kv-ks-steps::before{ top:10px; bottom:10px; left:27px; right:auto; width:2px; height:auto; }
  .kv-ks-steps li{ display:grid; grid-template-columns:56px minmax(0,1fr); gap:4px 16px; text-align:left; }
  .kv-ks-steps__num{ grid-row:span 2; }
  .kv-ks-steps h3{ margin:6px 0 0; }
  .kv-cm-item{ grid-template-columns:minmax(0,1fr); gap:28px; padding-top:60px; }
  .kv-cm-item.is-flip .kv-cm-item__media{ order:0; }
  .kv-cm-item__num{ top:-44px; font-size:88px; }
  .kv-fq__body{ grid-template-columns:minmax(0,1fr); }
  .kv-fq__nav{ position:static; display:flex; overflow-x:auto; padding:8px; gap:6px; scrollbar-width:none; }
  .kv-fq__nav::-webkit-scrollbar{ display:none; }
  .kv-fq__nav-title{ display:none; }
  .kv-fq__nav button{ width:auto; flex:0 0 auto; white-space:nowrap; }
  .kv-ct__main{ grid-template-columns:minmax(0,1fr); }
}
@media (max-width:760px){
  .kv-st__chapters .container::before, .kv-st-ch::before{ display:none; }
  .kv-st-ch{ grid-template-columns:minmax(0,1fr); gap:22px; }
  .kv-st-ch.is-flip .kv-st-ch__media{ order:0; }
  .kv-st__chapters .container{ gap:46px; }
  .kv-st__route{ left:12px; bottom:14px; }
  .kv-st__quote figure{ padding:44px 22px 30px; }
  .kv-st__pillars ul{ grid-template-columns:minmax(0,1fr); }
  .kv-ks-levels, .kv-ks-risks{ grid-template-columns:minmax(0,1fr); }
  .kv-ks-levels__bar{ display:none; }
  .kv-ks__parve-in{ grid-template-columns:minmax(0,1fr); gap:10px; }
  .kv-cm__hero{ padding-block:56px 44px; }
  .kv-cm-item__list{ grid-template-columns:minmax(0,1fr); }
  .kv-cm__facts{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .kv-fq-help{ grid-template-columns:minmax(0,1fr); gap:0; }
  .kv-fq-help img{ min-height:0; aspect-ratio:16/9; }
  .kv-fq-help__body{ padding:24px; }
  .kv-ct__tiles{ grid-template-columns:minmax(0,1fr); }
  .kv-ct__form{ padding:22px 18px; }
}
@media (prefers-reduced-motion:reduce){
  .kv-ks-risks li, .kv-ks-social a, .kv-fq-item__ico::before, .kv-fq-item__ico::after{ transition:none; }
}
/* Correctifs : le mot « Parvé » garde sa grande taille ; l'email tient dans sa tuile */
.kv-ks__parve .kv-ks__parve-word{ margin:0; max-width:none; font-size:clamp(64px,9vw,120px); line-height:.9; color:transparent; }
.kv-ct__tiles{ grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr); }
.kv-ct__tiles a{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media (max-width:760px){ .kv-ct__tiles{ grid-template-columns:minmax(0,1fr); } }

/* =====================================================================
 * Menu principal explicite (inc/nav.php)
 * =================================================================== */
.main-nav > li > a{ display:inline-flex; align-items:center; white-space:nowrap; }
.kv-nav-caret{ display:inline-block; width:6px; height:6px; margin-left:7px; border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor; opacity:.5; transform:translateY(-2px) rotate(45deg); transition:transform .25s, opacity .25s; }
.main-nav > li:hover > a .kv-nav-caret, .main-nav > li.kv-open > a .kv-nav-caret{ opacity:.9; transform:translateY(1px) rotate(225deg); }
.kv-nav-badge{ margin-left:7px; padding:2px 7px; border-radius:999px; background:#e5f2ea; color:#1f6b3f; font-size:10.5px; font-weight:700; letter-spacing:.02em; line-height:1.5; }
.main-nav > li.current-menu-item > a, .main-nav > li.current-menu-ancestor > a, .main-nav > li.current-page-ancestor > a{ color:var(--c-primary-dark); box-shadow:inset 0 -2px 0 var(--c-primary); }

.main-nav .sub-menu{ min-width:330px; padding:8px; border:1px solid var(--c-border); border-radius:18px; }
.main-nav .sub-menu li + li{ margin-top:2px; }
.main-nav .sub-menu a.kv-subnav{ display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:12px; white-space:normal; }
.kv-subnav__ico{ flex:0 0 40px; width:40px; height:40px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; background:var(--c-primary-light); color:var(--c-primary-dark); transition:background .2s, color .2s; }
.kv-subnav__ico svg{ width:20px; height:20px; }
.kv-subnav__txt strong{ display:block; font-size:14.5px; font-weight:600; color:var(--c-text); }
.kv-subnav__txt small{ display:block; margin-top:2px; font-size:12.5px; font-weight:400; line-height:1.35; color:var(--c-text-muted); }
.main-nav .sub-menu a.kv-subnav:hover, .main-nav .sub-menu a.kv-subnav:focus-visible{ background:var(--c-primary-soft); }
.main-nav .sub-menu a.kv-subnav:hover .kv-subnav__ico, .main-nav .sub-menu a.kv-subnav:focus-visible .kv-subnav__ico{ background:var(--c-primary-dark); color:#fff; }
.main-nav .sub-menu .current-menu-item > a.kv-subnav{ background:var(--c-primary-soft); }

@media (max-width:1180px) and (min-width:721px){
  .main-nav{ gap:20px; }
  .main-nav > li > a{ font-size:14px; }
  .kv-nav-badge{ display:none; }
}
@media (max-width:720px){
  .main-nav > li > a{ display:flex; justify-content:flex-start; box-shadow:none !important; }
  .kv-nav-caret{ display:none; }
  .main-nav .sub-menu{ min-width:0; padding:4px 0 10px; border:0; border-radius:0; }
  .main-nav .sub-menu a.kv-subnav{ padding:9px 0; border-bottom:0; gap:12px; }
  .kv-subnav__ico{ flex-basis:34px; width:34px; height:34px; border-radius:10px; }
  .kv-subnav__ico svg{ width:17px; height:17px; }
  .kv-subnav__txt strong{ font-size:14.5px; }
  .kv-subnav__txt small{ font-size:12px; }
}

/* =====================================================================
 * Tunnel d'achat : panier + paiement (blocs WooCommerce, inc/checkout-ui.php)
 * Les blocs restent ceux de WooCommerce (compatibilité des paiements) :
 * tout est scopé sous body.kv-tunnel-page.
 * =================================================================== */
body.kv-tunnel-page{ background:#f8f6f1; }
.kv-tunnel-body{ padding-block:30px 72px; }
.kv-tunnel-page .wp-block-woocommerce-cart, .kv-tunnel-page .wp-block-woocommerce-checkout{ max-width:none; margin:0 !important; padding:0 !important; }
.kv-tunnel-page [hidden]{ display:none !important; }

/* En-tête : titre, étapes, jauge */
.kv-tunnel{ margin-bottom:24px; }
.kv-tunnel__top{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px 28px; }
.kv-tunnel__title{ margin:0; font-family:var(--font-heading); font-weight:600; font-size:clamp(28px,3vw,40px); line-height:1.1; color:var(--c-text); }
.kv-tunnel__count{ margin-left:6px; font-family:var(--font-body); font-size:.48em; font-weight:600; color:var(--c-text-muted); vertical-align:middle; }
.kv-tsteps{ list-style:none; display:flex; align-items:center; margin:0; padding:0; }
.kv-tsteps li{ display:flex; align-items:center; }
.kv-tsteps li + li::before{ content:""; width:clamp(18px,3.4vw,46px); height:2px; margin:0 12px; border-radius:2px; background:#dce4e2; }
.kv-tsteps li.is-done + li::before{ background:var(--c-primary); }
.kv-tsteps a{ display:flex; align-items:center; color:inherit; text-decoration:none; }
.kv-tsteps__num{ display:inline-flex; width:30px; height:30px; align-items:center; justify-content:center; border-radius:50%; border:1.5px solid #d3dcda; background:#fff; font-size:13px; font-weight:700; color:var(--c-text-muted); }
.kv-tsteps__label{ margin-left:9px; font-size:13.5px; font-weight:600; color:var(--c-text-muted); white-space:nowrap; }
.kv-tsteps .is-current .kv-tsteps__num{ border-color:var(--c-primary-dark); background:var(--c-primary-dark); color:#fff; box-shadow:0 0 0 4px rgba(12,116,128,.14); }
.kv-tsteps .is-current .kv-tsteps__label{ color:var(--c-text); }
.kv-tsteps .is-done .kv-tsteps__num{ border-color:var(--c-primary); background:var(--c-primary-light); color:var(--c-primary-dark); }
.kv-tsteps .is-done .kv-tsteps__label{ color:var(--c-primary-dark); }
.kv-tsteps a:hover .kv-tsteps__label{ text-decoration:underline; text-underline-offset:3px; }
.kv-ship{ display:flex; align-items:center; gap:14px; margin-top:18px; padding:14px 18px; border-radius:16px; background:#fff; border:1px solid var(--c-border); }
.kv-ship__ico{ flex:0 0 42px; height:42px; border-radius:12px; display:flex; align-items:center; justify-content:center; background:var(--c-primary-light); color:var(--c-primary-dark); transition:background .3s, color .3s; }
.kv-ship__ico svg{ width:21px; height:21px; }
.kv-ship__body{ flex:1; min-width:0; }
.kv-ship p{ margin:0 0 8px; font-size:14.5px; color:var(--c-text); }
.kv-ship p strong{ color:var(--c-primary-dark); }
.kv-ship__bar{ display:block; height:7px; overflow:hidden; border-radius:99px; background:#e7eeed; }
.kv-ship__bar span{ display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--c-primary),#e6c98a); transition:width .5s ease; }
.kv-ship.is-done{ background:#eef7f0; border-color:#cfe6d6; }
.kv-ship.is-done .kv-ship__ico{ background:#2f8f4e; color:#fff; }
.kv-ship.is-done p strong{ color:#1f6b39; }

/* Mise en page deux colonnes */
.kv-tunnel-page .wc-block-components-sidebar-layout{ display:grid !important; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:28px; align-items:start; margin:0 !important; }
.kv-tunnel-page .wc-block-components-sidebar-layout .wc-block-components-main,
.kv-tunnel-page .wc-block-components-sidebar-layout .wc-block-components-sidebar{ width:auto !important; margin:0 !important; padding:0 !important; }
.kv-tunnel-page .wc-block-components-sidebar-layout .wc-block-cart__main{ padding:6px 26px 24px !important; border-radius:22px; background:#fff; border:1px solid var(--c-border); }
.kv-tunnel-page .wc-block-components-sidebar-layout .wc-block-cart__sidebar, .kv-tunnel-page .wc-block-components-sidebar-layout .wc-block-checkout__sidebar{ position:sticky; top:100px; padding:22px 22px 18px !important; border-radius:22px; background:#fff; border:1px solid var(--c-border); box-shadow:0 22px 50px rgba(22,40,43,.07); }

/* Panier : articles */
.kv-tunnel-page .wc-block-cart-items{ margin:0; border:0; }
.kv-tunnel-page .wc-block-cart-items__header{ font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--c-text-muted); }
.kv-tunnel-page .wc-block-cart-items__header th{ padding:16px 0 12px !important; border-bottom:1px solid var(--c-border); font-weight:700; }
.kv-tunnel-page .wc-block-cart-items__row td{ padding:20px 0 !important; border:0 !important; vertical-align:top; }
.kv-tunnel-page .wc-block-cart-items__row + .wc-block-cart-items__row{ border-top:1px solid #eef2f1 !important; }
.kv-tunnel-page table.wc-block-cart-items{ width:100%; border-collapse:collapse; border-spacing:0; }
.kv-tunnel-page .wc-block-cart.is-mobile .wc-block-cart-items__row,
.kv-tunnel-page .wc-block-cart.is-small .wc-block-cart-items__row{ grid-template-columns:84px minmax(0,1fr) auto !important; padding:0 !important; border-top:0 !important; border-bottom:0 !important; }
.kv-tunnel-page .wc-block-cart.is-mobile .wc-block-cart-items__row + .wc-block-cart-items__row,
.kv-tunnel-page .wc-block-cart.is-small .wc-block-cart-items__row + .wc-block-cart-items__row{ border-top:1px solid #eef2f1 !important; }
.kv-tunnel-page .wc-block-cart.is-mobile .wc-block-cart-item__total,
.kv-tunnel-page .wc-block-cart.is-small .wc-block-cart-item__total{ padding-left:10px !important; font-size:15px; }
.kv-tunnel-page .wc-block-cart-item__image{ width:112px; padding-right:18px !important; }
.kv-tunnel-page .wc-block-cart-item__image img{ width:96px !important; height:96px !important; object-fit:cover; border-radius:16px; background:#f3f1ec; }
.kv-tunnel-page .wc-block-cart-item__product .wc-block-components-product-name{ font-family:var(--font-heading); font-size:17.5px; font-weight:600; line-height:1.3; color:var(--c-text); text-decoration:none; }
.kv-tunnel-page .wc-block-cart-item__product .wc-block-components-product-name:hover{ color:var(--c-primary-dark); }
.kv-tunnel-page .wc-block-cart-item__prices{ margin-top:3px; font-size:13.5px; color:var(--c-text-muted); }
.kv-tunnel-page .wc-block-components-product-metadata__description{ display:none; }
.kv-tunnel-page .wc-block-cart-item__quantity{ display:flex; align-items:center; gap:14px; margin-top:12px; }
.kv-tunnel-page .wc-block-components-quantity-selector{ width:118px; height:40px; border-radius:999px !important; background:#fff; border:1px solid var(--c-border) !important; overflow:hidden; }
.kv-tunnel-page .wc-block-components-quantity-selector::after{ display:none !important; }
.kv-tunnel-page .wc-block-components-quantity-selector__input{ font-size:14.5px !important; font-weight:700 !important; color:var(--c-text); }
.kv-tunnel-page .wc-block-components-quantity-selector__button{ min-width:38px !important; color:var(--c-primary-dark) !important; opacity:1 !important; }
.kv-tunnel-page .wc-block-components-quantity-selector__button:hover{ background:var(--c-primary-soft) !important; }
.kv-tunnel-page .wc-block-cart-item__remove-link{ color:var(--c-text-muted) !important; opacity:.85; }
.kv-tunnel-page .wc-block-cart-item__remove-link:hover{ color:#b32d2e !important; opacity:1; }
.kv-tunnel-page .wc-block-cart-item__total{ font-size:16.5px; font-weight:700; color:var(--c-text); }

/* Panier : suggestions compactes */
.kv-tunnel-page .wc-block-cart__main .wp-block-woocommerce-product-collection{ margin-top:6px; padding-top:22px; border-top:1px dashed var(--c-border); }
.kv-tunnel-page .wc-block-cart__main .wp-block-woocommerce-product-collection h2{ margin:0 0 14px !important; font-family:var(--font-heading); font-size:20px !important; font-weight:600; color:var(--c-text); }
.kv-tunnel-page .wc-block-cart__main .wc-block-product-template{ display:grid !important; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)) !important; gap:12px !important; margin:0 !important; padding:0 !important; list-style:none; }
.kv-tunnel-page .wc-block-cart__main .wc-block-product{ display:grid !important; grid-template-columns:64px minmax(0,1fr); grid-auto-rows:auto; column-gap:12px; row-gap:2px; align-items:center; margin:0 !important; padding:12px; border-radius:16px; border:1px solid var(--c-border); background:#fbfbf9; text-align:left !important; }
.kv-tunnel-page .wc-block-cart__main .wc-block-product > .wc-block-components-product-image{ grid-row:1 / span 3; width:64px !important; margin:0 !important; }
.kv-tunnel-page .wc-block-cart__main .wc-block-product img{ width:64px !important; height:64px !important; object-fit:cover; border-radius:12px; }
.kv-tunnel-page .wc-block-cart__main .wc-block-product .wp-block-post-title{ margin:0 !important; font-family:var(--font-body); font-size:13.5px !important; font-weight:600; line-height:1.3 !important; text-align:left !important; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.kv-tunnel-page .wc-block-cart__main .wc-block-product .wp-block-post-title a{ color:var(--c-text); text-decoration:none; }
.kv-tunnel-page .wc-block-cart__main .wc-block-product .wc-block-components-product-price{ margin:0 !important; font-size:13px !important; text-align:left !important; color:var(--c-text-muted); }
.kv-tunnel-page .wc-block-cart__main .wc-block-product .wc-block-components-product-button{ margin:4px 0 0 !important; justify-content:flex-start !important; text-align:left !important; }
.kv-tunnel-page .wc-block-cart__main .wc-block-product .wc-block-components-product-button__button{ min-height:0 !important; margin:0 !important; padding:6px 12px !important; border-radius:999px !important; border:0 !important; background:var(--c-primary-dark) !important; color:#fff !important; font-size:12px !important; font-weight:600 !important; line-height:1.3 !important; white-space:nowrap; }

/* Récapitulatif (panier et paiement) */
.kv-tunnel-page .wc-block-cart__totals-title{ margin:0 0 6px !important; padding:0 !important; font-family:var(--font-heading) !important; font-size:23px !important; font-weight:600 !important; text-transform:none !important; letter-spacing:0 !important; color:var(--c-text); }
.kv-tunnel-page .wc-block-components-totals-wrapper{ padding:12px 0 !important; border-top:1px dashed var(--c-border) !important; }
.kv-tunnel-page .wc-block-components-totals-wrapper:first-of-type{ border-top:0 !important; }
.kv-tunnel-page .wc-block-components-totals-wrapper:empty{ display:none !important; }
.kv-tunnel-page .wc-block-components-totals-item{ font-size:14.5px; color:var(--c-text); }
.kv-tunnel-page .wc-block-components-totals-item__description{ font-size:12px; color:var(--c-text-muted); }
.kv-tunnel-page .wc-block-components-totals-fees .wc-block-components-totals-item__value,
.kv-tunnel-page .wc-block-components-totals-discount .wc-block-components-totals-item__value{ color:#2f8f4e; font-weight:700; }
.kv-tunnel-page .wc-block-components-totals-fees .wc-block-components-totals-item__label{ color:#1f6b39; }
.kv-tunnel-page .wc-block-components-totals-coupon .wc-block-components-panel__button{ font-size:14.5px; font-weight:600; color:var(--c-primary-dark); }
.kv-tunnel-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__label{ font-size:17px; font-weight:700; }
.kv-tunnel-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{ font-family:var(--font-heading); font-size:28px; font-weight:600; color:var(--c-text); }
.kv-tunnel-page .wc-block-cart__submit{ margin:6px 0 0 !important; }
.kv-tunnel-page .wc-block-cart__submit-button,
.kv-tunnel-page .wc-block-components-checkout-place-order-button{ min-height:58px; border:0 !important; border-radius:16px !important; background:var(--c-primary-dark) !important; color:#fff !important; font-size:16.5px !important; font-weight:700 !important; box-shadow:0 14px 30px rgba(7,81,88,.24); transition:background .2s, transform .2s; }
.kv-tunnel-page .wc-block-cart__submit-button:hover,
.kv-tunnel-page .wc-block-components-checkout-place-order-button:hover{ background:#053f45 !important; transform:translateY(-1px); }
.kv-tunnel-page .wc-block-cart__submit-container--sticky{ padding:12px 16px calc(12px + env(safe-area-inset-bottom)) !important; background:#fff !important; box-shadow:0 -10px 30px rgba(22,40,43,.1) !important; }

/* Réassurance (placée dans la colonne par checkout-ui.js) */
.kv-assure{ margin-top:16px; padding-top:16px; border-top:1px dashed var(--c-border); }
.kv-assure ul{ list-style:none; display:grid; gap:10px; margin:0; padding:0; }
.kv-assure li{ display:flex; align-items:center; gap:11px; }
.kv-assure li > svg{ flex:0 0 34px; width:34px; height:34px; padding:8px; border-radius:10px; background:var(--c-primary-soft); color:var(--c-primary-dark); }
.kv-assure strong{ display:block; font-size:13.5px; color:var(--c-text); }
.kv-assure small{ display:block; font-size:12px; color:var(--c-text-muted); }
.kv-assure__help{ margin:14px 0 0; font-size:13px; text-align:center; color:var(--c-text-muted); }
.kv-assure__help a{ font-weight:600; color:var(--c-primary-dark); }

/* Paiement : étapes en cartes numérotées */
.kv-tunnel-page .wc-block-checkout__form{ counter-reset:kvstep; }
.kv-tunnel-page .wc-block-checkout__main .wc-block-components-checkout-step{ counter-increment:kvstep; margin:0 0 16px !important; padding:22px 24px 20px !important; border-radius:22px; background:#fff; border:1px solid var(--c-border); }
.kv-tunnel-page .wc-block-components-checkout-step__heading{ margin:0 0 14px !important; }
.kv-tunnel-page .wc-block-components-checkout-step__title{ display:flex; align-items:center; gap:12px; margin:0 !important; font-family:var(--font-heading) !important; font-size:21px !important; font-weight:600 !important; color:var(--c-text); }
.kv-tunnel-page .wc-block-checkout__main .wc-block-components-checkout-step__title::before{ content:counter(kvstep); display:inline-flex; flex:0 0 30px; width:30px; height:30px; align-items:center; justify-content:center; border-radius:50%; background:var(--c-primary-dark); color:#fff; font-family:var(--font-body); font-size:13.5px; font-weight:700; }
.kv-tunnel-page .wc-block-components-checkout-step__content{ padding:0 !important; }
.kv-tunnel-page .wc-block-checkout__guest-checkout-notice{ font-size:12.5px; color:var(--c-text-muted); }
.kv-tunnel-page .wc-block-components-text-input input[type="text"],
.kv-tunnel-page .wc-block-components-text-input input[type="email"],
.kv-tunnel-page .wc-block-components-text-input input[type="tel"],
.kv-tunnel-page .wc-block-components-text-input input[type="number"],
.kv-tunnel-page .wc-block-components-text-input input[type="password"],
.kv-tunnel-page .wc-block-components-textarea,
.kv-tunnel-page .wc-blocks-components-select__container{ border:1px solid #d6dfdd !important; border-radius:12px !important; background:#fff !important; box-shadow:none !important; }
.kv-tunnel-page .wc-blocks-components-select__select{ border:0 !important; background:transparent !important; }
.kv-tunnel-page .wc-block-components-text-input input:focus,
.kv-tunnel-page .wc-block-components-textarea:focus,
.kv-tunnel-page .wc-blocks-components-select__container:focus-within{ border-color:var(--c-primary) !important; box-shadow:0 0 0 3px rgba(12,116,128,.14) !important; outline:0 !important; }
.kv-tunnel-page .wc-block-components-text-input label, .kv-tunnel-page .wc-blocks-components-select__label{ color:var(--c-text-muted) !important; }
.kv-tunnel-page .wc-block-components-address-form__address_2-toggle{ font-size:13.5px; font-weight:600; color:var(--c-primary-dark) !important; }
.kv-tunnel-page .wc-block-components-address-card{ border-radius:14px !important; border-color:var(--c-border) !important; }
/* Options de livraison et de paiement */
.kv-tunnel-page .wc-block-components-radio-control--highlight-checked{ overflow:hidden; border-radius:16px !important; border:1px solid var(--c-border) !important; }
.kv-tunnel-page .wc-block-components-radio-control--highlight-checked::after{ display:none !important; }
.kv-tunnel-page .wc-block-components-radio-control__option, .kv-tunnel-page .wc-block-components-radio-control-accordion-option{ border-color:#eef2f1 !important; box-shadow:none !important; }
.kv-tunnel-page .wc-block-components-radio-control__option-checked,
.kv-tunnel-page .wc-block-components-radio-control__option--checked-option-highlighted,
.kv-tunnel-page .wc-block-components-radio-control-accordion-option--checked-option-highlighted{ background:#f1f8f7 !important; box-shadow:inset 3px 0 0 var(--c-primary) !important; }
.kv-tunnel-page .wc-block-components-radio-control__input{ border-color:#b9c7c5 !important; }
.kv-tunnel-page .wc-block-components-radio-control__input:checked{ border-color:var(--c-primary-dark) !important; background:#fff !important; }
.kv-tunnel-page .wc-block-components-radio-control__input:checked::before{ background:var(--c-primary-dark) !important; }
.kv-tunnel-page .wc-block-components-radio-control__label{ font-weight:600; color:var(--c-text); }
.kv-tunnel-page .wc-block-components-radio-control__secondary-label{ font-weight:700; color:var(--c-text); }
.kv-tunnel-page .wc-block-components-checkbox__input[type="checkbox"]{ border-radius:6px !important; border-color:#b9c7c5 !important; }
.kv-tunnel-page .wc-block-components-checkbox__input[type="checkbox"]:checked{ border-color:var(--c-primary-dark) !important; background:var(--c-primary-dark) !important; }
.kv-tunnel-page .wc-block-components-checkbox__mark{ fill:#fff !important; }
/* Validation */
.kv-tunnel-page .wc-block-checkout__terms{ margin:4px 0 0 !important; padding-top:14px !important; font-size:13px; line-height:1.5; color:var(--c-text-muted); }
.kv-tunnel-page .wc-block-checkout__terms a{ font-weight:600; color:var(--c-primary-dark); }
.kv-tunnel-page .wc-block-checkout__actions{ margin-top:10px !important; padding:0 !important; }
.kv-tunnel-page .wc-block-checkout__actions_row{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; }
.kv-tunnel-page .wc-block-components-checkout-return-to-cart-button{ font-size:14px; font-weight:600; color:var(--c-primary-dark) !important; }
.kv-tunnel-page .wc-block-components-checkout-place-order-button{ flex:1 1 280px; max-width:420px; margin-left:auto; }
/* Récapitulatif du paiement : la carte, c'est la colonne ; pas de second cadre dedans */
.kv-tunnel-page .wp-block-woocommerce-checkout-order-summary-block{ border:0 !important; border-radius:0 !important; }
/* Les lignes du résumé ont déjà 16 px de marge interne : la carte n'en ajoute que 6 */
.kv-tunnel-page .wc-block-components-sidebar-layout .wc-block-checkout__sidebar{ padding-inline:6px !important; }
.kv-tunnel-page .wc-block-checkout__sidebar .kv-assure{ margin-inline:16px; }
.kv-tunnel-page .wc-block-checkout__sidebar .wc-block-components-checkout-order-summary__title{ border-top:0 !important; }
.kv-tunnel-page .wc-block-components-order-summary-item__individual-prices{ display:none; }
.kv-tunnel-page .wc-block-components-checkout-order-summary__title{ padding-top:0 !important; }
.kv-tunnel-page .wc-block-components-checkout-order-summary__title-text{ font-family:var(--font-heading) !important; font-size:21px !important; font-weight:600 !important; }
.kv-tunnel-page .wc-block-components-order-summary-item{ padding:12px 0 !important; }
.kv-tunnel-page .wc-block-components-order-summary-item__image img{ width:56px !important; height:56px !important; object-fit:cover; border-radius:12px; background:#f3f1ec; }
.kv-tunnel-page .wc-block-components-order-summary-item__quantity{ border:0 !important; background:var(--c-primary-dark) !important; color:#fff !important; font-weight:700; box-shadow:0 0 0 2px #fff !important; }
.kv-tunnel-page .wc-block-components-order-summary-item__description .wc-block-components-product-metadata{ display:none; }
.kv-tunnel-page .wc-block-components-order-summary-item .wc-block-components-product-name{ font-weight:600; color:var(--c-text); }

/* Panier vide : sac K-Vital plutôt que le smiley triste de WooCommerce */
.kv-tunnel-page .wc-block-cart__empty-cart__title.with-empty-cart-icon::before{ width:74px !important; height:74px !important; margin:10px auto 22px !important; background-color:var(--c-primary) !important;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1.2 11.2a2 2 0 0 1-2 1.8H8.2a2 2 0 0 1-2-1.8z'/%3E%3Cpath d='M9 10V6.5a3 3 0 0 1 6 0V10'/%3E%3C/svg%3E") !important;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1.2 11.2a2 2 0 0 1-2 1.8H8.2a2 2 0 0 1-2-1.8z'/%3E%3Cpath d='M9 10V6.5a3 3 0 0 1 6 0V10'/%3E%3C/svg%3E") !important;
  -webkit-mask-size:contain !important; mask-size:contain !important; -webkit-mask-repeat:no-repeat !important; mask-repeat:no-repeat !important; -webkit-mask-position:center !important; mask-position:center !important; }
.kv-tunnel-page .wc-block-cart__empty-cart__title{ margin-top:10px !important; font-family:var(--font-heading); font-size:clamp(26px,3vw,34px) !important; font-weight:600; color:var(--c-text); }
.kv-tunnel-page .kv-empty-cart__text{ max-width:520px; margin:10px auto 0 !important; color:var(--c-text-muted); }
.kv-tunnel-page .kv-empty-cart__actions{ margin:22px 0 10px !important; gap:10px; }
.kv-tunnel-page .is-kv-primary .wp-block-button__link{ padding:14px 26px; border-radius:999px; background:var(--c-primary-dark); color:#fff; font-weight:600; }
.kv-tunnel-page .is-kv-outline .wp-block-button__link{ padding:13px 24px; border-radius:999px; border:1.5px solid var(--c-primary-dark); background:transparent; color:var(--c-primary-dark); font-weight:600; }
.kv-tunnel-page .kv-empty-cart__subtitle{ margin:46px 0 18px !important; font-family:var(--font-heading); font-size:24px !important; font-weight:600; }
.kv-tunnel-page .wp-block-woocommerce-empty-cart-block .wc-block-grid__product{ padding:12px; border-radius:18px; background:#fff; border:1px solid var(--c-border); }
.kv-tunnel-page .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-title{ font-family:var(--font-heading); font-size:15.5px; font-weight:600; }
.kv-tunnel-page .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-add-to-cart .wp-block-button__link{ border-radius:999px; background:var(--c-primary-dark); color:#fff; font-size:13px; padding:8px 16px; }

@media (max-width:900px){
  .kv-tunnel-page .wc-block-components-sidebar-layout{ grid-template-columns:minmax(0,1fr); }
  .kv-tunnel-page .wc-block-components-sidebar-layout .wc-block-cart__sidebar, .kv-tunnel-page .wc-block-components-sidebar-layout .wc-block-checkout__sidebar{ position:static; }
}
@media (max-width:600px){
  .kv-tunnel-body{ padding-block:20px 56px; }
  .kv-tunnel__top{ align-items:flex-start; flex-direction:column; gap:12px; }
  .kv-tsteps li:not(.is-current) .kv-tsteps__label{ display:none; }
  .kv-tunnel-page .wc-block-components-sidebar-layout .wc-block-cart__main{ padding:4px 16px 18px !important; border-radius:18px; }
  .kv-tunnel-page .wc-block-cart-item__image{ width:84px; padding-right:12px !important; }
  .kv-tunnel-page .wc-block-cart-item__image img{ width:72px !important; height:72px !important; border-radius:12px; }
  .kv-tunnel-page .wc-block-checkout__main .wc-block-components-checkout-step{ padding:18px 16px !important; border-radius:18px; }
  .kv-tunnel-page .wc-block-components-sidebar-layout .wc-block-cart__sidebar, .kv-tunnel-page .wc-block-components-sidebar-layout .wc-block-checkout__sidebar{ padding:18px 16px !important; border-radius:18px; }
  .kv-tunnel-page .wc-block-components-checkout-place-order-button{ max-width:none; flex-basis:100%; }
}

/* =====================================================================
 * Confirmation de commande (woocommerce/checkout/thankyou.php)
 * =================================================================== */
.kv-ty{ display:grid; gap:22px; }
.kv-ty-hero{ position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); align-items:center; gap:24px; padding:clamp(24px,4vw,44px); border-radius:28px; border:1px solid var(--c-border);
  background:radial-gradient(120% 140% at 100% 0%, rgba(12,116,128,.13), transparent 55%), radial-gradient(90% 120% at 0% 100%, rgba(230,201,138,.24), transparent 60%), #fff; }
.kv-ty-check{ display:block; width:64px; height:64px; margin-bottom:16px; }
.kv-ty-check circle{ fill:#e9f5ee; stroke:#2f8f4e; stroke-width:2; stroke-dasharray:166; stroke-dashoffset:166; animation:kv-ty-draw .7s ease forwards; }
.kv-ty-check path{ fill:none; stroke:#2f8f4e; stroke-width:3.2; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:40; stroke-dashoffset:40; animation:kv-ty-draw .45s .55s ease forwards; }
.kv-ty-check.is-wait circle{ fill:#fdf3e1; stroke:#b7791f; }
.kv-ty-check.is-wait path{ stroke:#b7791f; }
.kv-ty-check.is-error circle{ fill:#fbeaea; stroke:#b32d2e; }
.kv-ty-check.is-error path{ stroke:#b32d2e; }
@keyframes kv-ty-draw{ to{ stroke-dashoffset:0; } }
@media (prefers-reduced-motion:reduce){ .kv-ty-check circle, .kv-ty-check path{ animation:none; stroke-dashoffset:0; } }
.kv-ty-eyebrow{ margin:0; font-size:12.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--c-text-muted); }
.kv-ty-hero__title{ margin:8px 0 12px; font-family:var(--font-heading); font-size:clamp(30px,4vw,46px); font-weight:600; line-height:1.08; color:var(--c-text); }
.kv-ty-hero__text{ max-width:52ch; margin:0; font-size:16px; line-height:1.6; color:var(--c-text-muted); }
.kv-ty-hero__text strong{ color:var(--c-text); }
.kv-ty-pill{ display:inline-flex; align-items:center; gap:7px; margin-top:16px; padding:6px 12px; border-radius:999px; font-size:13px; font-weight:700; }
.kv-ty-pill::before{ content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.kv-ty-pill.is-ok{ background:#e9f5ee; color:#1f6b39; }
.kv-ty-pill.is-wait{ background:#fdf3e1; color:#8a5a12; }
.kv-ty-pill.is-error{ background:#fbeaea; color:#9b2324; }
.kv-ty-actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.kv-ty-btn{ display:inline-flex; align-items:center; gap:8px; padding:13px 22px; border-radius:999px; font-size:15px; font-weight:600; line-height:1.2; text-decoration:none; transition:background .2s, color .2s, border-color .2s; }
.kv-ty-btn svg{ width:18px; height:18px; }
.kv-ty-btn.is-primary{ background:var(--c-primary-dark); color:#fff; border:1.5px solid var(--c-primary-dark); }
.kv-ty-btn.is-primary:hover{ background:#053f45; border-color:#053f45; color:#fff; }
.kv-ty-btn.is-ghost{ background:transparent; color:var(--c-primary-dark); border:1.5px solid var(--c-primary-dark); }
.kv-ty-btn.is-ghost:hover{ background:var(--c-primary-soft); }
.kv-ty-hero__visual{ position:relative; min-height:240px; display:flex; align-items:center; justify-content:center; }
.kv-ty-hero__visual::before{ content:""; position:absolute; width:min(88%,300px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle at 50% 38%, #fff 0%, var(--c-primary-light) 72%); }
.kv-ty-stack{ position:relative; display:flex; align-items:flex-end; justify-content:center; }
.kv-ty-stack img{ display:block; width:clamp(110px,13vw,160px); height:auto; aspect-ratio:1; object-fit:cover; border-radius:22px; border:4px solid #fff; background:#f3f1ec; box-shadow:0 18px 40px rgba(22,40,43,.18); }
.kv-ty-stack img + img{ margin-left:-40px; }
.kv-ty-stack img:nth-child(1){ transform:rotate(-7deg) translateY(10px); }
.kv-ty-stack img:nth-child(2){ position:relative; z-index:2; transform:translateY(-10px); }
.kv-ty-stack img:nth-child(3){ transform:rotate(7deg) translateY(12px); }
.kv-ty-stack img:only-child{ width:clamp(150px,17vw,210px); transform:none; }
.kv-ty--failed .kv-ty-hero{ background:radial-gradient(120% 140% at 100% 0%, rgba(179,45,46,.08), transparent 55%), #fff; }

.kv-ty-grid{ display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:22px; align-items:start; }
.kv-ty-main, .kv-ty-aside{ display:grid; gap:22px; min-width:0; }
.kv-ty-aside{ position:sticky; top:100px; }
.kv-ty-card{ padding:24px; border-radius:22px; background:#fff; border:1px solid var(--c-border); }
.kv-ty-card__title{ display:flex; align-items:baseline; gap:10px; margin:0 0 16px; font-family:var(--font-heading); font-size:21px; font-weight:600; line-height:1.25; color:var(--c-text); }
.kv-ty-card__title small{ margin-left:auto; font-family:var(--font-body); font-size:13px; font-weight:600; color:var(--c-text-muted); }

/* Et maintenant ? */
.kv-ty-steps{ list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:0; padding:0; }
.kv-ty-steps li{ position:relative; }
.kv-ty-steps li::before{ content:""; position:absolute; top:19px; left:46px; right:-10px; height:2px; border-radius:2px; background:#dce4e2; }
.kv-ty-steps li:last-child::before{ display:none; }
.kv-ty-steps li.is-done::before{ background:var(--c-primary); }
.kv-ty-steps__dot{ position:relative; z-index:1; display:flex; width:38px; height:38px; align-items:center; justify-content:center; margin-bottom:10px; border-radius:50%; border:1.5px solid #dce4e2; background:#f4f6f5; color:var(--c-text-muted); }
.kv-ty-steps__dot svg{ width:18px; height:18px; }
.kv-ty-steps .is-done .kv-ty-steps__dot{ border-color:var(--c-primary-dark); background:var(--c-primary-dark); color:#fff; }
.kv-ty-steps .is-current .kv-ty-steps__dot{ border-color:var(--c-primary); background:#fff; color:var(--c-primary-dark); box-shadow:0 0 0 4px rgba(12,116,128,.14); }
.kv-ty-steps strong{ display:block; font-size:14.5px; color:var(--c-text); }
.kv-ty-steps span.kv-ty-steps__txt{ display:block; margin-top:3px; font-size:12.5px; line-height:1.45; color:var(--c-text-muted); }
.kv-ty-steps a{ font-weight:600; color:var(--c-primary-dark); }

/* Articles */
.kv-ty-items{ list-style:none; margin:0; padding:0; }
.kv-ty-item{ display:grid; grid-template-columns:72px minmax(0,1fr) auto; align-items:center; gap:16px; padding:14px 0; border-top:1px solid #eef2f1; }
.kv-ty-item:first-child{ border-top:0; padding-top:4px; }
.kv-ty-item__img{ position:relative; width:72px; height:72px; }
.kv-ty-item__img img{ display:block; width:72px; height:72px; object-fit:cover; border-radius:14px; background:#f3f1ec; }
.kv-ty-item__qty{ position:absolute; top:-7px; right:-7px; display:flex; min-width:24px; height:24px; align-items:center; justify-content:center; padding:0 6px; border-radius:999px; background:var(--c-primary-dark); color:#fff; font-size:12px; font-weight:700; box-shadow:0 0 0 2px #fff; }
.kv-ty-item__name{ font-family:var(--font-heading); font-size:16.5px; font-weight:600; line-height:1.3; color:var(--c-text); text-decoration:none; }
a.kv-ty-item__name:hover{ color:var(--c-primary-dark); }
.kv-ty-item__unit{ display:block; margin-top:3px; font-size:13px; color:var(--c-text-muted); }
.kv-ty-item .wc-item-meta{ list-style:none; margin:4px 0 0; padding:0; font-size:12.5px; color:var(--c-text-muted); }
.kv-ty-item .wc-item-meta li{ display:flex; gap:4px; margin:0; }
.kv-ty-item .wc-item-meta p{ margin:0; }
.kv-ty-item__price{ font-size:15.5px; font-weight:700; white-space:nowrap; color:var(--c-text); }
.kv-ty-totals{ margin-top:8px; padding-top:10px; border-top:1px dashed var(--c-border); }
.kv-ty-totals__row{ display:flex; justify-content:space-between; gap:16px; padding:7px 0; font-size:14.5px; color:var(--c-text); }
.kv-ty-totals__row > span{ color:var(--c-text-muted); }
.kv-ty-totals__row strong{ font-weight:600; text-align:right; }
.kv-ty-totals__row.is-saving > span{ color:#1f6b39; }
.kv-ty-totals__row.is-saving strong{ color:#2f8f4e; font-weight:700; }
.kv-ty-totals__row.is-total{ align-items:baseline; margin-top:8px; padding-top:14px; border-top:1px solid var(--c-border); }
.kv-ty-totals__row.is-total > span{ font-size:17px; font-weight:700; color:var(--c-text); }
.kv-ty-totals__row.is-total strong{ font-family:var(--font-heading); font-size:28px; font-weight:600; }
.kv-ty-totals__row small, .kv-ty-totals__row .includes_tax{ display:block; font-size:12px; font-weight:400; color:var(--c-text-muted); }

/* Adresses */
.kv-ty-addresses{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.kv-ty-address{ padding:18px; border-radius:16px; border:1px solid var(--c-border); background:#fbfbf9; }
.kv-ty-address__head{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.kv-ty-address__head > svg{ flex:0 0 34px; width:34px; height:34px; padding:8px; border-radius:10px; background:var(--c-primary-soft); color:var(--c-primary-dark); }
.kv-ty-address__head strong{ font-size:14.5px; color:var(--c-text); }
.kv-ty-address address{ margin:0; font-style:normal; font-size:14px; line-height:1.65; color:var(--c-text); }
.kv-ty-address__extra{ display:block; margin-top:6px; font-size:13px; color:var(--c-text-muted); word-break:break-word; }

/* Colonne : récapitulatif, instructions, suggestion, aide */
.kv-ty-facts{ margin:0; }
.kv-ty-facts > div{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:11px 0; border-top:1px dashed var(--c-border); }
.kv-ty-facts > div:first-child{ border-top:0; padding-top:0; }
.kv-ty-facts dt{ font-size:13.5px; color:var(--c-text-muted); }
.kv-ty-facts dd{ margin:0; font-size:14.5px; font-weight:600; text-align:right; color:var(--c-text); }
.kv-ty-facts .is-total dd{ font-family:var(--font-heading); font-size:22px; }
.kv-ty-gateway h2, .kv-ty-gateway h3{ margin:0 0 10px; font-family:var(--font-heading); font-size:19px; font-weight:600; color:var(--c-text); }
.kv-ty-gateway h3{ margin-top:12px; font-size:16px; }
.kv-ty-gateway p{ margin:0 0 10px; font-size:14px; line-height:1.55; color:var(--c-text-muted); }
.kv-ty-gateway ul{ list-style:none; display:grid; gap:8px; margin:0; padding:0; }
.kv-ty-gateway li{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 12px; padding:9px 12px; border-radius:12px; background:#f7f8f6; font-size:13.5px; color:var(--c-text-muted); }
.kv-ty-gateway li strong{ color:var(--c-text); word-break:break-all; }
.kv-ty .kv-thankyou-upsell{ --kv-tier-accent:var(--c-primary-dark) !important; max-width:none; margin:0; padding:22px; border-radius:22px; border:1px solid var(--c-border); background:linear-gradient(160deg,#fff 30%,var(--c-primary-soft)); box-shadow:none; }
.kv-ty .kv-thankyou-upsell .kv-cart-nudge-title{ margin-bottom:12px; font-family:var(--font-heading); font-size:19px; font-weight:600; }
.kv-ty .kv-thankyou-upsell .btn{ border-radius:999px; padding:11px 18px; font-weight:600; }
.kv-ty-help p{ margin:0; font-size:14px; line-height:1.55; color:var(--c-text-muted); }
.kv-ty-help__links{ display:grid; gap:8px; margin-top:14px; }
.kv-ty-help__links a{ display:flex; align-items:center; gap:10px; padding:11px 14px; border-radius:14px; border:1px solid var(--c-border); font-size:14px; font-weight:600; color:var(--c-text); text-decoration:none; transition:border-color .2s, background .2s; }
.kv-ty-help__links a:hover{ border-color:var(--c-primary); background:var(--c-primary-soft); }
.kv-ty-help__links a > svg{ width:18px; height:18px; color:var(--c-primary-dark); }
.kv-ty-help__links a > svg:last-child{ margin-left:auto; width:16px; height:16px; color:var(--c-text-muted); }
.kv-ty-extra:empty{ display:none; }

@media (max-width:900px){
  .kv-ty-hero{ grid-template-columns:minmax(0,1fr); }
  .kv-ty-hero__visual{ order:-1; min-height:190px; }
  .kv-ty-grid{ grid-template-columns:minmax(0,1fr); }
  .kv-ty-aside{ position:static; }
}
@media (max-width:600px){
  .kv-ty{ gap:16px; }
  .kv-ty-hero{ padding:22px 18px; border-radius:22px; }
  .kv-ty-hero__visual{ min-height:160px; }
  .kv-ty-stack img{ width:104px; }
  .kv-ty-stack img + img{ margin-left:-30px; }
  .kv-ty-stack img:only-child{ width:140px; }
  .kv-ty-actions .kv-ty-btn{ flex:1 1 100%; justify-content:center; }
  .kv-ty-card{ padding:18px 16px; border-radius:18px; }
  .kv-ty-steps{ grid-template-columns:minmax(0,1fr); gap:0; }
  .kv-ty-steps li{ display:grid; grid-template-columns:38px minmax(0,1fr); column-gap:14px; padding-bottom:18px; }
  .kv-ty-steps li:last-child{ padding-bottom:0; }
  .kv-ty-steps__dot{ grid-row:1 / span 2; margin:0; }
  .kv-ty-steps li::before{ top:40px; bottom:0; left:18px; right:auto; width:2px; height:auto; }
  .kv-ty-item{ grid-template-columns:60px minmax(0,1fr) auto; gap:12px; }
  .kv-ty-item__img, .kv-ty-item__img img{ width:60px; height:60px; }
  .kv-ty-addresses{ grid-template-columns:minmax(0,1fr); }
}

/* =====================================================================
 * Blog : liste (« Conseils »), rubriques, recherche et article
 * =================================================================== */
.kv-blog{ background:#fbfaf6; }
.kv-blog__hero{ position:relative; overflow:hidden; padding-block:34px 30px; background:linear-gradient(90deg,#f7f5ef 0%,#f3f1ea 55%,#edf0e8 100%); }
.kv-blog__hero::after{ content:""; position:absolute; z-index:0; right:0; bottom:0; width:min(28vw,380px); height:100%; background:url(../images/quiz/quiz-bg-leaves-br.webp) no-repeat right bottom/cover; mix-blend-mode:multiply; opacity:.5; pointer-events:none; }
.kv-blog__hero > .container{ position:relative; z-index:1; }
.kv-crumbs{ margin-bottom:14px; font-size:13px; color:var(--c-text-muted); }
.kv-crumbs ol{ list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; }
.kv-crumbs li + li::before{ content:"›"; margin-right:6px; color:#9fb1af; }
.kv-crumbs a{ color:var(--c-text-muted); text-decoration:none; }
.kv-crumbs a:hover{ color:var(--c-primary-dark); text-decoration:underline; }
.kv-blog__eyebrow{ display:inline-flex; align-items:center; gap:8px; margin:0 0 10px; font-size:12.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--c-primary-dark); }
.kv-blog__eyebrow svg{ width:17px; height:17px; }
.kv-blog__title{ margin:0; font-family:var(--font-heading); font-weight:600; font-size:clamp(32px,4vw,52px); line-height:1.06; letter-spacing:-.01em; color:var(--c-text); }
.kv-blog__intro{ max-width:62ch; margin:14px 0 0; font-size:16px; line-height:1.6; color:var(--c-text-muted); }
.kv-blog__search{ display:flex; align-items:center; gap:8px; max-width:560px; margin-top:22px; padding:5px 5px 5px 14px; border-radius:999px; background:#fff; border:1px solid var(--c-border); }
.kv-blog__search:focus-within{ border-color:var(--c-primary); box-shadow:0 0 0 3px rgba(12,116,128,.14); }
.kv-blog__search > svg{ flex:0 0 18px; width:18px; height:18px; color:var(--c-text-muted); }
.kv-blog__search input{ flex:1; min-width:0; padding:10px 4px; border:0; outline:0; background:transparent; font:inherit; font-size:14.5px; color:var(--c-text); }
.kv-blog__search button{ padding:11px 20px; border:0; border-radius:999px; background:var(--c-primary-dark); color:#fff; font:inherit; font-size:14.5px; font-weight:600; cursor:pointer; }
.kv-blog__search button:hover{ background:#053f45; }
.kv-blog__chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.kv-chip{ display:inline-flex; align-items:center; gap:7px; padding:9px 15px; border-radius:999px; border:1px solid var(--c-border); background:#fff; font-size:13.5px; font-weight:600; color:var(--c-text); text-decoration:none; transition:border-color .2s, background .2s, color .2s; }
.kv-chip span{ padding:1px 7px; border-radius:999px; background:var(--c-primary-soft); font-size:11.5px; font-weight:700; color:var(--c-primary-dark); }
.kv-chip:hover{ border-color:var(--c-primary); color:var(--c-primary-dark); }
.kv-chip.is-active{ background:var(--c-primary-dark); border-color:var(--c-primary-dark); color:#fff; }
.kv-chip.is-active span{ background:rgba(255,255,255,.2); color:#fff; }

.kv-blog__body{ padding-block:30px 60px; }
.kv-blog__count{ margin:0 0 18px; font-size:14px; font-weight:600; color:var(--c-text-muted); }
.kv-blog__grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:22px; }
.kv-blog__btn{ display:inline-flex; align-items:center; gap:8px; align-self:flex-start; padding:13px 24px; border-radius:999px; background:var(--c-primary-dark); color:#fff; font-size:14.5px; font-weight:600; text-decoration:none; transition:background .2s, transform .2s; }
.kv-blog__btn:hover{ background:#053f45; color:#fff; transform:translateY(-1px); }
.kv-blog__btn.is-gold{ background:var(--c-gold,#e0b463); color:#22312f; }
.kv-blog__btn.is-gold:hover{ filter:brightness(.95); color:#22312f; }
.kv-blog__btn.is-small{ padding:10px 16px; font-size:13.5px; }

/* Une : dernier article */
.kv-feature{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:0; overflow:hidden; margin-bottom:26px; border-radius:24px; background:#fff; border:1px solid var(--c-border); box-shadow:0 14px 34px rgba(22,40,43,.06); }
.kv-feature__media{ display:block; overflow:hidden; background:var(--c-primary-light); }
.kv-feature__media img{ display:block; width:100%; height:100%; min-height:280px; object-fit:cover; transition:transform .5s; }
.kv-feature:hover .kv-feature__media img{ transform:scale(1.03); }
.kv-feature__body{ display:flex; flex-direction:column; gap:12px; padding:clamp(22px,3vw,38px); }
.kv-feature__flag{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0; }
.kv-feature__new{ padding:4px 11px; border-radius:999px; background:var(--c-primary-dark); color:#fff; font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.kv-feature__cat{ padding:4px 11px; border-radius:999px; background:var(--c-primary-soft); color:var(--c-primary-dark); font-size:12px; font-weight:700; }
.kv-feature__title{ margin:0; font-family:var(--font-heading); font-size:clamp(23px,2.4vw,32px); font-weight:600; line-height:1.2; }
.kv-feature__title a{ color:var(--c-text); text-decoration:none; }
.kv-feature__title a:hover{ color:var(--c-primary-dark); }
.kv-feature__excerpt{ margin:0; font-size:15px; line-height:1.6; color:var(--c-text-muted); }
.kv-feature__meta{ margin:0; font-size:13px; color:var(--c-text-muted); }

/* Carte d'article */
.kv-pcard{ display:flex; flex-direction:column; overflow:hidden; border-radius:20px; background:#fff; border:1px solid var(--c-border); box-shadow:0 6px 18px rgba(22,40,43,.05); transition:transform .2s, box-shadow .2s, border-color .2s; }
.kv-pcard:hover{ transform:translateY(-3px); border-color:#d6e3e1; box-shadow:0 16px 32px rgba(22,40,43,.09); }
.kv-pcard__media{ position:relative; display:block; aspect-ratio:16/10; overflow:hidden; background:var(--c-primary-light); }
.kv-pcard__media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.kv-pcard:hover .kv-pcard__media img{ transform:scale(1.04); }
.kv-pcard__cat{ position:absolute; left:12px; bottom:12px; padding:5px 12px; border-radius:999px; background:rgba(255,255,255,.94); font-size:11.5px; font-weight:700; color:var(--c-primary-dark); box-shadow:0 4px 12px rgba(22,40,43,.12); }
.kv-pcard__body{ display:flex; flex-direction:column; gap:9px; flex:1; padding:18px 20px 20px; }
.kv-pcard__title{ margin:0; font-family:var(--font-heading); font-size:18px; font-weight:600; line-height:1.3; }
.kv-pcard__title a{ color:var(--c-text); text-decoration:none; }
.kv-pcard__title a:hover{ color:var(--c-primary-dark); }
.kv-pcard__excerpt{ flex:1; margin:0; font-size:13.5px; line-height:1.55; color:var(--c-text-muted); }
.kv-pcard__meta{ margin:0; padding-top:10px; border-top:1px solid #eef2f1; font-size:12.5px; color:var(--c-text-muted); }
.kv-pcard__meta span{ margin:0 4px; }

.kv-blog__empty{ padding:56px 24px; border-radius:22px; border:1px dashed var(--c-border); background:#fff; text-align:center; }
.kv-blog__empty h2{ margin:0 0 8px; font-family:var(--font-heading); font-size:24px; font-weight:600; }
.kv-blog__empty p{ margin:0 0 18px; color:var(--c-text-muted); }
.kv-blog .kv-pagination{ margin-top:40px; }
.kv-blog .kv-pagination .page-numbers{ border-radius:999px; }

/* Bandeau diagnostic */
.kv-blog__cta{ padding-block:10px 60px; }
.kv-blog__cta-in{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:22px; padding:clamp(24px,3vw,40px); border-radius:26px; background:linear-gradient(120deg,var(--c-primary-dark) 0%,#0a5f68 60%,#127b7a 100%); color:#fff; }
.kv-blog__cta-in .kv-blog__eyebrow{ color:#bfe3e2; }
.kv-blog__cta-in h2{ margin:0 0 8px; font-family:var(--font-heading); font-size:clamp(22px,2.4vw,30px); font-weight:600; color:#fff; }
.kv-blog__cta-in p{ max-width:56ch; margin:0; font-size:15px; line-height:1.55; color:#d5eceb; }

/* ---------------- Article ---------------- */
.kv-article{ background:#fbfaf6; }
.kv-article__progress{ position:fixed; z-index:60; top:0; left:0; width:100%; height:3px; background:transparent; pointer-events:none; }
.kv-article__progress span{ display:block; width:0; height:100%; background:linear-gradient(90deg,var(--c-primary),#e6c98a); transition:width .1s linear; }
.kv-article__head{ padding-block:28px 22px; background:linear-gradient(180deg,#f4f2ec,#fbfaf6); }
.kv-article__head-in{ max-width:840px; }
.kv-article__cat{ display:inline-flex; align-items:center; gap:8px; padding:6px 14px; border-radius:999px; background:var(--c-primary-soft); font-size:12.5px; font-weight:700; color:var(--c-primary-dark); text-decoration:none; }
.kv-article__cat svg{ width:16px; height:16px; }
.kv-article__cat:hover{ background:var(--c-primary-light); }
.kv-article__title{ margin:14px 0 0; font-family:var(--font-heading); font-weight:600; font-size:clamp(30px,3.6vw,46px); line-height:1.1; letter-spacing:-.01em; color:var(--c-text); }
.kv-article__lead{ max-width:62ch; margin:14px 0 0; font-size:17px; line-height:1.6; color:var(--c-text-muted); }
.kv-article__meta{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:16px; font-size:13.5px; color:var(--c-text-muted); }
.kv-article__author{ display:inline-flex; align-items:center; gap:8px; font-weight:600; color:var(--c-text); }
.kv-article__avatar{ display:inline-flex; width:30px; height:30px; align-items:center; justify-content:center; border-radius:50%; background:var(--c-primary-dark); color:#fff; font-family:var(--font-heading); font-size:14px; font-weight:600; }
.kv-article__cover{ margin:0 0 8px; overflow:hidden; border-radius:24px; background:var(--c-primary-light); }
.kv-article__cover img{ display:block; width:100%; max-height:460px; object-fit:cover; }

.kv-article__layout{ display:grid; grid-template-columns:minmax(0,270px) minmax(0,1fr); gap:34px; align-items:start; padding-block:30px 50px; }
.kv-article__aside{ position:sticky; top:100px; display:grid; gap:16px; }
.kv-toc{ padding:20px; border-radius:20px; background:#fff; border:1px solid var(--c-border); }
.kv-toc__title{ margin:0 0 12px; font-family:var(--font-heading); font-size:16px; font-weight:600; color:var(--c-text); }
.kv-toc ol{ list-style:none; display:grid; gap:2px; max-height:min(52vh,460px); overflow:auto; margin:0; padding:0; }
.kv-toc li.is-sub{ padding-left:14px; }
.kv-toc a{ display:block; padding:7px 10px; border-left:2px solid transparent; border-radius:0 8px 8px 0; font-size:13.5px; line-height:1.4; color:var(--c-text-muted); text-decoration:none; }
.kv-toc a:hover{ background:var(--c-primary-soft); color:var(--c-primary-dark); }
.kv-toc a.is-active{ border-left-color:var(--c-primary); background:var(--c-primary-soft); font-weight:600; color:var(--c-primary-dark); }
.kv-share{ padding:18px 20px; border-radius:20px; background:#fff; border:1px solid var(--c-border); }
.kv-share__title{ margin:0 0 10px; font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--c-text-muted); }
.kv-share__row{ display:flex; gap:8px; }
.kv-share__btn{ display:inline-flex; width:40px; height:40px; align-items:center; justify-content:center; border-radius:12px; border:1px solid var(--c-border); background:#fff; color:var(--c-primary-dark); cursor:pointer; transition:background .2s, border-color .2s; }
.kv-share__btn:hover{ background:var(--c-primary-soft); border-color:var(--c-primary); }
.kv-share__btn svg{ width:19px; height:19px; }
.kv-share__done{ margin:10px 0 0; font-size:12.5px; font-weight:600; color:#2f8f4e; }
.kv-article__promo{ padding:20px; border-radius:20px; border:1px solid var(--c-border); background:linear-gradient(160deg,#fff 35%,var(--c-primary-soft)); }
.kv-article__promo-title{ margin:0 0 12px; font-family:var(--font-heading); font-size:16px; font-weight:600; color:var(--c-text); }
.kv-article__promo ul{ list-style:none; display:grid; gap:10px; margin:0 0 14px; padding:0; }
.kv-article__promo a{ display:flex; align-items:center; gap:11px; text-decoration:none; }
.kv-article__promo img{ width:52px; height:52px; object-fit:cover; border-radius:12px; background:#fff; }
.kv-article__promo strong{ display:block; font-size:13.5px; font-weight:600; line-height:1.3; color:var(--c-text); }
.kv-article__promo small{ display:block; margin-top:2px; font-size:13px; color:var(--c-primary-dark); }
.kv-article__promo small .amount{ font-weight:700; }

.kv-article__content{ max-width:760px; padding:clamp(22px,3vw,38px); border-radius:24px; background:#fff; border:1px solid var(--c-border); }
.kv-article__content > *:first-child{ margin-top:0; }
.kv-article__content h2{ scroll-margin-top:110px; font-family:var(--font-heading); font-size:clamp(23px,2.2vw,28px); }
.kv-article__content h3{ scroll-margin-top:110px; font-family:var(--font-heading); }
.kv-article__end{ display:flex; gap:14px; margin-top:36px; padding-top:22px; border-top:1px solid var(--c-border); }
.kv-article__end .kv-article__avatar{ flex:0 0 40px; width:40px; height:40px; font-size:17px; }
.kv-article__end strong{ display:block; font-size:15px; color:var(--c-text); }
.kv-article__end p{ margin:4px 0 8px; font-size:13.5px; line-height:1.55; color:var(--c-text-muted); }
.kv-article__end a{ font-size:13.5px; font-weight:600; color:var(--c-primary-dark); }

/* Encarts hérités de l'ancien site, remis à la charte */
.kv-article__content .toc{ display:none; }
.kv-article__content .subtitle{ font-size:17px; color:var(--c-text-muted); }
.kv-article__content .hero-image img, .kv-article__content .hero-image{ border-radius:18px; }
.kv-article__content .highlight-box, .kv-article__content .benefits-box{ margin:26px 0; padding:20px 22px; border-radius:18px; border:1px solid #d8e7e5; background:var(--c-primary-soft); }
.kv-article__content .highlight-box p:last-child, .kv-article__content .benefits-box p:last-child{ margin-bottom:0; }
.kv-article__content .benefits-list{ list-style:none; display:grid; gap:8px; margin:0; padding:0; }
.kv-article__content .benefits-list li{ position:relative; padding-left:26px; }
.kv-article__content .benefits-list li::before{ content:"✓"; position:absolute; left:0; font-weight:700; color:var(--c-primary-dark); }
.kv-article__content .faq-item{ margin:12px 0; padding:16px 18px; border-radius:16px; background:#fbfbf9; border:1px solid var(--c-border); }
.kv-article__content .faq-question{ font-family:var(--font-heading); font-size:16.5px; font-weight:600; color:var(--c-text); }
.kv-article__content .faq-answer{ margin-top:8px; font-size:14.5px; line-height:1.6; color:var(--c-text-muted); }
.kv-article__content .cta-section{ margin:34px 0; padding:26px; border-radius:22px; background:linear-gradient(120deg,var(--c-primary-dark),#0e6f74); color:#fff; text-align:center; }
.kv-article__content .cta-section h3{ margin:0 0 10px; color:#fff; }
.kv-article__content .cta-section p{ margin:0 0 8px; color:#d5eceb; }
.kv-article__content .cta-section a, .kv-article__content .cta-button{ display:inline-block; margin-top:12px; padding:12px 24px; border-radius:999px; background:#fff; color:var(--c-primary-dark) !important; font-weight:700; text-decoration:none; }
.kv-article__content .recipe-card, .kv-article__content .variation-card{ margin:26px 0; padding:22px; border-radius:20px; border:1px solid var(--c-border); background:#fff; box-shadow:0 8px 20px rgba(22,40,43,.05); }
.kv-article__content .recipe-header h3{ margin-top:0; }
.kv-article__content .recipe-info{ display:flex; flex-wrap:wrap; gap:10px 26px; margin:12px 0 18px; padding:14px 16px; border-radius:14px; background:var(--c-primary-soft); }
.kv-article__content .recipe-info-label{ display:block; font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--c-text-muted); }
.kv-article__content .recipe-info-value{ font-weight:700; color:var(--c-primary-dark); }
.kv-article__content .ingredient-item{ display:flex; justify-content:space-between; gap:16px; padding:9px 0; border-bottom:1px dashed var(--c-border); }
.kv-article__content .ingredient-amount{ font-weight:700; color:var(--c-primary-dark); white-space:nowrap; }
.kv-article__content .badge{ display:inline-block; padding:4px 12px; border-radius:999px; background:var(--c-primary-soft); font-size:12px; font-weight:700; color:var(--c-primary-dark); }
.kv-article__content .article-footer{ margin-top:30px; padding-top:18px; border-top:1px solid var(--c-border); font-size:13.5px; color:var(--c-text-muted); }
.kv-article__content .header-section{ margin-bottom:22px; }

.kv-related{ padding-block:8px 46px; }
.kv-related__head{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:18px; }
.kv-related__head h2{ margin:0; font-family:var(--font-heading); font-size:26px; font-weight:600; color:var(--c-text); }
.kv-related__head a{ font-size:14px; font-weight:600; color:var(--c-primary-dark); text-decoration:none; }
.kv-related__head a:hover{ text-decoration:underline; }

@media (max-width:1024px){
  /* Sous 1024 px : le sommaire reste avant l'article, le partage et la sélection passent après. */
  .kv-article__layout{ grid-template-columns:minmax(0,1fr); gap:20px; }
  .kv-article__aside{ display:contents; }
  .kv-toc{ order:1; }
  .kv-article__content{ order:2; max-width:none; }
  .kv-share{ order:3; }
  .kv-article__promo{ order:4; }
  .kv-toc ol{ max-height:260px; }
  .kv-feature{ grid-template-columns:minmax(0,1fr); }
  .kv-feature__media img{ min-height:0; aspect-ratio:16/9; }
}
@media (max-width:700px){
  .kv-blog__hero{ padding-block:22px 24px; }
  .kv-blog__search{ flex-wrap:wrap; border-radius:18px; padding:10px; }
  .kv-blog__search input{ flex:1 1 100%; padding:8px 6px; }
  .kv-blog__search button{ flex:1; }
  .kv-blog__chips{ flex-wrap:nowrap; overflow-x:auto; margin:20px -16px 0; padding:0 16px 6px; scrollbar-width:none; }
  .kv-blog__chips::-webkit-scrollbar{ display:none; }
  .kv-chip{ white-space:nowrap; }
  .kv-blog__grid{ grid-template-columns:minmax(0,1fr); }
  .kv-article__content{ padding:20px 16px; border-radius:18px; }
  .kv-article__cover{ border-radius:16px; }
  .kv-article__cover img{ max-height:260px; }
  .kv-blog__cta-in{ flex-direction:column; align-items:flex-start; }
  .kv-article__end{ flex-direction:column; }
}

/* Blocs des deux articles importés dont les classes « kv- » ont été renommées « imp- ». */
.kv-article__content .imp-article{ margin:0; }
.kv-article__content .imp-divider{ height:1px; margin:30px 0; background:var(--c-border); }
.kv-article__content .imp-info-box, .kv-article__content .imp-source-box{ margin:24px 0; padding:18px 20px; border-radius:18px; border:1px solid #d8e7e5; background:var(--c-primary-soft); font-size:14.5px; line-height:1.6; }
.kv-article__content .imp-source-box{ background:#fbfbf9; border-color:var(--c-border); color:var(--c-text-muted); font-size:13.5px; }
.kv-article__content .imp-source-label{ display:block; margin-bottom:4px; font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--c-text-muted); }
.kv-article__content .imp-quote{ margin:26px 0; padding:20px 24px; border-left:3px solid var(--c-primary); border-radius:0 16px 16px 0; background:#fbfbf9; font-family:var(--font-heading); font-size:18px; line-height:1.5; color:var(--c-text); }
.kv-article__content .imp-quote-source{ display:block; margin-top:8px; font-family:var(--font-body); font-size:13px; color:var(--c-text-muted); }
.kv-article__content .imp-faq-item{ margin:12px 0; padding:16px 18px; border-radius:16px; background:#fbfbf9; border:1px solid var(--c-border); }
.kv-article__content .imp-product-card{ display:grid; grid-template-columns:52px minmax(0,1fr); align-items:center; gap:14px; margin:16px 0; padding:16px 18px; border-radius:18px; border:1px solid var(--c-border); background:#fff; box-shadow:0 6px 16px rgba(22,40,43,.05); }
.kv-article__content .imp-product-emoji{ grid-row:1 / span 3; font-size:30px; text-align:center; }
.kv-article__content .imp-product-name{ font-family:var(--font-heading); font-size:16.5px; font-weight:600; color:var(--c-text); }
.kv-article__content .imp-product-desc{ font-size:13.5px; line-height:1.5; color:var(--c-text-muted); }
.kv-article__content .imp-product-cta{ display:inline-flex; align-items:center; gap:6px; margin-top:6px; padding:9px 16px; border-radius:999px; background:var(--c-primary-dark); color:#fff !important; font-size:13px; font-weight:600; text-decoration:none; }
.kv-article__content .imp-product-cta:hover{ background:#053f45; }

/* Panier vide : la grille reprend les cartes de la boutique */
.kv-tunnel-page .kv-empty-cart__grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin:0; padding:0; list-style:none; }
ul.products.kv-empty-cart__grid::before, ul.products.kv-empty-cart__grid::after{ content:none !important; display:none !important; }
.kv-tunnel-page .kv-empty-cart__grid li.product{ width:auto; margin:0; float:none; }
@media (max-width:1024px){ .kv-tunnel-page .kv-empty-cart__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .kv-tunnel-page .kv-empty-cart__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } }

/* Abonnement : carte utilisée pour le prélèvement automatique */
.kv-sub__card{ display:inline-flex; align-items:center; gap:7px; margin:0 0 12px; padding:7px 12px; border-radius:999px; background:var(--c-primary-soft); font-size:13px; font-weight:600; color:var(--c-primary-dark); }
