/** Shopify CDN: Minification failed

Line 2901:0 Unexpected "{"
Line 2901:1 Unexpected "{"
Line 2901:10 Expected ":"
Line 4433:9 Unexpected "{"
Line 4433:18 Expected ":"
Line 4437:9 Unexpected "{"
Line 4437:18 Expected ":"
Line 4441:9 Unexpected "{"
Line 4441:18 Expected ":"
Line 4446:7 Unexpected "{"
... and 9 more hidden warnings

**/
/* SHOPIFY_STYLESHEETS_VERSION: 1.0 */


/* CSS from section stylesheet tags */
/* START_SECTION:about-us (INDEX:0) */
.au-wrap {
    background: var(--au-bg);
    padding-top: var(--au-padding-top);
    padding-bottom: var(--au-padding-bottom);
  }

  .au-inner {
    max-width: var(--au-max-width);
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .au-image-wrap {
    order: 1;
  }

  .au-content {
    order: 2;
    display: flex;
    flex-direction: column;
    gap: var(--au-content-gap);
  }

  .au-mobile-image--below .au-image-wrap {
    order: 2;
  }

  .au-mobile-image--below .au-content {
    order: 1;
  }

  @media (width >= 900px) {
    .au-inner {
      grid-template-columns: 1fr 1fr;
      align-items: center;
    }

    .au-image--left .au-image-wrap {
      order: 1;
    }

    .au-image--left .au-content {
      order: 2;
    }

    .au-image--right .au-image-wrap {
      order: 2;
    }

    .au-image--right .au-content {
      order: 1;
    }
  }

  .au-image-wrap {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: var(--au-image-radius);
  }

  .au-image-wrap.au-ratio--square {
    padding-top: 100%;
  }

  .au-image-wrap.au-ratio--portrait {
    padding-top: 125%;
  }

  .au-image-wrap.au-ratio--free {
    padding-top: 0;
    min-height: 320px;
  }

  .au-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .au-image--placeholder {
    background: color-mix(in srgb, var(--au-title-color) 10%, transparent);
  }

  .au-eyebrow {
    margin: 0;
    font-size: var(--au-eyebrow-size);
    font-weight: var(--eyebrow-font-weight);
    letter-spacing: var(--eyebrow-letter-spacing);
    color: var(--au-eyebrow-color);
  }

  .au-eyebrow--uppercase {
    text-transform: uppercase;
  }

  .au-title {
    margin: 0;
    font-size: var(--au-title-size);
    font-weight: 700;
    color: var(--au-title-color);
    line-height: 1.2;
  }

  .au-intro {
    font-size: var(--au-intro-size);
    color: var(--au-intro-color);
    line-height: 1.6;
  }

  .au-intro p {
    margin: 0;
  }

  .au-quote {
    margin: 0;
    font-size: var(--au-quote-size);
    color: var(--au-quote-text-color);
    padding: var(--au-quote-padding);
  }

  .au-quote--italic {
    font-style: italic;
  }

  .au-quote--border-left {
    border-left: var(--au-quote-border-width) solid var(--au-quote-border-color);
  }

  .au-quote--border-right {
    border-right: var(--au-quote-border-width) solid var(--au-quote-border-color);
  }

  .au-quote p {
    margin: 0;
  }

  .au-pillars {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--au-pillar-gap);
  }

  @media (width >= 600px) {
    .au-pillars--fixed {
      grid-template-columns: repeat(var(--au-pillars-columns, 3), 1fr);
    }

    .au-pillars--auto {
      grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    }
  }

  .au-pillars--align-center {
    text-align: center;
  }

  .au-pillars--align-center .au-pillar {
    align-items: center;
  }

  .au-pillar {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .au-pillar__icon {
    display: flex;
    color: var(--au-pillar-icon-color);
  }

  .au-pillar__icon .icon {
    font-size: var(--au-pillar-icon-size) !important;
  }

  .au-pillar__label {
    margin: 0;
    font-size: var(--au-pillar-label-size);
    font-weight: 700;
    color: var(--au-pillar-label-color);
  }

  .au-pillar__description {
    margin: 0;
    font-size: var(--au-pillar-description-size);
    color: var(--au-pillar-description-color);
    line-height: 1.5;
  }

  .au-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
  }

  .au-buttons--mobile-stacked {
    flex-direction: column;
    align-items: flex-start;
  }

  @media (width >= 600px) {
    .au-buttons--mobile-stacked {
      flex-direction: row;
      align-items: center;
    }
  }

  .au-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 13px 26px;
    border-radius: var(--au-button-radius);
    font-weight: 600;
    text-decoration: none;
    transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease;
  }

  .au-button--primary {
    background: var(--au-btn-primary-bg);
    color: var(--au-btn-primary-text);
    border: 1.5px solid var(--au-btn-primary-bg);
  }

  .au-button--primary:hover {
    background: var(--au-btn-primary-bg-hover);
    border-color: var(--au-btn-primary-bg-hover);
  }

  .au-button--secondary {
    background: transparent;
    color: var(--au-btn-secondary-text);
    border: 1.5px solid var(--au-btn-secondary-border);
  }

  .au-button--secondary:hover {
    background: var(--au-btn-secondary-bg-hover);
  }

  .au-button__icon {
    display: flex;
    align-items: center;
  }

  .au-button__icon .icon {
    font-size: 18px !important;
  }

  @media (prefers-reduced-motion: no-preference) {
    .au-reveal .au-image-wrap,
    .au-reveal .au-content > * {
      opacity: 0;
      transform: translateY(16px);
      transition: opacity 500ms ease, transform 500ms ease;
    }

    .au-reveal.au-in-view .au-image-wrap,
    .au-reveal.au-in-view .au-content > * {
      opacity: 1;
      transform: translateY(0);
    }
  }
/* END_SECTION:about-us */

/* START_SECTION:announcement-bar (INDEX:1) */
.announcement-bar {
    width: 100%;
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
  }

  .announcement-bar__content {
    width: 100%;
  }

  .announcement-bar__content .splide__arrow {
    background: transparent;
    border: none;

    .icon {
      font-size: 20px !important;
    }
  }
/* END_SECTION:announcement-bar */

/* START_SECTION:article-body-premium (INDEX:2) */
.arte-wrap {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }
  .article-rte {
    max-width: var(--arte-col, 680px);
    margin: 0 auto;
    padding: 0 20px;
    font-size: var(--arte-body-size, 16px);
    line-height: 1.75;
    color: var(--arte-text-color, #2c2c2c);
  }
  .article-rte > *:first-child { margin-top: 0; }
  .article-rte p { margin: 0 0 1.2em; }

  /* H1 dans le contenu (souvent présent en tête d'article) : maîtrisé,
     nettement plus petit que le titre de la bannière. */
  .article-rte h1 {
    margin: 4px 0 16px;
    font-family: var(--font-heading--family, inherit);
    font-size: var(--arte-h1-size, 26px);
    font-weight: 700;
    line-height: 1.22;
    color: var(--arte-h-color, #1a1a1a);
    border-left: var(--arte-border-w, 3px) solid var(--arte-accent, #777d43);
    padding-left: 12px;
  }

  .article-rte h2 {
    margin: 32px 0 12px;
    font-family: var(--font-heading--family, inherit);
    font-size: var(--arte-h2-size, 20px);
    font-weight: 600;
    line-height: 1.3;
    color: var(--arte-h-color, #1a1a1a);
    border-left: var(--arte-border-w, 3px) solid var(--arte-accent, #777d43);
    padding-left: 12px;
  }
  .article-rte h3 {
    margin: 26px 0 10px;
    font-family: var(--font-heading--family, inherit);
    font-size: var(--arte-h3-size, 17px);
    font-weight: 600;
    line-height: 1.3;
    color: var(--arte-h-color, #1a1a1a);
  }
  .article-rte h4 {
    margin: 22px 0 8px;
    font-family: var(--font-heading--family, inherit);
    font-size: var(--arte-body-size, 16px);
    font-weight: 600;
    color: var(--arte-h-color, #1a1a1a);
  }

  .article-rte a {
    color: var(--arte-accent, #777d43);
    text-underline-offset: 2px;
  }
  .article-rte img {
    max-width: 100%;
    height: auto;
    border-radius: 10px;
    margin: 1.2em 0;
  }

  .article-rte ol { margin: 0 0 1.2em; padding-left: 1.4em; }
  .article-rte ol li { margin: 0 0 0.4em; }

  .article-rte ul {
    margin: 0 0 1.2em;
    padding-left: 0;
    list-style: none;
  }
  .article-rte ul > li {
    position: relative;
    padding-left: 1.3em;
    margin: 0 0 0.4em;
  }
  .article-rte ul > li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.62em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--arte-accent, #777d43);
  }

  .article-rte blockquote {
    margin: 1.5em 0;
    padding: 16px 20px;
    background: var(--arte-quote-bg, #f5f4ef);
    border-left: 4px solid var(--arte-accent, #777d43);
    border-radius: 0 8px 8px 0;
    font-style: italic;
  }
  .article-rte blockquote p:last-child { margin-bottom: 0; }

  .article-rte hr {
    border: 0;
    border-top: 1px solid #e4e1d6;
    margin: 2em 0;
  }
/* END_SECTION:article-body-premium */

/* START_SECTION:article-header-premium (INDEX:3) */
.ahp {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  /* Bannière pleine largeur */
  .ahp__banner {
    position: relative;
    width: 100%;
    aspect-ratio: var(--ahp-ratio, 2.28);
    overflow: hidden;
    background: color-mix(in srgb, var(--ahp-badge-bg) 15%, transparent);
  }
  .ahp__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .ahp__scrim {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: var(--ahp-scrim-height, 60%);
    background: linear-gradient(
      to top,
      rgba(0, 0, 0, var(--ahp-scrim-opacity, 0.65)) 0%,
      rgba(0, 0, 0, 0) 100%
    );
    pointer-events: none;
  }
  .ahp__banner-inner {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    justify-content: center;
    padding: 0 var(--page-margin-desktop, 40px) clamp(20px, 4vw, 44px);
  }
  .ahp__banner-content {
    width: 100%;
    max-width: var(--page-width, 1300px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }
  .ahp__badge {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 999px;
    background: var(--ahp-badge-bg, #777d43);
    color: var(--ahp-badge-text, #fff);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.02em;
    text-transform: uppercase;
  }
  .ahp__title {
    margin: 0;
    max-width: 20ch;
    color: var(--ahp-title-color, #fff);
    font-family: var(--font-heading--family, inherit);
    font-weight: 600;
    line-height: 1.12;
    font-size: var(--ahp-title-size, 40px);
    text-wrap: balance;
  }

  /* Ligne méta */
  .ahp__meta-wrap {
    width: 100%;
    max-width: var(--ahp-content-width, 680px);
    margin: 0 auto;
    padding: 0 20px;
  }
  .ahp__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding-top: 20px;
  }
  .ahp__author {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
  }
  .ahp__avatar {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--ahp-avatar-bg, #777d43);
    color: var(--ahp-avatar-text, #fff);
    font-family: var(--font-heading--family, inherit);
    font-size: 17px;
    font-weight: 600;
    line-height: 1;
  }
  .ahp__author-block {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
  }
  .ahp__author-name {
    font-weight: 600;
    color: var(--ahp-author-color, #1a1a1a);
    font-size: 14px;
  }
  .ahp__sub {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    color: var(--ahp-meta-color, #6b6b6b);
    font-size: 13px;
  }
  .ahp__dot { opacity: 0.6; }

  .ahp__share {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border: 1px solid var(--ahp-separator, #e4e1d6);
    border-radius: 999px;
    background: transparent;
    color: var(--ahp-accent, #777d43);
    font-family: var(--font-body--family, inherit);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: border-color 0.2s ease, background-color 0.2s ease;
  }
  .ahp__share:hover {
    border-color: var(--ahp-accent, #777d43);
    background: color-mix(in srgb, var(--ahp-accent) 8%, transparent);
  }
  .ahp__share:focus-visible {
    outline: 2px solid var(--ahp-accent, #777d43);
    outline-offset: 2px;
  }
  .ahp__share-icon { display: inline-flex; }

  .ahp__separator {
    height: 0;
    border-top: 1px solid var(--ahp-separator, #e4e1d6);
    margin-top: 20px;
  }

  @media (max-width: 749px) {
    .ahp__banner { aspect-ratio: var(--ahp-ratio-mobile, 1.2); }
    .ahp__title { font-size: var(--ahp-title-size-mobile, 27px); }
  }

  @media (prefers-reduced-motion: reduce) {
    .ahp__share { transition: none; }
  }
/* END_SECTION:article-header-premium */

/* START_SECTION:article-related-premium (INDEX:4) */
.arel {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }
  .arel__inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }
  .arel__title {
    margin: 0 0 24px;
    font-family: var(--font-heading--family, inherit);
    font-weight: 600;
    font-size: 24px;
    line-height: 1.2;
    color: var(--arel-title-color, #1a1a1a);
  }
/* END_SECTION:article-related-premium */

/* START_SECTION:avis-clients (INDEX:5) */
.ac-wrap {
    background: var(--ac-bg);
    padding-top: var(--ac-padding-top);
    padding-bottom: var(--ac-padding-bottom);
  }

  .ac-inner {
    max-width: var(--ac-max-width);
    margin: 0 auto;
    padding: 0 24px;
  }

  .ac-header {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 28px;
  }

  .ac-header--center { align-items: center; text-align: center; }
  .ac-header--left { align-items: flex-start; text-align: left; }

  .ac-title {
    font-size: var(--ac-title-size);
    font-weight: var(--ac-title-weight);
    color: var(--ac-title-color);
    margin: 0;
  }

  .ac-title--uppercase { text-transform: uppercase; }

  .ac-subtitle {
    font-size: var(--ac-subtitle-size);
    color: var(--ac-subtitle-color);
    margin: 0;
  }

  .ac-rating {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 6px;
  }

  .ac-rating__stars {
    position: relative;
    display: inline-block;
    font-size: var(--ac-rating-star-size, 18px);
    line-height: 1;
  }

  /* Habillage "carré" (CORRECTIF #6 bis) : cf. assets/avis-cards.css, dupliqué
     ici volontairement pour cette section (voir commentaire en tête de fichier).
     Taille, espacement, forme, couleur et décalage personnalisables via le
     réglage "Personnaliser les étoiles ici" (voir schema), avec repli sur
     l'identité visuelle globale du thème sinon. */
  .ac-rating__stars-empty,
  .ac-rating__stars-filled {
    display: flex;
    gap: var(--ac-rating-star-gap, 3px);
  }

  .ac-rating__star-tile {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
    flex: none;
    border-radius: var(--rating-star-tile-radius, 18%);
    color: #fff;
    font-size: 0.55em;
    transform: translate(var(--rating-star-offset-x, 0px), var(--rating-star-offset-y, 0px));
  }

  .ac-rating__stars-empty .ac-rating__star-tile {
    background-color: var(--ac-star-empty, var(--rating-star-color-empty, #DCDCE6));
  }

  .ac-rating__stars-filled {
    position: absolute;
    top: 0;
    left: 0;
    width: var(--ac-fill);
    overflow: hidden;
    white-space: nowrap;
  }

  .ac-rating__stars-filled .ac-rating__star-tile {
    background-color: var(--ac-star-filled, var(--rating-star-color, #00B67A));
  }

  .ac-rating__value {
    font-size: 1.5em;
    font-weight: 700;
    color: var(--ac-title-color);
  }

  .ac-rating__count {
    color: var(--ac-subtitle-color);
    font-size: 14px;
  }

  /* CORRECTIF #13 : texte optionnel entre la note et le badge "Avis vérifiés".
     Hérite de la typographie du corps (aucune font-family imposée, comme
     .ac-rating__count ci-dessus) ; taille et couleur réglables. */
  .ac-rating__after {
    font-size: var(--ac-after-rating-size, 14px);
    color: var(--ac-after-rating-color, #6b6b6b);
  }

  .ac-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;
  }

  .ac-toolbar {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 24px;
  }

  .ac-toolbar--hide-mobile {
    display: none;
  }
  @media (width >= 750px) {
    .ac-toolbar--hide-mobile { display: flex; }
  }

  .ac-search__input,
  .ac-filter__select {
    background: var(--ac-field-bg);
    color: var(--ac-field-color);
    border: 1px solid var(--ac-field-border);
    border-radius: var(--ac-field-radius);
    padding: 10px 16px;
    font-size: 14px;
    min-width: 200px;
  }

  .ac-carousel {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
  }

  .ac-track {
    display: flex;
    align-items: flex-start;
    gap: var(--ac-card-gap);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    flex: 1;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
  }

  .ac-track:focus-visible {
    outline: 2px solid var(--ac-arrow-color);
    outline-offset: 4px;
  }

  .ac-card {
    scroll-snap-align: start;
    flex: 0 0 calc((100% - (var(--ac-cards-visible) - 1) * var(--ac-card-gap)) / var(--ac-cards-visible));
    background: var(--ac-card-bg);
    border-radius: var(--ac-card-radius);
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-sizing: border-box;
  }

  @media (width < 750px) {
    .ac-card {
      flex-basis: calc((100% - (var(--ac-cards-visible-mobile) - 1) * var(--ac-card-gap)) / var(--ac-cards-visible-mobile));
    }
  }

  .ac-card[hidden] { display: none; }

  /* Photo client (optionnelle) : hors flux si absente — la carte garde
     exactement la même mise en page qu'un avis sans photo, sans espace
     réservé (le gap de la carte ne s'applique qu'entre éléments présents). */
  .ac-card__photo {
    align-self: flex-start;
    display: block;
    width: var(--ac-photo-size);
    height: var(--ac-photo-size);
    padding: 0;
    margin: 0;
    border: none;
    border-radius: var(--ac-field-radius);
    overflow: hidden;
    cursor: pointer;
    flex-shrink: 0;
    /* 44x44 minimum tactile même si la taille réglée est plus petite */
    min-width: 44px;
    min-height: 44px;
  }

  .ac-card__photo:focus-visible {
    outline: 2px solid var(--ac-arrow-color);
    outline-offset: 2px;
  }

  .ac-card__photo-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 200ms ease;
  }

  .ac-card__photo:hover .ac-card__photo-img {
    transform: scale(1.06);
  }

  .ac-card__tag {
    align-self: flex-start;
    font-size: 12px;
    padding: 4px 12px;
    border-radius: var(--ac-field-radius);
    background: var(--ac-tag-bg);
    color: var(--ac-tag-color);
  }

  .ac-card__stars {
    display: flex;
    align-items: center;
    font-size: 15px;
    gap: 2px;
  }
  .ac-star {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
    flex: none;
    border-radius: var(--rating-star-tile-radius, 18%);
    color: #fff;
    font-size: 0.75em;
    background-color: var(--ac-star-empty, var(--rating-star-color-empty, #DCDCE6));
  }
  .ac-star--filled { background-color: var(--ac-star-filled, var(--rating-star-color, #00B67A)); }

  .ac-card__text {
    font-size: var(--ac-review-size);
    color: var(--ac-review-color);
    line-height: 1.55;
    margin: 0;
  }

  .ac-card__attribute {
    font-size: 12px;
    font-weight: 600;
    color: var(--ac-review-color);
    opacity: 0.7;
  }

  .ac-card__footer {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-top: 4px;
  }

  .ac-card__name {
    font-size: var(--ac-name-size);
    font-weight: 700;
    color: var(--ac-name-color);
  }

  .ac-card__date {
    font-size: 12px;
    color: var(--ac-review-color);
    opacity: 0.6;
  }

  .ac-arrow {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid var(--ac-field-border);
    background: transparent;
    color: var(--ac-arrow-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
  }

  .ac-arrow:hover {
    background: var(--ac-arrow-color);
    color: var(--ac-card-bg);
  }

  .ac-no-results {
    text-align: center;
    color: var(--ac-review-color);
    padding: 32px 0 0;
  }

  /* Lightbox photo — fondu court (150-200ms), désactivé si l'utilisateur
     préfère les animations réduites. <dialog> natif : Échap et le piège de
     focus sont gérés par le navigateur : voir le script pour la fermeture
     au clic extérieur et le retour de focus. */
  .ac-lightbox {
    position: relative;
    border: none;
    padding: 0;
    background: transparent;
    max-width: min(92vw, 900px);
    max-height: 90vh;
    margin: auto;
    opacity: 0;
    transition: opacity 180ms ease;
  }

  .ac-lightbox.is-visible {
    opacity: 1;
  }

  .ac-lightbox::backdrop {
    background: rgba(0, 0, 0, 0.72);
    opacity: 0;
    transition: opacity 180ms ease;
  }

  .ac-lightbox.is-visible::backdrop {
    opacity: 1;
  }

  .ac-lightbox__img {
    display: block;
    max-width: 100%;
    max-height: 90vh;
    border-radius: var(--ac-card-radius);
    object-fit: contain;
  }

  .ac-lightbox__close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.92);
    border: none;
    border-radius: 50%;
    color: #1a1a1a;
    cursor: pointer;
  }

  .ac-lightbox__close:hover {
    background: #ffffff;
  }

  .ac-lightbox__close:focus-visible {
    outline: 2px solid var(--ac-arrow-color);
    outline-offset: 2px;
  }

  @media (prefers-reduced-motion: reduce) {
    .ac-track { scroll-behavior: auto; }

    .ac-card__photo-img { transition: none; }
    .ac-card__photo:hover .ac-card__photo-img { transform: none; }

    .ac-lightbox,
    .ac-lightbox::backdrop {
      transition: none;
    }
  }
/* END_SECTION:avis-clients */

/* START_SECTION:avis-section-complete-produit (INDEX:6) */
.asc-wrap {
    background: var(--ac-section-bg, transparent);
  }

  .asc-inner {
    max-width: var(--ac-max-width, 900px);
    margin: 0 auto;
    padding: 0 24px;
  }

  .asc-title {
    color: var(--ac-title-color, inherit);
    margin: 0 0 12px;
  }

  .asc-wrap .ac-rating {
    margin-bottom: 28px;
  }

  .ac-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--ac-card-gap, 16px);
  }

  .ac-list--2col {
    grid-template-columns: 1fr 1fr;
  }

  @media (width < 700px) {
    .ac-list--2col {
      grid-template-columns: 1fr;
    }
  }
/* END_SECTION:avis-section-complete-produit */

/* START_SECTION:barre-defilante (INDEX:7) */
.mq-wrap {
    background: var(--mq-bg);
    min-height: var(--mq-height);
    overflow: hidden;
    display: flex;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    border-top: var(--mq-border-width) solid var(--mq-border-color);
    border-bottom: var(--mq-border-width) solid var(--mq-border-color);
  }

  .mq-wrap--hide-mobile {
    display: none;
  }

  @media (width >= 750px) {
    .mq-wrap--hide-mobile {
      display: flex;
    }
  }

  .mq-inner {
    width: 100%;
    padding-top: var(--mq-padding-y);
    padding-bottom: var(--mq-padding-y);
    overflow: hidden;
  }

  .mq-wrap--contained .mq-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding-left: 24px;
    padding-right: 24px;
    box-sizing: border-box;
  }

  .mq-track {
    display: flex;
    align-items: center;
    width: max-content;
    animation-name: mq-scroll;
    animation-duration: var(--mq-duration);
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-direction: var(--mq-anim-direction);
    will-change: transform;
  }

  @media (width < 750px) {
    .mq-track {
      animation-duration: var(--mq-duration-mobile);
    }
  }

  .mq-wrap:hover .mq-track[data-mq-pause-hover] {
    animation-play-state: paused;
  }

  .mq-group {
    display: flex;
    align-items: center;
    flex-shrink: 0;
  }

  .mq-item {
    display: inline-block;
    font-size: var(--mq-font-size);
    font-weight: var(--mq-font-weight);
    letter-spacing: var(--mq-letter-spacing);
    color: var(--mq-text-color);
    white-space: nowrap;
    padding: 0 var(--mq-gap);
    line-height: 1.2;
  }

  .mq-separator {
    display: inline-block;
    color: var(--mq-separator-color);
    font-size: var(--mq-font-size);
    flex-shrink: 0;
    line-height: 1.2;
  }

  .mq-track {
    --mq-translate-pct: 50;
  }

  @keyframes mq-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(calc(var(--mq-translate-pct) * -1%)); }
  }

  @media (prefers-reduced-motion: reduce) {
    .mq-track {
      animation: none;
      transform: none;
    }
    .mq-inner {
      display: flex;
      justify-content: center;
    }
    .mq-group[aria-hidden="true"] {
      display: none;
    }
  }
/* END_SECTION:barre-defilante */

/* START_SECTION:blog-featured (INDEX:8) */
.blog-featured {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .blog-featured__inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .blog-featured__grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    gap: var(--gap-md);
  }

  @media (width > 750px) {
    .blog-featured__grid {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }
/* END_SECTION:blog-featured */

/* START_SECTION:blog-guide-conservation (INDEX:9) */
.bgc-section {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .bgc-inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .bgc-header {
    margin-bottom: 30px;
  }

  .bgc-header__title {
    margin: 0 0 8px;
    font-size: var(--h3-font-size, 1.75rem);
    line-height: 1.2;
  }

  .bgc-header__subtitle {
    max-width: 760px;
  }

  .bgc-header__subtitle > :first-child { margin-top: 0; }
  .bgc-header__subtitle > :last-child { margin-bottom: 0; }

  /* Carte : largeur pilotée par le slide Splide (perPage), jamais une largeur
     absolue — c'est ce qui provoquait le chevauchement en tablette/mobile
     quand la piste ÷ nb de cartes devenait plus étroite que la carte fixe. */
  .bgc-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    text-decoration: none;
    color: inherit;
    height: 100%;
  }

  .bgc-card * {
    box-sizing: border-box;
  }

  .bgc-card__media {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: var(--bgc-card-radius);
    transition: transform var(--bgc-transition-speed) ease;
  }

  .bgc-section[data-elevation-enabled="true"] .bgc-card:hover .bgc-card__media {
    transform: translateY(calc(var(--bgc-elevation) * -1));
  }

  .bgc-ratio--square { aspect-ratio: 1 / 1; }
  .bgc-ratio--landscape { aspect-ratio: 4 / 3; }
  .bgc-ratio--portrait { aspect-ratio: 3 / 4; }

  .bgc-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--bgc-transition-speed) ease;
  }

  .bgc-card__image--placeholder {
    background: color-mix(in srgb, var(--bgc-arrow-bg) 15%, transparent);
  }

  .bgc-section[data-zoom-enabled="true"] .bgc-card:hover .bgc-card__image {
    transform: scale(var(--bgc-zoom-scale));
  }

  .bgc-card__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--bgc-badge-bg);
    color: var(--bgc-badge-text);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.02em;
    text-transform: uppercase;
  }

  .bgc-card__body {
    padding: 14px 4px 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .bgc-card__title {
    margin: 0;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.35;
  }

  .bgc-card__excerpt {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    opacity: 0.85;
  }

  .bgc-card__meta {
    margin-top: 4px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-size: 13px;
    opacity: 0.7;
  }

  .bgc-card__author {
    font-style: italic;
  }

  .bgc-empty {
    opacity: 0.7;
  }

  /* Bouton « Voir tous les articles » */
  .bgc-viewall {
    margin-top: 28px;
    display: flex;
    justify-content: center;
  }

  .bgc-viewall__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 22px;
    border-radius: 999px;
    border: 1.5px solid var(--bgc-arrow-bg);
    color: var(--bgc-arrow-bg);
    background: transparent;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    transition: background var(--bgc-transition-speed) ease, color var(--bgc-transition-speed) ease;
  }

  .bgc-viewall__link:hover {
    background: var(--bgc-arrow-bg);
    color: var(--bgc-arrow-icon);
  }

  .bgc-viewall__link:focus-visible {
    outline: 2px solid var(--bgc-arrow-bg);
    outline-offset: 3px;
  }

  .bgc-viewall__link .icon {
    width: 15px;
    height: 15px;
  }

  @media (prefers-reduced-motion: reduce) {
    .bgc-card__media,
    .bgc-card__image {
      transition: none !important;
      transform: none !important;
    }
    .bgc-viewall__link {
      transition: none;
    }
  }

  /* Flèches et pagination olive : scopées à cette section uniquement. */
  .bgc-section .splide__arrow {
    background: var(--bgc-arrow-bg);
    border: none;
  }

  .bgc-section .splide__arrow .icon--arrow_back,
  .bgc-section .splide__arrow .icon--arrow_forward {
    color: var(--bgc-arrow-icon);
  }

  .bgc-section .splide__pagination__page {
    background: var(--bgc-pagination-inactive);
    opacity: 1;
  }

  .bgc-section .splide__pagination__page.is-active {
    background: var(--bgc-pagination-active);
    opacity: 1;
  }
/* END_SECTION:blog-guide-conservation */

/* START_SECTION:blog-listing-premium (INDEX:10) */
.blp-section {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .blp-inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .blp-content {
    max-width: var(--blp-max-width);
    margin-inline: auto;
  }

  /* ---------- En-tête ---------- */
  .blp-header {
    max-width: 760px;
    margin-bottom: 28px;
  }

  /* La typographie du sur-titre vient de la classe globale .eyebrow
     (css-variables.liquid) — on ne gère ici que l'espacement. */
  .blp-eyebrow {
    margin: 0 0 10px;
  }

  .blp-title {
    margin: 0 0 12px;
  }

  .blp-intro {
    color: var(--blp-intro-color);
  }

  .blp-intro > :first-child { margin-top: 0; }
  .blp-intro > :last-child { margin-bottom: 0; }

  /* ---------- Pills de filtrage ---------- */
  .blp-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 28px;
  }

  .blp-pill {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.2;
    text-decoration: none;
    background: var(--blp-pill-inactive-bg);
    color: var(--blp-pill-inactive-text);
    border: var(--blp-pill-border-width) solid var(--blp-pill-inactive-border);
    transition: background-color var(--blp-transition-speed) ease, color var(--blp-transition-speed) ease, border-color var(--blp-transition-speed) ease;
  }

  .blp-pill:hover {
    border-color: var(--blp-pill-active-bg);
    color: var(--blp-pill-active-bg);
  }

  .blp-pill.is-active {
    background: var(--blp-pill-active-bg);
    color: var(--blp-pill-active-text);
    border-color: var(--blp-pill-active-bg);
  }

  .blp-pill:focus-visible {
    outline: 2px solid var(--blp-pill-active-bg);
    outline-offset: 2px;
  }

  /* ---------- Grille ---------- */
  .blp-grid {
    display: grid;
    grid-template-columns: repeat(var(--blp-cols-mobile), minmax(0, 1fr));
    gap: var(--blp-card-gap);
  }

  @media (min-width: 750px) {
    .blp-grid {
      grid-template-columns: repeat(var(--blp-cols-tablet), minmax(0, 1fr));
    }
  }

  @media (min-width: 990px) {
    .blp-grid {
      grid-template-columns: repeat(var(--blp-cols), minmax(0, 1fr));
    }
  }

  /* ---------- Carte ---------- */
  .blp-card {
    display: flex;
    flex-direction: column;
    background: var(--blp-card-bg);
    border: var(--blp-card-border-width) solid var(--blp-card-border);
    border-radius: var(--blp-card-radius);
    overflow: hidden;
    transition: transform var(--blp-transition-speed) ease, border-color var(--blp-transition-speed) ease;
  }

  .blp-section[data-elevation-enabled="true"] .blp-card:hover,
  .blp-section[data-elevation-enabled="true"] .blp-card:focus-within {
    transform: translateY(calc(var(--blp-elevation) * -1));
    border-color: var(--blp-card-border-hover);
  }

  .blp-card__media {
    position: relative;
    display: block;
    overflow: hidden;
  }

  .blp-ratio--square { aspect-ratio: 1 / 1; }
  .blp-ratio--landscape { aspect-ratio: 4 / 3; }
  .blp-ratio--portrait { aspect-ratio: 3 / 4; }

  .blp-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--blp-transition-speed) ease;
  }

  .blp-card__image--placeholder {
    background: color-mix(in srgb, var(--blp-badge-bg) 15%, transparent);
  }

  .blp-section[data-zoom-enabled="true"] .blp-card:hover .blp-card__image,
  .blp-section[data-zoom-enabled="true"] .blp-card:focus-within .blp-card__image {
    transform: scale(var(--blp-zoom-scale));
  }

  .blp-card__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--blp-badge-bg);
    color: var(--blp-badge-text);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.02em;
    text-transform: uppercase;
  }

  .blp-card__body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
    padding: 14px 16px 16px;
  }

  .blp-card__title {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.35;
  }

  .blp-card__title-link {
    color: var(--blp-title-color);
    text-decoration: none;
  }

  .blp-card__title-link:hover {
    text-decoration: underline;
  }

  .blp-card__excerpt {
    margin: 0;
    font-size: 12px;
    line-height: 1.5;
    color: var(--blp-excerpt-color);
  }

  .blp-card__divider {
    height: 0;
    border-top: var(--blp-card-border-width) solid var(--blp-card-border);
    margin: 6px 0 2px;
  }

  .blp-card__footer {
    margin-top: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .blp-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 10px;
    font-size: 12px;
    color: var(--blp-meta-color);
  }

  .blp-card__author {
    font-style: italic;
  }

  .blp-card__link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    color: var(--blp-link-color);
  }

  .blp-card__link:hover {
    text-decoration: underline;
  }

  .blp-card__link:focus-visible {
    outline: 2px solid var(--blp-link-color);
    outline-offset: 2px;
    border-radius: 4px;
  }

  .blp-card__link-arrow {
    transition: transform var(--blp-transition-speed) ease;
  }

  .blp-card:hover .blp-card__link-arrow {
    transform: translateX(3px);
  }

  .blp-empty {
    opacity: 0.7;
    padding: 20px 0;
  }

  /* ---------- Pagination (restylée, scopée à cette section) ---------- */
  .blp-pagination {
    margin-top: 12px;
  }

  .blp-section .pagination__item--current {
    background: var(--blp-pagination-active);
    border-color: var(--blp-pagination-active);
    color: #fff;
  }

  .blp-section .splide__pagination__page.is-active {
    background: var(--blp-pagination-active);
  }

  .blp-section .splide__pagination__page {
    background: var(--blp-pagination-inactive);
  }

  /* ---------- Accessibilité mouvement ---------- */
  @media (prefers-reduced-motion: reduce) {
    .blp-card,
    .blp-card__image,
    .blp-card__link-arrow,
    .blp-pill {
      transition: none !important;
      transform: none !important;
    }
  }
/* END_SECTION:blog-listing-premium */

/* START_SECTION:breadcrumbs (INDEX:11) */
.breadcrumbs {
    padding-top: var(--padding-md);
    padding-bottom: var(--padding-md);
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .breadcrumbs__list {
    list-style-type: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--gap-xs);
  }

  .breadcrumbs__item {
    display: flex;
    font-size: var(--font-body--size);
    flex-direction: row;
    align-items: center;
    gap: var(--gap-xs);
  }

  .breadcrumbs__item:not(:last-child):after {
    content: '';
    display: inline-block;
    position: relative;
    vertical-align: middle;
  }

  .breadcrumbs--triangle .breadcrumbs__item:not(:last-child):after {
    border-style: solid;
    border-width: 0.1em 0.1em 0 0;
    height: 0.35em;
    width: 0.35em;
    transform: rotate(45deg);
  }

  .breadcrumbs--slash .breadcrumbs__item:not(:last-child):after {
    content: '/';
  }

  .breadcrumbs__link {
    cursor: pointer;
    display: inline-block;
    border: none;
    box-shadow: none;
    text-decoration: none;
    text-underline-offset: 0.3rem;
    transition: var(--animation-link-hover);
  }

  .breadcrumbs__link:hover {
    opacity: var(--opacity-link-hover);
  }
/* END_SECTION:breadcrumbs */

/* START_SECTION:cart-drawer (INDEX:12) */
:root {
    --cart-item-image-width: 80px;
  }

  cart-drawer {
    position: fixed;
    z-index: 10000;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100%;
    display: flex;
    justify-content: flex-end;
    background: rgba(var(--color-shadow));
    opacity: 0;
    visibility: hidden;
    -webkit-backdrop-filter: brightness(1);
    backdrop-filter: brightness(1);
    transition: opacity var(--animation-speed) var(--animation-easing), visibility var(--animation-speed) var(--animation-easing);
  }

  cart-drawer.is-open {
    opacity: 1;
    visibility: visible;
    -webkit-backdrop-filter: brightness(0.75);
    backdrop-filter: brightness(0.75);
    transition: opacity var(--animation-speed) var(--animation-easing), visibility var(--animation-speed) var(--animation-easing),
      -webkit-backdrop-filter var(--animation-speed) var(--animation-easing), backdrop-filter var(--animation-speed) var(--animation-easing);
  }

  cart-drawer.is-open .cart-drawer__inner {
    animation: modalSlideInRight var(--animation-speed) var(--animation-easing) forwards;
  }

  cart-drawer.is-closing .cart-drawer__inner {
    animation: modalSlideOutRight var(--animation-speed) var(--animation-easing) forwards;
  }

  .cart-drawer__inner {
    height: 100%;
    width: var(--cart-drawer-width);
    max-width: calc(100vw - 30px);
    padding: 0 var(--padding-md);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    background-color: var(--color-background);
    color: var(--color-foreground);
    box-shadow: var(--modal-shadow);
  }

  @media (width <= 750px) {
    .cart-drawer__inner.cart-drawer--full-width-on-mobile {
      width: 100%;
      max-width: 100%;
    }
  }

  @media (width <= 350px) {
    .cart-drawer__inner {
      width: 100%;
    }
  }

  .cart-drawer .splide:not(.is-overflow) .splide__pagination {
    display: flex;
  }

  .cart-drawer .slider-block--with-pagination {
    padding-bottom: var(--margin-md);
  }

  .cart-drawer .splide__pagination {
    bottom: calc(-1 * var(--margin-md));
  }

  .cart-drawer--floating {
    margin: 15px;
    height: calc(100% - 30px);
  }

  .cart-drawer--rounded.card {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }

  .cart-drawer__inner-empty {
    height: 100%;
    padding: 0 var(--padding-sm);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap-lg);
  }

  .cart-drawer__inner-empty > p {
    text-align: center;
  }

  .cart-drawer__inner-empty .cart-drawer__close {
    right: var(--padding-sm);
    position: absolute;
    top: var(--padding-sm);
  }

  @media screen and (max-width: 350px) {
    .cart-drawer__inner {
      max-width: calc(100vw - 10px);
    }

    .cart-drawer--floating {
      margin: 5px;
      height: calc(100% - 10px);
    }
  }

  /* Cart Drawer Empty State */

  .cart-drawer--empty .cart-drawer__header,
  .cart-drawer--empty .cart-drawer__body,
  .cart-drawer--empty .cart-drawer__footer {
    display: none;
  }

  cart-drawer:not(.cart-drawer--empty) .cart-drawer__inner-empty {
    display: none;
  }

  /* Cart Drawer Header */

  .cart-drawer__header {
    position: relative;
    padding: var(--padding-md);
    border-bottom: var(--separator-border-width) solid var(--color-border);
    margin-left: calc(-1 * var(--padding-md));
    width: calc(100% + (2 * var(--padding-md)));
  }

  .cart-drawer__header_title {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .cart-drawer__header h2 {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 5px;
    color: rgb(var(--color-foreground));
  }

  .cart-drawer__close {
    display: inline-block;
    padding: 0;
    color: rgb(var(--color-foreground));
    background-color: transparent;
    border: none;
    cursor: pointer;
    height: 24px;
  }

  /* Cart Drawer Content */

  .cart-drawer__items {
    display: flex;
    flex-direction: column;
  }

  /* Les lignes cadeau (0 €) sont toujours repoussees sous les produits achetes */
  .cart-drawer__item--gift {
    order: 1;
  }

  .cart-drawer__items--disabled {
    pointer-events: none;
  }

  /* Cart Drawer Footer */

  .cart-drawer__footer {
    border-top: var(--separator-border-width) solid var(--color-border);
    padding: var(--padding-md);
    position: sticky;
    bottom: 0;
    background-color: var(--color-background);
    width: calc(100% + (2 * var(--padding-md)));
    margin-left: calc(-1 * var(--padding-md));
  }

  .cart-drawer__footer > *:not(:last-child) {
    margin-bottom: var(--padding-sm);
  }

  .cart-drawer__footer .accordion__header {
    padding: 0;
  }

  .cart-drawer__footer .accordion__content {
    padding: var(--padding-sm) 0;
  }

  /* Totals */

  .cart-drawer__totals,
  .cart-drawer__reductions {
    display: flex;
    justify-content: center;
    align-items: center;
    justify-content: space-between;
  }

  .cart-drawer__totals > * {
    color: rgb(var(--color-foreground));
    margin: 0;
    line-height: 1;
  }

  .cart-drawer__reductions p,
  .cart-drawer__totals p {
    font-weight: 500;
    margin: 0;
    line-height: normal;
  }

  .cart-drawer__reductions p,
  .cart-drawer__totals p,
  .cart-drawer__reductions-value,
  .cart-drawer__totals-value {
    font-size: var(--font-body--size-emphasized);
  }

  /* CTAs */

  .cart-drawer__ctas {
    text-align: center;
    display: flex;
    gap: 10px;
  }

  .cart-drawer__ctas button {
    width: 100%;
  }

  /* Items */

  .cart-drawer__body {
    overflow-y: auto;
    overflow-x: hidden;
    flex: 1;
    padding-right: calc(var(--padding-sm) / 2);
    margin-right: calc(-1 * (var(--padding-sm) / 2));
    padding-top: var(--padding-md);
  }

  .cart-item__error {
    display: flex;
    align-items: flex-start;
    width: min-content;
    min-width: 100%;
  }

  .cart-drawer__body::-webkit-scrollbar {
    width: 3px;
  }

  /* Item */

  .cart-drawer__item {
    background-color: var(--color-background);
    color: var(--color-foreground);
    margin-bottom: var(--margin-lg);
    display: flex;
    gap: var(--gap-sm);
    align-items: flex-start;
    max-width: 100%;
  }

  .cart-drawer__item--loading {
    opacity: 0.5;
    pointer-events: none;
  }

  .cart-drawer__item:last-child {
    margin-bottom: var(--padding-sm);
  }

  .cart-drawer__item > a {
    display: flex;
    align-items: center;
  }

  .cart-drawer__item img {
    width: var(--cart-item-image-width);
    object-fit: cover;
    background-color: white;
    max-width: fit-content;
    border-radius: calc(var(--card-border-radius) - var(--padding-sm));
  }

  .cart-drawer__item.card {
    padding: var(--padding-sm);

    img {
      border-radius: calc(var(--card-border-radius) - var(--padding-sm));
    }
  }

  .cart-drawer__item-options,
  .cart-drawer__item-options p {
    line-height: normal;
    font-size: var(--font-body--size-small);
    word-break: break-word;
    color: rgba(var(--color-foreground), 0.8);
  }

  .cart-drawer__item-options .cart-drawer__item-option:not(:last-child) {
    margin-bottom: var(--padding-xs);
  }

  .cart-drawer__item-option {
    margin: 0;
  }

  .cart-drawer__item-content {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin-top: 5px;
  }

  .cart-drawer__item-wrapper {
    display: flex;
    justify-content: space-between;
    width: 100%;
    min-height: var(--cart-item-image-width);
    gap: var(--gap-sm);
  }

  .cart-drawer__item-name {
    text-decoration: none;
    display: block;
    width: calc(100% + 60px);
    font-size: var(--font-body--size);
    color: rgb(var(--color-foreground));
    font-weight: 500;
    line-height: normal;
    margin-bottom: 0;
    transition: var(--animation-link-hover);

    &:hover {
      opacity: var(--opacity-link-hover);
    }
  }

  .cart-drawer__item-prices {
    position: relative;
    width: 100%;
  }

  .cart-drawer__item-prices.loading {
    width: max-content;
  }

  .cart-drawer__item-price {
    display: flex;
    align-items: center;
    gap: var(--gap-xs);
    flex-wrap: wrap;
    font-size: var(--font-body--size-small);
    color: rgb(var(--color-foreground));
  }

  .cart-drawer__item-price > * {
    display: block;
    margin: 0;
    padding: 0;
    line-height: normal;
  }

  .cart-drawer__item-discounted-prices {
    display: flex;
    align-self: center;
    gap: 6px;
    line-height: normal;
  }

  .cart-drawer__item-compare-price {
    opacity: 0.7;
  }

  .cart-drawer__item--no-remove-button .cart-drawer__item-actions-wrapper {
    justify-content: flex-end;
  }

  .cart-drawer__item--no-remove-button .cart-drawer__item-name {
    width: calc(100% + var(--cart-item-image-width));
  }

  @media screen and (max-width: 350px) {
    .cart-drawer__item--no-remove-button .cart-drawer__item-name {
      width: calc(100% + 75px);
    }
  }

  @media screen and (max-width: 350px) {
    .cart-drawer__item img {
      width: var(--cart-item-image-width);
      max-height: calc(var(--cart-item-image-width) * 1.2);
    }

    .cart-drawer__item-content {
      gap: 5px;
    }

    .cart-drawer__item-wrapper {
      min-height: calc(var(--cart-item-image-width) * 1.2);
    }
    .cart-drawer__item-name {
      width: calc(100% + 50px);
    }

    .cart-drawer__item-prices {
      width: 100%;
    }
  }

  /* Quantity & Remove Button */

  .cart-drawer__item-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .cart-drawer__item-actions-wrapper {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-direction: column;
    height: 100%;
    gap: 5px;
  }

  @media screen and (max-width: 749px) {
    .cart-drawer__item-actions-wrapper {
      flex-wrap: wrap;
    }
  }

  /* Discounts */

  .cart-drawer__discounts {
    margin-bottom: 0;
  }

  .cart-drawer__discount {
    margin-bottom: var(--padding-sm);
  }

  .cart-drawer__item-discounts,
  .cart-drawer__discounts {
    font-size: 12px;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
  }

  .cart-drawer__item-discount,
  .cart-drawer__discount {
    min-width: max-content;
    gap: var(--gap-xs);
  }

  .cart-drawer__item-discount .icon {
    font-size: 14px !important;
  }

  .icon-discount {
    color: rgb(var(--color-foreground));
    width: 12px;
    height: 12px;
    margin-right: 7px;
  }

  .cart-drawer__item-discount span {
    max-width: 70px;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
  }

  @media screen and (max-width: 750px) {
    .cart-drawer__discounts {
      overflow: scroll;
      flex-wrap: nowrap;
    }

    .cart-drawer__discounts::-webkit-scrollbar {
      height: 3px;
    }
  }

  /* ============================================================
     PREMIUM — Mieux Gardé (couche additive, ne casse pas le natif)
     ============================================================ */

  /* Header : titre entièrement pilotable depuis le personnalisateur */
  .cart-drawer__title-group {
    min-width: 0;
  }
  .cart-drawer__header_title .h6 {
    font-size: var(--mg-cart-title-size, 1.05rem);
    font-weight: var(--mg-cart-title-weight, 600);
    letter-spacing: var(--mg-cart-title-spacing, -0.01em);
    text-transform: var(--mg-cart-title-transform, none);
    color: var(--mg-cart-title-color, rgb(var(--color-foreground)));
    line-height: 1.15;
    margin: 0;
  }
  .cart-drawer__subtitle {
    margin: 0 0 2px;
    font-size: var(--mg-cart-subtitle-size, var(--font-body--size-small));
    font-weight: var(--mg-cart-subtitle-weight, 400);
    letter-spacing: var(--mg-cart-subtitle-spacing, 0);
    text-transform: var(--mg-cart-subtitle-transform, none);
    line-height: 1.25;
    color: var(--mg-cart-subtitle-color, rgb(from var(--color-foreground) r g b / 62%));
  }

  .cart-drawer__close {
    transition: opacity var(--animation-speed) var(--animation-easing);
  }
  .cart-drawer__close:hover { opacity: var(--opacity-link-hover); }
  .cart-drawer__close:focus-visible {
    outline: 2px solid var(--color-primary-button-background);
    outline-offset: 2px;
    border-radius: 4px;
  }

  /* Bandeau « Livraison offerte » — toujours vrai (sans minimum) */
  .cart-drawer__shipping-highlight {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: var(--padding-sm);
    padding: 9px 12px;
    background: rgb(from var(--color-primary-button-background) r g b / 10%);
    color: rgb(var(--color-foreground));
    border-radius: 10px;
    font-size: var(--font-body--size-small);
    font-weight: 600;
    line-height: 1.2;
  }
  .cart-drawer__shipping-highlight .icon {
    font-size: 18px !important;
    color: var(--color-primary-button-background);
    flex: 0 0 auto;
  }

  /* Item : séparateurs discrets pour un rendu plus « posé » */
  .cart-drawer__item {
    padding-bottom: var(--margin-lg);
    border-bottom: var(--separator-border-width) solid rgb(from var(--color-foreground) r g b / 8%);
    margin-bottom: var(--margin-lg);
  }
  .cart-drawer__item:last-child {
    border-bottom: none;
  }
  .cart-drawer__item img {
    box-shadow: 0 1px 3px rgb(from var(--color-foreground) r g b / 8%);
  }

  /* Cadeau / Offert */
  .cart-drawer__item-gift {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
  }
  .cart-drawer__item-gift-was {
    opacity: 0.5;
    font-size: 0.8rem;
  }
  .cart-drawer__item-gift-label {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--mg-gift, #B4472E);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-size: 0.85rem;
    line-height: 1;
  }
  .cart-drawer__item-gift-label .icon {
    font-size: 16px !important;
    color: var(--mg-gift, #B4472E);
  }

  /* Ligne de réassurance premium — icônes olive fines + sous-textes (Volet A) */
  .cart-drawer__trust {
    list-style: none;
    margin: 0;
    padding: var(--padding-md) 0;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
    border-top: 1px solid var(--color-border);
  }
  .cart-drawer__trust-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-align: center;
    flex: 1 1 0;
    min-width: 0;
  }
  .cart-drawer__trust-badge {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgb(from var(--color-primary-button-background) r g b / 12%);
    color: var(--color-primary-button-background);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
  }
  .cart-drawer__trust-badge svg {
    width: 55%;
    height: 55%;
  }
  .cart-drawer__trust-title {
    font-size: var(--mg-cart-trust-title-size, 12px);
    font-weight: 600;
    line-height: 1.2;
    color: rgb(var(--color-foreground));
  }
  .cart-drawer__trust-sub {
    font-size: var(--mg-cart-trust-sub-size, 10.5px);
    line-height: 1.2;
    color: rgb(from var(--color-foreground) r g b / 60%);
  }

  /* CTA checkout premium */
  .cart-drawer__ctas .button {
    border-radius: 999px;
    font-weight: 600;
    letter-spacing: 0.01em;
    padding-block: 14px;
  }

  @media (prefers-reduced-motion: reduce) {
    cart-drawer.is-open .cart-drawer__inner,
    cart-drawer.is-closing .cart-drawer__inner {
      animation: none;
      transform: none;
    }
    .cart-drawer__close { transition: none; }
  }

  /* ============================================================
     Volet C — Cross-sell panier (carrousel scroll-snap léger)
     ============================================================ */
  .cart-xsell {
    margin-top: var(--padding-md);
    padding-top: var(--padding-md);
    border-top: 1px solid var(--color-border);
  }
  .cart-xsell__heading {
    margin: 0 0 var(--padding-sm);
    font-size: var(--font-body--size-emphasized);
    font-weight: 600;
    line-height: 1.25;
    color: rgb(var(--color-foreground));
  }
  .cart-xsell__track {
    display: flex;
    gap: var(--gap-sm);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
    scrollbar-width: thin;
  }
  .cart-xsell__track::-webkit-scrollbar { height: 3px; }
  .cart-xsell__card {
    position: relative;
    scroll-snap-align: start;
    flex: 0 0 calc(50% - (var(--gap-sm) / 2));
    min-width: 128px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
    background: var(--color-background);
    border: 1px solid var(--color-border);
    border-radius: calc(var(--card-border-radius, 12px) - var(--padding-sm));
    padding: 10px;
  }
  .cart-xsell__badge {
    position: absolute;
    top: 6px;
    left: 6px;
    z-index: 1;
    background: var(--color-primary-button-background);
    color: var(--color-primary-button-text, #ffffff);
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 1;
    padding: 3px 5px;
    border-radius: 6px;
  }
  .cart-xsell__media { display: block; }
  .cart-xsell__img {
    width: 56px;
    height: 56px;
    object-fit: contain;
    display: block;
  }
  .cart-xsell__title {
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.25;
    color: rgb(var(--color-foreground));
    text-decoration: none;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .cart-xsell__title:hover { opacity: var(--opacity-link-hover, 0.8); }
  .cart-xsell__price {
    display: flex;
    align-items: baseline;
    gap: 5px;
    flex-wrap: wrap;
    justify-content: center;
    font-size: 0.8rem;
  }
  .cart-xsell__price-compare {
    text-decoration: line-through;
    opacity: 0.5;
    font-size: 0.72rem;
  }
  .cart-xsell__price-current {
    font-weight: 700;
    color: rgb(var(--color-foreground));
  }
  .cart-xsell__add {
    margin-top: auto;
    width: 100%;
    cursor: pointer;
    border: 1px solid var(--color-primary-button-background);
    background: var(--color-primary-button-background);
    color: var(--color-primary-button-text, #ffffff);
    font: inherit;
    font-weight: 600;
    font-size: 0.75rem;
    line-height: 1.2;
    padding: 7px 8px;
    border-radius: 999px;
    transition: opacity 0.2s ease;
  }
  .cart-xsell__add:hover { opacity: 0.9; }
  .cart-xsell__add.is-loading { opacity: 0.6; pointer-events: none; }
  .cart-xsell__add:focus-visible {
    outline: 2px solid var(--color-primary-button-background);
    outline-offset: 2px;
  }
  @media (prefers-reduced-motion: reduce) {
    .cart-xsell__track { scroll-behavior: auto; }
  }

  /* ============================================================
     CORRECTIF — badge cadeau/remise tronqué (mobile)
     Le thème natif imposait max-width:70px + nowrap + ellipsis sur le
     libellé de remise, coupant le nom du cadeau. On affiche le texte
     COMPLET (jusqu'à plusieurs lignes) et on fait passer ce badge sur
     SA PROPRE LIGNE sous le prix + le badge -XX%. Quand la place suffit
     (desktop), le -XX% reste à côté du prix ; le libellé long descend
     proprement dessous — jamais de troncature, jamais de chevauchement
     avec le sélecteur de quantité (colonne d'actions distincte).
     ============================================================ */
  .cart-drawer__item-discounts {
    flex-wrap: wrap;
    flex-basis: 100%;
    overflow: visible;
  }
  .cart-drawer__item-discount {
    min-width: 0;
    max-width: 100%;
    align-items: flex-start;
    white-space: normal;
    height: auto;
  }
  .cart-drawer__item-discount span {
    max-width: none;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    word-break: break-word;
  }

  @media (max-width: 749px) {
    .cart-drawer__item-price {
      flex-wrap: wrap;
    }
    /* Empilage vertical explicite sur mobile : -XX% puis cadeau, l'un sous
       l'autre, chacun sur toute la largeur disponible de la colonne texte. */
    .cart-drawer__item-discounts {
      flex-direction: column;
      align-items: flex-start;
    }
  }
/* END_SECTION:cart-drawer */

/* START_SECTION:cart (INDEX:13) */
.cart {
    display: block;
  }

  .cart__inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  :root {
    --cart-item-image-width: 85px;
  }

  .cart__empty {
    border: var(--container-border-width) solid var(--color-border);
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap-sm);
  }

  .cart {
    padding-bottom: 3rem;
  }

  .cart__header {
    padding: var(--gap-md) 0;
  }

  .cart__form {
    display: grid;
    grid-template-columns: 100%;
    gap: var(--gap-md);
  }

  .cart__form--loading {
    opacity: 0.5;
    pointer-events: none;
  }

  @media (width > 750px) {
    .cart__header {
      padding: var(--gap-lg) 0;
    }

    .cart__form {
      grid-template-columns: 60% calc(40% - var(--gap-lg));
      gap: var(--gap-lg);
    }
  }

  .cart__items {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  .cart__footer {
    height: fit-content;
  }

  .cart__footer > *:not(:last-child) {
    margin-bottom: var(--padding-sm);
  }

  .cart__footer .accordion__content,
  .cart__footer .accordion__header {
    padding: var(--padding-xxs) 0;
  }

  /* Totals */

  .cart__totals,
  .cart__reductions {
    display: flex;
    justify-content: center;
    align-items: center;
    justify-content: space-between;
  }

  .cart__totals > * {
    color: rgb(var(--color-foreground));
    margin: 0;
    line-height: 1;
  }

  .cart__reductions p,
  .cart__totals p {
    font-weight: 500;
    margin: 0;
    line-height: normal;
  }

  .cart__reductions p,
  .cart__totals p,
  .cart__reductions-value,
  .cart__totals-value {
    font-size: var(--font-body--size-emphasized);
  }

  /* CTAs */

  .cart__ctas {
    text-align: center;
    display: flex;
    gap: 10px;
    margin-bottom: 0;
  }

  .cart__ctas button {
    width: 100%;
  }

  /* Item */

  .cart__item {
    background-color: var(--color-background);
    color: var(--color-foreground);
    display: flex;
    gap: var(--gap-sm);
    align-items: flex-start;
    max-width: 100%;
  }

  .cart__item > a {
    display: flex;
    align-items: center;
  }

  .cart__item img {
    width: var(--cart-item-image-width);
    object-fit: cover;
    background-color: white;
    max-width: fit-content;
    border-radius: calc(var(--card-border-radius) - var(--padding-sm));
  }

  .cart__item.card {
    padding: var(--padding-sm);

    img {
      border-radius: calc(var(--card-border-radius) - var(--padding-sm));
    }
  }

  .cart__item-options {
    line-height: normal;
    font-size: var(--font-body--size-small);
    word-break: break-word;
    color: rgba(var(--color-foreground), 0.8);
  }

  .cart__item-options .cart__item-option:not(:last-child) {
    margin-bottom: var(--padding-xs);
  }

  .cart__item-option {
    margin: 0;
  }

  .cart__item-content {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin-top: 5px;
  }

  .cart__item-wrapper {
    display: flex;
    justify-content: space-between;
    width: 100%;
    min-height: var(--cart-item-image-width);
    gap: var(--gap-sm);
  }

  .cart__item-name {
    text-decoration: none;
    display: block;
    width: calc(100% + 60px);
    font-size: var(--font-body--size);
    color: rgb(var(--color-foreground));
    font-weight: 500;
    line-height: normal;
    margin-bottom: 0;
    transition: var(--animation-link-hover);

    &:hover {
      opacity: var(--opacity-link-hover);
    }
  }

  .cart__item-prices {
    position: relative;
    width: 100%;
  }

  .cart__item-prices.loading {
    width: max-content;
  }

  .cart__item-price {
    display: flex;
    align-items: center;
    gap: var(--gap-xs);
    flex-wrap: wrap;
    font-size: var(--font-body--size-small);
    color: rgb(var(--color-foreground));
  }

  .cart__item-price > * {
    display: block;
    margin: 0;
    padding: 0;
    line-height: normal;
  }

  .cart__item-discounted-prices {
    display: flex;
    align-self: center;
    gap: 6px;
    line-height: normal;
  }

  .cart__item-compare-price {
    opacity: 0.7;
  }

  .cart__item--no-remove-button .cart__item-actions-wrapper {
    justify-content: flex-end;
  }

  .cart__item--no-remove-button .cart__item-name {
    width: calc(100% + var(--cart-item-image-width));
  }

  @media screen and (max-width: 350px) {
    .cart__item--no-remove-button .cart__item-name {
      width: calc(100% + 75px);
    }
  }

  @media screen and (max-width: 350px) {
    .cart__item img {
      width: var(--cart-item-image-width);
      max-height: calc(var(--cart-item-image-width) * 1.2);
    }

    .cart__item-content {
      gap: 5px;
    }

    .cart__item-wrapper {
      min-height: calc(var(--cart-item-image-width) * 1.2);
    }
    .cart__item-name {
      width: calc(100% + 50px);
    }

    .cart__item-prices {
      width: 100%;
    }
  }

  /* Quantity & Remove Button */

  .cart__item-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .cart__item-actions-wrapper {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-direction: column;
    height: 100%;
    gap: 5px;
  }

  .cart__item-actions-wrapper .button,
  .cart__item-actions-wrapper .quantity-selector {
    border: var(--inputs-border-width) solid var(--color-border);
  }

  @media screen and (max-width: 749px) {
    .cart__item-actions-wrapper {
      flex-wrap: wrap;
    }
  }

  /* Discounts */

  .cart__discounts {
    margin-bottom: 0;
  }

  .cart__discount {
    margin-bottom: var(--padding-sm);
  }

  .cart__item-discounts,
  .cart__discounts {
    font-size: 12px;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
  }

  .cart__item-discount,
  .cart__discount {
    min-width: max-content;
    gap: var(--gap-xs);
  }

  .icon-discount {
    color: rgb(var(--color-foreground));
    width: 12px;
    height: 12px;
    margin-right: 7px;
  }

  /* .cart__item-discount span {
  max-width: 70px;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
} */

  @media screen and (max-width: 750px) {
    .cart__discounts {
      overflow: scroll;
      flex-wrap: nowrap;
    }

    .cart__discounts::-webkit-scrollbar {
      height: 3px;
    }
  }
/* END_SECTION:cart */

/* START_SECTION:chatbot-widget (INDEX:14) */
{{ section.settings.widget_font | font_face: font_display: 'swap' }}

  .cw-root {
    position: fixed;
    bottom: var(--cw-bottom, 90px);
    z-index: 999;
    font-size: var(--cw-font-size, 14px);
  }
  .cw-root--right {
    right: var(--cw-side, 20px);
  }
  .cw-root--left {
    left: var(--cw-side, 20px);
  }

  .cw-toggle {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--cw-accent-bg, #4a5c3a);
    color: var(--cw-accent-text, #fff);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
    transition: transform 0.15s ease;
  }
  .cw-toggle:hover {
    transform: scale(1.05);
  }
  .cw-toggle__icon--close {
    display: none;
  }
  .cw-toggle[aria-expanded="true"] .cw-toggle__icon--chat {
    display: none;
  }
  .cw-toggle[aria-expanded="true"] .cw-toggle__icon--close {
    display: flex;
  }

  .cw-panel {
    position: absolute;
    bottom: 72px;
    width: min(var(--cw-width, 360px), calc(100vw - 40px));
    max-height: min(520px, calc(100vh - 140px));
    display: flex;
    flex-direction: column;
    background: var(--cw-panel-bg, #fff);
    border-radius: var(--cw-radius, 16px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
    overflow: hidden;
  }
  .cw-root--right .cw-panel {
    right: 0;
  }
  .cw-root--left .cw-panel {
    left: 0;
  }
  /* L'attribut hidden (posé par défaut, retiré par le JS au clic) doit
     gagner sur le display:flex ci-dessus — sinon le panneau reste visible
     en permanence dès le chargement de la page. */
  .cw-panel[hidden] {
    display: none;
  }

  .cw-panel__header {
    background: var(--cw-accent-bg, #4a5c3a);
    color: var(--cw-accent-text, #fff);
    padding: 14px 16px;
  }
  .cw-panel__title {
    margin: 0;
    font-weight: 600;
    font-size: 1.07em;
  }
  .cw-panel__subtitle {
    margin: 2px 0 0;
    font-size: 0.85em;
    opacity: 0.85;
  }

  .cw-panel__messages {
    flex: 1;
    overflow-y: auto;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 180px;
  }

  .cw-msg {
    max-width: 85%;
    padding: 9px 12px;
    border-radius: 12px;
    font-size: 1em;
    line-height: 1.4;
    white-space: pre-wrap;
  }
  .cw-msg--bot {
    align-self: flex-start;
    background: var(--cw-bot-bg, #f0f1ec);
    color: var(--cw-bot-text, #1f1f1f);
    border-bottom-left-radius: 4px;
  }
  .cw-msg--user {
    align-self: flex-end;
    background: var(--cw-accent-bg, #4a5c3a);
    color: var(--cw-accent-text, #fff);
    border-bottom-right-radius: 4px;
  }
  .cw-msg--error {
    align-self: flex-start;
    background: #fbe4e4;
    color: #7a1f1f;
  }
  .cw-msg--pending {
    align-self: flex-start;
    background: var(--cw-bot-bg, #f0f1ec);
    color: #6b6b6b;
    font-style: italic;
  }

  .cw-panel__escalate {
    padding: 10px 14px;
    font-size: 0.9em;
    background: #fdf6e8;
    border-top: 1px solid #eee;
  }
  .cw-panel__escalate a {
    color: inherit;
    font-weight: 600;
  }

  .cw-panel__form {
    display: flex;
    gap: 8px;
    padding: 10px;
    border-top: 1px solid #eee;
  }
  .cw-panel__form input {
    flex: 1;
    border: 1px solid #ddd;
    border-radius: 20px;
    padding: 9px 14px;
    font-size: 1em;
    font-family: inherit;
  }
  .cw-panel__send {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: none;
    cursor: pointer;
    background: var(--cw-accent-bg, #4a5c3a);
    color: var(--cw-accent-text, #fff);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .cw-panel__send:disabled {
    opacity: 0.5;
    cursor: default;
  }

  @media (max-width: 480px) {
    .cw-root {
      --cw-side: 12px;
    }
    .cw-panel {
      width: min(var(--cw-width, 360px), calc(100vw - 24px));
    }
  }
/* END_SECTION:chatbot-widget */

/* START_SECTION:chiffres-cles (INDEX:15) */
.chiffres-cles {
    background-color: var(--chiffres-bg, var(--color-background));
    padding-top: var(--chiffres-padding-top);
    padding-bottom: var(--chiffres-padding-bottom);
    border-radius: var(--chiffres-radius);
    overflow: hidden;
  }

  .chiffres-cles__inner {
    max-width: var(--chiffres-max-width);
  }

  .chiffres-cles__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
    align-items: start;
  }

  @media screen and (width >= 750px) {
    .chiffres-cles__grid {
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      gap: 64px;
    }

    .chiffres-cles--one-column .chiffres-cles__grid {
      grid-template-columns: 1fr;
      max-width: 640px;
      margin-inline: auto;
    }

    .chiffres-cles--text-right .chiffres-cles__text {
      order: 2;
    }

    .chiffres-cles--text-right .chiffres-cles__stats {
      order: 1;
    }
  }

  .chiffres-cles__grid--align-center .chiffres-cles__text {
    text-align: center;
  }

  .chiffres-cles__image {
    margin-bottom: 24px;
  }

  .chiffres-cles__image img {
    width: 100%;
    height: auto;
    border-radius: var(--chiffres-radius);
    display: block;
  }

  .chiffres-cles__title {
    font-size: var(--chiffres-title-size);
    font-weight: var(--chiffres-title-weight);
    font-family: var(--chiffres-title-font, inherit);
    color: var(--chiffres-title-color, var(--color-foreground));
    margin: 0 0 16px;
    line-height: 1.15;
  }

  .chiffres-cles__intro {
    font-size: var(--chiffres-intro-size);
    font-family: var(--chiffres-body-font, inherit);
    color: var(--chiffres-intro-color, color-mix(in srgb, var(--color-foreground) 70%, transparent));
    line-height: 1.6;
  }

  .chiffres-cles__stats {
    display: flex;
    flex-direction: column;
    gap: var(--chiffres-stat-gap);
  }

  .chiffres-cles__stat {
    display: flex;
    align-items: center;
    gap: 24px;
    padding-bottom: var(--chiffres-stat-gap);
  }

  .chiffres-cles__stat[data-separator] {
    border-bottom: 1px solid var(--chiffres-separator-color, var(--color-border));
  }

  .chiffres-cles__stat:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }

  .chiffres-cles__ring {
    position: relative;
    flex-shrink: 0;
    width: var(--chiffres-ring-size-mobile);
    height: var(--chiffres-ring-size-mobile);
  }

  @media screen and (width >= 750px) {
    .chiffres-cles__ring {
      width: var(--chiffres-ring-size);
      height: var(--chiffres-ring-size);
    }
  }

  .chiffres-cles__ring svg {
    width: 100%;
    height: 100%;
    display: block;
  }

  .chiffres-cles__ring-track {
    fill: none;
    stroke: var(--chiffres-ring-track);
  }

  .chiffres-cles__ring-fill {
    fill: none;
    stroke: var(--chiffres-ring-fill);
    stroke-linecap: round;
  }

  .chiffres-cles__percentage {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--chiffres-percentage-size);
    font-weight: var(--chiffres-percentage-weight);
    color: var(--chiffres-percentage-color, var(--color-foreground));
  }

  .chiffres-cles__label {
    font-size: var(--chiffres-label-size);
    font-family: var(--chiffres-body-font, inherit);
    color: var(--chiffres-label-color, color-mix(in srgb, var(--color-foreground) 82%, transparent));
    margin: 0;
    line-height: 1.4;
  }

  .chiffres-cles__stat--number .chiffres-cles__big-number {
    font-size: var(--chiffres-percentage-size);
    font-weight: var(--chiffres-percentage-weight);
    color: var(--chiffres-percentage-color, var(--color-foreground));
    margin: 0 0 4px;
    line-height: 1;
    white-space: nowrap;
  }

  .chiffres-cles__unit {
    font-size: 0.5em;
    margin-left: 4px;
  }

  .chiffres-cles__stat--number .chiffres-cles__label {
    margin: 0;
  }

  .chiffres-cles__stat--number {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .chiffres-cles__source {
    margin: 40px 0 0;
    font-size: 13px;
    color: var(--chiffres-source-color, color-mix(in srgb, var(--color-foreground) 55%, transparent));
  }

  @media (prefers-reduced-motion: no-preference) {
    .chiffres-cles__ring-fill {
      transition: stroke-dashoffset 200ms ease-out;
    }
  }
/* END_SECTION:chiffres-cles */

/* START_SECTION:collection-compat-explainer (INDEX:16) */
.cce-section {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .cce-inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .cce-title {
    margin: 0 0 8px;
    color: var(--cce-title-color);
    text-align: center;
  }

  .cce-subtitle {
    margin: 0 0 24px;
    color: var(--cce-text-color);
    text-align: center;
    max-width: 62ch;
    margin-left: auto;
    margin-right: auto;
  }

  .cce-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
  }

  @media (min-width: 750px) {
    .cce-grid {
      grid-template-columns: 1fr 1fr;
      gap: 24px;
    }
  }

  .cce-card {
    display: flex;
    flex-direction: column;
    background: var(--cce-card-bg);
    border: 1px solid var(--cce-card-border);
    border-radius: var(--card-border-radius);
    overflow: hidden;
    transition: border-color var(--animation-speed-medium, 150ms) ease;
  }

  .cce-card:hover {
    border-color: var(--cce-accent);
  }

  @media (prefers-reduced-motion: reduce) {
    .cce-card {
      transition: none;
    }
  }

  .cce-card__media {
    aspect-ratio: 16 / 10;
    overflow: hidden;
  }

  .cce-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .cce-card__body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 6px;
  }

  .cce-card__badge {
    align-self: flex-start;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cce-accent);
    border: 1px solid var(--cce-accent);
    border-radius: 999px;
    padding: 3px 10px;
    margin-bottom: 4px;
  }

  .cce-card__title {
    margin: 0;
    color: var(--cce-title-color);
  }

  .cce-card__text {
    margin: 0;
    color: var(--cce-text-color);
    line-height: 1.5;
    font-size: 14px;
  }
/* END_SECTION:collection-compat-explainer */

/* START_SECTION:collection-description (INDEX:17) */
.cd-section {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .cd-inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .cd-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: center;
  }

  @media (min-width: 750px) {
    .cd-grid {
      grid-template-columns: 1fr 1fr;
      gap: 60px;
    }

    .cd-grid--image-right .cd-media {
      order: 2;
    }

    .cd-grid--image-right .cd-content {
      order: 1;
    }
  }

  .cd-media__inner {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: var(--cd-image-radius);
  }

  .cd-ratio--square { aspect-ratio: 1 / 1; }
  .cd-ratio--portrait { aspect-ratio: 3 / 4; }
  .cd-ratio--landscape { aspect-ratio: 4 / 3; }
  .cd-ratio--wide { aspect-ratio: 16 / 9; }

  .cd-media__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .cd-content {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .cd-eyebrow {
    margin: 0;
  }

  .cd-title {
    margin: 0;
    color: var(--cd-title-color);
  }

  .cd-intro {
    margin: 0;
    color: var(--cd-intro-color);
    line-height: 1.6;
  }

  .cd-cards {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 4px;
  }

  .cd-card {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 16px;
    background: var(--cd-card-bg);
    border: 1px solid var(--cd-card-border);
    border-radius: var(--cd-card-radius);
    transition: border-color 200ms ease;
  }

  .cd-card:hover {
    border-color: var(--cd-card-border-hover);
  }

  .cd-card__badge {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--cd-badge-size);
    height: var(--cd-badge-size);
    border-radius: var(--cd-badge-radius);
    background: var(--cd-badge-bg);
    color: var(--cd-badge-icon);
    transition: background-color 200ms ease, color 200ms ease;
  }

  .cd-card:hover .cd-card__badge {
    background: var(--cd-badge-bg-hover);
    color: var(--cd-badge-icon-hover);
  }

  .cd-card__badge .icon {
    font-size: calc(var(--cd-badge-size) * 0.5) !important;
  }

  .cd-card__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .cd-card__title {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--cd-title-color);
  }

  .cd-card__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: var(--cd-intro-color);
  }

  .cd-quiz {
    margin-top: 8px;
    padding-top: 20px;
    border-top: 1px solid var(--cd-card-border);
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
  }

  .cd-quiz__prompt {
    margin: 0;
    font-weight: 600;
    color: var(--cd-title-color);
  }

  .cd-quiz__button {
    background: var(--cd-quiz-bg) !important;
    color: var(--cd-quiz-text) !important;
    border-color: var(--cd-quiz-border) !important;
  }

  .cd-quiz__button:hover {
    background: var(--cd-quiz-bg-hover) !important;
    border-color: var(--cd-quiz-bg-hover) !important;
  }

  @media (prefers-reduced-motion: reduce) {
    .cd-card,
    .cd-card__badge {
      transition: none !important;
    }
  }
/* END_SECTION:collection-description */

/* START_SECTION:collection-featured (INDEX:18) */
.collection-featured {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  shopify-visual-preview-block-list .collection-featured .splide__arrow {
    display: none !important;
  }

  .collection-featured__inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .collection-featured__grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    gap: var(--gap-md);
  }

  @media (width > 750px) {
    .collection-featured__grid {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }

  .collection-featured__footer-link-wrap {
    margin-top: var(--gap-lg, 32px);
    text-align: center;
  }

  .collection-featured__footer-link {
    font-size: var(--font-body--size);
  }
/* END_SECTION:collection-featured */

/* START_SECTION:collection-header-premium (INDEX:19) */
.chp-section {
    width: 100%;
    background-color: var(--chp-bg);
    display: flex;
    align-items: center;
    overflow: hidden;
  }

  .chp-inner {
    width: 100%;
    max-width: min(var(--page-width), var(--chp-content-max-width));
    margin: 0 auto;
  }

  .chp-text {
    display: flex;
    flex-direction: column;
  }

  .chp-text--center {
    align-items: center;
    text-align: center;
  }

  .chp-text--left {
    align-items: flex-start;
    text-align: left;
  }

  .chp-text--center .chp-badges {
    justify-content: center;
    width: 100%;
  }

  .chp-eyebrow {
    margin: 0;
    color: var(--chp-eyebrow-color);
    font-size: var(--chp-eyebrow-size);
    font-weight: var(--chp-eyebrow-weight);
    font-family: var(--chp-eyebrow-family);
  }

  .chp-title {
    margin: 0;
    color: var(--chp-title-color);
    font-size: var(--chp-title-size-mobile);
    font-weight: var(--chp-title-weight);
    font-family: var(--chp-title-family);
    line-height: 1.15;
  }

  .chp-eyebrow + .chp-title {
    margin-top: var(--chp-gap-eyebrow-title);
  }

  @media (min-width: 750px) {
    .chp-title {
      font-size: var(--chp-title-size);
    }
  }

  .chp-resume {
    margin: var(--chp-gap-title-resume) 0 0;
    color: var(--chp-resume-color);
    font-size: var(--chp-resume-size-mobile);
    font-weight: var(--chp-resume-weight);
    font-family: var(--chp-resume-family);
    line-height: 1.5;
    max-width: 60ch;
    /* Garantit visuellement 2 lignes maximum quel que soit le texte saisi
       dans custom.resume_intro, même s'il dépasse la longueur visée. */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  @media (min-width: 750px) {
    .chp-resume {
      font-size: var(--chp-resume-size);
    }
  }

  .chp-badges {
    list-style: none;
    margin: var(--chp-gap-resume-badges) 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    row-gap: 8px;
  }

  .chp-badge {
    color: var(--chp-badges-color);
    font-size: var(--chp-badges-size);
    font-weight: var(--chp-badges-weight);
    font-family: var(--chp-badges-family);
    white-space: nowrap;
  }

  /* Badge de note + avis : seul badge de la liste pouvant afficher le
     badge "Avis vérifiés" à sa suite — repasse en ligne flexible pour
     garder les deux éléments alignés sur la même ligne (ou repliés
     proprement dessous sur mobile étroit), sans casser le white-space:
     nowrap des autres badges texte de la liste (nombre de modèles,
     badges saisis à la main). */
  .chp-badge--rating {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: normal;
  }

  .chp-badge + .chp-badge::before {
    content: '•';
    display: inline-block;
    margin: 0 12px;
    color: var(--chp-badges-separator);
  }

  .chp-reveal-ready {
    opacity: 0;
    transform: translateY(var(--chp-reveal-distance));
    transition: opacity var(--chp-reveal-duration) ease var(--chp-reveal-delay),
      transform var(--chp-reveal-duration) ease var(--chp-reveal-delay);
  }

  .chp-reveal-ready.chp-reveal-visible {
    opacity: 1;
    transform: translateY(0);
  }

  @media (prefers-reduced-motion: reduce) {
    .chp-reveal-ready {
      opacity: 1 !important;
      transform: none !important;
      transition: none !important;
    }
  }
/* END_SECTION:collection-header-premium */

/* START_SECTION:collections-featured-premium (INDEX:20) */
.cf2-section {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .cf2-inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .cf2-header {
    margin-bottom: 32px;
    max-width: 720px;
  }

  .cf2-header--center {
    max-width: 100%;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }

  .cf2-header--center .cf2-eyebrow,
  .cf2-header--center .cf2-title,
  .cf2-header--center .cf2-subtitle {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }

  .cf2-eyebrow {
    margin: var(--cf2-eyebrow-margin-top) 0 var(--cf2-eyebrow-margin-bottom);
    font-size: var(--cf2-eyebrow-size);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--cf2-eyebrow-color);
  }

  .cf2-title {
    margin: var(--cf2-header-title-margin-top) 0 var(--cf2-header-title-margin-bottom);
    font-size: var(--cf2-header-title-size);
    color: var(--cf2-header-title-color);
  }

  .cf2-subtitle {
    margin: var(--cf2-header-subtitle-margin-top) 0 var(--cf2-header-subtitle-margin-bottom);
    font-size: var(--cf2-header-subtitle-size);
    color: var(--cf2-header-subtitle-color);
  }

  /* Correctif densité/espacement : Splide calcule la largeur des slides à
     partir de perPage (nombre entier de cartes par page) et ignore une
     largeur fixée uniquement sur l'élément enfant .cf2-card — d'où les
     cartes collées bord à bord et ~5 visibles au lieu de 3,5 malgré le
     réglage de largeur de carte. On force ici la largeur ET l'espacement
     réels du slide (l'élément que Splide dimensionne réellement) via
     !important, qui prime sur le style inline posé par le JS de Splide. */
  .cf2-section .splide__slide {
    width: var(--cf2-card-width) !important;
    margin-right: var(--cf2-card-gap) !important;
  }

  .cf2-card {
    display: block;
    width: 100%;
    text-decoration: none;
    color: inherit;
  }

  .cf2-card__media {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: var(--cf2-card-radius);
    transition: transform var(--cf2-transition-speed) ease;
  }

  .cf2-section[data-elevation-enabled="true"] .cf2-card:hover .cf2-card__media {
    transform: translateY(calc(var(--cf2-elevation) * -1));
  }

  .cf2-ratio--square { aspect-ratio: 1 / 1; }
  .cf2-ratio--landscape { aspect-ratio: 4 / 3; }
  .cf2-ratio--portrait { aspect-ratio: 3 / 4; }

  .cf2-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--cf2-transition-speed) ease;
  }

  .cf2-card__image--placeholder {
    background: color-mix(in srgb, var(--cf2-arrow-bg) 15%, transparent);
  }

  .cf2-section[data-zoom-enabled="true"] .cf2-card:hover .cf2-card__image {
    transform: scale(var(--cf2-zoom-scale));
  }

  .cf2-card__gradient {
    position: absolute;
    inset: 0;
    /* Retouche "allègement" : le dégradé ne couvre plus que les derniers
       --cf2-gradient-height % de la hauteur de l'image (transparent avant),
       au lieu de courir sur toute la hauteur de la carte. */
    background: linear-gradient(
      to bottom,
      var(--cf2-gradient-top) 0%,
      var(--cf2-gradient-top) calc(100% - var(--cf2-gradient-height)),
      var(--cf2-gradient-bottom) 100%
    );
    pointer-events: none;
  }

  .cf2-card__caption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .cf2-card__title {
    font-size: 18px;
    font-weight: 600;
    color: var(--cf2-title-color);
    line-height: 1.3;
  }

  .cf2-card__count {
    font-size: 13px;
    color: var(--cf2-count-color);
  }

  @media (prefers-reduced-motion: reduce) {
    .cf2-card__media,
    .cf2-card__image {
      transition: none !important;
      transform: none !important;
    }
  }

  /* Flèches et pagination : surcharge scopée à cette section uniquement,
     pour ne pas affecter les autres carrousels (guide de la conservation,
     etc.) qui gardent le style .splide__arrow/.splide__pagination__page
     par défaut du thème (assets/slider.css). */
  .cf2-section .splide__arrow {
    background: var(--cf2-arrow-bg);
    border: none;
  }

  .cf2-section .splide__arrow .icon--arrow_back,
  .cf2-section .splide__arrow .icon--arrow_forward {
    color: var(--cf2-arrow-icon);
  }

  .cf2-section .splide__pagination__page {
    background: var(--cf2-pagination-inactive);
    opacity: 1;
  }

  .cf2-section .splide__pagination__page.is-active {
    background: var(--cf2-pagination-active);
    opacity: 1;
  }
/* END_SECTION:collections-featured-premium */

/* START_SECTION:collections-featured (INDEX:21) */
.collections-featured {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    --cf-prem-radius: 16px;
    --cf-prem-gradient-bottom: rgba(0, 0, 0, 0.78);
    --cf-prem-title-color: #ffffff;
    --cf-prem-count-color: #e5e5e5;
    --cf-prem-arrow-bg: #777d43;
    --cf-prem-arrow-icon: #ffffff;
    --cf-prem-pagination-active: #777d43;
    --cf-prem-pagination-inactive: #d9d9d9;
    --cf-prem-transition: 250ms;
  }

  .collections-featured__inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  /* En-tête : ordre figé sur-titre → titre → sous-titre.
     Le sur-titre hérite du style centralisé via la classe .eyebrow,
     le titre via la classe .section-title — on ne gère ici que l'espacement. */
  .cf-header {
    max-width: 720px;
    margin-bottom: 28px;
  }

  .cf-header--center {
    max-width: 100%;
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }

  .cf-eyebrow {
    margin: 0 0 8px;
  }

  .cf-title {
    margin: 0 0 10px;
  }

  .cf-subtitle {
    margin: 0;
    color: #4a4a4a;
  }

  .collections-featured__grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    gap: var(--gap-md);
  }

  @media (width > 750px) {
    .collections-featured__grid {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }

  .cf-prem-card {
    display: block;
    text-decoration: none;
    color: inherit;
  }

  .cf-prem-card__media {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: var(--cf-prem-radius);
    aspect-ratio: 3 / 4;
    transition: transform var(--cf-prem-transition) ease;
  }

  .cf-prem-card:hover .cf-prem-card__media {
    transform: translateY(-4px);
  }

  .cf-prem-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--cf-prem-transition) ease;
  }

  .cf-prem-card:hover .cf-prem-card__image {
    transform: scale(1.03);
  }

  .cf-prem-card__image--placeholder {
    background: color-mix(in srgb, var(--cf-prem-arrow-bg) 15%, transparent);
  }

  .cf-prem-card__gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 42%, var(--cf-prem-gradient-bottom) 100%);
    pointer-events: none;
  }

  .cf-prem-card__caption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .cf-prem-card__title {
    font-size: 18px;
    font-weight: 600;
    color: var(--cf-prem-title-color);
    line-height: 1.3;
  }

  .cf-prem-card__count {
    font-size: 13px;
    color: var(--cf-prem-count-color);
  }

  @media (prefers-reduced-motion: reduce) {
    .cf-prem-card__media,
    .cf-prem-card__image {
      transition: none !important;
      transform: none !important;
    }
  }

  /* Flèches et pagination olive, scopées à cette section uniquement. */
  .collections-featured .splide__arrow {
    background: var(--cf-prem-arrow-bg);
    border: none;
  }

  .collections-featured .splide__arrow .icon--arrow_back,
  .collections-featured .splide__arrow .icon--arrow_forward {
    color: var(--cf-prem-arrow-icon);
  }

  .collections-featured .splide__pagination__page {
    background: var(--cf-prem-pagination-inactive);
    opacity: 1;
  }

  .collections-featured .splide__pagination__page.is-active {
    background: var(--cf-prem-pagination-active);
    opacity: 1;
  }
/* END_SECTION:collections-featured */

/* START_SECTION:collections-showcase (INDEX:22) */
.collections-showcase {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }
  .collections-showcase__inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .collections-showcase__media {
    position: relative;
    aspect-ratio: var(--cs-ratio, 0.8);
    width: 100%;
    background: var(--color-border, #eee);
  }
  .collections-showcase__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
  }
  .collections-showcase__img--placeholder svg {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .collections-showcase__card:hover .collections-showcase__img {
    transform: scale(1.04);
  }

  .collections-showcase__overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 16px 18px;
    color: var(--cs-overlay-color, #ffffff);
  }
  .collections-showcase__name {
    font-family: var(--font-heading--family, inherit);
    font-weight: var(--font-heading--weight, 600);
    font-size: var(--cs-title-size-card, 1.125rem);
    line-height: 1.2;
  }
  .collections-showcase__count {
    font-family: var(--font-body--family, inherit);
    font-size: 0.8125rem;
    opacity: 0.9;
  }

  .collections-showcase__empty {
    display: grid;
    place-items: center;
    aspect-ratio: var(--cs-ratio, 0.8);
    border-radius: var(--cc-radius);
    background: var(--color-border, #eee);
    color: var(--color-foreground, #333);
    font-family: var(--font-body--family, inherit);
    text-align: center;
    padding: 20px;
  }

  @media (prefers-reduced-motion: reduce) {
    .collections-showcase__card:hover .collections-showcase__img { transform: none; }
    .collections-showcase__img { transition: none; }
  }
/* END_SECTION:collections-showcase */

/* START_SECTION:comparison-mieux-garde (INDEX:23) */
.mg-comp {
    background: var(--mg-bg);
    color: var(--mg-text);
    padding-top: var(--mg-padding-top);
    padding-bottom: var(--mg-padding-bottom);
  }

  .mg-comp__inner {
    max-width: 860px;
    margin: 0 auto;
    padding: 0 20px;
  }

  .mg-comp__title {
    text-align: center;
    color: var(--mg-text);
    margin: 0 0 8px;
  }

  .mg-comp__subtitle {
    text-align: center;
    color: var(--mg-text);
    opacity: 0.65;
    font-weight: 400;
    margin: 0 0 44px;
  }

  /* Une seule colonne sur tous les breakpoints — le format pilule exploite
     déjà toute la largeur disponible. */
  .mg-comp__list {
    display: flex;
    flex-direction: column;
  }

  .mg-comp__criterion {
    margin-bottom: 38px;
  }

  .mg-comp__criterion:last-child {
    margin-bottom: 0;
  }

  /* Aucune ligne séparatrice entre critères — distinction par l'espacement
     (margin-bottom) uniquement. */

  .mg-comp__crit-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--mg-text);
  }

  .mg-comp__crit-head .icon {
    opacity: 0.85;
    flex-shrink: 0;
    font-size: 17px !important;
    color: var(--mg-text);
  }

  .mg-comp__pill-row {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 8px;
  }

  .mg-comp__pill-row:last-child {
    margin-bottom: 0;
  }

  .mg-comp__pill-label {
    flex: 0 0 120px;
    text-align: right;
    font-size: var(--mg-label-size);
    line-height: 1.3;
    color: var(--mg-label-other-color);
  }

  .mg-comp__pill-row--mg .mg-comp__pill-label {
    font-weight: 700;
    color: var(--mg-label-mg-color);
  }

  .mg-comp__pill-track {
    flex: 1 1 auto;
    min-height: var(--mg-pill-height-desktop);
    background: var(--mg-track);
    border-radius: var(--mg-pill-radius);
    overflow: hidden;
  }

  .mg-comp__pill-fill {
    min-height: var(--mg-pill-height-desktop);
    width: var(--pill-target);
    border-radius: var(--mg-pill-radius);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 8px 22px;
  }

  .mg-comp__pill-row--mg .mg-comp__pill-fill {
    background: linear-gradient(90deg, var(--mg-pill-mg-start), var(--mg-pill-mg-end));
  }

  .mg-comp__pill-row--other .mg-comp__pill-fill {
    background: var(--mg-pill-other);
  }

  .mg-comp__pill-text {
    color: var(--mg-pill-text-color);
    font-size: var(--mg-pill-text-size);
    font-weight: 600;
    line-height: 1.3;
    text-align: right;
    /* Hauteur automatique au-dessus du minimum : le retour à la ligne est
       autorisé plutôt que de tronquer ou de réduire la police sous la
       taille lisible, pour les textes longs dans une pilule courte. */
    white-space: normal;
    opacity: 1;
  }

  .mg-comp__button-wrap {
    text-align: center;
    margin-top: 32px;
  }

  .mg-comp__button {
    display: inline-block;
    padding: 12px 28px;
    background: var(--mg-pill-mg-end);
    color: #ffffff;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 600;
    white-space: nowrap;
  }

  /* ===================== Animation (cascade au niveau pilule) ===================== */
  /* État de base (JS absent, animation désactivée, ou prefers-reduced-motion) :
     pilules déjà à leur largeur finale, texte déjà visible — défini
     ci-dessus par défaut, rien à faire de plus ici. */
  .mg-comp.js-ready .mg-comp__pill-fill {
    width: 0%;
    transition: width var(--mg-pill-duration) cubic-bezier(0.22, 1, 0.36, 1);
    will-change: width;
  }

  .mg-comp.js-ready.is-visible .mg-comp__pill-fill {
    width: var(--pill-target);
  }

  .mg-comp.js-ready .mg-comp__pill-text {
    opacity: 0;
    transition: opacity 0.3s ease;
  }

  .mg-comp.js-ready .mg-comp__pill-fill--filled .mg-comp__pill-text {
    opacity: 1;
  }

  @media (prefers-reduced-motion: reduce) {
    .mg-comp.js-ready .mg-comp__pill-fill {
      width: var(--pill-target);
      transition: none;
    }

    .mg-comp.js-ready .mg-comp__pill-text {
      opacity: 1;
      transition: none;
    }
  }

  /* ===================== Mobile ===================== */
  @media (width < 640px) {
    .mg-comp__pill-label {
      flex-basis: 84px;
      font-size: calc(var(--mg-label-size) - 2px);
    }

    .mg-comp__pill-track,
    .mg-comp__pill-fill {
      min-height: var(--mg-pill-height-mobile);
    }

    .mg-comp__pill-fill {
      padding: 6px 14px;
    }

    .mg-comp__pill-text {
      font-size: calc(var(--mg-pill-text-size) - 1.5px);
    }
  }
/* END_SECTION:comparison-mieux-garde */

/* START_SECTION:comparison-table (INDEX:24) */
.comparison-table {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .comparison-table__inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .comparison-table__table-wrapper {
    overflow-x: auto;
  }

  @media (width >= 750px) {
    .comparison-table__table-wrapper {
      overflow: visible;
    }
  }

  .comparison-table__table {
    border-collapse: collapse;
    width: 100%;
    background-color: transparent;
    /* table-layout: fixed; */
  }
/* END_SECTION:comparison-table */

/* START_SECTION:complementary-accessories (INDEX:25) */
.ca-wrap {
    background: var(--ca-bg);
    padding-top: var(--ca-padding-top);
    padding-bottom: var(--ca-padding-bottom);
    opacity: 0;
    animation: caFadeIn 400ms ease forwards;
  }

  @keyframes caFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
  }

  @media (prefers-reduced-motion: reduce) {
    .ca-wrap {
      animation: none;
      opacity: 1;
    }
  }

  .ca-inner {
    max-width: var(--ca-max-width);
    margin: 0 auto;
    padding: 0 24px;
  }

  .ca-header {
    margin-bottom: 24px;
  }

  .ca-header--center {
    text-align: center;
  }

  .ca-title {
    /* Pas de font-weight/font-family en dur : hérite du style H2 de base
       du thème (Poppins, graisse standard), comme .cf2-title/.fc-title
       ailleurs sur le site — évite toute incohérence typographique. */
    margin: 0 0 8px;
    font-size: var(--ca-title-size);
    color: var(--ca-title-color);
  }

  .ca-subtitle {
    margin: 0;
    color: var(--ca-subtitle-color);
  }

  .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;
  }

  /* Carrousel (snippets/slider.liquid, moteur Splide partagé avec "Nos
     collections"/"Collection en vedette") : la carte occupe toute la
     largeur de son slide, Splide gère la largeur/le nombre visible via
     per_page_desktop/per_page_mobile. Flèches et pagination scopées à
     cette section uniquement, cohérentes avec le reste du site.

     Alignement bas de carte : .splide__list est un conteneur flex
     (assets/slider.css) sans align-items déclaré, donc les slides
     s'étirent par défaut à la hauteur de la plus haute d'entre elles —
     c'est ce comportement qui permet à .ca-card (height:100%) puis
     .ca-card__body (flex-grow:1) de remplir l'espace disponible, et à
     .ca-card__footer (margin-top:auto) de rester collé en bas partout.
     Un ancien correctif fixait .splide__slide à height:auto, ce qui
     neutralisait cet étirement — supprimé ici : il n'est plus nécessaire
     maintenant que le contenu haut de carte (titre, description) a une
     hauteur réservée fixe, qui évitait le "trou" visuel que le height:auto
     cherchait probablement à masquer. Aucune règle de remplacement n'est
     nécessaire ici : le comportement d'étirement par défaut de Splide
     (assets/slider.css) suffit une fois ce correctif retiré. */

  /* Correctif "flèche qui recouvre le contenu des cartes" : la piste
     Splide reçoit une marge intérieure de chaque côté, assez large pour
     loger la flèche (40px) sans jamais chevaucher la première/dernière
     carte — les flèches se positionnent DANS cette marge, jamais
     par-dessus une carte. */
  @media (width >= 750px) {
    .ca-{{ section.id }} .splide__track {
      padding: 0 48px !important;
    }

    .ca-{{ section.id }} .splide__arrow--prev {
      left: 0;
    }

    .ca-{{ section.id }} .splide__arrow--next {
      right: 0;
    }
  }

  .ca-{{ section.id }} .splide__arrow {
    background: var(--ca-arrow-bg);
    border: none;
  }

  .ca-{{ section.id }} .splide__arrow .icon--arrow_back,
  .ca-{{ section.id }} .splide__arrow .icon--arrow_forward {
    color: var(--ca-arrow-icon);
  }

  .ca-{{ section.id }} .splide__pagination__page {
    background: var(--ca-pagination-inactive);
    opacity: 1;
  }

  .ca-{{ section.id }} .splide__pagination__page.is-active {
    background: var(--ca-pagination-active);
    opacity: 1;
  }

  .ca-card {
    width: 100%;
    height: 100%;
    background: var(--ca-card-bg);
    border: 1px solid var(--ca-card-border);
    border-radius: var(--ca-card-radius);
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }

  .ca-card__media {
    position: relative;
    display: block;
    flex-shrink: 0;
    aspect-ratio: 1 / 1;
    overflow: hidden;
  }

  /* Badge de réduction (snippets/discount-badge.liquid, composant partagé)
     — coin haut-gauche de l'image, aucun autre élément absolu sur cette
     carte : pas de collision possible. */
  .ca-card__badges {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 1;
  }

  .ca-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .ca-card__image--placeholder {
    width: 100%;
    height: 100%;
    background: color-mix(in srgb, var(--ca-card-border) 40%, transparent);
  }

  .ca-card__body {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    /* Remplit tout l'espace laissé par .ca-card__media (hauteur fixe) une
       fois la carte étirée à la hauteur de la plus haute du rang — sans
       ça, .ca-card__footer n'aurait aucun espace disponible à consommer
       via margin-top: auto. */
    flex-grow: 1;
    min-height: 0;
  }

  .ca-card__name {
    font-size: var(--ca-name-size);
    font-weight: var(--ca-name-weight);
    color: var(--ca-name-color);
    text-decoration: none;
    line-height: 1.3;
    /* Titre limité à 2 lignes, hauteur réservée identique sur toutes les
       cartes même pour un titre court d'une seule ligne. */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: calc(var(--ca-name-size) * 1.3 * 2);
  }

  .ca-card__name:hover {
    text-decoration: underline;
  }

  .ca-card__rating .rating,
  .ca-card__rating .rating--empty {
    --rating-star-size: 14px;
    --rating-gap: 6px;
    --rating-star-filled: var(--ca-star-filled);
    --rating-star-empty: var(--ca-star-empty);
    --rating-text-color: var(--ca-rating-text-color);
    justify-content: flex-start;
  }

  .ca-card__rating .rating__count {
    font-size: 12px;
  }

  .ca-card__rating .rating__count--empty {
    font-size: 12px;
    color: var(--ca-rating-text-color);
    opacity: 0.8;
  }

  .ca-card__argumentaire {
    margin: 0;
    font-size: var(--ca-argumentaire-size);
    color: var(--ca-argumentaire-color);
    line-height: 1.4;
    /* Description tronquée à 3 lignes, hauteur réservée identique sur
       toutes les cartes (2 lignes de texte ou 3, ou vide) : c'est ce qui
       garantit que le bloc prix/bouton/détails commence toujours au même
       niveau, avant même l'effet de margin-top:auto ci-dessous. */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: calc(var(--ca-argumentaire-size) * 1.4 * 3);
  }

  /* Prix + variante + bouton "Ajouter" + "Détails", regroupés pour être
     poussés en bloc vers le bas de la carte via margin-top: auto — que le
     prix soit masqué (réglage) ou qu'il n'y ait pas de sélecteur de
     variante sur un produit donné, "Ajouter" et "Détails" restent alignés
     avec ceux des autres cartes, puisque c'est toujours .ca-card__details
     (dernier élément, hauteur fixe) qui touche le bas de la carte. */
  .ca-card__footer {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .ca-card__price {
    font-size: var(--ca-price-size);
    font-weight: var(--ca-price-weight);
    color: var(--ca-price-color);
  }

  .ca-card__variant-select {
    width: 100%;
    font-size: 13px;
    padding: 6px 8px;
    border: 1px solid var(--ca-card-border);
    border-radius: 6px;
    background: var(--ca-card-bg);
    color: var(--ca-name-color);
  }

  .ca-card__add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: calc(var(--button-padding-vertical) * 0.6) calc(var(--button-padding-horizontal) * 0.6);
    border-radius: var(--button-border-radius);
    border: 1.5px solid var(--ca-btn-bg);
    background: var(--ca-btn-bg);
    color: var(--ca-btn-text);
    font-family: var(--button-font-family);
    font-size: calc(var(--button-font-size, 0.9rem) * 0.95);
    font-weight: var(--button-primary-font-weight, 600);
    letter-spacing: var(--button-letter-spacing, normal);
    text-transform: var(--button-primary-text-transform, none);
    cursor: pointer;
    transition: background-color 200ms ease, color 200ms ease, opacity 200ms ease;
  }

  .ca-card__add:hover:not(:disabled) {
    background: var(--ca-btn-bg-hover);
    border-color: var(--ca-btn-bg-hover);
  }

  .ca-card__add:disabled {
    opacity: 0.5;
    cursor: not-allowed;
  }

  .ca-card__add-icon {
    display: flex;
    align-items: center;
  }

  .ca-card__add-icon .icon {
    font-size: 16px !important;
  }

  .ca-card__add.is-loading {
    opacity: 0.7;
  }

  .ca-card__add.is-success {
    background: var(--ca-btn-bg-hover);
    border-color: var(--ca-btn-bg-hover);
  }

  @media (prefers-reduced-motion: reduce) {
    .ca-card__add {
      transition: none;
    }
  }

  .ca-card__details {
    border-top: 1px solid var(--ca-card-border);
    padding-top: 8px;
  }

  .ca-card__details-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    cursor: pointer;
    list-style: none;
    font-size: 13px;
    font-weight: 600;
    color: var(--ca-name-color);
  }

  .ca-card__details-summary::-webkit-details-marker { display: none; }
  .ca-card__details-summary::marker { content: ''; }

  .ca-card__details-summary:focus-visible {
    outline: 2px solid var(--ca-link-color);
    outline-offset: 3px;
    border-radius: 4px;
  }

  .ca-card__details-chevron {
    display: flex;
    flex-shrink: 0;
    color: var(--ca-name-color);
    transition: transform var(--ca-details-transition) ease;
  }

  .ca-card__details[open] .ca-card__details-chevron {
    transform: rotate(180deg);
  }

  .ca-card__details-body {
    display: grid !important;
    grid-template-rows: 0fr;
    transition: grid-template-rows var(--ca-details-transition) ease;
  }

  .ca-card__details[open] .ca-card__details-body {
    grid-template-rows: 1fr;
  }

  .ca-card__details-body > .ca-card__details-list {
    overflow: hidden;
    min-height: 0;
  }

  .ca-card__details-list {
    margin: 8px 0 0;
    padding-left: 18px;
    font-size: 13px;
    color: var(--ca-subtitle-color);
    line-height: 1.5;
  }

  .ca-card__details-empty {
    margin: 8px 0 0;
    font-size: 13px;
    color: var(--ca-subtitle-color);
    opacity: 0.75;
    line-height: 1.5;
  }

  @media (prefers-reduced-motion: reduce) {
    .ca-card__details-chevron,
    .ca-card__details-body {
      transition: none !important;
    }
  }

  .ca-view-all {
    display: inline-flex;
    margin-top: 20px;
    color: var(--ca-link-color);
    font-weight: 600;
    text-decoration: underline;
  }
/* END_SECTION:complementary-accessories */

/* START_SECTION:conservation-approach (INDEX:26) */
.ca2-section {
    width: 100%;
  }

  .ca2-inner {
    margin: 0 auto;
  }

  .ca2-header {
    margin-bottom: 40px;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .ca2-header--center {
    align-items: center;
    text-align: center;
  }

  .ca2-header--left {
    align-items: flex-start;
    text-align: left;
  }

  .ca2-eyebrow {
    margin: 0;
    font-size: var(--eyebrow-font-size);
    font-weight: var(--eyebrow-font-weight);
    text-transform: var(--eyebrow-text-transform);
    letter-spacing: var(--eyebrow-letter-spacing);
    color: var(--ca2-eyebrow-color);
  }

  .ca2-title {
    margin: 0;
    color: var(--ca2-title-color);
  }

  .ca2-subtitle {
    margin: 0;
    max-width: 640px;
    color: var(--ca2-text-color);
  }

  .ca2-grid {
    display: grid;
    gap: var(--ca2-card-gap);
    grid-template-columns: repeat(1, 1fr);
  }

  @media (min-width: 700px) {
    .ca2-grid.ca2-cols--2 { grid-template-columns: repeat(2, 1fr); }
    .ca2-grid.ca2-cols--3 { grid-template-columns: repeat(3, 1fr); }
    .ca2-grid.ca2-cols--4 { grid-template-columns: repeat(4, 1fr); }
    .ca2-grid.ca2-cols--auto { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
  }

  .ca2-card {
    background: var(--ca2-card-bg);
    border: var(--ca2-card-border-width) solid var(--ca2-card-border);
    border-radius: var(--ca2-card-radius);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: border-color var(--ca2-hover-speed) ease, transform var(--ca2-hover-speed) ease;
  }

  .ca2-card:hover {
    border-color: var(--ca2-card-border-hover);
  }

  .ca2-section[data-elevation-enabled="true"] .ca2-card:hover {
    transform: translateY(calc(var(--ca2-elevation) * -1));
  }

  .ca2-card__media {
    display: block;
    overflow: hidden;
    border-radius: var(--ca2-image-radius);
    margin: 12px 12px 0;
  }

  .ca2-ratio--square { aspect-ratio: 1 / 1; }
  .ca2-ratio--landscape { aspect-ratio: 4 / 3; }
  .ca2-ratio--portrait { aspect-ratio: 3 / 4; }
  .ca2-ratio--wide { aspect-ratio: 16 / 9; }

  .ca2-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--ca2-hover-speed) ease;
  }

  [data-hover-zoom="true"] .ca2-card:hover .ca2-card__image {
    transform: scale(var(--ca2-zoom-scale));
  }

  .ca2-card__body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
  }

  .ca2-card__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--ca2-badge-size);
    height: var(--ca2-badge-size);
    border-radius: var(--ca2-badge-radius);
    background: var(--ca2-badge-bg);
    color: var(--ca2-badge-icon);
    transition: background-color var(--ca2-hover-speed) ease, color var(--ca2-hover-speed) ease;
  }

  .ca2-section[data-badge-hover="true"] .ca2-card:hover .ca2-card__badge {
    background: var(--ca2-badge-bg-hover);
    color: var(--ca2-badge-icon-hover);
  }

  .ca2-card__badge .icon {
    font-size: calc(var(--ca2-badge-size) * 0.5) !important;
  }

  .ca2-card__title {
    margin: 0;
    color: var(--ca2-title-color);
    font-size: 19px;
    font-weight: 600;
  }

  .ca2-card__text {
    margin: 0;
    color: var(--ca2-text-color);
    line-height: 1.55;
  }

  .ca2-cta-wrap {
    display: flex;
    justify-content: center;
    margin-top: 44px;
  }

  .ca2-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }

  .ca2-cta__arrow {
    display: flex;
    align-items: center;
    transition: transform var(--ca2-hover-speed) ease;
  }

  .ca2-cta__arrow .icon {
    font-size: 18px !important;
  }

  .ca2-cta:hover .ca2-cta__arrow {
    transform: translateX(3px);
  }

  .ca2-cta--hover-color:hover {
    background-color: var(--ca2-cta-hover-bg) !important;
    border-color: var(--ca2-cta-hover-bg) !important;
  }

  /* Apparition au scroll (désactivée par défaut, voir schema) */
  .ca2-card--reveal-ready {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity var(--ca2-reveal-duration) ease, transform var(--ca2-reveal-duration) ease;
  }

  .ca2-card--reveal-ready.ca2-card--visible {
    opacity: 1;
    transform: translateY(0);
  }

  @media (prefers-reduced-motion: reduce) {
    .ca2-card,
    .ca2-card__image,
    .ca2-card__badge,
    .ca2-cta__arrow {
      transition: none !important;
      transform: none !important;
    }

    .ca2-card--reveal-ready {
      opacity: 1 !important;
      transform: none !important;
    }
  }
/* END_SECTION:conservation-approach */

/* START_SECTION:custom-code (INDEX:27) */
.custom-code-section {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }
/* END_SECTION:custom-code */

/* START_SECTION:custom-section (INDEX:28) */
.section-custom-section {
    width: 100%;
    max-width: 100%;
    padding: 0;
  }

  .section-custom-section .text-block[data-visual-preview-mode] {
    max-width: 100%;
  }

  .section-custom-section .image-card[data-visual-preview-mode] {
    width: 100%;
  }

  .custom-section {
    width: 100%;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    display: flex;
    justify-content: center;
  }

  .custom-section .custom-section__inner {
    gap: var(--gap-mobile);
    width: 100%;
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .custom-section--flex .custom-section__inner {
    display: flex;
    flex-direction: var(--direction-mobile);
    flex-wrap: var(--wrap-mobile);
    justify-content: var(--justify-mobile);
    align-items: var(--align_items-mobile);
    height: 100%;
  }

  .custom-section:not(.custom-section--row-mobile) > div > .custom-section__inner > .text-block-center-mobile,
  .custom-section:not(.custom-section--row-mobile) > .custom-section__inner > .text-block-center-mobile {
    width: 100%;
  }

  .custom-section--grid .custom-section__inner {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    grid-template-rows: auto;
  }

  @media (width > 750px) {
    .custom-section .custom-section__inner {
      gap: var(--gap);
    }

    .custom-section--flex .custom-section__inner {
      flex-direction: var(--direction);
      flex-wrap: var(--wrap);
      justify-content: var(--justify);
      align-items: var(--align_items);
      height: auto;
    }

    .custom-section:not(.custom-section--row-desktop) > div > .custom-section__inner > .text-block-center-desktop,
    .custom-section:not(.custom-section--row-desktop) > .custom-section__inner > .text-block-center-desktop,
    .custom-section:not(.custom-section--row-desktop) > div > .custom-section__inner > .text-block-right-desktop,
    .custom-section:not(.custom-section--row-desktop) > .custom-section__inner > .text-block-right-desktop {
      width: 100%;
    }

    .custom-section--grid .custom-section__inner {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }
/* END_SECTION:custom-section */

/* START_SECTION:demo-design-system (INDEX:29) */
.highlights {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 1.5rem;
  }

  @media (width <= 1000px) {
    .highlights {
      grid-template-columns: 1fr;
    }
  }

  .highlight {
    display: flex;
    flex-direction: column;
  }

  .highlight > * + * {
    margin-top: 1rem;
  }

  .highlight-container {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
  }
/* END_SECTION:demo-design-system */

/* START_SECTION:faq-help-search (INDEX:30) */
.fh-wrap {
    background: var(--fh-section-bg);
    padding-top: var(--fh-padding-top);
    padding-bottom: var(--fh-padding-bottom);
  }

  .fh-inner {
    max-width: var(--fh-max-width);
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--fh-column-gap);
  }

  @media (width >= 900px) {
    .fh-inner {
      grid-template-columns: var(--fh-left-column-width) 1fr;
      align-items: start;
    }
  }

  .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;
  }

  .fh-help-card {
    background: var(--fh-card-bg);
    border-radius: var(--fh-card-radius);
    padding: var(--fh-card-padding-top) var(--fh-card-padding-right) var(--fh-card-padding-bottom) var(--fh-card-padding-left);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    align-self: var(--fh-help-card-align);
    gap: 12px;
    height: fit-content;
  }

  .fh-avatar-wrap { margin-bottom: 4px; }

  .fh-avatar {
    width: 100px;
    height: 100px;
    object-fit: cover;
    border-radius: var(--fh-avatar-radius);
    display: block;
  }

  .fh-help-card__title {
    font-size: 20px;
    font-weight: 700;
    color: var(--fh-card-title-color);
  }

  .fh-help-card__title p { margin: 0; }

  .fh-help-card__text {
    font-size: 14px;
    color: var(--fh-card-text-color);
    line-height: 1.5;
  }

  .fh-help-card__text p { margin: 0; }

  .fh-help-card__buttons {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
    margin-top: 8px;
  }

  .fh-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: var(--button-padding-vertical) var(--button-padding-horizontal);
    border-radius: var(--button-border-radius);
    font-size: var(--button-font-size, inherit);
    font-weight: var(--button-primary-font-weight, 600);
    text-transform: var(--button-primary-text-transform, none);
    letter-spacing: var(--button-letter-spacing, normal);
    text-decoration: none;
    transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease;
  }

  .fh-button--primary {
    background: var(--fh-btn-primary-bg);
    color: var(--fh-btn-primary-text);
    border: 1.5px solid var(--fh-btn-primary-bg);
  }

  .fh-button--primary:hover {
    background: var(--fh-btn-primary-bg-hover);
    border-color: var(--fh-btn-primary-bg-hover);
  }

  .fh-button--secondary {
    background: transparent;
    color: var(--fh-btn-secondary-text);
    border: 1.5px solid var(--fh-btn-secondary-border);
    font-weight: var(--button-secondary-font-weight, var(--button-primary-font-weight, 600));
  }

  .fh-faq-title {
    font-size: var(--fh-title-font-size);
    font-weight: 700;
    color: var(--fh-item-label-color);
    text-align: center;
    margin-top: var(--fh-title-margin-top);
    margin-bottom: var(--fh-title-margin-bottom);
  }

  .fh-faq-title p { margin: 0; }

  .fh-search__field {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1.5px solid var(--fh-search-border);
    background: var(--fh-search-bg);
    border-radius: var(--button-border-radius, 8px);
    padding: 10px 16px;
  }

  .fh-search__field:focus-within {
    border-color: var(--fh-search-border-focus);
  }

  .fh-search__icon {
    display: flex;
    color: var(--fh-item-detail-color);
    flex-shrink: 0;
  }

  .fh-search__icon .icon { font-size: 20px !important; }

  .fh-search__input {
    border: none;
    outline: none;
    flex: 1;
    font-size: 15px;
    background: transparent;
    color: var(--fh-item-label-color);
  }

  .fh-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
  }

  .fh-pill {
    border: 1px solid var(--fh-pill-border);
    background: var(--fh-pill-bg);
    color: var(--fh-pill-text);
    border-radius: 999px;
    padding: 6px 14px;
    font-size: 13px;
    cursor: pointer;
    transition: background-color 150ms ease, color 150ms ease;
  }

  .fh-pill--active {
    background: var(--fh-pill-active-bg);
    color: var(--fh-pill-active-text);
    border-color: var(--fh-pill-active-bg);
  }

  .fh-results {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 18px;
  }

  .fh-item {
    background: var(--fh-item-bg);
    border: 1px solid var(--fh-item-border);
    border-radius: 10px;
    padding: 14px 16px;
    transition: background-color var(--fh-transition-duration) ease;
  }

  .fh-item__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    cursor: pointer;
    list-style: none;
    font-size: 15px;
    font-weight: 600;
    color: var(--fh-item-label-color);
  }

  .fh-item__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--fh-link-color);
    flex-shrink: 0;
  }

  .fh-item__icon .icon {
    font-size: 20px !important;
  }

  .fh-item__label {
    flex: 1;
  }

  .fh-item__summary::-webkit-details-marker { display: none; }
  .fh-item__summary::marker { content: ''; }

  .fh-item__summary:focus-visible {
    outline: 2px solid var(--fh-link-color);
    outline-offset: 3px;
    border-radius: 4px;
  }

  .fh-item__chevron {
    color: var(--fh-item-detail-color);
    display: flex;
    flex-shrink: 0;
    transition: transform var(--fh-transition-duration) ease;
  }

  .fh-item[open] .fh-item__chevron { transform: rotate(180deg); }

  .fh-item__body {
    display: grid !important;
    grid-template-rows: 0fr;
    transition: grid-template-rows var(--fh-transition-duration) ease;
  }

  .fh-item[open] .fh-item__body { grid-template-rows: 1fr; }

  .fh-item__body > .fh-item__detail {
    overflow: hidden;
    min-height: 0;
  }

  .fh-item__detail {
    padding-top: 8px;
    font-size: 14px;
    color: var(--fh-item-detail-color);
    line-height: 1.5;
  }

  .fh-results-empty {
    margin-top: 12px;
    font-size: 14px;
    color: var(--fh-item-detail-color);
  }

  .fh-link {
    color: var(--fh-link-color);
    text-decoration: underline;
  }

  .fh-faq-link-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 20px;
  }

  .fh-faq-link {
    gap: 8px;
  }

  .fh-faq-link:hover { text-decoration: none; }

  .fh-faq-link-subtext {
    margin: 10px 0 0;
    font-size: 13px;
    color: var(--fh-item-detail-color);
    text-align: center;
  }

  @media (prefers-reduced-motion: reduce) {
    .fh-item,
    .fh-item__chevron,
    .fh-item__body {
      transition: none !important;
    }
  }
/* END_SECTION:faq-help-search */

/* START_SECTION:faq-metaobjects (INDEX:31) */
.fq-wrap {
    background: var(--fq-bg);
    padding-top: var(--fq-padding-top);
    padding-bottom: var(--fq-padding-bottom);
  }

  .fq-inner {
    max-width: var(--fq-max-width);
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    flex-direction: column;
    gap: 28px;
  }

  .fq-title {
    margin: 0;
    font-size: var(--fq-title-size);
    font-weight: 700;
    color: var(--fq-title-color);
  }

  .fq-title p,
  .fq-subtitle p {
    margin: 0;
  }

  .fq-subtitle {
    color: var(--fq-detail-color);
    max-width: 60ch;
  }

  .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;
  }

  .fq-search__label {
    display: block;
    margin-bottom: 8px;
    font-size: 14px;
    color: var(--fq-detail-color);
  }

  .fq-search__field {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1.5px solid var(--fq-badge-border);
    border-radius: var(--button-border-radius, 8px);
    padding: 10px 16px;
    max-width: 480px;
  }

  .fq-search__field:focus-within {
    border-color: var(--fq-link-color);
  }

  .fq-search__icon {
    display: flex;
    color: var(--fq-detail-color);
    flex-shrink: 0;
  }

  .fq-search__icon .icon {
    font-size: 20px !important;
  }

  .fq-search__input {
    border: none;
    outline: none;
    flex: 1;
    font-size: 15px;
    background: transparent;
    color: var(--fq-label-color);
  }

  .fq-search__count {
    margin-top: 8px;
    font-size: 13px;
    color: var(--fq-detail-color);
  }

  .fq-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  .fq-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid var(--fq-pill-border);
    background: var(--fq-pill-bg);
    color: var(--fq-pill-text);
    border-radius: 999px;
    padding: 6px 14px;
    font-size: 13px;
    text-decoration: none;
    transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease;
  }

  .fq-pill:hover,
  .fq-pill:focus-visible {
    background: var(--fq-pill-active-bg);
    color: var(--fq-pill-active-text);
    border-color: var(--fq-pill-active-bg);
  }

  .fq-pill__icon {
    display: flex;
    align-items: center;
  }

  .fq-pill__icon .icon { font-size: 16px !important; }

  .fq-categories {
    display: flex;
    flex-direction: column;
    gap: var(--fq-category-gap);
  }

  .fq-category {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    scroll-margin-top: 100px;
  }

  .fq-category--no-image {
    grid-template-columns: 1fr;
  }

  @media (width > 750px) {
    .fq-category--has-image {
      grid-template-columns: 1fr 1fr;
      gap: var(--fq-category-column-gap);
      align-items: start;
    }

    .fq-category--image-right .fq-category__media {
      order: 2;
    }

    .fq-category--image-right .fq-category__content {
      order: 1;
    }
  }

  .fq-category__media {
    border-radius: var(--fq-image-radius);
    overflow: hidden;
    width: 100%;
    aspect-ratio: var(--fq-image-ratio);
  }

  .fq-category__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .fq-category__content {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }

  .fq-category__title {
    margin: 0 0 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: var(--fq-category-title-size);
    font-weight: 700;
    color: var(--fq-category-title-color);
  }

  .fq-category__icon {
    display: flex;
    align-items: center;
    color: var(--fq-link-color);
    flex-shrink: 0;
  }

  .fq-category__icon .icon {
    font-size: 24px !important;
  }

  .fq-accordions {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .fq-item {
    background: var(--fq-badge-bg);
    border: 1px solid var(--fq-badge-border);
    border-radius: 10px;
    padding: 16px 18px;
    transition: background-color var(--fq-transition-duration) ease;
  }

  .fq-item[open] {
    background: var(--fq-badge-bg-open);
  }

  .fq-item__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    cursor: pointer;
    list-style: none;
    font-size: var(--fq-label-size);
    font-weight: 600;
    color: var(--fq-label-color);
  }

  .fq-item__summary::-webkit-details-marker { display: none; }
  .fq-item__summary::marker { content: ''; }

  .fq-item__summary:focus-visible {
    outline: 2px solid var(--fq-link-color);
    outline-offset: 3px;
    border-radius: 4px;
  }

  .fq-item__chevron {
    color: var(--fq-detail-color);
    display: flex;
    flex-shrink: 0;
    transition: transform var(--fq-transition-duration) ease;
  }

  .fq-item[open] .fq-item__chevron {
    transform: rotate(180deg);
  }

  .fq-item__body {
    display: grid !important;
    grid-template-rows: 0fr;
    transition: grid-template-rows var(--fq-transition-duration) ease;
  }

  .fq-item[open] .fq-item__body {
    grid-template-rows: 1fr;
  }

  .fq-item__body > .fq-item__detail {
    overflow: hidden;
    min-height: 0;
  }

  .fq-item__detail {
    padding-top: 10px;
    font-size: var(--fq-detail-size);
    color: var(--fq-detail-color);
    line-height: 1.55;
  }

  .fq-item__detail p { margin: 0; }

  .fq-empty-config {
    color: var(--fq-detail-color);
    font-size: 14px;
  }

  @media (prefers-reduced-motion: reduce) {
    .fq-item,
    .fq-item__chevron,
    .fq-item__body {
      transition: none !important;
    }
  }
/* END_SECTION:faq-metaobjects */

/* START_SECTION:featured-collection (INDEX:32) */
.fc-section {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .fc-inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .fc-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
    margin-bottom: 28px;
  }

  .fc-header--center {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .fc-header__text {
    max-width: 720px;
  }

  @media (width < 750px) {
    .fc-header {
      flex-direction: column;
      align-items: flex-start;
      gap: 16px;
    }
  }

  .fc-eyebrow {
    margin: 0 0 8px;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--fc-eyebrow-color);
  }

  .fc-title {
    margin: 0 0 10px;
    color: var(--fc-title-color);
  }

  .fc-subtitle {
    margin: 0;
    color: var(--fc-subtitle-color);
  }

  /* Bouton "Voir tous" : surcharge scopée à cette section pour rester
     olive quelle que soit la palette de couleurs choisie, tout en gardant
     la forme/typo/padding du système de bouton global. */
  .fc-header__cta .button {
    background-color: var(--fc-view-all-bg);
    color: var(--fc-view-all-text);
    border-color: var(--fc-view-all-border);
  }

  .fc-header__cta .button:hover {
    background-color: var(--fc-view-all-bg-hover);
    color: var(--fc-view-all-text);
    border-color: var(--fc-view-all-bg-hover);
  }

  .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;
  }

  /* Style de la carte produit (.fc-card et descendants) : voir
     assets/product-card-premium.css, chargé plus haut via stylesheet_tag —
     composant PARTAGÉ avec sections/main-collection.liquid, plus dupliqué
     ici (brief "cartes premium sur la grille collection"). */

  /* Flèches et pagination : surcharge scopée à cette section uniquement,
     pour rester cohérent avec "Nos collections" / "Le guide de la
     conservation" sans affecter les autres carrousels du site. */
  .fc-section .splide__arrow {
    background: var(--fc-arrow-bg);
    border: none;
  }

  .fc-section .splide__arrow .icon--arrow_back,
  .fc-section .splide__arrow .icon--arrow_forward {
    color: var(--fc-arrow-icon);
  }

  .fc-section .splide__pagination__page {
    background: var(--fc-pagination-inactive);
    opacity: 1;
  }

  .fc-section .splide__pagination__page.is-active {
    background: var(--fc-pagination-active);
    opacity: 1;
  }
/* END_SECTION:featured-collection */

/* START_SECTION:footer (INDEX:33) */
.footer-section {
    width: 100%;
    max-width: 100%;
    padding: 0;
  }

  .footer {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
    margin-top: var(--margin-top);
  }

  .footer--top-border {
    border-top: var(--separator-border-width) solid var(--color-border);
  }

  .footer__content {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    grid-template-rows: auto;
    gap: var(--gap-mobile);
    width: 100%;
  }

  .footer--flex .footer__content {
    display: flex;
    flex-direction: var(--direction-mobile);
    flex-wrap: var(--wrap-mobile);
    justify-content: var(--justify-mobile);
    align-items: var(--align_items-mobile);
  }

  .footer--grid .footer__content {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    grid-template-rows: auto;
  }

  @media (width > 750px) {
    .footer__content {
      gap: var(--gap);
    }

    .footer--flex .footer__content {
      flex-direction: var(--direction);
      flex-wrap: var(--wrap);
      justify-content: var(--justify);
      align-items: var(--align_items);
    }

    .footer--grid .footer__content {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }
/* END_SECTION:footer */

/* START_SECTION:grille-usages (INDEX:34) */
.gu-wrap {
    background: var(--gu-bg);
    padding-top: var(--gu-padding-top);
    padding-bottom: var(--gu-padding-bottom);
  }

  .gu-inner {
    max-width: var(--gu-max-width);
    margin: 0 auto;
    padding: 0 24px;
  }

  .gu-header {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: var(--gu-header-gap);
  }

  .gu-header--center { align-items: center; text-align: center; }
  .gu-header--left { align-items: flex-start; text-align: left; }

  .gu-eyebrow {
    margin: 0;
    text-transform: uppercase;
    font-size: var(--gu-eyebrow-size);
    font-weight: var(--gu-eyebrow-weight);
    letter-spacing: var(--gu-eyebrow-spacing);
    color: var(--gu-eyebrow-color);
    font-family: var(--gu-eyebrow-font, inherit);
  }

  .gu-title {
    margin: 0;
    font-size: var(--gu-title-size);
    font-weight: var(--gu-title-weight);
    color: var(--gu-title-color);
    font-family: var(--gu-title-font, inherit);
  }

  .gu-grid {
    display: grid;
    grid-template-columns: repeat(var(--gu-columns-mobile), 1fr);
    align-items: start;
    gap: var(--gu-card-gap);
  }

  @media (width >= 750px) {
    .gu-grid {
      grid-template-columns: repeat(var(--gu-columns-desktop), 1fr);
    }
  }

  .gu-card {
    display: block;
    border-radius: var(--gu-card-radius);
    box-shadow: var(--gu-shadow);
    text-decoration: none;
    color: inherit;
  }

  a.gu-card {
    cursor: pointer;
  }

  a.gu-card:focus-visible {
    outline: 3px solid #1a1a1a;
    outline-offset: 3px;
    border-radius: var(--gu-card-radius);
  }

  /* Hauteur basée sur la largeur via un padding-top en pourcentage : ne
     dépend ni de aspect-ratio ni du comportement d'étirement de CSS Grid,
     fonctionne de façon fiable dans tous les navigateurs. */
  .gu-card__media {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: inherit;
  }

  .gu-card__media.gu-card--portrait { padding-top: 133.33%; }
  .gu-card__media.gu-card--square { padding-top: 100%; }
  .gu-card__media.gu-card--free { padding-top: 0; min-height: 280px; }

  .gu-card__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .gu-card__img--placeholder {
    background: color-mix(in srgb, var(--gu-card-title-color) 12%, transparent);
  }

  .gu-card__gradient {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: var(--gu-gradient-height);
    background: linear-gradient(to bottom, var(--gu-gradient-start), var(--gu-gradient-end));
    pointer-events: none;
  }

  .gu-card__content {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: var(--gu-card-padding);
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .gu-card__title {
    margin: 0;
    text-transform: uppercase;
    font-weight: var(--gu-card-title-weight);
    font-size: var(--gu-card-title-size);
    letter-spacing: var(--gu-card-title-spacing);
    color: var(--gu-card-title-color);
    font-family: var(--gu-card-title-font, inherit);
  }

  .gu-card__description {
    margin: 0;
    font-weight: var(--gu-card-desc-weight);
    font-size: var(--gu-card-desc-size);
    color: var(--gu-card-desc-color);
    font-family: var(--gu-card-desc-font, inherit);
  }

  .gu-card,
  .gu-card__img {
    transition: transform var(--gu-transition-duration) ease, filter var(--gu-transition-duration) ease;
  }

  .gu-card__content {
    transition: transform var(--gu-transition-duration) ease;
  }

  .gu-hover-on.gu-hover--zoom .gu-card:hover .gu-card__img {
    transform: scale(calc(1 + (var(--gu-hover-intensity) / 1000)));
  }

  .gu-hover-on.gu-hover--darken .gu-card:hover .gu-card__img {
    filter: brightness(calc(1 - (var(--gu-hover-intensity) / 200)));
  }

  .gu-hover-on.gu-hover--text_up .gu-card:hover .gu-card__content {
    transform: translateY(calc(var(--gu-hover-intensity) / -5 * 1px));
  }

  @media (prefers-reduced-motion: reduce) {
    .gu-card,
    .gu-card__img,
    .gu-card__content {
      transition: none;
    }
    .gu-hover-on .gu-card:hover .gu-card__img {
      transform: none;
      filter: none;
    }
    .gu-hover-on .gu-card:hover .gu-card__content {
      transform: none;
    }
  }
/* END_SECTION:grille-usages */

/* START_SECTION:header (INDEX:35) */
.shopify-section-group-header-group {
    overflow: visible;
  }

  .section-header {
    position: relative;
  }

  header-component {
    display: flex;
    justify-content: center;
  }

  /* Header transparent */

  .section-header:has(.header--transparent):not(:has(.header--sticky)) {
    z-index: 3;
  }

  .header--transparent {
    margin-bottom: -100%;
  }

  .header--transparent[data-sticky-state='inactive']:not(:has(.header__menu-item--megamenu[data-open='true'])) {
    background-color: transparent;

    .header__layout {
      background-color: transparent;
      color: inherit;
      border-bottom: none;
    }

    .localization-form__language-select {
      background-color: transparent;
      color: inherit;
    }

    .header__logo-image--transparent {
      display: block;
    }

    &:has(.header__logo-image--transparent) .header__logo-image {
      display: none;
    }
  }

  .header__logo {
    display: flex;
    align-items: center;
  }

  .header__logo-image,
  .header__logo-image--transparent {
    height: var(--logo-height-mobile);
    width: var(--logo-width-mobile);
    transform: translateY(var(--logo-offset-y-mobile, 0px));
  }

  @media (width > 1000px) {
    .header__logo-image,
    .header__logo-image--transparent {
      height: var(--logo-height);
      width: var(--logo-width);
      transform: translateY(var(--logo-offset-y, 0px));
    }
  }

  .header__logo-image--transparent {
    display: none;
  }

  .header__logo-name {
    text-transform: uppercase;
    font-weight: bold;
  }

  .header__menu {
    display: flex;
    align-items: center;
    gap: 1rem;
  }

  .header__menu-mobile {
    display: flex;
    height: 100%;
    align-items: center;
    justify-content: flex-start;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    color: inherit;
  }

  header-component:not(:has(.header__mobile-menu-overlay)) .header__menu-mobile {
    display: none;
  }

  @media (width > 1000px) {
    .header__menu-mobile {
      display: none;
    }

    .search-popup-mobile {
      display: none;
    }
  }

  .header__menu a,
  .header__menu-mobile {
    transition: var(--animation-link-hover);
  }

  .header__menu a:hover,
  .header__menu-mobile:hover {
    opacity: var(--opacity-link-hover);
  }

  .header__menu a:not(.button) {
    text-decoration: none;
    color: inherit;
  }

  .header__menu a {
    font-size: var(--font-body--size);
  }

  /* Mise en page des headers */

  .header__layout {
    border-bottom: var(--separator-border-width) solid var(--color-border);
  }

  .header__layout-desktop {
    display: none;
  }

  .header__layout-mobile {
    display: flex;
    width: 100%;
    max-width: var(--page-width);
    padding: 0 var(--page-margin-mobile);
  }

  @media (width > 1000px) {
    .header__layout-desktop {
      display: flex;
      width: 100%;
    }

    .header__layout-mobile {
      display: none;
    }
  }

  .header__layout--logo-center,
  .header__layout--logo-left,
  .header__layout--logo-left-menu-left,
  .header__layout--logo-center-with-two-menus,
  .header__layout--logo-center-above-menu__logo-and-icons,
  .header__layout--logo-left-above-menu__logo-and-icons {
    height: var(--header-height);
  }

  .header__layout--logo-center,
  .header__layout--logo-left,
  .header__layout--logo-left-menu-left,
  .header__layout--logo-center-with-two-menus,
  .header__layout--logo-center-above-menu,
  .header__layout--logo-left-above-menu {
    width: 100%;
  }

  .header__layout--logo-center,
  .header__layout--logo-left,
  .header__layout--logo-left-menu-left,
  .header__layout--logo-center-with-two-menus {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 1.5rem;
  }

  .header__layout--logo-left-menu-left {
    grid-template-columns: auto auto 1fr;
  }

  .header__layout--logo-center {
    .header__menu-desktop {
      justify-content: flex-start;
    }

    .header__logo {
      justify-content: center;
    }

    .header__actions {
      justify-content: flex-end;
    }
  }

  .header__layout--logo-left {
    .header__logo {
      justify-content: flex-start;
    }

    .header__menu-desktop {
      justify-content: center;
    }

    .header__actions {
      justify-content: flex-end;
    }
  }

  .header__layout--logo-left-menu-left {
    .header__logo {
      justify-content: flex-start;
    }

    .header__menu-desktop {
      justify-content: flex-start;
    }

    .header__actions {
      justify-content: flex-end;
    }
  }

  .header__layout--logo-center-above-menu {
    .header__layout--logo-center-above-menu__logo-and-icons {
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      gap: 1.5rem;
      align-items: center;

      .header__logo {
        grid-column: 2;
        justify-content: center;
      }

      .header__actions {
        grid-column: 3;
        justify-content: flex-end;
      }
    }

    .header__menu-desktop {
      justify-content: center;
      width: 100%;
    }
  }

  .header__layout--logo-left-above-menu {
    .header__layout--logo-left-above-menu__logo-and-icons {
      display: grid;
      grid-template-columns: auto auto;

      .header__logo {
        grid-column: 1;
        justify-content: flex-start;
      }

      .header__actions {
        grid-column: 2;
        justify-content: flex-end;
      }
    }
  }

  .header__layout--logo-center-above-menu__menu,
  .header__layout--logo-left-above-menu__menu {
    padding-bottom: 1rem;
  }

  .header__layout--logo-center-above-menu__menu,
  .header__layout--logo-left-above-menu__menu:not(:has(.button)) {
    height: 2rem;
  }

  .header__layout--logo-center-with-two-menus {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 1.5rem;

    .header__layout--logo-center-with-two-menus__logo-and-menus {
      grid-column: 2;
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      gap: 2rem;

      & > .header__menu:first-of-type {
        justify-content: flex-end;
      }
    }

    .header__actions {
      grid-column: 3;
      justify-content: flex-end;
    }
  }

  .header__icon-count-bubble {
    position: absolute;
    bottom: -6px;
    right: -6px;
    border-radius: 10px;
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: transparent;
  }

  .header__icon-count-bubble-inner {
    background-color: var(--color-primary-button-background);
    color: var(--color-primary-button-text);
    width: 14px;
    height: 14px;
    font-size: 0.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    font-size: 0.6rem;
  }

  .header__icon-count-bubble--long {
    width: 30px;
    right: -50%;
  }

  header-component:not(.header--transparent) .header__icon-count-bubble,
  .header--transparent[data-sticky-state='active'] .header__icon-count-bubble,
  .header--transparent[data-sticky-state='inactive']:has(.header__menu-item--megamenu[data-open='true']) .header__icon-count-bubble {
    background-color: var(--color-background);
  }
/* END_SECTION:header */

/* START_SECTION:image-avec-texte (INDEX:36) */
.ia-wrap {
    background: var(--ia-bg);
    padding-top: var(--ia-padding-top);
    padding-bottom: var(--ia-padding-bottom);
  }

  .ia-inner {
    max-width: var(--ia-max-width);
    margin: 0 auto;
    padding: 0 24px;
  }

  .ia-header {
    display: flex;
    flex-direction: column;
    align-items: var(--ia-header-align);
    text-align: var(--ia-header-text-align);
    gap: 10px;
    margin-bottom: var(--ia-top-gap);
  }

  .ia-eyebrow {
    margin: 0;
    color: var(--ia-eyebrow-color);
    font-size: var(--ia-eyebrow-size);
    font-weight: var(--ia-eyebrow-weight);
    letter-spacing: var(--ia-eyebrow-spacing);
    text-transform: var(--ia-eyebrow-transform);
  }

  .ia-title {
    margin: 0;
    color: var(--ia-title-color);
    font-size: var(--ia-title-size);
    font-weight: var(--ia-title-weight);
    line-height: 1.2;
  }

  .ia-columns {
    display: grid;
    grid-template-columns: var(--ia-image-width) var(--ia-text-width);
    gap: var(--ia-column-gap);
    align-items: center;
  }

  .ia-wrap--reverse .ia-columns {
    grid-template-columns: var(--ia-text-width) var(--ia-image-width);
  }
  .ia-wrap--reverse .ia-col--image { order: 2; }
  .ia-wrap--reverse .ia-col--text { order: 1; }

  .ia-image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: var(--ia-image-ratio);
    object-fit: cover;
    border-radius: var(--ia-image-radius);
    box-shadow: var(--ia-image-shadow);
  }

  .ia-image--placeholder {
    background: color-mix(in srgb, currentColor 8%, transparent);
    aspect-ratio: var(--ia-image-ratio, 4 / 3);
  }

  .ia-col--text {
    display: flex;
    flex-direction: column;
    align-items: var(--ia-col-align);
    text-align: var(--ia-col-text-align);
    gap: 16px;
  }

  .ia-subtitle {
    margin: 0;
    color: var(--ia-subtitle-color);
    font-size: var(--ia-subtitle-size);
    font-weight: var(--ia-subtitle-weight);
    line-height: 1.25;
  }

  .ia-paragraph {
    color: var(--ia-paragraph-color);
    font-size: var(--ia-paragraph-size);
    line-height: var(--ia-paragraph-line-height);
  }
  .ia-paragraph p { margin: 0; }

  .ia-button {
    display: inline-block;
    margin-top: 6px;
    padding: 13px 28px;
    background: var(--ia-button-bg);
    color: var(--ia-button-text);
    border-radius: 8px;
    font-weight: 600;
    text-decoration: none;
  }
  .ia-button:hover { opacity: 0.85; }

  @media (width < 750px) {
    .ia-columns {
      grid-template-columns: 1fr;
    }
    .ia-wrap--reverse .ia-columns {
      grid-template-columns: 1fr;
    }
    .ia-wrap--reverse .ia-col--image { order: 1; }
    .ia-wrap--reverse .ia-col--text { order: 2; }
  }
/* END_SECTION:image-avec-texte */

/* START_SECTION:image-banner (INDEX:37) */
.image-banner-wrapper {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .image-banner-wrapper__inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .image-banner-wrapper--children-cards .image-banner {
    border-radius: var(--card-border-radius);
  }

  .image-banner-wrapper .splide__arrow {
    background-color: transparent;
    border: none;

    .icon {
      color: white;
    }
  }

  .image-banner-wrapper .splide__pagination {
    bottom: 5px;

    .splide__pagination__page,
    .splide__pagination__page.is-active {
      background: white;
    }
  }
/* END_SECTION:image-banner */

/* START_SECTION:lien-retour (INDEX:38) */
.lr-wrap {
    margin-top: var(--lr-margin-top);
    margin-bottom: var(--lr-margin-bottom);
  }

  .lr-inner {
    max-width: var(--lr-max-width);
    margin: 0 auto;
    padding: 0 24px;
  }

  .lr-align--left .lr-inner { text-align: left; }
  .lr-align--center .lr-inner { text-align: center; }

  .lr-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--lr-color);
    text-decoration: none;
    font-weight: 600;
    border-radius: 4px;
  }

  .lr-link:hover .lr-arrow {
    transform: translateX(-3px);
  }

  .lr-arrow {
    transition: transform 200ms ease;
    flex-shrink: 0;
  }

  .lr-link:focus-visible {
    outline: 2px solid var(--lr-color);
    outline-offset: 4px;
  }
/* END_SECTION:lien-retour */

/* START_SECTION:list-collections-premium (INDEX:39) */
.lcp-section {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .lcp-inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .lcp-header {
    text-align: center;
    max-width: 640px;
    margin: 0 auto var(--margin-lg, 24px);
  }

  .lcp-eyebrow {
    color: var(--lcp-color-eyebrow);
    margin: 0 0 var(--margin-xs, 8px);
  }

  .lcp-title {
    margin: 0 0 var(--margin-xs, 8px);
    font-family: var(--font-heading--family);
    font-weight: 700;
    color: var(--color-foreground);
  }

  .lcp-subtitle {
    margin: 0;
    color: var(--color-foreground);
    opacity: 0.75;
    line-height: 1.5;
  }

  .lcp-grid {
    display: grid;
    grid-template-columns: repeat(var(--lcp-columns-mobile), 1fr);
    gap: var(--gap-md, 16px);
  }

  @media (width > 750px) {
    .lcp-grid {
      grid-template-columns: repeat(var(--lcp-columns), 1fr);
    }
  }

  /* Carte cliquable dans son intégralité (brief : "toute la carte
     cliquable, pas juste le titre") */
  .lcp-card {
    display: block;
    text-decoration: none;
    color: inherit;
    border-radius: var(--lcp-card-radius);
    overflow: hidden;
    outline: 1px solid transparent;
    /* CORRECTIF : .lcp-card__caption est en position:absolute (layout
       vertical) pour se superposer en bas de l'image. Sans ancêtre
       positionné à proximité, elle se positionnait par rapport au
       prochain ancêtre positionné trouvé en remontant tout le DOM —
       potentiellement très loin de la carte, donc invisible dessus.
       position:relative ici garantit qu'elle reste ancrée à LA carte,
       quel que soit le contexte de page où la section est utilisée. */
    position: relative;
  }

  .lcp-card:focus-visible {
    outline: 2px solid #777d43;
    outline-offset: 2px;
  }

  /* --- Layout vertical (Section A) : image + dégradé + légende en
     surimpression, dans l'esprit de la carte premium déjà existante
     (snippets/cf-prem-card.liquid) --- */
  .lcp-grid--vertical .lcp-card__media {
    position: relative;
    aspect-ratio: 3 / 4;
    display: block;
  }

  .lcp-grid--vertical .lcp-card__image,
  .lcp-grid--vertical .lcp-card__image.lcp-card__image--placeholder {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .lcp-grid--vertical .lcp-card__gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.78) 0%, transparent 55%);
    pointer-events: none;
  }

  .lcp-grid--vertical .lcp-card__caption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: var(--padding-md, 16px);
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .lcp-grid--vertical .lcp-card__title {
    color: #ffffff;
    font-weight: 700;
    font-size: 1.05rem;
  }

  .lcp-grid--vertical .lcp-card__count {
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.85rem;
  }

  /* --- Layout horizontal (Section B) : petite vignette carrée à gauche,
     texte simple à droite — volontairement plus sobre pour marquer un
     second niveau de navigation, pas une redite de la Section A --- */
  .lcp-grid--horizontal .lcp-card {
    display: flex;
    align-items: center;
    gap: var(--gap-md, 16px);
    background: var(--color-background, #ffffff);
    border: 1px solid var(--color-border, #e5e3dc);
    padding: var(--padding-sm, 12px);
  }

  .lcp-grid--horizontal .lcp-card__media {
    position: relative;
    flex: 0 0 96px;
    aspect-ratio: 1 / 1;
    border-radius: calc(var(--lcp-card-radius) - 2px);
    overflow: hidden;
  }

  .lcp-grid--horizontal .lcp-card__image,
  .lcp-grid--horizontal .lcp-card__image.lcp-card__image--placeholder {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .lcp-grid--horizontal .lcp-card__caption {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .lcp-grid--horizontal .lcp-card__title {
    color: var(--lcp-color-title);
    font-weight: 600;
    font-size: 1rem;
  }

  .lcp-grid--horizontal .lcp-card__count {
    color: var(--color-foreground);
    opacity: 0.65;
    font-size: 0.85rem;
  }

  /* --- Interactions (brief : uniquement transform/opacity, désactivable,
     prefers-reduced-motion respecté) --- */
  .lcp-card__image {
    transition: transform 0.3s ease;
  }

  .lcp-card__title {
    transition: color 0.2s ease;
  }

  [data-hover-enabled='true'] .lcp-card:hover .lcp-card__image {
    transform: scale(1.04);
  }

  [data-hover-enabled='true'] .lcp-card:hover .lcp-card__title {
    color: var(--lcp-color-title-hover);
  }

  @media (prefers-reduced-motion: reduce) {
    .lcp-card__image,
    .lcp-card__title {
      transition: none;
    }
  }

  .lcp-empty {
    text-align: center;
    opacity: 0.7;
  }
/* END_SECTION:list-collections-premium */

/* START_SECTION:machine-quiz (INDEX:40) */
.mq-quiz {
    max-width: var(--mq-max-width);
    margin: 0 auto;
    padding: 32px 20px;
  }

  .mq-title {
    margin: 0 0 8px;
    font-size: 28px;
    font-weight: 700;
    text-align: center;
  }

  .mq-subtitle {
    margin: 0 0 24px;
    text-align: center;
    color: #4a4a4a;
  }

  .mq-progress {
    display: flex;
    gap: 6px;
    margin-bottom: 32px;
  }

  .mq-progress__segment {
    flex: 1;
    height: var(--mq-progress-height);
    border-radius: 999px;
    background: var(--mq-color-inactive);
    transition: background-color 200ms ease;
  }

  .mq-progress__segment.is-active {
    background: var(--mq-color-active);
  }

  @media (prefers-reduced-motion: reduce) {
    .mq-progress__segment {
      transition: none;
    }
  }

  .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;
  }

  .mq-viewport {
    position: relative;
    min-height: 320px;
  }

  .mq-step[hidden] {
    display: none !important;
  }

  .mq-back {
    background: none;
    border: none;
    padding: 0;
    margin-bottom: 16px;
    font-size: 14px;
    font-weight: 600;
    color: var(--mq-color-active);
    cursor: pointer;
  }

  .mq-question {
    margin: 0 0 20px;
    font-size: 20px;
    font-weight: 600;
    text-align: center;
  }

  .mq-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
  }

  @media (min-width: 700px) {
    .mq-cards {
      grid-template-columns: repeat(3, 1fr);
    }
  }

  .mq-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 20px 16px;
    min-height: 44px;
    background: var(--mq-color-card-bg);
    border: 1.5px solid var(--mq-color-card-border);
    border-radius: var(--mq-radius);
    cursor: pointer;
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    color: #1a1a1a;
    transition: background-color 150ms ease, border-color 150ms ease, transform 150ms ease;
  }

  .mq-card:hover,
  .mq-card:focus-visible {
    background: var(--mq-color-card-hover);
    border-color: var(--mq-color-active);
  }

  .mq-card:focus-visible {
    outline: 2px solid var(--mq-color-active);
    outline-offset: 2px;
  }

  .mq-card:active {
    transform: scale(0.98);
  }

  @media (prefers-reduced-motion: reduce) {
    .mq-card {
      transition: none;
    }
    .mq-card:active {
      transform: none;
    }
  }

  .mq-card__icon {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--mq-color-active);
  }

  .mq-card__icon svg {
    width: 100%;
    height: 100%;
  }

  .mq-result__card {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    background: var(--mq-color-card-bg);
    border: 1.5px solid var(--mq-color-card-border);
    border-radius: var(--mq-radius);
    overflow: hidden;
  }

  @media (min-width: 700px) {
    .mq-result__card {
      grid-template-columns: 280px 1fr;
    }
  }

  .mq-result__media {
    display: block;
    aspect-ratio: 1 / 1;
  }

  .mq-result__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .mq-result__body {
    padding: 20px 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .mq-result__eyebrow {
    margin: 0;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--mq-color-active);
    font-weight: 700;
  }

  .mq-result__name {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
  }

  .mq-result__price {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: #4a4a4a;
  }

  .mq-result__justification {
    margin: 8px 0 12px;
    font-size: 14px;
    line-height: 1.5;
    color: #4a4a4a;
  }

  .mq-result__cta {
    align-self: flex-start;
  }

  .mq-restart {
    display: block;
    margin: 24px auto 0;
    background: none;
    border: none;
    padding: 8px;
    min-height: 44px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: underline;
    color: var(--mq-color-active);
    cursor: pointer;
  }
/* END_SECTION:machine-quiz */

/* START_SECTION:main-account (INDEX:41) */
.customer-account {
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
    width: 100%;
    padding: 50px 0;
  }

  .customer-account__account {
    max-width: 600px;
    width: 100%;
    margin: 0 auto;
  }

  .customer-account__account > * {
    margin-bottom: var(--margin-md);
  }

  .customer-account__orders,
  .customer-account__addresses {
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
  }

  .customer-account__order {
    text-decoration: none;
    color: var(--color-foreground);
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
    transition: var(--animation-link-hover);

    &:hover {
      opacity: var(--opacity-link-hover);
    }

    .customer-account__order-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
    }

    .customer-account__order-header-left {
      display: flex;
      gap: var(--gap-sm);
      flex-wrap: wrap;
    }

    .customer-account__order-number {
      font-weight: 600;
    }

    .customer-account__order-date {
      font-weight: 100;
      opacity: 0.75;
    }
  }

  .customer-account__default-address > * {
    font-style: italic;
  }
/* END_SECTION:main-account */

/* START_SECTION:main-activate-account (INDEX:42) */
.customer-activate {
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
    width: 100%;
    padding: 50px 0;
  }

  .customer-activate__activate {
    max-width: 400px;
    width: 100%;
    margin: 0 auto;
  }

  .customer-activate__activate > .h2 {
    margin-bottom: var(--margin-md);
  }

  .customer-activate__form {
    margin-top: var(--margin-lg);
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
  }

  .customer-activate__form-actions {
    margin-top: var(--margin-md);
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }
/* END_SECTION:main-activate-account */

/* START_SECTION:main-addresses (INDEX:43) */
.customer-addresses {
    width: 100%;
    padding: 50px 0;
    display: block;
  }

  .customer-addresses__addresses-container {
    max-width: 600px;
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
  }

  .customer-addresses__form {
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
    margin: var(--margin-md) 0;
  }

  .checkbox-group {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--gap-sm);
  }
/* END_SECTION:main-addresses */

/* START_SECTION:main-article (INDEX:44) */
.article {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .article-content {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  @media (width > 750px) {
    .article-content {
      width: 65vw;
    }
  }
/* END_SECTION:main-article */

/* START_SECTION:main-blog (INDEX:45) */
.main-blog {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .main-blog__articles {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .main-blog__articles-grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    gap: var(--gap-lg);
  }

  @media (width > 750px) {
    .main-blog__articles-grid {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }
/* END_SECTION:main-blog */

/* START_SECTION:main-collection (INDEX:46) */
.shopify-section-main-collection {
    overflow: visible;
  }

  .main-collection {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .main-collection__inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
    display: flex;
    flex-direction: column;
    gap: var(--gap-lg);
  }

  .main-collection__group + .main-collection__group {
    margin-top: var(--margin-xl, 40px);
  }

  /* Intitulé DISCRET (brief "un petit intitulé discret suffit, l'explication
     complète est déjà donnée juste au-dessus") : réutilise .eyebrow, le
     style de petit repère déjà utilisé ailleurs dans le thème (assets/base.css),
     plutôt qu'un gros titre de section dupliquant l'info du bloc
     explicatif indépendant au-dessus. */
  .main-collection__group-title.eyebrow {
    margin: 0 0 var(--margin-sm, 12px);
  }

  .main-collection__products-grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    gap: var(--gap-md);
  }

  @media (width > 750px) {
    .main-collection:has(.filter-and-sort--inline) .main-collection__inner {
      display: flex;
      flex-direction: column;
      gap: var(--gap-lg);
    }

    .main-collection:has(.filter-and-sort--sidebar) .main-collection__inner {
      display: grid;
      grid-template-columns: 25% calc(75% - var(--gap-lg));
      gap: var(--gap-lg);
    }

    .main-collection__products-grid {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }
/* END_SECTION:main-collection */

/* START_SECTION:main-collections (INDEX:47) */
.main-collections {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .main-collections__inner {
    display: flex;
    flex-direction: column;
    gap: var(--gap-lg);
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .main-collections__products-grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    gap: var(--gap-md);
  }

  @media (width > 750px) {
    .main-collections__products-grid {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }
/* END_SECTION:main-collections */

/* START_SECTION:main-login (INDEX:48) */
.customer-login {
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
    width: 100%;
    padding: 50px 0;
  }

  .customer-login__login,
  .customer-login__reset-password {
    max-width: 400px;
    width: 100%;
    margin: 0 auto;
  }

  .customer-login__login-form,
  .customer-login__reset-password-form {
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
    margin-top: var(--margin-lg);
  }

  .customer-login__form-actions {
    margin-top: var(--margin-md);
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }
/* END_SECTION:main-login */

/* START_SECTION:main-order (INDEX:49) */
.customer-order {
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
    width: 100%;
    padding: 50px 0;
  }

  .customer-order__content {
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
  }

  .customer-order__content > .card {
    overflow-x: auto;
  }

  .order-details {
    width: 100%;
  }

  .order-details {
    margin-top: var(--margin-md);
    border: 1px solid var(--color-border, #e1e1e1);
    border-collapse: collapse;
  }
  .order-details th,
  .order-details td {
    border: 1px solid var(--color-border, #e1e1e1);
    padding: 10px;
  }

  .customer-order__addresses {
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
  }

  .customer-order__addresses > .card {
    width: 100%;
  }

  @media (width > 750px) {
    .customer-order__addresses {
      flex-direction: row;
    }
  }
/* END_SECTION:main-order */

/* START_SECTION:main-page (INDEX:50) */
.section-main-page {
    width: 100%;
    max-width: 100%;
    padding: 0;
  }

  .section-main-page .text-block[data-visual-preview-mode] {
    max-width: 100%;
  }

  .section-main-page .image-card[data-visual-preview-mode] {
    width: 100%;
  }

  .main-page {
    width: 100%;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    display: flex;
    justify-content: center;
  }

  .main-page .main-page__inner {
    gap: var(--gap-mobile);
    width: 100%;
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .main-page--flex .main-page__inner {
    display: flex;
    flex-direction: var(--direction-mobile);
    flex-wrap: var(--wrap-mobile);
    justify-content: var(--justify-mobile);
    align-items: var(--align_items-mobile);
    height: 100%;
  }

  .main-page:not(.main-page--row-mobile) > div > .main-page__inner > .text-block-center-mobile,
  .main-page:not(.main-page--row-mobile) > .main-page__inner > .text-block-center-mobile {
    width: 100%;
  }

  .main-page--grid .main-page__inner {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    grid-template-rows: auto;
  }

  @media (width > 750px) {
    .main-page .main-page__inner {
      gap: var(--gap);
    }

    .main-page--flex .main-page__inner {
      flex-direction: var(--direction);
      flex-wrap: var(--wrap);
      justify-content: var(--justify);
      align-items: var(--align_items);
      height: auto;
    }

    .main-page:not(.main-page--row-desktop) > div > .main-page__inner > .text-block-center-desktop,
    .main-page:not(.main-page--row-desktop) > .main-page__inner > .text-block-center-desktop {
      width: 100%;
    }

    .main-page--grid .main-page__inner {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }
/* END_SECTION:main-page */

/* START_SECTION:main-register (INDEX:52) */
.customer-register {
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
    width: 100%;
    padding: 50px 0;
  }

  .customer-register__register {
    max-width: 400px;
    width: 100%;
    margin: 0 auto;
  }

  .customer-register__form {
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
    margin-top: var(--margin-lg);
  }

  .customer-register__form-actions {
    margin-top: var(--margin-md);
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }
/* END_SECTION:main-register */

/* START_SECTION:main-reset-password (INDEX:53) */
.customer-reset-password {
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
    width: 100%;
    padding: 50px 0;
  }

  .customer-reset-password__reset-password {
    max-width: 400px;
    width: 100%;
    margin: 0 auto;
  }

  .customer-reset-password__reset-password > .h2 {
    margin-bottom: var(--margin-md);
  }

  .customer-reset-password__form {
    margin-top: var(--margin-lg);
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
  }

  .customer-reset-password__form-actions {
    margin-top: var(--margin-md);
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }
/* END_SECTION:main-reset-password */

/* START_SECTION:main-search (INDEX:54) */
.main-search {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .main-search__inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .main-search__form {
    margin: 0;
  }

  .main-search__grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    gap: var(--gap-md);
  }

  .main-search__pages {
    display: flex;
    gap: var(--gap-md);
    flex-wrap: wrap;
    padding-bottom: var(--margin-xl);
  }

  .main-search__page-link {
    color: var(--color-foreground);
  }

  .main-search__results-for {
    margin-top: var(--margin-md);
    margin-bottom: var(--margin-lg);
  }

  @media (width > 750px) {
    .main-search__grid {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }
/* END_SECTION:main-search */

/* START_SECTION:manifeste-arche (INDEX:55) */
.rp {
    background: var(--rp-bg);
    padding-top: var(--rp-pad-top);
    padding-bottom: var(--rp-pad-bottom);
  }

  .rp__inner {
    max-width: var(--rp-max-width);
    margin: 0 auto;
    padding: 0 24px;
    box-sizing: border-box;
  }

  .rp__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 0 auto;
    padding: var(--rp-badge-pad-top) var(--rp-badge-pad-right) var(--rp-badge-pad-bottom) var(--rp-badge-pad-left);
    border-radius: var(--rp-badge-radius);
    background: var(--rp-badge-bg);
    color: var(--rp-badge-color);
    line-height: 1.3;
  }

  .rp__badge-logo {
    height: var(--rp-badge-logo-size);
    width: auto;
    display: block;
  }

  .rp__badge-text {
    font-size: var(--rp-badge-size);
    font-weight: var(--rp-badge-weight);
    letter-spacing: 0.02em;
    color: var(--rp-badge-color);
  }

  .rp__inner { text-align: center; }

  .rp__manifesto {
    max-width: var(--rp-manifesto-max-width);
    margin: 18px auto 0 auto;
    color: var(--rp-manifesto-color);
    font-size: var(--rp-manifesto-size);
    font-weight: var(--rp-manifesto-weight);
    line-height: 1.5;
  }
  .rp__manifesto > :first-child { margin-top: 0; }
  .rp__manifesto > :last-child { margin-bottom: 0; }

  .rp__track {
    position: relative;
    list-style: none;
    margin: 48px 0 0 0;
    padding: 0;
    display: flex;
    align-items: flex-start;
  }

  /* Ligne fine reliant les points (centres des cercles) */
  .rp__track::before {
    content: "";
    position: absolute;
    top: var(--rp-line-top);
    left: var(--rp-line-inset);
    right: var(--rp-line-inset);
    height: var(--rp-line-thickness);
    background: var(--rp-line-color);
    transform: translateY(-50%);
    z-index: 0;
  }

  .rp__item {
    flex: 1 1 0;
    min-width: 0;
    padding: 0 var(--rp-item-gap);
    box-sizing: border-box;
    position: relative;
  }

  .rp__toggle {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    background: none;
    border: 0;
    padding: 0;
    margin: 0;
    font: inherit;
    color: inherit;
    text-align: center;
    cursor: pointer;
  }
  .rp__toggle--static { cursor: default; }

  .rp__toggle:focus-visible {
    outline: 2px solid var(--rp-icon-active-bg);
    outline-offset: 4px;
    border-radius: 8px;
  }

  .rp__index {
    display: block;
    height: calc(var(--rp-index-size) * 1.4);
    line-height: calc(var(--rp-index-size) * 1.4);
    margin-bottom: 10px;
    font-size: var(--rp-index-size);
    font-weight: 600;
    letter-spacing: 0.08em;
    color: var(--rp-index-color);
  }

  .rp__icon {
    position: relative;
    z-index: 1;
    width: var(--rp-icon-size);
    height: var(--rp-icon-size);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--rp-icon-rest-bg);
    border: 2px solid var(--rp-icon-rest-border);
    color: var(--rp-icon-rest);
    box-sizing: border-box;
    font-size: calc(var(--rp-icon-size) * 0.45);
    transition: background 300ms ease, border-color 300ms ease, color 300ms ease;
  }
  /* L'icône est un glyphe de police Material Symbols (snippet 'icon') :
     taille = font-size (héritée du cercle), couleur = currentColor. */
  .rp__icon .icon {
    font-size: inherit;
    line-height: 1;
  }

  .rp__title {
    display: block;
    margin-top: 16px;
    font-size: var(--rp-title-size);
    font-weight: var(--rp-title-weight);
    color: var(--rp-title-color);
    line-height: 1.3;
  }

  .rp__desc {
    display: none;
    max-width: var(--rp-desc-max-width);
    margin: 10px auto 0 auto;
    color: var(--rp-desc-color);
    font-size: var(--rp-desc-size);
    line-height: 1.5;
  }
  .rp__desc p { margin: 0; }

  /* Tactile / défaut : le texte se révèle au TAP (bascule de aria-expanded via JS),
     l'icône passe en fond plein. Motif "disclosure" accessible. */
  .rp__toggle[aria-expanded="true"] ~ .rp__desc { display: block; }
  .rp__toggle[aria-expanded="true"] .rp__icon {
    background: var(--rp-icon-active-bg);
    border-color: var(--rp-icon-active-border);
    color: var(--rp-icon-active);
  }

  /* Desktop (survol réel) : révélation au SURVOL et au FOCUS clavier, sans clic requis.
     Le texte occupe déjà sa place (transition d'opacity), donc pas de saut de mise en page. */
  @media (hover: hover) and (pointer: fine) {
    .rp__desc {
      display: block;
      opacity: 0;
      transform: translateY(6px);
      transition: opacity 350ms ease, transform 350ms ease;
    }
    .rp__item:hover .rp__desc,
    .rp__item:focus-within .rp__desc,
    .rp__toggle[aria-expanded="true"] ~ .rp__desc {
      opacity: 1;
      transform: none;
    }
    .rp__item:hover .rp__icon,
    .rp__item:focus-within .rp__icon {
      background: var(--rp-icon-active-bg);
      border-color: var(--rp-icon-active-border);
      color: var(--rp-icon-active);
    }
  }

  /* Mobile : empilement vertical, ligne masquée. Texte révélé au tap. */
  @media (width < 750px) {
    .rp__track {
      flex-direction: column;
      align-items: stretch;
      gap: 28px;
      margin-top: 36px;
    }
    .rp__track::before { display: none; }
    .rp__item { padding: 0; }
    .rp__index { height: auto; line-height: 1.4; margin-bottom: 8px; }
  }

  @media (prefers-reduced-motion: reduce) {
    .rp__desc,
    .rp__icon {
      transition: none !important;
    }
    .rp__desc { transform: none !important; }
  }
/* END_SECTION:manifeste-arche */

/* START_SECTION:marquee (INDEX:56) */
.section-marquee {
    padding: 0;
    max-width: 100%;
  }

  .marquee-section {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }
/* END_SECTION:marquee */

/* START_SECTION:navigation (INDEX:58) */
.navigation {
    width: 100%;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .navigation__inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .navigation__track {
    display: flex;
    gap: var(--gap-md);
    scrollbar-width: none;
    overflow-x: auto;
    padding-top: 5px;
    align-items: flex-start;
    justify-content: flex-start;
    flex-wrap: var(--wrap);
  }

  @media (width > 750px) {
    .navigation__track {
      justify-content: var(--alignment-desktop);
    }
  }
/* END_SECTION:navigation */

/* START_SECTION:password (INDEX:59) */
.password-page__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100vh;
    text-align: center;
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }
/* END_SECTION:password */

/* START_SECTION:predictive-search (INDEX:60) */
.predictive-search-results-container {
    overflow-y: auto;
    max-height: calc(var(--search-modal-max-height-mobile) - var(--inputs-min-height) - var(--padding-md) * 2);
  }

  @media (width > 750px) {
    .predictive-search-results-container {
      max-height: calc(var(--search-modal-max-height) - var(--inputs-min-height) - var(--padding-md) * 2);
    }
  }

  .predictive-search-results:not(:empty) {
    display: flex;
    flex-direction: column;
    gap: var(--gap-lg);
    padding: var(--padding-xs);
    padding-top: var(--margin-md);
  }

  .predictive-search-results .predictive-search__section:not(:last-child) {
    border-bottom: 1px solid var(--color-input-border-low-opacity);
    padding-bottom: var(--gap-lg);
  }

  .predictive-search__title {
    margin-bottom: var(--margin-md);
  }

  .predictive-search__list,
  .predictive-search__grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--gap-xs);
  }

  .predictive-search__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--gap-md);
  }

  @media (width > 750px) {
    .predictive-search__grid {
      grid-template-columns: repeat(4, 1fr);
    }
  }

  .predictive-search__item-product a {
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
    text-decoration: none;
    font-size: var(--font-body--size);
  }

  .predictive-search__item-product a img,
  .predictive-search__item-collection a img {
    border-radius: calc(var(--card-border-radius) - (var(--card-padding) * 0.5));
    aspect-ratio: 1/1;
    object-fit: cover;
  }

  .predictive-search__item-collection a {
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
    text-decoration: none;
    font-size: var(--font-body--size);
  }

  .predictive-search__item-page,
  .predictive-search__item-article {
    padding: var(--padding-xs);
    border-radius: calc(var(--inputs-border-radius) * var(--small-multiplier));
    transition: background-color var(--animation-speed) var(--animation-easing);
    font-size: var(--font-body--size);
    text-decoration: none;
    color: inherit;
    display: block;
  }

  .predictive-search__item-page:hover,
  .predictive-search__item-article:hover {
    background-color: var(--color-input-border-low-opacity);
  }

  .predictive-search__item-article a {
    display: flex;
    justify-content: space-between;
    gap: var(--gap-xs);
    width: 100%;
  }

  .predictive-search__item-article-date {
    opacity: 0.7;
  }
/* END_SECTION:predictive-search */

/* START_SECTION:product-cross-sell (INDEX:61) */
.cross-sell-section {
    margin-top: var(--xsell-margin-top);
    margin-bottom: var(--xsell-margin-bottom);
  }

  .cross-sell__inner {
    max-width: var(--xsell-max-width, 640px);
    margin-inline: auto;
  }

  .cross-sell__eyebrow {
    margin: 0 0 0.85rem;
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0;
    color: var(--color-foreground);
  }

  .cross-sell__card {
    display: flex;
    align-items: center;
    gap: 16px;
    background: var(--xsell-bg);
    border: var(--xsell-border-width) solid var(--xsell-border-color);
    border-radius: var(--xsell-radius);
    padding: var(--xsell-padding);
  }

  .cross-sell__media {
    flex: 0 0 auto;
    display: block;
    width: 110px;
  }

  .cross-sell__img {
    display: block;
    width: 110px;
    height: 110px;
    object-fit: contain;
    border-radius: calc(var(--xsell-radius) * 0.5);
  }

  .cross-sell__body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1 1 auto;
    min-width: 0;
  }

  .cross-sell__badge {
    align-self: flex-start;
    background: var(--xsell-accent);
    color: var(--xsell-on-accent);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
    padding: 4px 8px;
    border-radius: 6px;
  }

  .cross-sell__title {
    color: var(--color-foreground);
    text-decoration: none;
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.3;
  }

  .cross-sell__title:hover,
  .cross-sell__title:focus-visible {
    text-decoration: underline;
    text-decoration-color: var(--xsell-accent);
    text-underline-offset: 0.15em;
  }

  .cross-sell__price {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .cross-sell__price-current {
    font-weight: 600;
    font-size: 1.05rem;
  }

  .cross-sell__price-note {
    font-size: 0.85rem;
    opacity: 0.7;
  }

  .cross-sell__form {
    margin-top: 10px;
  }

  .cross-sell__btn {
    appearance: none;
    cursor: pointer;
    width: 100%;
    border: 1px solid var(--xsell-accent);
    background: var(--xsell-accent);
    color: var(--xsell-on-accent);
    font: inherit;
    font-weight: 600;
    font-size: 0.95rem;
    line-height: 1.2;
    padding: 12px 18px;
    border-radius: 10px;
    transition: opacity 0.2s ease;
  }

  .cross-sell__btn:hover {
    opacity: 0.9;
  }

  .cross-sell__btn:focus-visible {
    outline: 2px solid var(--xsell-accent);
    outline-offset: 2px;
  }

  .cross-sell__btn[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
  }

  @media (width <= 749px) {
    .cross-sell__card {
      align-items: flex-start;
    }
    .cross-sell__media,
    .cross-sell__img {
      width: 88px;
    }
    .cross-sell__img {
      height: 88px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .cross-sell__btn {
      transition: none;
    }
  }
/* END_SECTION:product-cross-sell */

/* START_SECTION:product-recommendations (INDEX:63) */
.product-recommendations {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    display: block;
  }

  .product-recommendations__inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
    background-color: var(--color-background);
  }

  .product-recommendations__title {
    margin-bottom: var(--margin-lg);
  }

  .product-recommendations__grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    gap: var(--gap-md);
  }

  @media (width > 750px) {
    .product-recommendations__grid {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }
/* END_SECTION:product-recommendations */

/* START_SECTION:product-tabs (INDEX:64) */
.product-tabs { display: block; width: 100%; }
  .product-tabs__inner { box-sizing: border-box; }
  .product-tabs__nav-wrap { position: relative; }
  .product-tabs__tablist { position: relative; display: flex; gap: var(--pt-gap); overflow-x: auto; scrollbar-width: none; border-bottom: 1px solid var(--pt-border-color); padding-right: 32px; scroll-padding-inline: var(--pt-gap); }
  .product-tabs__tablist::-webkit-scrollbar { display: none; }
  .product-tabs--mobile-dropdown .product-tabs__tablist { display: none; }
  .product-tabs__tablist-scroller { position: relative; }

  /* Dégradés de bord (brief découvrabilité scroll horizontal onglets) :
     absents par défaut, activés uniquement quand data-pt-scroll-* le
     signale (JS product-tabs.js, calculé sur l'overflow réel). */
  .product-tabs__fade {
    position: absolute;
    top: 0;
    bottom: 1px;
    width: 32px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 150ms ease;
    z-index: 1;
  }
  .product-tabs__fade--start { left: 0; background: linear-gradient(to right, var(--color-background, #fff), transparent); }
  .product-tabs__fade--end { right: 0; background: linear-gradient(to left, var(--color-background, #fff), transparent); }
  .product-tabs__nav-wrap[data-pt-fade-start="true"] .product-tabs__fade--start,
  .product-tabs__nav-wrap[data-pt-fade-end="true"] .product-tabs__fade--end {
    opacity: 1;
  }

  /* CORRECTIF #7 "Flèche de découverte sur les onglets produit" (+ ajustement
     visibilité) : pastille olive superposée au dégradé de fin, même logique
     d'apparition (opacité du parent .product-tabs__fade--end, piloté par
     data-pt-fade-end) — pas d'état/transition JS séparé. pointer-events:
     none à tous les niveaux (parent + pastille) pour ne jamais bloquer le
     tap sur le dernier onglet visible, superposée au-dessus du dégradé
     (z-index hérité du parent .product-tabs__fade). Fond blanc + liseré +
     ombre légère : reste net et lisible même superposée à du texte clair
     ou une image de contenu de bloc, contrairement à un simple trait fin. */
  .product-tabs__scroll-arrow {
    position: absolute;
    top: 50%;
    right: 4px;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #ffffff;
    border: 1.5px solid #777d43;
    box-shadow: 0 2px 6px rgba(26, 26, 26, 0.18);
    color: #777d43;
    pointer-events: none;
  }

  @media (prefers-reduced-motion: reduce) {
    .product-tabs__fade {
      transition: none;
    }
  }

  /* Barre de progression du scroll horizontal : masquée par défaut (bande
     qui ne déborde pas = rien à indiquer), affichée dès que la bande
     déborde réellement — dès le chargement, pas seulement à l'interaction. */
  .product-tabs__scroll-progress {
    display: none;
    position: relative;
    height: 3px;
    margin-top: 4px;
    background: var(--pt-border-color);
    border-radius: 3px;
    overflow: hidden;
  }
  .product-tabs__nav-wrap[data-pt-overflowing="true"] .product-tabs__scroll-progress {
    display: block;
  }
  .product-tabs__scroll-progress-fill {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background: var(--pt-active-bg);
    border-radius: 3px;
  }
  .product-tabs__select { display: none; width: 100%; font-size: var(--pt-font-size); padding: var(--pt-padding-v) var(--pt-padding-h); border: 1px solid var(--pt-border-color); border-radius: var(--pt-radius); background: var(--pt-inactive-bg); color: var(--pt-inactive-text); }
  .product-tabs--mobile-dropdown .product-tabs__select { display: block; }
  @media (width > 750px) { .product-tabs--mobile-dropdown .product-tabs__tablist { display: flex; } .product-tabs--mobile-dropdown .product-tabs__select { display: none; } }
  .product-tabs__tab { appearance: none; cursor: pointer; white-space: nowrap; display: inline-flex; align-items: center; gap: var(--pt-icon-gap); font-size: var(--pt-font-size); font-weight: var(--pt-font-weight-inactive); padding: var(--pt-padding-v) var(--pt-padding-h); background: transparent; color: var(--pt-inactive-text); border: none; border-bottom: 2px solid transparent; transition: color var(--pt-hover-speed) ease, background-color var(--pt-hover-speed) ease, border-color var(--pt-hover-speed) ease; }
  .product-tabs__tab-icon { display: flex; align-items: center; flex-shrink: 0; }
  .product-tabs__tab-icon .icon { font-size: var(--pt-icon-size) !important; }
  .product-tabs__tab:hover:not([aria-selected="true"]) { color: var(--pt-hover-text); }
  .product-tabs__tab:focus-visible { outline: 2px solid var(--pt-active-bg); outline-offset: 2px; }
  .product-tabs__tab[aria-selected="true"] { color: var(--pt-active-text); font-weight: var(--pt-font-weight-active); }
  .product-tabs--underline .product-tabs__tab[aria-selected="true"] { border-bottom-color: var(--pt-active-bg); }
  .product-tabs[data-indicator-enabled="true"].product-tabs--underline .product-tabs__tab[aria-selected="true"] { border-bottom-color: transparent; }
  .product-tabs__indicator { position: absolute; left: 0; bottom: -1px; height: var(--pt-indicator-height); width: 0; background: var(--pt-indicator-color); border-radius: var(--pt-indicator-height); transform: translateX(0); transition: transform var(--pt-hover-speed) ease, width var(--pt-hover-speed) ease; pointer-events: none; }
  .product-tabs--pill .product-tabs__tablist { border-bottom: none; padding-bottom: var(--pt-padding-v); }
  .product-tabs--pill .product-tabs__tab { background: var(--pt-inactive-bg); border-radius: var(--pt-radius); }
  .product-tabs--pill .product-tabs__tab[aria-selected="true"] { background: var(--pt-active-bg); color: var(--pt-active-text-on-fill); }
  .product-tabs--pill .product-tabs__indicator { display: none; }
  .product-tabs--bordered .product-tabs__tablist { border-bottom: none; gap: 0; }
  .product-tabs--bordered .product-tabs__tab { border: 1px solid var(--pt-border-color); margin-left: -1px; }
  .product-tabs--bordered .product-tabs__tab:first-child { margin-left: 0; border-top-left-radius: var(--pt-radius); border-bottom-left-radius: var(--pt-radius); }
  .product-tabs--bordered .product-tabs__tab:last-child { border-top-right-radius: var(--pt-radius); border-bottom-right-radius: var(--pt-radius); }
  .product-tabs--bordered .product-tabs__tab[aria-selected="true"] { background: var(--pt-active-bg); color: var(--pt-active-text-on-fill); border-color: var(--pt-active-bg); z-index: 1; position: relative; }
  .product-tabs--bordered .product-tabs__indicator { display: none; }
  .product-tabs__panels { padding-top: var(--pt-content-padding-top); position: relative; transition: min-height 200ms ease; }
  .product-tabs__panel { opacity: 1; }
  .product-tabs__panel[hidden] { display: none; }
  .product-tabs__panel-inner { max-width: 100%; box-sizing: border-box; overflow-x: auto; overflow-wrap: break-word; word-break: break-word; }
  .product-tabs__panel-inner img, .product-tabs__panel-inner table { max-width: 100%; }
  .product-tabs__panel-inner.rte table { width: 100%; border-collapse: collapse; }
  .product-tabs__panel-inner.rte table td, .product-tabs__panel-inner.rte table th { text-align: left; padding: 8px 12px; border-bottom: 1px solid var(--pt-border-color); }
  .product-tabs__panel-inner.rte h1, .product-tabs__panel-inner.rte h2, .product-tabs__panel-inner.rte h3, .product-tabs__panel-inner.rte h4, .product-tabs__panel-inner.rte h5, .product-tabs__panel-inner.rte h6 { font-family: var(--font-body--family); font-size: var(--pt-desc-heading-size); font-weight: var(--pt-desc-heading-weight); line-height: 1.35; margin-top: var(--pt-desc-heading-margin-top); margin-bottom: var(--pt-desc-heading-margin-bottom); color: var(--pt-desc-heading-color); }
  .product-tabs__panel-inner.rte.pt-desc > :first-child { margin-top: 0; }
  .product-tabs__panel-inner.rte.pt-desc { max-width: var(--pt-desc-max-width); }
  .product-tabs__panel-inner.rte.pt-desc p, .product-tabs__panel-inner.rte.pt-desc li { font-size: var(--pt-desc-font-size); line-height: var(--pt-desc-line-height); color: var(--pt-desc-text-color); }
  .product-tabs__panel-inner.rte.pt-desc strong, .product-tabs__panel-inner.rte.pt-desc b { color: var(--pt-desc-bold-color); font-weight: 600; }
  .product-tabs__panel-inner.rte.pt-desc a { color: var(--pt-desc-link-color); text-decoration-color: currentColor; transition: color var(--pt-hover-speed) ease; }
  .product-tabs__panel-inner.rte.pt-desc a:hover { color: var(--pt-desc-link-hover-color); }
  .pt-desc--links-underline a { text-decoration: underline; }
  .pt-desc--links-dotted a { text-decoration: underline; text-decoration-style: dotted; }
  .pt-desc--links-none a { text-decoration: none; }
  @media (prefers-reduced-motion: reduce) { .product-tabs__panel-inner.rte.pt-desc a { transition: none !important; } }
  .product-tabs__panel-inner.rte.pt-desc ul, .product-tabs__panel-inner.rte.pt-desc ol { padding-left: var(--pt-desc-list-indent); margin: var(--pt-desc-list-gap) 0; }
  .product-tabs__panel-inner.rte.pt-desc li + li { margin-top: var(--pt-desc-list-gap); }
  .pt-desc--bullet-disc ul li::marker { color: var(--pt-desc-bullet-color); }
  .pt-desc--bullet-dash ul { list-style: none; padding-left: calc(var(--pt-desc-list-indent) + 4px); }
  .pt-desc--bullet-dash ul li { position: relative; }
  .pt-desc--bullet-dash ul li::before { content: '—'; position: absolute; left: calc(var(--pt-desc-list-indent) * -1); color: var(--pt-desc-bullet-color); }
  .pt-desc--bullet-check ul { list-style: none; padding-left: calc(var(--pt-desc-list-indent) + 4px); }
  .pt-desc--bullet-check ul li { position: relative; }
  .pt-desc--bullet-check ul li::before { content: '✓'; position: absolute; left: calc(var(--pt-desc-list-indent) * -1); color: var(--pt-desc-bullet-color); font-weight: 700; }

  /* "Voir plus" de la description (composant see-more-component, réutilisé
     depuis blocks/text.liquid / assets/see-more.js). Le fondu (mask) et le
     dépliage sont scopés sous .pt-desc-see-more pour ne rien changer aux
     autres usages du composant sur le site. */
  .pt-desc-see-more {
    display: block;
  }

  .pt-desc-see-more [data-ref="see-more-content"] {
    mask: linear-gradient(to bottom, black calc(100% - 40px), transparent 100%);
    -webkit-mask: linear-gradient(to bottom, black calc(100% - 40px), transparent 100%);
    transition: mask 0.3s ease, -webkit-mask 0.3s ease;
  }

  .pt-desc-see-more [data-ref="see-more-content"].see-more__content--expanded,
  .pt-desc-see-more [data-ref="see-more-content"].see-more__content--no-overflow {
    mask: none;
    -webkit-mask: none;
  }

  .pt-desc-see-more__toggle {
    display: inline-block;
    background: none;
    border: none;
    padding: 0;
    margin-top: 14px;
    cursor: pointer;
    font-size: var(--pt-desc-font-size);
    font-family: var(--font-body--family);
    color: var(--pt-desc-link-color);
    transition: color var(--pt-hover-speed, 200ms) ease;
  }

  .pt-desc-see-more__toggle:hover {
    color: var(--pt-desc-link-hover-color);
  }

  .pt-desc-see-more__toggle .see-more__toggle-text {
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  @media (prefers-reduced-motion: reduce) {
    .pt-desc-see-more [data-ref="see-more-content"] {
      transition: none !important;
    }

    .pt-desc-see-more__toggle {
      transition: none !important;
    }
  }

  .product-tabs[data-transitions-enabled="true"] .product-tabs__panel { transition: opacity 200ms ease; }
  .product-tabs[data-transitions-enabled="true"] .product-tabs__panel.product-tabs__panel--entering { opacity: 0; }
  @media (prefers-reduced-motion: reduce) { .product-tabs__panel, .product-tabs__panels, .product-tabs__tab, .product-tabs__indicator, .product-tabs__fade { transition: none !important; } }
  .product-tabs__table { width: 100%; border-collapse: collapse; }
  .product-tabs__table th, .product-tabs__table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--pt-border-color); font-size: 15px; }
  .product-tabs__table th[scope="row"] { font-weight: 500; color: var(--color-foreground); width: 45%; }
  .product-tabs__reviews-summary { margin-bottom: 20px; }
  .product-tabs__reviews-list.ac-list { grid-template-columns: 1fr; }
  .product-tabs__faq-accordion { display: flex; flex-direction: column; gap: var(--pt-faq-gap); margin-bottom: 20px; }
  .product-tabs__faq-card { background: var(--pt-faq-bg); border: var(--pt-faq-border-width) solid var(--pt-faq-border); border-radius: var(--pt-faq-radius); padding: 14px 16px; transition: background-color var(--pt-faq-transition) ease, border-color var(--pt-faq-transition) ease, transform var(--pt-faq-transition) ease; }
  .product-tabs__faq-card:hover { border-color: var(--pt-faq-border-hover); background: var(--pt-faq-bg-hover); transform: translateY(-1px); }
  .product-tabs__faq-card-summary { display: flex; align-items: center; gap: 12px; cursor: pointer; list-style: none; }
  .product-tabs__faq-card-summary::-webkit-details-marker { display: none; }
  .product-tabs__faq-card-summary::marker { content: ''; }
  .product-tabs__faq-card-summary:focus-visible { outline: 2px solid var(--pt-active-bg); outline-offset: 3px; border-radius: 4px; }
  .product-tabs__faq-card-icon { display: flex; align-items: center; flex-shrink: 0; color: var(--pt-faq-icon-color); }
  .product-tabs__faq-card-icon .icon { font-size: var(--pt-faq-icon-size) !important; }
  .product-tabs__faq-card-question { flex: 1; font-size: var(--pt-faq-question-size); font-weight: 600; color: var(--color-foreground); }
  .product-tabs__faq-card-chevron { display: flex; flex-shrink: 0; color: var(--color-foreground); opacity: 0.7; transition: transform var(--pt-faq-transition) ease; }
  .product-tabs__faq-card[open] .product-tabs__faq-card-chevron { transform: rotate(180deg); }
  .product-tabs__faq-card-body { display: grid !important; grid-template-rows: 0fr; transition: grid-template-rows var(--pt-faq-transition) ease; }
  .product-tabs__faq-card[open] .product-tabs__faq-card-body { grid-template-rows: 1fr; }
  .product-tabs__faq-card-body > .product-tabs__faq-card-answer { overflow: hidden; min-height: 0; }
  .product-tabs__faq-card-answer { padding-top: 10px; font-size: var(--pt-faq-answer-size); color: var(--color-foreground); line-height: 1.55; }
  .product-tabs__faq-card-answer p { margin: 0; }
  @media (prefers-reduced-motion: reduce) { .product-tabs__faq-card, .product-tabs__faq-card-chevron, .product-tabs__faq-card-body { transition: none !important; } .product-tabs__faq-card:hover { transform: none; } }
  .product-tabs__faq-viewall { display: inline-flex; flex-direction: column; color: var(--pt-active-bg); font-weight: 600; text-decoration: underline; }
  .product-tabs__faq-viewall-count { font-weight: 400; text-decoration: none; opacity: 0.7; font-size: 13px; }
  .product-tabs__faq-fallback { padding: 16px; border: 1px dashed var(--pt-border-color); border-radius: var(--pt-radius); }
  .product-tabs__faq-fallback p { margin: 0 0 10px; color: var(--color-foreground); opacity: 0.8; }
  .product-tabs__faq-link { color: var(--pt-active-bg); font-weight: 600; text-decoration: underline; }
/* END_SECTION:product-tabs */

/* START_SECTION:quiz-recommandation (INDEX:65) */
.qz-quiz {
    max-width: var(--qz-max-width);
    margin: 0 auto;
    padding: var(--qz-padding-top) 20px var(--qz-padding-bottom);
  }

  .qz-title {
    margin: 0 0 8px;
    font-size: 28px;
    font-weight: 700;
    text-align: center;
  }

  .qz-subtitle {
    margin: 0 0 24px;
    text-align: center;
    color: #4a4a4a;
  }

  .qz-progress {
    display: flex;
    gap: 6px;
    margin-bottom: 32px;
  }

  .qz-progress__segment {
    flex: 1;
    height: var(--qz-progress-height);
    border-radius: 999px;
    background: var(--qz-color-inactive);
    transition: background-color 200ms ease;
  }

  .qz-progress__segment.is-active {
    background: var(--qz-color-active);
  }

  @media (prefers-reduced-motion: reduce) {
    .qz-progress__segment {
      transition: none;
    }
  }

  .qz-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;
  }

  .qz-viewport {
    position: relative;
    min-height: var(--qz-min-viewport);
  }

  .qz-step[hidden] {
    display: none !important;
  }

  .qz-back {
    background: none;
    border: none;
    padding: 0;
    margin-bottom: 16px;
    font-size: 14px;
    font-weight: 600;
    color: var(--qz-color-active);
    cursor: pointer;
  }

  .qz-question {
    margin: 0 0 20px;
    font-size: 20px;
    font-weight: 600;
    text-align: center;
  }

  .qz-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
  }

  @media (min-width: 700px) {
    .qz-cards {
      grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    }
  }

  .qz-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 20px 16px;
    min-height: 44px;
    background: var(--qz-color-card-bg);
    border: 1.5px solid var(--qz-color-card-border);
    border-radius: var(--qz-radius);
    cursor: pointer;
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    color: #1a1a1a;
    transition: background-color 150ms ease, border-color 150ms ease, transform 150ms ease;
  }

  .qz-card:hover,
  .qz-card:focus-visible {
    background: var(--qz-color-card-hover);
    border-color: var(--qz-color-active);
  }

  .qz-card:focus-visible {
    outline: 2px solid var(--qz-color-active);
    outline-offset: 2px;
  }

  .qz-card:active {
    transform: scale(0.98);
  }

  @media (prefers-reduced-motion: reduce) {
    .qz-card {
      transition: none;
    }
    .qz-card:active {
      transform: none;
    }
  }

  .qz-card__icon {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--qz-color-active);
  }

  .qz-card__icon svg {
    width: 100%;
    height: 100%;
  }

  .qz-result__card {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    background: var(--qz-color-card-bg);
    border: 1.5px solid var(--qz-color-card-border);
    border-radius: var(--qz-radius);
    overflow: hidden;
  }

  @media (min-width: 700px) {
    .qz-result__card {
      grid-template-columns: 280px 1fr;
    }
  }

  .qz-result__media {
    display: block;
    aspect-ratio: 1 / 1;
  }

  .qz-result__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .qz-result__body {
    padding: 20px 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .qz-result__eyebrow {
    margin: 0;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--qz-color-active);
    font-weight: 700;
  }

  .qz-result__name {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
  }

  .qz-result__price {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    color: #4a4a4a;
  }

  .qz-result__justification {
    margin: 8px 0 12px;
    font-size: 14px;
    line-height: 1.5;
    color: #4a4a4a;
  }

  .qz-result__cta {
    align-self: flex-start;
  }

  .qz-result__secondary {
    align-self: flex-start;
    margin-top: 4px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: underline;
    color: var(--qz-color-active);
  }

  .qz-restart {
    display: block;
    margin: 24px auto 0;
    background: none;
    border: none;
    padding: 8px;
    min-height: 44px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: underline;
    color: var(--qz-color-active);
    cursor: pointer;
  }
/* END_SECTION:quiz-recommandation */

/* START_SECTION:reviews (INDEX:66) */
.section-reviews {
    max-width: 100%;
    padding: 0;
  }

  .reviews {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
    width: 100%;
  }

  .reviews__title {
    margin-bottom: var(--gap-lg);
  }

  .reviews__grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    gap: var(--gap-md);
    list-style: none;
    padding: 0;
    margin: 0;
  }

  @media (width > 750px) {
    .reviews__grid {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }

  .reviews .splide {
    padding-bottom: 20px;
  }
/* END_SECTION:reviews */

/* START_SECTION:trust-badges-accordion (INDEX:69) */
.tb-wrap {
    position: relative;
    overflow: hidden;
    background: var(--tb-bg);
    padding-top: var(--tb-padding-top);
    padding-bottom: var(--tb-padding-bottom);
  }

  .tb-glass-backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(135deg, color-mix(in srgb, var(--tb-icon-color) 18%, var(--tb-bg)), var(--tb-bg));
  }

  .tb-glass-backdrop__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.35;
    filter: blur(2px);
  }

  .tb-inner {
    position: relative;
    z-index: 1;
    max-width: var(--tb-max-width);
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .tb-content {
    display: flex;
    flex-direction: column;
    gap: 24px;
    order: 1;
  }

  .tb-image-wrap {
    order: 2;
  }

  .tb-mobile-image--above .tb-content {
    order: 2;
  }

  .tb-mobile-image--above .tb-image-wrap {
    order: 1;
  }

  .tb-no-image .tb-inner {
    grid-template-columns: 1fr;
  }

  @media (width >= 900px) {
    .tb-inner {
      grid-template-columns: 1fr 1fr;
      align-items: center;
    }

    .tb-image--left .tb-content {
      order: 2;
    }

    .tb-image--left .tb-image-wrap {
      order: 1;
    }

    .tb-image--right .tb-content {
      order: 1;
    }

    .tb-image--right .tb-image-wrap {
      order: 2;
    }
  }

  .tb-title {
    margin: 0;
    font-size: var(--tb-title-size);
    font-weight: 700;
    color: var(--tb-title-color);
  }

  .tb-title p {
    margin: 0;
  }

  .tb-badges {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--tb-badge-gap);
  }

  @media (width >= 750px) {
    .tb-badges--fixed {
      grid-template-columns: repeat(var(--tb-columns-desktop), 1fr);
    }

    .tb-badges--auto {
      grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    }
  }

  .tb-badge {
    background: var(--tb-badge-bg);
    border: var(--tb-badge-border-width) solid var(--tb-badge-border);
    border-radius: var(--tb-badge-radius);
    padding: var(--tb-badge-padding);
    transition: background-color var(--tb-transition-duration) ease;
  }

  .tb-badge[open] {
    background: var(--tb-badge-bg-open);
  }

  /*
    Effet verre dépoli — reprend exactement blocks/group.liquid
    (.group--glass) : repli opaque par défaut, puis vrai flou/transparence
    si le navigateur supporte backdrop-filter (brief, contrainte repli).
  */
  [data-tb-glass="true"] .tb-badge {
    background: var(--tb-glass-bg-fallback);
  }

  [data-tb-glass="true"] .tb-badge[open] {
    background: var(--tb-glass-bg-open-fallback);
  }

  @supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
    [data-tb-glass="true"] .tb-badge {
      background: var(--tb-glass-bg);
      backdrop-filter: blur(var(--tb-glass-blur));
      -webkit-backdrop-filter: blur(var(--tb-glass-blur));
    }

    [data-tb-glass="true"] .tb-badge[open] {
      background: var(--tb-glass-bg-open);
    }
  }

  .tb-badge__summary {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    list-style: none;
    font-size: var(--tb-label-size);
    font-weight: var(--tb-label-weight);
    color: var(--tb-label-color);
  }

  .tb-badge__summary::-webkit-details-marker {
    display: none;
  }

  .tb-badge__summary::marker {
    content: '';
  }

  .tb-badge__summary:focus-visible {
    outline: 2px solid var(--tb-label-color);
    outline-offset: 3px;
    border-radius: 4px;
  }

  .tb-badge__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--tb-icon-color);
    flex-shrink: 0;
  }

  .tb-badge__icon .icon {
    font-size: var(--tb-icon-size) !important;
  }

  .tb-badge__label {
    flex: 1;
  }

  .tb-badge__chevron {
    color: var(--tb-icon-color);
    display: flex;
    flex-shrink: 0;
    transition: transform var(--tb-transition-duration) ease;
  }

  .tb-badge[open] .tb-badge__chevron {
    transform: rotate(180deg);
  }

  /* Animation de hauteur en pur CSS (grid-template-rows), compatible avec
     l'ouverture/fermeture native de <details>. On force l'affichage du
     contenu (au lieu du display:none natif) pour permettre la transition. */
  .tb-badge__body {
    display: grid !important;
    grid-template-rows: 0fr;
    transition: grid-template-rows var(--tb-transition-duration) ease;
  }

  .tb-badge[open] .tb-badge__body {
    grid-template-rows: 1fr;
  }

  .tb-badge__body > .tb-badge__detail {
    overflow: hidden;
    min-height: 0;
  }

  .tb-badge__detail {
    padding-top: 10px;
    font-size: var(--tb-detail-size);
    color: var(--tb-detail-color);
    line-height: 1.55;
  }

  .tb-badge__detail p {
    margin: 0;
  }

  @media (prefers-reduced-motion: reduce) {
    .tb-badge,
    .tb-badge__chevron,
    .tb-badge__body {
      transition: none !important;
    }
  }

  .tb-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    align-self: flex-start;
    padding: 13px 26px;
    border-radius: var(--tb-button-radius);
    font-weight: 600;
    text-decoration: none;
    border: 1.5px solid var(--tb-button-bg);
    transition: background-color 200ms ease, color 200ms ease;
  }

  .tb-button--solid {
    background: var(--tb-button-bg);
    color: var(--tb-button-text);
  }

  .tb-button--solid:hover {
    background: var(--tb-button-bg-hover);
    border-color: var(--tb-button-bg-hover);
  }

  .tb-button--outline {
    background: transparent;
    color: var(--tb-button-bg);
  }

  .tb-button--outline:hover {
    background: var(--tb-button-bg);
    color: var(--tb-button-text);
  }

  .tb-image-wrap {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: var(--tb-image-radius);
  }

  .tb-image-wrap.tb-ratio--square {
    padding-top: 100%;
  }

  .tb-image-wrap.tb-ratio--portrait {
    padding-top: 125%;
  }

  .tb-image-wrap.tb-ratio--landscape {
    padding-top: 66.66%;
  }

  .tb-image-wrap.tb-ratio--free {
    padding-top: 0;
    min-height: 320px;
  }

  .tb-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .tb-image--placeholder {
    background: color-mix(in srgb, var(--tb-title-color) 10%, transparent);
  }
/* END_SECTION:trust-badges-accordion */

/* START_SECTION:trust-bar-premium (INDEX:70) */
.tbp-row {
    display: flex;
    flex-wrap: wrap;
  }

  .tbp-item {
    flex: 1 1 0;
    min-width: 200px;
    display: flex;
    flex-direction: column;
    padding: 0 var(--tbp-column-gap);
  }

  .tbp-item--center {
    align-items: center;
    text-align: center;
  }

  .tbp-item--left {
    align-items: flex-start;
    text-align: left;
  }

  .tbp-item:first-child {
    padding-left: 0;
  }

  .tbp-item:last-child {
    padding-right: 0;
  }

  .tbp-badge {
    width: var(--tbp-badge-size);
    height: var(--tbp-badge-size);
    border-radius: 50%;
    background: var(--tbp-badge-bg);
    color: var(--tbp-badge-icon);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-bottom: var(--tbp-gap-badge-title);
  }

  .tbp-badge svg {
    width: 55%;
    height: 55%;
  }

  .tbp-title {
    font-size: var(--tbp-title-size);
    color: var(--tbp-title-color);
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 var(--tbp-gap-title-text) 0;
  }

  .tbp-title--link {
    color: var(--tbp-link-color);
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .tbp-title--link:hover {
    opacity: 0.8;
  }

  .tbp-text {
    font-size: var(--tbp-text-size);
    color: var(--tbp-text-color);
    line-height: 1.5;
    margin: 0;
  }

  /* Bande défilante mobile — masquée sur desktop. Fond blanc uni,
     AUCUN effet de verre/flou/teinte : ce composant est distinct de
     "Achetez en toute sérénité" (accueil), qui seul reçoit le glassmorphism. */
  .tbp-mq-wrap {
    display: none;
  }

  @media (width < 750px) {
    .tbp-row {
      display: none;
    }

    .tbp-mq-wrap {
      display: flex;
      align-items: center;
      width: 100%;
      background: var(--tbp-mq-bg);
      overflow: hidden;
      box-sizing: border-box;
    }
  }

  .tbp-mq-inner {
    width: 100%;
    padding: 10px 0;
    overflow: hidden;
  }

  .tbp-mq-track {
    display: flex;
    align-items: center;
    width: max-content;
    animation-name: tbp-mq-scroll;
    animation-duration: var(--tbp-mq-duration);
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-direction: var(--tbp-mq-anim-direction);
    will-change: transform;
    --tbp-mq-translate-pct: 50;
  }

  .tbp-mq-group {
    display: flex;
    align-items: center;
    flex-shrink: 0;
  }

  /* Icône fine à côté du texte, centrée verticalement sur titre + sous-titre */
  .tbp-mq-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 calc(var(--tbp-mq-gap) / 2);
  }

  .tbp-mq-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--tbp-mq-icon-size);
    height: var(--tbp-mq-icon-size);
    color: var(--tbp-mq-icon-color);
    flex-shrink: 0;
  }

  .tbp-mq-icon svg {
    width: 100%;
    height: 100%;
  }

  /* Texte sur deux lignes courtes : titre noir gras + précision grise.
     La 2e ligne reprend le texte descriptif desktop, qui peut être plus
     long qu'une "précision courte" — on le tronque proprement en CSS
     plutôt que de casser la hauteur compacte de la bande. */
  .tbp-mq-text {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
    max-width: 220px;
  }

  .tbp-mq-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--tbp-mq-text-color);
    white-space: nowrap;
  }

  .tbp-mq-subtitle {
    font-size: 12px;
    font-weight: 400;
    color: var(--tbp-mq-subtitle-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /* Séparateur : petit losange discret, pas de barre verticale. Rayon
     quasi nul : à cette taille, un border-radius trop généreux (ex. 2px
     sur 6px) fait paraître le losange rond une fois pivoté à 45°. */
  .tbp-mq-dot {
    width: var(--tbp-mq-dot-size);
    height: var(--tbp-mq-dot-size);
    border-radius: 1px;
    transform: rotate(45deg);
    background: var(--tbp-mq-dot-color);
    flex-shrink: 0;
    margin: 0 calc(var(--tbp-mq-gap) / 2);
  }

  @keyframes tbp-mq-scroll {
    from {
      transform: translateX(0);
    }
    to {
      transform: translateX(calc(var(--tbp-mq-translate-pct) * -1%));
    }
  }

  /* Repli statique : défilement désactivé dans le personnalisateur —
     une seule copie des éléments, en ligne, sans animation. */
  .tbp-mq-wrap--static .tbp-mq-track {
    animation: none;
    transform: none;
  }

  .tbp-mq-wrap--static .tbp-mq-inner {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
  }

  /* prefers-reduced-motion : impératif, même si le défilement est activé
     dans le personnalisateur — un défilement perpétuel qu'on ne peut pas
     arrêter est un vrai problème d'accessibilité, pas une simple
     transition qu'on désactive par confort. */
  @media (prefers-reduced-motion: reduce) {
    .tbp-mq-track {
      animation: none !important;
      transform: none !important;
    }

    .tbp-mq-inner {
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
    }

    .tbp-mq-group[aria-hidden='true'] {
      display: none;
    }
  }
/* END_SECTION:trust-bar-premium */

/* START_SECTION:usage-collection (INDEX:71) */
.usage-collection {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .usage-collection__inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .usage-collection__title {
    text-align: center;
    margin: 0 0 30px;
  }

  .usage-collection__grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    gap: var(--gap-md);
  }

  @media (width > 750px) {
    .usage-collection__grid {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }

  .usage-collection__footer-link-wrap {
    margin-top: var(--gap-lg, 32px);
    text-align: center;
  }

  .usage-collection__footer-link {
    font-size: var(--font-body--size);
  }
/* END_SECTION:usage-collection */

/* START_SECTION:usage-hero (INDEX:72) */
.usage-hero-wrapper {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .usage-hero {
    position: relative;
    overflow: hidden;
  }

  .usage-hero__filter {
    position: absolute;
    inset: 0;
    background-color: var(--color);
    opacity: calc(var(--opacity) / 100);
    z-index: 1;
  }

  .usage-hero__media {
    position: absolute;
    inset: 0;
  }

  .usage-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
  }

  @media (prefers-reduced-motion: no-preference) {
    .usage-hero__media img {
      animation: usage-hero-kenburns 26s ease-in-out infinite alternate;
      transform-origin: center center;
      will-change: transform;
    }
  }

  @keyframes usage-hero-kenburns {
    from { transform: scale(1); }
    to { transform: scale(1.07); }
  }

  .usage-hero__content-wrapper {
    position: relative;
    z-index: 2;
  }

  .usage-hero__content {
    min-height: var(--uh-height);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 14px;
    max-width: 620px;
    padding: var(--uh-padding-v) var(--uh-padding-h);
  }

  .usage-hero__cta {
    margin-top: 10px;
  }
/* END_SECTION:usage-hero */

/* START_SECTION:usage-intro (INDEX:73) */
.ui-wrap {
    background: var(--ui-bg);
    padding-top: var(--ui-padding-top);
    padding-bottom: var(--ui-padding-bottom);
  }

  .ui-inner {
    max-width: var(--ui-max-width);
    margin: 0 auto;
    padding: 0 24px;
  }

  .ui-header {
    display: flex;
    flex-direction: column;
    align-items: var(--ui-header-align);
    text-align: var(--ui-header-text-align);
    gap: 10px;
    margin-bottom: var(--ui-top-gap);
  }

  .ui-eyebrow {
    margin: 0;
    color: var(--ui-eyebrow-color);
    font-size: var(--ui-eyebrow-size);
    font-weight: var(--ui-eyebrow-weight);
    letter-spacing: var(--ui-eyebrow-spacing);
    text-transform: var(--ui-eyebrow-transform);
  }

  .ui-title {
    margin: 0;
    color: var(--ui-title-color);
    font-size: var(--ui-title-size);
    font-weight: var(--ui-title-weight);
    line-height: 1.2;
  }

  .ui-columns {
    display: grid;
    grid-template-columns: var(--ui-image-width) var(--ui-text-width);
    gap: var(--ui-column-gap);
    align-items: center;
  }

  .ui-wrap--reverse .ui-columns {
    grid-template-columns: var(--ui-text-width) var(--ui-image-width);
  }
  .ui-wrap--reverse .ui-col--image { order: 2; }
  .ui-wrap--reverse .ui-col--text { order: 1; }

  .ui-image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: var(--ui-image-ratio);
    object-fit: cover;
    border-radius: var(--ui-image-radius);
  }

  .ui-image--placeholder {
    background: color-mix(in srgb, currentColor 8%, transparent);
    aspect-ratio: var(--ui-image-ratio, 4 / 3);
  }

  .ui-col--text {
    display: flex;
    flex-direction: column;
    align-items: var(--ui-col-align);
    text-align: var(--ui-col-text-align);
    gap: 16px;
  }

  .ui-subtitle {
    margin: 0;
    color: var(--ui-subtitle-color);
    font-size: var(--ui-subtitle-size);
    font-weight: var(--ui-subtitle-weight);
    line-height: 1.25;
  }

  .ui-paragraph {
    color: var(--ui-paragraph-color);
    font-size: var(--ui-paragraph-size);
    line-height: var(--ui-paragraph-line-height);
  }
  .ui-paragraph p { margin: 0; }

  @media (width < 750px) {
    .ui-columns {
      grid-template-columns: 1fr;
    }
    .ui-wrap--reverse .ui-columns {
      grid-template-columns: 1fr;
    }
    .ui-wrap--reverse .ui-col--image { order: 1; }
    .ui-wrap--reverse .ui-col--text { order: 2; }
  }
/* END_SECTION:usage-intro */

/* START_SECTION:wishlist-drawer (INDEX:74) */
.wishlist-drawer__overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(var(--color-shadow));
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    -webkit-backdrop-filter: brightness(1);
    backdrop-filter: brightness(1);
    transition:
      opacity var(--animation-speed) var(--animation-easing),
      visibility var(--animation-speed) var(--animation-easing);
  }

  .wishlist-drawer__overlay.is-open {
    opacity: 1;
    visibility: visible;
    -webkit-backdrop-filter: brightness(0.75);
    backdrop-filter: brightness(0.75);
    transition:
      opacity var(--animation-speed) var(--animation-easing),
      visibility var(--animation-speed) var(--animation-easing),
      -webkit-backdrop-filter var(--animation-speed) var(--animation-easing),
      backdrop-filter var(--animation-speed) var(--animation-easing);
  }

  .wishlist-drawer__drawer {
    position: absolute;
    top: 0;
    right: 0;
    width: 90vw;
    max-width: 400px;
    height: 100%;
    background: var(--color-background);
    box-shadow: var(--modal-shadow);
    transform: translateX(100%);
    display: flex;
    flex-direction: column;
  }

  .wishlist-drawer__overlay.is-open .wishlist-drawer__drawer {
    animation: modalSlideInRight var(--animation-speed) var(--animation-easing) forwards;
  }

  .wishlist-drawer__overlay.is-closing .wishlist-drawer__drawer {
    animation: modalSlideOutRight var(--animation-speed) var(--animation-easing) forwards;
  }

  .wishlist-drawer__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--padding-xs);
  }

  .wishlist-drawer__title {
    margin-left: var(--margin-sm);
  }

  .wishlist-drawer__close .icon--close {
    font-size: 22px !important;
  }

  .wishlist-drawer__body {
    flex: 1;
    overflow-y: auto;
    padding: var(--padding-xs);
  }

  .wishlist-drawer__empty {
    text-align: center;
    padding: var(--padding-xl);
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .wishlist-drawer__item {
    display: flex;
    align-items: center;
    gap: var(--padding-xs);
    padding: var(--padding-xs);
    text-decoration: none;
    color: inherit;
    transition: var(--animation-link-hover);
  }

  .wishlist-drawer__item:hover {
    opacity: var(--opacity-link-hover);
  }

  .wishlist-drawer__item-image {
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    object-fit: cover;
    background-color: white;
    border-radius: calc(var(--card-border-radius) - var(--padding-sm));
  }

  .wishlist-drawer__item-info {
    flex: 1;
    min-width: 0; /* Permet au texte de se tronquer si nécessaire */
  }

  .wishlist-drawer__item-title {
    font-size: var(--font-body--size);
    color: rgb(var(--color-foreground));
    font-weight: 500;
    line-height: normal;
    margin-bottom: 0;
  }

  .wishlist-drawer__item-remove {
    flex-shrink: 0;
    margin-left: auto;
    border: var(--inputs-border-width) solid var(--color-border);
  }
/* END_SECTION:wishlist-drawer */

/* CSS from block stylesheet tags */
/* START_BLOCK:_accelerated-checkout (INDEX:75) */
shopify-visual-preview-block-list .accelerated-checkout[data-visual-preview-mode] {
    width: 400px;
  }

  more-payment-options-link {
    font-size: smaller;
  }

  .shopify-payment-button__more-options {
    color: var(--color-foreground);
  }

  more-payment-options-link a {
    --button-color: var(--color-foreground);
  }

  more-payment-options-link a:hover {
    opacity: var(--opacity-link-hover);
  }

  .shopify-payment-button__more-options[aria-hidden='true'] {
    display: none;
  }
/* END_BLOCK:_accelerated-checkout */

/* START_BLOCK:_announcement (INDEX:78) */
.announcement .slide {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: var(--gap);
    margin: 0;
    overflow: hidden;
    width: 100%;
    height: 100%;
  }
/* END_BLOCK:_announcement */

/* START_BLOCK:_article-date (INDEX:80) */
.article-date {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }
/* END_BLOCK:_article-date */

/* START_BLOCK:_article-group (INDEX:81) */
.article-card-group {
    display: flex;
    flex-direction: var(--direction-mobile);
    flex-wrap: var(--wrap-mobile);
    justify-content: var(--justify-mobile);
    align-items: var(--align_items-mobile);
    gap: var(--gap-mobile);
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    overflow: hidden;
    width: 100%;
  }

  @media (width > 750px) {
    .article-card-group {
      flex-direction: var(--direction);
      flex-wrap: var(--wrap);
      justify-content: var(--justify);
      align-items: var(--align_items);
      gap: var(--gap);
    }
  }
/* END_BLOCK:_article-group */

/* START_BLOCK:_cart-accelerated-checkout (INDEX:83) */
shopify-visual-preview-block-list .accelerated-checkout[data-visual-preview-mode] {
    width: 400px;
  }

  more-payment-options-link {
    font-size: smaller;
  }

  more-payment-options-link a {
    --button-color: var(--color-foreground);
  }

  more-payment-options-link a:hover {
    opacity: var(--opacity-link-hover);
  }

  .shopify-payment-button__more-options[aria-hidden='true'] {
    display: none;
  }
/* END_BLOCK:_cart-accelerated-checkout */

/* START_BLOCK:_cart-drawer-empty-blocks (INDEX:84) */
.cart-drawer-empty-blocks {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--gap-lg);
    width: 100%;
  }

  @media (width <= 750px) {
    .cart-drawer-empty-blocks .slider-component--65-percent .splide__list {
      width: calc(100vw - 50%);
    }
  }
/* END_BLOCK:_cart-drawer-empty-blocks */

/* START_BLOCK:_cart-drawer-footer-blocks (INDEX:85) */
.cart-footer-blocks {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }
/* END_BLOCK:_cart-drawer-footer-blocks */

/* START_BLOCK:_cart-footer-blocks (INDEX:86) */
.cart-footer-blocks {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }
/* END_BLOCK:_cart-footer-blocks */

/* START_BLOCK:_cart-footer-resume-blocks (INDEX:87) */
.cart-footer-resume-blocks {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }
/* END_BLOCK:_cart-footer-resume-blocks */

/* START_BLOCK:_cart-header-blocks (INDEX:88) */
.cart-header-blocks {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }

  .cart-drawer .cart-header-blocks:not(.card) > div:first-of-type {
    margin-top: var(--padding-md);
  }
/* END_BLOCK:_cart-header-blocks */

/* START_BLOCK:_cart-note (INDEX:89) */
cart-note {
    display: block;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);

    .icon--keyboard_arrow_down {
      display: none;
    }
  }

  cart-note[data-visual-preview-mode] {
    width: 350px;
  }
/* END_BLOCK:_cart-note */

/* START_BLOCK:_cart-progress-bar (INDEX:90) */
.cart-progress-bar {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .cart-progress-bar[data-visual-preview-mode] {
    width: 350px;
  }

  .cart-progress-bar__label {
    margin: 0;
    margin-bottom: var(--margin-md);
    letter-spacing: inherit;
    cursor: default;
    line-height: normal;
    font-weight: 500;
  }

  .cart-progress-bar__bar-container {
    margin-top: 5px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 2px;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
  }

  .cart-progress-bar__progress-group {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    width: -webkit-fill-available;
  }

  .cart-progress-bar__step-label {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2px;
    font-size: var(--font-body--size-small);
    margin-top: 5px;
  }

  .cart-progress-bar__step-label .icon--check {
    font-size: var(--font-body--size-small) !important;
  }

  .cart-progress-bar__progress {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 100%;
    height: 5px;
  }

  .cart-progress-bar__progress[value]::-webkit-progress-bar {
    background-color: rgb(from var(--color-primary-button-background) r g b / 15%);
    border-radius: calc(var(--inputs-border-radius) * 20 / 100);
  }

  .cart-progress-bar__progress[value]::-webkit-progress-value {
    -webkit-transition: width 0.5s;
    transition: width 0.5s;
    background-color: var(--color-primary-button-background);
    border-radius: calc(var(--inputs-border-radius) * 20 / 100);
  }

  @-moz-document url-prefix() {
    .cart-progress-bar__bar-container {
      justify-content: center;
    }

    .cart-progress-bar__progress-group {
      width: 100%;
    }

    .cart-progress-bar__progress[value]::-moz-progress-bar {
      background: var(--color-primary-button-background);
      border-radius: calc(var(--inputs-border-radius) * 20 / 100);
    }

    .cart-progress-bar__progress[value],
    .cart-progress-bar__progress[value]::-moz-progress-bar {
      border-radius: calc(var(--inputs-border-radius) * 20 / 100);
    }

    .cart-progress-bar__progress[value] {
      border: none;
      border-radius: calc(var(--inputs-border-radius) * 20 / 100);
    }
  }

  .cart-progress-bar__bar-container:has(.cart-progress-bar__progress_2) {
    .cart-progress-bar__progress_1[value]::-webkit-progress-bar,
    .cart-progress-bar__progress_1[value]::-webkit-progress-value {
      border-top-right-radius: 0;
      border-bottom-right-radius: 0;
    }
  }

  .cart-progress-bar__progress_2[value]::-webkit-progress-bar,
  .cart-progress-bar__progress_2[value]::-webkit-progress-value {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
  }

  .cart-progress-bar__bar-container:has(.cart-progress-bar__progress_3) {
    .cart-progress-bar__progress_2[value]::-webkit-progress-bar,
    .cart-progress-bar__progress_2[value]::-webkit-progress-value {
      border-top-right-radius: 0;
      border-bottom-right-radius: 0;
    }
  }

  .cart-progress-bar__progress_3[value]::-webkit-progress-bar,
  .cart-progress-bar__progress_3[value]::-webkit-progress-value {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
  }
/* END_BLOCK:_cart-progress-bar */

/* START_BLOCK:_comparison-table-data (INDEX:92) */
.comparison-table__cell {
    padding: var(--padding-md);
    text-align: center;
    vertical-align: middle;
    color: var(--comparison-cell-color, inherit);
  }

  .comparison-table__cell > *:not(.text-block) {
    display: inline-block;
    vertical-align: middle;
  }

  .comparison-table__cell img {
    max-width: 100%;
    height: auto;
    object-fit: contain;
  }

  .comparison-table__cell:empty {
    opacity: 0;
    background-color: transparent;
  }

  .comparison-table__table tr td:first-child {
    text-align: left;
  }

  .comparison-table__table tr td:first-child .icon-container {
    margin-right: var(--gap-sm, 10px);
  }

  @media (width < 750px) {
    .comparison-table__cell {
      padding: var(--padding-sm);
      overflow: hidden;
      min-width: var(--cell-min-width-mobile);
    }
  }

  .highlight-column-1 {
    tr td:nth-child(1):not(:empty) {
      color: var(--color-highlighted-column);
      background-color: var(--color-highlighted-background-column);
    }

    tr:first-child td:nth-child(1):not(:empty) {
      border-top-left-radius: var(--card-border-radius);
      border-top-right-radius: var(--card-border-radius);
    }

    tr:last-child td:nth-child(1):not(:empty) {
      border-bottom-left-radius: var(--card-border-radius);
      border-bottom-right-radius: var(--card-border-radius);
    }
  }

  .highlight-column-2 {
    tr td:nth-child(2):not(:empty) {
      color: var(--color-highlighted-column);
      background-color: var(--color-highlighted-background-column);
      border-bottom: none;
      padding-left: var(--padding-lg);
      padding-right: var(--padding-lg);
      position: relative;
    }

    tr:first-child td:nth-child(2):not(:empty) {
      border-top-left-radius: var(--card-border-radius);
      border-top-right-radius: var(--card-border-radius);
      background-color: var(--color-highlighted-header-background, var(--color-highlighted-background-column));
      color: var(--color-highlighted-header-color, var(--color-highlighted-column));
      padding-top: var(--padding-lg);
      padding-bottom: var(--padding-lg);
      box-shadow: 0 12px 28px rgb(0 0 0 / 30%);
    }

    tr:last-child td:nth-child(2):not(:empty) {
      border-bottom-left-radius: var(--card-border-radius);
      border-bottom-right-radius: var(--card-border-radius);
      padding-bottom: var(--padding-lg);
    }
  }

  .highlight-column-3 {
    tr td:nth-child(3):not(:empty) {
      color: var(--color-highlighted-column);
      background-color: var(--color-highlighted-background-column);
    }

    tr:first-child td:nth-child(3):not(:empty) {
      border-top-left-radius: var(--card-border-radius);
      border-top-right-radius: var(--card-border-radius);
    }

    tr:last-child td:nth-child(3):not(:empty) {
      border-bottom-left-radius: var(--card-border-radius);
      border-bottom-right-radius: var(--card-border-radius);
    }
  }

  .highlight-column-4 {
    tr td:nth-child(4):not(:empty) {
      color: var(--color-highlighted-column);
      background-color: var(--color-highlighted-background-column);
    }

    tr:first-child td:nth-child(4):not(:empty) {
      border-top-left-radius: var(--card-border-radius);
      border-top-right-radius: var(--card-border-radius);
    }

    tr:last-child td:nth-child(4):not(:empty) {
      border-bottom-left-radius: var(--card-border-radius);
      border-bottom-right-radius: var(--card-border-radius);
    }
  }

  .highlight-column-5 {
    tr td:nth-child(5):not(:empty) {
      color: var(--color-highlighted-column);
      background-color: var(--color-highlighted-background-column);
    }

    tr:first-child td:nth-child(5):not(:empty) {
      border-top-left-radius: var(--card-border-radius);
      border-top-right-radius: var(--card-border-radius);
    }

    tr:last-child td:nth-child(5):not(:empty) {
      border-bottom-left-radius: var(--card-border-radius);
      border-bottom-right-radius: var(--card-border-radius);
    }
  }

  .highlight-column-6 {
    tr td:nth-child(6):not(:empty) {
      color: var(--color-highlighted-column);
      background-color: var(--color-highlighted-background-column);
    }

    tr:first-child td:nth-child(6):not(:empty) {
      border-top-left-radius: var(--card-border-radius);
      border-top-right-radius: var(--card-border-radius);
    }

    tr:last-child td:nth-child(6):not(:empty) {
      border-bottom-left-radius: var(--card-border-radius);
      border-bottom-right-radius: var(--card-border-radius);
    }
  }

  .highlight-column-7 {
    tr td:nth-child(7):not(:empty) {
      color: var(--color-highlighted-column);
      background-color: var(--color-highlighted-background-column);
    }

    tr:first-child td:nth-child(7):not(:empty) {
      border-top-left-radius: var(--card-border-radius);
      border-top-right-radius: var(--card-border-radius);
    }

    tr:last-child td:nth-child(7):not(:empty) {
      border-bottom-left-radius: var(--card-border-radius);
      border-bottom-right-radius: var(--card-border-radius);
    }
  }

  .highlight-column-8 {
    tr td:nth-child(8):not(:empty) {
      color: var(--color-highlighted-column);
      background-color: var(--color-highlighted-background-column);
    }

    tr:first-child td:nth-child(8):not(:empty) {
      border-top-left-radius: var(--card-border-radius);
      border-top-right-radius: var(--card-border-radius);
    }

    tr:last-child td:nth-child(8):not(:empty) {
      border-bottom-left-radius: var(--card-border-radius);
      border-bottom-right-radius: var(--card-border-radius);
    }
  }
/* END_BLOCK:_comparison-table-data */

/* START_BLOCK:_comparison-table-row (INDEX:93) */
.comparison-table__table tr:not(:last-child) {
    border-bottom: 1px solid var(--color-border);
  }
/* END_BLOCK:_comparison-table-row */

/* START_BLOCK:_custom_product_field (INDEX:94) */
.custom-product-field {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }
/* END_BLOCK:_custom_product_field */

/* START_BLOCK:_discount-code (INDEX:95) */
.cart-discount-block {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);

    .icon--keyboard_arrow_down {
      display: none;
    }
  }

  .cart-discount-block[data-visual-preview-mode] {
    width: 350px;
  }

  cart-discount {
    display: block;
  }

  .cart-discount__container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;

    .textfield {
      width: 100%;
    }

    .textfield input {
      min-width: 100%;
      width: 100%;
    }
  }

  .cart-discount_button {
    min-width: 90px;
  }

  .cart-discount_badge-container {
    margin-top: var(--margin-sm);
  }

  .cart-discount_badge {
    justify-content: center;
    gap: 5px;
    padding-right: 5px !important;
  }

  .cart-discount_badge.loading {
    cursor: default;
    pointer-events: none;

    .cart-discount__discount-text,
    .cart-discount__remove-discount {
      opacity: 0.5;
    }
  }

  .cart-discount__remove-discount {
    cursor: pointer;
    height: 14px;
  }

  .cart-discount_badge .cart-discount__discount-text {
    display: inline-block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
/* END_BLOCK:_discount-code */

/* START_BLOCK:_fake-variant-link (INDEX:96) */
.fake-variant-picker__variant {
    appearance: none;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    min-height: var(--variant-button-min-height);
    min-width: var(--variant-button-min-width);
    max-width: max-content;
    font-size: var(--variant-button-font-size);
    outline: 1px solid transparent;
    transition: all var(--animation-speed-medium) var(--animation-easing);
    padding: var(--variant-button-padding-vertical) var(--variant-button-padding-horizontal);
    color: var(--color-variant-text);
    background-color: var(--color-variant-background);
    border: var(--variant-button-border-width) solid var(--color-variant-border);
    border-radius: var(--inputs-border-radius);
    font-weight: var(--button-primary-font-weight);
    text-transform: var(--button-primary-text-transform);
    letter-spacing: var(--button-letter-spacing);
  }

  .fake-variant-picker__variant--selected {
    background-color: var(--color-selected-variant-background);
    color: var(--color-selected-variant-text);
    border-color: var(--color-selected-variant-border);
  }
/* END_BLOCK:_fake-variant-link */

/* START_BLOCK:_fake-variant-picker (INDEX:97) */
.fake-variant-picker {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .fake-variant-picker__variants {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-sm);
  }
/* END_BLOCK:_fake-variant-picker */

/* START_BLOCK:_footer-bottom-bar (INDEX:98) */
.footer-bottom-bar {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
    margin-top: var(--margin-top);
  }

  .footer-bottom-bar--top-border {
    border-top: var(--separator-border-width) solid var(--color-border);
  }

  .footer-bottom-bar__content {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    grid-template-rows: auto;
    gap: var(--gap-mobile);
    width: 100%;
  }

  @media (width > 750px) {
    .footer-bottom-bar__content {
      gap: var(--gap);
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }
/* END_BLOCK:_footer-bottom-bar */

/* START_BLOCK:_footer-policy-list (INDEX:99) */
.policy-list {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .policy-list__links {
    display: flex;
    gap: var(--gap-xs) var(--padding-sm);
    flex-wrap: wrap;
    justify-content: center;
    margin: 0;
    padding: 0;
    list-style: none;

    @media (width >750px) {
      justify-content: flex-start;
    }
  }

  .policy-list__link {
    text-decoration: underline;
    color: var(--color-foreground);
    transition: var(--animation-link-hover);
    font-size: var(--font-body--size-small);

    &:hover {
      opacity: var(--opacity-link-hover);
    }
  }
/* END_BLOCK:_footer-policy-list */

/* START_BLOCK:_header-drawer-menu-header (INDEX:101) */
.header-drawer-menu-header {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
    margin-bottom: var(--margin-sm);
  }
/* END_BLOCK:_header-drawer-menu-header */

/* START_BLOCK:_header-drawer-menu-under-menu (INDEX:102) */
.header-drawer-menu-under-menu {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
    margin-top: var(--margin-sm);
  }
/* END_BLOCK:_header-drawer-menu-under-menu */

/* START_BLOCK:_header-drawer-menu (INDEX:103) */
/* Menu mobile */
  .header__mobile-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(var(--color-shadow));
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    -webkit-backdrop-filter: brightness(1);
    backdrop-filter: brightness(1);
    transition: opacity var(--animation-speed) var(--animation-easing), visibility var(--animation-speed) var(--animation-easing);
  }

  .header__mobile-menu-overlay.is-open {
    opacity: 1;
    visibility: visible;
    -webkit-backdrop-filter: brightness(0.75);
    backdrop-filter: brightness(0.75);
    transition: opacity var(--animation-speed) var(--animation-easing), visibility var(--animation-speed) var(--animation-easing),
      -webkit-backdrop-filter var(--animation-speed) var(--animation-easing), backdrop-filter var(--animation-speed) var(--animation-easing);
  }

  .header__mobile-menu {
    position: absolute;
    top: 0;
    left: 0;
    width: 90vw;
    max-width: 400px;
    height: 100%;
    background: var(--color-background);
    box-shadow: var(--modal-shadow);
    transform: translateX(-100%);
    display: flex;
    flex-direction: column;
  }

  .header__mobile-menu-overlay.is-open .header__mobile-menu {
    animation: modalSlideInLeft var(--animation-speed) var(--animation-easing) forwards;
  }

  .header__mobile-menu-overlay.is-closing .header__mobile-menu {
    animation: modalSlideOutLeft var(--animation-speed) var(--animation-easing) forwards;
  }

  .header__mobile-menu-header {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: var(--padding-xs);
  }

  .header__mobile-menu-footer {
    padding: var(--padding-sm);
    border-top: var(--separator-border-width) solid var(--color-border);
  }

  .header__mobile-menu-close .icon--close {
    font-size: 22px !important;
  }

  .header__mobile-menu-nav {
    flex: 1;
    padding: var(--padding-md);
    display: flex;
    flex-direction: column;
    gap: var(--gap-xs);
    overflow-y: auto;
  }

  .header__mobile-menu-nav--uppercase .header__mobile-menu-link-text {
    text-transform: uppercase;
  }

  .header__mobile-menu-link-text {
    font-weight: var(--font-weight);
  }

  .header__mobile-menu-link {
    display: block;
    padding: var(--padding-sm);
    text-decoration: none;
    color: inherit;
    font-size: var(--font-h6--size);
    border-radius: var(--inputs-border-radius);
    transition: background-color var(--animation-speed) var(--animation-easing);
  }

  .header__mobile-menu-link:hover {
    background-color: var(--color-input-border-low-opacity);
  }

  /* Accordéons des sous-menus */
  .header__mobile-menu-accordion {
    width: 100%;
  }

  .header__mobile-menu-accordion summary {
    list-style: none;
    cursor: pointer;
  }

  .header__mobile-menu-accordion summary::-webkit-details-marker {
    display: none;
  }

  .header__mobile-menu-link--parent,
  .header__mobile-menu-link--child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }

  .header__mobile-menu-link--parent .icon,
  .header__mobile-menu-link--child .icon {
    transition: transform var(--animation-speed-fast) var(--animation-easing);
    flex-shrink: 0;
  }

  .header__mobile-menu-accordion[open] > summary .icon {
    transform: rotate(180deg);
  }

  .header__mobile-menu-submenu {
    padding-left: var(--padding-sm);
  }

  /* Niveaux d'indentation */
  .header__mobile-menu-link--child {
    font-size: var(--font-body--size-emphasized);
    padding-left: var(--padding-sm);
  }

  .header__mobile-menu-link--grandchild {
    font-size: var(--font-body--size);
    padding-left: var(--padding-sm);
  }

  .header__mobile-menu-submenu--level-2 {
    padding-left: var(--padding-sm);
  }
/* END_BLOCK:_header-drawer-menu */

/* START_BLOCK:_header-megamenu-group (INDEX:104) */
.megamenu-group {
    gap: var(--gap);
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    overflow: hidden;
    width: var(--width);
  }

  .megamenu-group.card {
    padding: var(--padding-vertical) var(--padding-horizontal);
  }

  shopify-visual-preview-block-list .megamenu-group[data-visual-preview-mode] {
    width: 100%;
    max-width: 450px;
  }

  .megamenu-group--flex {
    display: flex;
    flex-direction: var(--direction);
    flex-wrap: var(--wrap);
    justify-content: var(--justify);
    align-items: var(--align_items);
  }

  .megamenu-group--grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns), 1fr);
    grid-template-rows: auto;
  }
/* END_BLOCK:_header-megamenu-group */

/* START_BLOCK:_header-megamenu (INDEX:105) */
.custom-megamenu-content {
    gap: var(--gap);
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    overflow: hidden;
  }

  .custom-megamenu-content--flex {
    display: flex;
    flex-direction: var(--direction);
    flex-wrap: var(--wrap);
    justify-content: var(--justify);
    align-items: var(--align_items);
  }

  .custom-megamenu-content--grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns), 1fr);
    grid-template-rows: auto;
  }
/* END_BLOCK:_header-megamenu */

/* START_BLOCK:_header-notification (INDEX:106) */
.header-notification {
    width: 100%;
    padding: var(--padding-xs);
    background: rgb(var(--color-background));
    border-radius: calc(var(--card-border-radius) - var(--padding-xs));
    transition: background-color var(--animation-speed) var(--animation-easing);
    font-size: var(--font-body--size);
  }

  .header-notification:hover {
    background-color: rgb(from var(--color-foreground) r g b / 5%);
    font-weight: 500;
  }

  .header-notification-link {
    display: flex;
    align-items: center;
    gap: var(--gap-sm);
    text-decoration: none;
    color: rgb(var(--color-foreground));
    width: 100%;
  }

  .header-notification-image {
    width: 50px;
    height: 50px;
    object-fit: cover;
    object-position: center center;
    border-radius: calc(var(--card-border-radius) - (var(--card-padding) * 0.67));
  }

  .header-notification-title {
    font-weight: 500;
  }
/* END_BLOCK:_header-notification */

/* START_BLOCK:_header-notifications (INDEX:107) */
.header-notifications {
    line-height: 0;
    position: relative;
  }

  .header-notifications__icon {
    position: relative;
    display: inline-block;
    cursor: pointer;
  }

  .header-notifications__popup {
    border: var(--container-border-width) solid var(--color-border);
    position: absolute;
    top: 100%;
    right: 0;
    min-width: 240px;
    max-height: 350px;
    overflow-y: auto;
    padding: var(--padding-sm);
  }

  .header-notifications__list {
    display: flex;
    flex-direction: column;
    width: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: var(--gap-sm);
  }
/* END_BLOCK:_header-notifications */

/* START_BLOCK:_image-banner (INDEX:108) */
.image-banner {
    position: relative;
    overflow: hidden;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    height: 100%;

    &.card {
      padding: 0;
    }
  }

  .image-banner__media-filter {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color);
    opacity: calc(var(--opacity) / 100);
    z-index: 1;
  }

  .image-banner__media {
    position: absolute;
    width: 100%;
    height: 100%;

    /* Correctif <picture> (LCP) : sans hauteur propre, <picture> se
       redimensionne sur son contenu (l'<img>), ce qui casse la résolution
       en % de height:100% sur l'<img> lui-même — l'image retombait alors à
       sa hauteur intrinsèque au lieu de remplir la bannière. */
    picture {
      display: block;
      height: 100%;
      width: 100%;
    }

    img,
    picture img,
    video,
    deferred-media,
    .placeholder-image {
      height: 100%;
      width: 100%;
      object-fit: cover;
      object-position: center center;
      border-radius: 0;
      overflow: hidden;
      position: relative;
    }

    /* Pour éviter les bandes noires sur desktop */
    .image-banner__external-video .deferred-media__video {
      position: relative;
      padding-bottom: 56.25%;
      height: 0;
      overflow: hidden;
    }

    .image-banner__external-video .deferred-media__video iframe {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
    }

    /* Fix pour éliminer les bandes noires sur mobile */
    @media (width <= 1000px) {
      .image-banner__external-video {
        display: block;
        width: 100%;
        height: 100%;
        border-radius: 0;
      }

      .image-banner__external-video .deferred-media__video {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        padding-bottom: 0;
      }

      .image-banner__external-video .deferred-media__video iframe {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 177.77vh; /* Pour un ratio 16:9 */
        height: 100vh;
        min-width: 100%;
        min-height: 100%;
      }
    }
  }

  .image-banner__content-wrapper {
    position: relative;
    width: 100%;
    z-index: 2;

    .image-banner__content {
      width: 100%;
      min-height: var(--banner-height-mobile);
      display: flex;
      flex-direction: column;
      justify-content: var(--justify-mobile);
      align-items: var(--align-items-mobile);
      padding: var(--padding-vertical) var(--padding-horizontal);
    }
  }

  @media (width > 750px) {
    .image-banner__content-wrapper .image-banner__content {
      min-height: var(--banner-height);
      justify-content: var(--justify);
      align-items: var(--align-items);
    }
  }

  /* Effet "Ken Burns" subtil : léger zoom continu sur l'image fixe du hero */
  @media (prefers-reduced-motion: no-preference) {
    .image-banner__media img:not(.placeholder-image) {
      animation: image-banner-kenburns 26s ease-in-out infinite alternate;
      transform-origin: center center;
      will-change: transform;
    }

    @media (width < 750px) {
      .image-banner__media img:not(.placeholder-image) {
        animation-name: image-banner-kenburns-mobile;
      }
    }
  }

  @keyframes image-banner-kenburns {
    from {
      transform: scale(1);
    }

    to {
      transform: scale(1.07);
    }
  }

  @keyframes image-banner-kenburns-mobile {
    from {
      transform: scale(1);
    }

    to {
      transform: scale(1.04);
    }
  }
/* END_BLOCK:_image-banner */

/* START_BLOCK:_marquee-image (INDEX:109) */
.marquee-image-block {
    width: var(--width-mobile);

    @media (width > 750px) {
      width: var(--width-desktop);
    }
  }

  .marquee-image-block--height-fill .marquee-image-block__image {
    height: 100%;
  }

  .marquee-image-block__image {
    object-fit: cover;
    aspect-ratio: var(--ratio);
    width: 100%;
  }
/* END_BLOCK:_marquee-image */

/* START_BLOCK:_navigation-link (INDEX:110) */
.navigation-item {
    display: flex;
    align-items: center;
    gap: var(--gap-sm);
    justify-content: center;
    text-decoration: none;
    color: var(--color-foreground);
    min-width: fit-content;
    background-color: var(--color-background);
  }

  shopify-visual-preview-block-list .navigation-item[data-visual-preview-mode] {
    width: 150px;
  }

  .navigation__title {
    font-size: var(--font-body--size);
    color: var(--color-foreground);
    line-height: 1;
  }

  .navigation-item img {
    width: var(--image-width-mobile);
    height: var(--image-width-mobile);
    object-fit: cover;
    border-radius: 50px;
    overflow: hidden;
    object-position: center center;
    background-color: #f8f8f8;
  }

  .navigation--row .navigation-item {
    flex-direction: row;
    border-radius: calc(var(--small-multiplier) * var(--button-border-radius));
    border: var(--container-border-width) solid var(--color-border);
    padding: var(--padding-xxs) var(--padding-sm);
    transition: 0.3s;
    min-height: calc(var(--image-width-mobile) + 2 * var(--padding-xxs));

    img {
      border-radius: calc(calc(var(--small-multiplier) * var(--button-border-radius)) - var(--padding-xxs));
    }

    &.navigation-item--with-image {
      padding-left: var(--padding-xxs);
    }

    &.navigation-item--selected,
    &:hover {
      border: var(--container-border-width) solid var(--color-foreground);
    }
  }

  .navigation--column .navigation-item {
    flex-direction: column;

    .navigation__title {
      max-width: 100px;
      text-align: center;
    }

    img,
    .navigation-item__placeholder {
      outline: var(--container-border-width) solid var(--color-border);
      outline-offset: 0.2rem;
      transition: 0.3s;
    }

    &.navigation-item--selected img,
    &.navigation-item--selected .navigation-item__placeholder,
    &:hover img,
    &:hover .navigation-item__placeholder {
      outline: var(--container-border-width) solid var(--color-foreground);
      outline-offset: 0.2rem;
    }
  }

  @media (width > 750px) {
    .navigation-item img {
      width: var(--image-width-desktop);
      height: var(--image-width-desktop);
    }
  }
/* END_BLOCK:_navigation-link */

/* START_BLOCK:_password-form (INDEX:111) */
.password-form-container {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .password-form {
    margin-top: var(--margin-md);
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 300px;
    max-width: 100%;
    gap: var(--gap-md);
  }
/* END_BLOCK:_password-form */

/* START_BLOCK:_product-add-to-cart-button (INDEX:112) */
shopify-visual-preview-block-list .product-add-to-cart-button[data-visual-preview-mode] {
    width: 400px;
  }

  .product-add-to-cart-button {
    display: flex;
    flex-direction: row;
    gap: var(--gap-sm);
    align-items: center;
  }

  .sticky-add-to-cart {
    width: 100%;
  }

  .sticky-add-to-cart[data-active='false'] {
    bottom: -150px;
  }

  .sticky-add-to-cart[data-active='true'] {
    bottom: 0;
    position: fixed;
    left: 0;
    padding: var(--padding-sm) 0;
    z-index: 2;
    border-top: var(--separator-border-width) solid var(--color-border);
    transition: bottom 300ms ease-in-out;

    .sticky-add-to-cart__content {
      width: 100%;
      max-width: var(--page-width);
      margin: 0 auto;
      padding: 0 var(--page-margin-mobile);
    }
  }

  @media (width > 750px) {
    .sticky-add-to-cart[data-active='true'] {
      padding: var(--padding-md) 0;

      .sticky-add-to-cart__content {
        padding: 0 var(--page-margin-desktop);
      }
    }
  }

  .product-add-to-cart-button .button {
    container-type: inline-size;
  }

  #klaviyo-bis-button-container {
    margin-bottom: 0 !important;
  }

  #klaviyo-bis-button-container button {
    appearance: none !important;
    cursor: pointer !important;
    text-decoration: none !important;
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 10px !important;
    height: calc(var(--inputs-min-height) - (2 * var(--button-padding-vertical))) !important;
    font-size: var(--button-font-size) !important;
    outline: 1px solid transparent !important;
    transition: all var(--animation-speed-medium) var(--animation-easing) !important;
    padding: var(--button-padding-vertical) var(--button-padding-horizontal) !important;
    color: var(--color-primary-button-text) !important;
    background-color: var(--color-primary-button-background) !important;
    border: var(--button-primary-border-width) solid var(--color-primary-button-border) !important;
    border-radius: var(--button-border-radius) !important;
    font-weight: var(--button-primary-font-weight) !important;
    text-transform: var(--button-primary-text-transform) !important;
    width: -webkit-fill-available !important;
    font-family: var(--font-body--family) !important;
    font-weight: 500 !important;
  }

  .product-add-to-cart-button .full-add-to-cart-text {
    display: block;
  }

  .product-add-to-cart-button .small-add-to-cart-text {
    display: none;
  }

  @container (width < 200px) {
    .product-add-to-cart-button .button__separator,
    .product-add-to-cart-button .price-container {
      display: none;
    }

    .product-add-to-cart-button .full-add-to-cart-text {
      display: block;
    }

    .product-add-to-cart-button .small-add-to-cart-text {
      display: none;
    }
  }

  @container (width < 270px) {
    .product-add-to-cart-button .full-add-to-cart-text {
      display: none;
    }

    .product-add-to-cart-button .small-add-to-cart-text {
      display: block;
    }
  }
/* END_BLOCK:_product-add-to-cart-button */

/* START_BLOCK:_product-card-group (INDEX:113) */
.product-card-group-link {
    display: contents;
    color: inherit;
    text-decoration: none;
  }

  .product-card-group {
    display: flex;
    flex-direction: var(--direction-mobile);
    flex-wrap: var(--wrap-mobile);
    justify-content: var(--justify-mobile);
    align-items: var(--align_items-mobile);
    gap: var(--gap-mobile);
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    overflow: hidden;
    width: 100%;
  }

  @media (width > 750px) {
    .product-card-group {
      flex-direction: var(--direction);
      flex-wrap: var(--wrap);
      justify-content: var(--justify);
      align-items: var(--align_items);
      gap: var(--gap);
    }
  }
/* END_BLOCK:_product-card-group */

/* START_BLOCK:_product-card-media-gallery (INDEX:114) */
@media (width > 750px) {
    .product-media-gallery .splide__arrow,
    .product-media-gallery .splide__arrow:disabled,
    .product-media-gallery .splide__pagination {
      opacity: 0;
      transition: opacity 0.2s ease-in-out;
    }

    .product-media-gallery:hover .splide__arrow,
    .product-media-gallery:hover .splide__pagination {
      opacity: 1;
    }

    .product-media-gallery:hover .splide__arrow:disabled {
      opacity: 0.5;
    }
  }

  @media (width > 750px) {
    .product-media-gallery--grid {
      .splide__list {
        display: grid;
        grid-template-columns: repeat(var(--grid-columns), 1fr);
        gap: var(--grid-gap);

        .product-media-gallery__media--full-width {
          grid-column: span var(--grid-columns);
        }
      }
      .product-media-gallery__thumbnails {
        display: none;
      }
    }
  }

  .product-media-gallery__media {
    height: 100%;
    /* Nécessaire pour que le zoom léger au survol (micro-interaction B1,
       voir plus bas) ne déborde jamais visuellement de sa carte — avant,
       seule la variante "coins arrondis" avait cet overflow:hidden. */
    overflow: hidden;
  }

  .product-media-gallery__media--rounded {
    border-radius: var(--card-border-radius);
    overflow: hidden;
  }

  .product-media-gallery .splide__arrow {
    background-color: transparent;
    border: none;
  }

  .product-media-gallery .splide__pagination {
    bottom: 5px;
  }

  .product-media-gallery__thumbnails {
    margin-top: 10px;
  }

  .product-media-gallery__thumbnail {
    position: relative;
    height: auto !important;

    .product-media-gallery__thumbnail-play-button {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(0, 0, 0, 0.1);

      .icon--play_circle {
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);

        position: absolute;
        font-size: 36px !important;
        color: var(--color-primary-button-text);
      }
    }
  }

  .product-media-gallery__thumbnail-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .product-media-gallery__thumbnail--rounded,
  .product-media-gallery__thumbnail--rounded .product-media-gallery__thumbnail-image,
  .product-media-gallery__thumbnail--rounded .product-media-gallery__thumbnail-play-button {
    border-radius: calc(var(--card-border-radius) - (var(--card-padding) * 0.5));
  }

  /* Correctif "bout d'image suivante visible" : une règle externe (hors
     fichiers de ce thème — probablement injectée par une app ou un script
     tiers) applique `padding: 0 48px !important` sur .splide__track à
     partir de 750px, vraisemblablement pour réserver de la place aux
     flèches. Avec une seule slide par vue (perPage: 1), la slide active
     remplit exactement la zone de contenu du track (hors padding), et la
     slide suivante s'enchaîne juste après en flux flex normal — elle
     atterrit dans cette zone de padding, qui n'arrête pas le débordement
     de ses enfants (seul le bord de la boîte le fait). Résultat : un
     morceau de la slide suivante reste visible. Comme les flèches de
     cette galerie sont déjà transparentes et conçues pour se superposer
     directement à l'image (règle .product-media-gallery .splide__arrow
     ci-dessus), ce padding n'a aucune utilité ici : on le neutralise.
     Sélecteur scopé + !important pour gagner face à la règle externe,
     quelle que soit son origine réelle. */
  @media (width > 750px) {
    .product-media-gallery-main-slider.splide .splide__track {
      padding: 0 !important;
    }
  }

  /* Micro-interaction B1 — zoom léger au survol des images produit,
     desktop uniquement (pas de :hover fiable au tactile, donc scopé à
     @media (width > 750px)). Purement fonctionnel : signale que le
     visuel est le point d'attention avant achat, jamais un effet
     spectaculaire. transform:scale() n'affecte jamais le flux de la
     page (image déjà dimensionnée via aspect-ratio + object-fit dans
     snippets/product-media.liquid) : aucun risque de CLS. Hover scopé
     à la <li> de la slide survolée (pas à toute la galerie), pour ne
     zoomer que l'image réellement sous le curseur. */
  @media (width > 750px) {
    .product-media-gallery-main-slider .product-media img {
      transition: transform 0.28s ease;
    }

    .product-media-gallery-main-slider .splide__slide:hover .product-media img {
      transform: scale(1.03);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .product-media-gallery-main-slider .product-media img {
      transition: none;
    }
  }
/* END_BLOCK:_product-card-media-gallery */

/* START_BLOCK:_product-card-quick-add (INDEX:115) */
.quick-add-component {
    display: block;
    width: 100%;
    cursor: auto;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .quick-add-component--aligned-at-bottom {
    margin-top: auto;
  }

  .quick-add-component .dialog-modal {
    overflow-x: hidden;
  }

  .quick-add-component .button {
    container-type: inline-size;
  }

  .quick-add-button .full-add-to-cart-text {
    display: block;
  }

  .quick-add-button .small-add-to-cart-text {
    display: none;
  }

  @container (width < 200px) {
    .quick-add-button .full-add-to-cart-text {
      display: none;
    }

    .quick-add-button .small-add-to-cart-text {
      display: block;
    }
  }

  .quick-add-component .dialog-modal__content {
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }

  .quick-add-component .dialog-modal__content > * {
    margin-block: 0;
  }

  .quick-add-component .dialog-modal__content .fake-variant-picker,
  .quick-add-component .dialog-modal__content .slider-block,
  .quick-add-component .dialog-modal__content .stories__container {
    display: none;
  }

  .quick-add-component .product-section__medias--sticky,
  .quick-add-component .product-section__product-info--sticky {
    position: relative !important;
  }

  Neutralize sticky add-to-cart inside quick-add dialogs .quick-add-component .sticky-add-to-cart,
  .quick-add-component .sticky-add-to-cart[data-active='true'] {
    position: static !important;
    bottom: auto !important;
    left: auto !important;
    padding: 0 !important;
    border-top: none !important;
    z-index: auto !important;
    transition: none !important;
  }
/* END_BLOCK:_product-card-quick-add */

/* START_BLOCK:_product-form (INDEX:118) */
shopify-visual-preview-block-list product-form[data-visual-preview-mode] {
    width: 400px;
  }

  .product-form__form {
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }
/* END_BLOCK:_product-form */

/* START_BLOCK:_product-media-gallery (INDEX:119) */
@media (width > 750px) {
    .product-media-gallery .splide__arrow,
    .product-media-gallery .splide__arrow:disabled,
    .product-media-gallery .splide__pagination {
      opacity: 0;
      transition: opacity 0.2s ease-in-out;
    }

    .product-media-gallery:hover .splide__arrow,
    .product-media-gallery:hover .splide__pagination {
      opacity: 1;
    }

    .product-media-gallery:hover .splide__arrow:disabled {
      opacity: 0.5;
    }
  }

  @media (width > 750px) {
    .product-media-gallery--grid {
      .splide__list {
        display: grid;
        grid-template-columns: repeat(var(--grid-columns), 1fr);
        gap: var(--grid-gap);

        .product-media-gallery__media--full-width {
          grid-column: span var(--grid-columns);
        }
      }
      .product-media-gallery__thumbnails {
        display: none;
      }
    }
  }

  .product-media-gallery__media {
    height: 100%;
  }

  .product-media-gallery__media--rounded {
    border-radius: var(--card-border-radius);
    overflow: hidden;
  }

  .product-media-gallery .splide__arrow {
    background-color: transparent;
    border: none;
  }

  .product-media-gallery .splide__pagination {
    bottom: 5px;
  }

  .product-media-gallery__thumbnails {
    margin-top: 10px;
  }

  .product-media-gallery__thumbnail {
    position: relative;
    height: auto !important;

    .product-media-gallery__thumbnail-play-button {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(0, 0, 0, 0.1);

      .icon--play_circle {
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);

        position: absolute;
        font-size: 36px !important;
        color: var(--color-primary-button-text);
      }
    }
  }

  .product-media-gallery__thumbnail-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .product-media-gallery__thumbnail--rounded,
  .product-media-gallery__thumbnail--rounded .product-media-gallery__thumbnail-image,
  .product-media-gallery__thumbnail--rounded .product-media-gallery__thumbnail-play-button {
    border-radius: calc(var(--card-border-radius) - (var(--card-padding) * 0.5));
  }

  /* Correctif "bout d'image suivante visible" : une règle externe (hors
     fichiers de ce thème — probablement injectée par une app ou un script
     tiers) applique `padding: 0 48px !important` sur .splide__track à
     partir de 750px, vraisemblablement pour réserver de la place aux
     flèches. Avec une seule slide par vue (perPage: 1), la slide active
     remplit exactement la zone de contenu du track (hors padding), et la
     slide suivante s'enchaîne juste après en flux flex normal — elle
     atterrit dans cette zone de padding, qui n'arrête pas le débordement
     de ses enfants (seul le bord de la boîte le fait). Résultat : un
     morceau de la slide suivante reste visible. Comme les flèches de
     cette galerie sont déjà transparentes et conçues pour se superposer
     directement à l'image (règle .product-media-gallery .splide__arrow
     ci-dessus), ce padding n'a aucune utilité ici : on le neutralise.
     Sélecteur scopé + !important pour gagner face à la règle externe,
     quelle que soit son origine réelle. */
  @media (width > 750px) {
    .product-media-gallery-main-slider.splide .splide__track {
      padding: 0 !important;
    }
  }
/* END_BLOCK:_product-media-gallery */

/* START_BLOCK:_product-quantity-selector (INDEX:120) */
shopify-visual-preview-block-list .product-quantity-selector-block[data-visual-preview-mode] {
    width: 100px;
  }
/* END_BLOCK:_product-quantity-selector */

/* START_BLOCK:_product-variant-picker (INDEX:121) */
shopify-visual-preview-block-list variant-picker[data-visual-preview-mode] {
    width: 350px;
  }

  variant-picker {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .variant-picker__options {
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
  }

  .variant-picker__option {
    border: none;
    padding: 0;
  }

  .variant-picker__option-name {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--gap-sm);
  }

  .variant-picker__option-values {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-sm);
  }
/* END_BLOCK:_product-variant-picker */

/* START_BLOCK:_quantity-breaks-item (INDEX:123) */
.quantity-break {
    width: 100%;
    padding: var(--padding-md) var(--padding-xs);
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: var(--padding-xs);
    justify-content: center;
    align-items: center;
    flex-grow: 1;
    height: 100%;
    overflow: hidden;
    min-width: 0;
    flex: 1 1 0;
    position: relative;
    color: var(--color-input-text);
    background-color: var(--color-input-background);
    border: var(--inputs-border-width) solid var(--color-input-border);

    &.quantity-break--no-overflow {
      overflow: visible;
    }

    &.quantity-break--selected {
      border: var(--inputs-border-width) solid var(--color-selected-input-border);
    }

    &.quantity-break--disabled {
      opacity: 0.5;
      cursor: not-allowed;
    }

    &.quantity-break--with-image {
      padding: var(--padding-xs);
    }

    &:has(.quantity-break__banner--full-width) {
      gap: var(--gap-sm);
    }
  }

  .quantity-break__main-content {
    display: flex;
    flex-direction: column;
    width: 100%;
    align-items: center;
    gap: var(--padding-xs);
  }

  .quantity-break__price-and-title-container {
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
    align-items: center;
  }

  .quantity-break__title-and-badge-container {
    display: flex;
    align-items: center;
    gap: var(--gap-xs);
    flex-wrap: wrap;
    justify-content: center;
  }

  .quantity-break__title {
    font-size: var(--font-body--size);
    font-weight: 500;
    text-align: center;
    line-height: var(--font-body--size);
  }

  .quantity-break__description p,
  .quantity-break__description ul li,
  .quantity-break__description ol li {
    font-size: var(--font-body--size-small);
  }

  .quantity-break__description p {
    margin: 0;
  }

  .quantity-break__description ul {
    margin: 0;
    padding-left: var(--padding-xs);
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--gap-xs);
  }

  .quantity-break__description ol {
    margin: 0;
    padding-left: calc(var(--padding-xs) * 2);
  }

  .quantity-break__description ul li {
    position: relative;
    padding-left: var(--padding-xs);
  }

  .quantity-break__description ul li::before {
    font-family: var(--icon-font);
    content: 'check';
    position: absolute;
    left: calc(-1 * var(--padding-xs));
  }

  .quantity-break__image-container {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;

    img {
      width: 100%;
      height: auto;
      object-fit: contain;
      border-radius: calc(var(--card-border-radius) - var(--padding-xs));
    }
  }

  .quantity-break__image-badge {
    position: absolute;
    background-color: var(--color-background);
    color: var(--color-foreground);
    font-size: var(--font-body--size-small);
    border-radius: calc(var(--card-border-radius) - (2 * var(--padding-xs)));
    z-index: 1;
    display: flex;
    width: 24px;
    height: 24px;
    justify-content: center;
    align-items: center;

    &.quantity-break__image-badge--topright {
      top: var(--padding-xs);
      right: var(--padding-xs);
    }

    &.quantity-break__image-badge--topleft {
      top: var(--padding-xs);
      left: var(--padding-xs);
    }

    &.quantity-break__image-badge--bottomright {
      bottom: var(--padding-xs);
      right: var(--padding-xs);
    }

    &.quantity-break__image-badge--bottomleft {
      bottom: var(--padding-xs);
      left: var(--padding-xs);
    }
  }

  .quantity-break__content {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    gap: var(--gap-sm);
  }

  .quantity-break__price-container {
    display: flex;
    gap: var(--gap-xs);
    flex-wrap: wrap;
    justify-content: center;
    font-size: var(--font-body--size-small);
    color: var(--color-foreground);

    .quantity-break__price-container_unit-price {
      font-size: var(--font-body--size-small);
      opacity: 0.8;
      text-align: center;
    }
  }

  .quantity-break__banner {
    &.quantity-break__banner--full-width {
      width: calc(100% + 2 * var(--padding-xs));
      z-index: 1;
    }

    &.quantity-break__banner--full-width.quantity-break__banner--bottom {
      border-top-right-radius: 0;
      border-top-left-radius: 0;
      margin-bottom: calc(-1 * var(--padding-md));
    }

    &.quantity-break__banner--full-width.quantity-break__banner--top {
      border-bottom-right-radius: 0;
      border-bottom-left-radius: 0;
      margin-top: calc(-1 * var(--padding-md));
    }

    &.quantity-break__banner--overlap {
      max-width: calc(max-content + var(--padding-xs));
      width: max-content;
      z-index: 1;
    }

    &.quantity-break__banner--overlap.quantity-break__banner--bottom {
      position: absolute;
      bottom: 0;
      transform: translateY(65%);
    }

    &.quantity-break__banner--overlap.quantity-break__banner--top {
      position: absolute;
      top: 0;
      transform: translateY(-65%);
    }
  }

  .quantity-break.quantity-break--with-image .quantity-break__banner {
    &.quantity-break__banner--full-width.quantity-break__banner--bottom {
      margin-bottom: calc(-1 * var(--padding-xs));
    }

    &.quantity-break__banner--full-width.quantity-break__banner--top {
      margin-top: calc(-1 * var(--padding-xs));
    }
  }

  .quantity-breaks-container--column {
    .quantity-break__description p,
    .quantity-break__description ul li {
      text-align: center;
    }

    .quantity-break__price-container .price-container .prices {
      align-items: center;
      justify-content: center;
    }

    .quantity-break__banner {
      &.quantity-break__banner--normal.quantity-break__banner--bottom {
        margin-bottom: calc(-1 * var(--padding-xs));
      }

      &.quantity-break__banner--normal.quantity-break__banner--top {
        margin-top: calc(-1 * var(--padding-xs));
      }
    }

    .quantity-break--with-image .quantity-break__banner {
      &.quantity-break__banner--normal.quantity-break__banner--bottom {
        margin-bottom: 0;
      }

      &.quantity-break__banner--normal.quantity-break__banner--top {
        margin-top: 0;
      }
    }

    .quantity-break--with-image {
      &:has(.quantity-break__banner--bottom.quantity-break__banner--overlap) {
        padding-bottom: var(--padding-md);
      }

      &:has(.quantity-break__banner--top.quantity-break__banner--overlap) {
        padding-top: var(--padding-md);
      }
    }
  }

  .quantity-breaks-container--row {
    .quantity-break {
      flex-direction: column;
      justify-content: flex-start;
      position: relative;
      flex: auto;
    }

    .quantity-break:not(.quantity-break--with-image) {
      padding: var(--padding-md);

      .quantity-break__banner--full-width {
        width: calc(100% + 2 * var(--padding-md));
      }
    }

    .quantity-break:has(.quantity-break__banner--overlap.quantity-break__banner--top) {
      margin-top: var(--margin-sm);
    }

    .quantity-break:has(.quantity-break__banner--overlap.quantity-break__banner--bottom) {
      margin-bottom: var(--margin-sm);
    }

    .quantity-break__main-content {
      flex-direction: row;
      gap: var(--gap-sm);
      align-items: flex-start;
    }

    .quantity-break__content {
      align-self: stretch;
      justify-content: center;
      width: 100%;
    }

    .quantity-break__image-container {
      width: auto;

      img {
        width: var(--image-width);
        max-width: var(--image-width);
      }
    }

    .quantity-break__price-and-title-container {
      align-items: flex-start;
    }

    .quantity-break__title-and-badge-container {
      justify-content: flex-start;
      gap: var(--gap-sm);
    }

    .quantity-break__banner {
      &.quantity-break__banner--normal {
        position: absolute;
        right: var(--padding-xs);
      }

      &.quantity-break__banner--normal.quantity-break__banner--top {
        top: var(--padding-xs);
      }

      &.quantity-break__banner--normal.quantity-break__banner--bottom {
        bottom: var(--padding-xs);
      }

      &.quantity-break__banner--overlap {
        right: var(--padding-xs);
      }
    }
  }

  .quantity-breaks-container.quantity-breaks-container--top {
    align-items: flex-end;
  }

  .quantity-breaks-container.quantity-breaks-container--bottom {
    align-items: flex-start;
  }

  /* Sélection de variante */

  .quantity-break__variant-picker-container {
    display: none;
  }

  .quantity-breaks--with-variant-picker .quantity-break--selected .quantity-break__variant-picker-container {
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }

  .quantity-break__variant-picker-row {
    display: flex;
    align-items: center;
    gap: var(--gap-sm);
  }

  .quantity-break__variant-thumbnail {
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: calc(var(--card-border-radius) - var(--padding-md));
    overflow: hidden;
    background-color: var(--color-background);

    img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }

  .quantity-break__variant-thumbnail--hidden {
    display: none;
  }

  .quantity-breaks:not([data-show-variant-thumbnail='true']) .quantity-break__variant-thumbnail {
    display: none;
  }

  /* Cross-sell */

  .quantity-break__cross-sells {
    display: none;
    flex-direction: column;
    width: calc(100% + 2 * var(--padding-xs));
    margin-bottom: calc(-1 * var(--padding-xs));
    border-top: var(--separator-border-width) solid var(--color-input-border);
    padding: var(--padding-xs) var(--padding-sm);
    gap: var(--gap-sm);
  }

  .quantity-break:not(.quantity-break--with-image) .quantity-break__cross-sells {
    margin-bottom: calc(-1 * var(--padding-md));
  }

  .quantity-breaks-container--row .quantity-break:not(.quantity-break--with-image) .quantity-break__cross-sells {
    width: calc(100% + 2 * var(--padding-md));
  }

  .quantity-breaks-container--column .quantity-break:not(.quantity-break--with-image) .quantity-break__cross-sells {
    width: calc(100% + 2 * var(--padding-xs));
  }

  .quantity-breaks-container--column {
    .quantity-break__cross-sells {
      padding: var(--padding-xs);
    }

    .quantity-break__cross-sell-image {
      display: none;
    }

    .quantity-break__cross-sell-info {
      flex-direction: column;
      align-items: flex-start;
      justify-content: flex-start;
      gap: var(--gap-xs);
    }

    .quantity-break__cross-sell-title {
      font-size: var(--font-body--size-small);
    }
  }

  .quantity-break--selected .quantity-break__cross-sells {
    display: flex;
  }

  .quantity-break__cross-sell {
    display: flex;
    align-items: center;
    width: 100%;
  }

  .quantity-break__cross-sell-image {
    flex-shrink: 0;
    margin-right: var(--margin-sm);
  }

  .quantity-break__cross-sell-image img {
    display: block;
    width: 34px;
    height: 34px;
    object-fit: cover;
    border-radius: calc(var(--card-border-radius) - var(--padding-sm));
  }

  .quantity-break__cross-sell-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap-xs);
    flex-wrap: wrap;
    flex: 1;
  }

  .quantity-break__cross-sell-title {
    font-size: var(--font-body--size);
    font-weight: 500;
  }

  .quantity-break__cross-sell-price {
    font-size: var(--font-body--size-small);
  }

  .quantity-break__cross-sell-price .price-container {
    justify-content: flex-start;
  }

  quantity-break-variant-picker {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;

    &:not(:last-child) {
      margin-bottom: 1rem;
    }

    .form__label {
      margin: 0;
    }

    .quantity-break__variant-picker-container__option--dropdown {
      display: flex;
      align-items: center;
      gap: 0.5rem;
    }
  }

  /* Refonte premium (brief "Réduction par quantité") — reprend le système
     de design du site : bordure fine, coins arrondis, badge en pastille
     olive (cohérent avec le badge du cross-sell), Poppins, hiérarchie de
     prix (prix réel dominant, prix barré plus petit et plus pâle).
     Couleurs/tailles pilotées par les réglages du bloc parent via
     variables CSS — entièrement personnalisable, comme le reste du site. */
  .quantity-break {
    border-color: var(--qb-card-border, #e4e1d6);
    border-radius: var(--qb-card-radius, 12px);
    font-family: 'Poppins', var(--font-body--family);
  }

  .quantity-break .badge.quantity-break__banner {
    background: var(--qb-badge-bg, #777d43);
    color: var(--qb-badge-text, #ffffff);
    border-radius: var(--qb-badge-radius, 6px);
    border: none;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    padding: 3px 8px;
    line-height: 1;
  }

  .quantity-break .price-container .prices .price {
    color: var(--qb-price-color, #1a1a1a);
    font-weight: 700;
  }

  .quantity-break .price-container .prices .compare-at-price {
    color: var(--qb-compare-color, #9a9a9a);
    font-weight: 400;
    font-size: 0.85em;
  }
/* END_BLOCK:_quantity-breaks-item */

/* START_BLOCK:_quantity-breaks (INDEX:124) */
.quantity-breaks {
    display: block;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  shopify-visual-preview-block-list .quantity-breaks[data-visual-preview-mode] {
    width: 450px;
  }

  .product-form__form .toggle-cross-sell:not(:first-of-type) {
    display: none;
  }

  .quantity-breaks-container {
    display: flex;
    flex-direction: row;
    gap: 10px;
  }

  .quantity-breaks-container.quantity-breaks-container--row {
    flex-direction: column;
  }

  .product-section__product-info:has(.quantity-breaks) .product-quantity-selector-block,
  .quantity-breaks--hidden {
    display: none;
  }

  .product-section__product-info:has(.quantity-breaks--with-variant-picker) variant-picker,
  .product-section__product-info:has(.quantity-breaks--with-variant-picker) .subscription {
    display: none;
  }
/* END_BLOCK:_quantity-breaks */

/* START_BLOCK:_slide (INDEX:126) */
.slide {
    display: flex;
    flex-direction: var(--direction);
    flex-wrap: var(--wrap);
    justify-content: var(--justify);
    align-items: var(--align_items);
    gap: var(--gap);
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    overflow: hidden;
    width: 100%;
    height: 100%;
  }
/* END_BLOCK:_slide */

/* START_BLOCK:_social-icon (INDEX:127) */
.social-icon__icon {
    transition: var(--animation-link-hover);
  }

  .social-icon__icon:hover {
    opacity: var(--opacity-link-hover);
  }
/* END_BLOCK:_social-icon */

/* START_BLOCK:_story (INDEX:128) */
.story {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    appearance: none;
    border: none;
    background-color: transparent;
    cursor: pointer;
    max-width: 65px;
    padding: 0;
    margin: 0;
  }

  .story__bubble {
    border-radius: 50%;
    position: relative;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    width: 55px;
    height: 55px;

    .icon {
      font-size: 32px !important;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      z-index: 2;
      color: white;
    }

    &:hover {
      transform: scale(102%);
    }

    &:before {
      width: 60px;
      height: 60px;
      content: '';
      background-color: #fff;
      border-radius: 50%;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      z-index: 2;
    }

    &:after {
      content: '';
      width: 65px;
      height: 65px;
      background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
      border-radius: 50%;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      z-index: 1;
    }

    img {
      z-index: 3;
      width: 55px;
      height: 55px;
      border-radius: 50%;
      position: relative;
      overflow: hidden;
      cursor: pointer;
      z-index: 2;
      object-fit: cover;
    }
  }

  .story__bubble-label {
    font-size: var(--font-body--size-small);
    padding: 0;
    margin: 0;
    color: var(--color-foreground);
  }

  .story-slider__slide {
    /* border-radius: var(--card-border-radius); */
    overflow: hidden;
  }

  .story-slider__slide img,
  .story-slider__slide video {
    aspect-ratio: 3/5;
    object-fit: cover;
    max-width: 100%;
    height: 100%;
  }

  .story__slider {
    height: 100%;

    & > .splide__track {
      height: 100%;
    }

    & > .splide__arrows > .splide__arrow {
      height: 100%;
      width: 50%;
      border: none;
      background-color: transparent;
      color: var(--color-foreground);
    }

    & > .splide__arrows > .splide__arrow--prev {
      left: 0;
      justify-content: flex-start;

      .icon {
        margin-left: 1rem;
      }
    }

    & > .splide__arrows > .splide__arrow--next {
      right: 0;
      justify-content: flex-end;

      .icon {
        margin-right: 1rem;
      }
    }

    .splide__arrow:disabled {
      opacity: 0.5;
    }
  }

  .story__header {
    position: absolute;
    left: 0;
    top: 0;
    padding: var(--padding-md);
    width: 100%;
    z-index: 1;
    background: linear-gradient(0deg, #0000 6.99%, #00000080 163.32%);

    /* Force GPU layer pour iOS */
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    will-change: transform;
  }

  .story__progress-bars {
    display: flex;
    flex-direction: row;
    gap: 3px;
  }

  .story__progress-bar {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    flex: 1;
    min-width: 0;
    height: 2.5px;
  }

  .story__progress-bar[value]::-webkit-progress-bar {
    background-color: rgb(from white r g b / 15%);
    border-radius: var(--card-border-radius);
  }

  .story__progress-bar[value]::-webkit-progress-value {
    background-color: white;
    border-radius: var(--card-border-radius);
  }

  .story__heading {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    padding: var(--margin-md) 0;
    gap: var(--gap-sm);
    font-size: var(--font-body--size-small);
    color: white;

    img {
      border-radius: 50%;
      width: 32px;
      height: 32px;
      object-fit: cover;
    }
  }
/* END_BLOCK:_story */

/* START_BLOCK:_subscription (INDEX:129) */
.subscription {
    display: block;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  shopify-visual-preview-block-list .subscription[data-visual-preview-mode] {
    width: 450px;
  }

  /* Par défaut Shopify affiche un message de consentement sous le bouton d'achat rapide, on le cache */
  #shopify-buyer-consent {
    display: none;
  }

  .subscription__options {
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }

  .subscription__option {
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
    padding: var(--padding-md);
    cursor: pointer;
    transition: border-color 0.2s ease;
    color: var(--color-input-text);
    background-color: var(--color-input-background);
    border: var(--inputs-border-width) solid var(--color-input-border);
  }

  .subscription__option.subscription__option--selected {
    border: var(--inputs-border-width) solid var(--color-selected-input-border);
  }

  .subscription__option-radio {
    display: flex;
    align-items: center;
    gap: var(--gap-xs);
  }

  .subscription__option .radio > .radio__label {
    font-size: var(--font-body--size);
    font-weight: 500;
  }

  .subscription__option-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--gap-sm);
    width: 100%;
  }

  .subscription__option-price {
    flex-shrink: 0;
  }

  .subscription__option-price .prices {
    font-size: var(--font-body--size);
  }

  .subscription__frequency {
    width: 100%;
  }

  .subscription__frequency-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-sm);
    border: none;
    padding: 0;
  }

  .subscription__frequency-button input {
    clip: rect(0, 0, 0, 0);
    overflow: hidden;
    position: absolute;
    height: 1px;
    width: 1px;
  }

  .subscription__frequency-button input + label {
    appearance: none;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    font-size: var(--variant-button-font-size);
    transition: all var(--animation-speed-medium) var(--animation-easing);
    color: var(--color-input-text);
    background-color: var(--color-input-background);
    border: var(--inputs-border-width) solid var(--color-input-border);
    font-weight: var(--button-primary-font-weight);
    text-transform: var(--button-primary-text-transform);
    letter-spacing: var(--button-letter-spacing);
    padding: calc(var(--button-padding-vertical) / 2) calc(var(--button-padding-horizontal) * var(--small-multiplier));
    min-height: calc(var(--small-multiplier) * var(--inputs-min-height));
    min-width: calc(var(--small-multiplier) * var(--inputs-min-width));
    border-radius: calc(var(--small-multiplier) * var(--button-border-radius));
  }

  .subscription__frequency-button input:checked + label {
    background-color: var(--color-selected-input-background);
    color: var(--color-selected-input-text);
    border-color: var(--color-selected-input-border);
  }

  .subscription__option-description p,
  .subscription__option-description ul li,
  .subscription__option-description ol li {
    font-size: var(--font-body--size-small);
  }

  .subscription__option-description p {
    margin: 0;
  }

  .subscription__option-description ul {
    margin: 0;
    padding-left: var(--padding-xs);
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--gap-xs);
  }

  .subscription__option-description ol {
    margin: 0;
    padding-left: calc(var(--padding-xs) * 2);
  }

  .subscription__option-description ul li {
    position: relative;
    padding-left: var(--padding-xs);
  }

  .subscription__option-description ul li::before {
    font-family: var(--icon-font);
    content: 'check';
    position: absolute;
    left: calc(-1 * var(--padding-xs));
  }
/* END_BLOCK:_subscription */

/* START_BLOCK:_tab (INDEX:130) */
.tab__button {
    appearance: none;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    min-height: var(--tab-button-min-height);
    width: max-content;
    font-size: var(--tab-button-font-size);
    outline: 1px solid transparent;
    transition: all var(--animation-speed-medium) var(--animation-easing);
    padding: var(--tab-button-padding-vertical) var(--tab-button-padding-horizontal);
    color: var(--color-tab-text);
    background-color: var(--color-tab-background);
    border: var(--tab-button-border-width) solid var(--color-tab-border);
    border-radius: calc(var(--small-multiplier) * var(--button-border-radius));
    font-weight: var(--button-primary-font-weight);
    text-transform: var(--button-primary-text-transform);
    letter-spacing: var(--button-letter-spacing);
  }

  .tab.active .tab__button {
    background-color: var(--color-selected-tab-background);
    color: var(--color-selected-tab-text);
    border-color: var(--color-selected-tab-border);
  }
/* END_BLOCK:_tab */

/* START_BLOCK:_toggle-cross-sell (INDEX:131) */
.toggle-cross-sell {
    display: block;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  shopify-visual-preview-block-list .toggle-cross-sell[data-visual-preview-mode] {
    width: 400px;
  }

  .product-form__form .toggle-cross-sell:not(:first-of-type) {
    display: none;
  }

  .toggle-cross-sell__content {
    margin-bottom: var(--margin-sm);
  }

  .toggle-cross-sell__description p {
    margin: 0;
    line-height: normal;
    font-size: var(--font-body--size);
  }

  .toggle-cross-sell__products {
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
    width: 100%;
  }

  .toggle-cross-sell__product {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    /* min-height: 50px; */
    gap: var(--gap-md);
    overflow: hidden;
    cursor: pointer;
    border-radius: var(--card-border-radius);
    padding: var(--padding-xs);
    color: var(--color-input-text);
    background-color: var(--color-input-background);
    border: var(--inputs-border-width) solid var(--color-input-border);
  }

  .toggle-cross-sell__product:has(input[type='checkbox']:checked) {
    border-color: var(--color-selected-input-border);
  }

  .toggle-cross-sell__product-image img {
    display: block;
    min-width: 55px;
    width: 55px;
    border-radius: calc(var(--card-border-radius) - var(--margin-sm));
  }

  .toggle-cross-sell__product-image--wide img {
    object-fit: cover;
    min-height: 100%;
    border-radius: 0;
  }

  .toggle-cross-sell__product-container {
    display: flex;
    flex-direction: row;
    cursor: auto;
    gap: var(--gap-sm);
  }

  .toggle-cross-sell__product-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--gap-sm);
  }

  .toggle-cross-sell__product-content--no-image {
    margin-left: var(--margin-sm);
  }

  .toggle-cross-sell__product-header {
    display: flex;
    gap: var(--gap-xs);
    flex-wrap: wrap;
    flex-direction: column;
  }

  .toggle-cross-sell__product-title {
    margin: 0;
    font-size: var(--font-body--size);
    font-weight: 500;
    text-decoration: none;
    color: inherit;
  }

  .toggle-cross-sell__product-price-container {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--gap-sm);
    font-size: var(--font-body--size-small);
  }

  .toggle-cross-sell__product .checkbox,
  .toggle-cross-sell__product .button {
    margin-right: var(--margin-sm);
  }

  .toggle-cross-sell__text-add,
  .toggle-cross-sell__text-added,
  .toggle-cross-sell__text-remove {
    display: none;
  }

  .toggle-cross-sell__product .button.button--secondary .toggle-cross-sell__text-add {
    display: block;
  }

  .toggle-cross-sell__product .button.button--active:not(:hover) .toggle-cross-sell__text-added {
    display: block;
  }

  .toggle-cross-sell__product .button.button--active:hover .toggle-cross-sell__text-remove {
    display: block;
  }
/* END_BLOCK:_toggle-cross-sell */

/* START_BLOCK:accordions (INDEX:132) */
.accordions {
    width: 100%;
  }

  shopify-visual-preview-block-list .accordions[data-visual-preview-mode] {
    width: 450px;
  }

  .accordion-block {
    flex: 1;
    width: 100%;
  }

  .accordions--dividers .accordion-block:not(:last-child) .accordion {
    border-bottom: var(--separator-border-width) solid var(--color-border);
  }

  .accordions--dividers .accordion .details-content {
    padding-block-end: var(--padding-sm);
  }

  .accordions--caret .accordion__icons-add,
  .accordions--add .icon--keyboard_arrow_down {
    display: none;
  }
/* END_BLOCK:accordions */

/* START_BLOCK:badges (INDEX:134) */
.badges {
    justify-content: var(--alignment-mobile);
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  @media (width > 750px) {
    .badges {
      justify-content: var(--alignment);
    }
  }
/* END_BLOCK:badges */

/* START_BLOCK:before-after (INDEX:135) */
.before-after-block {
    width: var(--width-mobile);
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    position: relative;
  }

  .before-after-block__container {
    position: relative;
    width: 100%;
    aspect-ratio: var(--ratio);
    overflow: hidden;
    border-radius: var(--card-border-radius);
  }

  .before-after-block__image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
  }

  .before-after-block__image--before {
    clip-path: inset(0 50% 0 0);
    transition: clip-path 0.1s ease-out;
  }

  .before-after-block__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .before-after-block__slider {
    position: absolute;
    top: 0;
    left: 50%;
    width: 4px;
    height: 100%;
    background-color: transparent;
    cursor: ew-resize;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .before-after-block__slider-line {
    width: 3px;
    height: 100%;
    background-color: var(--color-background);
  }

  .before-after-block__slider-handle {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 40px;
    height: 40px;
    background-color: var(--color-background);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: grab;
    transition: transform 0.1s ease-out;
    border: var(--button-secondary-border-width) solid var(--color-secondary-button-border);
  }

  .before-after-block__slider-handle:active {
    cursor: grabbing;
    transform: translate(-50%, -50%) scale(1.1);
  }

  .before-after-block__slider-icon {
    width: 16px;
    height: 16px;
    color: var(--color-text);
  }

  @media (width > 750px) {
    .before-after-block__slider-handle {
      width: 48px;
      height: 48px;
    }

    .before-after-block__slider-icon {
      width: 20px;
      height: 20px;
    }
  }

  .before-after-block__label {
    position: absolute;
    top: 1rem;
    pointer-events: none;
  }

  .before-after-block__label--before {
    left: 1rem;
  }

  .before-after-block__label--after {
    right: 1rem;
  }

  .before-after-block__label.badge--custom {
    background-color: var(--badge-custom-background);
    color: var(--badge-custom-text);
    border: var(--badge-primary-border-width) solid var(--badge-custom-border);
  }

  @media (width > 750px) {
    .before-after-block {
      width: var(--width-desktop);
    }
  }

  shopify-visual-preview-block-list .before-after-block[data-visual-preview-mode] {
    width: 100%;
    max-width: 600px;
  }
/* END_BLOCK:before-after */

/* START_BLOCK:benefices-produit (INDEX:137) */
.bp-wrap {
    display: flex;
    flex-direction: column;
    gap: var(--bp-row-gap);
    margin-top: var(--bp-margin-top);
    margin-bottom: var(--bp-margin-bottom);
    max-width: var(--bp-max-width);
    align-items: var(--bp-align);
    background: var(--bp-section-bg, transparent);
  }

  .bp-wrap--grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--bp-row-gap) 16px;
  }

  @media (width < 600px) {
    .bp-wrap--grid {
      grid-template-columns: 1fr;
    }
  }

  .bp-line {
    display: flex;
    align-items: center;
    gap: var(--bp-icon-text-gap);
    transition: transform 0.2s ease;
  }

  .bp-hover-on .bp-line:hover {
    transform: translateX(2px);
  }

  .bp-hover-on .bp-line:hover .bp-badge {
    filter: brightness(0.9);
  }

  .bp-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: var(--bp-badge-size);
    height: var(--bp-badge-size);
    background: var(--bp-badge-bg);
    box-shadow: var(--bp-badge-shadow);
    border: var(--bp-badge-border);
    color: var(--bp-icon-color);
    transition: filter 0.2s ease;
  }

  .bp-badge--circle .bp-badge { border-radius: 50%; }
  .bp-badge--rounded .bp-badge { border-radius: 8px; }
  .bp-badge--none .bp-badge {
    background: none;
    box-shadow: none;
    border: none;
    width: auto;
    height: auto;
    color: var(--bp-badge-bg);
  }

  .bp-badge .icon {
    font-variation-settings: 'FILL' 1, 'wght' var(--bp-icon-weight), 'GRAD' 0, 'opsz' 24;
    font-size: calc(var(--bp-badge-size) * 0.55);
  }

  .bp-badge--none .bp-badge .icon {
    font-size: 20px;
  }

  .bp-text {
    color: var(--bp-text-color);
    font-size: var(--bp-text-size);
    font-weight: var(--bp-text-weight);
    line-height: var(--bp-line-height);
    font-family: var(--bp-font-family, inherit);
  }

  /* Animation d'apparition : jamais cachee par defaut, seulement si le JS confirme
     pouvoir la piloter (voir script plus bas) et que le reglage est active. */
  .bp-wrap.bp-js-ready .bp-reveal {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
  }
  .bp-wrap.bp-js-ready.bp-is-visible .bp-reveal {
    opacity: 1;
    transform: translateY(0);
  }

  @media (prefers-reduced-motion: reduce) {
    .bp-wrap.bp-js-ready .bp-reveal {
      opacity: 1;
      transform: none;
      transition: none;
    }
  }
/* END_BLOCK:benefices-produit */

/* START_BLOCK:button (INDEX:138) */
.button-block {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .button-block--full-width {
    width: 100%;
  }
/* END_BLOCK:button */

/* START_BLOCK:collection-featured (INDEX:139) */
.block-collection-featured {
    width: 100%;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  shopify-visual-preview-block-list .block-collection-featured .splide__arrow {
    display: none !important;
  }

  .block-collection-featured__inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .block-collection-featured__grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    gap: var(--gap-md);
  }

  @media (width > 750px) {
    .block-collection-featured__grid {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }
/* END_BLOCK:collection-featured */

/* START_BLOCK:collections-featured (INDEX:140) */
.block-collections-featured {
    width: 100%;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .block-collections-featured__inner {
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .block-collections-featured__grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    gap: var(--gap-md);
  }

  @media (width > 750px) {
    .block-collections-featured__grid {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }
/* END_BLOCK:collections-featured */

/* START_BLOCK:contact-form (INDEX:141) */
.contact-form {
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
    width: 100%;
  }

  shopify-visual-preview-block-list .contact-form[data-visual-preview-mode] {
    max-width: 500px;
  }
/* END_BLOCK:contact-form */

/* START_BLOCK:copyright (INDEX:142) */
.footer-copyright {
    display: flex;
    align-items: center;
    justify-content: var(--alignment-mobile);
  }

  @media (width > 750px) {
    .footer-copyright {
      justify-content: var(--alignment);
    }
  }

  .footer-copyright__text,
  .footer-copyright__text > a {
    color: var(--color-foreground);
    text-decoration: none;
    font-size: var(--font-body--size-small);
  }

  .footer-copyright__text > a {
    transition: var(--animation-link-hover);

    &:hover {
      opacity: var(--opacity-link-hover);
    }
  }
/* END_BLOCK:copyright */

/* START_BLOCK:countdown (INDEX:143) */
.countdown {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    padding: var(--padding-md);
  }

  .countdown:not(.card) {
    padding: 0;
    background-color: inherit;
    color: inherit;
  }

  shopify-visual-preview-block-list .countdown[data-visual-preview-mode] {
    width: 300px;
  }

  date-counter {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--gap-sm);
    margin: 0;
  }

  .countdown__timer {
    display: flex;
    gap: var(--gap-sm);
    width: 100%;
    justify-content: center;
  }

  .countdown__timer-card:not(:last-child)::after {
    content: '';
    position: absolute;
    right: calc(-1 * var(--gap-sm) / 2 - 1px);
    top: calc(50%);
    transform: translateY(-50%);
    width: 1.5px;
    border-radius: 3px;
    height: 60%;
    background-color: var(--color-foreground);
    opacity: 0.2;
  }

  .countdown__timer--background .countdown__timer-card:not(:last-child)::after,
  .countdown__timer--border .countdown__timer-card:not(:last-child)::after {
    display: none;
  }

  .countdown__timer-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: fit-content;
    position: relative;
  }

  .countdown__timer-value {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 var(--padding-md) var(--padding-xxs);
    height: calc(var(--countdown-timer-font-size) + var(--padding-xxs));
    border-radius: 3px;
    line-height: 1;
    font-weight: var(--countdown-timer-font-weight);
    font-size: var(--countdown-timer-font-size);
  }

  .countdown__timer--background .countdown__timer-value {
    background-color: var(--color-foreground);
    color: var(--color-background);
    padding: var(--padding-sm);
    margin-bottom: var(--margin-xs);
  }

  .countdown__timer--border .countdown__timer-value {
    background-color: var(--color-background);
    border: 1px solid var(--color-border);
    padding: var(--padding-sm);
    margin-bottom: var(--margin-xs);
  }

  .countdown__timer-label {
    font-size: 10px;
    text-align: center;
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    opacity: 0.8;
  }

  .countdown__timer-ended p {
    font-weight: 500;
  }
/* END_BLOCK:countdown */

/* START_BLOCK:custom-code (INDEX:145) */
.custom-code-block {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }
/* END_BLOCK:custom-code */

/* START_BLOCK:delivery-estimation (INDEX:146) */
.delivery-estimation {
    display: block;
    font-size: var(--font-body--size);
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  shopify-visual-preview-block-list .delivery-estimation[data-visual-preview-mode] {
    width: 300px;
  }

  .delivery-estimation__content {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    align-items: center;
    justify-content: var(--alignment-mobile);

    .icon {
      font-size: 18px !important;
      width: 18px !important;
      height: 18px !important;
      margin-right: var(--margin-xs);
    }
  }

  @media (width > 750px) {
    .delivery-estimation__content {
      justify-content: var(--alignment);
    }
  }
/* END_BLOCK:delivery-estimation */

/* START_BLOCK:filters-and-sort (INDEX:147) */
.filter-and-sort--loading .filter-list,
  .filter-and-sort--loading sort-component,
  .filter-and-sort--loading sort-inline-component,
  .filter-and-sort--loading .filters__clear-all {
    opacity: 0.5;
    pointer-events: none;
  }

  .filter-and-sort__inline,
  .filter-and-sort__sidebar {
    display: none;
  }

  .filter-and-sort__sort-only {
    display: flex;
    justify-content: flex-end;
    width: 100%;
  }

  @media (width > 750px) {
    .filter-and-sort:not(.filter-and-sort--menu) .filter-and-sort__mobile {
      display: none;
    }

    .filter-and-sort--inline .filter-and-sort__inline {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: var(--gap-sm);
    }

    .filter-and-sort--sidebar .filter-and-sort__sidebar {
      display: block;
    }

    .filter-and-sort--sidebar.filter-and-sort--sticky .filter-and-sort__sidebar {
      height: fit-content;
      position: sticky;
      top: calc(var(--header-height, 0px) + var(--padding-md));
    }
  }
/* END_BLOCK:filters-and-sort */

/* START_BLOCK:group (INDEX:148) */
.group {
    gap: var(--gap-mobile);
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    overflow: hidden;
    width: var(--width-mobile);
  }

  .group.card {
    padding: var(--padding-vertical) var(--padding-horizontal);
  }

  shopify-visual-preview-block-list .group[data-visual-preview-mode] {
    width: 100%;
    max-width: 450px;
  }

  .group--flex {
    display: flex;
    flex-direction: var(--direction-mobile);
    flex-wrap: var(--wrap-mobile);
    justify-content: var(--justify-mobile);
    align-items: var(--align_items-mobile);
  }

  .group--grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    grid-template-rows: auto;
  }

  .group--glass {
    padding: var(--padding-vertical) var(--padding-horizontal);
    border-radius: var(--glass-radius);
    background: var(--glass-bg-fallback);
    border: var(--glass-border-width) solid var(--glass-border-color);
    box-shadow: var(--glass-shadow);
    box-sizing: border-box;
    overflow: visible;
  }

  @supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
    .group--glass {
      background: var(--glass-bg);
      backdrop-filter: blur(var(--glass-blur));
      -webkit-backdrop-filter: blur(var(--glass-blur));
    }
  }

  @media (width > 750px) {
    .group {
      gap: var(--gap);
      width: var(--width);
    }

    .group--flex {
      flex-direction: var(--direction);
      flex-wrap: var(--wrap);
      justify-content: var(--justify);
      align-items: var(--align_items);
    }

    .group--grid {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
    }
  }
/* END_BLOCK:group */

/* START_BLOCK:icon-with-text (INDEX:149) */
.icon-with-text {
    display: flex;
    gap: var(--gap-mobile);
    overflow: hidden;
    width: 100%;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .icon-with-text .text-block {
    margin-top: 0;
    margin-bottom: 0;
  }

  .icon-with-text--row-mobile {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
  }

  .icon-with-text--column-mobile {
    flex-direction: column;
    align-items: center;
    justify-content: center;

    .text-block.paragraph p {
      text-align: center;
    }
  }

  shopify-visual-preview-block-list .icon-with-text[data-visual-preview-mode] {
    width: 100%;
    max-width: 350px;
  }

  .text-block.paragraph p {
    font-weight: var(--font-weight);
  }

  .text-block.paragraph a {
    color: inherit;
  }

  @media (width > 750px) {
    .icon-with-text {
      gap: var(--gap);
    }

    .icon-with-text--row-desktop {
      flex-direction: row;
      align-items: center;
      justify-content: flex-start;

      .text-block.paragraph p {
        text-align: left;
      }
    }

    .icon-with-text--column-desktop {
      flex-direction: column;
      align-items: center;
      justify-content: center;

      .text-block.paragraph p {
        text-align: center;
      }
    }
  }
/* END_BLOCK:icon-with-text */

/* START_BLOCK:image-card (INDEX:151) */
.image-card {
    position: relative;
    overflow: hidden;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    text-decoration: none;
    color: var(--color-foreground);
    width: 100%;
    height: 100%;
    display: block;

    &.card {
      padding: 0;
    }
  }

  shopify-visual-preview-block-list .image-card[data-visual-preview-mode] {
    width: 350px;
  }

  .image-card__image-filter {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color);
    opacity: calc(var(--opacity) / 100);
    z-index: 1;
  }

  .image-card__image {
    position: absolute;
    width: 100%;
    height: 100%;

    img,
    .placeholder-image {
      height: 100%;
      width: 100%;
      object-fit: cover;
      object-position: center center;
      border-radius: 0;
      overflow: hidden;
      position: relative;
    }
  }

  .image-card__content-wrapper {
    position: relative;
    width: 100%;
    z-index: 2;
    padding: var(--card-padding);
    height: 100%;

    .image-card__content {
      width: 100%;
      min-height: var(--image-height);
      height: 100%;
      display: flex;
      flex-direction: column;
      gap: var(--gap-xxs);
      justify-content: var(--justify);
      align-items: var(--align_items);
    }
  }

  /* L'overlay passe au-dessus du filtre */
  .image-card .stretched-link__overlay {
    z-index: 2;
  }
  /* Le content-wrapper reste visuellement au-dessus, 
   mais transparent aux clics */
  .image-card.stretched-link .image-card__content-wrapper {
    z-index: 3;
    pointer-events: none;
  }
  /* Les éléments interactifs récupèrent les clics */
  .image-card.stretched-link .image-card__content-wrapper a,
  .image-card.stretched-link .image-card__content-wrapper button,
  .image-card.stretched-link .image-card__content-wrapper input,
  .image-card.stretched-link .image-card__content-wrapper select,
  .image-card.stretched-link .image-card__content-wrapper summary {
    pointer-events: auto;
  }

  @media (width > 750px) {
    .image-card__content {
      padding: var(--padding-vertical) var(--padding-horizontal);
    }
  }
/* END_BLOCK:image-card */

/* START_BLOCK:image (INDEX:152) */
.image-block {
    width: var(--width-mobile);

    @media (width > 750px) {
      width: var(--width-desktop);
    }
  }

  .image-block__image {
    object-fit: cover;
    aspect-ratio: var(--ratio);
    width: 100%;
  }

  .image-block__image--rounded {
    border-radius: var(--card-border-radius);
  }

  .image-block--height-fill .image-block__image {
    height: 100%;
  }

  /* Correctif "fallback d'image cassé sur la bannière de collection" :
     fond uni neutre remplaçant l'icône de remplacement surdimensionnée
     pour toute collection sans image. Mêmes règles de dimensionnement
     que .image-block__image (aspect-ratio + width: 100%) pour ne jamais
     déborder du conteneur, quel que soit l'écran ; display: block
     nécessaire car c'est une <div>, pas un <img>, sans comportement
     de mise en page intrinsèque par défaut. */
  .image-block__collection-fallback {
    display: block;
    background-color: #f7f6f3;
  }

  /*
    Refonte visuelle du bloc "Image avec texte" en bas de page collection
    (brief "Refonte visuelle du guide complet") : l'image reste visible
    ("collée") pendant que le texte associé défile à côté, desktop
    uniquement, plutôt que de disparaître en haut de page dès les
    premiers paragraphes. Scoped sous .collection-hero-image-sticky
    (réglage "Classe additionnelle" du bloc image, templates/collection.json)
    pour ne toucher AUCUNE autre image du site.
  */
  @media (width > 750px) {
    .image-block.collection-hero-image-sticky {
      position: sticky;
      top: 32px;
      align-self: flex-start;
    }
  }

  /* Le "collage" n'est pas une animation, mais on désactive quand même
     l'effet si l'utilisateur préfère un mouvement réduit, comme demandé
     pour tout effet sticky/transition ajouté à cette section. */
  @media (prefers-reduced-motion: reduce) {
    .image-block.collection-hero-image-sticky {
      position: static;
    }
  }
/* END_BLOCK:image */

/* START_BLOCK:information-slider (INDEX:153) */
.slider-block {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    overflow: hidden;
    width: 100%;
  }

  shopify-visual-preview-block-list .slider-block[data-visual-preview-mode] {
    width: 400px;
  }

  .slider-block--with-pagination {
    padding-bottom: var(--margin-lg);

    &.slider-block--with-pagination-on-left {
      padding-bottom: 0;

      .splide__pagination {
        right: 0;
        left: auto;
        bottom: 50%;
        transform: translateY(50%);
        align-items: center;
        padding: 0;
      }

      .splide__pagination li {
        display: flex;
        align-items: center;
        justify-content: center;
      }
    }
  }
/* END_BLOCK:information-slider */

/* START_BLOCK:logo (INDEX:154) */
.block__logo {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }
/* END_BLOCK:logo */

/* START_BLOCK:marquee (INDEX:155) */
.marquee {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    width: 100%;
  }

  /* Quand la barre est un enfant direct d'une section qui a page-width, on lui fait prendre toute la largeur de la page */
  .page-width > .marquee {
    margin-left: calc(-1 * var(--page-margin-desktop));
    width: calc(100% + 2 * var(--page-margin-desktop));
  }

  marquee-component {
    display: block;
    width: 100%;
    overflow: hidden;
  }

  .marquee__wrapper {
    display: flex;
    gap: var(--marquee-gap);
    width: fit-content;
    white-space: nowrap;
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .marquee__content {
    min-width: max-content;
    display: flex;
    gap: var(--marquee-gap);
  }

  .marquee__content :is(p, h1, h2, h3, h4, h5, h6) {
    white-space: nowrap;
  }

  .marquee__content .marquee__repeated-items * {
    max-width: none;
  }

  .marquee__repeated-items {
    min-width: max-content;
    display: flex;
    gap: var(--marquee-gap);
    align-items: center;
    justify-content: center;
  }

  .marquee__repeated-items > * {
    align-content: center;
  }

  @media (prefers-reduced-motion: no-preference) {
    marquee-component:not([data-disabled]) .marquee__wrapper {
      animation: marquee-motion var(--marquee-speed) linear infinite var(--marquee-direction);
    }
  }

  @keyframes marquee-motion {
    to {
      transform: translate3d(calc(-50% - (var(--marquee-gap) / 2)), 0, 0);
    }
  }
/* END_BLOCK:marquee */

/* START_BLOCK:menu (INDEX:156) */
.menu-block {
    display: flex;
    justify-content: var(--alignment-mobile);
    margin: var(--margin-top) 0 var(--margin-bottom) 0;
  }

  @media (width > 750px) {
    .menu-block {
      justify-content: var(--alignment);
    }
  }

  .menu-block__content {
    display: flex;
    flex-direction: column;
    gap: var(--gap-md);
  }

  .menu-block__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: var(--menu-direction);
    gap: var(--gap-md);
  }

  .menu-block__item {
    margin: 0;
  }

  .menu-block__link {
    text-decoration: none;
    color: var(--color-foreground);
    font-size: var(--font-body--size);
    font-weight: var(--font-body--weight);
    transition: var(--animation-link-hover);

    &:hover {
      opacity: var(--opacity-link-hover);
    }
  }

  .menu-block__link--underlined {
    text-decoration: underline;
  }

  /* ---------- Cohérence visuelle des colonnes de liens ---------- */
  .footer-menu .menu-block__link {
    font-size: var(--font-body--size);
    font-weight: var(--font-body--weight);
  }

  /* ---------- Pied de page : survol olive, focus & zones tactiles ---------- */
  .footer {
    --footer-accent: #777d43;
  }

  .footer a {
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
  }

  .footer a:hover,
  .footer a:focus-visible {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-decoration-color: var(--footer-accent, #777d43);
    text-underline-offset: 0.2em;
  }

  .footer a:focus-visible,
  .footer button:focus-visible {
    outline: 2px solid var(--footer-accent, #777d43);
    outline-offset: 2px;
    border-radius: 2px;
  }

  @media (width <= 750px) {
    .footer .menu-block__link {
      display: inline-flex;
      align-items: center;
      min-height: 44px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .footer a {
      transition: none;
    }
  }
/* END_BLOCK:menu */

/* START_BLOCK:newsletter-signup (INDEX:157) */
shopify-visual-preview-block-list .newsletter-signup[data-visual-preview-mode] {
    width: 300px;
    max-width: 100%;
  }

  .newsletter-signup {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    width: 100%;
  }

  .newsletter-signup__form {
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }
/* END_BLOCK:newsletter-signup */

/* START_BLOCK:payment-methods (INDEX:158) */
.payment-methods {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--gap-xs);
    margin: var(--margin-top) 0 var(--margin-bottom) 0;
    width: 100%;
    justify-content: var(--alignment-mobile);
  }

  shopify-visual-preview-block-list .payment-methods[data-visual-preview-mode] {
    width: max-content;
  }

  @media (width > 750px) {
    .payment-methods {
      justify-content: var(--alignment);
    }
  }

  /* Largeur = référence (taille inchangée) ; hauteur proportionnelle (ratio 24/38 ≈ 0.63)
     + object-fit: contain pour qu'Amex ne s'étire pas sans déformer son logo interne. */
  .payment-methods svg {
    width: var(--icon-size);
    height: calc(var(--icon-size) * 0.63);
    object-fit: contain;
  }
/* END_BLOCK:payment-methods */

/* START_BLOCK:powered-by-fullstack (INDEX:160) */
.powered-by-fullstack {
    display: flex;
    flex-direction: row;
    align-items: center;
    width: 100%;
    justify-content: var(--alignment-mobile);
  }

  @media (width > 750px) {
    .powered-by-fullstack {
      justify-content: var(--alignment);
    }
  }

  .powered-by-fullstack-minimal {
    color: var(--color-foreground);
    font-size: var(--font-body--size);
    text-decoration: underline;
    transition: var(--animation-link-hover);

    &:hover {
      opacity: var(--opacity-link-hover);
    }
  }

  .powered-by-fullstack-badge {
    border: 1px solid lightgray;
    border-radius: 4px;
    padding: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.5s ease;
    background-color: white;
    position: relative;
    overflow: hidden;
    margin: 2px;
    width: 120px;
  }

  .powered-by-fullstack-badge::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -100%;
    width: 200%;
    height: 200%;
    background: linear-gradient(0deg, transparent, transparent 30%, rgba(255, 255, 255, 0.5));
    transform: rotate(-45deg);
    transition: all 0.5s ease;
    opacity: 0;
  }

  .powered-by-fullstack-badge:hover {
    transform: scale(1.02);
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
  }

  .powered-by-fullstack-badge:hover::before {
    opacity: 1;
    transform: rotate(-45deg) translateY(150%);
  }
/* END_BLOCK:powered-by-fullstack */

/* START_BLOCK:product-gift-banner (INDEX:163) */
.pgb-wrap {
    position: relative;
    display: flex;
    align-items: stretch;
    background: var(--pgb-block-bg);
    border: 1px solid var(--pgb-border-color);
    border-radius: var(--pgb-block-radius);
    box-shadow: var(--pgb-shadow);
    overflow: hidden;
    margin-top: var(--pgb-margin-top);
    margin-bottom: var(--pgb-margin-bottom);
  }

  .pgb-link {
    position: absolute;
    inset: 0;
    z-index: 2;
    border-radius: inherit;
  }

  .pgb-link:focus-visible {
    outline: 2px solid var(--pgb-pill-bg);
    outline-offset: 2px;
  }

  /* Disposition "row" (défaut) : icône + "OFFERT" côte à côte, pastille basse.
     Largeur, espacements et taille d'icône sont 100% pilotés par les curseurs
     du personnalisateur (réglages "Pastille « OFFERT »" ci-dessous). */
  .pgb-pill {
    flex-shrink: 0;
    width: var(--pgb-pill-width);
    background: var(--pgb-pill-bg);
    border-radius: var(--pgb-pill-radius) 0 0 var(--pgb-pill-radius);
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: var(--pgb-pill-gap);
    padding: var(--pgb-pill-padding-v) var(--pgb-pill-padding-h);
    transition: transform 250ms ease, filter 250ms ease;
  }

  /* Disposition "column" : icône au-dessus du texte (ancien gabarit). */
  .pgb-pill--stacked {
    flex-direction: column;
  }

  .pgb-wrap--hover:hover .pgb-pill {
    transform: scale(1.03);
    filter: brightness(1.06);
  }

  .pgb-pill__icon {
    display: inline-flex;
    color: var(--pgb-pill-icon-color);
  }

  .pgb-pill__icon .icon {
    font-size: var(--pgb-icon-size, 18px) !important;
  }

  .pgb-pill__label {
    font-family: var(--pgb-offert-font, inherit);
    font-size: var(--pgb-offert-size);
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--pgb-pill-text-color);
    text-transform: uppercase;
  }

  .pgb-content {
    flex: 1;
    display: flex;
    align-items: center;
    gap: var(--pgb-gap-thumb-text);
    padding: var(--pgb-padding);
    min-width: 0;
  }

  .pgb-thumb {
    flex-shrink: 0;
    width: var(--pgb-thumb-size);
    height: var(--pgb-thumb-size);
    border-radius: var(--pgb-thumb-radius);
    border: 1px solid var(--pgb-thumb-border-color);
    overflow: hidden;
    display: inline-flex;
    background: #ffffff;
  }

  .pgb-thumb__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .pgb-text {
    min-width: 0;
  }

  /* Titre réel du produit offert, tronqué proprement sur 2 lignes (…) —
     même approche de troncature que les cartes d'articles / produits du thème. */
  .pgb-title {
    font-family: var(--pgb-title-font, inherit);
    font-size: var(--pgb-title-size);
    font-weight: var(--pgb-title-weight);
    color: var(--pgb-title-color);
    line-height: 1.3;
    margin: 0 0 var(--pgb-gap-title-price) 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .pgb-price-line {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 0;
  }

  .pgb-price-compare {
    font-family: var(--pgb-price-font, inherit);
    font-size: var(--pgb-compare-size);
    color: var(--pgb-compare-color);
    text-decoration: line-through;
  }

  .pgb-price-free {
    font-family: var(--pgb-price-font, inherit);
    font-size: var(--pgb-free-size);
    font-weight: var(--pgb-free-weight);
    color: var(--pgb-free-color);
  }

  /* Animation d'apparition au défilement */
  .pgb-wrap--animated {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 500ms ease, transform 500ms ease;
  }

  .pgb-wrap--animated.pgb-is-visible {
    opacity: 1;
    transform: translateY(0);
  }

  @media (prefers-reduced-motion: reduce) {
    .pgb-wrap--animated {
      opacity: 1;
      transform: none;
      transition: none;
    }

    .pgb-pill {
      transition: none;
    }

    .pgb-wrap--hover:hover .pgb-pill {
      transform: none;
    }
  }

  @media (width < 480px) {
    .pgb-pill {
      width: calc(var(--pgb-pill-width) * 0.75);
    }
  }
/* END_BLOCK:product-gift-banner */

/* START_BLOCK:product-inventory (INDEX:164) */
.product-inventory {
    display: block;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  shopify-visual-preview-block-list .product-inventory[data-visual-preview-mode] {
    width: 150px;
  }

  .product-inventory__status {
    display: flex;
    align-items: center;
    gap: var(--gap-sm);
    font-size: var(--font-body--size);
  }

  .product-inventory__status--left {
    justify-content: flex-start;
  }

  .product-inventory__status--right {
    justify-content: flex-end;
  }

  .product-inventory__status--center {
    justify-content: center;
  }

  .product-inventory__icon,
  .product-inventory__icon svg {
    width: 15px;
    height: 15px;
  }

  .product-inventory__icon-low {
    color: orange;
  }

  .product-inventory__icon-in_stock {
    color: green;
  }

  .product-inventory__icon-out_of_stock {
    color: red;
  }

  .product-inventory__icon circle:first-of-type {
    opacity: 0.3;
  }
/* END_BLOCK:product-inventory */

/* START_BLOCK:product-mini-card (INDEX:165) */
.product-mini-card {
    display: flex;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    padding: 0;
    overflow: hidden;
    text-decoration: none;
    color: var(--color-foreground);
    font-size: var(--font-body--size);
    transition: transform 0.2s ease-in-out;
    padding: var(--padding-xs);
  }

  .product-mini-card--column {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--gap-sm);
    max-width: 150px;

    .product-mini-card__content {
      text-align: center;

      .price-container {
        text-align: center;
        justify-content: center;
      }
    }
  }

  .product-mini-card--row {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    width: max-content;
    max-width: 100%;
  }

  .this-pack-contains_product-list .product-mini-card {
    min-width: max-content;
  }

  a.product-mini-card:hover {
    transform: translateY(-2px);
  }

  shopify-visual-preview-block-list .product-mini-card[data-visual-preview-mode] {
    width: 300px;
  }

  .product-mini-card__image {
    border-radius: calc(var(--card-border-radius) - var(--padding-xs));
    object-fit: cover;
    height: var(--height);
    width: var(--width);
  }

  .product-mini-card__content {
    display: flex;
    flex-direction: column;
    gap: var(--gap-xs);
    padding: 0 var(--padding-xs);
  }

  .product-mini-card__title {
    font-weight: 500;
  }
/* END_BLOCK:product-mini-card */

/* START_BLOCK:product-photo-reviews-carousel (INDEX:166) */
.pap-wrap {
    max-width: 100%;
  }

  .pap-title {
    margin: 0 0 12px;
    font-size: 1rem;
    font-weight: 700;
    color: var(--pap-title-color, var(--color-foreground));
  }

  .pap-scroller {
    position: relative;
  }

  .pap-track {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scroll-behavior: smooth;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
  }

  .pap-track:focus-visible {
    outline: 2px solid var(--pap-title-color, currentColor);
    outline-offset: 4px;
  }

  .pap-card {
    scroll-snap-align: start;
    flex: 0 0 var(--pap-card-width, 220px);
    max-width: var(--pap-card-width, 220px);
    background: var(--pap-card-bg, #f7f6f3);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: var(--pap-card-radius, 8px);
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    box-sizing: border-box;
  }

  .pap-card__photo {
    display: block;
    width: 100%;
    aspect-ratio: var(--pap-photo-ratio, 4 / 3);
    border-radius: calc(var(--pap-card-radius, 8px) - 4px);
    overflow: hidden;
    background: rgba(0, 0, 0, 0.05);
  }

  /* Avis sans photo (CORRECTIF — pool global) : la carte s'étire à la
     hauteur de ses voisines (flex par défaut sur .pap-track), un peu de
     respiration en haut évite un rendu trop collé aux étoiles. */
  .pap-card--no-photo {
    padding-top: 18px;
  }

  .pap-card__photo-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .pap-card__stars {
    font-size: var(--pap-star-size, 13px);
    gap: var(--pap-star-gap, 2px);
  }

  .pap-card__stars .ac-star {
    transform: translate(var(--rating-star-offset-x, 0px), var(--rating-star-offset-y, 0px));
  }

  .pap-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .pap-card__text {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--color-foreground);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .pap-card__name {
    margin-top: auto;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-foreground);
    opacity: 0.75;
  }

  .pap-fade {
    position: absolute;
    top: 0;
    bottom: 4px;
    width: 28px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 150ms ease;
    z-index: 1;
  }

  .pap-fade--start {
    left: 0;
    background: linear-gradient(to right, var(--color-background, #fff), transparent);
  }

  .pap-fade--end {
    right: 0;
    background: linear-gradient(to left, var(--color-background, #fff), transparent);
  }

  .pap-scroller[data-pap-fade-start="true"] .pap-fade--start,
  .pap-scroller[data-pap-fade-end="true"] .pap-fade--end {
    opacity: 1;
  }

  .pap-progress {
    position: relative;
    height: 3px;
    margin-top: 8px;
    background: rgba(0, 0, 0, 0.08);
    border-radius: 3px;
    overflow: hidden;
  }

  .pap-progress__fill {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background: var(--pap-title-color, #777d43);
    border-radius: 3px;
  }

  @media (prefers-reduced-motion: reduce) {
    .pap-track {
      scroll-behavior: auto;
    }
  }
/* END_BLOCK:product-photo-reviews-carousel */

/* START_BLOCK:product-price (INDEX:167) */
product-price {
    display: flex;
    flex-direction: column;
    min-height: calc(2 * var(--padding-xxs) + var(--font-body--size-small) + var(--badge-primary-border-width) * 2);
    justify-content: center;
  }
/* END_BLOCK:product-price */

/* START_BLOCK:product-quantity-promo (INDEX:168) */
.qty-promo {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: var(--qty-promo-margin-top) 0 var(--qty-promo-margin-bottom);
    padding: 10px 14px;
    background: var(--qty-promo-bg);
    border: 1px solid var(--qty-promo-border);
    border-radius: 8px;
  }

  @media (prefers-reduced-motion: no-preference) {
    .qty-promo {
      animation: qty-promo-in 0.35s ease-out;
    }
  }

  @keyframes qty-promo-in {
    from {
      opacity: 0;
      transform: translateY(-4px);
    }

    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .qty-promo__icon {
    flex-shrink: 0;
    display: inline-flex;
    color: var(--qty-promo-text);
    font-size: 20px;
  }

  .qty-promo__icon .icon {
    font-size: 20px;
  }

  .qty-promo__text {
    margin: 0;
    color: var(--qty-promo-text);
    font-size: var(--qty-promo-font-size);
    font-weight: 600;
    line-height: 1.3;
  }
/* END_BLOCK:product-quantity-promo */

/* START_BLOCK:product-selection-note (INDEX:169) */
.psn-note {
    line-height: 1.4;
    font-style: italic;
  }
/* END_BLOCK:product-selection-note */

/* START_BLOCK:rating-stars (INDEX:171) */
.rating-stars__link {
    text-decoration: none;
    color: inherit;
  }

  .rating--empty .rating__count--empty {
    color: var(--rating-text-color, #8a8a8a);
    opacity: 0.75;
  }

  /* Option "Fond translucide" (voir réglage add_contrast_backdrop) : pastille
     semi-transparente derrière le groupe étoiles + note, utile quand ce bloc
     est posé sur une image ou un fond peu contrasté (ex. bannière hero en
     glassmorphism) — la couleur des étoiles elle-même (--rating-star-color)
     ne change JAMAIS, seul un repli de lisibilité est ajouté derrière. Opt-in
     uniquement : n'affecte aucune instance existante tant qu'il n'est pas
     activé explicitement sur ce bloc précis. */
  .rating-stars--backdrop {
    display: inline-flex;
    align-items: center;
    background: rgba(255, 255, 255, 0.15);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    border-radius: 999px;
    padding: 6px 14px;
  }
/* END_BLOCK:rating-stars */

/* START_BLOCK:review (INDEX:172) */
.review {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  shopify-visual-preview-block-list .review[data-visual-preview-mode] {
    width: 400px;
  }
/* END_BLOCK:review */

/* START_BLOCK:reviews-badge (INDEX:173) */
.reviews-badge {
    width: fit-content;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  shopify-visual-preview-block-list .reviews-badge[data-visual-preview-mode] {
    max-width: 400px;
  }

  .reviews-badge a {
    text-decoration: none;
    color: inherit;
  }

  .reviews-badge_badge {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--badge-gap, var(--gap-sm));
    background-color: transparent;
  }

  .reviews-badge_badge--wrapped {
    border-radius: var(--badge-border-radius);
    padding: var(--badge-padding-v, var(--padding-sm)) var(--badge-padding-h, var(--padding-md));
    background-color: var(--color-background);
    height: auto;
    min-height: 40px;
  }

  .reviews-badge_stars:has(.icon) {
    height: auto;
    display: flex;
    align-items: center;
    gap: 3px;
  }

  .reviews-badge_stars:has(.reviews-badge_stars-manual) {
    height: auto;
    display: flex;
    align-items: center;
  }

  .reviews-badge_stars svg {
    width: calc(var(--badge-star-size, 20px) * 4.5);
  }

  .reviews-badge_stars .icon {
    font-size: var(--badge-star-size, 20px) !important;
    font-variation-settings: 'FILL' 0, 'wght' var(--icon-weight), 'GRAD' 0, 'opsz' 20;
  }

  .reviews-badge_stars .icon--star,
  .reviews-badge_stars .icon--star-filled {
    color: var(--rating-star-color, var(--color-stars-icons));
  }

  .reviews-badge_stars .icon--google {
    color: #fbbc05;
  }

  .reviews-badge_stars .icon--star-filled {
    font-variation-settings: 'FILL' 1, 'wght' var(--icon-weight), 'GRAD' 0, 'opsz' 20;
  }

  /* Habillage "carré" (CORRECTIF #6 bis) : uniquement pour le style
     "Personnalisé" du bloc — le style "Google" garde ses icônes rondes
     natives (.icon--google exclu), sinon on lui écraserait sa propre
     charte visuelle. */
  .reviews-badge_stars .icon--star:not(.icon--google),
  .reviews-badge_stars .icon--star-filled:not(.icon--google) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--badge-star-size, 20px);
    height: var(--badge-star-size, 20px);
    border-radius: var(--badge-star-shape, var(--rating-star-tile-radius, 18%));
    background-color: var(--badge-star-color-empty, var(--rating-star-color-empty, #DCDCE6));
    color: #fff;
    font-size: calc(var(--badge-star-size, 20px) * 0.65) !important;
    transform: translate(var(--badge-star-offset-x, 0px), var(--badge-star-offset-y, 0px));
  }

  .reviews-badge_stars .icon--star-filled:not(.icon--google),
  .reviews-badge_stars .icon--star_half:not(.icon--google) {
    background-color: var(--badge-star-color-filled, var(--rating-star-color, var(--color-stars-icons)));
  }

  /* Note manuelle décimale (style "Personnalisé" uniquement) : deux rangées
     de tuiles superposées, la rangée "remplie" étant recadrée au pourcentage
     exact de la note — même technique que .ac-rating__stars dans la section
     "Avis clients", pour un rendu identique quelle que soit la valeur (ex.
     4,8/5), y compris entre deux paliers de demi-étoile. */
  .reviews-badge_stars-manual {
    position: relative;
    display: inline-block;
    font-size: var(--badge-star-size, 20px);
    line-height: 1;
  }

  .reviews-badge_stars-manual-empty,
  .reviews-badge_stars-manual-filled {
    display: flex;
    gap: 3px;
  }

  .reviews-badge_star-tile {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
    flex: none;
    border-radius: var(--badge-star-shape, var(--rating-star-tile-radius, 18%));
    transform: translate(var(--badge-star-offset-x, 0px), var(--badge-star-offset-y, 0px));
    color: #fff;
    font-size: 0.55em;
    line-height: 1;
  }

  .reviews-badge_stars-manual-empty .reviews-badge_star-tile {
    background-color: var(--badge-star-color-empty, var(--rating-star-color-empty, #DCDCE6));
  }

  .reviews-badge_stars-manual-filled {
    position: absolute;
    top: 0;
    left: 0;
    width: var(--badge-fill);
    overflow: hidden;
    white-space: nowrap;
  }

  .reviews-badge_stars-manual-filled .reviews-badge_star-tile {
    background-color: var(--badge-star-color-filled, var(--rating-star-color, #00B67A));
  }

  .reviews-badge_logo img,
  .reviews-badge_logo svg {
    width: 100%;
    max-height: 20px;
  }

  .reviews-badge_logo .trustpilot-logo {
    max-width: 80px;
  }

  .reviews-badge_stars svg,
  .reviews-badge_logo svg {
    display: flex;
  }

  .reviews-badge_logo .trustpilot-logo {
    margin-top: -5px;
  }

  .reviews-badge_text-1,
  .reviews-badge_text-2,
  .reviews-badge_manual-number {
    font-size: var(--badge-text-size, var(--font-body--size));
  }

  .reviews-badge_manual-number {
    font-weight: 600;
    color: var(--badge-manual-number-color, inherit);
  }

  .reviews-badge_text-1 {
    margin-right: var(--badge-text-1-offset, 0px);
  }

  .reviews-badge_text-2 {
    margin-left: var(--badge-text-2-offset, 0px);
  }

  .reviews-badge_text-1 p,
  .reviews-badge_text-2 p {
    margin: 0;
  }

  @media screen and (max-width: 768px) {
    .reviews-badge_badge {
      gap: var(--badge-gap, 7px);
    }

    .reviews-badge_badge--wrapped {
      padding: var(--badge-padding-v, 10px) var(--badge-padding-h, 15px);
    }

    .reviews-badge_text-1,
    .reviews-badge_text-2 {
      font-size: calc(var(--badge-text-size, var(--font-body--size-small)) * 0.9);
    }

    .reviews-badge_logo img,
    .reviews-badge_logo svg {
      width: 100%;
      max-width: 80px;
    }
  }

  @media screen and (max-width: 390px) {
    .reviews-badge_text-1 {
      display: none;
    }
  }
/* END_BLOCK:reviews-badge */

/* START_BLOCK:separator (INDEX:174) */
.separator-block {
    width: 100%;
  }

  shopify-visual-preview-block-list .separator-block[data-visual-preview-mode] {
    width: 150px;
  }
/* END_BLOCK:separator */

/* START_BLOCK:slider (INDEX:175) */
.slider-block {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    overflow: hidden;
    width: 100%;
  }

  shopify-visual-preview-block-list .slider-block[data-visual-preview-mode] {
    width: 400px;
  }

  .slider-block--with-pagination {
    padding-bottom: var(--margin-lg);
  }
/* END_BLOCK:slider */

/* START_BLOCK:social-icons (INDEX:176) */
.social-icons {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    display: flex;
    justify-content: var(--alignment-mobile);
    gap: var(--gap-md);
    align-items: center;
    width: 100%;
  }

  @media (width > 750px) {
    .social-icons {
      justify-content: var(--alignment);
    }
  }

  shopify-visual-preview-block-list .social-icons[data-visual-preview-mode] {
    width: max-content;
  }

  .social-icon__icon {
    width: var(--icon-size);
    height: var(--icon-size);
    fill: var(--icon-color);
    transition: var(--animation-link-hover);
  }

  .social-icon__icon:hover {
    opacity: var(--opacity-link-hover);
  }
/* END_BLOCK:social-icons */

/* START_BLOCK:stories (INDEX:177) */
.stories {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    display: block;
  }

  .stories__container {
    display: flex;
    flex-direction: row;
    justify-content: var(--alignment-mobile);
    gap: 20px;
    overflow-x: auto;
    scrollbar-width: none;
    padding: 6px;
  }

  @media (width > 750px) {
    .stories__container {
      justify-content: var(--alignment);
    }
  }

  .stories__modal {
    padding: 0;
    width: 100%;
    max-width: 100vw;
    height: 100vh;
    background-color: transparent;
    justify-content: center;
    align-items: center;
    overflow: hidden;
  }

  .stories__modal:focus-visible,
  .stories__modal:focus {
    outline: none;
  }

  .stories__modal::backdrop {
    transition: backdrop-filter var(--animation-speed-medium) var(--animation-easing);
    -webkit-backdrop-filter: brightness(1);
    backdrop-filter: brightness(1);
    background: rgba(var(--color-shadow));
  }

  .stories__modal[open]::backdrop {
    animation: backdropFilter var(--animation-speed-medium) var(--animation-easing) forwards;
    transition: opacity var(--animation-speed-medium) var(--animation-easing);
  }

  .stories__modal[open] {
    display: flex;
    animation: modalSlideInTop var(--animation-speed-medium) var(--animation-easing) forwards;
  }

  .stories__modal-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-color: #0000004d;
    cursor: pointer;
    transition: background-color 0.2s ease-in-out;
    margin-bottom: 1em;
    pointer-events: all;
    backdrop-filter: blur(6.5px);
    z-index: 40;
    position: absolute;
    top: 2rem;
    right: 1rem;

    .icon {
      color: var(--color-background);
    }
  }

  @media (width <= 750px) {
    .stories__modal {
      padding: 40px 20px 0;
    }
  }

  .stories__slider {
    margin: 0 calc(40px + 2rem);
    height: 90vh;
    max-width: 100%;
    aspect-ratio: 3 / 5;

    & > .splide__track > .splide__list > .splide__slide {
      overflow: hidden;
    }

    & > .splide__track {
      overflow: hidden;
      height: 100%;
      border-radius: var(--card-border-radius);
    }

    & .stories__slider-list > .splide__slide:not(.is-active) {
      overflow: hidden;
    }

    & > .splide__arrows > .splide__arrow--prev {
      left: calc(-40px - 1rem);
    }

    & > .splide__arrows > .splide__arrow--next {
      right: calc(-40px - 1rem);
    }

    .splide__arrow:disabled {
      opacity: 0.5;
    }
  }

  @media (width <= 750px) {
    .stories__slider {
      margin: 0;
      height: calc(100vh - 60px);
    }
  }
/* END_BLOCK:stories */

/* START_BLOCK:tabs (INDEX:178) */
.tabs {
    width: 100%;
  }

  shopify-visual-preview-block-list .tabs[data-visual-preview-mode] {
    width: 400px;
  }

  .tabs__navigation {
    display: flex;
    justify-content: var(--alignment-mobile);
    max-width: 100%;
  }

  .tabs--wrapped .tabs__navigation-inner {
    flex-wrap: wrap;
  }

  .tabs__navigation-inner {
    display: flex;
    gap: var(--gap-sm);
    overflow-x: auto;
    scrollbar-width: thin;
    padding-bottom: var(--padding-sm);
  }

  .tabs__panel {
    margin-top: var(--margin-md);
    width: 100%;
  }

  @media (width > 750px) {
    .tabs__navigation {
      justify-content: var(--alignment);
    }

    .tabs__navigation-inner {
      padding-bottom: var(--padding-xxs);
    }
  }
/* END_BLOCK:tabs */

/* START_BLOCK:text (INDEX:179) */
.text-block {
    text-align: var(--text-align-mobile);
    align-content: center;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    overflow-wrap: break-word;
    word-break: break-word;
  }

  @media (width > 750px) {
    .text-block {
      text-align: var(--text-align);
    }
  }

  shopify-visual-preview-block-list .text-block[data-visual-preview-mode] {
    max-width: 400px;
  }

  .text-block.paragraph > *,
  .see-more__content > * {
    font-weight: var(--font-weight);
    font-size: var(--font-size);
  }

  .text-block a {
    color: inherit;
    overflow-wrap: break-word;
    word-break: break-word;
  }

  see-more-component {
    display: block;
    margin-block: 0 !important;
  }

  .see-more__content {
    position: relative;
  }

  .see-more__content > * {
    margin-block: var(--margin-md) 0;
  }

  .see-more__content {
    /* Solution principale avec mask CSS */
    mask: linear-gradient(to bottom, black calc(100% - 40px), transparent 100%);
    -webkit-mask: linear-gradient(to bottom, black calc(100% - 40px), transparent 100%);
    transition: mask 0.3s ease, -webkit-mask 0.3s ease;
  }

  /* Fallback pour les navigateurs qui ne supportent pas mask */
  @supports not (mask: linear-gradient(black, transparent)) {
    .see-more__content::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      height: 40px;
      background: linear-gradient(transparent, color-mix(in srgb, var(--color-background) 90%, transparent));
      opacity: 1;
      transition: opacity 0.3s ease;
      pointer-events: none;
    }

    .see-more__content--expanded::after,
    .see-more__content--no-overflow::after {
      opacity: 0;
    }
  }

  .see-more__content--expanded,
  .see-more__content--no-overflow {
    mask: none;
    -webkit-mask: none;
  }

  .see-more__toggle {
    background: none;
    border: none;
    color: var(--color-foreground);
    cursor: pointer;
    font-size: 0.9em;
    font-weight: 500;
    margin-top: 0.5rem;
    padding: 0.25rem 0;
    text-decoration: underline;
    transition: var(--animation-link-hover);
  }

  .see-more__toggle:hover {
    opacity: var(--opacity-link-hover);
  }

  .see-more__toggle-text {
    display: inline-block;
    text-decoration: underline;
  }

  .text-block--truncated {
    display: -webkit-box;
    -webkit-line-clamp: var(--truncate-length);
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /*
    Refonte visuelle du bloc "Image avec texte" en bas de page collection
    (brief "Refonte visuelle du guide complet"). Reprend, sans dupliquer,
    le même système de titres H2 à bordure olive déjà utilisé pour le
    corps des articles de blog (voir sections/article-body-premium.liquid,
    classe .article-rte, variables --arte-accent / --arte-border-w).

    Tout est scoped sous .collection-seo-content (réglage "Classe
    additionnelle" du bloc de texte concerné, dans templates/collection.json)
    pour ne modifier AUCUN autre bloc de texte du site.
  */
  .text-block.collection-seo-content h2 {
    margin: 32px 0 12px;
    font-family: var(--font-heading--family, inherit);
    font-size: 20px;
    font-weight: 600;
    line-height: 1.3;
    color: #1a1a1a;
    border-left: 3px solid #777d43;
    padding-left: 12px;
  }

  .text-block.collection-seo-content h2:first-child {
    margin-top: 0;
  }

  .text-block.collection-seo-content h3 {
    margin: 26px 0 10px;
    font-family: var(--font-heading--family, inherit);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.3;
    color: #1a1a1a;
    border-left: 3px solid #777d43;
    padding-left: 12px;
  }

  .text-block.collection-seo-content p {
    margin: 0 0 16px;
    line-height: 1.7;
  }

  .text-block.collection-seo-content p:last-child {
    margin-bottom: 0;
  }

  /*
    Distinction vrai lien / simple mot-clé en gras : un <strong> perd son
    gras générique (poids normal), qu'il entoure un lien ou non — un <a>,
    lui, redevient systématiquement visible (gras + souligné + olive),
    même s'il est imbriqué dans un <strong>. Aucune modification du HTML
    de la description n'est nécessaire : la distinction se fait ici, par
    CSS, uniquement à partir de la vraie sémantique lien vs. emphase.
  */
  .text-block.collection-seo-content strong,
  .text-block.collection-seo-content b {
    font-weight: 400;
  }

  .text-block.collection-seo-content a {
    font-weight: 600;
    color: #777d43;
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  .text-block.collection-seo-content a:hover {
    opacity: var(--opacity-link-hover, 0.75);
  }

  .text-block.collection-seo-content a:focus-visible {
    outline: 2px solid #777d43;
    outline-offset: 2px;
    border-radius: 2px;
  }

  /*
    Mise en avant façon citation pour UNE phrase clé par section (chiffre
    marquant, phrase de synthèse) — à poser manuellement dans la
    description de collection : <blockquote class="collection-seo-callout">…</blockquote>
  */
  .text-block.collection-seo-content blockquote.collection-seo-callout {
    margin: 20px 0;
    padding: 2px 0 2px 16px;
    border-left: 3px solid #777d43;
    font-style: normal;
    font-weight: 500;
    line-height: 1.6;
    color: #1a1a1a;
  }
/* END_BLOCK:text */

/* START_BLOCK:this-pack-contains (INDEX:180) */
.this-pack-contains {
    display: flex;
    flex-direction: column;
    font-size: var(--font-body--size);
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  shopify-visual-preview-block-list .this-pack-contains[data-visual-preview-mode] {
    width: 450px;
  }

  .this-pack-contains__title {
    font-weight: 500;
  }

  .this-pack-contains_description {
    margin-top: var(--margin-xs);
  }

  .this-pack-contains_product-list {
    display: flex;
    gap: var(--gap-sm);
    width: 100%;
    overflow-y: auto;
    padding: var(--padding-sm) 0;
  }
/* END_BLOCK:this-pack-contains */

/* START_BLOCK:video (INDEX:181) */
deferred-media {
    width: var(--size-style-width-mobile, var(--size-style-width));
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);

    @media screen and (width >750px) {
      width: var(--size-style-width);
    }
  }

  .video-placeholder-wrapper {
    position: relative;
    border-radius: var(--card-border-radius);
    overflow: hidden;
    width: var(--size-style-width-mobile, var(--size-style-width));
    aspect-ratio: var(--ratio);
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);

    @media screen and (width >750px) {
      width: var(--size-style-width);
    }
  }

  .video-placeholder-wrapper__poster-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: transparent;
    border: none;
    transition: var(--animation-link-hover);

    .icon--play_circle {
      font-size: 60px !important;
      color: var(--color-primary-button-text);
    }
  }
/* END_BLOCK:video */

/* CSS from snippet stylesheet tags */
/* START_SNIPPET:accordion (INDEX:183) */
accordion-row:has(.accordion__heading-title:empty),
  accordion-row:has(.accordion__content:empty) {
    display: none;
  }

  .accordion__header {
    display: flex;
    align-items: center;
    cursor: pointer;
    list-style: none;
    transition: margin 150ms ease-out;
    padding: var(--margin-sm) 0;

    /* Masquer la flèche par défaut sur tous les navigateurs */
    &::-webkit-details-marker {
      display: none;
    }

    &::marker {
      display: none;
    }

    /* Fix spécifique pour iOS Safari */
    &::-webkit-details-marker,
    &::before {
      display: none !important;
    }
  }

  .accordion__header .icon,
  .accordion__header .accordion__icons-add {
    margin-inline-start: auto;
    transition: transform var(--animation-speed-fast) var(--animation-easing);
  }

  .accordion[open] .accordion__header .icon--keyboard_arrow_down {
    transform: rotate(180deg);
  }

  .accordion[open] .accordion__header .icon--add {
    transform: rotate(90deg);
  }

  .accordion:not([open]) .accordion__header .icon--remove,
  .accordion[open] .accordion__header .icon--add {
    display: none;
  }

  .accordion[open] .accordion__header .icon--remove,
  .accordion:not([open]) .accordion__header .icon--add {
    display: block;
  }

  .accordion__heading {
    font-size: var(--font-body--size-emphasized);
    display: flex;
    align-items: center;
    gap: var(--gap-sm);
  }

  .accordion__heading .icon {
    font-size: 20px !important;
  }

  .accordion__content {
    padding: 0 0 var(--margin-md);
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }
/* END_SNIPPET:accordion */

/* START_SNIPPET:add-to-wishlist-button (INDEX:184) */
.product-quantity-selector-block[data-visual-preview-mode] {
    width: 100px;
  }

  .add-to-wishlist-button__icon {
    font-variation-settings: 'FILL' 0, 'wght' var(--icon-weight), 'GRAD' 0, 'opsz' 24;
  }

  .add-to-wishlist-button__icon--filled {
    font-variation-settings: 'FILL' 1, 'wght' var(--icon-weight), 'GRAD' 0, 'opsz' 24;
  }
/* END_SNIPPET:add-to-wishlist-button */

/* START_SNIPPET:article-card (INDEX:188) */
.article-card {
    display: flex;
    flex-direction: column;
    gap: var(--gap);
    width: 100%;
    overflow: hidden;
    text-decoration: none;
    transition: transform 0.2s ease-in-out;
    color: var(--color-foreground);
  }

  .article-card[data-visual-preview-mode] {
    max-width: 280px;
  }

  @media (width > 750px) {
    .article-card:hover {
      transform: translateY(-2px);
    }
  }
/* END_SNIPPET:article-card */

/* START_SNIPPET:cart-icon (INDEX:191) */
.header__icon-cart {
    position: relative;
    cursor: pointer;
  }
/* END_SNIPPET:cart-icon */

/* START_SNIPPET:checkbox (INDEX:193) */
.checkbox {
    z-index: 0;
    position: relative;
    display: block;
    line-height: var(--checkbox-size);
  }

  .checkbox > input {
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    z-index: -1;
    position: absolute;
    left: -8px;
    top: -8px;
    display: block;
    margin: 0;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    box-shadow: none;
    outline: none;
    opacity: 0;
    transform: scale(1);
    pointer-events: none;
    transition: opacity 0.3s, transform 0.2s;
  }

  .checkbox > span {
    display: flex;
    align-items: center;
    width: 100%;
    cursor: pointer;
    font-size: var(--font-body--size-emphasized);
  }

  .checkbox__additionnal-label-content {
    margin-right: var(--margin-sm);
  }

  .checkbox > span::before {
    content: '';
    display: inline-block;
    box-sizing: border-box;
    margin-right: var(--margin-sm);
    border: var(--inputs-border-width) solid var(--color-input-text);
    border-radius: var(--checkbox-border-radius);
    min-width: var(--checkbox-size);
    width: var(--checkbox-size);
    height: var(--checkbox-size);
    vertical-align: top;
    transition: border-color 0.2s, background-color 0.2s;
    background-color: var(--color-input-background);
  }

  .checkbox > span:empty::before {
    margin-right: 0;
  }

  .checkbox > span::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 1px;
    width: 0.6rem;
    height: 0.3rem;
    border: solid 1.5px transparent;
    border-right: none;
    border-top: none;
    transform: translate(0.22rem, 0.32rem) rotate(-45deg);
  }

  .checkbox > input:checked + span::before,
  .checkbox > input:indeterminate + span::before {
    border-color: var(--color-input-text);
    background-color: var(--color-input-text);
  }

  .checkbox > input:checked + span::after,
  .checkbox > input:indeterminate + span::after {
    border-color: var(--color-input-background);
  }

  .checkbox > input:indeterminate + span::after {
    border-left: none;
    transform: translate(0.25rem, 0.1875rem);
  }

  .checkbox > input:focus {
    opacity: 0.12;
  }

  .checkbox > input:disabled {
    opacity: 0;
  }

  .checkbox > input:disabled + span {
    color: var(--color-input-text);
    cursor: initial;
    opacity: 0.5;
  }

  .checkbox > input:disabled + span::before {
    border-color: currentColor;
    cursor: not-allowed;
  }

  .checkbox > input:checked:disabled + span::before,
  .checkbox > input:indeterminate:disabled + span::before {
    border-color: transparent;
    background-color: currentColor;
  }

  .checkbox > input:checked:disabled + span::after {
    border-color: var(--color-input-background);
    cursor: not-allowed;
  }
/* END_SNIPPET:checkbox */

/* START_SNIPPET:collection-card (INDEX:194) */
.collection-card {
    display: flex;
    flex-direction: column;
    gap: var(--gap);
    width: 100%;
    overflow: hidden;
    text-decoration: none;
    transition: transform 0.2s ease-in-out;
    position: relative;
    cursor: pointer;
    color: var(--color-foreground);
  }

  .collection-card[data-visual-preview-mode] {
    max-width: 280px;
  }

  @media (width > 750px) {
    .collection-card:hover {
      transform: translateY(-2px);
    }
  }
/* END_SNIPPET:collection-card */

/* START_SNIPPET:compat-explainer (INDEX:196) */
.compat-explainer {
    max-width: 900px;
    margin: 0 auto;
  }

  .compat-explainer__header {
    text-align: center;
    margin-bottom: var(--margin-lg, 24px);
  }

  .compat-explainer__title {
    margin: 0 0 var(--margin-xs, 8px);
    font-size: var(--font-h3--size, 1.75rem);
    font-family: var(--font-h3--family);
    font-weight: var(--font-h3--weight);
    color: var(--color-foreground);
  }

  .compat-explainer__subtitle {
    margin: 0 auto;
    max-width: 560px;
    font-size: var(--font-body--size, 1rem);
    line-height: 1.5;
    color: var(--color-foreground);
    opacity: 0.75;
  }

  .compat-explainer__cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--gap-md, 16px);
  }

  @media (width > 750px) {
    .compat-explainer__cards {
      grid-template-columns: 1fr 1fr;
    }
  }

  .compat-explainer__card {
    border: 1px solid var(--color-border, #e5e3dc);
    border-radius: var(--card-border-radius, 8px);
    padding: var(--padding-lg, 24px);
    background: var(--color-background, #ffffff);
  }

  .compat-explainer__badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border: 1px solid #777d43;
    border-radius: 8px;
    color: #777d43;
    font-size: var(--font-body--size-small, 0.8rem);
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    margin-bottom: var(--margin-sm, 12px);
  }

  .compat-explainer__card-title {
    margin: 0 0 var(--margin-xs, 8px);
    font-size: var(--font-h5--size, 1.25rem);
    font-family: var(--font-h5--family);
    font-weight: var(--font-h5--weight);
    color: var(--color-foreground);
  }

  .compat-explainer__card-text {
    margin: 0;
    font-size: var(--font-body--size, 1rem);
    line-height: 1.6;
    color: var(--color-foreground);
    opacity: 0.85;
  }
/* END_SNIPPET:compat-explainer */

/* START_SNIPPET:discount-badge (INDEX:198) */
.discount-badge {
    display: inline-flex;
    align-items: center;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
    padding: 4px 10px;
    border-radius: var(--discount-badge-radius, 6px);
    background: var(--discount-badge-bg, #777d43);
    color: var(--discount-badge-text-color, #ffffff);
    white-space: nowrap;
  }
/* END_SNIPPET:discount-badge */

/* START_SNIPPET:dropdown-localization (INDEX:199) */
dropdown-component .dropdown-localization__toggle {
    gap: 3px;
    font-size: var(--font-body--size-emphasized);

    .icon-flag {
      width: 14px;
      height: 14px;
      clip-path: circle(50%);
      background-position: center;
      background-size: cover;
      margin-inline-end: 4px;
      position: relative;
    }
  }

  dropdown-component .dropdown-localization-content {
    min-width: 240px;
    padding: var(--padding-sm);
  }

  @media (width <= 1000px) {
    dropdown-component .dropdown-localization__toggle {
      width: 100%;
      padding: var(--padding-sm) var(--padding-xs);
    }

    dropdown-component .dropdown-localization-content {
      position: fixed;
      top: auto;
      bottom: 0;
      left: 0;
      width: 100%;
      min-width: 100%;
      border-bottom-left-radius: 0;
      border-bottom-right-radius: 0;
    }
  }
/* END_SNIPPET:dropdown-localization */

/* START_SNIPPET:filter-list (INDEX:201) */
.filter-list {
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }

  .filter-list__swatch {
    background: var(--swatch-background);
    width: 16px;
    height: 16px;
    display: block;
    border-radius: 50%;
  }
/* END_SNIPPET:filter-list */

/* START_SNIPPET:filter-price-range (INDEX:202) */
.filter-price-range {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--gap-sm);
  }

  .filter-price-range__field {
    display: flex;
    align-items: center;
    gap: var(--gap-sm);
  }

  .filter-price-range__field .textfield input {
    width: 100px;
    min-width: 100px;
  }
/* END_SNIPPET:filter-price-range */

/* START_SNIPPET:filters-inline (INDEX:203) */
.filters__container {
    display: flex;
    align-items: center;
    gap: var(--gap-sm);
  }

  .filters__list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--gap-sm);
  }

  .filter-dropdown-toggle {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  .filter-dropdown-toggle__label {
    display: flex;
    align-items: center;
    gap: 4px;
  }

  .filter-count {
    background-color: var(--color-primary-button-background);
    color: var(--color-primary-button-text);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    font-size: var(--font-body--size-small);
  }

  dropdown-component .filter-dropdown-content {
    min-width: fit-content;
    padding: var(--padding-md);
  }

  .filter-clear-button {
    margin-top: var(--margin-md);
  }

  /* Pills olive (brief "Réorganisation collection Accessoires" — barre de
     filtres cohérente avec le design system : boutons/pills olive, coins
     arrondis 4-8px, pas d'ovale). Ne recode aucun filtrage : ceci ne fait
     que styler le déclencheur du système de filtres natif Shopify déjà en
     place (dropdown-component/filter-dropdown-toggle). État actif reprend
     le même attribut data-open déjà utilisé pour la flèche du dropdown
     dans assets/base.css (dropdown-component[data-open='true']), pour
     rester cohérent avec ce pattern existant plutôt que d'en ajouter un
     nouveau. */
  .filter-dropdown-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: var(--padding-xxs, 6px) var(--padding-sm, 12px);
    border: 1px solid #777d43;
    border-radius: 8px;
    background: transparent;
    color: var(--color-foreground);
    transition: background-color var(--animation-speed-medium, 0.15s) var(--animation-easing, ease-in-out),
      color var(--animation-speed-medium, 0.15s) var(--animation-easing, ease-in-out);
  }

  .filter-dropdown-toggle:hover,
  dropdown-component[data-open='true'] .filter-dropdown-toggle {
    background-color: #777d43;
    color: #ffffff;
  }

  @media (prefers-reduced-motion: reduce) {
    .filter-dropdown-toggle {
      transition: none;
    }
  }
/* END_SNIPPET:filters-inline */

/* START_SNIPPET:filters-modal (INDEX:204) */
.side-menu__toggle-link {
    display: flex;
    align-items: center;
    gap: var(--gap-sm);
    background-color: transparent;
    color: var(--color-foreground);
    border: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
  }

  .filters-side-panel {
    overflow-y: auto;
    height: 100%;
    padding: 20px;
  }
/* END_SNIPPET:filters-modal */

/* START_SNIPPET:filters-sidebar (INDEX:205) */
.filters-sidebar__list {
    display: flex;
    flex-direction: column;
  }

  .filters-sidebar__filter-label {
    display: block;
    font-size: var(--font-body--size-emphasized);
    font-weight: 600;
    margin-bottom: var(--margin-sm);
  }
/* END_SNIPPET:filters-sidebar */

/* START_SNIPPET:header-actions (INDEX:207) */
.header__actions {
    display: flex;
    align-items: center;
    gap: 1rem;
    height: var(--header-height);
  }

  .header__actions a {
    text-decoration: none;
    color: inherit;
  }

  .header__actions .dropdown-toggle:hover {
    opacity: 1;
  }

  .header__icon {
    height: 24px;
  }

  @media (width < 1000px) {
    .header__actions .dropdown-localization,
    .header__actions .search-popup,
    .header__actions .header__icon-account {
      display: none;
    }
  }
/* END_SNIPPET:header-actions */

/* START_SNIPPET:header-menu-desktop (INDEX:208) */
.header__menu-desktop {
    display: none;
  }

  @media (width > 1000px) {
    .header__menu-desktop {
      display: flex;
    }

    .header__menu-desktop-list {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      column-gap: 1rem;
      row-gap: 0.33rem;
      height: 100%;
    }

    .header__menu-mobile {
      display: none;
    }
  }

  /* Variables locales (couleur de marque + pastilles d'icônes) */
  .header__menu-desktop-list {
    --menu-accent: #777D43;
    --res-icon-bg: #F1F0E8;
    --res-icon-size: 30px;
  }

  .header__menu-desktop-list--uppercase .header__menu-link-text {
    text-transform: uppercase;
  }

  .header__menu-link-text {
    font-weight: var(--font-weight);
  }

  /* --- Soulignement olive actif / survol (éléments de 1er niveau) --- */
  .header__menu-desktop-list > a.header__menu-link,
  .header__menu-desktop-list > .header__menu-item > .header__menu-link--parent {
    position: relative;
    padding-bottom: 4px;
  }

  .header__menu-desktop-list > a.header__menu-link::after,
  .header__menu-desktop-list > .header__menu-item > .header__menu-link--parent::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: var(--menu-accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.2s ease;
  }

  .header__menu-desktop-list > a.header__menu-link:hover::after,
  .header__menu-desktop-list > a.header__menu-link:focus-visible::after,
  .header__menu-desktop-list > a.header__menu-link[aria-current="page"]::after,
  .header__menu-desktop-list > .header__menu-item:hover > .header__menu-link--parent::after,
  .header__menu-desktop-list > .header__menu-item > .header__menu-link--parent:focus-visible::after,
  .header__menu-desktop-list > .header__menu-item > .header__menu-link--parent.header__menu-link--active::after {
    transform: scaleX(1);
  }

  @media (prefers-reduced-motion: reduce) {
    .header__menu-desktop-list > a.header__menu-link::after,
    .header__menu-desktop-list > .header__menu-item > .header__menu-link--parent::after {
      transition: none;
    }
  }

  /* Sous-menus */
  .header__submenu-link--parent .icon {
    transition: transform var(--animation-speed) var(--animation-easing);
    font-size: 22px !important;
  }

  .header__submenu-accordion summary {
    transition: var(--animation-link-hover);
  }

  .header__submenu-accordion summary:hover {
    opacity: var(--opacity-link-hover);
  }

  /* Liens dans les sous-menus */
  .header__submenu-link {
    display: block;
    padding: var(--padding-xs) 0;
    font-size: var(--font-body--size);
    text-decoration: none;
    color: inherit;
  }

  .header__menu-item--dropdown .header__submenu-link {
    padding: var(--padding-xs);
    border-radius: calc(var(--inputs-border-radius) * var(--small-multiplier));
    transition: background-color var(--animation-speed) var(--animation-easing);
  }

  .header__menu-item--dropdown .header__submenu-link:hover {
    background-color: var(--color-input-border-low-opacity);
  }

  /* Accordéons dans les sous-menus */
  .header__submenu-accordion {
    width: 100%;
  }

  .header__submenu-accordion summary {
    list-style: none;
    cursor: pointer;
  }

  .header__submenu-accordion summary::-webkit-details-marker {
    display: none;
  }

  .header__submenu-link--parent {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .header__submenu-accordion[open] > summary .icon {
    transform: rotate(180deg);
  }

  .header__subsubmenu {
    padding: 0 var(--padding-sm);
  }

  /* --- Dropdown "Ressources" : 2 colonnes + icônes rondes --- */
  .header__menu-item--resources .dropdown-content.header__resources {
    padding: var(--padding-md, 1rem);
    min-width: 440px;
    max-width: min(560px, calc(100vw - 2rem));
    left: auto;
    right: 0;
  }

  .header__resources-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--gap-lg, 2rem);
  }

  .header__resources-eyebrow {
    margin: 0 0 var(--padding-sm, 0.5rem);
    font-size: var(--eyebrow-font-size, 0.72rem);
    line-height: 1.2;
    letter-spacing: var(--eyebrow-letter-spacing, 0.12em);
    text-transform: var(--eyebrow-text-transform, uppercase);
    font-weight: var(--eyebrow-font-weight, 600);
    color: var(--eyebrow-color, var(--menu-accent));
  }

  .header__resources-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .header__resources-link {
    display: flex;
    align-items: center;
    gap: var(--gap-sm, 0.75rem);
    padding: var(--padding-xs, 0.4rem);
    border-radius: calc(var(--inputs-border-radius, 8px) * var(--small-multiplier, 1));
    text-decoration: none;
    color: inherit;
    transition: background-color var(--animation-speed) var(--animation-easing);
  }

  .header__resources-link:hover,
  .header__resources-link:focus-visible {
    background-color: var(--color-input-border-low-opacity);
  }

  .header__resources-link:focus-visible {
    outline: 2px solid var(--menu-accent);
    outline-offset: 2px;
  }

  .header__resources-icon {
    flex-shrink: 0;
    width: var(--res-icon-size);
    height: var(--res-icon-size);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--res-icon-bg);
    color: var(--menu-accent);
  }

  .header__resources-icon svg {
    width: 16px;
    height: 16px;
  }

  .header__resources-label {
    font-size: var(--font-body--size);
  }

  @media (prefers-reduced-motion: reduce) {
    .header__resources-link {
      transition: none;
    }
  }

  /* Megamenu */
  .header__menu-item--megamenu {
    position: static;
  }

  dropdown-component .dropdown-content.header__submenu--megamenu {
    width: 100%;
    top: calc(var(--header-offset-height) - var(--separator-border-width));
    left: 0;
    border: 0;
    border-bottom: var(--separator-border-width) solid var(--color-border);
    border-radius: 0;
  }

  .header__submenu--megamenu__content {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: var(--gap-md);
    width: 100%;
    max-width: var(--page-width);
    margin: 0 auto;
    padding: var(--padding-sm) var(--page-margin-desktop);
    max-height: 80vh;
    overflow-y: auto;
  }

  .header__submenu--megamenu__item {
    flex: 1;
  }

  .header__submenu--megamenu__item .header__submenu-link {
    font-size: var(--font-body--size);
  }

  .header__submenu--megamenu__item .header__submenu-link--parent {
    font-size: var(--font-body--size-emphasized);
    font-weight: 500;
  }

  .header__submenu-image-link {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--gap-sm);
    transition: var(--animation-link-hover);

    img {
      width: 100%;
      object-fit: cover;
      border-radius: var(--card-border-radius);
      aspect-ratio: var(--image-ratio);
    }

    &:hover {
      opacity: var(--opacity-link-hover);
    }
  }

  .header__submenu-image-title {
    font-size: var(--font-body--size);
    font-weight: 500;
  }
/* END_SNIPPET:header-menu-desktop */

/* START_SNIPPET:loading-spinner (INDEX:211) */
.loading__spinner {
    position: absolute;
    z-index: 1;
    width: 18px;
    display: inline-block;
    color: black;
    left: calc(50% - 9px);
    display: none;
  }

  .is-loading {
    cursor: wait;
    position: relative;
    opacity: 0.7;
    pointer-events: none;
  }

  .is-loading span:not(.loading__spinner) {
    opacity: 0;
  }

  .is-loading .loading__spinner {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    position: absolute;
    display: block;
  }

  .spinner {
    animation: rotator 1.4s linear infinite;

    .path {
      stroke-dasharray: 187;
      stroke-dashoffset: 0;
      transform-origin: center;
      animation: dash 1.4s ease-in-out infinite;
      stroke: var(--color-primary-button-text);
    }
  }

  .button--secondary .spinner .path {
    stroke: var(--color-secondary-button-text);
  }

  @keyframes rotator {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(270deg);
    }
  }

  @keyframes dash {
    0% {
      stroke-dashoffset: 187;
    }
    50% {
      stroke-dashoffset: 46.75;
      transform: rotate(135deg);
    }
    100% {
      stroke-dashoffset: 187;
      transform: rotate(450deg);
    }
  }
/* END_SNIPPET:loading-spinner */

/* START_SNIPPET:localization-form (INDEX:212) */
dropdown-localization-component {
    position: relative;
    color: var(--color-foreground);
  }

  /* Choix de pays */

  .localization-form__country-selector {
    overflow-y: auto;
    max-height: 100%;
    flex-grow: 1;
    max-height: 20.5rem;
  }

  .localization-form__countries {
    display: flex;
    flex-direction: column;
    gap: 3px;
    position: relative;
    width: 100%;
    scroll-padding: var(--padding-xs) 0;
    overflow-y: auto;
    white-space: nowrap;
  }

  .localization-form__country {
    border-radius: calc(var(--card-border-radius) - var(--padding-xs));
    display: flex;
    align-items: center;
    padding: var(--padding-xs);
    font-size: var(--font-body--size);
    gap: 3px;
    cursor: pointer;
    transition: background-color var(--animation-speed) var(--animation-easing);
  }

  .localization-form__country:hover,
  .localization-form__country:focus,
  .localization-form__country--selected {
    background-color: rgb(from var(--color-foreground) r g b / 5%);
    font-weight: 500;
  }

  .localization-form__country .country {
    flex: 1;
  }

  .localization-form__country .icon--check {
    visibility: hidden;
    font-size: 18px !important;
  }

  .localization-form__country--selected .icon--check {
    visibility: visible;
  }

  .localization-form__country-currency {
    width: max-content;
    opacity: 0;
    visibility: hidden;
    transition: none;
  }

  .localization-form__country:hover .localization-form__country-currency,
  .localization-form__country--selected .localization-form__country-currency {
    opacity: 1;
    transition: opacity var(--animation-speed-fast) var(--animation-easing);
    visibility: visible;
  }

  /* Choix de langue */

  .localization-form__language-selector {
    display: flex;
    position: relative;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    font-size: var(--font-body--size);

    &.localization-form__language-selector--with-country {
      border-top: var(--separator-border-width) solid var(--color-border);
      margin-top: var(--padding-xs);
      padding: var(--padding-xs) var(--padding-xs) 0;

      .localization-form__language-select-wrapper {
        width: auto;
      }
    }

    .icon--keyboard_arrow_down {
      font-size: 22px !important;
    }
  }

  .localization-form__language-select-label {
    flex: 1;
  }

  .localization-form__language-select-wrapper {
    position: relative;
    display: inline-block;
    width: 100%;
  }

  .localization-form__language-select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    height: 35px;
    padding: 0 var(--inputs-padding);
    padding-right: calc(var(--inputs-padding) * 2);
    border: none;
    border-radius: var(--inputs-border-radius);
    color: var(--color-input-text);
    background-color: var(--color-input-background);
    cursor: pointer;
    font-size: var(--inputs-font-size);
    font-weight: var(--font-weight);
    width: 100%;
  }

  .localization-form__language-selector--uppercase .localization-form__language-select {
    text-transform: uppercase;
  }

  .localization-form__language-select:not(:disabled):hover,
  .localization-form__language-select:not(:disabled):focus,
  .localization-form__language-select:focus-visible,
  .localization-form__language-select:focus {
    outline: none;
    margin: 0;
    box-shadow: none;
  }

  .localization-form__language-select-wrapper__icon {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    pointer-events: none;
    color: var(--color-input-text);
    height: 20px;
  }

  .localization-form__language-select-wrapper__icon .icon {
    font-size: 20px !important;
  }

  @media (width <= 1000px) {
    .localization-form__country-currency {
      opacity: 1;
      visibility: visible;
    }
  }
/* END_SNIPPET:localization-form */

/* START_SNIPPET:pagination (INDEX:218) */
.pagination-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 30px 0;
  }

  .pagination__list {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
  }

  .pagination__item {
    text-decoration: none;
  }

  .pagination__item--current {
    cursor: default;
    pointer-events: none;
  }
/* END_SNIPPET:pagination */

/* START_SNIPPET:price (INDEX:220) */
.badge:has(.badge__savings:empty) {
    display: none;
  }
/* END_SNIPPET:price */

/* START_SNIPPET:product-badges (INDEX:221) */
.product-badges {
    position: absolute;
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-xs);
  }

  .product-badges--bottom-left {
    bottom: var(--padding-sm);
    left: var(--padding-sm);
    justify-content: flex-start;
  }

  .product-badges--top-left {
    top: var(--padding-sm);
    left: var(--padding-sm);
    justify-content: flex-start;
  }

  .product-badges--top-right {
    top: var(--padding-sm);
    right: var(--padding-sm);
    justify-content: flex-end;
  }
/* END_SNIPPET:product-badges */

/* START_SNIPPET:product-card-premium (INDEX:222) */
/* Positionnement du badge de réduction (snippets/discount-badge.liquid),
     normalement défini dans assets/product-card-premium.css — dupliqué ici
     via {% stylesheet %} (bundle CSS "sections everywhere", canal qui se
     rafraîchit de façon fiable) pour contourner un cache CDN Shopify resté
     bloqué sur l'ancienne version de ce fichier .css statique. À terme,
     une fois ce cache CDN naturellement purgé, cette règle sera redondante
     avec celle du fichier .css mais sans effet négatif (même valeurs). */
  .fc-card__badges {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
/* END_SNIPPET:product-card-premium */

/* START_SNIPPET:product-card (INDEX:223) */
.product-card {
    display: flex;
    flex-direction: column;
    gap: var(--gap);
    width: 100%;
    overflow: hidden;
    text-decoration: none;
    transition: transform 0.2s ease-in-out;
    position: relative;
    cursor: pointer;
  }

  .product-card[data-visual-preview-mode] {
    max-width: 280px;
  }

  @media (width > 750px) {
    .product-card:hover {
      transform: translateY(-2px);
    }
  }
/* END_SNIPPET:product-card */

/* START_SNIPPET:product-media (INDEX:224) */
.product-media img {
    aspect-ratio: var(--ratio);
    object-fit: cover;
  }
/* END_SNIPPET:product-media */

/* START_SNIPPET:product-option-value-button (INDEX:225) */
.variant-picker__option-value input {
    clip: rect(0, 0, 0, 0);
    overflow: hidden;
    position: absolute;
    height: 1px;
    width: 1px;
  }

  .variant-picker__option-value input + label {
    appearance: none;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    min-height: var(--variant-button-min-height);
    min-width: var(--variant-button-min-width);
    max-width: max-content;
    font-size: var(--variant-button-font-size);
    outline: 1px solid transparent;
    transition: all var(--animation-speed-medium) var(--animation-easing);
    padding: var(--variant-button-padding-vertical) var(--variant-button-padding-horizontal);
    color: var(--color-variant-text);
    background-color: var(--color-variant-background);
    border: var(--variant-button-border-width) solid var(--color-variant-border);
    border-radius: var(--inputs-border-radius);
    font-weight: var(--button-primary-font-weight);
    text-transform: var(--button-primary-text-transform);
    letter-spacing: var(--button-letter-spacing);
  }

  .variant-picker__option-value input:checked + label {
    background-color: var(--color-selected-variant-background);
    color: var(--color-selected-variant-text);
    border-color: var(--color-selected-variant-border);
  }

  .variant-picker__option-value input[aria-disabled='true'] + label {
    position: relative;
    opacity: 0.5;
    overflow: hidden;

    &::before {
      content: '';
      position: absolute;
      top: 50%;
      left: 0;
      width: 100%;
      height: 1px;
      background-color: var(--color-variant-border);
      rotate: 20deg;
    }
  }

  .variant-picker__option-value input[aria-disabled='true']:checked + label::before {
    background-color: var(--color-selected-variant-text);
  }
/* END_SNIPPET:product-option-value-button */

/* START_SNIPPET:product-section-content (INDEX:226) */
@media (width > 750px) {
    .shopify-section-product-section {
      overflow: visible;
    }
  }

  .product-section {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .product-section__content {
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    gap: var(--gap-md);
    padding-top: var(--padding-top);
    padding-bottom: var(--padding-bottom);
  }

  .product-section__product-info {
    display: flex;
    flex-direction: column;
    gap: var(--padding-sm);
  }

  @media (width > 750px) {
    .product-section__content {
      flex-direction: var(--image-position);
      gap: var(--gap);
    }

    .product-section__medias-container {
      overflow: hidden;
    }

    .product-section__medias {
      width: calc(100% - var(--product-info-width));
    }

    .product-section__product-info {
      max-width: calc(var(--product-info-width) - var(--gap));
      width: 100%;
    }

    .product-section__medias--sticky,
    .product-section__product-info--sticky {
      height: fit-content;
      position: sticky;
      top: calc(var(--header-height, 0px) + var(--padding-md));
      z-index: 2;
    }
  }

  @media (width <= 750px) {
    .product-section--carrousel-image-full-width {
      .product-section__content {
        padding-top: 0 !important;
      }

      .product-media-gallery-main-slider {
        width: calc(100% + 2 * (var(--page-margin-mobile)));
        margin-left: calc(var(--page-margin-mobile) * -1);
      }

      .product-media-gallery__media--rounded {
        border-radius: 0;
      }
    }
  }
/* END_SNIPPET:product-section-content */

/* START_SNIPPET:quantity-selector (INDEX:230) */
:root {
    --quantity-selector-button-width: 30px;
  }

  .quantity-selector {
    border: var(--inputs-border-width) solid var(--color-input-border);
    border-radius: var(--inputs-border-radius);
    background-color: var(--color-input-background);
    height: var(--inputs-min-height);
    overflow: hidden;
    display: flex;
    min-width: calc(var(--quantity-selector-button-width) * 3 + var(--inputs-border-width) * 2);
    width: calc(var(--quantity-selector-button-width) * 3 + var(--inputs-border-width) * 2);
  }

  .quantity-selector--disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
  }

  .quantity-selector button,
  .quantity-selector input {
    appearance: textfield;
    background-color: var(--color-input-background);
    border: none;
    transition: 0.2s;
    cursor: pointer;
    min-width: var(--quantity-selector-button-width);
    height: var(--inputs-min-height);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 0;
    color: var(--color-input-text);
  }

  .quantity-selector--small {
    height: calc(var(--small-multiplier) * var(--inputs-min-height));
    border-radius: calc(var(--small-multiplier) * var(--inputs-border-radius));
  }

  .quantity-selector--small button,
  .quantity-selector--small input {
    height: calc(var(--small-multiplier) * var(--inputs-min-height) - 2 * var(--inputs-border-width));
    width: calc(var(--small-multiplier) * var(--inputs-min-height) - 2 * var(--inputs-border-width));
  }

  .quantity-selector button[disabled] {
    opacity: 0.3;
    pointer-events: none;
  }

  .quantity-selector button:not(:disabled):hover svg {
    transform: scale(1.1);
  }

  .quantity-selector .icon {
    pointer-events: none;
    font-size: 20px !important;
    color: var(--color-input-text);
  }

  .quantity-selector input::-webkit-inner-spin-button,
  .quantity-selector input::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
  }

  .quantity-selector input:focus-visible {
    outline: none;
    outline-offset: 0;
    box-shadow: none;
    z-index: 1;
  }

  /* Micro-interaction B2 — pulsation douce du chiffre de quantité au
     changement (clic +/-, saisie validée), plutôt qu'un remplacement
     instantané et sec. Déclenchée par assets/quantity-selector.js
     (#pulse), purement CSS ici. */
  @keyframes quantity-pulse {
    0% {
      transform: scale(1);
    }
    40% {
      transform: scale(1.15);
    }
    100% {
      transform: scale(1);
    }
  }

  .quantity-selector input.is-updating {
    animation: quantity-pulse 0.3s ease;
  }

  @media (prefers-reduced-motion: reduce) {
    .quantity-selector input.is-updating {
      animation: none;
    }
  }
/* END_SNIPPET:quantity-selector */

/* START_SNIPPET:radio (INDEX:232) */
.radio {
    z-index: 0;
    position: relative;
    display: inline-block;
    line-height: 1.5;
  }

  .radio > input {
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    z-index: -1;
    position: absolute;
    left: -10px;
    top: -8px;
    display: block;
    margin: 0;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    outline: none;
    opacity: 0;
    transform: scale(1);
    pointer-events: none;
    transition:
      opacity 0.3s,
      transform 0.2s;
  }

  .radio > .radio__label {
    display: inline-block;
    width: 100%;
    cursor: pointer;
    position: relative;
    font-size: var(--font-body--size-emphasized);
  }

  .radio > .radio__label::before {
    content: '';
    display: inline-block;
    box-sizing: border-box;
    margin: 0px 10px 0px 0;
    border: var(--inputs-border-width) solid var(--color-input-text);
    border-radius: 50%;
    width: 20px;
    min-width: 20px;
    height: 20px;
    vertical-align: top;
    transition: border-color 0.2s;
    background-color: var(--color-input-background);
  }

  .radio > .radio__label::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 50%;
    width: 10px;
    height: 10px;
    background-color: var(--color-input-text);
    transform: translate(5px, 5px) scale(0);
    transition: transform 0.2s;
  }

  .radio > input:checked + .radio__label::before {
    border-color: var(--color-input-text);
  }

  .radio > input:checked + .radio__label::after {
    transform: translate(5px, 5px) scale(1);
  }

  .radio > input:focus {
    opacity: 0.12;
  }

  .radio > input:disabled {
    opacity: 0;
  }

  .radio > input:disabled + .radio__label {
    color: var(--color-input-text);
    opacity: 0.5;
    cursor: not-allowed;
  }

  .radio > input:disabled + .radio__label::before {
    border-color: currentColor;
  }

  .radio > input:disabled + .radio__label::after {
    background-color: currentColor;
  }
/* END_SNIPPET:radio */

/* START_SNIPPET:rating-stars (INDEX:233) */
.rating {
    display: flex;
    align-items: center;
    gap: var(--rating-gap, var(--gap-sm));
    justify-content: var(--rating-align, flex-start);
    flex-wrap: wrap;
  }

  .rating__stars {
    position: relative;
    display: inline-block;
    font-size: var(--rating-star-size, 22px);
    line-height: 1;
  }

  /* Habillage "carré" (CORRECTIF #6 bis) : chaque étoile est une tuile
     carrée arrondie ; le glyphe ★ est conservé dans le HTML (accessibilité/
     repli) et simplement rendu en blanc (color: #fff) sur le fond coloré
     de la tuile — pas d'icône séparée, pas de pseudo-élément. */
  .rating__stars-empty,
  .rating__stars-filled {
    display: flex;
    gap: var(--rating-star-gap, 3px);
  }

  .rating__star-tile {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
    flex: none;
    border-radius: var(--rating-star-tile-radius, 18%);
    color: #fff;
    font-size: 0.55em;
    transform: translate(var(--rating-star-offset-x, 0px), var(--rating-star-offset-y, 0px));
  }

  .rating__stars-empty .rating__star-tile {
    background-color: var(--rating-star-empty, var(--rating-star-color-empty, #DCDCE6));
  }

  .rating__stars-filled {
    position: absolute;
    inset: 0;
    width: var(--rating-fill, 0%);
    overflow: hidden;
  }

  .rating__stars-filled .rating__star-tile {
    background-color: var(--rating-star-filled, var(--rating-star-color, #00B67A));
  }

  .rating__note,
  .rating__count,
  .rating__custom-text {
    line-height: 22px;
    font-size: var(--rating-text-size, inherit);
    font-weight: var(--rating-text-weight, inherit);
    letter-spacing: var(--rating-text-spacing, normal);
    text-transform: var(--rating-text-case, none);
    color: var(--rating-text-color, inherit);
  }

  /* Chiffre de note dominant (ex. "4,8/5") par rapport au texte "basé sur
     X avis" : uniquement quand l'appelant n'a pas déjà personnalisé
     --rating-text-size/--rating-text-weight (mécanisme d'opt-in existant
     du bloc rating-stars) — sinon la personnalisation explicite du bloc
     garde la priorité, comme avant. */
  .rating__note {
    font-size: var(--rating-text-size, 1.15em);
    font-weight: var(--rating-text-weight, 700);
  }

  /* Micro-interaction B2 : fondu doux au changement, plutôt qu'un
     remplacement instantané et sec du nombre affiché. */
  .rating__count {
    transition: opacity 0.25s ease, transform 0.25s ease;
  }

  .rating__count.is-updating {
    opacity: 0.35;
    transform: translateY(-2px);
  }

  @media (prefers-reduced-motion: reduce) {
    .rating__count {
      transition: none;
    }
  }
/* END_SNIPPET:rating-stars */

/* START_SNIPPET:review (INDEX:234) */
.review {
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
    overflow: hidden;
    width: 100%;
  }

  shopify-visual-preview-block-list shopify-visual-preview-block-list .review[data-visual-preview-mode] {
    width: 100%;
    max-width: 400px;
  }

  .review__image {
    object-fit: cover;
    width: 100%;
    overflow: auto;
    border-radius: calc(var(--card-border-radius) - (var(--card-padding) * 0.5));
  }

  .review__image .placeholder-svg {
    width: 100%;
    height: 100%;
    background-color: #f8f8f8;
    border-radius: calc(var(--card-border-radius) - (var(--card-padding) * 0.5));
  }

  .review__title,
  .review__author-name {
    font-weight: 600;
  }

  .review__date {
    font-style: italic;
  }

  .review--2 {
    .review__author-and-date {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: var(--gap-sm);
      width: 100%;
      margin-top: 10px;
    }
  }

  .review--3 {
    .review__image {
      aspect-ratio: var(--image-ratio);
    }

    .review__image .placeholder-svg {
      aspect-ratio: var(--image-ratio);
    }
  }

  .review--4 {
    flex-direction: row;
    align-items: center;

    .review__content {
      width: 100%;
      display: flex;
      flex-direction: column;
      gap: var(--gap-sm);
    }

    .review__image,
    .review__image .placeholder-svg {
      aspect-ratio: 1 / 1;
    }
  }

  @media (width > 750px) {
    .review--4 {
      flex-direction: row;
      align-items: center;
    }
  }

  .review--5 {
    .review__author-and-date-container {
      display: flex;
      flex-direction: row;
      align-items: center;
      gap: var(--gap-sm);
      width: 100%;
      margin-bottom: 10px;

      .review__author-and-date {
        display: flex;
        flex-direction: column;
        gap: var(--gap-xs);
      }

      .review__author-profile,
      .review__author-profile svg {
        width: 50px;
        height: 50px;
        background-color: #f8f8f8;
        border-radius: calc(var(--card-border-radius) - (var(--card-padding) * 0.5));
        object-fit: cover;
      }
    }
  }
/* END_SNIPPET:review */

/* START_SNIPPET:reviews-verified-badge (INDEX:235) */
.reviews-verified-badge {
    display: inline-block;
    font-size: 12px;
    line-height: 1.4;
    padding: 3px 10px;
    border-radius: 999px;
    background: var(--reviews-verified-badge-bg, #777d43);
    color: var(--reviews-verified-badge-text-color, #ffffff);
    white-space: nowrap;
  }
/* END_SNIPPET:reviews-verified-badge */

/* START_SNIPPET:search-popup (INDEX:237) */
.header__icon-search {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    color: inherit;
    display: flex;
  }

  .dialog-modal--search {
    padding: var(--page-margin-mobile);
    flex-direction: row;
    gap: var(--gap-xs);
    align-items: center;
    width: var(--modal-width);
    overflow: hidden !important;
    max-height: var(--search-modal-max-height-mobile);

    @media (width > 750px) {
      max-height: var(--search-modal-max-height);
    }

    &[open] {
      display: flex;
      align-items: flex-start;
    }

    .dialog-modal__content {
      width: 100%;
    }

    .dialog-modal__content .search-form {
      display: flex;
      flex-direction: row;
      gap: var(--gap-xs);
      align-items: center;
      margin: 0;
    }

    .dialog-modal__close {
      position: relative;
      top: auto;
      right: auto;
    }
  }

  @media (width > 750px) {
    .dialog-modal--search {
      padding: var(--padding-md);
    }
  }
/* END_SNIPPET:search-popup */

/* START_SNIPPET:separator (INDEX:239) */
.separator {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    display: block;
    width: var(--width);
  }

  .separator hr {
    border: none;
    border-top: var(--separator-border-width) var(--separator-style) var(--color-border, #e0e0e0);
  }
/* END_SNIPPET:separator */

/* START_SNIPPET:slider (INDEX:240) */
slider-component {
    position: relative;
  }
/* END_SNIPPET:slider */

/* START_SNIPPET:sort-inline (INDEX:241) */
.sorting-dropdown-toggle {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  .sorting__select {
    border-radius: calc(var(--card-border-radius) - var(--padding-xs));
    display: flex;
    align-items: center;
    padding: var(--padding-xs);
    font-size: var(--font-body--size);
    gap: 3px;
    cursor: pointer;
    transition: background-color var(--animation-speed) var(--animation-easing);
  }

  .sorting__list {
    display: flex;
    flex-direction: column;
    gap: 3px;
    position: relative;
    width: 100%;
    scroll-padding: var(--padding-xs) 0;
    overflow-y: auto;
    white-space: nowrap;
    list-style: none;
    padding: 0;
  }

  .sorting__select:hover,
  .sorting__select:focus,
  .sorting__select--selected {
    background-color: rgb(from var(--color-foreground) r g b / 5%);
    font-weight: 500;
  }
/* END_SNIPPET:sort-inline */

/* START_SNIPPET:swatch (INDEX:243) */
.swatch-input {
    clip: rect(0, 0, 0, 0);
    overflow: hidden;
    position: absolute;
    width: 1px;
    height: 1px;
  }

  .swatch-input + .swatch,
  .swatch-link {
    display: block;
    border-radius: calc(var(--swatch-border-radius) - var(--swatch-outline-offset));
    cursor: pointer;
    outline-offset: var(--swatch-outline-offset);
    margin: var(--swatches-border-width);
    width: var(--swatch-size);
    height: var(--swatch-size);
    outline: var(--swatches-border-width) solid transparent;
    transition: outline 0.1s ease-in-out;
    forced-color-adjust: none;
  }

  .swatch-input:active + .swatch,
  .swatch-input:checked + .swatch,
  .swatch-input[aria-checked='true'] + .swatch,
  .swatch-link[aria-checked='true'],
  .swatch-input:focus + .swatch,
  .swatch-input:focus-visible + .swatch {
    outline: var(--swatches-border-width) solid var(--color-selected-input-border);
  }

  .swatch-input:hover:not([aria-checked='true']):not([checked]) + .swatch,
  .swatch-link:hover:not([aria-checked='true']) {
    outline: var(--swatches-border-width) solid var(--color-input-border-low-opacity);
  }

  .swatch span {
    pointer-events: none;
    position: relative;
    overflow: hidden;
    display: block;
    width: var(--swatch-size);
    height: var(--swatch-size);
    background: var(--swatch-background);
    background-size: cover;
    background-origin: border-box;
    border: 0.5px solid var(--color-input-border-low-opacity);
    border-radius: calc(var(--swatch-border-radius) - var(--swatch-outline-offset));
  }

  .swatch--disabled span:after {
    --crossed-line--size: 1px;
    content: '';
    position: absolute;
    bottom: calc(var(--crossed-line--size) * -0.5);
    left: 0;
    width: calc(var(--swatch-size) * 1.414);
    height: var(--crossed-line--size);
    background-color: var(--color-foreground);
    transform: rotate(-45deg);
    transform-origin: left;
  }

  .swatch-input:checked + .swatch {
    outline: var(--swatches-border-width) solid var(--color-selected-input-border);
  }
/* END_SNIPPET:swatch */

/* START_SNIPPET:swatches (INDEX:244) */
.swatches {
    display: flex;
    justify-content: flex-start;
    overflow-x: auto;
    padding: 3px;
    gap: 10px;
    padding-bottom: 10px;
  }

  .swatches {
    --swatch-size: var(--swatches-size);
    --swatch-border-radius: var(--inputs-border-radius);
    --swatch-outline-offset: var(--swatches-outline-offset);
  }

  .swatches--small {
    --swatch-size: calc(var(--swatches-size) * var(--small-multiplier));
    --swatch-border-radius: calc(var(--small-multiplier) * var(--inputs-border-radius));
    --swatch-outline-offset: var(--swatches-small-outline-offset);
  }

  .swatches--big {
    --swatch-size: calc(var(--swatches-size) * var(--big-multiplier));
    --swatch-border-radius: calc(var(--inputs-border-radius) * var(--big-multiplier));
    --swatch-outline-offset: var(--swatches-big-outline-offset);
  }

  .swatches--rounded .swatch,
  .swatches--rounded .swatch-link,
  .swatches--rounded .swatch span {
    --swatch-border-radius: 100%;
  }
/* END_SNIPPET:swatches */

/* START_SNIPPET:textarea (INDEX:245) */
.textarea {
    position: relative;
  }

  .textarea textarea {
    outline: none;
    border: var(--inputs-border-width) solid var(--color-input-border);
    border-radius: var(--inputs-border-radius);
    padding: var(--inputs-padding);
    color: var(--color-input-text);
    background-color: var(--color-input-background);
    transition: 0.1s ease-out;
    height: calc(var(--inputs-min-height) * 2);
    width: 100%;
    font-size: var(--inputs-font-size);
  }

  .textarea--disabled textarea {
    opacity: 0.5;
    cursor: not-allowed;
    background-color: var(--color-input-background);
  }

  .textarea--full-width textarea {
    width: 100%;
  }
/* END_SNIPPET:textarea */

/* START_SNIPPET:textfield (INDEX:246) */
.textfield {
    position: relative;
  }

  .textfield input {
    outline: none;
    border: var(--inputs-border-width) solid var(--color-input-border);
    border-radius: var(--inputs-border-radius);
    padding: 1.25rem var(--inputs-padding) 0.375rem;
    color: var(--color-input-text);
    background-color: var(--color-input-background);
    transition: 0.1s ease-out;
    height: var(--inputs-min-height);
    min-width: var(--inputs-min-width);
    font-size: var(--inputs-font-size);
  }

  .textfield input::placeholder {
    opacity: 0;
  }

  .textfield label {
    position: absolute;
    left: calc(var(--inputs-padding) + var(--inputs-border-width));
    top: 50%;
    transform: translateY(-50%);
    font-size: var(--inputs-font-size);
    color: var(--color-input-text);
    transition: 0.1s ease-out;
    transform-origin: left top;
    pointer-events: none;
  }

  .textfield input:focus + label,
  .textfield input:not(:placeholder-shown) + label {
    top: 0.375rem;
    transform: scale(0.75);
  }

  .textfield--small,
  .textfield--small input {
    height: calc(var(--small-multiplier) * var(--inputs-min-height));
  }

  .textfield--small input {
    padding: 0 var(--inputs-padding);
    border-radius: calc(var(--small-multiplier) * var(--inputs-border-radius));
  }

  .textfield--small label {
    display: none;
  }

  .textfield--small input::placeholder {
    opacity: 1;
  }

  .textfield--disabled input {
    opacity: 0.5;
    cursor: not-allowed;
  }

  .textfield--disabled label {
    opacity: 0.5;
  }

  .textfield--full-width,
  .textfield--full-width input {
    width: 100%;
  }

  .textfield--error input {
    border-color: var(--color-error);
  }

  .textfield--error label {
    color: var(--color-error);
  }

  .input-group {
    display: flex;
    align-items: center;
    border: var(--inputs-border-width) solid var(--color-input-border);
    border-radius: var(--inputs-border-radius);
    background-color: var(--color-input-background);
    transition: border-color 0.1s ease-out;
    width: 100%;

    .textfield {
      flex: 1;
      min-width: 0;
    }

    .textfield input {
      border-color: transparent;
      background-color: transparent;
      border-top-right-radius: 0;
      border-bottom-right-radius: 0;
    }
  }

  .input-group:focus-within {
    border-color: var(--color-selected-input-border);
  }

  .input-group__action {
    flex-shrink: 0;
    display: flex;
    align-items: center;

    .button {
      border-color: transparent;
      background-color: transparent;
      color: var(--color-input-text);
      border-top-left-radius: 0;
      border-bottom-left-radius: 0;
    }
  }
/* END_SNIPPET:textfield */

/* START_SNIPPET:video (INDEX:249) */
deferred-media {
    border-radius: var(--card-border-radius);
    overflow: hidden;
    aspect-ratio: var(--ratio);
    position: relative;
    display: block;
  }

  .video-interaction-hint {
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 1;
  }

  .video-interaction-hint:hover {
    opacity: 1;
  }

  .deferred-media__video:empty {
    z-index: -1;
  }

  .deferred-media__video {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
  }

  .deferred-media__video video {
    aspect-ratio: var(--ratio);
    object-fit: cover;
  }

  .deferred-media__poster-button {
    opacity: 0;
    transition: opacity 0.3s ease;
  }

  .deferred-media__poster,
  .deferred-media__poster-button {
    cursor: pointer;
  }

  .deferred-media__poster-icon,
  .deferred-media__poster-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: transparent;
    border: none;
    transition: var(--animation-link-hover);

    .icon--play_circle,
    .icon--pause_circle {
      font-size: 60px !important;
      color: var(--color-primary-button-text);
    }
  }

  .deferred-media__poster:hover {
    .deferred-media__poster-button {
      opacity: 1;
    }

    .deferred-media__poster-icon {
      opacity: var(--opacity-link-hover);
    }
  }

  .deferred-media__poster {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: relative;
  }

  .deferred-media__poster.deferred-media__playing {
    opacity: 0;
    transition: opacity 0.3s ease;
  }

  deferred-media img {
    height: 100%;
    transition: opacity 0.3s ease;
  }

  deferred-media iframe {
    width: 100%;
    height: 100%;
    border: none;
    aspect-ratio: var(--ratio);
  }

  deferred-media[data-media-loaded] img {
    opacity: 0;
  }
/* END_SNIPPET:video */

/* START_SNIPPET:wishlist-icon (INDEX:250) */
.header__icon-wishlist {
    position: relative;
    cursor: pointer;
    color: inherit;
  }
/* END_SNIPPET:wishlist-icon */