/** Shopify CDN: Minification failed

Line 7174:0 All "@import" rules must come first

**/
/* ============================================================
   Viva Capybara — CSS PRINCIPAL DU THÈME
   ------------------------------------------------------------
   Ce fichier porte encore le nom "viva-capybara-home.css" pour
   compatibilité, mais il contient désormais TOUS les styles Viva :
   - Homepage (scope: body.viva-homepage + #MainContent.viva-home)
   - Page collection (scope: .viva-collection)
   - Page panier (scope: .viva-cart, .viva-cart-item)
   - Page 404 (scope: .viva-404)
   - Pages custom (scope: .viva-page)
   - Minicart skin (scope: .minicart)
   - Header/footer skin
   ============================================================ */

body.viva-homepage {
  background: #faf7f2;
  --viva-bg: #faf7f2;
  --viva-bg-warm: #fff5ee;
  --viva-bg-dk: #e8e2d8;
  --viva-white: #fff;
  --viva-butter: #f5e6a3;
  --viva-butter-pale: #fdf6e0;
  --viva-lavender: #c8b8e8;
  --viva-lavender-pale: #f0ecf8;
  --viva-ink: #2c2420;
  --viva-ink-lt: #4a3e36;
  --viva-ink-sub: #7a6b5d;
  --viva-cta: #e89850;
  --viva-cta-h: #d68840;
  --viva-cta-lt: #f0b878;
  --viva-cta-pale: #fdf0e0;
  --viva-success: #8ebb8e;
  --viva-success-pale: #e4f0e4;
  --viva-mint: #8ebb8e;
  --viva-mint-pale: #e4f0e4;
  --viva-alert: #e8907a;
  --viva-alert-pale: #fff0eb;
  --viva-soft: #a8d4e6;
  --viva-soft-dk: #5a9ab5;
  --viva-soft-pale: #e4f2f8;
  --viva-rose: #f4a9a8;
  --viva-rose-pale: #fdeaea;
  --viva-peach: #f8d8c8;
  --viva-capy: #b5926b;
  --viva-capy-lt: #cbaa88;
  --viva-capy-dk: #8b6b4a;
}

body.viva-homepage #MainContent.viva-home {
  font-family: 'Nunito', sans-serif;
  background: var(--viva-bg);
  color: var(--viva-ink);
  -webkit-font-smoothing: antialiased;
  /* Alias maquette HTML (SVG, snippets) */
  --cta: var(--viva-cta);
  --cta-pale: var(--viva-cta-pale);
  --cta-h: var(--viva-cta-h);
  --cta-lt: var(--viva-cta-lt);
  --ink: var(--viva-ink);
  --ink-lt: var(--viva-ink-lt);
  --ink-sub: var(--viva-ink-sub);
  --bg: var(--viva-bg);
  --bg-dk: var(--viva-bg-dk);
  --white: var(--viva-white);
  --rose: var(--viva-rose);
  --rose-pale: var(--viva-rose-pale);
  --butter: var(--viva-butter);
  --butter-pale: var(--viva-butter-pale);
  --capy: var(--viva-capy);
  --capy-lt: var(--viva-capy-lt);
  --mint: var(--viva-mint);
  --mint-pale: var(--viva-mint-pale);
  --lavender: var(--viva-lavender);
  --soft: var(--viva-soft);
  --soft-dk: var(--viva-soft-dk);
  --success-pale: var(--viva-success-pale);
  --peach: var(--viva-peach);
}

.viva-home a {
  text-decoration: none;
  color: inherit;
}

/* ——— Containment & largeurs (évite débordement horizontal, thème + Viva) ——— */
body.viva-homepage {
  overflow-x: clip;
}
/* Le conteneur page entoure #MainContent ; clip ici empêchait le swipe horizontal
   des listes produits (overflow-x: auto) sur mobile. */
body.viva-homepage .page-container,
body.viva-homepage .page-element {
  max-width: 100%;
  overflow-x: visible;
}
/* Pas de overflow-x: clip ici : il casse le scroll tactile horizontal des bandes
   produits (.viva-featured__grid / .na-grid) sur iOS / Chrome Android. */
body.viva-homepage #MainContent.viva-home {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: visible;
}
body.viva-homepage #MainContent.viva-home > .shopify-section {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.viva-home .section-container {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.viva-home img,
.viva-home video {
  max-width: 100%;
  height: auto;
}
.viva-home .g-ico svg {
  max-width: 100%;
  height: auto;
}

/* ——— Promo marquee (parité honey-page-final : rayures miel + texte encre) ——— */
.viva-home .promo,
body.viva-homepage .shopify-section.viva-marquee .promo,
body.viva-pdp .shopify-section.viva-marquee .promo {
  width: 100%;
  overflow: hidden;
  border-top: none;
  border-bottom: 2px dashed var(--viva-cta-pale);
  background: repeating-linear-gradient(
    45deg,
    var(--viva-butter) 0,
    var(--viva-butter) 20px,
    var(--viva-butter-mid) 20px,
    var(--viva-butter-mid) 40px
  );
  white-space: nowrap;
}
.viva-home .promo-track,
body.viva-homepage .shopify-section.viva-marquee .promo-track,
body.viva-pdp .shopify-section.viva-marquee .promo-track {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  width: max-content;
  padding: 10px 0;
  animation: viva-mq 25s linear infinite;
  font-family: 'Fredoka', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--viva-ink);
  text-transform: none;
  letter-spacing: 0.02em;
  gap: 0;
  will-change: transform;
}
/* Deux groupes identiques : pas de gap entre les groupes, sinon translateX(-50%) ne tombe plus sur une boucle exacte */
.viva-home .promo-track__group,
body.viva-homepage .shopify-section.viva-marquee .promo-track__group,
body.viva-pdp .shopify-section.viva-marquee .promo-track__group {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  flex: 0 0 auto;
  align-items: center;
  gap: 60px;
  padding-right: 60px;
}
.viva-home .promo-track__group span,
body.viva-homepage .shopify-section.viva-marquee .promo-track__group span,
body.viva-pdp .shopify-section.viva-marquee .promo-track__group span {
  flex: 0 0 auto;
}
@keyframes viva-mq {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

/* ——— Hero ——— */
.viva-home .hero {
  position: relative;
  overflow: hidden;
  background: var(--viva-bg-warm);
  padding: 72px 32px 64px;
  text-align: center;
}
.viva-home .hero::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 80px;
  background: linear-gradient(to top, var(--viva-bg), transparent);
  z-index: 1;
  pointer-events: none;
}
.viva-home .hero-blob {
  position: absolute;
  right: -100px;
  top: -80px;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, var(--viva-cta-pale) 0%, transparent 70%);
  opacity: 0.5;
  border-radius: 50%;
  pointer-events: none;
}
.viva-home .hero-blob2 {
  position: absolute;
  left: -120px;
  bottom: -100px;
  width: 450px;
  height: 450px;
  background: radial-gradient(circle, var(--viva-rose-pale) 0%, transparent 70%);
  opacity: 0.4;
  border-radius: 50%;
  pointer-events: none;
}
.viva-home .hero-blob3 {
  position: absolute;
  left: 50%;
  top: -60px;
  transform: translateX(-50%);
  width: 600px;
  height: 300px;
  background: radial-gradient(circle, var(--viva-butter-pale) 0%, transparent 70%);
  opacity: 0.5;
  border-radius: 50%;
  pointer-events: none;
}
.viva-home .hero-in {
  max-width: min(700px, 100%);
  width: 100%;
  margin: 0 auto;
  position: relative;
  z-index: 2;
  box-sizing: border-box;
  padding-inline: 0;
}
.viva-home .h-over {
  font-family: 'Caveat', cursive;
  font-size: 20px;
  color: var(--viva-cta);
  margin-bottom: 14px;
  display: block;
}
.viva-home .h-title {
  font-family: 'Fredoka', sans-serif;
  font-size: 52px;
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1.08;
  margin-bottom: 20px;
  /* Maquette : sauts de ligne uniquement via <br> dans le Liquid, pas de césure au milieu des mots */
  overflow-wrap: normal;
  word-break: normal;
  hyphens: manual;
}
.viva-home .h-title em {
  font-style: normal;
  color: var(--viva-cta);
  position: relative;
}
.viva-home .h-title em::after {
  content: '';
  position: absolute;
  bottom: 4px;
  left: 0;
  width: 100%;
  height: 10px;
  background: var(--viva-cta-pale);
  border-radius: 5px;
  z-index: -1;
}
.viva-home .h-sub {
  font-size: 16px;
  color: var(--viva-ink-sub);
  line-height: 1.8;
  max-width: 520px;
  margin: 0 auto 28px;
}
.viva-home .h-ctas {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-bottom: 20px;
  flex-wrap: wrap;
  max-width: 100%;
}
.viva-home .h-ctas .btn-cta,
.viva-home .h-ctas .btn-sec {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  justify-content: center;
  text-align: center;
}
.viva-home .h-proof {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--viva-ink-sub);
  justify-content: center;
  flex-wrap: wrap;
  max-width: 100%;
  text-align: center;
}
.viva-home .h-proof .stars {
  color: var(--viva-cta);
  letter-spacing: 2px;
}
.viva-home .hero-figure {
  position: relative;
  z-index: 2;
  max-width: min(720px, 100%);
  margin: 28px auto 0;
  border-radius: 24px;
  overflow: hidden;
  border: 2px solid var(--viva-ink);
  box-shadow: 0 16px 40px rgba(44, 36, 32, 0.12);
  background: var(--viva-white);
}
.viva-home .hero--has-image {
  padding-bottom: 56px;
}
.viva-home .hero-figure__img {
  display: block;
  width: 100%;
  height: auto;
}

/* ——— Buttons ——— */
.viva-home .btn-cta,
body.viva-homepage .btn-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 16px 36px;
  border-radius: 50px;
  border: none;
  background: var(--viva-cta);
  color: #fff;
  font-family: 'Fredoka', sans-serif;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(232, 152, 80, 0.25);
  transition: all 0.3s;
  letter-spacing: 0.3px;
  position: relative;
  overflow: hidden;
  text-decoration: none;
}
.viva-home .btn-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(232, 152, 80, 0.35);
  color: #fff;
}
.viva-home .btn-sec {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: 50px;
  border: 2px solid var(--viva-bg-dk);
  background: var(--viva-white);
  color: var(--viva-ink);
  font-family: 'Fredoka', sans-serif;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  text-decoration: none;
}
.viva-home .btn-sec:hover {
  border-color: var(--viva-cta);
  color: var(--viva-cta);
}

/* Brillance au survol (comme la maquette HTML) */
.viva-home .btn-cta::before,
body.viva-homepage .btn-cta::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: 0.6s;
  pointer-events: none;
}
.viva-home .btn-cta:hover::before,
body.viva-homepage .btn-cta:hover::before {
  left: 100%;
}

/* ——— Trust strip (parité honey : fond crème, bordure pointillée CTA) ——— */
.viva-home .trust {
  background: var(--viva-bg);
  padding: 14px 32px;
  border-bottom: 2px dashed var(--viva-cta-pale);
}
.viva-home .viva-trust-strip__desktop.trust-in {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  gap: 32px;
  flex-wrap: wrap;
  min-width: 0;
}
.viva-home .trust-i {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  font-weight: 600;
  color: var(--viva-ink-sub);
  flex: 0 1 auto;
  max-width: 100%;
  white-space: nowrap;
}
.viva-home .trust-i svg {
  width: 16px;
  height: 16px;
  stroke: var(--viva-cta);
  fill: none;
  stroke-width: 2;
  flex: 0 0 16px;
}

/* Bandeau confiance — mobile : marquee texte sans fond ; desktop : inchangé */
.viva-trust-strip__marquee {
  display: none;
}

@keyframes vivaTrustStripMarquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

@media screen and (max-width: 768px) {
  .shopify-section.viva-trust-strip .trust {
    padding-inline: max(12px, env(safe-area-inset-left));
    padding-block: 8px 10px;
    border-bottom-width: 1px;
  }

  .shopify-section.viva-trust-strip .viva-trust-strip__desktop {
    display: none !important;
  }

  .shopify-section.viva-trust-strip .viva-trust-strip__marquee {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .shopify-section.viva-trust-strip .viva-trust-strip__marquee-viewport {
    overflow: hidden;
    width: 100%;
    -webkit-mask-image: linear-gradient(
      90deg,
      transparent,
      #000 6%,
      #000 94%,
      transparent
    );
    mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  }

  .shopify-section.viva-trust-strip .viva-trust-strip__marquee-track {
    display: flex;
    width: max-content;
    animation: vivaTrustStripMarquee 34s linear infinite;
  }

  .shopify-section.viva-trust-strip .viva-trust-strip__marquee:hover .viva-trust-strip__marquee-track {
    animation-play-state: paused;
  }

  .shopify-section.viva-trust-strip .viva-trust-strip__marquee-seq {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    gap: 0;
    padding-right: 1rem;
    box-sizing: border-box;
    background: transparent;
    border: none;
    box-shadow: none;
  }

  .shopify-section.viva-trust-strip .viva-trust-strip__marquee-item {
    font-size: 12px;
    font-weight: 600;
    color: var(--viva-ink-sub);
    white-space: nowrap;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .shopify-section.viva-trust-strip .viva-trust-strip__marquee-sep {
    display: inline-block;
    padding: 0 0.35em;
    color: rgba(44, 36, 32, 0.28);
    font-weight: 700;
    flex-shrink: 0;
    font-size: 12px;
    line-height: 1;
  }

  @media (prefers-reduced-motion: reduce) {
    .shopify-section.viva-trust-strip .viva-trust-strip__marquee-viewport {
      -webkit-mask-image: none;
      mask-image: none;
    }

    .shopify-section.viva-trust-strip .viva-trust-strip__marquee-track {
      animation: none;
      flex-wrap: wrap;
      justify-content: center;
      width: 100%;
      max-width: 100%;
      transform: none;
      row-gap: 6px;
      column-gap: 4px;
    }

    .shopify-section.viva-trust-strip .viva-trust-strip__marquee-seq:last-child {
      display: none !important;
    }

    .shopify-section.viva-trust-strip .viva-trust-strip__marquee-seq {
      flex-wrap: wrap;
      justify-content: center;
      padding-right: 0;
      max-width: 100%;
    }

    .shopify-section.viva-trust-strip .viva-trust-strip__marquee-item {
      white-space: normal;
      text-align: center;
      max-width: 100%;
    }
  }
}

/* ——— Guide cards ——— */
.viva-home .guide {
  padding: 56px clamp(16px, 4vw, 32px) 48px;
  max-width: min(940px, 100%);
  margin: 0 auto;
  box-sizing: border-box;
}
.viva-home .guide-title {
  text-align: center;
  font-family: 'Caveat', cursive;
  font-size: 20px;
  color: var(--viva-cta);
  margin-bottom: 24px;
}
.viva-home .guide-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  min-width: 0;
}
.viva-home .guide-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--viva-white);
  border-radius: 20px;
  padding: 28px 20px;
  text-align: center;
  cursor: pointer;
  transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
  border: 2px solid transparent;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  color: var(--viva-ink);
  min-width: 0;
  max-width: 100%;
}
.viva-home .guide-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 0%, var(--viva-cta-pale), transparent 70%);
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
}
.viva-home .guide-card:hover::before {
  opacity: 0.3;
}
.viva-home .guide-card .g-ico {
  margin-bottom: 16px;
  display: block;
  line-height: 0;
}
.viva-home .guide-card-thumb {
  width: 120px;
  height: 120px;
  margin: 0 auto 16px;
  border-radius: 18px;
  overflow: hidden;
  border: 2px solid var(--viva-ink);
  flex-shrink: 0;
  background: var(--viva-bg);
}
.viva-home .guide-card-thumb__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.viva-home .guide-card:nth-child(1) {
  background: var(--viva-cta-pale);
}
.viva-home .guide-card:nth-child(2) {
  background: var(--viva-mint-pale);
}
.viva-home .guide-card:nth-child(3) {
  background: var(--viva-soft-pale);
}
.viva-home .guide-card:hover {
  border-color: var(--viva-cta);
  transform: translateY(-6px);
  box-shadow: 0 12px 28px rgba(61, 43, 31, 0.06);
}
.viva-home .guide-card h3 {
  font-family: 'Fredoka', sans-serif;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 6px;
}
.viva-home .guide-card p {
  font-size: 12px;
  color: var(--viva-ink-sub);
  line-height: 1.6;
}
.viva-home .guide-card .g-link {
  display: inline-block;
  margin-top: 12px;
  font-family: 'Fredoka', sans-serif;
  font-size: 11px;
  font-weight: 700;
  color: var(--viva-cta);
  border-bottom: 2px solid var(--viva-cta-pale);
  transition: border-color 0.2s;
}
.viva-home .guide-card:hover .g-link {
  border-color: var(--viva-cta);
}

/* ——— Section headings ——— */
.viva-home .sec {
  padding: 80px clamp(16px, 4vw, 32px);
  max-width: min(1140px, 100%);
  margin: 0 auto;
  position: relative;
  box-sizing: border-box;
}
.viva-home .s-head {
  text-align: center;
  margin-bottom: 40px;
  position: relative;
}
.viva-home .s-over {
  font-family: 'Caveat', cursive;
  font-size: 17px;
  color: var(--viva-cta);
  display: block;
  margin-bottom: 4px;
}
.viva-home .s-title {
  font-family: 'Fredoka', sans-serif;
  font-weight: 700;
  color: var(--viva-ink);
}
.viva-home .s-t1 {
  font-size: 34px;
}
.viva-home .s-t2 {
  font-size: 26px;
}
.viva-home .s-sub {
  font-size: 13px;
  color: var(--viva-ink-sub);
  margin-top: 6px;
}

/* ——— Bestsellers block title ——— */
.viva-home .bs {
  padding: 40px 0 60px;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}
.viva-home .viva-bs-intro {
  padding: 40px 0 0;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}
.viva-home .bs .s-head,
.viva-home .viva-bs-intro .s-head {
  padding: 0 clamp(12px, 4vw, 32px);
  box-sizing: border-box;
}
.viva-home .viva-bs-footer-note {
  max-width: 1200px;
  margin: 0 auto;
  padding-bottom: 48px;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products {
  padding-top: 0 !important;
}
.viva-home .na-squiggle {
  width: 120px;
  margin: 8px auto 16px;
  display: block;
}
.viva-home .na-link {
  margin-top: 16px;
  text-align: center;
  font-family: 'Fredoka', sans-serif;
  font-size: 18px;
  font-weight: 700;
}
.viva-home .na-link a {
  text-decoration: none;
  color: var(--viva-ink);
  transition: color 0.2s;
  white-space: nowrap;
}
.viva-home .na-link a:hover {
  color: var(--viva-cta);
}
.viva-home .na-link .arrow {
  display: inline-block;
  margin-left: 8px;
  font-size: 14px;
}
.viva-home .bs-count {
  text-align: center;
  margin-top: 16px;
  font-family: 'Fredoka', sans-serif;
  font-size: 12px;
  font-weight: 600;
  color: var(--viva-ink-sub);
}

/* ——— Inline testimonial ——— */
.viva-home .inline-testi {
  width: 100%;
  max-width: min(700px, calc(100% - 32px));
  margin: 24px auto 0;
  text-align: center;
  padding: clamp(24px, 5vw, 40px) clamp(18px, 4vw, 48px);
  position: relative;
  background: var(--viva-butter-pale);
  border-radius: 24px;
  border: 1.5px solid rgba(245, 230, 163, 0.4);
  box-sizing: border-box;
}
.viva-home .inline-testi::before {
  content: '\201C';
  font-family: Caveat, cursive;
  font-size: 72px;
  color: var(--viva-cta);
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  line-height: 1;
  pointer-events: none;
  opacity: 0.3;
}
.viva-home .inline-testi blockquote {
  font-size: 16px;
  font-style: italic;
  color: var(--viva-ink-lt);
  line-height: 1.75;
  margin: 24px 0 12px;
}
.viva-home .inline-testi cite {
  font-family: 'Fredoka', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--viva-cta);
  font-style: normal;
}

/* ——— Brand banner ——— */
.viva-home .brand-ban {
  display: flex;
  justify-content: center;
  padding: 40px clamp(16px, 4vw, 32px);
  box-sizing: border-box;
}
.viva-home .brand-ban-in {
  width: 100%;
  max-width: min(1200px, 100%);
  min-height: 200px;
  height: auto;
  background: var(--viva-cta-pale);
  border: 2px solid var(--viva-ink);
  border-radius: 24px;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-sizing: border-box;
}
.viva-home .brand-ban-text {
  text-align: center;
  max-width: min(600px, 100%);
  min-width: 0;
  flex: 1 1 280px;
  z-index: 2;
  padding: 0 clamp(12px, 3vw, 20px);
}
.viva-home .brand-ban-text h2 {
  margin: 0;
  font-family: 'Fredoka', sans-serif;
  font-size: 24px;
  font-weight: 700;
  text-transform: uppercase;
  line-height: 1.15;
  color: var(--viva-ink);
  letter-spacing: 0.5px;
  overflow-wrap: normal;
  word-break: normal;
}
.viva-home .brand-ban-text .brand-sub {
  margin-top: 10px;
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--viva-ink-lt);
  letter-spacing: 0.8px;
}
.viva-home .brand-ban .icon-l,
.viva-home .brand-ban .icon-r {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 150px;
}
.viva-home .brand-ban .icon-l {
  left: 50px;
}
.viva-home .brand-ban .icon-r {
  right: 50px;
}
.viva-home .brand-ban .sparkle {
  position: absolute;
  color: var(--viva-ink);
  font-size: 22px;
  opacity: 0.35;
}
.viva-home .brand-ban .sp1 {
  right: 190px;
  top: 25px;
}
.viva-home .brand-ban .sp2 {
  right: 250px;
  bottom: 30px;
  font-size: 16px;
}
.viva-home .brand-ban .sp3 {
  left: 190px;
  bottom: 25px;
  font-size: 18px;
}

/* ——— Bundles ——— */
.viva-home .bun-sec {
  background: var(--viva-rose-pale);
  padding: clamp(48px, 8vw, 80px) clamp(16px, 4vw, 32px);
  position: relative;
  overflow-x: clip;
  overflow-y: visible;
  box-sizing: border-box;
}
.viva-home .bun-sec::before {
  content: '';
  position: absolute;
  top: -60px;
  right: -60px;
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(232, 139, 160, 0.12), transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.viva-home .bun-in {
  max-width: min(1140px, 100%);
  margin: 0 auto;
  position: relative;
  z-index: 1;
  padding-inline: 0;
  box-sizing: border-box;
}
.viva-home .bun-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 36px;
  padding-top: 18px;
  min-width: 0;
  overflow: visible;
}
.viva-home .bun {
  background: var(--viva-white);
  border-radius: 24px;
  padding: 28px 20px;
  text-align: center;
  position: relative;
  transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
  min-width: 0;
  max-width: 100%;
  overflow: visible;
}
.viva-home .bun:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(61, 43, 31, 0.06);
}
.viva-home .bun.featured {
  border: 2px solid var(--viva-cta);
  transform: scale(1.04);
  box-shadow: 0 12px 32px rgba(61, 43, 31, 0.08);
}
.viva-home .bun.featured:hover {
  transform: scale(1.06);
  box-shadow: 0 12px 32px rgba(61, 43, 31, 0.1);
}
.viva-home .bun-pop {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--viva-cta);
  color: #fff;
  padding: 5px 18px;
  border-radius: 50px;
  font-family: 'Fredoka', sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
  z-index: 2;
}
.viva-home .bun-save {
  position: absolute;
  top: -8px;
  right: 16px;
  background: var(--viva-alert);
  color: #fff;
  padding: 5px 14px;
  border-radius: 50px;
  font-family: 'Fredoka', sans-serif;
  font-size: 10px;
  font-weight: 700;
}
.viva-home .bun-imgs {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-bottom: 14px;
}
.viva-home .bun-img {
  width: 64px;
  height: 64px;
  border-radius: 14px;
  background: #d5d0c8;
  overflow: hidden;
}
.viva-home .bun-img img,
.viva-home .bun-img .bun-img__media {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.viva-home .bun-name {
  font-family: 'Fredoka', sans-serif;
  font-size: 17px;
  font-weight: 700;
  margin-bottom: 4px;
}
.viva-home .bun-desc {
  font-size: 12px;
  color: var(--viva-ink-sub);
  margin-bottom: 14px;
  line-height: 1.5;
}
.viva-home .bun-prices {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 16px;
}
.viva-home .bun-prices .now {
  font-family: 'Fredoka', sans-serif;
  font-size: 24px;
  font-weight: 700;
  order: 2;
}
.viva-home .bun-prices .was {
  font-family: 'Fredoka', sans-serif;
  font-size: 17px;
  color: var(--viva-ink-sub);
  text-decoration: line-through;
  font-weight: 600;
  order: 1;
}
.viva-home .bun-btn {
  width: 100%;
  padding: 13px;
  border-radius: 50px;
  border: none;
  background: var(--viva-ink);
  color: var(--viva-white);
  font-family: 'Fredoka', sans-serif;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  letter-spacing: 0.3px;
  text-decoration: none;
  display: inline-block;
}
.viva-home .bun-btn:hover {
  background: var(--viva-cta);
  color: #fff;
}

/* ——— Quiz ——— */
.viva-home .quiz-ban {
  width: 100%;
  max-width: min(880px, calc(100% - 32px));
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding: clamp(20px, 4vw, 40px);
  border-radius: 24px;
  box-sizing: border-box;
  background: linear-gradient(135deg, var(--viva-cta-pale), var(--viva-butter-pale));
  border: 2px solid rgba(245, 230, 163, 0.3);
  position: relative;
  overflow: hidden;
  text-align: center;
}
.viva-home .quiz-ban-t h3 {
  font-family: 'Fredoka', sans-serif;
  font-size: 21px;
  font-weight: 700;
  color: var(--viva-ink);
  margin-bottom: 4px;
}
.viva-home .quiz-ban-t p {
  font-size: 13px;
  color: var(--viva-ink-lt);
  line-height: 1.5;
}
.viva-home .quiz-progress {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 14px 0 8px;
}
.viva-home .quiz-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--viva-bg-dk);
  transition: all 0.3s;
}
.viva-home .quiz-dot.active {
  background: var(--viva-cta);
  transform: scale(1.2);
}
.viva-home .quiz-dot.done {
  background: var(--viva-success);
}
.viva-home .quiz-pills {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 12px;
}
.viva-home .quiz-pill {
  padding: 12px clamp(12px, 3vw, 24px);
  border-radius: 50px;
  border: 2px solid var(--viva-ink);
  background: var(--viva-white);
  font-family: 'Fredoka', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--viva-ink);
  cursor: pointer;
  transition: all 0.2s;
  max-width: 100%;
  text-align: center;
  box-sizing: border-box;
}
.viva-home .quiz-pill:hover {
  background: var(--viva-cta);
  border-color: var(--viva-cta);
  color: #fff;
}

.viva-quiz-result__name {
  font-family: 'Fredoka', sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--viva-ink);
  margin-bottom: 4px;
}
.viva-quiz-result__price {
  font-size: 18px;
  font-weight: 700;
  color: var(--viva-cta);
  margin-bottom: 16px;
}
.viva-quiz-result__cta {
  display: inline-flex;
  text-decoration: none;
}

/* ——— Family newsletter ——— */
.viva-home .family {
  background: var(--viva-lavender);
  border-radius: 24px;
  padding: clamp(28px, 5vw, 44px) clamp(20px, 4vw, 52px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px;
  width: 100%;
  max-width: min(880px, calc(100% - 32px));
  margin: 0 auto;
  color: var(--viva-ink);
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
}
.viva-home .family-t {
  flex: 1 1 260px;
  min-width: 0;
}
.viva-home .family-t h3 {
  font-family: 'Fredoka', sans-serif;
  font-size: 24px;
  font-weight: 700;
  color: var(--viva-ink);
  margin-bottom: 6px;
}
.viva-home .family-t p {
  font-size: 13px;
  color: var(--viva-ink-sub);
  margin-bottom: 18px;
  line-height: 1.7;
}
.viva-home .family-f {
  display: flex;
  gap: 8px;
  max-width: min(420px, 100%);
  flex-wrap: wrap;
  min-width: 0;
}
.viva-home .family-f .input-group-form,
.viva-home .family-f .input-email-submit {
  width: 100%;
}
.viva-home .family-f .input-email-submit {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: stretch;
}
.viva-home .family-f input[type='email'] {
  flex: 1 1 160px;
  min-width: 0;
  padding: 13px 18px;
  border-radius: 50px;
  border: 1.5px solid rgba(44, 36, 32, 0.15);
  background: var(--viva-white);
  font-size: 12px;
  outline: none;
  font-family: 'Nunito', sans-serif;
  color: var(--viva-ink);
}
.viva-home .family-f button[type='submit'] {
  padding: 13px 28px;
  border-radius: 50px;
  border: none;
  background: var(--viva-cta);
  color: #fff;
  font-family: 'Fredoka', sans-serif;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s;
}
.viva-home .family-f .input-group__btn {
  display: flex;
}
.viva-home .family-f .newsletter-form__submit-icon {
  display: none;
}
.viva-home .family-f .form-success,
.viva-home .family-f .errors {
  flex: 1 0 100%;
  margin: 8px 0 0;
  font-size: 13px;
  text-align: left;
}
.viva-home .family-f .form-success {
  color: var(--viva-mint);
  font-weight: 700;
}
.viva-home .family-f .errors {
  color: var(--viva-alert, #E8907A);
}
.viva-home .family-fine {
  font-size: 10px;
  color: var(--viva-ink-sub);
  margin-top: 8px;
  opacity: 0.6;
}

/* ——— Story + testimonials ——— */
.viva-home .story {
  text-align: center;
  position: relative;
}
.viva-home .story-av {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  margin: 0 auto 18px;
  border: 3px solid var(--viva-cta-pale);
  overflow: hidden;
}
.viva-home .story-av img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.viva-home .story p {
  font-size: 15px;
  color: var(--viva-ink-lt);
  line-height: 1.85;
  max-width: 500px;
  margin: 0 auto;
}
.viva-home .story .sig {
  font-family: 'Caveat', cursive;
  font-size: 20px;
  color: var(--viva-cta);
  margin-top: 12px;
  display: block;
}
.viva-home .t-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 36px;
}
.viva-home .t-card {
  background: var(--viva-white);
  border-radius: 20px;
  padding: 28px 22px;
  position: relative;
  transition: transform 0.3s;
}
.viva-home .t-card:hover {
  transform: translateY(-3px);
}
.viva-home .t-stars {
  color: var(--viva-cta);
  font-size: 12px;
  margin-bottom: 10px;
  letter-spacing: 2px;
}
.viva-home .t-text {
  font-size: 13px;
  color: var(--viva-ink-lt);
  line-height: 1.7;
  margin-bottom: 16px;
}
.viva-home .t-who {
  display: flex;
  align-items: center;
  gap: 10px;
}
.viva-home .t-av {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #d5d0c8;
  flex: 0 0 36px;
  overflow: hidden;
}
.viva-home .t-av img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.viva-home .t-name {
  font-family: 'Fredoka', sans-serif;
  font-size: 12px;
  font-weight: 700;
}
.viva-home .t-detail {
  font-size: 10px;
  color: var(--viva-ink-sub);
}

/* ——— Cloud collections ——— */
.viva-home .cloud-coll {
  position: relative;
  padding: 100px 0 110px;
  background: var(--viva-soft);
  overflow: visible;
}
.viva-home .cloud-top,
.viva-home .cloud-bot {
  position: absolute;
  left: 0;
  width: 100%;
  overflow: hidden;
  line-height: 0;
  pointer-events: none;
}
.viva-home .cloud-top {
  top: -1px;
  transform: rotate(180deg);
}
.viva-home .cloud-bot {
  bottom: -1px;
}
.viva-home .cloud-top svg,
.viva-home .cloud-bot svg {
  display: block;
  width: 100%;
  height: 80px;
}
.viva-home .cloud-wrap {
  max-width: min(1100px, 100%);
  margin: 0 auto;
  text-align: center;
  padding: 0 clamp(16px, 4vw, 32px);
  box-sizing: border-box;
}
.viva-home .cloud-title {
  font-family: 'Fredoka', sans-serif;
  font-size: 44px;
  font-weight: 700;
  color: var(--viva-soft-dk);
  margin-bottom: 48px;
  text-transform: uppercase;
}
.viva-home .cloud-grid {
  display: flex;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
}
.viva-home .cloud-card {
  width: min(260px, 100%);
  max-width: 100%;
  flex: 0 1 260px;
  min-width: 0;
}
.viva-home .cloud-img {
  width: 100%;
  max-width: 260px;
  margin-left: auto;
  margin-right: auto;
  aspect-ratio: 1;
  height: auto;
  min-height: 0;
  border-radius: 20px;
  overflow: hidden;
  border: 2px solid var(--viva-ink);
  background: #d5d0c8;
}
.viva-home .cloud-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.viva-home .cloud-img.ci1 {
  background: linear-gradient(135deg, var(--viva-cta-pale), var(--viva-peach));
}
.viva-home .cloud-img.ci2 {
  background: linear-gradient(135deg, var(--viva-soft), var(--viva-rose-pale));
}
.viva-home .cloud-img.ci3 {
  background: linear-gradient(135deg, var(--viva-cta-lt), var(--viva-cta));
}
.viva-home .cloud-btn {
  display: block;
  margin-top: 18px;
  background: var(--viva-cta);
  padding: 14px 0;
  border-radius: 999px;
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border: 2px solid var(--viva-soft-dk);
  box-shadow: 0 5px 0 var(--viva-soft-dk);
  cursor: pointer;
  transition: 0.15s;
  color: var(--viva-ink);
  text-decoration: none;
  text-align: center;
}
.viva-home .cloud-btn:hover {
  background: var(--viva-cta-lt);
  color: var(--viva-ink);
}
.viva-home .cloud-bottom {
  margin-top: 40px;
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--viva-soft-dk);
}
.viva-home .cloud-bottom a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s;
}
.viva-home .cloud-bottom a:hover {
  color: var(--viva-cta);
}

/* ——— Characters ——— */
.viva-home .chc-wrap {
  max-width: min(1280px, 100%);
  margin: 0 auto;
  padding: 0 clamp(12px, 3vw, 32px);
  box-sizing: border-box;
}
.viva-home .chc-grid {
  display: flex;
  justify-content: center;
  gap: clamp(10px, 2vw, 22px);
  align-items: flex-start;
  flex-wrap: wrap;
  min-width: 0;
}
.viva-home .chc-card {
  width: 220px;
  max-width: 100%;
  min-height: 290px;
  border: 2px solid var(--viva-ink);
  border-radius: 18px;
  padding: 16px 16px 14px;
  position: relative;
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
  cursor: pointer;
  text-decoration: none;
  color: var(--viva-ink);
  display: block;
  box-sizing: border-box;
}
.viva-home .chc-card:hover {
  transform: translateY(-6px);
}
.viva-home .chc-card.cc-capy {
  background: var(--viva-butter);
}
.viva-home .chc-card.cc-baby {
  background: var(--viva-rose);
}
.viva-home .chc-card.cc-turtle {
  background: var(--viva-mint);
}
.viva-home .chc-card.cc-orange {
  background: var(--viva-cta-lt);
}
.viva-home .chc-card.cc-chef {
  background: var(--viva-lavender);
}
.viva-home .chc-imgbox {
  width: 100%;
  height: 190px;
  background: var(--viva-bg);
  border: 2px solid var(--viva-ink);
  border-radius: 16px;
  overflow: hidden;
}
.viva-home .chc-imgbox img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.viva-home .chc-label {
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 14px;
  height: 38px;
  box-sizing: border-box;
  background: var(--viva-bg);
  border: 2px solid var(--viva-ink);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  padding: 0 8px;
  color: var(--viva-ink);
  text-align: center;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* ——— Joy marquee ——— */
.viva-home .joy-ban {
  width: 100%;
  overflow: hidden;
  border-top: 2px solid var(--viva-ink);
  border-bottom: 2px solid var(--viva-ink);
  background: linear-gradient(90deg, var(--viva-rose) 0%, var(--viva-butter) 33%, var(--viva-mint) 66%, var(--viva-soft) 100%);
  white-space: nowrap;
}
.viva-home .joy-track {
  display: inline-flex;
  align-items: center;
  gap: 0;
  width: max-content;
  padding: 14px 0 16px;
  animation: viva-joy-scroll 30s linear infinite;
}
.viva-home .joy-track .jt {
  font-family: 'Fredoka', sans-serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1;
  letter-spacing: -0.5px;
  flex: 0 0 auto;
  padding: 0 20px;
  white-space: nowrap;
}
.viva-home .joy-track .js {
  font-size: 16px;
  color: var(--viva-cta);
  flex: 0 0 auto;
  opacity: 0.7;
  white-space: nowrap;
}
@keyframes viva-joy-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

/* ——— Instagram grid ——— */
.viva-home .insta-g {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px;
  margin-top: 28px;
}
.viva-home .insta-c {
  aspect-ratio: 1;
  border-radius: 14px;
  background: #d5d0c8;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.3s;
}
@media (hover: hover) and (pointer: fine) {
  .viva-home .insta-c:hover {
    transform: scale(1.04);
    border-radius: 18px;
  }
}
.viva-home .insta-c img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.viva-home .viva-insta-handle {
  text-align: center;
  margin-top: 14px;
  font-size: 13px;
  font-weight: 700;
  color: var(--viva-ink-sub);
}

/* ——— SEO rich text ——— */
.viva-home .viva-seo-block {
  max-width: 760px;
  margin: 0 auto;
  font-size: 13px;
  color: var(--viva-ink-sub);
  line-height: 1.85;
}
.viva-home .viva-seo-block h2 {
  font-family: 'Fredoka', sans-serif;
  font-size: 26px;
  font-weight: 700;
  color: var(--viva-ink);
  margin-bottom: 18px;
}
.viva-home .viva-seo-block a {
  color: var(--viva-ink);
  border-bottom: 1px solid var(--viva-bg-dk);
  text-decoration: none;
}
.viva-home .viva-seo-block a:hover {
  border-color: var(--viva-cta);
}

/* ——— Header (theme) ——— */
body.viva-homepage #shopify-header-section {
  position: sticky;
  top: 0;
  z-index: 100;
}
body.viva-homepage #shopify-header-section .section-container {
  background: var(--viva-bg) !important;
  border-bottom: 1.5px solid var(--viva-ink);
}
body.viva-homepage #shopify-header-section .section-container.viva-header-honey {
  border-bottom: 2px dashed var(--viva-cta-pale) !important;
}
body.viva-homepage #shopify-header-section .header__link,
body.viva-homepage #shopify-header-section .header__childlink {
  font-family: 'Fredoka', sans-serif;
  font-weight: 600;
  font-size: 13px;
  color: var(--viva-ink-sub) !important;
}
body.viva-homepage #shopify-header-section .header__link:hover,
body.viva-homepage #shopify-header-section .header__childlink:hover {
  color: var(--viva-cta) !important;
}
body.viva-homepage #shopify-header-section .cart-bubble {
  background: var(--viva-cta);
  color: #fff;
  font-family: 'Fredoka', sans-serif;
  font-size: 9px;
  font-weight: 700;
}
body.viva-homepage sticky-header.viva-header--scrolled .section-container,
body.viva-homepage #shopify-header-section .viva-header--scrolled.section-container {
  box-shadow: 0 4px 20px rgba(61, 43, 31, 0.1);
}
body.viva-homepage #shopify-header-section sticky-header.viva-header--scrolled {
  box-shadow: 0 4px 20px rgba(61, 43, 31, 0.1);
}

/* ——— Trust badges section (theme) ——— */
body.viva-homepage .trust-badges-section {
  background: var(--viva-white) !important;
  border-bottom: 1px solid var(--viva-bg-dk);
}
body.viva-homepage .trust-badges-section .title_badge {
  font-family: 'Fredoka', sans-serif !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  color: var(--viva-ink-sub) !important;
}

/* ——— Featured products (bestsellers) — aligne .bs / .pc maquette HTML ——— */
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products {
  position: relative;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .page-width {
  position: relative;
  max-width: min(1200px, 100%);
  padding-left: clamp(12px, 3vw, 32px) !important;
  padding-right: clamp(12px, 3vw, 32px) !important;
  box-sizing: border-box;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .page-width::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 60px;
  height: 100%;
  background: linear-gradient(to left, var(--viva-bg), transparent);
  z-index: 2;
  pointer-events: none;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper {
  overflow: hidden;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .section-blocks.inline-flex {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-wrapper {
  align-items: flex-start;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-slide {
  height: auto;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-slide .flex__item {
  width: 100%;
  max-width: none;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .product-card {
  border-radius: 20px;
  cursor: pointer;
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .product-card:hover {
  transform: translateY(-6px);
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .product-card__image-container,
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .image-container.image--portrait {
  border: 2px solid var(--viva-ink);
  border-radius: 20px;
  overflow: hidden;
  background: #d5d0c8;
  aspect-ratio: 2 / 3;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .image-container.image--portrait .product-card__image-wrapper {
  height: 100%;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .image-container.image--portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* Pastels façon cartes démo (nph-1 … nph-5), léger voile sur la photo */
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-slide:nth-child(5n + 1) .image-container.image--portrait::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: 18px;
  opacity: 0.12;
  background: linear-gradient(145deg, var(--viva-cta-pale) 0%, #f2e5d4 45%, var(--viva-capy-lt) 100%);
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-slide:nth-child(5n + 2) .image-container.image--portrait::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: 18px;
  opacity: 0.1;
  background: linear-gradient(180deg, var(--viva-soft) 0%, #c3e6ff 38%, var(--viva-success-pale) 100%);
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-slide:nth-child(5n + 3) .image-container.image--portrait::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: 18px;
  opacity: 0.1;
  background: linear-gradient(180deg, var(--viva-rose-pale) 0%, #f5e0da 52%, var(--viva-peach) 100%);
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-slide:nth-child(5n + 4) .image-container.image--portrait::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: 18px;
  opacity: 0.1;
  background: linear-gradient(145deg, var(--viva-cta) 0%, var(--viva-cta-lt) 30%, var(--viva-capy) 100%);
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-slide:nth-child(5n + 5) .image-container.image--portrait::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: 18px;
  opacity: 0.1;
  background: linear-gradient(145deg, var(--viva-peach) 0%, #f5e5d8 45%, var(--viva-capy-lt) 100%);
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .image-container {
  position: relative;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .product-card__name,
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .product-card__name .h4 {
  font-family: 'Nunito', sans-serif !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
  color: var(--viva-ink-lt) !important;
  margin-bottom: 2px !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  overflow: hidden !important;
  overflow-wrap: anywhere !important;
  max-width: 100% !important;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .product-card__price,
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .product-card__price .price,
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .price {
  font-family: 'Fredoka', sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--viva-ink) !important;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .product_rating,
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .star-rating {
  font-size: 10px !important;
  color: var(--viva-cta) !important;
  letter-spacing: 1px;
  margin-top: 3px;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-button-prev,
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-button-next {
  width: 36px !important;
  height: 36px !important;
  border: 2px solid var(--viva-ink) !important;
  border-radius: 50% !important;
  background: var(--viva-white) !important;
  color: var(--viva-ink) !important;
  top: 40% !important;
  transform: translateY(-80%) !important;
  margin-top: 0 !important;
  box-shadow: none !important;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-button-prev:after,
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-button-next:after {
  font-size: 18px !important;
  font-weight: 700 !important;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-button-prev:hover,
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-button-next:hover {
  background: var(--viva-cta) !important;
  border-color: var(--viva-cta) !important;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-button-prev {
  left: 8px !important;
}
body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-button-next {
  right: 8px !important;
}

/* ——— FAQ section (homepage) ——— */
body.viva-homepage #MainContent.viva-home .faq-section {
  position: relative;
  margin: clamp(34px, 6vw, 72px) auto clamp(26px, 5vw, 54px);
  overflow: visible;
}

body.viva-homepage #MainContent.viva-home .faq-section .section-container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body.viva-homepage #MainContent.viva-home .faq-section .section-blocks {
  display: block !important;
  width: 100%;
  min-width: 0;
}

body.viva-homepage #MainContent.viva-home .faq-section .page-width {
  width: min(1120px, calc(100% - 32px)) !important;
  max-width: 1120px !important;
  padding: clamp(26px, 4.4vw, 52px) !important;
  border: 1px solid rgba(232, 152, 80, 0.2);
  border-radius: 34px;
  background:
    radial-gradient(circle at 8% 0%, rgba(232, 152, 80, 0.15), transparent 28%),
    radial-gradient(circle at 94% 8%, rgba(143, 175, 126, 0.14), transparent 26%),
    linear-gradient(180deg, #fffaf3 0%, #fff4e8 100%) !important;
  box-shadow: 0 24px 70px rgba(74, 62, 54, 0.08);
}

body.viva-homepage #MainContent.viva-home .faq-section .faq-container {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 1.8vw, 18px);
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  min-width: 0;
  align-items: start;
}

body.viva-homepage #MainContent.viva-home .faq-section .faq__separator {
  grid-column: 1 / -1;
  position: relative;
  margin: 0 auto clamp(12px, 2.6vw, 22px) !important;
  padding: 0 0 clamp(20px, 3vw, 30px) !important;
  width: min(760px, 100%);
  border: 0 !important;
  border-bottom: 1px solid rgba(232, 152, 80, 0.22) !important;
  font-family: 'Fredoka', sans-serif !important;
  font-size: clamp(28px, 4.2vw, 44px) !important;
  font-weight: 850 !important;
  line-height: 1.06 !important;
  letter-spacing: -0.035em !important;
  color: var(--viva-ink) !important;
  text-align: center !important;
}

body.viva-homepage #MainContent.viva-home .faq-section .faq__separator::before {
  content: "FAQ Viva";
  display: block;
  width: fit-content;
  margin: 0 auto 10px;
  padding: 7px 14px;
  border: 1px solid rgba(232, 152, 80, 0.22);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  font-family: 'Caveat', cursive;
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  color: var(--viva-cta);
  box-shadow: 0 8px 18px rgba(74, 62, 54, 0.05);
}

body.viva-homepage #MainContent.viva-home .faq-section .faq__separator::after {
  content: "Les réponses essentielles pour choisir, offrir et commander votre capybara sans stress.";
  display: block;
  max-width: 620px;
  margin: 14px auto 0;
  font-family: 'Nunito', sans-serif;
  font-size: clamp(14px, 1.7vw, 16px);
  font-weight: 650;
  line-height: 1.65;
  letter-spacing: 0;
  color: var(--viva-ink-lt);
}

body.viva-homepage #MainContent.viva-home .faq-section .faq__item {
  display: block !important;
  width: 100%;
  min-width: 0;
  overflow: hidden !important;
  border: 1px solid rgba(44, 36, 32, 0.08) !important;
  border-radius: 20px !important;
  background: rgba(255, 255, 255, 0.92) !important;
  box-shadow: 0 10px 28px rgba(74, 62, 54, 0.055);
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background 0.2s ease,
    transform 0.2s ease;
}

body.viva-homepage #MainContent.viva-home .faq-section .faq__item:hover,
body.viva-homepage #MainContent.viva-home .faq-section .faq__item[open] {
  border-color: rgba(232, 152, 80, 0.34) !important;
  background: #fff !important;
  box-shadow: 0 16px 38px rgba(74, 62, 54, 0.09);
}

body.viva-homepage #MainContent.viva-home .faq-section .faq__item:hover {
  transform: translateY(-2px);
}

body.viva-homepage #MainContent.viva-home .faq-section summary.link_collapsing_title {
  list-style: none !important;
  cursor: pointer;
}

body.viva-homepage #MainContent.viva-home .faq-section summary.link_collapsing_title::-webkit-details-marker {
  display: none;
}

body.viva-homepage #MainContent.viva-home .faq-section .link_collapsing_title {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 72px;
  width: 100%;
  padding: 20px 22px !important;
  color: var(--viva-ink) !important;
}

body.viva-homepage #MainContent.viva-home .faq-section .faq__question {
  flex: 1 1 auto;
  margin: 0 !important;
  font-family: 'Fredoka', sans-serif !important;
  font-size: clamp(15.5px, 1.7vw, 18px) !important;
  font-weight: 800 !important;
  line-height: 1.28 !important;
  letter-spacing: -0.015em !important;
  color: var(--viva-ink) !important;
}

body.viva-homepage #MainContent.viva-home .faq-section .link_collapsing_title svg {
  flex: 0 0 auto;
  width: 13px;
  height: 13px;
  padding: 9px;
  box-sizing: content-box;
  border-radius: 999px;
  background: #fff0df;
  color: var(--viva-cta-dk);
  box-shadow: inset 0 0 0 1px rgba(232, 152, 80, 0.22);
  transition:
    transform 0.2s ease,
    background 0.2s ease,
    color 0.2s ease;
}

body.viva-homepage #MainContent.viva-home .faq-section .faq__item[open] .link_collapsing_title svg {
  transform: rotate(180deg);
  background: var(--viva-cta);
  color: #fff;
}

body.viva-homepage #MainContent.viva-home .faq-section .link_collapsing_content {
  max-width: none;
  padding: 0 22px 22px !important;
  font-family: 'Nunito', sans-serif !important;
  font-size: 14.5px !important;
  font-weight: 600;
  color: var(--viva-ink-lt) !important;
  line-height: 1.78 !important;
}

body.viva-homepage #MainContent.viva-home .faq-section .link_collapsing_content p {
  margin: 0;
}

body.viva-homepage #MainContent.viva-home .faq-section .link_collapsing_content a {
  color: var(--viva-cta-dk) !important;
  font-weight: 800;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

@media (max-width: 740px) {
  body.viva-homepage #MainContent.viva-home .faq-section {
    margin-top: 28px;
  }

  body.viva-homepage #MainContent.viva-home .faq-section .page-width {
    width: min(100% - 24px, 1080px) !important;
    padding: 22px 14px !important;
    border-radius: 24px;
  }

  body.viva-homepage #MainContent.viva-home .faq-section .faq-container {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  body.viva-homepage #MainContent.viva-home .faq-section .faq__separator {
    padding-bottom: 18px !important;
    text-align: left !important;
  }

  body.viva-homepage #MainContent.viva-home .faq-section .faq__separator::before {
    margin-left: 0;
    margin-right: 0;
  }

  body.viva-homepage #MainContent.viva-home .faq-section .faq__separator::after {
    margin-left: 0;
    margin-right: 0;
    font-size: 13.5px;
  }

  body.viva-homepage #MainContent.viva-home .faq-section .faq__item {
    border-radius: 17px !important;
  }

  body.viva-homepage #MainContent.viva-home .faq-section .faq__item:hover {
    transform: none;
  }

  body.viva-homepage #MainContent.viva-home .faq-section .link_collapsing_title {
    min-height: 60px;
    padding: 17px 15px !important;
    gap: 12px;
  }

  body.viva-homepage #MainContent.viva-home .faq-section .faq__question {
    font-size: 14.8px !important;
  }

  body.viva-homepage #MainContent.viva-home .faq-section .link_collapsing_title svg {
    width: 11px;
    height: 11px;
    padding: 8px;
  }

  body.viva-homepage #MainContent.viva-home .faq-section .link_collapsing_content {
    padding: 0 15px 18px !important;
    font-size: 13.8px !important;
    line-height: 1.7 !important;
  }
}

/* ============================================================
   Pages assistance (FAQ, contact, suivi) — alignement DA homepage / PDP
   Classes : body.viva-support-pages et #MainContent.viva-support (voir theme.liquid)
   ============================================================ */
body.viva-support-pages {
  overflow-x: clip;
  background: var(--viva-bg);
}

body.viva-support-pages #MainContent.viva-support {
  font-family: 'Nunito', 'Helvetica Neue', Arial, sans-serif;
  color: var(--viva-ink);
  -webkit-font-smoothing: antialiased;
  background: var(--viva-bg);
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

body.viva-support-pages #MainContent.viva-support nav.breadcrumb {
  font-family: 'Nunito', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--viva-ink-sub);
}

body.viva-support-pages #MainContent.viva-support nav.breadcrumb a {
  color: var(--viva-ink-sub);
  text-decoration: none;
  transition: color 0.2s ease;
}

body.viva-support-pages #MainContent.viva-support nav.breadcrumb a:hover,
body.viva-support-pages #MainContent.viva-support nav.breadcrumb a:focus-visible {
  color: var(--viva-cta);
}

body.viva-support-pages #MainContent.viva-support nav.breadcrumb span svg {
  opacity: 0.65;
}

body.viva-support-pages #MainContent.viva-support > .shopify-section {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* Contact template 2 : annule le duo Phantom 50/50 (inline-block + lu--one-half) */
body.viva-support-pages #MainContent.viva-support > .shopify-section.contact-2-section,
body.viva-support-pages #MainContent.viva-support > .shopify-section.faq-2-section,
body.viva-support-pages #MainContent.viva-support .contact-2-section.lu--one-half,
body.viva-support-pages #MainContent.viva-support .faq-2-section.lu--one-half,
body.viva-support-pages #MainContent.viva-support .contact-2-section,
body.viva-support-pages #MainContent.viva-support .faq-2-section {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  vertical-align: unset !important;
}

@media only screen and (min-width: 780px) {
  body.viva-support-pages #MainContent.viva-support .contact-2-section,
  body.viva-support-pages #MainContent.viva-support .faq-2-section {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.viva-support-pages #MainContent.viva-support .contact-2-section .section-container > .page-width,
  body.viva-support-pages #MainContent.viva-support .faq-2-section .section-container > .page-width {
    max-width: min(1120px, calc(100% - 32px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* Coque carte commune (pages support sauf contact) */
body.viva-support-pages #MainContent.viva-support .faq-section .page-width,
body.viva-support-pages #MainContent.viva-support .order-tracker-section .page-width,
body.viva-support-pages #MainContent.viva-support .contact-section .page-width {
  width: min(1120px, calc(100% - 32px)) !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: clamp(26px, 4.4vw, 48px) !important;
  border: 1px solid rgba(232, 152, 80, 0.22);
  border-radius: 34px;
  background:
    radial-gradient(circle at 8% 0%, rgba(232, 152, 80, 0.14), transparent 28%),
    radial-gradient(circle at 94% 8%, rgba(143, 175, 126, 0.12), transparent 26%),
    linear-gradient(180deg, #fffaf3 0%, #fff4e8 100%) !important;
  box-shadow: 0 24px 70px rgba(74, 62, 54, 0.08);
}

/* Page contact : pas de grande coque — contenu fluide sur le fond du site */
body.viva-support-pages #MainContent.viva-support .contact-2-section .page-width,
body.viva-support-pages #MainContent.viva-support .faq-2-section .page-width {
  width: min(1120px, calc(100% - 32px)) !important;
  max-width: min(1120px, calc(100% - 32px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: clamp(12px, 2vw, 24px) clamp(16px, 3vw, 24px) !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.viva-support-pages #MainContent.viva-support .faq-2-section {
  margin-top: clamp(8px, 2vw, 20px);
}

body.viva-support-pages #MainContent.viva-support .header-section .page-width {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding-top: clamp(20px, 3vw, 36px) !important;
  padding-bottom: clamp(8px, 2vw, 16px) !important;
}

body.viva-support-pages #MainContent.viva-support .header-section .section-title {
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
  color: var(--viva-ink) !important;
  font-size: clamp(28px, 4vw, 40px) !important;
  line-height: 1.08 !important;
}

body.viva-support-pages #MainContent.viva-support .header-section .section-text {
  font-family: 'Nunito', sans-serif !important;
  font-weight: 600 !important;
  font-size: clamp(14px, 1.6vw, 16px) !important;
  line-height: 1.65 !important;
  color: var(--viva-ink-lt) !important;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

body.viva-support-pages #MainContent.viva-support .contact-section .h1,
body.viva-support-pages #MainContent.viva-support .contact-2-section .h1,
body.viva-support-pages #MainContent.viva-support .order-tracker-section .h1 {
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 800 !important;
  letter-spacing: -0.025em !important;
  color: var(--viva-ink) !important;
  margin-bottom: 0.35em;
}

body.viva-support-pages #MainContent.viva-support .contact-page__content {
  font-family: 'Nunito', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
  color: var(--viva-ink-lt) !important;
  max-width: 720px;
  margin: 0 auto 24px;
  text-align: center;
}

body.viva-support-pages #MainContent.viva-support .contact-page__content a {
  color: var(--viva-cta-dk) !important;
  font-weight: 700;
  text-underline-offset: 3px;
}

/* Formulaires contact — annule le flex « column wrap » du thème Phantom */
body.viva-support-pages #MainContent.viva-support .contact-2-section .viva-contact-page__form {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

body.viva-support-pages #MainContent.viva-support .contact-2-section .viva-contact-page__form,
body.viva-support-pages #MainContent.viva-support .contact-2-section .input-group-form,
body.viva-support-pages #MainContent.viva-support .contact-2-section .input-group-form.flex {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  display: grid !important;
  flex-flow: unset !important;
  flex-wrap: unset !important;
  align-items: stretch !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

body.viva-support-pages #MainContent.viva-support .contact-2-section .input-group-form::before {
  content: none;
  display: none;
}

body.viva-support-pages #MainContent.viva-support .contact-2-section .input-group-form > * {
  display: block !important;
  flex: none !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}

body.viva-support-pages #MainContent.viva-support .contact-2-section .input-group-form > .input-field,
body.viva-support-pages #MainContent.viva-support .contact-2-section .input-group-form > .input-field-names {
  width: 100% !important;
  margin: 0 !important;
}

body.viva-support-pages #MainContent.viva-support .contact-2-section .input-field {
  margin: 0 !important;
  flex: none !important;
  text-align: left;
}

body.viva-support-pages #MainContent.viva-support .contact-2-section .input-field-names {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
  justify-content: unset !important;
  -webkit-box-pack: unset !important;
  -ms-flex-pack: unset !important;
}

body.viva-support-pages #MainContent.viva-support .contact-2-section .input-field-names > .input-field {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}

body.viva-support-pages #MainContent.viva-support .contact-2-section .input-field-names > .input-field + .input-field {
  margin-left: 0 !important;
}

body.viva-support-pages #MainContent.viva-support .contact-2-section .input-field-names,
body.viva-support-pages #MainContent.viva-support .contact-2-section .input-group-form > .input-field:has(textarea),
body.viva-support-pages #MainContent.viva-support .contact-2-section .input-group-form > input[type='submit'] {
  grid-column: 1 / -1;
}

body.viva-support-pages #MainContent.viva-support .contact-2-section .viva-contact-page__submit {
  width: auto !important;
  min-width: min(100%, 220px);
  max-width: 100%;
  white-space: nowrap;
}

body.viva-support-pages #MainContent.viva-support .input-group-form .input-field input:not([type='radio']),
body.viva-support-pages #MainContent.viva-support .input-group-form .input-field select,
body.viva-support-pages #MainContent.viva-support .input-group-form .input-field textarea {
  width: 100%;
  border-radius: 18px !important;
  border: 1px solid rgba(232, 152, 80, 0.24) !important;
  background: rgba(255, 255, 255, 0.95) !important;
  font-family: 'Nunito', sans-serif !important;
  color: var(--viva-ink) !important;
  padding: 15px 17px !important;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

body.viva-support-pages #MainContent.viva-support .input-group-form .input-field input:focus-visible,
body.viva-support-pages #MainContent.viva-support .input-group-form .input-field select:focus-visible,
body.viva-support-pages #MainContent.viva-support .input-group-form .input-field textarea:focus-visible {
  outline: none !important;
  border-color: rgba(232, 152, 80, 0.65) !important;
  box-shadow: 0 0 0 3px rgba(232, 152, 80, 0.22);
}

body.viva-support-pages #MainContent.viva-support .input-group-form .btn,
body.viva-support-pages #MainContent.viva-support .tracking-genie .btn {
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 700 !important;
  border-radius: 999px !important;
  padding: 14px 28px !important;
  background: var(--viva-cta) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: 0 10px 26px rgba(232, 152, 80, 0.35);
  justify-self: center;
  transition:
    background 0.2s ease,
    transform 0.15s ease,
    box-shadow 0.2s ease;
}

body.viva-support-pages #MainContent.viva-support .input-group-form .btn:hover,
body.viva-support-pages #MainContent.viva-support .tracking-genie .btn:hover {
  background: var(--viva-cta-h) !important;
}

body.viva-support-pages #MainContent.viva-support .form-success {
  font-family: 'Nunito', sans-serif !important;
  font-weight: 700 !important;
  padding: 14px 18px;
  border-radius: 16px;
  background: var(--viva-mint-pale);
  color: var(--viva-ink);
  border: 1px solid rgba(142, 187, 142, 0.35);
}

body.viva-support-pages #MainContent.viva-support .errors {
  border-radius: 16px;
}

/* Suivi colis — tracking-genie */
body.viva-support-pages #MainContent.viva-support .tracking-genie {
  text-align: center;
  font-family: 'Nunito', sans-serif !important;
  color: var(--viva-ink-lt);
  max-width: 680px;
  margin: 0 auto;
}

body.viva-support-pages #MainContent.viva-support .tracking-genie > p:first-of-type {
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 700 !important;
  color: var(--viva-ink) !important;
  font-size: clamp(15px, 1.8vw, 17px) !important;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
}

body.viva-support-pages #MainContent.viva-support .tracking-genie .form-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  align-items: stretch;
  margin: 22px auto 0;
  max-width: 560px;
}

body.viva-support-pages #MainContent.viva-support .tracking-genie .form-inline input[type='text'],
body.viva-support-pages #MainContent.viva-support .tracking-genie .form-inline input[type='date'] {
  flex: 1 1 260px;
  max-width: 360px;
  border-radius: 999px !important;
  border: 1px solid rgba(232, 152, 80, 0.35) !important;
  padding: 15px 18px !important;
  font-family: 'Nunito', sans-serif !important;
  background: rgba(255, 255, 255, 0.95) !important;
  color: var(--viva-ink) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

body.viva-support-pages #MainContent.viva-support .tracking-genie .form-inline input[type='text']:focus-visible,
body.viva-support-pages #MainContent.viva-support .tracking-genie .form-inline input[type='date']:focus-visible {
  outline: none !important;
  border-color: rgba(232, 152, 80, 0.72) !important;
  box-shadow: 0 0 0 4px rgba(232, 152, 80, 0.18);
}

body.viva-support-pages #MainContent.viva-support .tracking-genie #track-error {
  color: var(--viva-alert) !important;
  font-weight: 700 !important;
}

body.viva-support-pages #MainContent.viva-support .tracking-genie .loading-container {
  border-radius: 999px !important;
  border: 1px dashed rgba(232, 152, 80, 0.45) !important;
  background: rgba(255, 255, 255, 0.85) !important;
  height: 44px !important;
  max-width: 460px;
  margin: 18px auto 0;
}

body.viva-support-pages #MainContent.viva-support .tracking-genie .status {
  font-family: 'Fredoka', sans-serif !important;
  font-size: clamp(17px, 2.2vw, 22px) !important;
  color: var(--viva-ink) !important;
}

body.viva-support-pages #MainContent.viva-support .tracking-genie .delivery-date,
body.viva-support-pages #MainContent.viva-support .tracking-genie .text-status {
  font-size: 15px !important;
  font-weight: 600 !important;
}

/* FAQ native (.faq-section = details/summary, même grille que l’accueil ; sans pseudo « FAQ Viva » injectés) */
body.viva-support-pages #MainContent.viva-support .faq-section {
  position: relative;
  margin: clamp(24px, 4vw, 48px) auto;
}

body.viva-support-pages.template-page-faq #MainContent.viva-support .section-header-section .page-width {
  position: relative;
  overflow: hidden;
  width: min(1120px, calc(100% - 32px)) !important;
  border: 1px solid rgba(232, 152, 80, 0.22);
  border-radius: 34px;
  background:
    radial-gradient(circle at 9% 8%, rgba(232, 152, 80, 0.17), transparent 28%),
    radial-gradient(circle at 94% 2%, rgba(143, 175, 126, 0.14), transparent 24%),
    linear-gradient(180deg, #fffaf3 0%, #fff2e4 100%) !important;
  box-shadow: 0 24px 70px rgba(74, 62, 54, 0.08);
}

body.viva-support-pages.template-page-faq #MainContent.viva-support .section-header-section .page-width::before {
  content: "FAQ Viva";
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin: 0 auto 14px;
  padding: 7px 15px;
  border: 1px solid rgba(232, 152, 80, 0.24);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: var(--viva-cta);
  font-family: 'Caveat', cursive;
  font-size: clamp(23px, 3vw, 32px);
  font-weight: 600;
  line-height: 1;
  box-shadow: 0 8px 18px rgba(74, 62, 54, 0.05);
}

body.viva-support-pages.template-page-faq #MainContent.viva-support .section-header-section .section-title {
  max-width: 780px;
  margin-inline: auto;
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 850 !important;
  letter-spacing: -0.045em !important;
  color: var(--viva-ink) !important;
}

body.viva-support-pages.template-page-faq #MainContent.viva-support .section-header-section .section-text {
  max-width: 760px;
  margin: 14px auto 0;
  color: var(--viva-ink-lt) !important;
  font-family: 'Nunito', sans-serif !important;
  font-weight: 650;
}

body.viva-support-pages.template-page-faq #MainContent.viva-support .section-header-section .section-text p {
  margin: 0;
}

body.viva-support-pages.template-page-faq #MainContent.viva-support .section-header-section .section-text p + p {
  margin-top: 10px;
}

body.viva-support-pages #MainContent.viva-support .faq-section .section-container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body.viva-support-pages #MainContent.viva-support .faq-section .section-blocks {
  display: block !important;
  width: 100%;
  min-width: 0;
}

body.viva-support-pages #MainContent.viva-support .faq-section .faq-container {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 1.8vw, 18px);
  width: 100%;
  max-width: 980px;
  margin: 0 auto;
  min-width: 0;
  align-items: start;
}

body.viva-support-pages.template-page-faq #MainContent.viva-support .faq-section .page-width {
  background:
    radial-gradient(circle at 0 0, rgba(232, 152, 80, 0.11), transparent 24%),
    #fffdf9 !important;
}

body.viva-support-pages.template-page-faq #MainContent.viva-support .faq-section .faq-container {
  max-width: 1040px;
}

body.viva-support-pages #MainContent.viva-support .faq-section .faq__separator {
  grid-column: 1 / -1;
  margin: 0 auto clamp(12px, 2vw, 20px) !important;
  padding: 0 0 clamp(16px, 2.5vw, 24px) !important;
  width: min(760px, 100%);
  border: 0 !important;
  border-bottom: 1px solid rgba(232, 152, 80, 0.22) !important;
  font-family: 'Fredoka', sans-serif !important;
  font-size: clamp(22px, 3.2vw, 34px) !important;
  font-weight: 800 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.03em !important;
  color: var(--viva-ink) !important;
}

body.viva-support-pages.template-page-faq #MainContent.viva-support .faq-section .faq__separator {
  width: min(860px, 100%);
  padding-bottom: clamp(18px, 2.6vw, 30px) !important;
  text-align: center !important;
}

body.viva-support-pages.template-page-faq #MainContent.viva-support .faq-section .faq__separator::after {
  content: "Un guide complet pour choisir un produit, préparer un cadeau, suivre une commande ou comprendre les retours." !important;
  display: block !important;
  max-width: 680px;
  margin: 12px auto 0;
  font-family: 'Nunito', sans-serif;
  font-size: clamp(14px, 1.7vw, 16px);
  font-weight: 650;
  line-height: 1.65;
  letter-spacing: 0;
  color: var(--viva-ink-lt);
}

body.viva-support-pages #MainContent.viva-support .faq-section .faq__separator::before,
body.viva-support-pages #MainContent.viva-support .faq-section .faq__separator::after {
  content: none !important;
  display: none !important;
}

body.viva-support-pages #MainContent.viva-support .faq-section .faq__item {
  display: block !important;
  width: 100%;
  min-width: 0;
  overflow: hidden !important;
  border: 1px solid rgba(44, 36, 32, 0.08) !important;
  border-radius: 20px !important;
  background: rgba(255, 255, 255, 0.92) !important;
  box-shadow: 0 10px 28px rgba(74, 62, 54, 0.055);
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background 0.2s ease,
    transform 0.2s ease;
}

body.viva-support-pages.template-page-faq #MainContent.viva-support .faq-section .faq__item {
  border-radius: 22px !important;
  background: #fff !important;
}

body.viva-support-pages #MainContent.viva-support .faq-section .faq__item:hover,
body.viva-support-pages #MainContent.viva-support .faq-section .faq__item[open] {
  border-color: rgba(232, 152, 80, 0.34) !important;
  background: #fff !important;
  box-shadow: 0 16px 38px rgba(74, 62, 54, 0.09);
}

body.viva-support-pages #MainContent.viva-support .faq-section summary.link_collapsing_title::-webkit-details-marker {
  display: none;
}

body.viva-support-pages #MainContent.viva-support .faq-section .link_collapsing_title {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 72px;
  width: 100%;
  padding: 20px 22px !important;
  color: var(--viva-ink) !important;
}

body.viva-support-pages #MainContent.viva-support .faq-section .faq__question {
  flex: 1 1 auto;
  margin: 0 !important;
  font-family: 'Fredoka', sans-serif !important;
  font-size: clamp(15px, 1.7vw, 18px) !important;
  font-weight: 800 !important;
  line-height: 1.28 !important;
  letter-spacing: -0.015em !important;
  color: var(--viva-ink) !important;
}

body.viva-support-pages #MainContent.viva-support .faq-section .link_collapsing_title svg {
  flex: 0 0 auto;
  width: 13px;
  height: 13px;
  padding: 9px;
  box-sizing: content-box;
  border-radius: 999px;
  background: #fff0df;
  color: var(--viva-cta-dk);
  box-shadow: inset 0 0 0 1px rgba(232, 152, 80, 0.22);
}

body.viva-support-pages #MainContent.viva-support .faq-section .faq__item[open] .link_collapsing_title svg {
  transform: rotate(180deg);
  background: var(--viva-cta);
  color: #fff;
}

body.viva-support-pages #MainContent.viva-support .faq-section .link_collapsing_content {
  max-width: none;
  padding: 0 22px 22px !important;
  font-family: 'Nunito', sans-serif !important;
  font-size: 14.5px !important;
  font-weight: 600;
  color: var(--viva-ink-lt) !important;
  line-height: 1.78 !important;
}

body.viva-support-pages #MainContent.viva-support .faq-section .link_collapsing_content a {
  color: var(--viva-cta-dk) !important;
  font-weight: 800;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

/* FAQ bloc « contact-2 » (accordion legacy .faq-2-section) */
body.viva-support-pages #MainContent.viva-support .faq-2-section .faq-container > .flex__item {
  margin: 0 !important;
}

body.viva-support-pages #MainContent.viva-support .faq-2-section .faq__separator {
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(22px, 3vw, 30px) !important;
  letter-spacing: -0.03em !important;
  color: var(--viva-ink) !important;
  margin: clamp(20px, 3vw, 32px) 0 16px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid rgba(232, 152, 80, 0.22) !important;
}

body.viva-support-pages #MainContent.viva-support .faq-2-section .faq__item {
  border: 1px solid rgba(44, 36, 32, 0.08) !important;
  border-radius: 20px !important;
  background: rgba(255, 255, 255, 0.92) !important;
  box-shadow: 0 10px 28px rgba(74, 62, 54, 0.055);
  margin-bottom: 12px !important;
  overflow: hidden;
}

body.viva-support-pages #MainContent.viva-support .faq-2-section .faq__question {
  border: none !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 20px !important;
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(14px, 1.6vw, 17px) !important;
  color: var(--viva-ink) !important;
  cursor: pointer;
  background: transparent !important;
}

body.viva-support-pages #MainContent.viva-support .faq-2-section .faq__question svg {
  flex: 0 0 auto;
  width: 12px;
  height: 12px;
  padding: 8px;
  border-radius: 999px;
  background: #fff0df;
  color: var(--viva-cta-dk);
  box-sizing: content-box;
}

body.viva-support-pages #MainContent.viva-support .faq-2-section .faq__answer {
  font-family: 'Nunito', sans-serif !important;
  font-size: 14.5px !important;
  line-height: 1.75 !important;
  font-weight: 600 !important;
  color: var(--viva-ink-lt) !important;
  padding: 0 20px 18px !important;
}

body.viva-support-pages #MainContent.viva-support .faq-2-section .faq__item:hover,
body.viva-support-pages #MainContent.viva-support .faq-2-section .faq__item[open] {
  border-color: rgba(232, 152, 80, 0.34) !important;
  background: #fff !important;
  box-shadow: 0 16px 38px rgba(74, 62, 54, 0.09);
}

body.viva-support-pages #MainContent.viva-support .faq-2-section summary.link_collapsing_title::-webkit-details-marker {
  display: none;
}

body.viva-support-pages #MainContent.viva-support .faq-2-section summary.link_collapsing_title {
  list-style: none;
  cursor: pointer;
}

body.viva-support-pages #MainContent.viva-support .faq-2-section .link_collapsing_title {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
}

body.viva-support-pages #MainContent.viva-support .faq-2-section .faq__item[open] .link_collapsing_title svg {
  transform: rotate(180deg);
  background: var(--viva-cta);
  color: #fff;
}

body.viva-support-pages #MainContent.viva-support .faq-2-section .link_collapsing_content a {
  color: var(--viva-cta-dk) !important;
  font-weight: 800;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

@media (max-width: 740px) {
  body.viva-support-pages #MainContent.viva-support .faq-section .page-width,
  body.viva-support-pages #MainContent.viva-support .order-tracker-section .page-width,
  body.viva-support-pages #MainContent.viva-support .contact-section .page-width {
    width: min(100% - 24px, 1080px) !important;
    padding: 22px 16px !important;
    border-radius: 24px;
  }

  body.viva-support-pages #MainContent.viva-support .contact-2-section .page-width,
  body.viva-support-pages #MainContent.viva-support .faq-2-section .page-width {
    width: min(100% - 24px, 1080px) !important;
    padding: 16px 12px !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.viva-support-pages #MainContent.viva-support .faq-section .faq-container {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  body.viva-support-pages #MainContent.viva-support .faq-section .faq__item:hover {
    transform: none;
  }

  body.viva-support-pages #MainContent.viva-support .tracking-genie .form-inline input[type='text'],
  body.viva-support-pages #MainContent.viva-support .tracking-genie .form-inline input[type='date'] {
    max-width: none;
  }

  body.viva-support-pages #MainContent.viva-support .contact-2-section .viva-contact-page__form,
  body.viva-support-pages #MainContent.viva-support .contact-2-section .input-group-form {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.viva-support-pages #MainContent.viva-support .contact-2-section .input-field-names {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* ——— Footer (toutes les pages : fond pêche conservé sur blocs principaux) ——— */
body.viva-theme footer[role='contentinfo'] .section-container:not(.viva-footer-main):not(.viva-footer-post) {
  background: transparent !important;
}

/* Bloc SEO bas de page (texte long + liens internes, aligné maquette HTML) */
body.viva-homepage #MainContent.viva-home .viva-seo-rich-sec .viva-seo-block.rte {
  max-width: 760px;
  margin: 0 auto;
  font-size: 13px;
  line-height: 1.85;
  color: var(--viva-ink-sub);
}
body.viva-homepage #MainContent.viva-home .viva-seo-block.rte h2 {
  margin-bottom: 18px;
  color: var(--viva-ink);
}
body.viva-homepage #MainContent.viva-home .viva-seo-block.rte p {
  margin: 0;
}
body.viva-homepage #MainContent.viva-home .viva-seo-block.rte p + p {
  margin-top: 14px;
}
body.viva-homepage #MainContent.viva-home .viva-seo-block.rte a {
  color: var(--viva-ink);
  border-bottom: 1px solid var(--viva-bg-dk);
  text-decoration: none;
  transition: border-color 0.2s;
}
body.viva-homepage #MainContent.viva-home .viva-seo-block.rte a:hover {
  border-color: var(--viva-cta);
}
body.viva-theme footer .footer__content a:hover {
  color: var(--viva-cta) !important;
}

@media (max-width: 768px) {
  .viva-home .hero {
    padding: 48px clamp(14px, 4vw, 24px) 40px;
  }
  .viva-home .h-title {
    font-size: clamp(26px, 8vw, 32px);
  }
  .viva-home .h-sub {
    font-size: 14px;
  }
  /* Maquette : boutons côte à côte avec retour à la ligne si besoin, pas colonne forcée */
  .viva-home .h-ctas {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
  }
  .viva-home .h-ctas .btn-cta,
  .viva-home .h-ctas .btn-sec {
    width: auto;
    max-width: 100%;
  }
  .viva-home .trust {
    padding: 12px clamp(12px, 4vw, 20px);
  }
  .viva-home .viva-trust-strip__desktop.trust-in {
    gap: 12px 16px;
  }
  .viva-home .trust-i {
    flex: 1 1 auto;
    min-width: 0;
    white-space: normal;
    justify-content: center;
    text-align: center;
  }
  .viva-home .promo-track__group,
  body.viva-homepage .shopify-section.viva-marquee .promo-track__group,
  body.viva-pdp .shopify-section.viva-marquee .promo-track__group {
    gap: 32px;
    padding-right: 32px;
  }
  .viva-home .guide-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .viva-home .guide-card {
    padding: 18px 10px;
    border-radius: 16px;
  }
  .viva-home .guide-card h3 {
    font-size: 13.5px;
    line-height: 1.16;
  }
  .viva-home .guide-card p {
    font-size: 11px;
    line-height: 1.35;
  }
  .viva-home .guide-card .g-ico,
  .viva-home .viva-guide__icon-char {
    margin-bottom: 10px;
  }
  .viva-home .bun-grid {
    grid-template-columns: 1fr;
  }
  .viva-home .t-grid {
    grid-template-columns: 1fr;
  }
  .viva-home .cloud-title {
    font-size: 28px;
  }
  .viva-home .cloud-grid {
    flex-direction: column;
    align-items: center;
  }
  .viva-home .insta-g {
    grid-template-columns: repeat(3, 1fr);
  }
  .viva-home .brand-ban .icon-l,
  .viva-home .brand-ban .icon-r {
    position: static;
    transform: none;
    width: 100px;
  }
  .viva-home .brand-ban-in {
    flex-wrap: wrap;
    height: auto;
    min-height: 0;
    padding: 28px 20px;
  }
  body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .page-width::after {
    display: none;
  }
  body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-slide:nth-child(n) .image-container.image--portrait::after {
    opacity: 0.06;
  }
  .viva-home .family {
    flex-direction: column;
    padding: 32px 24px;
    text-align: center;
  }
  .viva-home .family-t {
    width: 100%;
    flex: 1 1 auto;
  }
  .viva-home .family-f {
    max-width: 100%;
    justify-content: center;
  }
  .viva-home .sec {
    padding: 48px 16px;
  }
  .viva-home .chc-card {
    width: calc(50% - 7px);
    min-height: 260px;
  }
  .viva-home .chc-imgbox {
    height: 165px;
  }
  .viva-home .chc-label {
    font-size: 12px;
    height: 32px;
  }
  .viva-home .s-t1 {
    font-size: clamp(22px, 6vw, 28px);
  }
  .viva-home .joy-track .jt {
    font-size: clamp(18px, 5.5vw, 24px);
    padding: 0 14px;
  }
  .viva-home .joy-track .js {
    font-size: 14px;
  }
  .viva-home .na-link a {
    white-space: normal;
  }
  body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-button-prev,
  body.viva-homepage #MainContent section.featured-products-1 .section-container.viva-bestsellers-products .swiper-button-next {
    display: none !important;
  }
  .viva-home .viva-bs-footer-note {
    padding-left: clamp(12px, 4vw, 24px);
    padding-right: clamp(12px, 4vw, 24px);
  }
}

/* Tablette : grilles serrées, pas de débordement */
@media (max-width: 1024px) and (min-width: 769px) {
  .viva-home .t-grid {
    grid-template-columns: 1fr;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
  }
  .viva-home .guide-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }
  .viva-home .guide-card {
    padding: 22px 14px;
  }
}


/* ============================================================
   Viva Capybara — HOMEPAGE LOT 1 EXTENSION
   Patterns inspirés de la page produit (Fraunces éditorial + card border-top CTA)
   ============================================================ */

body.viva-homepage {
  /* Nouvelles variables ajoutées — inspirées de la page produit */
  --viva-cta-dk: #C97A35;
  --viva-ink-soft: #A89884;
  --viva-butter-mid: #FBEDB8;
  --viva-shadow-warm: rgba(61, 43, 31, 0.06);
  --viva-shadow-card: 0 4px 20px rgba(61, 43, 31, 0.08);
  --viva-shadow-card-hover: 0 8px 32px rgba(61, 43, 31, 0.12);
}

/* Classe utilitaire pour screen-readers uniquement */
body.viva-homepage .sr-only,
body.viva-homepage .visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ═══ PATTERN <em> FRAUNCES ITALIQUE ═══
   Appliqué à tous les em dans les titres des sections Viva */
body.viva-homepage #MainContent.viva-home .viva-hero__title em,
body.viva-homepage #MainContent.viva-home .viva-title em,
body.viva-homepage #MainContent.viva-home .viva-featured__head em,
body.viva-homepage #MainContent.viva-home .h-title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
  letter-spacing: -0.01em;
  /* Suppression du fond butter-pale qui était derrière avant */
  background: none !important;
}

body.viva-homepage #MainContent.viva-home .viva-hero__title em::after,
body.viva-homepage #MainContent.viva-home .h-title em::after {
  display: none !important;
}

/* ═══ VIVA OVERLINE (Caveat handwritten, systématisé) ═══ */
body.viva-homepage #MainContent.viva-home .viva-overline {
  font-family: 'Caveat', cursive;
  font-size: clamp(20px, 2.5vw, 26px);
  font-weight: 500;
  color: var(--viva-cta);
  line-height: 1.1;
  display: block;
  margin-bottom: 10px;
  letter-spacing: 0.02em;
}

/* ═══ VIVA TITLE (Fredoka, titre de section H2) ═══ */
body.viva-homepage #MainContent.viva-home .viva-title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(28px, 4.5vw, 42px);
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1.08;
  letter-spacing: -0.02em;
  margin: 0 0 16px;
  text-align: center;
}

/* ═══ VIVA INTRO (texte d'introduction court sous le titre) ═══ */
body.viva-homepage #MainContent.viva-home .viva-intro {
  font-family: 'Nunito', sans-serif;
  font-size: clamp(15px, 1.6vw, 17px);
  color: var(--viva-ink-sub);
  line-height: 1.7;
  max-width: 640px;
  margin: 0 auto 24px;
  text-align: center;
}

/* ═══ VIVA LINK ARROW (lien avec flèche animée) ═══ */
body.viva-homepage #MainContent.viva-home .viva-link-arrow {
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--viva-cta);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: gap 0.2s ease, color 0.2s ease;
}

body.viva-homepage #MainContent.viva-home .viva-link-arrow:hover {
  color: var(--viva-cta-dk);
  gap: 10px;
}

body.viva-homepage #MainContent.viva-home .viva-link-arrow__icon {
  transition: transform 0.2s ease;
}

body.viva-homepage #MainContent.viva-home .viva-link-arrow:hover .viva-link-arrow__icon {
  transform: translateX(2px);
}

/* ═══ VIVA SECTION (base pour toutes les nouvelles sections) ═══ */
body.viva-homepage #MainContent.viva-home .viva-section {
  padding: clamp(48px, 7vw, 80px) clamp(16px, 4vw, 32px);
  background: var(--viva-featured-bg, transparent);
  position: relative;
}

body.viva-homepage #MainContent.viva-home .viva-section .viva-featured__wrap {
  max-width: 1280px;
  margin: 0 auto;
}

body.viva-homepage #MainContent.viva-home .viva-featured__head {
  text-align: center;
  margin-bottom: 40px;
}

body.viva-homepage #MainContent.viva-home .viva-featured__head-link {
  margin: 20px 0 0;
  text-align: center;
}

/* ═══ VIVA FEATURED GRID (le coeur : produits en .na-card) ═══ */
body.viva-homepage #MainContent.viva-home .viva-featured__grid,
body.viva-homepage #MainContent.viva-home .viva-featured .na-grid {
  display: flex;
  flex-wrap: nowrap;
  gap: clamp(12px, 2vw, 24px);
  align-items: stretch;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: clamp(16px, 4vw, 32px);
  padding: 4px 4px 22px;
  margin: 0 -4px;
  cursor: grab;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  overscroll-behavior-x: contain;
  user-select: none;
}

body.viva-homepage #MainContent.viva-home .viva-featured__grid::-webkit-scrollbar,
body.viva-homepage #MainContent.viva-home .viva-featured .na-grid::-webkit-scrollbar {
  display: none;
}

body.viva-homepage #MainContent.viva-home .viva-featured__grid.is-dragging,
body.viva-homepage #MainContent.viva-home .viva-featured .na-grid.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
}

body.viva-homepage #MainContent.viva-home .viva-featured__grid > .viva-card,
body.viva-homepage #MainContent.viva-home .viva-featured .na-grid > .viva-card {
  flex: 0 0 clamp(270px, 30vw, 340px);
  scroll-snap-align: start;
  min-width: 0;
}

body.viva-homepage #MainContent.viva-home .viva-featured__grid img,
body.viva-homepage #MainContent.viva-home .viva-featured .na-grid img,
body.viva-homepage #MainContent.viva-home .viva-featured__grid a,
body.viva-homepage #MainContent.viva-home .viva-featured .na-grid a {
  -webkit-user-drag: none;
  user-select: none;
}

/* Mobile : scroll horizontal avec snap (comme le HTML de référence) */
@media (max-width: 768px) {
  body.viva-homepage #MainContent.viva-home .viva-featured__grid,
  body.viva-homepage #MainContent.viva-home .viva-featured .na-grid {
    gap: 12px;
    padding: 4px 4px 20px;
    margin: 0 -16px;
    padding-left: 16px;
    padding-right: 16px;
    scroll-padding-inline: 16px;
  }

  body.viva-homepage #MainContent.viva-home .viva-featured__grid > .viva-card,
  body.viva-homepage #MainContent.viva-home .viva-featured .na-grid > .viva-card {
    flex: 0 0 min(82vw, 320px);
  }
}

@media (min-width: 640px) and (max-width: 1024px) {
  body.viva-homepage #MainContent.viva-home .viva-featured__grid > .viva-card,
  body.viva-homepage #MainContent.viva-home .viva-featured .na-grid > .viva-card {
    flex-basis: clamp(300px, 42vw, 360px);
  }
}

/* ═══ VIVA CARD (fiche produit style .na-card) ═══ */
body.viva-homepage #MainContent.viva-home .viva-card,
body.viva-homepage #MainContent.viva-home .viva-card.na-card {
  background: var(--viva-white);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--viva-shadow-card);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 0;
  border-top: 4px solid var(--viva-cta);
}

body.viva-homepage #MainContent.viva-home .viva-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--viva-shadow-card-hover);
}

body.viva-homepage #MainContent.viva-home .viva-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

body.viva-homepage #MainContent.viva-home .viva-card__media,
body.viva-homepage #MainContent.viva-home .viva-card .na-card__media {
  position: relative;
  aspect-ratio: 4 / 5;
  background: var(--viva-butter-pale);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

body.viva-homepage #MainContent.viva-home .viva-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.6s ease;
}

@media (hover: hover) and (pointer: fine) {
  body.viva-homepage #MainContent.viva-home .viva-card:hover .viva-card__img {
    transform: scale(1.05);
  }
}

body.viva-homepage #MainContent.viva-home .viva-card__img--placeholder {
  background: linear-gradient(135deg, var(--viva-butter-pale), var(--viva-cta-pale));
  opacity: 0.6;
}

body.viva-homepage #MainContent.viva-home .viva-card__save {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--viva-cta);
  color: #fff;
  padding: 5px 10px;
  border-radius: 20px;
  font-family: 'Fredoka', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.5px;
  z-index: 2;
  box-shadow: 0 2px 8px rgba(232, 152, 80, 0.3);
}

body.viva-homepage #MainContent.viva-home .viva-card__title,
body.viva-homepage #MainContent.viva-home .viva-card .na-card__title {
  font-family: 'Fredoka', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--viva-ink);
  line-height: 1.3;
  margin: 14px 16px 6px;
  letter-spacing: -0.01em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

body.viva-homepage #MainContent.viva-home .viva-card__price,
body.viva-homepage #MainContent.viva-home .viva-card .na-card__price {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: auto 16px 16px;
  flex-wrap: wrap;
}

body.viva-homepage #MainContent.viva-home .viva-card__price-now {
  font-family: 'Fredoka', sans-serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--viva-ink);
}

body.viva-homepage #MainContent.viva-home .viva-card__price-was {
  font-size: 13px;
  color: var(--viva-ink-lt, var(--viva-ink-sub));
  text-decoration: line-through;
}

body.viva-homepage #MainContent.viva-home .viva-card--placeholder .viva-card__title {
  color: var(--viva-ink-sub);
  font-style: italic;
}

/* ═══ NOTE FOOTER + EMPTY STATE ═══ */
body.viva-homepage #MainContent.viva-home .viva-featured__note {
  display: none;
  font-family: 'Caveat', cursive;
  font-size: 18px;
  color: var(--viva-ink-sub);
  text-align: center;
  margin: 16px 0 0;
}

@media (max-width: 768px) {
  body.viva-homepage #MainContent.viva-home .viva-featured__note {
    display: block;
  }
}

body.viva-homepage #MainContent.viva-home .viva-featured__empty {
  text-align: center;
  margin-top: 24px;
}

/* ═══ VARIANTES PAR COLLECTION (accents colorés légers) ═══ */
body.viva-homepage #MainContent.viva-home .viva-featured--bestsellers .viva-card {
  border-top-color: var(--viva-cta);
}

body.viva-homepage #MainContent.viva-home .viva-featured--peluches .viva-card {
  border-top-color: var(--viva-rose);
}

body.viva-homepage #MainContent.viva-home .viva-featured--accessoires .viva-card {
  border-top-color: var(--viva-soft, #A8D4E6);
}

body.viva-homepage #MainContent.viva-home .viva-featured--vetements .viva-card {
  border-top-color: var(--viva-mint);
}

/* ═══ BOUTONS VIVA (harmonisés avec la page produit) ═══ */
body.viva-homepage #MainContent.viva-home .viva-btn-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 32px;
  border-radius: 50px;
  background: var(--viva-cta);
  color: #fff;
  font-family: 'Fredoka', sans-serif;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.3s ease, background 0.2s ease;
  box-shadow: 0 4px 20px rgba(232, 152, 80, 0.25);
  letter-spacing: 0.3px;
  border: none;
  cursor: pointer;
}

body.viva-homepage #MainContent.viva-home .viva-btn-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(232, 152, 80, 0.35);
  background: var(--viva-cta-dk);
}

body.viva-homepage #MainContent.viva-home .viva-btn-cta__icon {
  display: inline-block;
  transition: transform 0.2s ease;
}

body.viva-homepage #MainContent.viva-home .viva-btn-cta:hover .viva-btn-cta__icon {
  transform: translateX(3px);
}

body.viva-homepage #MainContent.viva-home .viva-btn-sec {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 26px;
  border-radius: 50px;
  border: 2px solid var(--viva-bg-dk);
  background: var(--viva-white);
  color: var(--viva-ink);
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
}

body.viva-homepage #MainContent.viva-home .viva-btn-sec:hover {
  border-color: var(--viva-cta);
  color: var(--viva-cta);
  background: var(--viva-cta-pale);
}

/* ═══ HERO — harmonisation avec nouveau pattern ═══ */
body.viva-homepage #MainContent.viva-home .viva-hero__sub {
  font-family: 'Nunito', sans-serif;
  font-size: 16px;
  color: var(--viva-ink-sub);
  line-height: 1.8;
  max-width: 540px;
  margin: 0 auto 28px;
  text-align: center;
}

body.viva-homepage #MainContent.viva-home .viva-hero__proof {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 13px;
  color: var(--viva-ink-sub);
  margin-top: 20px;
  flex-wrap: wrap;
}

body.viva-homepage #MainContent.viva-home .viva-hero__proof .stars {
  color: var(--viva-cta);
  letter-spacing: 2px;
  font-size: 14px;
}

/* ═══ MOBILE REFINEMENT ═══ */
@media (max-width: 640px) {
  body.viva-homepage #MainContent.viva-home .viva-section {
    padding: 48px 16px;
  }
  body.viva-homepage #MainContent.viva-home .viva-title {
    font-size: 28px;
  }
  body.viva-homepage #MainContent.viva-home .viva-card__title {
    font-size: 14px;
  }
  body.viva-homepage #MainContent.viva-home .viva-card__price-now {
    font-size: 16px;
  }
}


/* ============================================================
   Viva Capybara — HOMEPAGE LOT 2 EXTENSION
   Pattern éditorial page-produit : Fraunces, story, why-capybara, final-cta
   ============================================================ */

/* ═══ CLASSE UTILITAIRE : TEXTE ÉDITORIAL (Fraunces italique) ═══
   Pour les intros narratives, citations, textes éditoriaux */
body.viva-homepage #MainContent.viva-home .viva-editorial,
body.viva-homepage #MainContent.viva-home .viva-intro-editorial {
  font-family: 'Fraunces', 'Georgia', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-ink);
  line-height: 1.7;
}

body.viva-homepage #MainContent.viva-home .viva-intro-editorial {
  font-size: clamp(16px, 1.8vw, 20px);
  color: var(--viva-ink-sub);
  max-width: 640px;
  margin: 0 auto 24px;
  text-align: center;
}

/* ═══ SECTION "POURQUOI LE CAPYBARA REND HEUREUX" ═══ */
body.viva-homepage #MainContent.viva-home .viva-why {
  padding: clamp(60px, 8vw, 100px) clamp(16px, 4vw, 32px);
  background: var(--viva-why-bg, var(--viva-bg-warm));
  position: relative;
}

body.viva-homepage #MainContent.viva-home .viva-why__wrap {
  max-width: 1200px;
  margin: 0 auto;
}

body.viva-homepage #MainContent.viva-home .viva-why__head {
  text-align: center;
  margin-bottom: 48px;
}

body.viva-homepage #MainContent.viva-home .viva-why__intro {
  max-width: 720px;
  margin: 12px auto 0;
}

body.viva-homepage #MainContent.viva-home .viva-why__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

@media (max-width: 900px) {
  body.viva-homepage #MainContent.viva-home .viva-why__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  body.viva-homepage #MainContent.viva-home .viva-why__grid {
    grid-template-columns: 1fr;
  }
}

body.viva-homepage #MainContent.viva-home .viva-why__card {
  background: var(--viva-white);
  border-radius: 20px;
  padding: 32px 24px;
  text-align: center;
  border-top: 4px solid var(--viva-cta);
  box-shadow: var(--viva-shadow-card);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

body.viva-homepage #MainContent.viva-home .viva-why__card:hover {
  transform: translateY(-4px);
  box-shadow: var(--viva-shadow-card-hover);
}

body.viva-homepage #MainContent.viva-home .viva-why__icon {
  font-family: 'Caveat', cursive;
  font-size: 48px;
  color: var(--viva-cta);
  line-height: 1;
  margin-bottom: 16px;
  display: block;
}

body.viva-homepage #MainContent.viva-home .viva-why__card-title {
  font-family: 'Fredoka', sans-serif;
  font-size: 18px;
  font-weight: 600;
  color: var(--viva-ink);
  margin: 0 0 10px;
  line-height: 1.3;
}

body.viva-homepage #MainContent.viva-home .viva-why__card-text {
  font-family: 'Nunito', sans-serif;
  font-size: 14px;
  color: var(--viva-ink-sub);
  line-height: 1.6;
  margin: 0;
}

body.viva-homepage #MainContent.viva-home .viva-why__quote {
  margin: 56px auto 0;
  max-width: 720px;
  padding: 36px 40px;
  background: var(--viva-ink);
  color: var(--viva-bg);
  border-radius: 24px;
  text-align: center;
  position: relative;
}

body.viva-homepage #MainContent.viva-home .viva-why__quote blockquote {
  font-family: 'Fraunces', 'Georgia', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(20px, 2.6vw, 26px);
  line-height: 1.4;
  margin: 0;
  padding: 0;
  border: none;
  color: var(--viva-bg);
}

body.viva-homepage #MainContent.viva-home .viva-why__quote figcaption {
  font-family: 'Caveat', cursive;
  font-size: 20px;
  color: var(--viva-cta);
  margin-top: 14px;
  display: block;
}

/* ═══ CTA FINAL (fond ink — closer émotionnel) ═══ */
body.viva-homepage #MainContent.viva-home .viva-final-cta {
  background: var(--viva-ink);
  color: var(--viva-bg);
  padding: clamp(60px, 9vw, 100px) clamp(16px, 4vw, 32px);
  text-align: center;
  position: relative;
  overflow: hidden;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta::before {
  content: "";
  position: absolute;
  top: -100px;
  right: -100px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(232, 152, 80, 0.15), transparent 70%);
  pointer-events: none;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta::after {
  content: "";
  position: absolute;
  bottom: -150px;
  left: -100px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(244, 169, 168, 0.1), transparent 70%);
  pointer-events: none;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__wrap {
  max-width: 680px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__overline {
  font-family: 'Caveat', cursive;
  font-size: clamp(24px, 3vw, 30px);
  color: var(--viva-cta);
  margin-bottom: 16px;
  display: block;
  line-height: 1.1;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(32px, 5.5vw, 52px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.02em;
  margin: 0 0 24px;
  color: var(--viva-bg);
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__title em {
  font-family: 'Fraunces', 'Georgia', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__sub {
  font-family: 'Nunito', sans-serif;
  font-size: clamp(15px, 1.6vw, 17px);
  color: rgba(250, 247, 242, 0.75);
  line-height: 1.7;
  max-width: 560px;
  margin: 0 auto 32px;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-inline: auto;
  padding: 20px 40px;
  border-radius: 50px;
  background: var(--viva-cta);
  color: #fff !important;
  font-family: 'Fredoka', sans-serif;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.3s ease, background 0.2s ease;
  letter-spacing: 0.5px;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(232, 152, 80, 0.5);
  background: var(--viva-cta-dk);
  color: #fff !important;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__btn-icon {
  display: inline-block;
  transition: transform 0.2s ease;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__btn:hover .viva-final-cta__btn-icon {
  transform: translateX(4px);
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__footnote {
  font-family: 'Nunito', sans-serif;
  font-size: 13px;
  color: rgba(250, 247, 242, 0.55);
  margin: 20px 0 0;
  letter-spacing: 0.3px;
}

/* ═══ VIVA QUOTE (citation éditoriale, avec variante dark) ═══ */
body.viva-homepage #MainContent.viva-home .viva-quote {
  max-width: 720px;
  margin: 0 auto;
  padding: 32px 24px;
  text-align: center;
  position: relative;
}

body.viva-homepage #MainContent.viva-home .viva-quote__text {
  font-family: 'Fraunces', 'Georgia', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(18px, 2.2vw, 24px);
  line-height: 1.5;
  color: var(--viva-ink);
  margin: 0 0 14px;
  position: relative;
}

body.viva-homepage #MainContent.viva-home .viva-quote__mark {
  font-family: 'Fraunces', 'Georgia', serif;
  font-size: 48px;
  color: var(--viva-cta);
  line-height: 0.5;
  vertical-align: middle;
  margin-right: 4px;
  opacity: 0.7;
}

body.viva-homepage #MainContent.viva-home .viva-quote__attribution {
  font-family: 'Nunito', sans-serif;
  font-size: 14px;
  color: var(--viva-ink-sub);
}

body.viva-homepage #MainContent.viva-home .viva-quote__attribution cite {
  font-style: normal;
}

body.viva-homepage #MainContent.viva-home .viva-quote--dark {
  background: var(--viva-ink);
  color: var(--viva-bg);
  border-radius: 24px;
  padding: 48px 40px;
  margin-left: clamp(16px, 4vw, 32px);
  margin-right: clamp(16px, 4vw, 32px);
  max-width: 820px;
}

body.viva-homepage #MainContent.viva-home .viva-quote--dark .viva-quote__text {
  color: var(--viva-bg);
}

body.viva-homepage #MainContent.viva-home .viva-quote--dark .viva-quote__attribution {
  color: var(--viva-cta);
  font-family: 'Caveat', cursive;
  font-size: 20px;
}

/* ═══ NOTRE HISTOIRE — UI refonte (viva-our-story, pas de .viva-story) ═══ */
.shopify-section.viva-story-only .viva-our-story {
  --vos-bg0: var(--viva-bg-warm, #fff5ee);
  --vos-bg1: var(--viva-bg, #faf7f2);
  --vos-ink: var(--viva-ink, #2c2420);
  --vos-ink-sub: var(--viva-ink-sub, #7a6b5d);
  --vos-cta: var(--viva-cta, #e89850);
  --vos-card: rgba(255, 255, 255, 0.92);
  --vos-border: rgba(232, 152, 80, 0.2);
  --vos-shadow: 0 20px 48px rgba(44, 36, 32, 0.08);
  background: linear-gradient(165deg, var(--vos-bg0) 0%, var(--vos-bg1) 48%, var(--vos-bg1) 100%);
  box-sizing: border-box;
}

/* Rythme vertical + gouttières comme .viva-nl-section (newsletter family) */
body.viva-homepage #MainContent.viva-home .shopify-section.viva-story-only .viva-our-story {
  padding: clamp(48px, 7vw, 88px) clamp(16px, 4vw, 32px);
}

.shopify-section.viva-story-only .viva-our-story .viva-our-story__layout {
  width: 100%;
  max-width: min(880px, 100%);
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}

.shopify-section.viva-story-only .viva-our-story .viva-our-story__card {
  background: var(--vos-card);
  border: 1px solid var(--vos-border);
  border-radius: clamp(20px, 4vw, 28px);
  box-shadow: var(--vos-shadow);
  /* Même logique que .viva-nl-section .family (newsletter) : moins de marge latérale cumulée */
  padding: clamp(24px, 5vw, 48px) clamp(16px, 4.5vw, 40px);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  box-sizing: border-box;
}

.shopify-section.viva-story-only .viva-our-story .viva-our-story__head {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
}

.shopify-section.viva-story-only .viva-our-story .viva-our-story__eyebrow {
  margin: 0 0 0.5rem;
  padding: 0;
  font-family: 'Caveat', cursive;
  /* Aligné sur .s-over / surlignes des autres blocs home */
  font-size: clamp(17px, 2.5vw, 22px);
  font-weight: 600;
  line-height: 1.2;
  color: var(--vos-cta);
  letter-spacing: 0.02em;
}

.shopify-section.viva-story-only .viva-our-story .viva-our-story__title {
  margin: 0 0 clamp(12px, 2vw, 16px);
  padding: 0;
  font-family: 'Fredoka', system-ui, sans-serif;
  /* Même échelle que body…viva-title (titres H2 des sections home) */
  font-size: clamp(28px, 4.5vw, 42px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--vos-ink);
  text-wrap: balance;
}

.shopify-section.viva-story-only .viva-our-story .viva-our-story__title-accent {
  font-family: 'Fraunces', 'Georgia', serif;
  font-style: italic;
  font-weight: 350;
  color: var(--vos-cta);
}

.shopify-section.viva-story-only .viva-our-story .viva-our-story__figure {
  margin: clamp(1.25rem, 3vw, 1.75rem) 0 0;
  padding: 0;
  width: 100%;
  display: flex;
  justify-content: center;
}

.shopify-section.viva-story-only .viva-our-story .viva-our-story__img {
  width: clamp(72px, 18vw, 88px);
  height: clamp(72px, 18vw, 88px);
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid rgba(253, 240, 224, 0.95);
  box-shadow: 0 8px 24px rgba(61, 43, 31, 0.1);
}

.shopify-section.viva-story-only .viva-our-story .viva-our-story__prose {
  margin: clamp(1.25rem, 3vw, 1.75rem) 0;
  width: 100%;
  max-width: 100%;
  text-align: left;
  box-sizing: border-box;
}

.shopify-section.viva-story-only .viva-our-story .viva-our-story__prose,
.shopify-section.viva-story-only .viva-our-story .viva-our-story__prose p {
  font-family: 'Fraunces', 'Georgia', serif;
  font-style: italic;
  font-weight: 300;
  /* Proche de .viva-intro-editorial home (lisibilité alignée « Pourquoi capybara ») */
  font-size: clamp(16px, 1.85vw, 20px);
  line-height: 1.7;
  color: var(--vos-ink);
}

.shopify-section.viva-story-only .viva-our-story .viva-our-story__prose p {
  margin: 0 0 1rem;
}

.shopify-section.viva-story-only .viva-our-story .viva-our-story__prose p:last-child {
  margin-bottom: 0;
}

.shopify-section.viva-story-only .viva-our-story .viva-our-story__prose a {
  color: var(--viva-cta-dk, #c97a35);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.shopify-section.viva-story-only .viva-our-story .viva-our-story__prose a:hover {
  color: var(--vos-cta);
}

.shopify-section.viva-story-only .viva-our-story .viva-our-story__signoff {
  margin: clamp(1.25rem, 3vw, 1.75rem) 0 0;
  padding: 0.85rem 0 0;
  width: 100%;
  max-width: 100%;
  border-top: 1px dashed rgba(232, 152, 80, 0.35);
  font-family: 'Caveat', cursive;
  font-size: clamp(18px, 2.4vw, 24px);
  font-weight: 600;
  line-height: 1.35;
  color: var(--vos-cta);
  text-align: center;
  hyphens: auto;
}

/* Home : carte alignée sur la newsletter (même padding carte, texte sur toute la largeur utile) */
body.viva-homepage #MainContent.viva-home .shopify-section.viva-story-only .viva-our-story .viva-our-story__card {
  border-radius: 24px;
  padding: clamp(24px, 5vw, 48px) clamp(16px, 4.5vw, 40px);
  border-color: rgba(232, 152, 80, 0.28);
  box-shadow:
    0 22px 56px rgba(44, 36, 32, 0.09),
    0 1px 0 rgba(255, 255, 255, 0.85) inset;
}

body.viva-homepage #MainContent.viva-home .shopify-section.viva-story-only .viva-our-story .viva-our-story__head,
body.viva-homepage #MainContent.viva-home .shopify-section.viva-story-only .viva-our-story .viva-our-story__prose,
body.viva-homepage #MainContent.viva-home .shopify-section.viva-story-only .viva-our-story .viva-our-story__signoff {
  max-width: 100%;
}

body.viva-homepage #MainContent.viva-home .shopify-section.viva-story-only .viva-our-story .viva-our-story__prose {
  text-align: center;
}

body.viva-homepage #MainContent.viva-home .shopify-section.viva-story-only .viva-our-story .viva-our-story__prose p {
  text-wrap: balance;
}

@media (prefers-reduced-motion: reduce) {
  .shopify-section.viva-story-only .viva-our-story .viva-our-story__img {
    box-shadow: none;
  }
}

body.viva-homepage #MainContent.viva-home .viva-story__overline {
  text-align: center;
  margin-bottom: 10px;
}

body.viva-homepage #MainContent.viva-home .viva-story__body {
  font-family: 'Fraunces', 'Georgia', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(16px, 1.8vw, 19px);
  line-height: 1.75;
  color: var(--viva-ink);
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

body.viva-homepage #MainContent.viva-home .viva-story__body p {
  margin: 0 0 16px;
}

/* Conteneur histoire : colonne centrée (contraste avec overrides v3 .viva-story__body) */
body.viva-homepage #MainContent.viva-home .viva-story-section .viva-story__wrap {
  max-width: 720px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

body.viva-homepage #MainContent.viva-home .viva-story-section .viva-story__head {
  width: 100%;
  text-align: center;
}

body.viva-homepage #MainContent.viva-home .viva-story-section .viva-story__title {
  text-align: center !important;
}

body.viva-homepage #MainContent.viva-home .viva-story-section .viva-story__body {
  text-align: center !important;
  width: 100%;
}

body.viva-homepage #MainContent.viva-home .viva-story__sig {
  font-family: 'Caveat', cursive;
  font-size: 22px;
  color: var(--viva-cta);
  text-align: center !important;
  margin: 20px auto 0;
  display: block;
  max-width: 38rem;
  line-height: 1.4;
  hyphens: auto;
}

body.viva-homepage #MainContent.viva-home .viva-story__testi-summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 24px 0 32px;
  flex-wrap: wrap;
}

body.viva-homepage #MainContent.viva-home .viva-story__testi-rating-num {
  font-family: 'Fredoka', sans-serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--viva-ink);
}

body.viva-homepage #MainContent.viva-home .viva-story__testi-rating-stars {
  color: var(--viva-cta);
  font-size: 18px;
  letter-spacing: 3px;
}

body.viva-homepage #MainContent.viva-home .viva-story__testi-rating-count {
  font-family: 'Nunito', sans-serif;
  font-size: 13px;
  color: var(--viva-ink-sub);
}

body.viva-homepage #MainContent.viva-home .viva-testi-card {
  background: var(--viva-white);
  border-radius: 20px;
  padding: 28px;
  box-shadow: var(--viva-shadow-card);
}

body.viva-homepage #MainContent.viva-home .viva-testi-card__text {
  font-family: 'Fraunces', 'Georgia', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-ink);
  font-size: 15px;
  line-height: 1.7;
  margin: 0 0 16px;
  padding: 0;
  border: none;
}

body.viva-homepage #MainContent.viva-home .viva-testi-card__avatar--initials {
  background: var(--viva-cta-pale);
  color: var(--viva-cta-dk);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Fredoka', sans-serif;
  font-weight: 700;
  font-size: 14px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
}

body.viva-homepage #MainContent.viva-home .viva-testi-card__verified {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--viva-mint, #8EBB8E);
  font-size: 11px;
  margin-top: 4px;
  font-weight: 600;
}

/* ═══ GUIDE CARDS RAFFINÉ ═══ */
body.viva-homepage #MainContent.viva-home .viva-guide__head {
  text-align: center;
  margin-bottom: 32px;
}

body.viva-homepage #MainContent.viva-home .viva-guide__grid {
  list-style: none;
  padding: 0;
  margin: 0;
}

body.viva-homepage #MainContent.viva-home .viva-guide__card {
  border-top: 4px solid var(--viva-cta);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

body.viva-homepage #MainContent.viva-home .viva-guide__icon-char {
  font-family: 'Caveat', cursive;
  font-size: 44px;
  color: var(--viva-cta);
  line-height: 1;
  display: block;
  margin-bottom: 12px;
  text-align: center;
}

body.viva-homepage #MainContent.viva-home .viva-guide__card-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: gap 0.2s ease;
}

@media (hover: hover) and (pointer: fine) {
  body.viva-homepage #MainContent.viva-home .viva-guide__card:hover .viva-guide__card-link {
    gap: 10px;
  }
}

/* ═══ CHARACTERS : nav sémantique ═══ */
body.viva-homepage #MainContent.viva-home .viva-characters__grid {
  list-style: none;
  padding: 0;
  margin: 0;
}

body.viva-homepage #MainContent.viva-home .viva-characters__item {
  list-style: none;
}

/* ═══ BRAND BANNER : variante dark ═══ */
body.viva-homepage #MainContent.viva-home .brand-ban--dark .brand-ban-in {
  background: var(--viva-ink);
  color: var(--viva-bg);
}

body.viva-homepage #MainContent.viva-home .brand-ban--dark h2 {
  color: var(--viva-bg);
}

body.viva-homepage #MainContent.viva-home .brand-ban--dark h2 em {
  color: var(--viva-cta);
}

/* ═══ BUNDLES : H3 (au lieu de div) ═══ */
body.viva-homepage #MainContent.viva-home .viva-bundle__name {
  font-family: 'Fredoka', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--viva-ink);
  margin: 12px 0 6px;
  line-height: 1.3;
}

body.viva-homepage #MainContent.viva-home .viva-bundle__desc {
  font-family: 'Nunito', sans-serif;
  font-size: 13px;
  color: var(--viva-ink-sub);
  margin: 0 0 12px;
  line-height: 1.5;
}

/* ═══ NEWSLETTER FAMILY (home) : espacement + responsive ═══ */
/* Rythme vertical aligné sur les autres .viva-section (pas de padding-top inline) */
body.viva-homepage #MainContent.viva-home .viva-nl-section.viva-section {
  padding-block: clamp(48px, 7vw, 88px);
  padding-inline: clamp(16px, 4vw, 32px);
  box-sizing: border-box;
}

body.viva-homepage #MainContent.viva-home .viva-nl__overline {
  text-align: center;
  margin: 0;
  color: #fff;
}

body.viva-homepage #MainContent.viva-home .viva-nl__title {
  margin: 0;
  text-align: center;
}

body.viva-homepage #MainContent.viva-home .viva-nl__text {
  max-width: min(560px, 100%);
  margin: 0 auto;
  padding-inline: clamp(0px, 2vw, 8px);
  box-sizing: border-box;
}

/* Lisibilité sur fond lavande : priorité sur .viva-intro-editorial (640px) */
body.viva-homepage #MainContent.viva-home .viva-nl-section .viva-nl__text.viva-intro-editorial {
  max-width: min(560px, 100%);
  margin-left: auto;
  margin-right: auto;
  color: rgba(44, 36, 32, 0.92);
}

/* Carte : pleine largeur utile (le padding est déjà sur la section — évite double “-32px”) */
body.viva-homepage #MainContent.viva-home .viva-nl-section .family {
  border: 1px solid rgba(255, 255, 255, 0.32);
  box-shadow: 0 18px 52px rgba(44, 36, 32, 0.14);
  width: 100%;
  max-width: min(880px, 100%);
  margin-inline: auto;
  padding: clamp(32px, 5.5vw, 52px) clamp(20px, 5vw, 44px)
    clamp(28px, 4.8vw, 48px);
  gap: 0;
  flex-wrap: nowrap;
  box-sizing: border-box;
}

body.viva-homepage #MainContent.viva-home .viva-nl-section .family-t {
  flex: 1 1 100%;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

body.viva-homepage #MainContent.viva-home .viva-nl__inner {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  min-width: 0;
  gap: clamp(14px, 2.6vw, 22px);
}

body.viva-homepage #MainContent.viva-home .viva-nl__inner .viva-nl__title,
body.viva-homepage #MainContent.viva-home .viva-nl__inner .viva-nl__text {
  width: 100%;
  max-width: 100%;
}

body.viva-homepage #MainContent.viva-home .viva-nl__inner .viva-nl__fine {
  width: 100%;
  align-self: center;
}

body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f {
  position: relative;
  margin: 0 auto;
  width: min(560px, 100%);
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  align-self: center;
  box-sizing: border-box;
  row-gap: 10px;
  padding-inline: 0;
}

/*
  base.css : `.input-group > * { max-width: 250px }` étire mal le duo email+bouton
  (colonne trop étroite, alignée à gauche dans la carte). On neutralise ça uniquement ici.
*/
body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f .input-email-submit > * {
  max-width: none;
  margin-bottom: 0;
}

body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f .label--hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Annule `.flex` du snippet si le thème force une rangée horizontale */
body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f .input-group-form.flex {
  width: 100%;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  flex-wrap: nowrap !important;
  gap: 0;
}

body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f .input-email-submit {
  width: 100%;
  max-width: 100%;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(min-content, auto);
  gap: clamp(8px, 2vw, 12px);
  align-items: stretch;
  box-sizing: border-box;
  margin-inline: auto;
  justify-content: center;
}

body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f .input-group__btn {
  min-width: 0;
}

body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f input[type='email'] {
  flex: none;
  min-width: 0;
  width: 100%;
  min-height: 48px;
  padding: 14px 18px;
  font-size: 16px; /* évite le zoom iOS < 16px */
  border-radius: 999px;
}

body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f button[type='submit'] {
  min-height: 48px;
  padding: 14px clamp(18px, 3vw, 26px);
  font-size: clamp(13px, 2.8vw, 15px);
  font-weight: 700;
  border-radius: 999px;
  white-space: normal;
  line-height: 1.25;
  hyphens: auto;
  word-break: break-word;
}

/* Mentions légales : placé avant les overrides mobile pour que max-width ≤768px gagne la cascade */
body.viva-homepage #MainContent.viva-home .viva-nl__fine {
  text-align: center;
  max-width: min(520px, 100%);
  margin: 0 auto;
  padding-inline: clamp(4px, 2vw, 12px);
  padding-bottom: 2px;
  font-size: clamp(12px, 2.8vw, 14px);
  line-height: 1.45;
  color: rgba(44, 36, 32, 0.85);
}

body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f .gd-rgpb-agree {
  margin-top: 6px !important;
  max-width: min(560px, 100%);
  margin-inline: auto;
  padding-inline: clamp(4px, 2vw, 10px);
  line-height: 1.4;
}

body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f .gd-rgpb-agree small {
  display: inline-block;
  text-align: center;
}

@media screen and (max-width: 620px) {
  body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f .input-email-submit {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f .input-group__btn,
  body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f button[type='submit'] {
    width: 100%;
  }
}

@media screen and (max-width: 768px) {
  /* Formulaire centré ; rythme vertical porté par .viva-nl__inner gap */
  body.viva-homepage #MainContent.viva-home .viva-nl__text {
    margin: 0 auto;
  }

  body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f {
    row-gap: 6px;
    width: 100%;
    max-width: 100%;
    align-items: stretch;
  }

  body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f .input-group-form.flex {
    align-items: stretch;
  }

  body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f .input-email-submit {
    width: 100%;
    max-width: min(420px, 100%);
    margin-inline: auto;
    gap: 8px;
    justify-items: stretch;
  }

  body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f input[type='email'],
  body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f input[type='email']::placeholder {
    text-align: center;
    padding-inline: clamp(16px, 5vw, 22px);
  }

  body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f .input-group__btn {
    display: flex;
    justify-content: center;
  }

  body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f button[type='submit'] {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
  }

  body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f .gd-rgpb-agree {
    margin-top: 8px !important;
    text-align: center;
    padding-inline: clamp(4px, 2vw, 10px);
  }

  body.viva-homepage #MainContent.viva-home .viva-nl__fine {
    margin: 0 auto;
  }
}

body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f .form-success,
body.viva-homepage #MainContent.viva-home .viva-nl__form.family-f .errors {
  text-align: center;
  padding-inline: clamp(4px, 2vw, 8px);
}

body.viva-homepage #MainContent.viva-home .viva-nl__success {
  color: var(--viva-mint, #8EBB8E);
  font-family: 'Fredoka', sans-serif;
  font-weight: 600;
  margin-top: 12px;
  text-align: center;
}

body.viva-homepage #MainContent.viva-home .viva-nl__error {
  color: var(--viva-alert, #E8907A);
  font-family: 'Nunito', sans-serif;
  margin-top: 12px;
  text-align: center;
  font-size: 14px;
}

/* ═══ INSTAGRAM : liste sémantique ═══ */
body.viva-homepage #MainContent.viva-home .viva-insta__grid {
  list-style: none;
  padding: 0;
  margin: 0;
}

body.viva-homepage #MainContent.viva-home .viva-insta__handle a {
  color: var(--viva-cta);
  text-decoration: none;
  font-weight: 600;
  transition: color 0.2s ease;
}

body.viva-homepage #MainContent.viva-home .viva-insta__handle a:hover {
  color: var(--viva-cta-dk);
  text-decoration: underline;
}

/* ═══ SEO RICH BLOCK : structure éditoriale ═══ */
body.viva-homepage #MainContent.viva-home .viva-seo__block {
  max-width: 820px;
  margin: 0 auto;
}

body.viva-homepage #MainContent.viva-home .viva-seo__title {
  text-align: left;
  margin-bottom: 20px;
}

body.viva-homepage #MainContent.viva-home .viva-seo__block p {
  font-family: 'Nunito', sans-serif;
  font-size: 15px;
  line-height: 1.8;
  color: var(--viva-ink-lt);
  margin: 0 0 16px;
}

body.viva-homepage #MainContent.viva-home .viva-seo__block a {
  color: var(--viva-cta);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color 0.2s ease;
}

body.viva-homepage #MainContent.viva-home .viva-seo__block a:hover {
  color: var(--viva-cta-dk);
}

body.viva-homepage #MainContent.viva-home .viva-seo__block strong {
  color: var(--viva-ink);
  font-weight: 700;
}

/* ═══ MOBILE FINAL ADJUSTMENTS ═══ */
@media (max-width: 640px) {
  body.viva-homepage #MainContent.viva-home .viva-why__quote {
    padding: 28px 24px;
    margin-top: 40px;
  }

  body.viva-homepage #MainContent.viva-home .viva-final-cta {
    padding: 60px 20px;
  }

  body.viva-homepage #MainContent.viva-home .viva-testi-card {
    padding: 24px 20px;
  }

  body.viva-homepage #MainContent.viva-home .viva-quote--dark {
    padding: 32px 24px;
    margin: 0 16px;
  }
}


/* ============================================================
   Viva Capybara — HOMEPAGE LOT 2 EXTENSION
   Patterns : why-capybara, final-cta (fond ink), quote dark, editorial Fraunces
   ============================================================ */

/* ═══ VIVA EDITORIAL — texte en Fraunces italique léger ═══
   Pattern inspiré de la story-section de la page produit Honey.
   Utilisé pour les intros narratives, les story bodies, les citations. */
body.viva-homepage #MainContent.viva-home .viva-editorial,
body.viva-homepage #MainContent.viva-home .viva-intro-editorial {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-ink);
  line-height: 1.7;
}

/* ═══ WHY CAPYBARA — section storytelling ═══ */
body.viva-homepage #MainContent.viva-home .viva-why {
  background: var(--viva-why-bg, #FFF5EE);
  padding: clamp(60px, 9vw, 100px) clamp(16px, 4vw, 32px);
  position: relative;
  overflow: hidden;
}

body.viva-homepage #MainContent.viva-home .viva-why__wrap {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

body.viva-homepage #MainContent.viva-home .viva-why__head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 48px;
}

body.viva-homepage #MainContent.viva-home .viva-why__title {
  font-size: clamp(32px, 5vw, 48px);
  margin-bottom: 24px;
}

body.viva-homepage #MainContent.viva-home .viva-why__intro,
body.viva-homepage #MainContent.viva-home .viva-intro-editorial {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(18px, 2vw, 22px);
  color: var(--viva-ink);
  line-height: 1.7;
  max-width: 680px;
  margin: 0 auto;
  text-align: center;
}

body.viva-homepage #MainContent.viva-home .viva-why__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 2.5vw, 24px);
  margin-top: 48px;
}

@media (max-width: 900px) {
  body.viva-homepage #MainContent.viva-home .viva-why__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  body.viva-homepage #MainContent.viva-home .viva-why__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

body.viva-homepage #MainContent.viva-home .viva-why__card {
  background: var(--viva-white);
  border-radius: 20px;
  padding: 32px 24px;
  text-align: center;
  border-top: 4px solid var(--viva-cta);
  box-shadow: 0 4px 16px var(--viva-shadow-warm, rgba(61, 43, 31, 0.06));
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
}

body.viva-homepage #MainContent.viva-home .viva-why__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px var(--viva-shadow-card-hover, rgba(61, 43, 31, 0.12));
}

/* Variation par index — alterne border-top pour un vrai effet "famille de personnages" */
body.viva-homepage #MainContent.viva-home .viva-why__card:nth-child(2) {
  border-top-color: var(--viva-rose);
}
body.viva-homepage #MainContent.viva-home .viva-why__card:nth-child(3) {
  border-top-color: var(--viva-mint);
}
body.viva-homepage #MainContent.viva-home .viva-why__card:nth-child(4) {
  border-top-color: var(--viva-soft, #A8D4E6);
}
body.viva-homepage #MainContent.viva-home .viva-why__card:nth-child(5) {
  border-top-color: var(--viva-lavender, #C8B8E8);
}
body.viva-homepage #MainContent.viva-home .viva-why__card:nth-child(6) {
  border-top-color: var(--viva-butter, #F5E6A3);
}

body.viva-homepage #MainContent.viva-home .viva-why__icon,
body.viva-homepage #MainContent.viva-home .viva-why__card-icon {
  font-family: 'Caveat', cursive;
  font-size: 48px;
  color: var(--viva-cta);
  line-height: 1;
  margin-bottom: 12px;
  display: block;
}

body.viva-homepage #MainContent.viva-home .viva-why__card-title {
  font-family: 'Fredoka', sans-serif;
  font-size: 18px;
  font-weight: 600;
  color: var(--viva-ink);
  margin: 0 0 12px;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

body.viva-homepage #MainContent.viva-home .viva-why__card-title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}

body.viva-homepage #MainContent.viva-home .viva-why__card-text {
  font-family: 'Nunito', sans-serif;
  font-size: 14px;
  color: var(--viva-ink-sub);
  line-height: 1.7;
  margin: 0;
}

body.viva-homepage #MainContent.viva-home .viva-why__card-source {
  font-family: 'Caveat', cursive;
  font-size: 16px;
  color: var(--viva-ink-lt, var(--viva-ink-sub));
  margin: 12px 0 0;
  opacity: 0.7;
}

/* WHY — Quote / citation finale */
body.viva-homepage #MainContent.viva-home .viva-why__quote {
  margin: 48px auto 0;
  padding: 32px clamp(20px, 4vw, 48px);
  background: var(--viva-ink);
  color: var(--viva-bg);
  border-radius: 24px;
  max-width: 780px;
  text-align: center;
  position: relative;
}

body.viva-homepage #MainContent.viva-home .viva-why__quote blockquote,
body.viva-homepage #MainContent.viva-home .viva-why__quote-text {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(20px, 2.5vw, 26px);
  line-height: 1.5;
  color: var(--viva-bg);
  margin: 0;
  border: none;
  padding: 0;
  quotes: none;
}

body.viva-homepage #MainContent.viva-home .viva-why__quote figcaption,
body.viva-homepage #MainContent.viva-home .viva-why__quote-author {
  font-family: 'Caveat', cursive;
  font-size: 20px;
  color: var(--viva-cta);
  margin-top: 14px;
  display: block;
}

/* ═══ FINAL CTA — bloc sombre de fin de page (pattern page produit) ═══ */
body.viva-homepage #MainContent.viva-home .viva-final-cta {
  background: var(--viva-ink);
  color: var(--viva-bg);
  padding: clamp(60px, 10vw, 100px) clamp(16px, 4vw, 32px);
  text-align: center;
  position: relative;
  overflow: hidden;
}

/* Ambiance : halos sombres à peine visibles pour éviter le "mur noir plat" */
body.viva-homepage #MainContent.viva-home .viva-final-cta::before {
  content: "";
  position: absolute;
  width: 500px;
  height: 500px;
  top: -100px;
  left: -100px;
  background: radial-gradient(circle, rgba(232, 152, 80, 0.08) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta::after {
  content: "";
  position: absolute;
  width: 400px;
  height: 400px;
  bottom: -80px;
  right: -80px;
  background: radial-gradient(circle, rgba(244, 169, 168, 0.06) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__wrap {
  max-width: 680px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__overline {
  font-family: 'Caveat', cursive;
  font-size: clamp(22px, 2.5vw, 28px);
  font-weight: 500;
  color: var(--viva-cta);
  line-height: 1.1;
  display: block;
  margin-bottom: 16px;
  letter-spacing: 0.02em;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(36px, 6vw, 56px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--viva-bg);
  margin: 0 0 24px;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
  background: none !important;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__title em::after {
  display: none !important;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__sub {
  font-family: 'Nunito', sans-serif;
  font-size: clamp(15px, 1.7vw, 17px);
  color: var(--viva-ink-soft, rgba(250, 247, 242, 0.75));
  line-height: 1.7;
  max-width: 520px;
  margin: 0 auto 32px;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-inline: auto;
  padding: 20px 40px;
  border-radius: 50px;
  background: var(--viva-cta);
  color: #fff !important;
  font-family: 'Fredoka', sans-serif;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: 0.3px;
  transition: transform 0.2s ease, box-shadow 0.3s ease, background 0.2s ease;
  box-shadow: 0 4px 20px rgba(232, 152, 80, 0.25);
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(232, 152, 80, 0.4);
  background: var(--viva-cta-dk, #C97A35);
  color: #fff !important;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__btn-icon {
  display: inline-block;
  transition: transform 0.2s ease;
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__btn:hover .viva-final-cta__btn-icon {
  transform: translateX(3px);
}

body.viva-homepage #MainContent.viva-home .viva-final-cta__footnote {
  font-family: 'Nunito', sans-serif;
  font-size: 13px;
  color: var(--viva-ink-soft, rgba(250, 247, 242, 0.6));
  margin: 24px 0 0;
  letter-spacing: 0.02em;
}

/* ═══ QUOTE — variante fond sombre ═══ */
body.viva-homepage #MainContent.viva-home .viva-quote--dark,
body.viva-homepage #MainContent.viva-home .viva-quote--dark.inline-testi {
  background: var(--viva-ink);
  color: var(--viva-bg);
  padding: 48px clamp(24px, 5vw, 64px);
  border-radius: 24px;
  max-width: 900px;
  margin: 40px auto;
  text-align: center;
  box-shadow: 0 8px 32px var(--viva-shadow-warm, rgba(61, 43, 31, 0.12));
}

body.viva-homepage #MainContent.viva-home .viva-quote__text {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(19px, 2.2vw, 24px);
  line-height: 1.6;
  color: var(--viva-ink);
  margin: 0;
  border: none;
  padding: 0;
  quotes: none;
  position: relative;
  display: block;
}

body.viva-homepage #MainContent.viva-home .viva-quote--dark .viva-quote__text {
  color: var(--viva-bg);
}

body.viva-homepage #MainContent.viva-home .viva-quote__mark {
  font-family: 'Caveat', cursive;
  font-size: 48px;
  line-height: 0;
  color: var(--viva-cta);
  display: inline-block;
  vertical-align: -0.1em;
  margin-right: 6px;
}

body.viva-homepage #MainContent.viva-home .viva-quote__attribution {
  font-family: 'Caveat', cursive;
  font-size: 18px;
  color: var(--viva-cta);
  margin-top: 16px;
  display: block;
  font-style: normal;
}

body.viva-homepage #MainContent.viva-home .viva-quote__attribution cite {
  font-style: normal;
}

/* ═══ TESTI CARDS — pattern raffiné avec Fraunces sur texte ═══ */
body.viva-homepage #MainContent.viva-home .viva-testi-card .viva-testi-card__text,
body.viva-homepage #MainContent.viva-home .viva-testi-card blockquote {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: 15px;
  line-height: 1.7;
  color: var(--viva-ink);
  margin: 0 0 16px;
  border: none;
  padding: 0;
  quotes: none;
}

body.viva-homepage #MainContent.viva-home .viva-testi-card__avatar--initials {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--viva-cta-pale);
  color: var(--viva-cta-dk, #C97A35);
  font-family: 'Fredoka', sans-serif;
  font-weight: 700;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

body.viva-homepage #MainContent.viva-home .viva-testi-card__verified {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--viva-mint);
  font-size: 11px;
  font-weight: 600;
  margin-top: 4px;
}

body.viva-homepage #MainContent.viva-home .viva-story__testi-summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}

body.viva-homepage #MainContent.viva-home .viva-story__testi-rating-num {
  font-family: 'Fredoka', sans-serif;
  font-size: 48px;
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1;
}

body.viva-homepage #MainContent.viva-home .viva-story__testi-rating-stars {
  color: var(--viva-cta);
  font-size: 20px;
  letter-spacing: 3px;
}

body.viva-homepage #MainContent.viva-home .viva-story__testi-rating-count {
  font-size: 13px;
  color: var(--viva-ink-sub);
}

/* ═══ NEWSLETTER FAMILY — harmonisation ═══ */
body.viva-homepage #MainContent.viva-home .viva-nl__title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: #fff;
}

body.viva-homepage #MainContent.viva-home .viva-nl__success {
  color: var(--viva-mint);
  font-family: 'Fredoka', sans-serif;
  font-weight: 600;
  margin-top: 12px;
  text-align: center;
}

body.viva-homepage #MainContent.viva-home .viva-nl__error {
  color: var(--viva-alert, #E8907A);
  font-family: 'Nunito', sans-serif;
  font-size: 13px;
  margin-top: 12px;
  text-align: center;
}

/* ═══ STORY — body en Fraunces italique ═══ */
body.viva-homepage #MainContent.viva-home .viva-story__body.viva-editorial,
body.viva-homepage #MainContent.viva-home .viva-story__body p {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(17px, 1.8vw, 20px);
  line-height: 1.7;
  color: var(--viva-ink);
}

/* ═══ SEO RICH — harmonisation ═══ */
body.viva-homepage #MainContent.viva-home .viva-seo__title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}

/* ═══ RESPECT PREFERS-REDUCED-MOTION ═══ */
@media (prefers-reduced-motion: reduce) {
  body.viva-homepage #MainContent.viva-home *,
  body.viva-homepage #MainContent.viva-home *::before,
  body.viva-homepage #MainContent.viva-home *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}


/* ============================================================
   Viva Capybara — LOT 3 EXTENSION
   Styles pour : collection, cart, 404, page, breadcrumb, pagination, minicart
   ============================================================ */

/* ═══ VARIABLES GLOBALES — exposées au-delà de .viva-homepage ═══
   Les pages collection/cart/404/page n'ont pas la classe .viva-homepage sur body,
   donc on rend les variables globales aussi. */
:root {
  --viva-bg: #FAF7F2;
  --viva-bg-warm: #FFF5EE;
  --viva-bg-dk: #E8E2D8;
  --viva-white: #FFFFFF;
  --viva-ink: #2C2420;
  --viva-ink-lt: #4A3E36;
  --viva-ink-sub: #7A6B5D;
  --viva-ink-soft: #A89884;
  --viva-cta: #E89850;
  --viva-cta-h: #D68840;
  --viva-cta-dk: #C97A35;
  --viva-cta-lt: #F0B878;
  --viva-cta-pale: #FDF0E0;
  --viva-mint: #8EBB8E;
  --viva-mint-pale: #E4F0E4;
  --viva-rose: #F4A9A8;
  --viva-rose-pale: #FDEAEA;
  --viva-soft: #A8D4E6;
  --viva-soft-pale: #E4F2F8;
  --viva-butter: #F5E6A3;
  --viva-butter-pale: #FDF6E0;
  --viva-lavender: #C8B8E8;
  --viva-lavender-pale: #F0ECF8;
  --viva-capy: #B5926B;
  --viva-capy-dk: #8B6B4A;
  --viva-shadow-warm: rgba(61, 43, 31, 0.06);
  --viva-shadow-card: 0 4px 20px rgba(61, 43, 31, 0.08);
  --viva-shadow-card-hover: 0 8px 32px rgba(61, 43, 31, 0.12);
}

/* Fonts globales pour les pages non-homepage (collection, cart, 404, page, blog, etc.) */
body.template-collection,
body.template-cart,
body.template-404,
body.template-page,
body.template-search,
body.template-blog,
body.template-article,
body.viva-template-customers {
  font-family: 'Nunito', 'Helvetica Neue', Arial, sans-serif;
  background: var(--viva-bg);
  color: var(--viva-ink);
  -webkit-font-smoothing: antialiased;
}

/* Accessibilité helpers (repris pour les pages non-homepage) */
.sr-only,
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ═══ BREADCRUMB VISUEL (collection + page) ═══ */
.viva-breadcrumb {
  max-width: 1280px;
  margin: 0 auto 24px;
  padding: 24px clamp(16px, 4vw, 32px) 0;
}

.viva-breadcrumb__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  font-family: 'Nunito', sans-serif;
  font-size: 13px;
  color: var(--viva-ink-sub);
}

.viva-breadcrumb__item + .viva-breadcrumb__item::before {
  content: "/";
  color: var(--viva-ink-soft);
  margin-right: 6px;
  display: inline-block;
}

.viva-breadcrumb__item a {
  color: var(--viva-ink-sub);
  text-decoration: none;
  transition: color 0.2s ease;
}

.viva-breadcrumb__item a:hover {
  color: var(--viva-cta);
}

.viva-breadcrumb__item--current {
  color: var(--viva-ink);
  font-weight: 600;
}

/* ═══ PAGE COLLECTION — DA honey-page-final (chaud, polaroid, motifs discrets) ═══ */
/* Pas de clip sur toute la section : le défilement horizontal produits (mobile) a besoin d’overflow visible.
   Le hero garde son propre overflow (cf. viva-collection-honey-skin / __hero). */
.viva-collection {
  overflow-x: visible;
}

/* Hero : fond beurre + halos (comme .hero-prod honey) */
.viva-collection__hero {
  position: relative;
  background: var(--viva-butter-pale);
  overflow-x: clip;
  padding: clamp(20px, 4vw, 40px) 0 clamp(28px, 5vw, 48px);
  border-bottom: 2px dashed var(--viva-cta-pale);
}

.viva-collection__hero::before,
.viva-collection__hero::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}

.viva-collection__hero::before {
  top: -80px;
  right: -40px;
  width: 260px;
  height: 260px;
  background: radial-gradient(circle, var(--viva-cta-pale), transparent 70%);
  opacity: 0.65;
}

.viva-collection__hero::after {
  bottom: -60px;
  left: -40px;
  width: 220px;
  height: 220px;
  background: radial-gradient(circle, var(--viva-butter), transparent 70%);
  opacity: 0.45;
}

.viva-collection__hero-pattern {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.35;
  background-image: radial-gradient(var(--viva-cta) 1.5px, transparent 1.5px);
  background-size: 36px 36px;
  background-position: 0 0;
  pointer-events: none;
}

.viva-collection__wrap--hero,
.viva-collection__hero .viva-breadcrumb--collection {
  position: relative;
  z-index: 1;
}

.viva-collection .viva-breadcrumb--collection {
  max-width: none;
  margin: 0 0 8px;
  padding: 0;
}

.viva-collection__wrap {
  max-width: 1340px;
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 32px);
  box-sizing: border-box;
}

.viva-collection__main .viva-collection__wrap {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.viva-collection__main {
  padding: clamp(28px, 4vw, 48px) 0 clamp(56px, 8vw, 96px);
  background: var(--viva-bg);
}

.viva-collection__head {
  text-align: center;
  margin: 0;
  padding: 0 8px;
}

.viva-collection .viva-overline,
.viva-collection .viva-overline--collection {
  font-family: 'Caveat', cursive;
  font-size: clamp(22px, 2.8vw, 30px);
  color: var(--viva-cta);
  display: block;
  margin-bottom: 10px;
  line-height: 1.2;
}

.viva-collection__title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1.05;
  letter-spacing: -0.03em;
  margin: 0 0 14px;
}

.viva-collection__title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}

.viva-collection__intro {
  font-family: 'Nunito', sans-serif;
  font-size: clamp(15px, 1.7vw, 17px);
  color: var(--viva-ink-sub);
  line-height: 1.75;
  max-width: 680px;
  margin: 0 auto 18px;
}

.viva-collection__intro p {
  margin: 0 0 10px;
}

.viva-collection__intro p:last-child {
  margin-bottom: 0;
}

.viva-collection__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 16px auto 0;
  padding: 10px 20px;
  background: var(--viva-white);
  border-radius: 999px;
  box-shadow: 0 4px 16px rgba(61, 43, 31, 0.08);
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--viva-ink-sub);
}

.viva-collection__count-num {
  color: var(--viva-cta);
  font-weight: 700;
}

.viva-collection__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(14px, 2.2vw, 24px);
  margin-bottom: 40px;
}

@media (max-width: 1024px) {
  .viva-collection__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .viva-collection__grid,
  .viva-collection__grid--boutique {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    width: 100%;
    max-width: 520px;
    margin: 0 auto 34px;
    padding: 0 0 34px;
    overflow: visible;
    scroll-snap-type: none;
    touch-action: auto;
    box-sizing: border-box;
    justify-items: stretch;
    align-items: stretch;
  }

  .viva-collection__grid > .viva-card,
  .viva-collection__grid--boutique > .viva-card {
    width: 100%;
    max-width: none;
    min-width: 0;
    flex: none;
    scroll-snap-align: none;
  }
}

/* Cartes produit : ombre type polaroid + bandeau couleur */
.viva-collection .viva-card,
.viva-collection .na-card {
  background: var(--viva-white);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 12px 36px rgba(61, 43, 31, 0.1);
  transition: transform 0.35s ease, box-shadow 0.35s ease;
  position: relative;
  display: flex;
  flex-direction: column;
  border-top: 4px solid var(--viva-cta);
}

.viva-collection .viva-card:nth-child(4n + 2) {
  transform: rotate(0.4deg);
}
.viva-collection .viva-card:nth-child(4n + 3) {
  transform: rotate(-0.35deg);
}

.viva-collection .viva-card:hover {
  transform: translateY(-6px) rotate(0deg);
  box-shadow: 0 18px 44px rgba(61, 43, 31, 0.14);
}

.viva-collection .viva-card--accent-cta {
  border-top-color: var(--viva-cta);
}
.viva-collection .viva-card--accent-rose {
  border-top-color: var(--viva-rose);
}
.viva-collection .viva-card--accent-mint {
  border-top-color: var(--viva-mint);
}
.viva-collection .viva-card--accent-soft {
  border-top-color: var(--viva-soft);
}

.viva-collection .viva-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.viva-collection .viva-card__media {
  position: relative;
  aspect-ratio: 4 / 5;
  background: linear-gradient(145deg, var(--viva-butter-pale), var(--viva-cta-pale));
  overflow: hidden;
}

.viva-collection .viva-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.65s ease;
}

.viva-collection .viva-card:hover .viva-card__img {
  transform: scale(1.06);
}

.viva-collection .viva-card__save {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--viva-cta);
  color: #fff;
  padding: 6px 11px;
  border-radius: 999px;
  font-family: 'Fredoka', sans-serif;
  font-size: 11px;
  font-weight: 700;
  z-index: 2;
  box-shadow: 0 4px 12px rgba(232, 152, 80, 0.35);
}

.viva-collection .viva-card__sold-out {
  position: absolute;
  top: 12px;
  right: 12px;
  background: var(--viva-ink);
  color: #fff;
  padding: 6px 11px;
  border-radius: 999px;
  font-family: 'Fredoka', sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  z-index: 2;
}

.viva-collection .viva-card__title,
.viva-collection .na-card__title {
  font-family: 'Fredoka', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--viva-ink);
  line-height: 1.3;
  margin: 14px 16px 6px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.viva-collection .viva-card__price {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: auto 16px 16px;
  flex-wrap: wrap;
}

.viva-collection .viva-card__price-now {
  font-family: 'Fredoka', sans-serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--viva-ink);
}

.viva-collection .viva-card__price-was {
  font-size: 13px;
  color: var(--viva-ink-soft);
  text-decoration: line-through;
}

/* Pagination — pastilles type honey (page collection uniquement) */
.viva-collection .viva-pagination {
  margin: 8px 0 0;
  display: flex;
  justify-content: center;
}

.viva-collection .viva-pagination__list {
  list-style: none;
  padding: 12px 16px;
  margin: 0;
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  background: var(--viva-white);
  border-radius: 999px;
  border: 2px dashed var(--viva-cta-pale);
  box-shadow: 0 4px 16px rgba(61, 43, 31, 0.06);
}

.viva-collection .viva-pagination__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  background: transparent;
  color: var(--viva-ink);
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  border: 1.5px solid transparent;
  transition: all 0.2s ease;
}

.viva-collection .viva-pagination__link:hover {
  border-color: var(--viva-cta);
  color: var(--viva-cta);
  background: var(--viva-cta-pale);
}

.viva-collection .viva-pagination__link--current {
  background: var(--viva-cta);
  color: #fff;
  border-color: var(--viva-cta);
  cursor: default;
}

.viva-collection .viva-pagination__link--current:hover {
  background: var(--viva-cta);
  color: #fff;
}

.viva-collection .viva-pagination__link--disabled {
  color: var(--viva-ink-soft);
  border-color: transparent;
  cursor: default;
  background: transparent;
}

.viva-collection .viva-pagination__link--prev,
.viva-collection .viva-pagination__link--next {
  padding: 0 18px;
  gap: 6px;
}

/* Collection — maquette viva-capybara-collection.html (surcharge polaroid ci-dessus) */
.viva-collection--boutique .viva-collection__hero--boutique {
  background: linear-gradient(180deg, var(--viva-butter-pale) 0%, var(--viva-bg) 100%);
  border-bottom: none;
  padding: clamp(48px, 8vw, 80px) 24px clamp(40px, 6vw, 60px);
}

.viva-collection--boutique .viva-collection__hero--boutique::before,
.viva-collection--boutique .viva-collection__hero--boutique::after {
  display: none;
  content: none;
}

.viva-collection--boutique .viva-collection__pretext {
  max-width: 560px;
  margin: 0 auto;
  font-size: clamp(15px, 1.7vw, 17px);
  color: var(--viva-ink-sub);
  line-height: 1.7;
  text-align: center;
}

.viva-collection__description-bottom {
  max-width: 820px;
  width: min(100%, 820px);
  margin: clamp(48px, 7vw, 88px) auto 0;
  padding: clamp(32px, 5vw, 48px) clamp(20px, 4vw, 40px);
  color: var(--viva-ink-lt);
  line-height: 1.8;
  border-top: 2px dashed var(--viva-cta-pale);
  box-sizing: border-box;
  align-self: center;
  text-align: left;
}

.viva-collection__description-bottom p {
  margin: 0 0 1em;
}

.viva-collection__description-bottom p:last-child {
  margin-bottom: 0;
}

.viva-collection--boutique .viva-card--boutique {
  border-top: none;
  border-radius: 20px;
  box-shadow: 0 4px 20px rgba(61, 43, 31, 0.08);
  transform: none;
}

.viva-collection--boutique .viva-card--boutique:nth-child(4n + 2),
.viva-collection--boutique .viva-card--boutique:nth-child(4n + 3) {
  transform: none;
}

.viva-collection--boutique .viva-card--boutique:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 40px rgba(61, 43, 31, 0.08);
}

.viva-collection--boutique .viva-card__media {
  aspect-ratio: 1 / 1;
}

/* Pagination — blog & recherche */
.viva-blog .viva-pagination,
.viva-search .viva-pagination {
  margin: 48px 0 32px;
  padding: 0 16px;
  display: flex;
  justify-content: center;
}

.viva-blog .viva-pagination__list,
.viva-search .viva-pagination__list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 0;
  margin: 0;
  list-style: none;
  flex-wrap: wrap;
}

.viva-blog .viva-pagination__link,
.viva-search .viva-pagination__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border-radius: 20px;
  background: var(--viva-white);
  color: var(--viva-ink);
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid var(--viva-bg-dk);
  transition: all 0.2s ease;
}

.viva-blog .viva-pagination__link:hover,
.viva-search .viva-pagination__link:hover {
  border-color: var(--viva-cta);
  color: var(--viva-cta);
  background: var(--viva-cta-pale);
}

.viva-blog .viva-pagination__link--current,
.viva-search .viva-pagination__link--current {
  background: var(--viva-cta);
  color: #fff;
  border-color: var(--viva-cta);
  cursor: default;
}

.viva-blog .viva-pagination__link--current:hover,
.viva-search .viva-pagination__link--current:hover {
  background: var(--viva-cta);
  color: #fff;
}

.viva-blog .viva-pagination__link--disabled,
.viva-search .viva-pagination__link--disabled {
  color: var(--viva-ink-soft);
  background: transparent;
  border: none;
  cursor: default;
}

.viva-blog .viva-pagination__link--prev,
.viva-blog .viva-pagination__link--next,
.viva-search .viva-pagination__link--prev,
.viva-search .viva-pagination__link--next {
  padding: 0 16px;
  gap: 6px;
}

/* Collection vide */
.viva-collection__empty {
  text-align: center;
  padding: clamp(48px, 10vw, 96px) 20px;
  max-width: 520px;
  margin: 0 auto;
}

.viva-collection__empty-icon {
  font-family: 'Caveat', cursive;
  font-size: 72px;
  color: var(--viva-cta);
  line-height: 1;
  margin: 0 0 16px;
}

.viva-collection__empty-title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(24px, 4vw, 36px);
  font-weight: 700;
  color: var(--viva-ink);
  margin: 0 0 12px;
}

.viva-collection__empty-title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}

.viva-collection__empty-text {
  font-family: 'Nunito', sans-serif;
  font-size: 16px;
  color: var(--viva-ink-sub);
  line-height: 1.7;
  margin: 0 0 28px;
}

/* SEO bas de page — bulle type .meet-bubble */
.viva-collection__seo {
  max-width: 820px;
  width: min(100%, 820px);
  margin: clamp(48px, 7vw, 80px) auto 0;
  padding: clamp(28px, 4vw, 40px) clamp(20px, 4vw, 40px);
  background: var(--viva-white);
  border-radius: 28px;
  box-shadow: 0 8px 32px rgba(61, 43, 31, 0.08);
  border: 2px dashed var(--viva-mint-pale);
  box-sizing: border-box;
  align-self: center;
}

.viva-collection__seo-title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(22px, 2.8vw, 30px);
  font-weight: 700;
  color: var(--viva-ink);
  margin: 0 0 18px;
  text-align: center;
  line-height: 1.15;
}

.viva-collection__seo-title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}

.viva-collection__seo-body {
  font-family: 'Nunito', sans-serif;
  font-size: 15px;
  line-height: 1.8;
  color: var(--viva-ink-lt);
}

.viva-collection__seo-body p {
  margin: 0 0 14px;
}

.viva-collection__seo-body a {
  color: var(--viva-cta-dk);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

/* Collections liées — mini polaroids */
.viva-collection__related {
  max-width: 1120px;
  width: min(100%, 1120px);
  margin: clamp(56px, 8vw, 96px) auto 0;
  padding-top: clamp(16px, 3vw, 28px);
  padding-bottom: 0;
  padding-left: max(clamp(12px, 3vw, 24px), env(safe-area-inset-left, 0px));
  padding-right: max(clamp(12px, 3vw, 24px), env(safe-area-inset-right, 0px));
  box-sizing: border-box;
  align-self: center;
}

.viva-collection__related-title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(22px, 4.2vw, 36px);
  font-weight: 700;
  color: var(--viva-ink);
  margin: 0 0 clamp(20px, 4vw, 28px);
  text-align: center;
  line-height: 1.1;
  letter-spacing: -0.02em;
  padding-inline: clamp(4px, 2vw, 12px);
}

.viva-collection__related-title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}

/* Desktop : 4 vignettes max ~176px, centrées ; jamais de débordement horizontal */
.viva-collection__related-grid {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 176px));
  justify-content: center;
  gap: 14px 16px;
  width: 100%;
  max-width: min(100%, 820px);
  box-sizing: border-box;
}

/* Tablette / mobile large : 2 colonnes sur toute la largeur utile (évite 4 col trop serrées) */
@media (max-width: 839px) {
  .viva-collection__related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: min(100%, 520px);
    gap: 12px 14px;
    padding-inline: 4px;
  }
}

/* Très petits écrans : une colonne lisible, carte centrée */
@media (max-width: 360px) {
  .viva-collection__related-grid {
    grid-template-columns: minmax(0, 1fr);
    max-width: min(100%, 260px);
    gap: 12px;
  }
}

.viva-collection__related-thumb {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  max-height: 176px;
  border-radius: 6px;
  overflow: hidden;
  background: linear-gradient(145deg, var(--viva-butter-pale), var(--viva-cta-pale));
  margin: 0 auto;
}

@media (max-width: 839px) {
  .viva-collection__related-thumb {
    max-height: min(176px, 40vw);
  }
}

@media (max-width: 360px) {
  .viva-collection__related-thumb {
    max-height: min(200px, 72vw);
  }
}

.viva-collection__related-link img,
.viva-collection__related-img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.viva-collection__related-item {
  position: relative;
  z-index: 1;
  transition: transform 0.25s ease;
  min-width: 0;
}

.viva-collection__related-item:nth-child(4n + 1) .viva-collection__related-link {
  transform: rotate(-2deg);
}
.viva-collection__related-item:nth-child(4n + 2) .viva-collection__related-link {
  transform: rotate(1.5deg);
}
.viva-collection__related-item:nth-child(4n + 3) .viva-collection__related-link {
  transform: rotate(-1deg);
}
.viva-collection__related-item:nth-child(4n + 4) .viva-collection__related-link {
  transform: rotate(2deg);
}

.viva-collection__related-item:hover {
  z-index: 2;
}

.viva-collection__related-item:hover .viva-collection__related-link {
  transform: translateY(-6px) rotate(0deg) !important;
}

.viva-collection__related-link {
  display: block;
  background: var(--viva-white);
  border-radius: 8px;
  padding: 10px 10px 14px;
  overflow: hidden;
  text-decoration: none;
  color: var(--viva-ink);
  box-shadow: 0 10px 28px rgba(61, 43, 31, 0.12);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  min-height: 44px;
}

.viva-collection__related-link:hover {
  box-shadow: 0 16px 40px rgba(61, 43, 31, 0.16);
}

.viva-collection__related-name {
  display: block;
  padding: 10px 4px 0;
  font-family: 'Caveat', cursive;
  font-size: clamp(15px, 3.8vw, 17px);
  font-weight: 600;
  text-align: center;
  color: var(--viva-ink-sub);
  line-height: 1.25;
  word-break: break-word;
  hyphens: auto;
}

@media (prefers-reduced-motion: reduce) {
  .viva-collection .viva-card:nth-child(4n + 2),
  .viva-collection .viva-card:nth-child(4n + 3),
  .viva-collection__related-item:nth-child(4n + 1) .viva-collection__related-link,
  .viva-collection__related-item:nth-child(4n + 2) .viva-collection__related-link,
  .viva-collection__related-item:nth-child(4n + 3) .viva-collection__related-link,
  .viva-collection__related-item:nth-child(4n + 4) .viva-collection__related-link {
    transform: none;
  }
}

/* Bandeau confiance + CTA final sur template collection (hors #MainContent.viva-home) */
body.template-collection .viva-trust-strip .trust {
  background: var(--viva-bg);
  padding: 14px 32px;
  border-bottom: 2px dashed var(--viva-cta-pale);
}
body.template-collection .viva-trust-strip .viva-trust-strip__desktop.trust-in {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  gap: 32px;
  flex-wrap: wrap;
  min-width: 0;
}
body.template-collection .viva-trust-strip .trust-i {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  font-weight: 600;
  color: var(--viva-ink-sub);
  flex: 0 1 auto;
  max-width: 100%;
  white-space: nowrap;
}
body.template-collection .viva-trust-strip .trust-i svg {
  width: 16px;
  height: 16px;
  stroke: var(--viva-cta);
  fill: none;
  stroke-width: 2;
  flex: 0 0 16px;
}

body.template-collection .viva-final-cta {
  background: var(--viva-ink);
  color: var(--viva-bg);
  padding: clamp(60px, 9vw, 100px) clamp(16px, 4vw, 32px);
  text-align: center;
  position: relative;
  overflow: hidden;
}
body.template-collection .viva-final-cta::before {
  content: "";
  position: absolute;
  top: -100px;
  right: -100px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(232, 152, 80, 0.15), transparent 70%);
  pointer-events: none;
}
body.template-collection .viva-final-cta::after {
  content: "";
  position: absolute;
  bottom: -150px;
  left: -100px;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(244, 169, 168, 0.1), transparent 70%);
  pointer-events: none;
}
body.template-collection .viva-final-cta__wrap {
  max-width: 680px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}
body.template-collection .viva-final-cta__overline {
  font-family: 'Caveat', cursive;
  font-size: clamp(24px, 3vw, 30px);
  color: var(--viva-cta);
  margin-bottom: 16px;
  display: block;
  line-height: 1.1;
}
body.template-collection .viva-final-cta__title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(32px, 5.5vw, 52px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.02em;
  margin: 0 0 24px;
  color: var(--viva-bg);
}
body.template-collection .viva-final-cta__title em {
  font-family: 'Fraunces', 'Georgia', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}
body.template-collection .viva-final-cta__sub {
  font-family: 'Nunito', sans-serif;
  font-size: clamp(15px, 1.6vw, 17px);
  color: rgba(250, 247, 242, 0.75);
  line-height: 1.7;
  max-width: 560px;
  margin: 0 auto 32px;
}
body.template-collection .viva-final-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-inline: auto;
  padding: 20px 40px;
  border-radius: 50px;
  background: var(--viva-cta);
  color: #fff !important;
  font-family: 'Fredoka', sans-serif;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.3s ease, background 0.2s ease;
  letter-spacing: 0.5px;
}
body.template-collection .viva-final-cta__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(232, 152, 80, 0.5);
  background: var(--viva-cta-dk);
  color: #fff !important;
}
body.template-collection .viva-final-cta__btn-icon {
  display: inline-block;
  transition: transform 0.2s ease;
}
body.template-collection .viva-final-cta__btn:hover .viva-final-cta__btn-icon {
  transform: translateX(4px);
}
body.template-collection .viva-final-cta__footnote {
  font-family: 'Nunito', sans-serif;
  font-size: 13px;
  color: rgba(250, 247, 242, 0.55);
  margin: 20px 0 0;
  letter-spacing: 0.3px;
}

/* ═══ PAGE PANIER ═══ */
.viva-cart {
  padding: clamp(24px, 4vw, 48px) clamp(16px, 4vw, 32px) clamp(64px, 8vw, 96px);
}

.viva-cart__wrap {
  max-width: 1200px;
  margin: 0 auto;
}

.viva-cart__head {
  text-align: center;
  margin-bottom: 40px;
}

.viva-cart .viva-overline {
  font-family: 'Caveat', cursive;
  font-size: clamp(20px, 2.5vw, 26px);
  color: var(--viva-cta);
  display: block;
  margin-bottom: 10px;
}

.viva-cart__title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 12px;
}

.viva-cart__title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}

.viva-cart__count {
  font-family: 'Nunito', sans-serif;
  font-size: 15px;
  color: var(--viva-ink-sub);
  margin: 0;
}

.viva-cart__grid {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 48px;
  align-items: flex-start;
}

@media (max-width: 880px) {
  .viva-cart__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

.viva-cart__items {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.viva-cart-item {
  display: grid;
  grid-template-columns: 120px 1fr auto;
  gap: 20px;
  padding: 20px;
  background: var(--viva-white);
  border-radius: 20px;
  box-shadow: var(--viva-shadow-card);
  align-items: start;
}

@media (max-width: 560px) {
  .viva-cart-item {
    grid-template-columns: 80px 1fr;
    gap: 14px;
    padding: 14px;
  }
  .viva-cart-item__price {
    grid-column: 2 / -1;
  }
}

.viva-cart-item__img-link {
  display: block;
  aspect-ratio: 1;
  border-radius: 12px;
  overflow: hidden;
  background: var(--viva-butter-pale);
}

.viva-cart-item__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.viva-cart-item__info {
  min-width: 0;
}

.viva-cart-item__title {
  font-family: 'Fredoka', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--viva-ink);
  margin: 0 0 4px;
  line-height: 1.3;
}

.viva-cart-item__title a {
  color: inherit;
  text-decoration: none;
}

.viva-cart-item__title a:hover {
  color: var(--viva-cta);
}

.viva-cart-item__variant {
  font-size: 13px;
  color: var(--viva-ink-sub);
  margin: 0 0 10px;
}

.viva-cart-item__controls {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.viva-cart-item__qty {
  display: inline-flex;
  align-items: center;
  border: 1.5px solid var(--viva-bg-dk);
  border-radius: 20px;
  overflow: hidden;
  background: var(--viva-bg-warm);
}

.viva-cart-item__qty-btn {
  width: 32px;
  height: 32px;
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: 'Fredoka', sans-serif;
  font-size: 18px;
  font-weight: 600;
  color: var(--viva-ink);
  transition: color 0.15s ease, background 0.15s ease;
}

.viva-cart-item__qty-btn:hover {
  color: var(--viva-cta);
  background: var(--viva-cta-pale);
}

.viva-cart-item__qty-input {
  width: 40px;
  height: 32px;
  border: none;
  background: transparent;
  text-align: center;
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--viva-ink);
  -moz-appearance: textfield;
}

.viva-cart-item__qty-input::-webkit-outer-spin-button,
.viva-cart-item__qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.viva-cart-item__remove {
  font-family: 'Nunito', sans-serif;
  font-size: 13px;
  color: var(--viva-ink-sub);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.viva-cart-item__remove:hover {
  color: var(--viva-cta);
}

.viva-cart-item__price {
  text-align: right;
  font-family: 'Fredoka', sans-serif;
}

.viva-cart-item__price-now {
  font-size: 17px;
  font-weight: 700;
  color: var(--viva-ink);
}

.viva-cart-item__price-was {
  display: block;
  font-size: 13px;
  color: var(--viva-ink-soft);
  text-decoration: line-through;
  margin-top: 2px;
  font-weight: normal;
}

/* Résumé panier (colonne droite) */
.viva-cart__summary {
  background: var(--viva-white);
  border-radius: 24px;
  padding: 28px;
  box-shadow: var(--viva-shadow-card);
  border-top: 4px solid var(--viva-cta);
  position: sticky;
  top: 120px;
}

@media (max-width: 880px) {
  .viva-cart__summary {
    position: static;
  }
}

.viva-cart__summary-title {
  font-family: 'Fredoka', sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--viva-ink);
  margin: 0 0 20px;
}

.viva-cart__summary-list {
  margin: 0 0 16px;
}

.viva-cart__summary-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 8px 0;
  font-size: 14px;
  color: var(--viva-ink);
}

.viva-cart__summary-row dt {
  font-family: 'Nunito', sans-serif;
  color: var(--viva-ink-sub);
}

.viva-cart__summary-row dd {
  font-family: 'Fredoka', sans-serif;
  font-weight: 600;
  margin: 0;
}

.viva-cart__summary-row--discount dd {
  color: var(--viva-mint);
}

.viva-cart__summary-row--total {
  border-top: 1.5px solid var(--viva-bg-dk);
  padding-top: 14px;
  margin-top: 8px;
}

.viva-cart__summary-row--total dt {
  font-family: 'Fredoka', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--viva-ink);
}

.viva-cart__summary-row--total dd {
  font-size: 22px;
  font-weight: 700;
  color: var(--viva-ink);
}

.viva-cart__summary-shipping {
  background: var(--viva-cta-pale);
  color: var(--viva-ink);
  padding: 12px 16px;
  border-radius: 14px;
  font-size: 13px;
  text-align: center;
  margin: 0 0 20px;
}

.viva-cart__summary-free {
  color: var(--viva-mint);
  font-weight: 700;
}

.viva-cart__note-label {
  display: block;
  font-family: 'Fredoka', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--viva-ink);
  margin-bottom: 8px;
}

.viva-cart__note {
  width: 100%;
  min-height: 60px;
  padding: 10px 14px;
  border: 1.5px solid var(--viva-bg-dk);
  border-radius: 12px;
  background: var(--viva-bg-warm);
  font-family: 'Nunito', sans-serif;
  font-size: 13px;
  color: var(--viva-ink);
  resize: vertical;
  margin-bottom: 20px;
  transition: border-color 0.2s ease;
}

.viva-cart__note:focus {
  outline: none;
  border-color: var(--viva-cta);
}

.viva-cart__checkout {
  width: 100%;
  justify-content: center;
  margin-bottom: 12px;
}

.viva-cart__continue {
  display: block;
  text-align: center;
  font-family: 'Nunito', sans-serif;
  font-size: 14px;
  color: var(--viva-ink-sub);
  text-decoration: underline;
  text-underline-offset: 2px;
  margin-bottom: 24px;
}

.viva-cart__continue:hover {
  color: var(--viva-cta);
}

.viva-cart__trust {
  padding-top: 20px;
  border-top: 1px solid var(--viva-bg-dk);
}

.viva-cart__trust-row {
  font-family: 'Nunito', sans-serif;
  font-size: 13px;
  color: var(--viva-ink-sub);
  margin: 0 0 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.viva-cart__trust-row:last-child {
  margin-bottom: 0;
}

.viva-cart__trust-row span {
  color: var(--viva-mint);
  font-weight: 700;
}

/* Panier vide */
.viva-cart__empty {
  text-align: center;
  padding: clamp(40px, 8vw, 80px) 20px;
  max-width: 560px;
  margin: 0 auto;
}

.viva-cart__empty-icon {
  font-family: 'Caveat', cursive;
  font-size: 72px;
  color: var(--viva-cta);
  line-height: 1;
  margin: 0 0 16px;
}

.viva-cart__empty-title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(24px, 4vw, 36px);
  font-weight: 700;
  color: var(--viva-ink);
  margin: 0 0 12px;
}

.viva-cart__empty-title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}

.viva-cart__empty-text {
  font-size: 15px;
  color: var(--viva-ink-sub);
  line-height: 1.6;
  margin: 0 0 24px;
}

/* ═══ PAGE 404 ═══ */
.viva-404 {
  padding: clamp(48px, 10vw, 120px) clamp(16px, 4vw, 32px);
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, var(--viva-bg) 0%, var(--viva-bg-warm) 100%);
}

.viva-404__wrap {
  max-width: 640px;
  text-align: center;
  margin: 0 auto;
  position: relative;
}

.viva-404__visual {
  position: relative;
  display: flex;
  justify-content: center;
  margin: 0 auto 24px;
  max-width: 560px;
}

.viva-404__code {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(80px, 18vw, 160px);
  font-weight: 700;
  color: var(--viva-cta);
  line-height: 1;
  letter-spacing: -0.04em;
  background: linear-gradient(135deg, var(--viva-cta) 0%, var(--viva-rose) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
}

.viva-404__image {
  display: block;
  width: min(100%, 560px);
  height: auto;
  margin: 0 auto;
  border-radius: 34px;
  border: 1px solid rgba(232, 152, 80, 0.18);
  box-shadow: 0 24px 70px rgba(74, 62, 54, 0.1);
}

.viva-404__sparkle {
  position: absolute;
  font-family: 'Caveat', cursive;
  font-size: 32px;
  color: var(--viva-cta);
  opacity: 0.7;
}

.viva-404__sparkle--1 {
  top: 10%;
  left: 20%;
  animation: floatSparkle 6s ease-in-out infinite;
}
.viva-404__sparkle--2 {
  top: 20%;
  right: 15%;
  font-size: 40px;
  animation: floatSparkle 7s ease-in-out infinite 1s;
}
.viva-404__sparkle--3 {
  bottom: 15%;
  right: 25%;
  animation: floatSparkle 8s ease-in-out infinite 2s;
}

@keyframes floatSparkle {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(8deg); }
}

.viva-404__overline {
  font-family: 'Caveat', cursive;
  font-size: clamp(20px, 2.5vw, 26px);
  color: var(--viva-cta);
  display: block;
  margin-bottom: 10px;
}

.viva-404__title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 16px;
}

.viva-404__title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}

.viva-404__sub {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(16px, 2vw, 19px);
  color: var(--viva-ink);
  line-height: 1.7;
  margin: 0 0 32px;
}

.viva-404__ctas {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 48px;
}

.viva-404__suggest {
  margin-top: 32px;
  padding-top: 32px;
  border-top: 1px solid var(--viva-bg-dk);
}

.viva-404__suggest-label {
  font-family: 'Caveat', cursive;
  font-size: 22px;
  color: var(--viva-cta);
  margin: 0 0 16px;
}

.viva-404__suggest-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

.viva-404__suggest-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 50px;
  background: var(--viva-white);
  color: var(--viva-ink);
  font-family: 'Fredoka', sans-serif;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  border: 1.5px solid var(--viva-bg-dk);
  transition: all 0.2s ease;
}

.viva-404__suggest-link:hover {
  border-color: var(--viva-cta);
  color: var(--viva-cta);
  transform: translateY(-2px);
}

.viva-404__suggest-icon {
  font-family: 'Caveat', cursive;
  color: var(--viva-cta);
  font-size: 18px;
}

.viva-404__quote {
  margin: 40px auto 0;
  padding: 24px;
  background: var(--viva-white);
  border-radius: 20px;
  max-width: 480px;
  border-left: 4px solid var(--viva-cta);
}

.viva-404__quote blockquote {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: 17px;
  color: var(--viva-ink);
  line-height: 1.5;
  margin: 0;
  border: none;
  padding: 0;
}

.viva-404__quote figcaption {
  font-family: 'Caveat', cursive;
  font-size: 18px;
  color: var(--viva-cta);
  margin-top: 10px;
}

/* ═══ PAGE GÉNÉRIQUE (page.json : about, CGV, etc.) ═══ */
.viva-page {
  padding: clamp(24px, 4vw, 48px) clamp(16px, 4vw, 32px) clamp(64px, 8vw, 96px);
}

.viva-page__wrap {
  max-width: 840px;
  margin: 0 auto;
}

.viva-page__head {
  text-align: center;
  margin-bottom: 48px;
}

.viva-page .viva-overline {
  font-family: 'Caveat', cursive;
  font-size: clamp(20px, 2.5vw, 26px);
  color: var(--viva-cta);
  display: block;
  margin-bottom: 10px;
}

.viva-page__title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1.08;
  letter-spacing: -0.02em;
  margin: 0 0 16px;
}

.viva-page__title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}

.viva-page__sub {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(17px, 2vw, 20px);
  color: var(--viva-ink);
  line-height: 1.7;
  max-width: 640px;
  margin: 0 auto;
}

.viva-page__content {
  font-family: 'Nunito', sans-serif;
  font-size: 16px;
  line-height: 1.8;
  color: var(--viva-ink);
}

.viva-page__content h2 {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(22px, 3vw, 28px);
  font-weight: 700;
  color: var(--viva-ink);
  margin: 40px 0 16px;
  letter-spacing: -0.01em;
}

.viva-page__content h2 em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}

.viva-page__content h3 {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 600;
  color: var(--viva-ink);
  margin: 32px 0 12px;
}

.viva-page__content p {
  margin: 0 0 16px;
}

.viva-page__content a {
  color: var(--viva-cta);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  transition: color 0.2s ease;
}

.viva-page__content a:hover {
  color: var(--viva-cta-dk);
}

/* Pages politiques Shopify natives : espacement titre H1 + zone lisible */
body.template-policy .shopify-policy__container,
body.template-policies .shopify-policy__container {
  max-width: 860px;
  padding-top: clamp(28px, 5vw, 56px);
  padding-bottom: clamp(56px, 8vw, 96px);
}

body.template-policy .shopify-policy__title,
body.template-policies .shopify-policy__title {
  margin-top: 0;
  margin-bottom: clamp(28px, 4vw, 44px);
  padding-top: clamp(8px, 1.5vw, 16px);
  padding-bottom: clamp(12px, 2vw, 24px);
}

body.template-policy .shopify-policy__title h1,
body.template-policies .shopify-policy__title h1 {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: clamp(8px, 1.25vw, 16px);
  padding-bottom: clamp(8px, 1.25vw, 16px);
  line-height: 1.2;
}

body.template-policy .shopify-policy__body,
body.template-policies .shopify-policy__body {
  margin-top: clamp(8px, 1.5vw, 16px);
}

body.template-policy .shopify-policy__body .rte > :first-child,
body.template-policies .shopify-policy__body .rte > :first-child {
  margin-top: 0;
}

@media (max-width: 749px) {
  body.template-policy .shopify-policy__container,
  body.template-policies .shopify-policy__container {
    padding-top: 26px;
  }

  body.template-policy .shopify-policy__title,
  body.template-policies .shopify-policy__title {
    margin-bottom: 24px;
    padding-top: 6px;
    padding-bottom: 16px;
  }

  body.template-policy .shopify-policy__title h1,
  body.template-policies .shopify-policy__title h1 {
    padding-top: 8px;
    padding-bottom: 8px;
  }
}

.viva-page__content ul,
.viva-page__content ol {
  margin: 0 0 16px;
  padding-left: 24px;
}

.viva-page__content li {
  margin-bottom: 6px;
}

.viva-page__content blockquote {
  margin: 24px 0;
  padding: 20px 24px;
  background: var(--viva-bg-warm);
  border-left: 4px solid var(--viva-cta);
  border-radius: 12px;
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: 17px;
  line-height: 1.6;
  color: var(--viva-ink);
}

.viva-page__content img {
  max-width: 100%;
  height: auto;
  border-radius: 16px;
  margin: 20px 0;
}

.viva-page__trust {
  margin: 48px 0;
  padding: 24px;
  background: var(--viva-bg-warm);
  border-radius: 20px;
  display: flex;
  justify-content: center;
  gap: 32px;
  flex-wrap: wrap;
}

.viva-page__trust-item {
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--viva-ink);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.viva-page__trust-item span {
  color: var(--viva-cta);
  font-weight: 700;
}

/* Page « Suivre ma commande » (portail Shopify) */
.viva-order-status__panel {
  margin: 40px 0 32px;
}
.viva-order-status__panel-inner {
  max-width: 640px;
  margin: 0 auto;
  padding: 28px 24px;
  background: var(--viva-bg-warm);
  border-radius: 20px;
  border: 1px solid rgba(232, 152, 80, 0.22);
  text-align: center;
}
.viva-order-status__lead {
  font-family: 'Nunito', sans-serif;
  font-size: 16px;
  line-height: 1.55;
  color: var(--viva-ink);
  margin: 0 0 20px;
}
.viva-order-status__cta-wrap {
  margin: 0 0 20px;
}
.viva-order-status__links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 20px;
  font-family: 'Nunito', sans-serif;
  font-size: 15px;
}
.viva-order-status__links a {
  color: var(--viva-cta);
  font-weight: 700;
  text-decoration: none;
}
.viva-order-status__links a:hover {
  text-decoration: underline;
}
.viva-page__trust-item a {
  color: var(--viva-cta);
  font-weight: 700;
}

.viva-page__cta {
  text-align: center;
  margin-top: 48px;
}

/* ═══ MINICART — skin aux couleurs Viva ═══ */
body .cart-drawer,
body .mini-cart,
body #CartDrawer,
body [data-cart-drawer] {
  background: var(--viva-bg);
  color: var(--viva-ink);
  font-family: 'Nunito', sans-serif;
}

body .cart-drawer__title,
body .mini-cart__title,
body .cart-drawer-title {
  font-family: 'Fredoka', sans-serif;
  font-weight: 700;
  color: var(--viva-ink);
  font-size: 20px;
}

body .cart-drawer .btn,
body .mini-cart .btn-cta,
body .cart-drawer__checkout {
  background: var(--viva-cta) !important;
  color: #fff !important;
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 700 !important;
  border-radius: 50px !important;
  border: none !important;
  transition: background 0.2s ease, transform 0.2s ease !important;
}

body .cart-drawer .btn:hover,
body .mini-cart .btn-cta:hover,
body .cart-drawer__checkout:hover {
  background: var(--viva-cta-dk) !important;
  transform: translateY(-1px) !important;
}

/* Buttons CTA globaux pour toutes les pages non-homepage */
body:not(.viva-homepage) .viva-btn-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 32px;
  border-radius: 50px;
  background: var(--viva-cta);
  color: #fff;
  font-family: 'Fredoka', sans-serif;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.3s ease, background 0.2s ease;
  box-shadow: 0 4px 20px rgba(232, 152, 80, 0.25);
  border: none;
  cursor: pointer;
}

body:not(.viva-homepage) .viva-btn-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(232, 152, 80, 0.35);
  background: var(--viva-cta-dk);
}

body:not(.viva-homepage) .viva-btn-cta__icon {
  display: inline-block;
  transition: transform 0.2s ease;
}

body:not(.viva-homepage) .viva-btn-cta:hover .viva-btn-cta__icon {
  transform: translateX(3px);
}

body:not(.viva-homepage) .viva-btn-sec {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 26px;
  border-radius: 50px;
  border: 2px solid var(--viva-bg-dk);
  background: var(--viva-white);
  color: var(--viva-ink);
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
}

body:not(.viva-homepage) .viva-btn-sec:hover {
  border-color: var(--viva-cta);
  color: var(--viva-cta);
  background: var(--viva-cta-pale);
}

/* Editorial text (Fraunces italic) pour toutes les pages */
.viva-editorial {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  line-height: 1.7;
}

/* Responsive polish */
@media (max-width: 520px) {
  .viva-collection__head,
  .viva-cart__head,
  .viva-page__head {
    padding: 0 8px;
  }
  .viva-404__code {
    font-size: 100px;
  }
  .viva-404__sparkle {
    display: none;
  }
}

/* Respect des préférences motion */
@media (prefers-reduced-motion: reduce) {
  .viva-404__sparkle,
  .viva-404__sparkle--1,
  .viva-404__sparkle--2,
  .viva-404__sparkle--3 {
    animation: none !important;
  }
}

/* Préchargement des fonts sur les templates non-index
   (le theme.liquid ne charge Fraunces que sur la homepage - on reprend ici) */
body.template-collection,
body.template-cart,
body.template-404,
body.template-page {
  /* Les fonts sont chargées via @import dans la section head du theme
     (voir theme.liquid - préchargement homepage uniquement).
     On va charger aussi sur ces pages via un import CSS. */
}

/* @import des fonts pour les pages non-homepage.
   Fonctionne en plus du preload homepage pour éviter le FOUC ailleurs. */
@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@500;700&family=Fraunces:ital,wght@1,300&family=Fredoka:wght@400;500;600;700&family=Nunito:wght@400;500;600;700&display=swap');


/* ═══ MINICART — skin Viva (cible les vraies classes du thème) ═══ */
body .minicart-section {
  background: var(--viva-bg);
  color: var(--viva-ink);
  font-family: 'Nunito', sans-serif;
}

body .minicart-container {
  --color_bg_minicart: var(--viva-bg) !important;
  --color_text_minicart: var(--viva-ink) !important;
}

body .minicart-section h1,
body .minicart-section h2,
body .minicart-section h3,
body .minicart-section .section-title,
body .minicart-section .minicart__title {
  font-family: 'Fredoka', sans-serif;
  font-weight: 700;
  color: var(--viva-ink);
  letter-spacing: -0.01em;
}

body .minicart-section .btn,
body .minicart-section button[type="submit"],
body .minicart-section .btn-atc,
body .minicart-section .btn--primary {
  background: var(--viva-cta) !important;
  color: #fff !important;
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 700 !important;
  border-radius: 50px !important;
  border: none !important;
  transition: background 0.2s ease, transform 0.2s ease !important;
  text-transform: none !important;
  letter-spacing: 0.3px !important;
}

body .minicart-section .btn:hover,
body .minicart-section button[type="submit"]:hover,
body .minicart-section .btn-atc:hover {
  background: var(--viva-cta-dk) !important;
  transform: translateY(-1px) !important;
}

body .mini-cart-item,
body .minicart-item {
  background: var(--viva-white);
  border-radius: 14px;
  padding: 12px;
  margin-bottom: 10px;
  box-shadow: var(--viva-shadow-card);
}

body .mini-cart-item img,
body .minicart-item img {
  border-radius: 10px;
}

body .minicart-footer {
  background: var(--viva-bg-warm);
  border-top: 2px solid var(--viva-cta-pale);
  border-radius: 16px 16px 0 0;
}

body .minicart-section .price,
body .minicart-section .money {
  font-family: 'Fredoka', sans-serif;
  font-weight: 700;
  color: var(--viva-ink);
}

body .minicart-section .cart-count,
body .minicart-section .cart-link__bubble {
  background: var(--viva-cta) !important;
  color: #fff !important;
  font-family: 'Fredoka', sans-serif !important;
}

/* ============================================================
   Viva Capybara — LOT 3 EXTENSION (templates collection/cart/404/page)
   Styles appliqués sur tout le site, pas uniquement la homepage
   ============================================================ */

/* ═══ VARIABLES ÉTENDUES AU SITE ENTIER ═══ */
body {
  /* Re-déclaration hors de .viva-homepage pour que collection/cart/etc en bénéficient */
  --viva-bg: #FAF7F2;
  --viva-bg-warm: #FFF5EE;
  --viva-bg-dk: #E8E2D8;
  --viva-white: #FFFFFF;
  --viva-butter: #F5E6A3;
  --viva-butter-pale: #FDF6E0;
  --viva-butter-mid: #FBEDB8;
  --viva-lavender: #C8B8E8;
  --viva-lavender-pale: #F0ECF8;
  --viva-ink: #2C2420;
  --viva-ink-lt: #4A3E36;
  --viva-ink-sub: #7A6B5D;
  --viva-ink-soft: #A89884;
  --viva-cta: #E89850;
  --viva-cta-h: #D68840;
  --viva-cta-lt: #F0B878;
  --viva-cta-pale: #FDF0E0;
  --viva-cta-dk: #C97A35;
  --viva-mint: #8EBB8E;
  --viva-mint-pale: #E4F0E4;
  --viva-alert: #E8907A;
  --viva-alert-pale: #FFF0EB;
  --viva-soft: #A8D4E6;
  --viva-soft-dk: #5A9AB5;
  --viva-soft-pale: #E4F2F8;
  --viva-rose: #F4A9A8;
  --viva-rose-pale: #FDEAEA;
  --viva-peach: #F8D8C8;
  --viva-capy: #B5926B;
  --viva-capy-lt: #CBAA88;
  --viva-capy-dk: #8B6B4A;
  --viva-shadow-warm: rgba(61, 43, 31, 0.06);
  --viva-shadow-card: 0 4px 20px rgba(61, 43, 31, 0.08);
  --viva-shadow-card-hover: 0 8px 32px rgba(61, 43, 31, 0.12);
}

/* Utils disponibles partout */
.sr-only,
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ═══ PATTERN <em> FRAUNCES UNIVERSEL ═══ */
.viva-overline {
  font-family: 'Caveat', cursive;
  font-size: clamp(18px, 2vw, 24px);
  font-weight: 500;
  color: var(--viva-cta);
  line-height: 1.1;
  display: block;
  margin-bottom: 10px;
  letter-spacing: 0.02em;
}

.viva-editorial {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  line-height: 1.7;
}

.viva-btn-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 32px;
  border-radius: 50px;
  background: var(--viva-cta);
  color: #fff;
  font-family: 'Fredoka', sans-serif;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.3s ease, background 0.2s ease;
  box-shadow: 0 4px 20px rgba(232, 152, 80, 0.25);
  letter-spacing: 0.3px;
  border: none;
  cursor: pointer;
}
.viva-btn-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(232, 152, 80, 0.35);
  background: var(--viva-cta-dk);
}
.viva-btn-cta__icon {
  display: inline-block;
  transition: transform 0.2s ease;
}
.viva-btn-cta:hover .viva-btn-cta__icon {
  transform: translateX(3px);
}

.viva-btn-sec {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 26px;
  border-radius: 50px;
  border: 2px solid var(--viva-bg-dk);
  background: var(--viva-white);
  color: var(--viva-ink);
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
}
.viva-btn-sec:hover {
  border-color: var(--viva-cta);
  color: var(--viva-cta);
  background: var(--viva-cta-pale);
}

/* ═══ BREADCRUMB VISUEL ═══ */
.viva-breadcrumb {
  padding: 20px 0 12px;
  font-family: 'Nunito', sans-serif;
}
.viva-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 0;
  margin: 0;
  list-style: none;
}
.viva-breadcrumb__item {
  font-size: 13px;
  color: var(--viva-ink-sub);
  display: flex;
  align-items: center;
  gap: 8px;
}
.viva-breadcrumb__item:not(:first-child)::before {
  content: "›";
  color: var(--viva-ink-soft);
  font-size: 14px;
}
.viva-breadcrumb__item a {
  color: var(--viva-ink-sub);
  text-decoration: none;
  transition: color 0.2s ease;
}
.viva-breadcrumb__item a:hover {
  color: var(--viva-cta);
}
.viva-breadcrumb__item--current {
  color: var(--viva-ink);
  font-weight: 600;
}

/* ═══ PAGE PANIER ═══ */
.viva-cart {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 32px) 60px;
  font-family: 'Nunito', sans-serif;
  color: var(--viva-ink);
}
.viva-cart__head {
  text-align: center;
  padding: clamp(24px, 4vw, 48px) 0 clamp(24px, 4vw, 40px);
}
.viva-cart__title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0 0 8px;
}
.viva-cart__title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}
.viva-cart__count {
  font-family: 'Nunito', sans-serif;
  font-size: 15px;
  color: var(--viva-ink-sub);
  margin: 0;
}
.viva-cart__grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 48px;
  align-items: start;
}
@media (max-width: 880px) {
  .viva-cart__grid { grid-template-columns: 1fr; gap: 32px; }
}
.viva-cart__items {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.viva-cart-item {
  display: grid;
  grid-template-columns: 120px 1fr auto;
  gap: 20px;
  padding: 20px;
  background: var(--viva-white);
  border-radius: 16px;
  box-shadow: var(--viva-shadow-card);
  align-items: start;
}
@media (max-width: 520px) {
  .viva-cart-item { grid-template-columns: 80px 1fr; gap: 12px; padding: 14px; }
  .viva-cart-item__price { grid-column: 2; text-align: left; }
}
.viva-cart-item__img-link {
  display: block;
  border-radius: 12px;
  overflow: hidden;
  background: var(--viva-butter-pale);
}
.viva-cart-item__img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  display: block;
}
.viva-cart-item__info { min-width: 0; }
.viva-cart-item__title {
  font-family: 'Fredoka', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--viva-ink);
  margin: 0 0 4px;
  line-height: 1.3;
}
.viva-cart-item__title a { color: inherit; text-decoration: none; }
.viva-cart-item__title a:hover { color: var(--viva-cta); }
.viva-cart-item__variant,
.viva-cart-item__plan {
  font-size: 12px;
  color: var(--viva-ink-sub);
  margin: 0 0 12px;
}
.viva-cart-item__controls {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 8px;
  flex-wrap: wrap;
}
.viva-cart-item__qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--viva-bg-dk);
  border-radius: 24px;
  overflow: hidden;
}
.viva-cart-item__qty-btn {
  width: 32px;
  height: 32px;
  border: none;
  background: transparent;
  color: var(--viva-ink);
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease;
}
.viva-cart-item__qty-btn:hover {
  background: var(--viva-cta-pale);
  color: var(--viva-cta-dk);
}
.viva-cart-item__qty-input {
  width: 40px;
  text-align: center;
  border: none;
  background: transparent;
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--viva-ink);
  -moz-appearance: textfield;
}
.viva-cart-item__qty-input::-webkit-outer-spin-button,
.viva-cart-item__qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.viva-cart-item__remove {
  font-family: 'Nunito', sans-serif;
  font-size: 13px;
  color: var(--viva-ink-sub);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.viva-cart-item__remove:hover { color: var(--viva-alert); }
.viva-cart-item__price { text-align: right; }
.viva-cart-item__price-now {
  font-family: 'Fredoka', sans-serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--viva-ink);
  display: block;
}
.viva-cart-item__price-was {
  font-size: 13px;
  color: var(--viva-ink-sub);
  text-decoration: line-through;
  display: block;
}

/* Summary (colonne droite) */
.viva-cart__summary {
  background: var(--viva-white);
  border-radius: 20px;
  padding: 32px;
  box-shadow: var(--viva-shadow-card);
  position: sticky;
  top: 120px;
}
@media (max-width: 880px) {
  .viva-cart__summary { position: static; }
}
.viva-cart__summary-title {
  font-family: 'Fredoka', sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--viva-ink);
  margin: 0 0 20px;
}
.viva-cart__summary-list {
  margin: 0 0 20px;
  padding: 0 0 20px;
  border-bottom: 1px solid var(--viva-bg-dk);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.viva-cart__summary-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 14px;
  color: var(--viva-ink-lt);
}
.viva-cart__summary-row dt { margin: 0; }
.viva-cart__summary-row dd { margin: 0; font-weight: 600; }
.viva-cart__summary-row--discount { color: var(--viva-cta-dk); }
.viva-cart__summary-row--total {
  padding-top: 10px;
  border-top: 1px solid var(--viva-bg-dk);
  font-family: 'Fredoka', sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--viva-ink);
}
.viva-cart__summary-shipping {
  font-size: 13px;
  color: var(--viva-ink-sub);
  text-align: center;
  margin: 0 0 24px;
  padding: 12px;
  background: var(--viva-bg-warm);
  border-radius: 12px;
}
.viva-cart__summary-shipping strong {
  color: var(--viva-cta-dk);
}
.viva-cart__summary-free {
  color: var(--viva-mint);
  font-weight: 700;
}
.viva-cart__note-label {
  display: block;
  font-family: 'Fredoka', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--viva-ink);
  margin: 0 0 8px;
}
.viva-cart__note {
  width: 100%;
  padding: 12px;
  border: 1px solid var(--viva-bg-dk);
  border-radius: 12px;
  font-family: 'Nunito', sans-serif;
  font-size: 14px;
  resize: vertical;
  margin-bottom: 20px;
}
.viva-cart__note:focus {
  outline: none;
  border-color: var(--viva-cta);
  box-shadow: 0 0 0 2px var(--viva-cta-pale);
}
.viva-cart__checkout {
  width: 100%;
  justify-content: center;
  padding: 18px 24px;
  font-size: 16px;
}
.viva-cart__continue {
  display: block;
  text-align: center;
  margin: 16px 0 24px;
  font-family: 'Nunito', sans-serif;
  font-size: 13px;
  color: var(--viva-ink-sub);
  text-decoration: none;
}
.viva-cart__continue:hover {
  color: var(--viva-cta);
}
.viva-cart__trust {
  padding-top: 20px;
  border-top: 1px solid var(--viva-bg-dk);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.viva-cart__trust-row {
  font-size: 12px;
  color: var(--viva-ink-sub);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}
.viva-cart__trust-row span {
  color: var(--viva-mint);
  font-weight: 700;
}

/* Page panier (/cart) — coquille marque avant le checkout Shopify hébergé */
body.viva-template-cart {
  background-color: var(--viva-bg, #faf7f2);
}
body.viva-template-cart #MainContent,
body.viva-template-cart .shopify-section,
body.viva-template-cart .viva-cart-wrapper {
  background: transparent;
}
body.viva-template-cart .viva-cart__summary {
  border: 1px solid rgba(232, 152, 80, 0.22);
  background: linear-gradient(180deg, #fff 0%, var(--viva-bg-warm, #fff5ee) 100%);
}
body.viva-template-cart .viva-cart__summary-title {
  letter-spacing: -0.02em;
}
body.viva-template-cart .viva-cart__checkout {
  font-family: 'Fredoka', sans-serif;
  font-weight: 700;
  letter-spacing: 0.02em;
}

/* ═══ PAGE 404 ═══ */
.viva-404 {
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(48px, 8vw, 96px) clamp(16px, 4vw, 32px);
  text-align: center;
  font-family: 'Nunito', sans-serif;
  color: var(--viva-ink);
}
.viva-404__code,
.viva-404__visual {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(96px, 20vw, 180px);
  font-weight: 700;
  color: var(--viva-cta);
  line-height: 1;
  letter-spacing: -0.05em;
  margin: 0 0 16px;
  position: relative;
  display: inline-block;
  opacity: 0.6;
}
.viva-404__sparkle {
  position: absolute;
  color: var(--viva-cta);
  font-size: 24px;
  opacity: 0.8;
  animation: viva-sparkle 3s ease-in-out infinite;
}
.viva-404__sparkle--1 { top: 20%; left: -30px; }
.viva-404__sparkle--2 { top: 60%; right: -20px; animation-delay: 1s; }
.viva-404__sparkle--3 { bottom: 10%; left: 40%; animation-delay: 2s; }
@keyframes viva-sparkle {
  0%, 100% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
}
.viva-404__overline {
  margin-bottom: 12px;
}
.viva-404__title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 16px;
}
.viva-404__title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}
.viva-404__sub {
  font-size: clamp(16px, 1.8vw, 19px);
  color: var(--viva-ink-sub);
  line-height: 1.7;
  margin: 0 auto 32px;
  max-width: 540px;
}
.viva-404__search {
  display: flex;
  max-width: 480px;
  margin: 0 auto 32px;
  background: var(--viva-white);
  border-radius: 50px;
  padding: 6px;
  box-shadow: var(--viva-shadow-card);
}
.viva-404__search-input {
  flex: 1;
  padding: 12px 20px;
  border: none;
  background: transparent;
  font-family: 'Nunito', sans-serif;
  font-size: 15px;
  color: var(--viva-ink);
  border-radius: 44px;
}
.viva-404__search-input:focus {
  outline: none;
}
.viva-404__search-btn {
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: var(--viva-cta);
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease;
}
.viva-404__search-btn:hover { background: var(--viva-cta-dk); }
.viva-404__ctas,
.viva-404__links-list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 0;
  margin: 0;
  list-style: none;
}
.viva-404__links-label {
  font-family: 'Caveat', cursive;
  font-size: 22px;
  color: var(--viva-ink-sub);
  margin: 32px 0 12px;
}
.viva-404__suggest {
  margin-top: 32px;
}

/* ═══ PAGE CONTENU (page.json) ═══ */
.viva-page {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 32px) 60px;
  font-family: 'Nunito', sans-serif;
  color: var(--viva-ink);
}
.viva-page__wrap {
  position: relative;
}
.viva-page__head {
  text-align: center;
  padding: clamp(24px, 4vw, 48px) 0 clamp(32px, 4vw, 48px);
}
.viva-page__title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0 0 16px;
}
.viva-page__title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}
.viva-page__intro,
.viva-page__sub {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(17px, 2vw, 20px);
  color: var(--viva-ink);
  line-height: 1.7;
  margin: 0 auto;
  max-width: 640px;
}
.viva-page__body {
  font-family: 'Nunito', sans-serif;
  color: var(--viva-ink-lt);
  line-height: 1.8;
  font-size: 16px;
}
.viva-page__body h2 {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(22px, 3vw, 30px);
  color: var(--viva-ink);
  margin: 40px 0 16px;
  font-weight: 700;
}
.viva-page__body h3 {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(18px, 2.3vw, 22px);
  color: var(--viva-ink);
  margin: 28px 0 12px;
  font-weight: 600;
}
.viva-page__body p { margin: 0 0 16px; }
.viva-page__body a {
  color: var(--viva-cta-dk);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.viva-page__body ul,
.viva-page__body ol { padding-left: 24px; margin: 0 0 16px; }
.viva-page__body li { margin: 0 0 8px; }
.viva-page__body blockquote {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.6;
  color: var(--viva-ink);
  padding: 20px 24px;
  margin: 24px 0;
  border-left: 4px solid var(--viva-cta);
  background: var(--viva-bg-warm);
  border-radius: 0 12px 12px 0;
}
.viva-page__footer-cta {
  margin-top: 48px;
  padding: 32px;
  background: var(--viva-bg-warm);
  border-radius: 20px;
  text-align: center;
}
.viva-page__footer-text {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: 18px;
  color: var(--viva-ink);
  margin: 0 0 20px;
}

/* ═══ MINICART SKIN (appliqué depuis le JS existant) ═══
   Le minicart Shopify utilise déjà certaines classes. On surcharge avec notre palette. */
.minicart,
.viva-homepage .minicart,
body .minicart {
  --minicart-bg: var(--viva-bg);
  --minicart-text: var(--viva-ink);
  --minicart-accent: var(--viva-cta);
  font-family: 'Nunito', sans-serif !important;
  color: var(--viva-ink) !important;
}
.minicart .h1,
.minicart .h2,
.minicart .h3,
.minicart .h4,
.minicart .section-title,
.minicart .minicart__title {
  font-family: 'Fredoka', sans-serif !important;
  color: var(--viva-ink) !important;
  letter-spacing: -0.01em;
}
.minicart .btn,
.minicart button[type="submit"],
.minicart .button,
.minicart input[type="submit"] {
  font-family: 'Fredoka', sans-serif !important;
  border-radius: 50px !important;
  background: var(--viva-cta) !important;
  color: #fff !important;
  border: none !important;
  font-weight: 700 !important;
  transition: background 0.2s ease !important;
}
.minicart .btn:hover,
.minicart button[type="submit"]:hover {
  background: var(--viva-cta-dk) !important;
}
.minicart a {
  color: var(--viva-cta-dk);
}
.minicart .cart-item__title,
.minicart .cart__product-title {
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 600 !important;
}
.minicart .cart-item__price,
.minicart .cart__product-price {
  color: var(--viva-ink) !important;
}

/* ═══ HEADER « HONEY » (grille 3 col + rangée nav, sections/header-line) — tout le site ═══ */
#shopify-header-section {
  --viva-hdr-cta: #e89850;
  --viva-hdr-cta-pale: #fdf0e0;
  --viva-hdr-ink: #2c2420;
  --viva-hdr-ink-sub: #7a6b5d;
}
#shopify-header-section .section-container.viva-header-honey {
  border-bottom: 2px dashed var(--viva-hdr-cta-pale) !important;
  box-sizing: border-box;
}
#shopify-header-section .viva-hdr-grid {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 10px;
  width: 100%;
}
#shopify-header-section .viva-hdr__side--left,
#shopify-header-section .viva-hdr__side--right {
  flex: 0 1 auto;
  min-width: 0;
}
#shopify-header-section .viva-hdr__logo {
  flex: 1 1 auto;
  min-width: 0;
  text-align: center;
}
/* Mobile : marge verticale max 5px autour de la barre header / logo (surcharge padding section) */
@media only screen and (max-width: 779px) {
  #shopify-header-section .section-container.viva-header-honey {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
  }
  #shopify-header-section .viva-hdr__logo,
  #shopify-header-section .viva-hdr__logo .header__logo_content {
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 0;
    margin-bottom: 0;
  }

  /* Grille 1fr / auto / 1fr : colonnes latérales symétriques → le logo (auto) reste au centre réel de l’écran
     (évite l’effet de grille minmax(auto) où une zone gauche plus large décale le bloc central). */
  #shopify-header-section .viva-hdr-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 10px;
    row-gap: 0;
    width: 100%;
    box-sizing: border-box;
  }
  #shopify-header-section .viva-hdr__side--left {
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
    align-self: center;
    min-width: 0;
    /* Au-dessus du bloc logo (z-index 1) pour que le burger / icônes restent cliquables */
    position: relative;
    z-index: 4;
  }
  #shopify-header-section .viva-hdr__logo {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    align-self: center;
    /* Largeur réelle pilotée par le thème (--viva-hdr-logo-mob / logo_max_width_mob),
       bornée au viewport après réserve gauche-droite (~2×47px + gaps + safe-area) */
    --viva-logo-mob-cap: min(
      var(--viva-hdr-logo-mob, var(--logo_max_width_mob, 240px)),
      calc(100vw - max(118px, (env(safe-area-inset-left, 0px) + env(safe-area-inset-right, 0px)) + 108px))
    );
    width: var(--viva-logo-mob-cap) !important;
    max-width: var(--viva-logo-mob-cap) !important;
    flex: unset;
    position: relative;
    z-index: 1;
  }
  #shopify-header-section .viva-hdr__side--right {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    align-self: center;
    min-width: 0;
    position: relative;
    z-index: 4;
  }
  #shopify-header-section .viva-hdr__menu-block {
    grid-column: 1 / -1;
    grid-row: 2;
  }
  /* Nav desktop : le thème utilise .md--hide (max-width 779px) ; on renforce au cas où une surcharge réafficherait la barre. */
  #shopify-header-section .viva-hdr__menu-block.md--hide,
  #shopify-header-section .menu_links.md--hide {
    display: none !important;
  }
  /* Espacement latéral minimal si le padding thème (md--p-mob) est faible */
  #shopify-header-section .viva-header-honey .page-width {
    padding-left: max(12px, env(safe-area-inset-left, 0px)) !important;
    padding-right: max(12px, env(safe-area-inset-right, 0px)) !important;
  }
  /* Zone tactile confortable + centrage vertical des icônes */
  #shopify-header-section .viva-hdr__side .icons_container {
    align-items: center !important;
  }
  #shopify-header-section .viva-hdr__side .header__hamburger,
  #shopify-header-section .viva-hdr__side .header__hamburger .menu--hamburger--container,
  #shopify-header-section .viva-hdr__side .cart-container,
  #shopify-header-section .viva-hdr__side .header__main-link[href*="cart"],
  #shopify-header-section .viva-hdr__side .menu-drawer.cart-container,
  #shopify-header-section .viva-hdr__side .menu-drawer .cart-toggle,
  #shopify-header-section .viva-hdr__side details.minicart > .cart-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  #shopify-header-section .viva-hdr__side .header__hamburger,
  #shopify-header-section .viva-hdr__side .menu--hamburger--container,
  #shopify-header-section .viva-hdr__side .cart-container a.header__main-link,
  #shopify-header-section .viva-hdr__side .menu-drawer .cart-toggle,
  #shopify-header-section .viva-hdr__side details.minicart > .cart-toggle {
    min-width: 44px;
    min-height: 44px;
  }
  #shopify-header-section .viva-hdr__side .header__hamburger {
    flex: 0 0 auto;
  }
  #shopify-header-section .viva-hdr__logo .image-container,
  #shopify-header-section .viva-hdr__logo a.image-container {
    line-height: 0;
    width: 100% !important;
    max-width: 100% !important;
  }
  #shopify-header-section .viva-hdr__logo img {
    vertical-align: bottom;
    max-width: 100% !important;
    width: 100% !important;
    height: auto !important;
    display: block;
    margin-inline: auto;
    object-fit: contain;
    object-position: center;
  }
  /* Même bloc que ci-dessus : .one-whole ne doit pas remettre width:auto (écrase --viva-logo-mob-cap). */
  #shopify-header-section .viva-hdr__logo.header__logo.one-whole {
    width: var(--viva-logo-mob-cap) !important;
    max-width: var(--viva-logo-mob-cap) !important;
    flex: 0 1 auto !important;
  }
  #shopify-header-section .viva-hdr__logo .header__logo_content.one-whole {
    box-sizing: border-box;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 1 auto !important;
  }

  /* header-lines.liquid : bloc logo sans classe viva-hdr__logo */
  #shopify-header-section .header__logo.main_nav .header__logo_content.one-whole {
    box-sizing: border-box;
    max-width: min(
      100%,
      var(--viva-hdr-logo-mob, var(--logo_max_width_mob, 240px)),
      calc(100vw - max(118px, (env(safe-area-inset-left, 0px) + env(safe-area-inset-right, 0px)) + 108px))
    ) !important;
    width: 100% !important;
  }

  /* header-lines sans grille Viva sur la première ligne mobile : même plafond + image fluide */
  #shopify-header-section .header__logo.main_nav .header__logo_content.one-whole img {
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain;
    object-position: center;
  }

  /* Variante section header-sidebar (mobile) : le bloc logo ne doit pas être écrasé par flex */
  .header__sidebar-mobile.inline-flex .header__logo.one-whole,
  .header__sidebar-mobile .menu-drawer__header .header__logo {
    width: auto !important;
    flex: 1 1 auto !important;
    min-width: min(56px, 20vw);
    max-width: 100%;
    justify-content: center;
  }
  .header__sidebar-mobile .header__logo .header__logo_content {
    box-sizing: border-box;
    width: 100% !important;
    max-width: min(
      100%,
      var(--viva-hdr-logo-mob, var(--logo_max_width_mob, 240px)),
      calc(100vw - max(118px, (env(safe-area-inset-left, 0px) + env(safe-area-inset-right, 0px)) + 108px))
    ) !important;
  }

  .header__sidebar-mobile .header__logo .header__logo_content img,
  .header__sidebar-mobile .header__logo .header__logo_content .image-container img {
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    object-fit: contain;
    object-position: center;
  }

  /* Variante section header-sidebar (mobile) : alignement + marges */
  .header__sidebar-mobile.inline-flex {
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    gap: 8px 12px !important;
    padding-left: max(12px, env(safe-area-inset-left, 0px)) !important;
    padding-right: max(12px, env(safe-area-inset-right, 0px)) !important;
  }
  .header__sidebar-mobile .header__hamburger,
  .header__sidebar-mobile .menu--hamburger--container,
  .header__sidebar-mobile .cart-container .cart-toggle,
  .header__sidebar-mobile .cart-container a.header__main-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 44px;
    min-height: 44px;
  }
  .header__sidebar-mobile .header__hamburger {
    flex: 0 0 auto;
  }
  .header__sidebar-mobile .header__logo {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: min(56px, 20vw);
  }
}
#shopify-header-section .viva-hdr__menu-block {
  flex: 0 0 100%;
  width: 100%;
  order: 4;
}
@media only screen and (min-width: 780px) {
  /* PC : barre header + logo serrés — lu--p sur .page-width ajoutait trop de marge verticale */
  #shopify-header-section .section-container.viva-header-honey {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }
  #shopify-header-section .section-container.viva-header-honey .page-width {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  #shopify-header-section .viva-hdr__logo,
  #shopify-header-section .viva-hdr__logo .header__logo_content {
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 0;
    margin-bottom: 0;
  }
  /* Évite l’air sous le logo (image ratio + line-height) */
  #shopify-header-section .viva-hdr__logo .image-container {
    line-height: 0;
  }
  #shopify-header-section .viva-hdr__logo img {
    vertical-align: bottom;
  }
  #shopify-header-section .viva-hdr-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: clamp(12px, 2vw, 32px);
    row-gap: 0;
    padding-top: 0;
    padding-bottom: 0;
  }
  #shopify-header-section .viva-hdr__side--left {
    grid-column: 1;
    grid-row: 1;
    order: unset;
    width: auto;
    flex: unset;
  }
  #shopify-header-section .viva-hdr__logo {
    grid-column: 2;
    grid-row: 1;
    order: unset;
    width: auto;
    flex-basis: auto;
  }
  #shopify-header-section .viva-hdr__logo .header__logo_content.one-whole {
    max-width: min(100%, var(--viva-hdr-logo-desk, var(--logo_max_width, 280px))) !important;
  }
  #shopify-header-section .header__logo.main_nav .header__logo_content.one-whole {
    max-width: min(100%, var(--viva-hdr-logo-desk, var(--logo_max_width, 280px))) !important;
  }
  #shopify-header-section .viva-hdr__side--right {
    grid-column: 3;
    grid-row: 1;
    order: unset;
    width: auto;
    flex: unset;
  }
  #shopify-header-section .viva-hdr__menu-block {
    grid-column: 1 / -1;
    grid-row: 2;
    order: unset;
    width: 100%;
    margin-top: 4px;
    padding-top: 6px;
    padding-bottom: 4px;
    border-top: 1px dashed var(--viva-hdr-cta-pale);
    display: flex !important;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    align-content: center;
    gap: 0 8px;
  }
  #shopify-header-section .viva-hdr__menu-links {
    gap: clamp(16px, 2vw, 24px);
    flex-wrap: wrap;
    justify-content: center !important;
  }
  #shopify-header-section .viva-hdr__icons-left {
    gap: 18px;
  }
  #shopify-header-section .viva-hdr__search-inline {
    max-width: min(300px, 32vw);
    min-width: 0;
  }
}
#shopify-header-section .viva-hdr__side .header__main-link svg,
#shopify-header-section .viva-hdr__side .header__main-link .icon {
  width: 20px;
  height: 20px;
}
#shopify-header-section .viva-hdr__menu-links .header__link {
  font-family: 'Fredoka', sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--viva-hdr-ink-sub) !important;
  transition: color 0.2s ease, transform 0.2s ease;
}
#shopify-header-section .viva-hdr__menu-links .header__link:hover {
  color: var(--viva-hdr-cta) !important;
  transform: translateY(-1px);
}
@media (prefers-reduced-motion: reduce) {
  #shopify-header-section .viva-hdr__menu-links .header__link:hover {
    transform: none;
  }
}

/* ═══ HEADER SKIN (on surcharge les couleurs pour que le header générique passe en Viva) ═══ */
.header .header__logo a,
.header .menu__link,
.header .mobile-header__nav a {
  font-family: 'Fredoka', sans-serif !important;
  color: var(--viva-hdr-ink, #2c2420) !important;
}
.header .menu__link:hover {
  color: var(--viva-hdr-cta, #e89850) !important;
}

/* ═══ FOOTER SKIN ═══ */
footer .footer,
footer .site-footer {
  font-family: 'Nunito', sans-serif;
  color: var(--viva-ink);
}
footer h2, footer h3, footer h4 {
  font-family: 'Fredoka', sans-serif !important;
  color: var(--viva-ink);
}

footer .viva-footer-main .footer__title,
footer .viva-footer-main .link_collapsing_title {
  font-family: Nunito, system-ui, sans-serif !important;
}
footer a {
  color: var(--viva-ink-lt);
  transition: color 0.2s ease;
}
footer a:hover {
  color: var(--viva-cta);
}

/* ═══ RESPECT PREFERS-REDUCED-MOTION (hors homepage aussi) ═══ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}


/* ============================================================
   Viva Capybara — LOT 4 EXTENSION
   Styles pour : page produit, article, blog, search, password, customers
   ============================================================ */

/* ═══ PAGE PRODUIT ═══ */
.viva-product {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 32px) 80px;
  font-family: 'Nunito', sans-serif;
  color: var(--viva-ink);
}
.viva-product__main {
  display: grid;
  grid-template-columns: 1fr 480px;
  gap: clamp(32px, 5vw, 64px);
  align-items: start;
  margin-top: 24px;
}
@media (max-width: 880px) {
  .viva-product__main { grid-template-columns: 1fr; gap: 24px; }
}

/* Galerie */
.viva-product__gallery {
  position: relative;
}
@media (min-width: 881px) {
  .viva-product__gallery { position: sticky; top: 100px; }
}
.viva-gal__main,
.viva-product__gal-main {
  aspect-ratio: 1;
  background: var(--viva-butter-pale);
  border-radius: 24px;
  overflow: hidden;
  position: relative;
}
.viva-gal__main img,
.viva-product__gal-main img,
.viva-gal__main-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.viva-gal__badge,
.viva-product__gal-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  background: var(--viva-cta);
  color: #fff;
  padding: 8px 16px;
  border-radius: 50px;
  font-family: 'Fredoka', sans-serif;
  font-size: 12px;
  font-weight: 700;
  z-index: 2;
  box-shadow: 0 2px 8px rgba(232, 152, 80, 0.3);
}
.viva-product__gal-save {
  position: absolute;
  top: 16px;
  right: 16px;
  background: var(--viva-ink);
  color: #fff;
  padding: 8px 14px;
  border-radius: 50px;
  font-family: 'Fredoka', sans-serif;
  font-size: 12px;
  font-weight: 700;
  z-index: 2;
}
.viva-gal__thumbs,
.viva-product__gal-thumbs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}
.viva-gal__thumb {
  aspect-ratio: 1;
  border-radius: 12px;
  overflow: hidden;
  border: 2px solid transparent;
  transition: border-color 0.2s ease;
  background: var(--viva-butter-pale);
  cursor: pointer;
  display: block;
}
.viva-gal__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.viva-gal__thumb.active { border-color: var(--viva-cta); }
.viva-gal__thumb:hover:not(.active) { border-color: var(--viva-cta-lt); }

/* Info */
.viva-product__info {
  position: relative;
}
@media (min-width: 881px) {
  .viva-product__info { position: sticky; top: 100px; }
}
.viva-product__tag {
  font-family: 'Caveat', cursive;
  font-size: 22px;
  color: var(--viva-cta);
  display: block;
  margin-bottom: 12px;
}
.viva-product__title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1.08;
  letter-spacing: -0.02em;
  margin: 0 0 12px;
}
.viva-product__title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}
.viva-product__sub {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: 16px;
  color: var(--viva-ink-lt);
  line-height: 1.6;
  margin: 0 0 20px;
}
.viva-product__rating {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--viva-ink-sub);
  margin: 0 0 24px;
  flex-wrap: wrap;
}
.viva-product__rating-stars {
  color: var(--viva-cta);
  letter-spacing: 2px;
  font-size: 16px;
}
.viva-product__rating strong {
  font-family: 'Fredoka', sans-serif;
  color: var(--viva-ink);
  font-weight: 700;
}
.viva-product__rating a {
  color: var(--viva-ink-sub);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.viva-product__price {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 0 0 24px;
  flex-wrap: wrap;
}
.viva-product__price-now {
  font-family: 'Fredoka', sans-serif;
  font-size: 32px;
  font-weight: 700;
  color: var(--viva-ink);
}
.viva-product__price-old {
  font-size: 18px;
  color: var(--viva-ink-sub);
  text-decoration: line-through;
}
.viva-product__price-save {
  background: var(--viva-cta-pale);
  color: var(--viva-cta-dk);
  padding: 4px 10px;
  border-radius: 50px;
  font-size: 12px;
  font-weight: 700;
  font-family: 'Fredoka', sans-serif;
}

/* Options / variantes */
.viva-product__opt-block {
  margin: 0 0 20px;
}
.viva-product__opt-label {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--viva-ink);
  margin: 0 0 10px;
}
.viva-product__opt-label a {
  font-family: 'Nunito', sans-serif;
  font-weight: 400;
  font-size: 13px;
  color: var(--viva-cta-dk);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.viva-product__opt-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.viva-product__opt {
  position: relative;
  padding: 10px 18px;
  border: 2px solid var(--viva-bg-dk);
  border-radius: 12px;
  background: var(--viva-white);
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--viva-ink);
  cursor: pointer;
  transition: all 0.2s ease;
}
.viva-product__opt:hover {
  border-color: var(--viva-cta-lt);
}
.viva-product__opt.active,
.viva-product__opt:has(input:checked) {
  border-color: var(--viva-cta);
  background: var(--viva-cta-pale);
  color: var(--viva-cta-dk);
}

.viva-product__actions {
  display: flex;
  gap: 12px;
  margin: 24px 0;
}
.viva-product__atc {
  flex: 1;
  justify-content: center;
  padding: 18px 24px;
  font-size: 16px;
}
.viva-product__atc:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  background: var(--viva-ink-sub);
}

.viva-product__trust {
  margin-top: 24px;
  padding: 20px;
  background: var(--viva-bg-warm);
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.viva-product__trust-row {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: var(--viva-ink-lt);
}
.viva-product__trust-row svg {
  flex-shrink: 0;
  color: var(--viva-cta-dk);
}
.viva-product__trust-row strong {
  color: var(--viva-ink);
  font-weight: 600;
}

/* Sections dynamiques (story, kit, composition, persona, final) */
.viva-product__section,
.viva-product__story {
  margin-top: 64px;
  padding: clamp(48px, 7vw, 80px) clamp(20px, 4vw, 48px);
  border-radius: 24px;
}
.viva-product__story {
  background: var(--viva-bg-warm);
}
.viva-product__section:nth-of-type(odd) {
  background: var(--viva-bg-warm);
}
.viva-product__section-wrap,
.viva-product__story-wrap {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}
.viva-product__section-title,
.viva-product__story-title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1.1;
  margin: 0 0 20px;
  letter-spacing: -0.02em;
}
.viva-product__section-title em,
.viva-product__story-title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}
.viva-product__section-intro {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(16px, 2vw, 19px);
  color: var(--viva-ink);
  line-height: 1.7;
  margin: 0 auto 40px;
  max-width: 620px;
}
.viva-product__story-body {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: 17px;
  line-height: 1.8;
  color: var(--viva-ink);
  text-align: left;
  max-width: 720px;
  margin: 0 auto;
}
.viva-product__story-body p { margin: 0 0 16px; }
.viva-product__story-body a { color: var(--viva-cta-dk); text-decoration: underline; }

/* Kit adoption */
.viva-product__kit-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
@media (max-width: 768px) {
  .viva-product__kit-grid { grid-template-columns: 1fr; }
}
.viva-product__kit-item {
  background: var(--viva-white);
  border-radius: 20px;
  padding: 28px 20px;
  text-align: center;
  border-top: 4px solid var(--viva-cta);
  box-shadow: var(--viva-shadow-card);
}
.viva-product__kit-item:nth-child(2) { border-top-color: var(--viva-rose); }
.viva-product__kit-item:nth-child(3) { border-top-color: var(--viva-mint); }
.viva-product__kit-item:nth-child(4) { border-top-color: var(--viva-soft); }
.viva-product__kit-item:nth-child(5) { border-top-color: var(--viva-lavender); }
.viva-product__kit-item:nth-child(6) { border-top-color: var(--viva-butter); }
.viva-product__kit-icon {
  font-family: 'Caveat', cursive;
  font-size: 48px;
  color: var(--viva-cta);
  line-height: 1;
  display: block;
  margin: 0 0 12px;
}
.viva-product__kit-title {
  font-family: 'Fredoka', sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--viva-ink);
  margin: 0 0 8px;
}
.viva-product__kit-desc {
  font-size: 14px;
  color: var(--viva-ink-sub);
  line-height: 1.6;
  margin: 0;
}

/* Composition */
.viva-product__comp-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
@media (max-width: 640px) {
  .viva-product__comp-grid { grid-template-columns: 1fr; }
}
.viva-product__comp-card {
  background: var(--viva-white);
  border-radius: 16px;
  padding: 24px;
  text-align: left;
  border-left: 4px solid var(--viva-cta);
}
.viva-product__comp-card:nth-child(2) { border-left-color: var(--viva-rose); }
.viva-product__comp-card:nth-child(3) { border-left-color: var(--viva-mint); }
.viva-product__comp-card:nth-child(4) { border-left-color: var(--viva-soft); }
.viva-product__comp-title {
  font-family: 'Fredoka', sans-serif;
  font-size: 17px;
  font-weight: 600;
  color: var(--viva-ink);
  margin: 0 0 8px;
}
.viva-product__comp-desc {
  font-size: 14px;
  color: var(--viva-ink-sub);
  line-height: 1.7;
  margin: 0;
}

/* Personas (parfait pour) */
.viva-product__pf-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
@media (max-width: 640px) {
  .viva-product__pf-grid { grid-template-columns: 1fr; }
}
.viva-product__pf-card {
  background: var(--viva-white);
  border-radius: 16px;
  padding: 20px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
  text-align: left;
}
.viva-product__pf-icon {
  flex-shrink: 0;
  font-family: 'Caveat', cursive;
  font-size: 40px;
  color: var(--viva-cta);
  line-height: 1;
}
.viva-product__pf-text h3 {
  font-family: 'Fredoka', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--viva-ink);
  margin: 0 0 4px;
}
.viva-product__pf-text p {
  font-size: 13px;
  color: var(--viva-ink-sub);
  line-height: 1.6;
  margin: 0;
}

/* Final CTA */
.viva-product__final-cta {
  background: var(--viva-ink) !important;
  color: var(--viva-bg);
  position: relative;
  overflow: hidden;
}
.viva-product__final-cta::before {
  content: "";
  position: absolute;
  width: 500px;
  height: 500px;
  top: -100px;
  left: -100px;
  background: radial-gradient(circle, rgba(232, 152, 80, 0.08) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.viva-product__final-wrap {
  max-width: 620px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  z-index: 2;
}
.viva-product__final-overline {
  font-family: 'Caveat', cursive;
  font-size: 24px;
  color: var(--viva-cta);
  display: block;
  margin: 0 0 16px;
}
.viva-product__final-title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(32px, 5vw, 44px);
  font-weight: 700;
  color: var(--viva-bg);
  line-height: 1.1;
  margin: 0 0 20px;
}
.viva-product__final-title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}
.viva-product__final-sub {
  font-size: 16px;
  color: rgba(250, 247, 242, 0.75);
  line-height: 1.7;
  margin: 0 0 32px;
}
.viva-product__final-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 18px 36px;
  background: var(--viva-cta);
  color: #fff;
  border-radius: 50px;
  font-family: 'Fredoka', sans-serif;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.2s ease;
}
.viva-product__final-btn:hover {
  background: var(--viva-cta-dk);
  transform: translateY(-2px);
}

/* ═══ PAGE ARTICLE ═══ */
.viva-article {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 32px) 80px;
  font-family: 'Nunito', sans-serif;
  color: var(--viva-ink);
}
.viva-article__head {
  text-align: center;
  padding: clamp(24px, 4vw, 48px) 0 clamp(24px, 4vw, 36px);
}
.viva-article__title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(30px, 4.5vw, 44px);
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0 0 16px;
}
.viva-article__meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 13px;
  color: var(--viva-ink-sub);
  flex-wrap: wrap;
}
.viva-article__cover {
  margin: 0 0 40px;
  border-radius: 20px;
  overflow: hidden;
  background: var(--viva-butter-pale);
}
.viva-article__cover-img {
  width: 100%;
  height: auto;
  display: block;
}
.viva-article__body {
  font-size: 17px;
  line-height: 1.8;
  color: var(--viva-ink-lt);
}
.viva-article__body h2 {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(22px, 3vw, 30px);
  color: var(--viva-ink);
  margin: 40px 0 16px;
  font-weight: 700;
}
.viva-article__body h3 {
  font-family: 'Fredoka', sans-serif;
  font-size: 22px;
  color: var(--viva-ink);
  margin: 28px 0 12px;
  font-weight: 600;
}
.viva-article__body p { margin: 0 0 18px; }
.viva-article__body a {
  color: var(--viva-cta-dk);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.viva-article__body img {
  max-width: 100%;
  height: auto;
  border-radius: 16px;
  margin: 24px 0;
  display: block;
}
.viva-article__body blockquote {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: 20px;
  line-height: 1.6;
  color: var(--viva-ink);
  padding: 20px 24px;
  margin: 32px 0;
  border-left: 4px solid var(--viva-cta);
  background: var(--viva-bg-warm);
  border-radius: 0 12px 12px 0;
}
.viva-article__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 32px 0;
}
.viva-article__tag {
  padding: 6px 14px;
  border-radius: 50px;
  background: var(--viva-bg-warm);
  color: var(--viva-ink-lt);
  font-size: 12px;
  text-decoration: none;
  transition: background 0.2s ease;
}
.viva-article__tag:hover {
  background: var(--viva-cta-pale);
  color: var(--viva-cta-dk);
}
.viva-article__related {
  margin-top: 64px;
  padding-top: 48px;
  border-top: 1px solid var(--viva-bg-dk);
}
.viva-article__related-title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(24px, 3vw, 32px);
  color: var(--viva-ink);
  text-align: center;
  margin: 0 0 32px;
}
.viva-article__related-title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}
.viva-article__related-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media (max-width: 768px) {
  .viva-article__related-list { grid-template-columns: 1fr; }
}
.viva-article__related-card {
  display: block;
  text-decoration: none;
  color: inherit;
  background: var(--viva-white);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--viva-shadow-card);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.viva-article__related-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--viva-shadow-card-hover);
}
.viva-article__related-card img {
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  display: block;
}
.viva-article__related-info { padding: 16px 18px; }
.viva-article__related-date {
  font-size: 11px;
  color: var(--viva-ink-sub);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.viva-article__related-heading {
  font-family: 'Fredoka', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--viva-ink);
  margin: 4px 0 0;
  line-height: 1.4;
}

/* ═══ PAGE BLOG (liste articles) ═══ */
.viva-blog {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 32px) 80px;
  font-family: 'Nunito', sans-serif;
}
.viva-blog__head {
  text-align: center;
  padding: clamp(24px, 4vw, 48px) 0 clamp(32px, 4vw, 48px);
}
.viva-blog__title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0 0 16px;
}
.viva-blog__title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}
.viva-blog__intro {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(16px, 1.8vw, 19px);
  color: var(--viva-ink);
  line-height: 1.7;
  max-width: 640px;
  margin: 0 auto;
}
.viva-blog__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 2.5vw, 28px);
}
@media (max-width: 1024px) {
  .viva-blog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .viva-blog__grid { grid-template-columns: 1fr; }
}
.viva-blog__card {
  background: var(--viva-white);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--viva-shadow-card);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.viva-blog__card:hover {
  transform: translateY(-3px);
  box-shadow: var(--viva-shadow-card-hover);
}
.viva-blog__card-link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.viva-blog__card-media {
  aspect-ratio: 16/10;
  background: var(--viva-butter-pale);
  overflow: hidden;
}
.viva-blog__card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.viva-blog__card:hover .viva-blog__card-img {
  transform: scale(1.04);
}
.viva-blog__card-body { padding: 20px; }
.viva-blog__card-tag {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 50px;
  background: var(--viva-cta-pale);
  color: var(--viva-cta-dk);
  font-family: 'Fredoka', sans-serif;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 10px;
}
.viva-blog__card-title {
  font-family: 'Fredoka', sans-serif;
  font-size: 18px;
  font-weight: 600;
  color: var(--viva-ink);
  line-height: 1.3;
  margin: 0 0 10px;
}
.viva-blog__card-excerpt {
  font-size: 14px;
  color: var(--viva-ink-sub);
  line-height: 1.6;
  margin: 0 0 12px;
}
.viva-blog__card-meta {
  display: flex;
  gap: 8px;
  font-size: 12px;
  color: var(--viva-ink-sub);
  flex-wrap: wrap;
}

.viva-blog__empty {
  text-align: center;
  padding: 80px 16px;
}
.viva-blog__empty-icon {
  font-family: 'Caveat', cursive;
  font-size: 64px;
  color: var(--viva-cta);
  margin: 0 0 16px;
}
.viva-blog__empty h2 {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(24px, 3.5vw, 32px);
  color: var(--viva-ink);
  margin: 0 0 12px;
}
.viva-blog__empty h2 em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}

/* ═══ PAGE SEARCH ═══ */
.viva-search {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 32px) 60px;
  font-family: 'Nunito', sans-serif;
}
.viva-search__head {
  text-align: center;
  padding: clamp(24px, 4vw, 48px) 0 clamp(24px, 4vw, 32px);
}
.viva-search__title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(28px, 4.5vw, 44px);
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 12px;
}
.viva-search__title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}
.viva-search__count {
  font-family: 'Caveat', cursive;
  font-size: 22px;
  color: var(--viva-ink-sub);
  margin: 0;
}
.viva-search__count-num {
  color: var(--viva-cta);
  font-weight: 700;
}
.viva-search__count-page {
  font-family: 'Nunito', sans-serif;
  font-size: 0.88em;
  color: var(--viva-ink-sub);
  font-weight: 500;
}
.viva-search__form {
  display: flex;
  max-width: 560px;
  margin: 0 auto 40px;
  background: var(--viva-white);
  border-radius: 50px;
  padding: 6px;
  box-shadow: var(--viva-shadow-card);
}
.viva-search__input {
  flex: 1;
  padding: 14px 20px;
  border: none;
  background: transparent;
  font-family: 'Nunito', sans-serif;
  font-size: 15px;
  color: var(--viva-ink);
}
.viva-search__input:focus { outline: none; }
.viva-search__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 24px;
  border: none;
  border-radius: 50px;
  background: var(--viva-cta);
  color: #fff;
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s ease;
}
.viva-search__btn:hover { background: var(--viva-cta-dk); }
.viva-search__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(12px, 2vw, 24px);
}
@media (max-width: 1024px) { .viva-search__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 768px) { .viva-search__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 12px; } }

/* Recherche — mobile : marges, zone tactile, moins d’air perdu */
@media (max-width: 640px) {
  body.viva-template-search .viva-search {
    padding: 0 max(16px, env(safe-area-inset-right, 0px)) 44px
      max(16px, env(safe-area-inset-left, 0px));
  }
  body.viva-template-search .viva-search__head {
    padding: 12px 0 20px;
  }
  body.viva-template-search .viva-breadcrumb {
    margin: 0 0 4px;
  }
  body.viva-template-search .viva-search__form {
    flex-direction: column;
    align-items: stretch;
    max-width: none;
    margin: 0 0 24px;
    border-radius: 20px;
    padding: 8px;
    gap: 8px;
  }
  body.viva-template-search .viva-search__input {
    width: 100%;
    min-height: 48px;
    box-sizing: border-box;
    border-radius: 16px;
    background: var(--viva-butter-pale);
    padding: 12px 16px;
  }
  body.viva-template-search .viva-search__btn {
    width: 100%;
    justify-content: center;
    min-height: 48px;
    border-radius: 16px;
    padding: 12px 20px;
  }
  body.viva-template-search .viva-search__grid {
    row-gap: 14px;
  }
  body.viva-template-search .viva-search .viva-card__title {
    margin: 10px 12px 4px;
    font-size: 14px;
  }
  body.viva-template-search .viva-search .viva-card__price {
    margin: auto 12px 12px;
  }
  body.viva-template-search .viva-search .viva-pagination {
    margin: 28px 0 16px;
  }
  body.viva-template-search .viva-search__count {
    line-height: 1.4;
  }
  body.viva-template-search .viva-search__count-page {
    display: block;
    margin-top: 4px;
    font-size: 0.85em;
  }
}

.viva-search .viva-card { border-top: 4px solid var(--viva-cta); background: var(--viva-white); border-radius: 20px; overflow: hidden; box-shadow: var(--viva-shadow-card); display: flex; flex-direction: column; }
.viva-search .viva-card__link { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.viva-search .viva-card__media { aspect-ratio: 4/5; background: var(--viva-butter-pale); overflow: hidden; }
.viva-search .viva-card__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.viva-search .viva-card__title { font-family: 'Fredoka', sans-serif; font-size: 15px; font-weight: 600; color: var(--viva-ink); margin: 14px 16px 6px; line-height: 1.3; }
.viva-search .viva-card__price { display: flex; align-items: baseline; gap: 8px; margin: auto 16px 16px; }
.viva-search .viva-card__price-now { font-family: 'Fredoka', sans-serif; font-size: 17px; font-weight: 700; color: var(--viva-ink); }
.viva-search .viva-card__price-was { font-size: 13px; color: var(--viva-ink-sub); text-decoration: line-through; }
.viva-search .viva-card--article,
.viva-search .viva-card--page { padding: 24px; border-top-color: var(--viva-soft); }
.viva-search .viva-card--article .viva-card__title,
.viva-search .viva-card--page .viva-card__title { margin: 0 0 8px; }
.viva-search .viva-card__excerpt { font-size: 14px; color: var(--viva-ink-sub); line-height: 1.6; margin: 0; }

.viva-search__empty { text-align: center; padding: 60px 16px; }
.viva-search__empty-icon { font-family: 'Caveat', cursive; font-size: 64px; color: var(--viva-cta); margin: 0 0 16px; }
.viva-search__empty-title { font-family: 'Fredoka', sans-serif; font-size: clamp(22px, 3vw, 28px); color: var(--viva-ink); margin: 0 0 12px; }
.viva-search__empty-title em { font-family: 'Fraunces', 'Times New Roman', serif; font-style: italic; font-weight: 300; color: var(--viva-cta); }
.viva-search__empty-text { color: var(--viva-ink-sub); margin: 0 0 24px; }
.viva-search__placeholder { text-align: center; font-family: 'Fraunces', 'Times New Roman', serif; font-style: italic; color: var(--viva-ink-sub); padding: 40px 16px; }

/* ═══ PAGE PASSWORD (splash) ═══ */
.viva-password {
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(40px, 6vw, 80px) 20px;
  font-family: 'Nunito', sans-serif;
  background: var(--viva-bg-warm);
  text-align: center;
}
.viva-password__wrap {
  max-width: 540px;
}
.viva-password__logo {
  width: 120px;
  height: 120px;
  margin: 0 auto 24px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--viva-white);
  box-shadow: var(--viva-shadow-card);
}
.viva-password__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.viva-password__title {
  font-family: 'Fredoka', sans-serif;
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 700;
  color: var(--viva-ink);
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 16px;
}
.viva-password__title em {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  color: var(--viva-cta);
}
.viva-password__sub {
  font-family: 'Fraunces', 'Times New Roman', serif;
  font-style: italic;
  font-weight: 300;
  font-size: 17px;
  color: var(--viva-ink);
  line-height: 1.7;
  margin: 0 0 36px;
}
.viva-password__newsletter {
  background: var(--viva-white);
  border-radius: 20px;
  padding: 32px 24px;
  box-shadow: var(--viva-shadow-card);
  margin: 0 0 32px;
}
.viva-password__nl-title {
  font-family: 'Fredoka', sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--viva-ink);
  margin: 0 0 12px;
}
.viva-password__nl-sub {
  font-size: 14px;
  line-height: 1.55;
  color: var(--viva-ink-sub);
  margin: 0 0 24px;
}
.viva-password__nl-form {
  display: flex;
  gap: 8px;
  border-radius: 50px;
  background: var(--viva-bg);
  padding: 4px;
}
.viva-password__nl-input {
  flex: 1;
  padding: 12px 18px;
  border: none;
  background: transparent;
  font-family: 'Nunito', sans-serif;
  font-size: 14px;
}
.viva-password__nl-input:focus { outline: none; }
.viva-password__nl-btn {
  padding: 12px 24px;
  border: none;
  border-radius: 50px;
  background: var(--viva-cta);
  color: #fff;
  font-family: 'Fredoka', sans-serif;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  transition: background 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.viva-password__nl-btn:hover { background: var(--viva-cta-dk); }
.viva-password__nl-success {
  margin: 16px 0 0;
  color: var(--viva-mint);
  font-weight: 600;
  font-size: 14px;
}
.viva-password__access {
  font-size: 13px;
  color: var(--viva-ink-sub);
  margin: 0 0 24px;
}
.viva-password__access-trigger {
  cursor: pointer;
  font-family: 'Caveat', cursive;
  font-size: 18px;
  color: var(--viva-ink-sub);
  transition: color 0.2s ease;
}
.viva-password__access-trigger:hover { color: var(--viva-cta); }
.viva-password__access-form {
  display: flex;
  gap: 8px;
  margin-top: 12px;
  max-width: 360px;
  margin-left: auto;
  margin-right: auto;
}
.viva-password__access-input {
  flex: 1;
  padding: 10px 14px;
  border: 1px solid var(--viva-bg-dk);
  border-radius: 12px;
  font-family: 'Nunito', sans-serif;
}
.viva-password__access-btn {
  padding: 10px 20px;
  border: none;
  border-radius: 12px;
  background: var(--viva-ink);
  color: #fff;
  font-family: 'Fredoka', sans-serif;
  font-weight: 600;
  cursor: pointer;
}
.viva-password__access-error {
  color: var(--viva-alert);
  font-size: 12px;
  margin: 8px 0 0;
  width: 100%;
}
.viva-password__social {
  padding-top: 24px;
  border-top: 1px solid var(--viva-bg-dk);
}
.viva-password__social-label {
  font-family: 'Caveat', cursive;
  font-size: 18px;
  color: var(--viva-ink-sub);
  margin: 0 0 10px;
}
.viva-password__social-list {
  display: flex;
  justify-content: center;
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.viva-password__social-list a {
  color: var(--viva-cta-dk);
  font-family: 'Fredoka', sans-serif;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s ease;
}
.viva-password__social-list a:hover { color: var(--viva-cta); }

/* ═══ SKIN CUSTOMERS (compte client) ═══ */
.template-customers,
.template-customers-login,
.template-customers-account,
.template-customers-addresses,
.template-customers-order,
.template-customers-register,
.template-customers-reset-password,
.template-customers-activate-account {
  font-family: 'Nunito', sans-serif;
  color: var(--viva-ink);
  background: var(--viva-bg);
}
body[class*="template-customers"] .page-container h1,
body[class*="template-customers"] .page-container h2,
body[class*="template-customers"] .page-container .h1,
body[class*="template-customers"] .page-container .h2,
body[class*="template-customers"] .page-container .h3,
body[class*="template-customers"] .page-container .section-title {
  font-family: 'Fredoka', sans-serif !important;
  color: var(--viva-ink);
  letter-spacing: -0.01em;
}
body[class*="template-customers"] .page-container input[type="text"],
body[class*="template-customers"] .page-container input[type="email"],
body[class*="template-customers"] .page-container input[type="password"],
body[class*="template-customers"] .page-container input[type="tel"],
body[class*="template-customers"] .page-container select {
  font-family: 'Nunito', sans-serif;
  border: 1px solid var(--viva-bg-dk) !important;
  border-radius: 12px !important;
  padding: 12px 16px !important;
  background: var(--viva-white) !important;
  color: var(--viva-ink) !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
body[class*="template-customers"] .page-container input:focus,
body[class*="template-customers"] .page-container select:focus {
  outline: none;
  border-color: var(--viva-cta) !important;
  box-shadow: 0 0 0 2px var(--viva-cta-pale) !important;
}
body[class*="template-customers"] .page-container button,
body[class*="template-customers"] .page-container input[type="submit"],
body[class*="template-customers"] .page-container .btn {
  font-family: 'Fredoka', sans-serif !important;
  border-radius: 50px !important;
  padding: 14px 28px !important;
  background: var(--viva-cta) !important;
  color: #fff !important;
  border: none !important;
  font-weight: 700 !important;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}
body[class*="template-customers"] .page-container button:hover,
body[class*="template-customers"] .page-container input[type="submit"]:hover,
body[class*="template-customers"] .page-container .btn:hover {
  background: var(--viva-cta-dk) !important;
  transform: translateY(-1px);
}
body[class*="template-customers"] .page-container a {
  color: var(--viva-cta-dk);
  transition: color 0.2s ease;
}
body[class*="template-customers"] .page-container a:hover {
  color: var(--viva-cta);
}
body[class*="template-customers"] .page-container label {
  font-family: 'Fredoka', sans-serif;
  font-size: 13px;
  color: var(--viva-ink);
  font-weight: 600;
  margin-bottom: 6px;
  display: block;
}
body[class*="template-customers"] .page-container form {
  max-width: 480px;
  margin: 0 auto;
}
body[class*="template-customers"] .page-container table {
  background: var(--viva-white);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--viva-shadow-card);
}
body[class*="template-customers"] .page-container table th {
  font-family: 'Fredoka', sans-serif;
  background: var(--viva-bg-warm);
  color: var(--viva-ink);
  padding: 12px 16px;
}
body[class*="template-customers"] .page-container table td {
  padding: 14px 16px;
  border-top: 1px solid var(--viva-bg-dk);
}


/* ═══════════════════════════════════════════════════════════════════
   VIVA v3 — OVERRIDE FINAL : HERO + PRODUCT + NETTOYAGE
   Basé directement sur le HTML de référence fourni par le client.
   Ces règles sont les dernières du fichier et ont priorité.
   ═══════════════════════════════════════════════════════════════════ */

/* ─── Variables (re-déclaration locale) ─── */
.viva-hero,
.viva-prod-wrapper,
.viva-prod,
.viva-story,
.viva-sec,
.viva-cta-final,
.viva-breadcrumb {
  --vh-bg: #FAF7F2;
  --vh-bg-warm: #FFF5EE;
  --vh-white: #FFFFFF;
  --vh-ink: #2C2420;
  --vh-ink-sub: #7A6B5D;
  --vh-ink-lt: #A89884;
  --vh-cta: #E89850;
  --vh-cta-pale: #FDF0E0;
  --vh-cta-dk: #C97A35;
  --vh-mint: #8EBB8E;
  --vh-mint-pale: #E4F0E4;
  --vh-rose: #F4A9A8;
  --vh-rose-pale: #FDEBEA;
  --vh-butter: #F5E6A3;
  --vh-butter-pale: #FDF6E0;
  --vh-soft: #A8D4E6;
  --vh-soft-pale: #E4F2F8;
  --vh-lavender: #C8B8E8;
  --vh-capy: #B5926B;
  --vh-capy-lt: #CBAA88;
  --vh-shadow: rgba(61,43,31,.06);
  --vh-cream: #FAF7F2;
}

/* ─── HERO ─── */
.viva-hero {
  position: relative;
  padding: 80px 24px 60px !important;
  text-align: center;
  overflow: hidden;
  background: linear-gradient(180deg, var(--vh-bg) 0%, var(--vh-bg-warm) 100%);
  font-family: 'Nunito', sans-serif !important;
  color: var(--vh-ink) !important;
}
.viva-hero__blob {
  position: absolute; border-radius: 50%; filter: blur(60px);
  pointer-events: none; z-index: 0; opacity: 0.5;
}
.viva-hero__blob--1 { width: 400px; height: 400px; background: var(--vh-cta-pale); top: -100px; left: -100px; }
.viva-hero__blob--2 { width: 350px; height: 350px; background: var(--vh-rose-pale); top: 50%; right: -80px; transform: translateY(-50%); }
.viva-hero__blob--3 { width: 300px; height: 300px; background: var(--vh-butter-pale); bottom: -80px; left: 40%; }
.viva-hero__in { position: relative; z-index: 2; max-width: 720px; margin: 0 auto; }
.viva-hero__over {
  font-family: 'Caveat', cursive !important; font-size: 22px !important;
  color: var(--vh-cta) !important; display: block !important;
  margin-bottom: 14px !important; font-weight: 500 !important; line-height: 1.3 !important;
}
.viva-hero__title {
  font-family: 'Fredoka', sans-serif !important; font-size: clamp(36px, 6vw, 56px) !important;
  font-weight: 700 !important; color: var(--vh-ink) !important; line-height: 1.08 !important;
  letter-spacing: -0.02em !important; margin: 0 0 20px !important; text-transform: none !important;
}
.viva-hero__title em {
  font-family: 'Fraunces', 'Times New Roman', serif !important; font-style: italic !important;
  font-weight: 300 !important; color: var(--vh-cta) !important; font-size: inherit !important;
  background: none !important; text-decoration: none !important;
}
.viva-hero__title em::before, .viva-hero__title em::after { display: none !important; content: none !important; }
.viva-hero__sub {
  font-size: 17px !important; color: var(--vh-ink-sub) !important; line-height: 1.7 !important;
  max-width: 560px !important; margin: 0 auto 32px !important; font-family: 'Nunito', sans-serif !important;
}
.viva-hero__ctas { display: flex !important; gap: 12px !important; justify-content: center !important; margin-bottom: 24px !important; flex-wrap: wrap !important; }
.viva-hero__btn-cta {
  display: inline-flex !important; align-items: center !important; gap: 8px !important;
  padding: 16px 36px !important; border-radius: 50px !important; border: none !important;
  background: var(--vh-cta) !important; color: #fff !important;
  font-family: 'Fredoka', sans-serif !important; font-size: 15px !important; font-weight: 700 !important;
  text-decoration: none !important; cursor: pointer !important;
  box-shadow: 0 4px 20px rgba(232,152,80,.25) !important; transition: all .3s ease !important;
  letter-spacing: .3px !important; min-height: 44px !important; box-sizing: border-box !important;
}
.viva-hero__btn-cta:hover { transform: translateY(-2px) !important; box-shadow: 0 6px 24px rgba(232,152,80,.35) !important; background: var(--vh-cta-dk) !important; color: #fff !important; }
.viva-hero__btn-sec {
  display: inline-flex !important; align-items: center !important; gap: 8px !important;
  padding: 14px 28px !important; border-radius: 50px !important; border: 2px solid #E8E2D8 !important;
  background: var(--vh-white) !important; color: var(--vh-ink) !important;
  font-family: 'Fredoka', sans-serif !important; font-size: 13px !important; font-weight: 700 !important;
  text-decoration: none !important; cursor: pointer !important; transition: all .2s ease !important;
  min-height: 44px !important; box-sizing: border-box !important;
}
.viva-hero__btn-sec:hover { border-color: var(--vh-cta) !important; color: var(--vh-cta) !important; }
.viva-hero__proof {
  display: inline-flex !important; align-items: center !important; gap: 8px !important;
  font-size: 13px !important; color: var(--vh-ink-sub) !important; flex-wrap: wrap !important;
  justify-content: center !important; margin: 0 !important; font-family: 'Nunito', sans-serif !important;
}
.viva-hero__stars { color: var(--vh-cta) !important; letter-spacing: 2px !important; font-size: 16px !important; }
.viva-hero__proof strong { color: var(--vh-ink) !important; font-weight: 700 !important; }
@media (max-width: 768px) {
  .viva-hero { padding: 60px 16px 40px !important; }
  .viva-hero__title { font-size: 34px !important; }
  .viva-hero__blob { display: none !important; }
}

/* ─── BREADCRUMB ─── */
/* Même fond que .viva-hf .hero-prod (beurre) : le wrapper article est en --vh-bg crème, d’où l’effet « bande » différente. Fond pleine largeur ; liste centrée max 1280px. */
.viva-prod-wrapper .viva-breadcrumb {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 8px clamp(16px, 4vw, 24px) 8px !important;
  box-sizing: border-box !important;
  font-family: 'Nunito', sans-serif !important;
  background: var(--vh-butter-pale) !important;
}
.viva-prod-wrapper .viva-breadcrumb__list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 auto !important;
  max-width: 1280px !important;
  display: flex !important; flex-wrap: wrap !important; gap: 6px !important;
  font-size: 12px !important; color: var(--vh-ink-sub) !important;
}
/* Un seul séparateur (HTML réf. : slash) — annule le › défini plus haut dans le fichier */
.viva-prod-wrapper .viva-breadcrumb__item:not(:first-child)::before {
  content: none !important;
  display: none !important;
}
.viva-prod-wrapper .viva-breadcrumb__item:not(:last-child)::after { content: '/'; margin-left: 6px; color: var(--vh-ink-lt); }
.viva-prod-wrapper .viva-breadcrumb__item a { color: var(--vh-ink-sub) !important; text-decoration: none !important; }
.viva-prod-wrapper .viva-breadcrumb__item a:hover { color: var(--vh-cta-dk) !important; }
.viva-prod-wrapper .viva-breadcrumb__item--current { color: var(--vh-ink) !important; font-weight: 600; }

/* ─── PAGE PRODUIT ─── */
.viva-prod-wrapper { font-family: 'Nunito', sans-serif !important; color: var(--vh-ink) !important; background: var(--vh-bg) !important; }
.viva-prod {
  max-width: 1280px !important; margin: 0 auto !important;
  padding: 32px 24px !important;
  display: grid !important; grid-template-columns: 1fr 480px !important;
  gap: 48px !important; align-items: start !important;
}
.viva-gal { position: relative; }
.viva-gal__main {
  aspect-ratio: 4 / 5; background: var(--vh-butter-pale); border-radius: 24px;
  overflow: hidden; position: relative; display: flex; align-items: center; justify-content: center;
}
.viva-gal__main-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.viva-gal__main--empty { opacity: 0.4; }
.viva-gal__badge {
  position: absolute; top: 20px; left: 20px; background: var(--vh-cta); color: #fff;
  padding: 8px 14px; border-radius: 20px; font-family: 'Fredoka', sans-serif;
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; z-index: 2;
}
.viva-gal__save {
  position: absolute; top: 20px; right: 20px; background: var(--vh-rose); color: #fff;
  padding: 8px 14px; border-radius: 20px; font-family: 'Fredoka', sans-serif;
  font-size: 11px; font-weight: 700; z-index: 2;
}
.viva-gal__thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: 14px; }
.viva-gal__thumb {
  aspect-ratio: 1; background: var(--vh-butter-pale); border-radius: 12px;
  cursor: pointer; transition: all .2s ease; border: 2px solid transparent;
  overflow: hidden; display: block;
}
.viva-gal__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.viva-gal__thumb:hover { transform: translateY(-2px); }
.viva-gal__thumb.active { border-color: var(--vh-cta); }
.viva-info { position: sticky; top: 120px; align-self: start; }
.viva-info__tag { font-family: 'Caveat', cursive !important; font-size: 22px !important; color: var(--vh-cta) !important; margin-bottom: 8px !important; display: block !important; font-weight: 500 !important; }
.viva-info__title {
  font-family: 'Fredoka', sans-serif !important; font-size: clamp(28px, 4vw, 42px) !important;
  font-weight: 700 !important; line-height: 1.05 !important; color: var(--vh-ink) !important;
  margin: 0 0 8px !important; letter-spacing: -0.02em !important;
}
.viva-info__title-line { display: block; line-height: 1.08; }
.viva-info__title em { font-family: 'Fraunces', 'Times New Roman', serif !important; font-style: italic !important; font-weight: 300 !important; color: var(--vh-cta) !important; }
.viva-info__sub {
  font-family: 'Fraunces', 'Times New Roman', serif !important; font-style: italic !important;
  font-weight: 300 !important; font-size: 18px !important; color: var(--vh-ink-sub) !important;
  margin: 0 0 20px !important; line-height: 1.5 !important;
}
.viva-info__rating { display: flex !important; align-items: center !important; gap: 8px !important; font-size: 14px !important; color: var(--vh-ink-sub) !important; margin: 0 0 24px !important; flex-wrap: wrap !important; }
.viva-info__stars { color: var(--vh-cta) !important; letter-spacing: 2px !important; font-size: 16px !important; }
.viva-info__rating strong { color: var(--vh-ink) !important; font-family: 'Fredoka', sans-serif !important; font-weight: 700 !important; }
.viva-info__rating a { color: var(--vh-ink-sub) !important; text-decoration: underline !important; text-underline-offset: 2px !important; }
.viva-info__price { display: flex !important; align-items: baseline !important; gap: 12px !important; margin: 0 0 24px !important; flex-wrap: wrap !important; }
.viva-info__price-now { font-family: 'Fredoka', sans-serif !important; font-size: 36px !important; font-weight: 700 !important; color: var(--vh-ink) !important; }
.viva-info__price-old { font-size: 18px !important; color: var(--vh-ink-lt) !important; text-decoration: line-through !important; }
.viva-info__price-save { background: var(--vh-mint-pale) !important; color: #3D6B3D !important; padding: 4px 10px !important; border-radius: 12px !important; font-size: 12px !important; font-weight: 700 !important; font-family: 'Fredoka', sans-serif !important; }
.viva-form { margin: 0 !important; padding: 0 !important; }
.viva-size-block { margin-bottom: 24px; }
.viva-size-label { font-family: 'Fredoka', sans-serif !important; font-size: 14px !important; font-weight: 700 !important; color: var(--vh-ink) !important; margin-bottom: 12px !important; display: flex !important; justify-content: space-between !important; align-items: center !important; }
.viva-size-label a { font-size: 12px !important; color: var(--vh-cta) !important; text-decoration: underline !important; font-weight: 500 !important; font-family: 'Nunito', sans-serif !important; }
.viva-size-options { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
.viva-size-opt {
  border: 2px solid var(--vh-bg-warm) !important; background: var(--vh-white) !important;
  padding: 14px 16px !important; border-radius: 14px !important; cursor: pointer !important;
  text-align: left !important; font-family: 'Nunito', sans-serif !important;
  transition: all .2s ease !important; position: relative !important; display: block !important;
  min-height: 48px !important; box-sizing: border-box !important;
}
.viva-size-opt:hover { border-color: var(--vh-cta-pale) !important; }
.viva-size-opt.active { border-color: var(--vh-cta) !important; background: var(--vh-cta-pale) !important; }
.viva-sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.viva-so-name { font-family: 'Fredoka', sans-serif !important; font-size: 15px !important; font-weight: 600 !important; color: var(--vh-ink) !important; display: block !important; }
.viva-so-tag { display: inline-block !important; background: var(--vh-cta) !important; color: #fff !important; font-size: 9px !important; padding: 2px 6px !important; border-radius: 6px !important; text-transform: uppercase !important; letter-spacing: .5px !important; font-weight: 700 !important; margin-bottom: 6px !important; font-family: 'Fredoka', sans-serif !important; }
.viva-so-dim { display: block !important; font-size: 11px !important; color: var(--vh-ink-sub) !important; margin-top: 2px !important; line-height: 1.3 !important; }
.viva-so-price { display: block !important; font-family: 'Fredoka', sans-serif !important; font-size: 14px !important; font-weight: 700 !important; color: var(--vh-cta) !important; margin-top: 8px !important; }
.viva-gal__thumb--video { position: relative !important; }
.viva-gal__thumb--video::after { content: "▶" !important; position: absolute !important; top: 50% !important; left: 50% !important; transform: translate(-50%,-50%) !important; color: var(--vh-cta) !important; font-size: 14px !important; pointer-events: none !important; text-shadow: 0 1px 2px rgba(0,0,0,.2) !important; }
.viva-gal__thumb--infographic { background: linear-gradient(135deg, var(--vh-cta-pale), var(--vh-butter-pale)) !important; }
.viva-info__sub--quote { white-space: pre-line !important; }
.viva-sec__wrap--full { max-width: 1200px !important; margin: 0 auto !important; }
.viva-size-bg { background: var(--vh-mint-pale) !important; max-width: none !important; }
.viva-size-guide__grid { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 16px !important; }
.viva-size-guide__card { background: var(--vh-white) !important; border-radius: 20px !important; padding: 28px 20px !important; text-align: center !important; position: relative !important; }
.viva-size-guide__card--pop { border: 2px solid var(--vh-cta) !important; }
.viva-size-guide__pop-badge { position: absolute !important; top: -12px !important; left: 50% !important; transform: translateX(-50%) !important; background: var(--vh-cta) !important; color: #fff !important; padding: 4px 12px !important; border-radius: 12px !important; font-family: 'Fredoka', sans-serif !important; font-size: 10px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: .5px !important; white-space: nowrap !important; }
.viva-size-guide__name { font-family: 'Fredoka', sans-serif !important; font-size: 18px !important; font-weight: 600 !important; margin: 0 0 8px !important; color: var(--vh-ink) !important; }
.viva-size-guide__visual { height: 80px !important; display: flex !important; align-items: flex-end !important; justify-content: center !important; margin-bottom: 12px !important; }
.viva-size-guide__bar { background: var(--vh-cta) !important; border-radius: 8px 8px 0 0 !important; width: 36px !important; display: block !important; min-height: 20px !important; }
.viva-size-guide__dim { font-size: 13px !important; color: var(--vh-ink-sub) !important; margin: 0 0 6px !important; }
.viva-size-guide__pitch { font-size: 12px !important; color: var(--vh-ink-lt) !important; font-style: italic !important; margin: 0 0 14px !important; min-height: 32px !important; line-height: 1.4 !important; }
.viva-size-guide__price { font-family: 'Fredoka', sans-serif !important; font-size: 20px !important; font-weight: 700 !important; margin: 0 0 12px !important; color: var(--vh-ink) !important; }
.viva-size-guide__choose { display: inline-block !important; font-size: 13px !important; color: var(--vh-cta-dk) !important; font-weight: 600 !important; text-decoration: underline !important; }
.viva-comp-bg { background: var(--vh-bg-warm) !important; max-width: none !important; }
.viva-versus { max-width: 900px !important; margin: 0 auto !important; background: var(--vh-white) !important; border-radius: 24px !important; overflow: hidden !important; box-shadow: 0 8px 32px rgba(61,43,31,.06) !important; }
.viva-versus__head { display: grid !important; grid-template-columns: 1.5fr 1fr 1fr !important; background: var(--vh-ink) !important; color: var(--vh-cream) !important; }
.viva-versus__head .viva-versus__cell--us { background: var(--vh-cta) !important; color: #fff !important; }
.viva-versus__head .viva-versus__cell--them { background: var(--vh-ink-sub) !important; font-size: 14px !important; }
.viva-versus__row { display: grid !important; grid-template-columns: 1.5fr 1fr 1fr !important; border-bottom: 1px solid var(--vh-bg-warm) !important; }
.viva-versus__row:last-child { border-bottom: none !important; }
.viva-versus__cell { padding: 18px 24px !important; display: flex !important; align-items: center !important; justify-content: center !important; font-size: 14px !important; text-align: center !important; font-family: 'Nunito', sans-serif !important; }
.viva-versus__cell--crit { justify-content: flex-start !important; font-weight: 600 !important; color: var(--vh-ink) !important; text-align: left !important; }
.viva-versus__check { color: var(--vh-mint) !important; font-size: 24px !important; }
.viva-versus__cross { color: var(--vh-rose) !important; font-size: 24px !important; }
.viva-versus__text { font-size: 13px !important; color: var(--vh-ink-sub) !important; line-height: 1.4 !important; }
.viva-pf__grid--6 { grid-template-columns: repeat(2, 1fr) !important; }
@media (min-width: 960px) {
  .viva-pf__grid--6 { grid-template-columns: repeat(3, 1fr) !important; }
}
.viva-family-bg { background: linear-gradient(180deg, var(--vh-butter-pale), var(--vh-cream)) !important; max-width: none !important; }
.viva-family__grid { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 20px !important; }
.viva-family__card { background: var(--vh-white) !important; border-radius: 20px !important; padding: 24px 20px !important; text-align: center !important; border-top: 4px solid var(--vh-cta) !important; }
.viva-family__card--coming { opacity: .65 !important; border-top-color: var(--vh-ink-lt) !important; }
.viva-family__name { font-family: 'Fredoka', sans-serif !important; font-size: 22px !important; font-weight: 700 !important; margin: 0 0 4px !important; }
.viva-family__name a { color: var(--vh-ink) !important; text-decoration: none !important; }
.viva-family__name a:hover { text-decoration: underline !important; }
.viva-family__role { font-family: 'Caveat', cursive !important; font-size: 18px !important; color: var(--vh-cta) !important; margin: 0 0 12px !important; }
.viva-family__desc { font-size: 13px !important; color: var(--vh-ink-sub) !important; line-height: 1.5 !important; margin: 0 0 12px !important; }
.viva-family__price, .viva-family__price-tag { font-family: 'Fredoka', sans-serif !important; font-size: 14px !important; font-weight: 600 !important; color: var(--vh-ink) !important; margin: 0 !important; }
.viva-family__imgwrap { display: block !important; margin-bottom: 12px !important; }
.viva-family__img { width: 100% !important; max-width: 200px !important; margin: 0 auto !important; border-radius: 12px !important; }
.viva-prod-wrapper .viva-btn-cta {
  display: flex !important; align-items: center !important; justify-content: center !important;
  gap: 10px !important; width: 100% !important; padding: 18px 32px !important;
  border-radius: 50px !important; border: none !important; background: var(--vh-cta) !important;
  color: #fff !important; font-family: 'Fredoka', sans-serif !important; font-size: 16px !important;
  font-weight: 700 !important; cursor: pointer !important;
  box-shadow: 0 4px 20px rgba(232,152,80,.25) !important; transition: all .3s ease !important;
  letter-spacing: .5px !important; margin: 0 !important; min-height: 56px !important;
  box-sizing: border-box !important; text-decoration: none !important;
}
.viva-prod-wrapper .viva-btn-cta:hover { transform: translateY(-2px) !important; box-shadow: 0 6px 24px rgba(232,152,80,.4) !important; background: var(--vh-cta-dk) !important; color: #fff !important; }
.viva-prod-wrapper .viva-btn-cta:disabled { opacity: 0.5 !important; cursor: not-allowed !important; background: var(--vh-ink-sub) !important; transform: none !important; box-shadow: none !important; }
.viva-trust-mini { display: flex !important; flex-direction: column !important; gap: 10px !important; margin-top: 24px !important; padding: 20px !important; background: var(--vh-bg-warm) !important; border-radius: 16px !important; }
.viva-trust-row { display: flex !important; align-items: center !important; gap: 10px !important; font-size: 13px !important; color: var(--vh-ink) !important; font-family: 'Nunito', sans-serif !important; }
.viva-trust-row svg { flex-shrink: 0 !important; color: var(--vh-cta) !important; }
.viva-trust-row strong { font-weight: 700 !important; color: var(--vh-ink) !important; }

/* ─── STORY (description produit) ─── */
.viva-story { background: linear-gradient(180deg, var(--vh-butter-pale) 0%, var(--vh-bg) 100%) !important; padding: 100px 24px !important; margin: 0 !important; }
.viva-story__in { max-width: 760px !important; margin: 0 auto !important; text-align: center !important; }
.viva-story__tag { font-family: 'Caveat', cursive !important; font-size: 28px !important; color: var(--vh-cta) !important; margin-bottom: 16px !important; display: block !important; font-weight: 500 !important; }
.viva-story__title { font-family: 'Fredoka', sans-serif !important; font-size: clamp(32px, 5vw, 48px) !important; font-weight: 700 !important; line-height: 1.05 !important; color: var(--vh-ink) !important; margin: 0 0 32px !important; letter-spacing: -0.02em !important; }
.viva-story__title em { font-family: 'Fraunces', 'Times New Roman', serif !important; font-style: italic !important; font-weight: 300 !important; color: var(--vh-cta) !important; }
.viva-story__body { font-family: 'Fraunces', 'Times New Roman', serif !important; font-style: italic !important; font-weight: 300 !important; font-size: 22px !important; color: var(--vh-ink) !important; line-height: 1.7 !important; text-align: left !important; max-width: 640px !important; margin: 0 auto !important; }
.viva-story__body p { margin: 0 0 20px !important; }
.viva-story__body p:last-child { margin-bottom: 0 !important; }
.viva-story__body a { color: var(--vh-cta-dk) !important; text-decoration: underline !important; }
.viva-story__quote { margin-top: 48px !important; padding: 32px !important; background: var(--vh-ink) !important; color: var(--vh-bg) !important; border-radius: 24px !important; font-family: 'Fraunces', 'Times New Roman', serif !important; font-style: italic !important; font-weight: 300 !important; font-size: 24px !important; line-height: 1.5 !important; text-align: center !important; }
.viva-story__quote-mark { font-family: 'Caveat', cursive !important; font-size: 20px !important; color: var(--vh-cta) !important; margin-top: 12px !important; display: block !important; font-style: normal !important; }

/* ─── SECTIONS GÉNÉRIQUES ─── */
.viva-sec { padding: 80px 24px !important; background: var(--vh-bg) !important; }
.viva-sec.viva-kit, .viva-sec.viva-rev, .viva-sec.viva-comp-sec { background: var(--vh-bg-warm) !important; }
.viva-sec.viva-pf { background: var(--vh-bg) !important; }
.viva-sec__wrap { max-width: 1200px !important; margin: 0 auto !important; }
.viva-sec__tag { font-family: 'Caveat', cursive !important; font-size: 24px !important; color: var(--vh-cta) !important; margin-bottom: 8px !important; display: block !important; text-align: center !important; font-weight: 500 !important; }
.viva-sec__title { font-family: 'Fredoka', sans-serif !important; font-size: clamp(28px, 4vw, 40px) !important; font-weight: 700 !important; color: var(--vh-ink) !important; text-align: center !important; margin: 0 0 20px !important; line-height: 1.1 !important; letter-spacing: -0.02em !important; }
.viva-sec__title em { font-family: 'Fraunces', 'Times New Roman', serif !important; font-style: italic !important; font-weight: 300 !important; color: var(--vh-cta) !important; }
.viva-sec__intro { font-size: 17px !important; color: var(--vh-ink-sub) !important; text-align: center !important; max-width: 640px !important; margin: 0 auto 56px !important; line-height: 1.7 !important; font-family: 'Nunito', sans-serif !important; }

/* ─── KIT ─── */
.viva-kit__grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 20px !important; }
.viva-kit__item { background: var(--vh-white) !important; border-radius: 20px !important; padding: 32px 24px !important; text-align: center !important; border-top: 4px solid var(--vh-cta) !important; }
.viva-kit__item:nth-child(2) { border-top-color: var(--vh-rose) !important; }
.viva-kit__item:nth-child(3) { border-top-color: var(--vh-mint) !important; }
.viva-kit__item:nth-child(4) { border-top-color: var(--vh-soft) !important; }
.viva-kit__item:nth-child(5) { border-top-color: var(--vh-lavender) !important; }
.viva-kit__item:nth-child(6) { border-top-color: var(--vh-butter) !important; }
.viva-kit__icon { font-family: 'Caveat', cursive !important; font-size: 48px !important; color: var(--vh-cta) !important; line-height: 1 !important; margin-bottom: 12px !important; display: block !important; font-weight: 700 !important; }
.viva-kit__title { font-family: 'Fredoka', sans-serif !important; font-size: 18px !important; font-weight: 600 !important; color: var(--vh-ink) !important; margin: 0 0 8px !important; }
.viva-kit__desc { font-size: 14px !important; color: var(--vh-ink-sub) !important; line-height: 1.6 !important; margin: 0 !important; font-family: 'Nunito', sans-serif !important; }

/* ─── COMPOSITION ─── */
.viva-comp__grid { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 20px !important; }
.viva-comp__card { background: var(--vh-white) !important; border-radius: 20px !important; padding: 32px 20px !important; text-align: center !important; box-shadow: 0 4px 16px var(--vh-shadow) !important; }
.viva-comp__card svg { width: 40px !important; height: 40px !important; color: var(--vh-cta) !important; margin-bottom: 16px !important; }
.viva-comp__title { font-family: 'Fredoka', sans-serif !important; font-size: 16px !important; font-weight: 600 !important; color: var(--vh-ink) !important; margin: 0 0 8px !important; }
.viva-comp__desc { font-size: 13px !important; color: var(--vh-ink-sub) !important; line-height: 1.5 !important; margin: 0 !important; font-family: 'Nunito', sans-serif !important; }

/* ─── PERSONAS ─── */
.viva-pf__grid { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 20px !important; }
.viva-pf__card { background: linear-gradient(135deg, var(--vh-butter-pale), var(--vh-cta-pale)) !important; border-radius: 20px !important; padding: 28px !important; display: flex !important; gap: 20px !important; align-items: flex-start !important; }
.viva-pf__icon { font-family: 'Caveat', cursive !important; font-size: 48px !important; color: var(--vh-cta) !important; line-height: 1 !important; flex-shrink: 0 !important; font-weight: 700 !important; }
.viva-pf__text h3 { font-family: 'Fredoka', sans-serif !important; font-size: 18px !important; font-weight: 600 !important; color: var(--vh-ink) !important; margin: 0 0 6px !important; }
.viva-pf__text p { font-size: 14px !important; color: var(--vh-ink-sub) !important; line-height: 1.6 !important; margin: 0 !important; font-family: 'Nunito', sans-serif !important; }

/* ─── REVIEWS ─── */
.viva-rev__summary { display: flex !important; align-items: center !important; justify-content: center !important; gap: 32px !important; margin-bottom: 48px !important; flex-wrap: wrap !important; }
.viva-rev__rating { text-align: center; }
.viva-rev__num { font-family: 'Fredoka', sans-serif !important; font-size: 64px !important; font-weight: 700 !important; color: var(--vh-ink) !important; line-height: 1 !important; }
.viva-rev__stars { color: var(--vh-cta) !important; font-size: 20px !important; letter-spacing: 3px !important; margin: 8px 0 !important; }
.viva-rev__count { font-size: 13px !important; color: var(--vh-ink-sub) !important; font-family: 'Nunito', sans-serif !important; }
.viva-rev__grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 24px !important; }
.viva-rev__card { background: var(--vh-white) !important; border-radius: 20px !important; padding: 28px !important; }
.viva-rev__s { color: var(--vh-cta) !important; font-size: 14px !important; letter-spacing: 2px !important; margin-bottom: 12px !important; }
.viva-rev__text { font-style: italic !important; color: var(--vh-ink) !important; font-size: 15px !important; line-height: 1.7 !important; margin: 0 0 16px !important; font-family: 'Nunito', sans-serif !important; }
.viva-rev__author { display: flex !important; align-items: center !important; gap: 10px !important; }
.viva-rev__avatar { width: 36px !important; height: 36px !important; border-radius: 50% !important; background: var(--vh-cta-pale) !important; display: flex !important; align-items: center !important; justify-content: center !important; font-family: 'Fredoka', sans-serif !important; font-weight: 700 !important; color: var(--vh-cta-dk) !important; font-size: 14px !important; }
.viva-rev__info { display: flex !important; flex-direction: column !important; gap: 2px !important; }
.viva-rev__name { font-weight: 700 !important; color: var(--vh-ink) !important; font-size: 13px !important; font-family: 'Nunito', sans-serif !important; }
.viva-rev__meta { font-size: 11px !important; color: var(--vh-ink-sub) !important; }
.viva-rev__verified { display: inline-flex !important; align-items: center !important; gap: 4px !important; color: var(--vh-mint) !important; font-size: 11px !important; margin-top: 4px !important; }

/* ─── FAQ ─── */
.viva-faq__list { max-width: 800px !important; margin: 0 auto !important; }
.viva-faq__item { background: var(--vh-white) !important; border-radius: 14px !important; margin-bottom: 12px !important; overflow: hidden !important; border: 1px solid var(--vh-bg-warm) !important; }
.viva-faq__q { padding: 20px 24px !important; cursor: pointer !important; display: flex !important; justify-content: space-between !important; align-items: center !important; font-family: 'Fredoka', sans-serif !important; font-size: 15px !important; font-weight: 600 !important; color: var(--vh-ink) !important; list-style: none !important; }
.viva-faq__q::-webkit-details-marker { display: none !important; }
.viva-faq__q::after { content: "+"; font-size: 24px; color: var(--vh-cta); font-weight: 300; flex-shrink: 0; margin-left: 16px; transition: transform 0.2s ease; }
.viva-faq__item[open] .viva-faq__q::after { content: "−"; }
.viva-faq__a { padding: 0 24px 20px !important; color: var(--vh-ink-sub) !important; font-size: 14px !important; line-height: 1.7 !important; font-family: 'Nunito', sans-serif !important; }

/* ─── CTA FINAL ─── */
.viva-cta-final { background: var(--vh-ink) !important; color: var(--vh-bg) !important; padding: 100px 24px !important; text-align: center !important; position: relative !important; overflow: hidden !important; }
.viva-cta-final::before { content: ""; position: absolute; width: 500px; height: 500px; top: -150px; left: -150px; background: radial-gradient(circle, rgba(232,152,80,0.1) 0%, transparent 70%); border-radius: 50%; pointer-events: none; }
.viva-cta-final__tag { font-family: 'Caveat', cursive !important; font-size: 28px !important; color: var(--vh-cta) !important; margin-bottom: 16px !important; display: block !important; position: relative !important; z-index: 2 !important; font-weight: 500 !important; }
.viva-cta-final__title { font-family: 'Fredoka', sans-serif !important; font-size: clamp(32px, 5vw, 48px) !important; font-weight: 700 !important; line-height: 1.1 !important; margin: 0 0 24px !important; letter-spacing: -0.02em !important; color: var(--vh-bg) !important; position: relative !important; z-index: 2 !important; }
.viva-cta-final__title em { font-family: 'Fraunces', 'Times New Roman', serif !important; font-style: italic !important; font-weight: 300 !important; color: var(--vh-cta) !important; }
.viva-cta-final__sub { font-size: 17px !important; color: var(--vh-ink-lt) !important; max-width: 520px !important; margin: 0 auto 32px !important; line-height: 1.6 !important; font-family: 'Nunito', sans-serif !important; position: relative !important; z-index: 2 !important; }
.viva-cta-final__btn { display: inline-flex !important; align-items: center !important; gap: 10px !important; padding: 20px 40px !important; border-radius: 50px !important; background: var(--vh-cta) !important; color: #fff !important; font-family: 'Fredoka', sans-serif !important; font-size: 16px !important; font-weight: 700 !important; text-decoration: none !important; transition: all .3s ease !important; letter-spacing: .5px !important; position: relative !important; z-index: 2 !important; min-height: 56px !important; box-sizing: border-box !important; }
.viva-cta-final__btn:hover { transform: translateY(-2px) !important; box-shadow: 0 8px 24px rgba(232,152,80,.4) !important; background: var(--vh-cta-dk) !important; color: #fff !important; }

/* Maillage interne collection (SEO phase 7) */
.viva-related-coll.viva-sec { background: var(--vh-bg-warm) !important; }
.viva-related-coll__list { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid !important; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)) !important; gap: 20px !important; max-width: 960px !important; margin-inline: auto !important; }
.viva-related-coll__link { display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; text-decoration: none !important; color: var(--vh-ink) !important; gap: 12px !important; padding: 12px !important; border-radius: 16px !important; transition: background .2s ease !important; }
.viva-related-coll__link:hover { background: rgba(232,152,80,.12) !important; }
.viva-related-coll__img { width: 100% !important; max-width: 200px !important; height: auto !important; aspect-ratio: 1 !important; object-fit: cover !important; border-radius: 12px !important; }
.viva-related-coll__name {
  font-family: 'Fredoka', sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  color: var(--vh-ink) !important;
}

/* ─── RESPONSIVE ─── */
@media (max-width: 880px) {
  .viva-prod { grid-template-columns: 1fr !important; gap: 32px !important; padding: 24px 16px !important; }
  .viva-info { position: static !important; }
  .viva-info__title { font-size: 32px !important; }
  .viva-story__title, .viva-sec__title, .viva-cta-final__title { font-size: 32px !important; }
  .viva-story__body { font-size: 18px !important; }
  .viva-kit__grid, .viva-comp__grid, .viva-pf__grid, .viva-rev__grid, .viva-size-guide__grid, .viva-family__grid { grid-template-columns: repeat(2, 1fr) !important; }
  .viva-versus__head, .viva-versus__row { grid-template-columns: 1fr !important; font-size: 12px !important; }
  .viva-versus__cell { padding: 12px !important; }
  .viva-sec, .viva-story, .viva-cta-final { padding: 60px 16px !important; }
}
@media (max-width: 560px) {
  .viva-kit__grid, .viva-comp__grid, .viva-pf__grid, .viva-rev__grid, .viva-size-guide__grid, .viva-family__grid { grid-template-columns: 1fr !important; }
  .viva-size-options { grid-template-columns: 1fr !important; }
}

/* ─── SÉCURITÉ ─── */
.skip-link { z-index: 1000 !important; }
.viva-prod-wrapper script { display: none !important; }

/* ============================================================
   HOMEPAGE — Parité visuelle honey-page-final.html
   Scope : body.viva-homepage #MainContent.viva-home uniquement.
   (Ne modifie pas les sections JSON — styles uniquement.)
   ============================================================ */

@keyframes viva-home-wiggle {
  0%,
  100% {
    transform: rotate(-2deg);
  }
  50% {
    transform: rotate(2deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.viva-homepage #MainContent.viva-home .viva-overline {
    animation: none !important;
  }
  body.viva-homepage #MainContent.viva-home .promo-track,
  body.viva-homepage .shopify-section.viva-marquee .promo-track,
  body.viva-pdp .shopify-section.viva-marquee .promo-track {
    animation: none !important;
  }
}

body.viva-homepage #MainContent.viva-home {
  position: relative;
}

body.viva-homepage #MainContent.viva-home::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background-image: radial-gradient(var(--viva-cta) 1.5px, transparent 1.5px);
  background-size: 40px 40px;
  background-position: 0 0;
  opacity: 0.04;
}

body.viva-homepage #MainContent.viva-home > .shopify-section {
  position: relative;
  z-index: 1;
}

/* Hero : fond beurre + halos comme .hero-prod de la maquette */
body.viva-homepage #MainContent.viva-home .viva-hero {
  background: var(--viva-butter-pale) !important;
  padding-top: clamp(72px, 10vw, 96px) !important;
  padding-bottom: clamp(56px, 8vw, 80px) !important;
}

body.viva-homepage #MainContent.viva-home .viva-hero::before {
  content: '';
  position: absolute;
  top: -80px;
  right: -40px;
  width: min(300px, 55vw);
  height: min(300px, 55vw);
  background: radial-gradient(circle, var(--viva-cta-pale), transparent 70%);
  opacity: 0.55;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}

body.viva-homepage #MainContent.viva-home .viva-hero::after {
  content: '';
  position: absolute;
  bottom: -60px;
  left: -40px;
  width: min(260px, 50vw);
  height: min(260px, 50vw);
  background: radial-gradient(circle, var(--viva-butter), transparent 70%);
  opacity: 0.45;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}

/* Bouton secondaire : contour encre + survol inversé (comme .btn-sec-full) */
body.viva-homepage #MainContent.viva-home .viva-hero__btn-sec {
  border: 2px solid var(--viva-ink) !important;
  background: transparent !important;
}

body.viva-homepage #MainContent.viva-home .viva-hero__btn-sec:hover {
  background: var(--viva-ink) !important;
  color: var(--viva-bg) !important;
  border-color: var(--viva-ink) !important;
}

/* Brillance au survol sur le CTA principal du hero */
body.viva-homepage #MainContent.viva-home .viva-hero__btn-cta {
  position: relative !important;
  overflow: hidden !important;
  box-shadow: 0 6px 24px rgba(232, 152, 80, 0.35) !important;
}

body.viva-homepage #MainContent.viva-home .viva-hero__btn-cta::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
  transition: 0.6s;
  pointer-events: none;
}

body.viva-homepage #MainContent.viva-home .viva-hero__btn-cta:hover::before {
  left: 100%;
}

/* Overlines façon .sec-tag (Caveat léger) */
body.viva-homepage #MainContent.viva-home .viva-overline {
  animation: viva-home-wiggle 5s ease-in-out infinite;
}

/* Sections : un peu plus d’air type maquette (100px desktop) */
@media (min-width: 900px) {
  body.viva-homepage #MainContent.viva-home .viva-section {
    padding-top: clamp(64px, 8vw, 100px) !important;
    padding-bottom: clamp(64px, 8vw, 100px) !important;
  }
}

/* ============================================================
   VIVA — Pass marque global (body.viva-theme)
   Minicart / drawer panier mobile, modale recherche, compte,
   boutons génériques #MainContent, typo hors sections Viva.
   ============================================================ */

body.viva-theme {
  background: var(--viva-bg, #faf7f2);
  color: var(--viva-ink, #2c2420);
  --viva-bg: #faf7f2;
  --viva-bg-warm: #fff5ee;
  --viva-ink: #2c2420;
  --viva-ink-sub: #7a6b5d;
  --viva-cta: #e89850;
  --viva-cta-dk: #c97a35;
  --viva-cta-pale: #fdf0e0;
  --viva-alert: #e8907a;
  --viva-alert-pale: #fff0eb;
}

body.viva-theme #MainContent {
  font-family: 'Nunito', 'Helvetica Neue', Arial, sans-serif;
  color: var(--viva-ink);
}

/* Liens texte dans le contenu — exclure tous les boutons CTA (fond orange + texte blanc) */
body.viva-theme #MainContent a:not(.viva-btn-cta):not(.viva-btn-sec):not(.btn):not(.button):not(.btn-cta):not(.viva-final-cta__btn):not(.viva-hero__btn-cta):not(.viva-hero__btn-sec):not(.viva-bundle__btn):not(.bun-btn):not(.cta-final-btn):not(.viva-uh-btn-cta):not(.viva-quiz-result__cta):not(.checkout__button):not(.cloud-btn) {
  color: var(--viva-cta-dk, #c97a35);
}
body.viva-theme #MainContent a:not(.viva-btn-cta):not(.viva-btn-sec):not(.btn):not(.button):not(.btn-cta):not(.viva-final-cta__btn):not(.viva-hero__btn-cta):not(.viva-hero__btn-sec):not(.viva-bundle__btn):not(.bun-btn):not(.cta-final-btn):not(.viva-uh-btn-cta):not(.viva-quiz-result__cta):not(.checkout__button):not(.cloud-btn):hover {
  color: var(--viva-cta, #e89850);
}

/* Boutons orange : texte blanc lisible (priorité sur liens génériques + héritage sections sombres) */
body.viva-theme .btn-cta,
body.viva-theme .viva-btn-cta,
body.viva-theme .viva-final-cta__btn,
body.viva-theme .viva-hero__btn-cta,
body.viva-theme .viva-bundle__btn,
body.viva-theme .bun-btn,
body.viva-theme .cta-final-btn,
body.viva-theme .viva-uh-btn-cta,
body.viva-theme .viva-quiz-result__cta,
body.viva-theme #MainContent .checkout__button,
body.viva-theme .minicart-section .checkout__button,
body.viva-theme mini-cart .checkout__button,
body.viva-theme #MainContent .btn--primary,
body.viva-theme #MainContent .btn.btn--primary,
body.viva-theme #MainContent button.btn--primary,
body.viva-theme .viva-final-cta__btn * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
body.viva-theme .btn-cta:hover,
body.viva-theme .viva-btn-cta:hover,
body.viva-theme .viva-final-cta__btn:hover,
body.viva-theme .viva-hero__btn-cta:hover,
body.viva-theme .viva-bundle__btn:hover,
body.viva-theme .bun-btn:hover,
body.viva-theme .cta-final-btn:hover,
body.viva-theme .viva-uh-btn-cta:hover,
body.viva-theme .viva-quiz-result__cta:hover,
body.viva-theme #MainContent .checkout__button:hover,
body.viva-theme .minicart-section .checkout__button:hover,
body.viva-theme mini-cart .checkout__button:hover,
body.viva-theme #MainContent .btn--primary:hover,
body.viva-theme #MainContent .btn.btn--primary:hover,
body.viva-theme #MainContent button.btn--primary:hover,
body.viva-theme .viva-final-cta__btn:hover * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

/* Boutons primaires génériques (hors homepage déjà couverte) */
body.viva-theme #MainContent .btn.btn--primary,
body.viva-theme #MainContent .btn--primary,
body.viva-theme #MainContent button.btn--primary {
  background: var(--viva-cta) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 999px !important;
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
  transition: background 0.2s ease, transform 0.2s ease;
}
body.viva-theme #MainContent .btn.btn--primary:hover,
body.viva-theme #MainContent .btn--primary:hover {
  background: var(--viva-cta-dk) !important;
}

/* CTA final — centrage garanti sur toutes les pages (accueil, collections, à propos) */
body.viva-theme .viva-final-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  text-align: center;
}
body.viva-theme .viva-final-cta__wrap {
  width: 100%;
  max-width: 680px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
  z-index: 2;
}
body.viva-theme .viva-final-cta__overline,
body.viva-theme .viva-final-cta__title,
body.viva-theme .viva-final-cta__sub,
body.viva-theme .viva-final-cta__footnote {
  width: 100%;
  max-width: 100%;
  text-align: center;
}
body.viva-theme .viva-final-cta__sub {
  max-width: 560px;
  margin-inline: auto;
}
body.viva-theme .viva-final-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-inline: auto;
  text-align: center;
}
body.viva-theme .viva-final-cta-wrapper {
  width: 100%;
  max-width: 100%;
}

/* ─── Panier latéral / minicart (classes réelles : cart-item, etc.)
     Important : le HTML dans mini-cart (header) est le clone du contenu de
     .minicart-section sans le wrapper .minicart-section — il faut cibler
     mini-cart .minicart-container en parallèle. ─── */
body.viva-theme .minicart-section,
body.viva-theme .minicart-section .cart,
body.viva-theme mini-cart .minicart-container,
body.viva-theme mini-cart .minicart-container .cart {
  background: var(--viva-bg) !important;
  color: var(--viva-ink) !important;
  font-family: 'Nunito', sans-serif !important;
}

body.viva-theme mini-cart .minicart-container {
  display: flex !important;
  flex-direction: column !important;
  min-height: 0 !important;
}

body.viva-theme .minicart-section .minicart-close,
body.viva-theme mini-cart .minicart-container .minicart-close {
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 8px 12px !important;
  padding: 18px 18px 14px !important;
  padding-top: max(18px, env(safe-area-inset-top, 0px)) !important;
  margin: 0 !important;
  border-bottom: 2px dashed var(--viva-cta-pale) !important;
  background: linear-gradient(180deg, #fff 0%, var(--viva-bg-warm) 100%) !important;
}

body.viva-theme .minicart-section .minicart-close .cart__heading,
body.viva-theme mini-cart .minicart-container .minicart-close .cart__heading {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

body.viva-theme .minicart-section .minicart-close .section-container-title,
body.viva-theme mini-cart .minicart-container .minicart-close .section-container-title {
  margin: 0 !important;
}

body.viva-theme .minicart-section .minicart-close .section-title,
body.viva-theme .minicart-section .minicart-close .h2,
body.viva-theme mini-cart .minicart-container .minicart-close .section-title,
body.viva-theme mini-cart .minicart-container .minicart-close .h2 {
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 700 !important;
  font-size: 1.35rem !important;
  letter-spacing: -0.02em !important;
  color: var(--viva-ink) !important;
  margin: 0 !important;
  line-height: 1.2 !important;
}

body.viva-theme .minicart-section .minicart-close .inline-flex,
body.viva-theme mini-cart .minicart-container .minicart-close .inline-flex {
  flex: 0 0 auto !important;
  font-family: 'Fredoka', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--viva-cta-dk, #c97a35) !important;
  gap: 8px !important;
  max-width: 58% !important;
  line-height: 1.05 !important;
  text-align: left !important;
  white-space: normal !important;
  cursor: pointer;
  padding: 7px 10px !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.75) !important;
  border: 1px solid var(--viva-cta-pale) !important;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease !important;
}

body.viva-theme .minicart-section .minicart-close .inline-flex:hover,
body.viva-theme mini-cart .minicart-container .minicart-close .inline-flex:hover {
  background: #fff !important;
  color: var(--viva-cta, #e89850) !important;
}

body.viva-theme .minicart-section .minicart-close svg,
body.viva-theme mini-cart .minicart-container .minicart-close svg {
  color: var(--viva-cta) !important;
  flex-shrink: 0 !important;
}

@media only screen and (max-width: 420px) {
  body.viva-theme .minicart-section .minicart-close,
  body.viva-theme mini-cart .minicart-container .minicart-close {
    align-items: flex-start !important;
    gap: 6px 10px !important;
  }

  body.viva-theme .minicart-section .minicart-close .section-title,
  body.viva-theme .minicart-section .minicart-close .h2,
  body.viva-theme mini-cart .minicart-container .minicart-close .section-title,
  body.viva-theme mini-cart .minicart-container .minicart-close .h2 {
    font-size: 1.15rem !important;
  }

  body.viva-theme .minicart-section .minicart-close .inline-flex,
  body.viva-theme mini-cart .minicart-container .minicart-close .inline-flex {
    max-width: 54% !important;
    padding: 6px 8px !important;
  }
}

body.viva-theme .minicart-section .minicart-blocks,
body.viva-theme mini-cart .minicart-container .minicart-blocks {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-gutter: stable !important;
  padding: 8px 4px 12px !important;
}

body.viva-theme mini-cart .cart-item__price {
  min-width: 5.75rem !important;
  flex-shrink: 0 !important;
  align-self: flex-start !important;
  padding-top: 2px !important;
}

body.viva-theme .minicart-section .cart-item,
body.viva-theme mini-cart .cart-item {
  background: #fff !important;
  border: 1px solid rgba(232, 152, 80, 0.2) !important;
  border-radius: 18px !important;
  padding: 14px 14px !important;
  margin-bottom: 12px !important;
  box-shadow: 0 4px 18px rgba(61, 43, 31, 0.06) !important;
  align-items: flex-start !important;
  gap: 12px 16px !important;
}

body.viva-theme .minicart-section .cart-item__image,
body.viva-theme mini-cart .cart-item__image {
  flex-shrink: 0 !important;
}

body.viva-theme mini-cart .minicart-container .cart .cart-item__image {
  width: 156px !important;
  max-width: 156px !important;
  margin-right: 0 !important;
  margin-bottom: 0 !important;
}

@media only screen and (max-width: 779px) {
  body.viva-theme mini-cart .minicart-container .cart .cart-item__image {
    width: 128px !important;
    max-width: 128px !important;
  }
}

body.viva-theme mini-cart .minicart-container .cart .cart-item__content {
  width: calc(100% - 156px - 16px) !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: 1 1 auto !important;
}

@media only screen and (max-width: 779px) {
  body.viva-theme mini-cart .minicart-container .cart .cart-item__content {
    width: calc(100% - 128px - 16px) !important;
  }
}

body.viva-theme mini-cart .cart-item__content-container {
  gap: 0 16px !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  align-items: flex-start !important;
}

body.viva-theme .minicart-section .cart-item__image .image-container,
body.viva-theme mini-cart .cart-item__image .image-container {
  border-radius: 14px !important;
  overflow: hidden !important;
  border: 1px solid var(--viva-cta-pale) !important;
  background: var(--viva-bg-warm) !important;
}

body.viva-theme mini-cart .minicart-container .cart .cart-item__image .image-container {
  width: 100% !important;
  aspect-ratio: 1 !important;
  height: auto !important;
}

body.viva-theme mini-cart .minicart-container .cart .cart-item__image img.minicart-line__img,
body.viva-theme mini-cart .minicart-container .cart .cart-item__image .minicart-line__img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}

body.viva-theme mini-cart .minicart-container .cart .cart-item__image .placeholder-svg {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 !important;
  object-fit: contain !important;
  padding: 8px !important;
  box-sizing: border-box !important;
}

/* Source cachée .minicart-section : mêmes proportions que le clone dans le header */
body.viva-theme .minicart-section .cart .cart-item__image {
  width: 156px !important;
  max-width: 156px !important;
  margin-right: 0 !important;
}

@media only screen and (max-width: 779px) {
  body.viva-theme .minicart-section .cart .cart-item__image {
    width: 128px !important;
    max-width: 128px !important;
  }
}

body.viva-theme .minicart-section .cart .cart-item__content {
  width: calc(100% - 156px - 16px) !important;
  max-width: none !important;
  min-width: 0 !important;
}

@media only screen and (max-width: 779px) {
  body.viva-theme .minicart-section .cart .cart-item__content {
    width: calc(100% - 128px - 16px) !important;
  }
}

body.viva-theme .minicart-section .cart .cart-item__content-container {
  gap: 0 16px !important;
}

body.viva-theme .minicart-section .cart .cart-item__image .image-container {
  width: 100% !important;
  aspect-ratio: 1 !important;
  height: auto !important;
}

body.viva-theme .minicart-section .cart .cart-item__image img.minicart-line__img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}

body.viva-theme .minicart-section .cart-item__title,
body.viva-theme mini-cart .cart-item__title {
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  line-height: 1.35 !important;
  color: var(--viva-ink) !important;
  text-decoration: none !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}
body.viva-theme .minicart-section .cart-item__title:hover,
body.viva-theme mini-cart .cart-item__title:hover {
  color: var(--viva-cta) !important;
}

body.viva-theme .minicart-section .cart-item__type,
body.viva-theme mini-cart .cart-item__type {
  color: var(--viva-ink-sub, #7a6b5d) !important;
  font-size: 12px !important;
}

body.viva-theme .minicart-section .cart-item__subscription,
body.viva-theme mini-cart .cart-item__subscription {
  font-size: 12px !important;
  color: var(--viva-cta-dk, #c97a35) !important;
  margin-top: 4px !important;
}

body.viva-theme .minicart-section .cart-item__price,
body.viva-theme .minicart-section .item-price,
body.viva-theme mini-cart .cart-item__price,
body.viva-theme mini-cart .item-price {
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 700 !important;
  color: var(--viva-ink) !important;
}

body.viva-theme .minicart-section .item-price--sale,
body.viva-theme mini-cart .item-price--sale {
  color: var(--viva-cta-dk, #c97a35) !important;
}

body.viva-theme .minicart-section .product-tag--sober,
body.viva-theme mini-cart .product-tag--sober {
  background: var(--viva-cta-pale) !important;
  color: var(--viva-cta-dk, #c97a35) !important;
  border-radius: 8px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  padding: 2px 8px !important;
  border: none !important;
}

body.viva-theme .minicart-section .cart-item__manager,
body.viva-theme .minicart-section .cart-item__manager--nude,
body.viva-theme mini-cart .cart-item__manager,
body.viva-theme mini-cart .cart-item__manager--nude {
  border: 1px solid var(--viva-cta-pale) !important;
  border-radius: 999px !important;
  background: var(--viva-bg-warm) !important;
  overflow: hidden;
}

body.viva-theme .minicart-section .quantity__button,
body.viva-theme mini-cart .quantity__button {
  border: none !important;
  background: transparent !important;
  color: var(--viva-cta-dk, #c97a35) !important;
  min-width: 36px !important;
  min-height: 36px !important;
  border-radius: 50% !important;
}
body.viva-theme .minicart-section .quantity__button:hover,
body.viva-theme mini-cart .quantity__button:hover {
  background: #fff !important;
  color: var(--viva-ink) !important;
}

body.viva-theme .minicart-section .quantity__input,
body.viva-theme mini-cart .quantity__input {
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 600 !important;
  color: var(--viva-ink) !important;
  border: none !important;
  background: transparent !important;
  min-width: 2ch !important;
}

body.viva-theme .minicart-section .quantity__button--delete,
body.viva-theme mini-cart .quantity__button--delete {
  color: var(--viva-ink-sub, #7a6b5d) !important;
  text-decoration: none !important;
  font-size: 12px !important;
  font-family: 'Nunito', sans-serif !important;
  border-radius: 10px !important;
  padding: 4px 8px !important;
}

body.viva-theme .minicart-section .quantity__button--delete:hover,
body.viva-theme mini-cart .quantity__button--delete:hover {
  color: var(--viva-alert, #e8907a) !important;
  background: var(--viva-alert-pale, #fff0eb) !important;
}

body.viva-theme .minicart-section .mini-cart-item__manager-container,
body.viva-theme mini-cart .mini-cart-item__manager-container {
  gap: 10px !important;
  flex-wrap: wrap !important;
}

body.viva-theme .minicart-section .cart__change-variant summary,
body.viva-theme mini-cart .cart__change-variant summary {
  font-family: 'Fredoka', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--viva-cta-dk, #c97a35) !important;
  list-style: none !important;
  cursor: pointer !important;
  padding: 6px 0 !important;
}

body.viva-theme .minicart-section .cart__change-variant .select-variant,
body.viva-theme mini-cart .cart__change-variant .select-variant {
  margin-top: 6px !important;
}

body.viva-theme .minicart-section .cart__selector-variant,
body.viva-theme mini-cart .cart__selector-variant {
  width: 100% !important;
  border-radius: 12px !important;
  border: 1px solid var(--viva-cta-pale) !important;
  padding: 8px 10px !important;
  font-family: 'Nunito', sans-serif !important;
  font-size: 13px !important;
  background: #fff !important;
  color: var(--viva-ink) !important;
}

body.viva-theme .minicart-section .cart__footer-total-container,
body.viva-theme mini-cart .cart__footer-total-container {
  border-top: 1px dashed var(--viva-cta-pale) !important;
  padding-top: 12px !important;
  margin-bottom: 8px !important;
}

body.viva-theme .minicart-section .cart__footer-subtotal,
body.viva-theme .minicart-section .cart__footer-reduction,
body.viva-theme mini-cart .cart__footer-subtotal,
body.viva-theme mini-cart .cart__footer-reduction {
  font-family: 'Nunito', sans-serif !important;
  font-size: 14px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 6px 0 !important;
  color: var(--viva-ink) !important;
}

body.viva-theme .minicart-section .cart__footer-subtotal .cart__footer-subtotal-text,
body.viva-theme mini-cart .cart__footer-subtotal .cart__footer-subtotal-text {
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 700 !important;
  font-size: 1.05rem !important;
}

body.viva-theme .minicart-section .link_collapsing_title,
body.viva-theme mini-cart .link_collapsing_title {
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  color: var(--viva-ink-sub, #7a6b5d) !important;
  list-style: none !important;
  padding: 10px 12px !important;
  border-radius: 14px !important;
  background: var(--viva-bg-warm) !important;
  border: 1px solid var(--viva-cta-pale) !important;
}

body.viva-theme .minicart-section .cart__note,
body.viva-theme mini-cart .cart__note {
  border-radius: 14px !important;
  border: 1px solid var(--viva-cta-pale) !important;
  padding: 10px 12px !important;
  font-family: 'Nunito', sans-serif !important;
  margin-top: 8px !important;
}

body.viva-theme .minicart-section .input-group__field,
body.viva-theme mini-cart .input-group__field {
  border-radius: 12px !important;
  border: 1px solid var(--viva-cta-pale) !important;
  padding: 10px 12px !important;
}

body.viva-theme .minicart-section cart-timer,
body.viva-theme mini-cart cart-timer {
  display: block !important;
  background: var(--viva-cta-pale) !important;
  color: var(--viva-ink) !important;
  border-radius: 14px !important;
  padding: 10px 14px !important;
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  text-align: center !important;
}

body.viva-theme .minicart-section .minicart-footer,
body.viva-theme mini-cart .minicart-container .minicart-footer {
  background: linear-gradient(180deg, var(--viva-bg-warm) 0%, var(--viva-bg) 100%) !important;
  border-top: 2px dashed var(--viva-cta-pale) !important;
  padding: 18px 16px max(20px, env(safe-area-inset-bottom, 0px)) !important;
}

body.viva-theme .minicart-section .checkout__button,
body.viva-theme .minicart-section .checkout__button.btn--full-width,
body.viva-theme mini-cart .checkout__button,
body.viva-theme mini-cart .checkout__button.btn--full-width {
  width: 100% !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, var(--viva-cta, #e89850) 0%, var(--viva-cta-dk, #c97a35) 100%) !important;
  color: #fff !important;
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  letter-spacing: 0.02em !important;
  padding: 16px 22px !important;
  border: none !important;
  box-shadow: 0 8px 24px rgba(232, 152, 80, 0.35) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease !important;
}

body.viva-theme .minicart-section .checkout__button:hover,
body.viva-theme mini-cart .checkout__button:hover {
  filter: brightness(1.05) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 28px rgba(232, 152, 80, 0.42) !important;
}

body.viva-theme .minicart-section .checkout__button .icon--spinner,
body.viva-theme mini-cart .checkout__button .icon--spinner {
  opacity: 0.9 !important;
}

body.viva-theme .minicart-section .payment-icons,
body.viva-theme mini-cart .payment-icons {
  margin-top: 12px !important;
  opacity: 0.85 !important;
  gap: 8px !important;
}

body.viva-theme .minicart-section .cart__empty-title,
body.viva-theme .minicart-section .cart__empty-description,
body.viva-theme mini-cart .cart__empty-title,
body.viva-theme mini-cart .cart__empty-description {
  font-family: 'Fredoka', sans-serif !important;
  color: var(--viva-ink) !important;
}

body.viva-theme .minicart-section .cart__empty-description,
body.viva-theme mini-cart .cart__empty-description {
  font-family: 'Nunito', sans-serif !important;
  font-weight: 500 !important;
  color: var(--viva-ink-sub, #7a6b5d) !important;
}

body.viva-theme .minicart-section .cart__empty .btn,
body.viva-theme mini-cart .cart__empty .btn {
  border-radius: 999px !important;
  background: var(--viva-cta) !important;
  color: #fff !important;
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 700 !important;
  border: none !important;
  padding: 14px 28px !important;
}

body.viva-theme .minicart-section .cart__empty-link,
body.viva-theme mini-cart .cart__empty-link {
  border-radius: 16px !important;
  overflow: hidden !important;
  border: 1px solid var(--viva-cta-pale) !important;
}

/* Panneau minicart : host transparent + voile (sidebar et popup). Le contenu .minicart-content reste opaque. */
body.viva-theme #shopify-header-section details.minicart[open] > mini-cart {
  background: transparent !important;
}

body.viva-theme #shopify-header-section details.minicart[open] > mini-cart::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(61, 43, 31, 0.36);
  z-index: 0;
  pointer-events: auto;
}

body.viva-theme #shopify-header-section details.minicart[open] > mini-cart.menu-drawer--content > .menu-drawer--content {
  background: transparent !important;
  pointer-events: none !important;
  z-index: 1 !important;
}

body.viva-theme #shopify-header-section details.minicart[open] mini-cart .minicart-content {
  pointer-events: auto !important;
  /* Conserver le panneau latéral à droite : le thème positionne .menu-drawer--right en absolute + right:0.
     Un `position:relative` ici replaçait le bloc en flux et le collait à gauche du volet plein écran. */
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: auto !important;
  height: 100% !important;
  max-height: 100dvh !important;
  z-index: 2 !important;
}

body.viva-theme mini-cart .minicart-content.menu-drawer--right,
body.viva-theme .minicart-content.menu-drawer--right,
body.viva-theme #shopify-header-section details.minicart[open] mini-cart .minicart-content:not(.menu-drawer--right) {
  background: var(--viva-bg) !important;
  color: var(--viva-ink) !important;
}

body.viva-theme details.minicart[open] mini-cart .minicart-content.menu-drawer--right {
  box-shadow: -8px 0 32px rgba(61, 43, 31, 0.12) !important;
}

@media (max-width: 779px) {
  body.viva-theme:has(#shopify-header-section details.minicart[open]) .shopify-section.viva-marquee,
  body.viva-theme:has(#shopify-header-section details.minicart[open]) .announce_bar {
    z-index: 1 !important;
  }

  body.viva-theme #shopify-header-section:has(details.minicart[open]),
  body.viva-theme #shopify-header-section details.minicart[open],
  body.viva-theme #shopify-header-section details.minicart[open] > mini-cart {
    z-index: 99999 !important;
  }

  body.viva-theme #shopify-header-section details.minicart[open] > mini-cart.menu-drawer--content {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-width: none !important;
  }

  body.viva-theme #shopify-header-section details.minicart[open] mini-cart .minicart-content.menu-drawer--right,
  body.viva-theme details.minicart[open] mini-cart .minicart-content.menu-drawer--right {
    width: min(86vw, 420px) !important;
    max-width: min(86vw, 420px) !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 24px 0 0 24px !important;
    box-shadow: -18px 0 46px rgba(44, 36, 32, 0.18) !important;
    overflow: hidden !important;
  }

  body.viva-theme #shopify-header-section details.minicart[open] mini-cart .minicart-container {
    height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 24px 0 0 24px !important;
  }

  body.viva-theme #shopify-header-section details.minicart[open] mini-cart .modal__close {
    min-height: 58px;
    padding: 12px 14px !important;
    border-bottom: 1px solid rgba(232, 152, 80, 0.22) !important;
    background: #fff8ef !important;
    gap: 10px;
  }

  body.viva-theme #shopify-header-section details.minicart[open] mini-cart .modal__close .cart__heading {
    min-width: 0;
  }

  body.viva-theme #shopify-header-section details.minicart[open] mini-cart .modal__close .section-title {
    font-size: 22px !important;
    line-height: 1.05 !important;
    margin: 0 !important;
  }

  body.viva-theme #shopify-header-section details.minicart[open] mini-cart .modal__close > .inline-flex {
    flex: 0 0 auto;
    min-height: 34px;
    padding: 8px 12px;
    border: 1px solid rgba(232, 152, 80, 0.24);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.82);
    color: var(--viva-ink) !important;
    font-family: 'Nunito', sans-serif;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
  }

  body.viva-theme #shopify-header-section details.minicart[open] mini-cart .modal__close svg.icon {
    width: 12px;
    height: 12px;
    margin-right: 6px;
  }

  body.viva-theme .minicart-section .minicart-blocks,
  body.viva-theme mini-cart .minicart-container .minicart-blocks {
    padding-left: max(14px, env(safe-area-inset-left, 0px)) !important;
    padding-right: max(14px, env(safe-area-inset-right, 0px)) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  body.viva-theme #shopify-header-section details.minicart[open] .cart__content {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.viva-theme .minicart-section .cart-item,
  body.viva-theme mini-cart .cart-item {
    flex-wrap: wrap !important;
    gap: 10px !important;
    padding-block: 14px !important;
  }
  body.viva-theme .minicart-section .cart-item__price,
  body.viva-theme mini-cart .cart-item__price {
    width: 100% !important;
    justify-content: flex-end !important;
    margin-top: 10px !important;
    padding-top: 8px !important;
    border-top: 1px dashed rgba(232, 152, 80, 0.35) !important;
  }

  body.viva-theme mini-cart .mini-cart-item__manager-container {
    width: 100% !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-top: 6px !important;
    gap: 8px !important;
  }

  body.viva-theme mini-cart .cart-item__manager {
    flex: 1 1 auto !important;
    max-width: 11rem !important;
  }

  body.viva-theme #shopify-header-section details.minicart[open] mini-cart .minicart-footer {
    padding-inline: 14px !important;
    padding-bottom: max(14px, env(safe-area-inset-bottom)) !important;
    border-radius: 20px 20px 0 0 !important;
  }
}

@media (max-width: 389px) {
  body.viva-theme #shopify-header-section details.minicart[open] mini-cart .minicart-content.menu-drawer--right,
  body.viva-theme details.minicart[open] mini-cart .minicart-content.menu-drawer--right {
    width: 88vw !important;
    max-width: 88vw !important;
  }

  body.viva-theme #shopify-header-section details.minicart[open] mini-cart .modal__close > .inline-flex {
    font-size: 0;
    width: 38px;
    height: 38px;
    justify-content: center;
    padding: 0;
  }

  body.viva-theme #shopify-header-section details.minicart[open] mini-cart .modal__close svg.icon {
    margin-right: 0;
  }
}

/* Modale recherche */
body.viva-theme .search-popup-modal__content,
body.viva-theme .search-popup-modal .search__input,
body.viva-theme .search-popup-modal .input-group {
  font-family: 'Nunito', sans-serif !important;
  color: var(--viva-ink) !important;
}
body.viva-theme .search-popup-modal .section-title {
  font-family: 'Fredoka', sans-serif !important;
  color: var(--viva-ink) !important;
}
body.viva-theme .search-popup-modal .input-group__btn button,
body.viva-theme .search-popup-modal .input-group button[type='submit'] {
  background: var(--viva-cta) !important;
  color: #fff !important;
  border-radius: 0 12px 12px 0 !important;
  border: 1px solid var(--viva-cta) !important;
}
body.viva-theme .search-popup-modal .search__input.input-field,
body.viva-theme .search-popup-modal .input-group .search__input {
  border: 1px solid var(--viva-cta-pale) !important;
  border-radius: 12px 0 0 12px !important;
  background: var(--viva-white) !important;
}
body.viva-theme .search-popup-modal__close {
  color: var(--viva-ink) !important;
}

body.viva-theme search-bar .search-bar__result {
  position: relative;
  z-index: 20;
}

body.viva-theme search-bar .search-bar__result-content {
  width: 100%;
}

body.viva-theme .viva-search-suggest__item {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 10px;
  border-radius: 16px;
  color: var(--viva-ink) !important;
  text-decoration: none !important;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(232, 152, 80, 0.14);
  transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

body.viva-theme .viva-search-suggest__item + .viva-search-suggest__item {
  margin-top: 8px;
}

body.viva-theme .viva-search-suggest__item:hover,
body.viva-theme .viva-search-suggest__item:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(232, 152, 80, 0.38);
  background: #fff;
}

body.viva-theme .viva-search-suggest__media {
  flex: 0 0 54px;
  width: 54px;
  height: 54px;
  border-radius: 14px;
  overflow: hidden;
  background: var(--viva-butter-pale);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--viva-cta);
  font-family: 'Fredoka', sans-serif;
  font-weight: 700;
}

body.viva-theme .viva-search-suggest__media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

body.viva-theme .viva-search-suggest__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

body.viva-theme .viva-search-suggest__title {
  font-family: 'Fredoka', sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--viva-ink);
}

body.viva-theme .viva-search-suggest__price {
  font-size: 13px;
  font-weight: 800;
  color: var(--viva-cta-dk);
}

body.viva-theme .viva-search-suggest__empty {
  padding: 14px;
  border-radius: 16px;
  background: var(--viva-butter-pale);
  color: var(--viva-ink-sub);
  text-align: center;
}

body.viva-theme .viva-search-suggest__empty p {
  margin: 0 0 8px;
}

body.viva-theme .viva-search-suggest__empty a {
  color: var(--viva-cta-dk);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

menu-drawer.viva-nav-drawer .menu-drawer__header .search-bar__result {
  margin-top: 10px;
}

menu-drawer.viva-nav-drawer .menu-drawer__header .search-bar__result-content {
  display: block !important;
}

body.viva-theme .search-popup-modal .search-bar__result-content {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

body.viva-theme .search-popup-modal .viva-search-suggest__item + .viva-search-suggest__item {
  margin-top: 0;
}

@media (max-width: 779px) {
  body.viva-theme .search-popup-modal .search-bar__result-content {
    grid-template-columns: 1fr;
  }
}

/* Espace compte (customers) */
body.viva-template-customers .page-container,
body.viva-template-customers .page-element {
  background: var(--viva-bg) !important;
  color: var(--viva-ink) !important;
  font-family: 'Nunito', sans-serif !important;
}
body.viva-template-customers #MainContent h1,
body.viva-template-customers #MainContent h2,
body.viva-template-customers #MainContent .section-title {
  font-family: 'Fredoka', sans-serif !important;
  color: var(--viva-ink) !important;
}
body.viva-template-customers #MainContent .btn,
body.viva-template-customers #MainContent button[type='submit'],
body.viva-template-customers #MainContent input[type='submit'] {
  border-radius: 999px !important;
  font-family: 'Fredoka', sans-serif !important;
  font-weight: 700 !important;
}
body.viva-template-customers #MainContent a {
  color: var(--viva-cta-dk) !important;
}
body.viva-template-customers #MainContent a:hover {
  color: var(--viva-cta) !important;
}
body.viva-template-customers #MainContent .input-group input,
body.viva-template-customers #MainContent .input-field,
body.viva-template-customers #MainContent input:not([type='checkbox']):not([type='radio']) {
  border-radius: 12px !important;
  border-color: var(--viva-cta-pale) !important;
}

/* ============================================================
   VIVA UX/UI POLISH — design system global
   ------------------------------------------------------------
   Objectif : finition premium, cohérence boutique, mobile-first,
   sans ajouter de JS ni de composants lourds.
   ============================================================ */

body.viva-theme {
  --viva-radius-sm: 12px;
  --viva-radius-md: 18px;
  --viva-radius-lg: 28px;
  --viva-radius-xl: 36px;
  --viva-line-soft: rgba(232, 152, 80, 0.22);
  --viva-shadow-soft: 0 10px 28px rgba(61, 43, 31, 0.08);
  --viva-shadow-lift: 0 18px 48px rgba(61, 43, 31, 0.12);
  --viva-focus: 0 0 0 3px rgba(232, 152, 80, 0.32);
}

body.viva-theme .page-container,
body.viva-theme .page-element {
  background:
    radial-gradient(circle at top right, rgba(253, 240, 224, 0.75), transparent 30vw),
    radial-gradient(circle at bottom left, rgba(228, 240, 228, 0.36), transparent 28vw),
    var(--viva-bg, #faf7f2) !important;
}

body.viva-theme a:focus-visible,
body.viva-theme button:focus-visible,
body.viva-theme input:focus-visible,
body.viva-theme select:focus-visible,
body.viva-theme textarea:focus-visible {
  outline: none !important;
  box-shadow: var(--viva-focus) !important;
}

/* Header : plus premium, moins plat */
#shopify-header-section .section-container.viva-header-honey {
  background: rgba(250, 247, 242, 0.94) !important;
  backdrop-filter: blur(14px);
  box-shadow: 0 8px 24px rgba(61, 43, 31, 0.05);
}

#shopify-header-section .viva-hdr__menu-block {
  border-top-color: rgba(232, 152, 80, 0.18) !important;
}

#shopify-header-section .viva-hdr__menu-links .header__link {
  border-radius: 999px;
  padding: 8px 10px !important;
}

#shopify-header-section .viva-hdr__menu-links .header__link:hover,
#shopify-header-section .viva-hdr__menu-links .header__link.active {
  background: var(--viva-cta-pale, #fdf0e0) !important;
}

/* Homepage : hero plus travaillé, meilleure lisibilité au-dessus de la ligne de flottaison */
body.viva-homepage #MainContent.viva-home .viva-hero {
  background:
    radial-gradient(circle at 14% 20%, rgba(244, 169, 168, 0.24), transparent 24vw),
    radial-gradient(circle at 84% 12%, rgba(232, 152, 80, 0.22), transparent 28vw),
    linear-gradient(180deg, #fff5ee 0%, #fdf6e0 48%, #faf7f2 100%) !important;
}

body.viva-homepage #MainContent.viva-home .viva-hero__in {
  max-width: 860px !important;
  padding: clamp(28px, 4vw, 52px) clamp(18px, 4vw, 56px) !important;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: var(--viva-radius-xl);
  background: rgba(255, 255, 255, 0.42);
  box-shadow: 0 18px 60px rgba(61, 43, 31, 0.08);
  backdrop-filter: blur(8px);
}

body.viva-homepage #MainContent.viva-home .viva-hero__title {
  max-width: 760px;
  margin-left: auto !important;
  margin-right: auto !important;
  letter-spacing: -0.045em !important;
}

body.viva-homepage #MainContent.viva-home .viva-hero__sub {
  max-width: 680px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  font-size: clamp(16px, 1.55vw, 19px) !important;
}

body.viva-homepage #MainContent.viva-home .viva-hero__ctas {
  gap: 12px !important;
}

body.viva-homepage #MainContent.viva-home .viva-hero__btn-cta,
body.viva-homepage #MainContent.viva-home .viva-final-cta__btn,
body.viva-homepage #MainContent.viva-home .viva-bundle__btn,
body.viva-homepage #MainContent.viva-home .viva-card__btn,
body.viva-template-cart .viva-cart__checkout,
body.viva-theme .minicart-section .checkout__button,
body.viva-theme mini-cart .checkout__button {
  min-height: 50px;
  border-radius: 999px !important;
  letter-spacing: 0.01em !important;
  box-shadow: 0 10px 24px rgba(232, 152, 80, 0.28) !important;
}

body.viva-homepage #MainContent.viva-home .viva-hero__btn-cta:hover,
body.viva-homepage #MainContent.viva-home .viva-final-cta__btn:hover,
body.viva-homepage #MainContent.viva-home .viva-bundle__btn:hover,
body.viva-homepage #MainContent.viva-home .viva-card__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(232, 152, 80, 0.34) !important;
}

body.viva-homepage #MainContent.viva-home .viva-hero__proof,
body.viva-homepage #MainContent.viva-home .viva-story__testi-summary {
  width: fit-content;
  max-width: 100%;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 10px 16px !important;
  border: 1px solid var(--viva-line-soft);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.74);
  box-shadow: 0 8px 20px rgba(61, 43, 31, 0.06);
}

/* Sections : rythme plus qualitatif, moins “blocs posés” */
body.viva-homepage #MainContent.viva-home .viva-section,
body.viva-homepage #MainContent.viva-home .sec {
  scroll-margin-top: 110px;
}

body.viva-homepage #MainContent.viva-home .viva-guide__grid,
body.viva-homepage #MainContent.viva-home .viva-why__grid,
body.viva-homepage #MainContent.viva-home .viva-bundles__grid,
body.viva-homepage #MainContent.viva-home .viva-story__testi-grid {
  gap: clamp(16px, 2vw, 26px) !important;
}

body.viva-homepage #MainContent.viva-home .viva-guide__card,
body.viva-homepage #MainContent.viva-home .viva-why__card,
body.viva-homepage #MainContent.viva-home .viva-bundle,
body.viva-homepage #MainContent.viva-home .viva-testi-card,
body.viva-homepage #MainContent.viva-home .viva-seo__block,
body.viva-homepage #MainContent.viva-home .viva-seo-block,
body.viva-template-cart .viva-cart__summary,
body.viva-template-cart .viva-cart-item {
  border: 1px solid rgba(232, 152, 80, 0.18) !important;
  border-radius: var(--viva-radius-lg) !important;
  box-shadow: var(--viva-shadow-soft) !important;
}

body.viva-homepage #MainContent.viva-home .viva-guide__card,
body.viva-homepage #MainContent.viva-home .viva-why__card,
body.viva-homepage #MainContent.viva-home .viva-bundle,
body.viva-homepage #MainContent.viva-home .viva-testi-card {
  position: relative;
  overflow: hidden;
}

body.viva-homepage #MainContent.viva-home .viva-bundles-sec,
body.viva-homepage #MainContent.viva-home .viva-bundles__wrap,
body.viva-homepage #MainContent.viva-home .viva-bundles__grid {
  overflow: visible !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundles-sec {
  overflow-x: clip !important;
  overflow-y: visible !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundles__grid {
  padding-top: clamp(18px, 2.4vw, 28px) !important;
  align-items: stretch !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundle {
  overflow: visible !important;
  isolation: isolate;
}

body.viva-homepage #MainContent.viva-home .viva-bundle--featured,
body.viva-homepage #MainContent.viva-home .viva-bundle:hover {
  z-index: 2;
}

body.viva-homepage #MainContent.viva-home .viva-bundle__pop,
body.viva-homepage #MainContent.viva-home .viva-bundle__save {
  z-index: 3;
}

body.viva-homepage #MainContent.viva-home .viva-guide__card::before,
body.viva-homepage #MainContent.viva-home .viva-why__card::before,
body.viva-homepage #MainContent.viva-home .viva-bundle::before,
body.viva-homepage #MainContent.viva-home .viva-testi-card::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, var(--viva-cta), var(--viva-rose), var(--viva-mint));
  opacity: 0.85;
}

@media (hover: hover) and (pointer: fine) {
  body.viva-homepage #MainContent.viva-home .viva-guide__card:hover,
  body.viva-homepage #MainContent.viva-home .viva-why__card:hover,
  body.viva-homepage #MainContent.viva-home .viva-bundle:hover,
  body.viva-homepage #MainContent.viva-home .viva-testi-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--viva-shadow-lift) !important;
  }

  body.viva-homepage #MainContent.viva-home .viva-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--viva-shadow-lift) !important;
  }
}

body.viva-homepage #MainContent.viva-home .viva-guide__card-title,
body.viva-homepage #MainContent.viva-home .viva-bundle__name,
body.viva-homepage #MainContent.viva-home .viva-why__card-title,
body.viva-homepage #MainContent.viva-home .viva-testi-card__name {
  letter-spacing: -0.02em;
}

/* Produits home : cartes plus premium et CTA plus lisible */
body.viva-homepage #MainContent.viva-home .viva-card {
  border: 1px solid rgba(232, 152, 80, 0.16) !important;
  border-radius: 24px !important;
  box-shadow: var(--viva-shadow-soft) !important;
}

body.viva-homepage #MainContent.viva-home .viva-card__media,
body.viva-homepage #MainContent.viva-home .product_image {
  background:
    linear-gradient(145deg, rgba(253, 246, 224, 0.95), rgba(253, 240, 224, 0.86)) !important;
}

/* Bloc SEO : lecture plus éditoriale et moins compacte */
body.viva-homepage #MainContent.viva-home .viva-seo__block,
body.viva-homepage #MainContent.viva-home .viva-seo-block {
  max-width: 980px !important;
  padding: clamp(28px, 4vw, 52px) !important;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(255, 245, 238, 0.76)) !important;
}

body.viva-homepage #MainContent.viva-home .viva-seo__block h2,
body.viva-homepage #MainContent.viva-home .viva-seo-block h2 {
  margin-top: 1.55em !important;
  margin-bottom: 0.45em !important;
  padding-top: 0.2em;
  border-top: 1px dashed rgba(232, 152, 80, 0.22);
}

body.viva-homepage #MainContent.viva-home .viva-seo__block h2:first-of-type,
body.viva-homepage #MainContent.viva-home .viva-seo-block h2:first-of-type {
  border-top: 0;
  margin-top: 1em !important;
}

/* Collection, cart, customers : finition commune */
body.viva-template-cart .viva-cart,
body.viva-template-customers #MainContent {
  background:
    radial-gradient(circle at 85% 0, rgba(253, 240, 224, 0.72), transparent 28vw),
    var(--viva-bg, #faf7f2) !important;
}

body.viva-template-customers #MainContent .account,
body.viva-template-customers #MainContent .account-main,
body.viva-template-customers #MainContent .customer-register,
body.viva-template-customers #MainContent .login,
body.viva-template-customers #MainContent .recover-password,
body.viva-template-customers #MainContent .reset-password {
  border-radius: var(--viva-radius-lg);
}

body.viva-template-customers #MainContent .account-main,
body.viva-template-customers #MainContent .customer-register,
body.viva-template-customers #MainContent .login,
body.viva-template-customers #MainContent .recover-password,
body.viva-template-customers #MainContent .reset-password {
  background: rgba(255, 255, 255, 0.84);
  border: 1px solid rgba(232, 152, 80, 0.16);
  box-shadow: var(--viva-shadow-soft);
}

body.viva-template-customers #MainContent input:not([type='checkbox']):not([type='radio']),
body.viva-template-customers #MainContent select,
body.viva-template-customers #MainContent textarea,
body.viva-template-cart .viva-cart__note {
  min-height: 46px;
  background: #fff !important;
  border: 1px solid rgba(232, 152, 80, 0.28) !important;
  box-shadow: 0 4px 12px rgba(61, 43, 31, 0.04);
}

@media (max-width: 779px) {
  body.viva-homepage #MainContent.viva-home .viva-hero__in {
    border-radius: 26px;
    padding: 28px 18px !important;
  }

  body.viva-homepage #MainContent.viva-home .viva-hero__ctas {
    width: 100%;
  }

  body.viva-homepage #MainContent.viva-home .viva-hero__btn-cta,
  body.viva-homepage #MainContent.viva-home .viva-hero__btn-sec {
    width: 100%;
    justify-content: center;
  }

  body.viva-homepage #MainContent.viva-home .viva-final-cta__btn {
    width: min(100%, 420px);
    max-width: 100%;
    justify-content: center;
    margin-inline: auto;
  }

  body.viva-homepage #MainContent.viva-home .viva-hero__proof,
  body.viva-homepage #MainContent.viva-home .viva-story__testi-summary {
    border-radius: 20px;
    width: 100%;
    justify-content: center;
  }

  body.viva-homepage #MainContent.viva-home .viva-guide__card,
  body.viva-homepage #MainContent.viva-home .viva-why__card,
  body.viva-homepage #MainContent.viva-home .viva-bundle,
  body.viva-homepage #MainContent.viva-home .viva-testi-card {
    border-radius: 22px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.viva-homepage #MainContent.viva-home .viva-guide__card:hover,
  body.viva-homepage #MainContent.viva-home .viva-why__card:hover,
  body.viva-homepage #MainContent.viva-home .viva-bundle:hover,
  body.viva-homepage #MainContent.viva-home .viva-testi-card:hover,
  body.viva-homepage #MainContent.viva-home .viva-card:hover,
  body.viva-homepage #MainContent.viva-home .viva-hero__btn-cta:hover,
  body.viva-homepage #MainContent.viva-home .viva-final-cta__btn:hover {
    transform: none !important;
  }
}

/* Refonte packs homepage : cartes cadeau premium, sans badges coupes */
body.viva-homepage #MainContent.viva-home .viva-bundles-sec {
  padding: clamp(56px, 8vw, 92px) clamp(16px, 4vw, 32px) !important;
  background:
    radial-gradient(circle at 8% 0%, rgba(232, 152, 80, 0.16), transparent 28vw),
    radial-gradient(circle at 92% 10%, rgba(143, 175, 126, 0.14), transparent 26vw),
    linear-gradient(180deg, #fff8ec 0%, #faf7f2 100%) !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundles__wrap {
  max-width: 1180px !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundles__head {
  max-width: 760px;
  margin-inline: auto;
  text-align: center;
}

body.viva-homepage #MainContent.viva-home .viva-bundles__grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(18px, 2.4vw, 28px) !important;
  margin-top: clamp(34px, 5vw, 52px) !important;
  padding-top: 0 !important;
  align-items: stretch !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundle {
  display: grid !important;
  grid-template-rows: auto auto 1fr auto auto;
  min-height: 100%;
  padding: 18px !important;
  overflow: hidden !important;
  isolation: isolate;
  text-align: left !important;
  border: 1px solid rgba(232, 152, 80, 0.18) !important;
  border-radius: 30px !important;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 248, 236, 0.92)) !important;
  box-shadow: 0 18px 48px rgba(74, 62, 54, 0.08) !important;
  transform: none !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundle::before {
  height: 100% !important;
  background:
    radial-gradient(circle at 18% 12%, rgba(232, 152, 80, 0.13), transparent 24%),
    radial-gradient(circle at 88% 18%, rgba(143, 175, 126, 0.12), transparent 22%) !important;
  opacity: 1 !important;
  z-index: -1;
}

body.viva-homepage #MainContent.viva-home .viva-bundle:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 24px 62px rgba(74, 62, 54, 0.13) !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundle--featured {
  border-color: rgba(232, 152, 80, 0.55) !important;
  background:
    linear-gradient(180deg, #ffffff 0%, #fff1df 100%) !important;
  box-shadow: 0 24px 70px rgba(232, 152, 80, 0.18) !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundle__pop,
body.viva-homepage #MainContent.viva-home .viva-bundle__save {
  position: absolute !important;
  top: 18px !important;
  left: auto !important;
  right: 18px !important;
  transform: none !important;
  width: fit-content;
  max-width: 100%;
  margin: 0 !important;
  border-radius: 999px !important;
  font-family: 'Fredoka', sans-serif !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  white-space: normal !important;
  z-index: 1 !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundle__pop {
  left: 18px !important;
  right: auto !important;
  padding: 9px 13px !important;
  color: #fff !important;
  background: var(--viva-cta) !important;
  box-shadow: 0 10px 20px rgba(232, 152, 80, 0.24);
}

body.viva-homepage #MainContent.viva-home .viva-bundle__save {
  padding: 8px 12px !important;
  color: #7c3325 !important;
  background: #ffe1d8 !important;
  border: 1px solid rgba(232, 139, 160, 0.35);
}

body.viva-homepage #MainContent.viva-home .viva-bundle__imgs {
  position: relative;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px !important;
  margin: 42px 0 20px !important;
  padding: 18px !important;
  border-radius: 24px;
  background:
    linear-gradient(145deg, rgba(253, 246, 224, 0.96), rgba(253, 240, 224, 0.88));
  border: 1px solid rgba(232, 152, 80, 0.14);
}

body.viva-homepage #MainContent.viva-home .viva-bundle__img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 !important;
  border-radius: 18px !important;
  background:
    radial-gradient(circle at 50% 35%, #fff 0%, #f4eadc 74%) !important;
  border: 1px solid rgba(44, 36, 32, 0.06);
  box-shadow: 0 10px 22px rgba(74, 62, 54, 0.08);
  overflow: hidden !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundle__img:nth-child(2) {
  transform: translateY(-8px);
}

body.viva-homepage #MainContent.viva-home .viva-bundle__img img,
body.viva-homepage #MainContent.viva-home .viva-bundle__img .bun-img__media {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundle__name {
  margin: 0 0 9px !important;
  font-family: 'Fredoka', sans-serif !important;
  font-size: clamp(19px, 2vw, 24px) !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.035em !important;
  color: var(--viva-ink) !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundle__desc {
  margin: 0 0 18px !important;
  font-family: 'Nunito', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  color: var(--viva-ink-lt) !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundle__prices {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: flex-start !important;
  align-items: baseline !important;
  gap: 10px !important;
  margin: auto 0 18px !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundle__price-now,
body.viva-homepage #MainContent.viva-home .viva-bundle__prices .now {
  font-family: 'Fredoka', sans-serif !important;
  font-size: clamp(25px, 2.7vw, 34px) !important;
  font-weight: 850 !important;
  color: var(--viva-ink) !important;
  order: 2;
}

body.viva-homepage #MainContent.viva-home .viva-bundle__price-was,
body.viva-homepage #MainContent.viva-home .viva-bundle__prices .was {
  font-family: 'Fredoka', sans-serif !important;
  font-size: clamp(17px, 1.85vw, 22px) !important;
  font-weight: 700 !important;
  color: #9a7b72 !important;
  text-decoration: line-through !important;
  text-decoration-thickness: 2px !important;
  order: 1;
}

body.viva-homepage #MainContent.viva-home .viva-bundle__btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  min-height: 52px !important;
  padding: 15px 18px !important;
  border-radius: 999px !important;
  background: var(--viva-ink) !important;
  color: #fff !important;
  font-family: 'Fredoka', sans-serif !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  box-shadow: 0 14px 28px rgba(44, 36, 32, 0.18) !important;
}

body.viva-homepage #MainContent.viva-home .viva-bundle__btn:hover {
  background: var(--viva-cta) !important;
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(232, 152, 80, 0.34) !important;
}

@media (max-width: 980px) {
  body.viva-homepage #MainContent.viva-home .viva-bundles__grid {
    grid-template-columns: 1fr !important;
    max-width: 560px;
    margin-inline: auto;
  }

  body.viva-homepage #MainContent.viva-home .viva-bundle {
    padding: 16px !important;
  }
}

@media (max-width: 520px) {
  body.viva-homepage #MainContent.viva-home .viva-bundles-sec {
    padding-inline: 14px !important;
  }

  body.viva-homepage #MainContent.viva-home .viva-bundle__imgs {
    padding: 12px !important;
    gap: 7px !important;
    border-radius: 20px;
  }

  body.viva-homepage #MainContent.viva-home .viva-bundle__img {
    border-radius: 14px !important;
  }

  body.viva-homepage #MainContent.viva-home .viva-bundle__save {
    top: 14px !important;
    right: 14px !important;
  }
}

/* Homepage — très petits écrans : grille guide 2 colonnes, titres sans débordement */
@media (max-width: 480px) {
  .viva-home .guide-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px 12px !important;
  }

  body.viva-homepage #MainContent.viva-home .viva-guide__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px 12px !important;
  }

  .viva-home .guide-card {
    padding: 14px 8px;
    border-radius: 14px;
  }

  .viva-home .guide-card-thumb {
    width: 88px;
    height: 88px;
    margin-bottom: 10px;
    border-radius: 14px;
  }

  .viva-home .guide-card h3 {
    font-size: 13px;
    line-height: 1.18;
    margin-bottom: 4px;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .viva-home .guide-card p {
    font-size: 11px;
    line-height: 1.38;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .viva-home .guide-card .g-link {
    margin-top: 8px;
    font-size: 10px;
  }

  body.viva-homepage #MainContent.viva-home .viva-guide__icon-char {
    font-size: clamp(28px, 9vw, 36px);
    margin-bottom: 8px;
  }

  body.viva-homepage #MainContent.viva-home .viva-guide__card-title {
    font-size: 13px !important;
    line-height: 1.18 !important;
  }

  body.viva-homepage #MainContent.viva-home .viva-guide__card-text {
    font-size: 11px !important;
    line-height: 1.38 !important;
  }

  body.viva-homepage #MainContent.viva-home .viva-bundle__img:nth-child(2) {
    transform: none !important;
  }

  body.viva-homepage #MainContent.viva-home .viva-hero__title {
    font-size: clamp(26px, 8.5vw, 34px) !important;
  }

  body.viva-homepage #MainContent.viva-home .viva-intro,
  body.viva-homepage #MainContent.viva-home .viva-hero__sub,
  body.viva-homepage #MainContent.viva-home .viva-final-cta__sub {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  body.viva-homepage #MainContent.viva-home .viva-seo-rich-sec .viva-seo-block.rte {
    overflow-wrap: anywhere;
  }

  /* Instagram : 3 colonnes → vignettes trop petites ; 2 colonnes = meilleure lisibilité / touch */
  .viva-home .insta-g {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
  }

  body.viva-homepage #MainContent.viva-home .viva-insta__sub,
  body.viva-homepage #MainContent.viva-home .viva-insta-sec .s-sub {
    overflow-wrap: anywhere;
    max-width: 100%;
  }

  body.viva-homepage #MainContent.viva-home .viva-story__sig {
    overflow-wrap: anywhere;
    padding-inline: 6px;
    box-sizing: border-box;
  }

  body.viva-homepage #MainContent.viva-home .shopify-section.viva-story-only .viva-our-story .viva-our-story__prose {
    overflow-wrap: anywhere;
  }

  .viva-home .promo-track__group span,
  body.viva-homepage .shopify-section.viva-marquee .promo-track__group span {
    font-size: 11px;
    letter-spacing: 0.01em;
  }

  body.viva-homepage #MainContent.viva-home .viva-testi-card__text {
    overflow-wrap: anywhere;
  }
}

/* ═══ FOOTER Viva — refonte premium responsive ═══ */
footer {
  --viva-footer-fs: clamp(0.98rem, 0.2vw + 0.94rem, 1.06rem);
  --viva-footer-fs-sm: clamp(0.9rem, 0.15vw + 0.86rem, 0.96rem);
  --viva-footer-fs-heading: clamp(0.84rem, 0.2vw + 0.8rem, 0.92rem);
  --viva-footer-lh: 1.62;
  --viva-footer-color: #4f443d;
  --viva-footer-color-strong: #2c2420;
  --viva-footer-muted: #7a6b5d;
  --viva-footer-accent: #c77732;
  --viva-footer-border: rgba(44, 36, 32, 0.11);
  --viva-footer-bg: var(--viva-bg-warm, #fff5ee);
  font-family: Nunito, system-ui, sans-serif;
  font-size: var(--viva-footer-fs);
  line-height: var(--viva-footer-lh);
  color: var(--viva-footer-color);
}

body.viva-theme footer[role='contentinfo'] {
  background:
    radial-gradient(circle at 8% 0%, rgba(245, 230, 163, 0.52), transparent 30%),
    radial-gradient(circle at 92% 12%, rgba(232, 152, 80, 0.22), transparent 28%),
    linear-gradient(180deg, #fffaf5 0%, var(--viva-footer-bg) 56%, #f8eadf 100%);
}

body.viva-theme footer[role='contentinfo'] .section-container.viva-footer-main,
body.viva-theme footer[role='contentinfo'] .section-container.viva-footer-post,
footer .viva-footer-main,
footer .viva-footer-post {
  background: transparent !important;
}

body.viva-theme footer[role='contentinfo'] .section-container.viva-footer-main,
footer .viva-footer-main {
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(232, 152, 80, 0.2);
}

footer .viva-footer-main::before {
  content: '';
  position: absolute;
  inset: 18px clamp(14px, 3vw, 42px) auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(154, 92, 40, 0.28), transparent);
  pointer-events: none;
}

footer .viva-footer-main > .page-width {
  position: relative;
  z-index: 1;
  width: min(100%, 1280px);
  margin-inline: auto;
  padding-inline: clamp(18px, 4vw, 48px);
}

/* Grille explicite : annule flex + mu--grid-span du thème Phantom */
footer .viva-footer-main .grid-cols,
footer .viva-footer-main .grid-cols.grid-cols--12,
footer .viva-footer-main .flex-justify--left.flex-align--start.grid-cols {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  grid-auto-flow: row;
  gap: 18px;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  justify-content: stretch !important;
  align-items: stretch !important;
  flex-wrap: nowrap !important;
}

footer .viva-footer-main .grid-cols > .flex__item,
footer .viva-footer-main .grid-cols > .menu_links,
footer .viva-footer-main .grid-cols > [id^='block--'],
footer .viva-footer-main .grid-cols > [class*='grid-span'] {
  grid-column: 1 / -1 !important;
  grid-row: auto !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

footer .viva-footer-main .footer__content,
footer .viva-footer-main .footer__native-liquid {
  font-size: var(--viva-footer-fs);
  line-height: var(--viva-footer-lh);
  color: var(--viva-footer-color);
}

footer .viva-footer-main .grid-cols > [id^='block--']:first-child .footer__content,
footer .viva-footer-main .grid-cols > [id^='block--']:last-child .footer__content {
  height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

footer .viva-footer-main .grid-cols > [id^='block--']:first-child .footer__content {
  background: transparent;
}

footer .viva-footer-main .grid-cols > [id^='block--']:last-child .footer__content {
  background: transparent;
}

footer .viva-footer-main .footer__title,
footer .viva-footer-main .link_collapsing_title,
footer .viva-footer-main summary.link_collapsing_title {
  margin: 0 0 16px;
  padding: 0 !important;
  font-family: Fredoka, Nunito, system-ui, sans-serif !important;
  font-size: var(--viva-footer-fs-heading) !important;
  font-weight: 800 !important;
  line-height: 1.22 !important;
  letter-spacing: 0.085em;
  text-transform: uppercase;
  color: var(--viva-footer-color-strong) !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  list-style: none;
  cursor: default;
  pointer-events: none;
}

footer .viva-footer-main .footer__title::after,
footer .viva-footer-main .link_collapsing_title::after,
footer .viva-footer-main summary.link_collapsing_title::after {
  content: '';
  display: block;
  width: 34px;
  height: 3px;
  margin-top: 9px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--viva-footer-accent), rgba(245, 230, 163, 0.95));
}

footer .viva-footer-main summary.link_collapsing_title .icon,
footer .viva-footer-main summary.link_collapsing_title svg {
  display: none !important;
}

footer .viva-footer-main .link_collapsing_title::-webkit-details-marker,
footer .viva-footer-main summary.link_collapsing_title::marker {
  display: none;
}

footer .viva-footer-main .link_collapsing_content {
  gap: 0;
}

footer .viva-footer-main .footer-menu-stack {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

footer .viva-footer-main .footer-menu-stack__group {
  margin: 0;
}

footer .viva-footer-main .footer-menu-stack__parent,
footer .viva-footer-main .link_collapsing_content a {
  display: inline-flex;
  align-items: center;
  width: auto;
  max-width: 100%;
  margin: 0 !important;
  padding: 6px 0 !important;
  font-family: Nunito, system-ui, sans-serif !important;
  font-size: var(--viva-footer-fs) !important;
  font-weight: 650 !important;
  line-height: 1.42 !important;
  text-decoration: none;
  color: var(--viva-footer-color) !important;
  border-radius: 999px;
  transition: color 0.18s ease, transform 0.18s ease;
}

footer .viva-footer-main .footer-menu-stack__parent[style],
footer .viva-footer-main .link_collapsing_content a[style] {
  padding-block: 6px !important;
  padding-inline: 0 !important;
}

footer .viva-footer-main .footer-menu-stack__parent:hover,
footer .viva-footer-main .link_collapsing_content a:hover,
body.viva-theme footer[role='contentinfo'] .viva-footer-main .footer__content .footer-menu-stack__parent:hover,
body.viva-theme footer[role='contentinfo'] .viva-footer-main .footer__content .link_collapsing_content a:hover {
  color: var(--viva-footer-accent) !important;
  background: transparent;
  transform: translateX(3px);
}

footer .viva-footer-main .footer-menu-stack__sub {
  display: none !important;
}

/* Marque */
.viva-footer-brand {
  max-width: 330px;
}

.viva-footer-brand__logo {
  display: block;
  width: min(198px, 100%);
  margin: 0 0 16px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.viva-footer-brand__logo img {
  width: 100%;
  height: auto;
  max-height: 64px;
  object-fit: contain;
}

.viva-footer-brand__logo span {
  font-family: Fredoka, Nunito, system-ui, sans-serif;
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--viva-footer-color-strong);
}

.viva-footer-brand__slogan,
.viva-footer-brand__promise {
  margin: 0 0 12px;
  font-size: var(--viva-footer-fs);
  line-height: var(--viva-footer-lh);
  color: var(--viva-footer-color);
}

.viva-footer-brand__slogan {
  display: inline-flex;
  max-width: 100%;
  margin-bottom: 10px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-weight: 800;
  font-size: var(--viva-footer-fs-sm);
  color: #8b5a2f;
  letter-spacing: 0.01em;
}

.viva-footer-brand__promise {
  max-width: 31ch;
  color: var(--viva-footer-muted);
}

.viva-footer-brand__trust {
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.viva-footer-brand__trust li {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: var(--viva-footer-fs-sm);
  font-weight: 700;
  line-height: 1.45;
  color: var(--viva-footer-color-strong);
}

.viva-footer-brand__trust li::before {
  content: "";
  flex: 0 0 8px;
  width: 8px;
  height: 8px;
  margin-top: 0.48em;
  border-radius: 999px;
  background: var(--viva-footer-accent);
  box-shadow: 0 0 0 5px rgba(232, 152, 80, 0.13);
}

/* Coordonnées */
.viva-footer-contact p {
  margin: 0 0 10px;
  font-size: var(--viva-footer-fs);
  line-height: var(--viva-footer-lh);
  color: var(--viva-footer-color);
}

.viva-footer-contact p:last-child {
  margin-bottom: 0;
}

.viva-footer-contact__meta {
  font-size: var(--viva-footer-fs-sm);
  font-weight: 650;
  color: var(--viva-footer-muted);
}

.viva-footer-contact__legal {
  padding-bottom: 12px;
  border-bottom: 1px solid var(--viva-footer-border);
}

.viva-footer-contact__legal strong {
  font-family: Fredoka, Nunito, system-ui, sans-serif;
  font-size: 1.08rem;
  font-weight: 800;
  color: var(--viva-footer-color-strong);
}

.viva-footer-contact__phone-note {
  display: inline-block;
  margin-left: 4px;
  font-size: var(--viva-footer-fs-sm);
  font-weight: 650;
  color: var(--viva-footer-muted);
}

.viva-footer-contact__hours {
  margin-top: 8px !important;
  padding-top: 12px;
  border-top: 1px solid var(--viva-footer-border);
}

.viva-footer-contact__hours strong {
  font-weight: 800;
  color: var(--viva-footer-color-strong);
}

.footer__native-liquid a,
.viva-footer-contact a {
  color: var(--viva-footer-color-strong);
  font-size: var(--viva-footer-fs);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(199, 119, 50, 0.32);
}

.footer__native-liquid a:hover,
.viva-footer-contact a:hover,
body.viva-theme footer[role='contentinfo'] .viva-footer-main .footer__content .footer__native-liquid a:hover,
body.viva-theme footer[role='contentinfo'] .viva-footer-main .footer__content .viva-footer-contact a:hover {
  color: var(--viva-footer-accent) !important;
  text-decoration-color: currentColor;
}

/* Barre copyright + paiements */
body.viva-theme footer[role='contentinfo'] .section-container.viva-footer-post,
footer .viva-footer-post {
  border-top: 1px solid var(--viva-footer-border);
}

footer .viva-footer-post > .page-width {
  width: min(100%, 1280px);
  margin-inline: auto;
  padding-inline: clamp(18px, 4vw, 48px);
}

footer .viva-footer-post .grid-cols {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px 22px;
}

footer .viva-footer-post .footer_copyright small,
footer .viva-footer-post .footer_copyright a {
  font-family: Nunito, system-ui, sans-serif;
  font-size: var(--viva-footer-fs-sm);
  line-height: var(--viva-footer-lh);
  color: var(--viva-footer-muted) !important;
}

footer .viva-footer-post .footer_copyright a:hover {
  color: var(--viva-footer-accent) !important;
}

footer .viva-footer-post .payment-icons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 7px 9px;
  margin: 0;
  padding: 0;
}

footer .viva-footer-post .payment-icons li {
  margin: 0;
}

footer .viva-footer-post .payment-icons .icon {
  width: 40px;
  height: auto;
  filter: saturate(1.04);
}

@media (min-width: 640px) and (max-width: 1023px) {
  footer .viva-footer-main .grid-cols,
  footer .viva-footer-main .grid-cols.grid-cols--12,
  footer .viva-footer-main .flex-justify--left.flex-align--start.grid-cols {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 22px !important;
    row-gap: 22px !important;
    align-items: stretch !important;
  }

  footer .viva-footer-main .grid-cols > [id^='block--']:first-child,
  footer .viva-footer-main .grid-cols > [id^='block--']:last-child {
    grid-column: 1 / -1 !important;
  }

  footer .viva-footer-main .grid-cols > .flex__item,
  footer .viva-footer-main .grid-cols > .menu_links,
  footer .viva-footer-main .grid-cols > [id^='block--'],
  footer .viva-footer-main .grid-cols > [class*='grid-span'] {
    grid-column: auto !important;
    grid-row: auto !important;
    padding: 0 !important;
    border-bottom: 0 !important;
  }

  .viva-footer-brand {
    max-width: 100%;
  }
}

@media (min-width: 1024px) {
  footer .viva-footer-main .grid-cols,
  footer .viva-footer-main .grid-cols.grid-cols--12,
  footer .viva-footer-main .flex-justify--left.flex-align--start.grid-cols {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.78fr) minmax(0, 0.86fr) minmax(0, 0.86fr) minmax(0, 1.18fr) !important;
    column-gap: clamp(20px, 2.4vw, 34px) !important;
    row-gap: 0 !important;
    align-items: stretch !important;
  }

  footer .viva-footer-main .grid-cols > .flex__item,
  footer .viva-footer-main .grid-cols > .menu_links,
  footer .viva-footer-main .grid-cols > [id^='block--'],
  footer .viva-footer-main .grid-cols > [class*='grid-span'] {
    grid-column: span 1 !important;
    grid-row: 1 !important;
  }
}

@media (max-width: 639px) {
  footer .viva-footer-main > .page-width,
  footer .viva-footer-post > .page-width {
    padding-inline: 18px !important;
  }

  footer .viva-footer-main .grid-cols {
    row-gap: 14px !important;
  }

  footer .viva-footer-main .grid-cols > .flex__item,
  footer .viva-footer-main .menu_links,
  footer .viva-footer-main [id^='block--'] {
    width: 100% !important;
    padding: 0 !important;
    border-bottom: 0;
  }

  footer .viva-footer-main .grid-cols > [id^='block--']:not(:first-child):not(:last-child) .footer__content {
    padding: 16px 0;
    border-bottom: 1px solid var(--viva-footer-border);
  }

  .viva-footer-brand {
    max-width: none;
  }

  .viva-footer-brand__logo {
    width: min(176px, 100%);
  }

  .viva-footer-brand__trust {
    gap: 7px;
  }

  footer .viva-footer-main .footer__title,
  footer .viva-footer-main .link_collapsing_title,
  footer .viva-footer-main summary.link_collapsing_title {
    margin: 0 0 11px;
    min-height: 0;
    display: block;
    pointer-events: none;
    cursor: default;
  }

  footer .viva-footer-main .footer__title::after,
  footer .viva-footer-main .link_collapsing_title::after,
  footer .viva-footer-main summary.link_collapsing_title::after {
    margin-top: 7px;
  }

  footer .viva-footer-main .link_collapsing_content {
    padding: 0;
  }

  footer .viva-footer-post .grid-cols {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  footer .viva-footer-post .payment-icons {
    justify-content: center;
  }
}

/* PDP — accordéon livraison & retour : liens vers politiques officielles */
.viva-acc-ship-policy-links {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(44, 36, 32, 0.1);
}
.viva-acc-ship-policy-links p {
  margin: 0;
  font-size: 0.94em;
  line-height: 1.5;
  color: var(--viva-ink-sub, #7a6b5d);
}
.viva-acc-ship-policy-links a {
  color: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Menu mobile : corps figé (theme.js → body.overflow-hidden-fixed) + scroll dans .menu-drawer__main */
@media screen and (max-width: 989px) {
  body.overflow-hidden-fixed.viva-theme {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100vw !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }
}
