/** Shopify CDN: Minification failed

Line 13396:2 Unexpected "{"
Line 13396:3 Expected identifier but found "%"
Line 13397:28 Expected identifier but found whitespace
Line 13397:33 Unexpected bad string token
Line 13397:74 Unterminated string token
Line 13399:3 Expected identifier but found "%"

**/
/* SHOPIFY_STYLESHEETS_VERSION: 1.0 */


/* CSS from section stylesheet tags */
/* START_SECTION:announcement-bar (INDEX:0) */
.nda {
    background: var(--nda-bg, #121212);
    color: var(--nda-color, #fff);
    width: 100%;
    overflow-x: clip;
    box-sizing: border-box;
  }
  .nda *, .nda *::before, .nda *::after { box-sizing: border-box; }

  .nda--sticky { position: fixed; top: 0; left: 0; right: 0; z-index: 100; }

  .nda__item { display: flex; align-items: center; justify-content: center; gap: 8px; }
  .nda__icon { display: inline-flex; line-height: 1; font-size: 1.05em; flex-shrink: 0; }
  .nda__text {
    font-weight: var(--nda-fw, 600);
    font-size: var(--nda-fs-m, 12px);
    letter-spacing: var(--nda-ls, 0em);
    color: var(--nda-color, #fff);
    line-height: 1.2; text-decoration: none; white-space: nowrap; transition: color .2s ease;
  }
  .nda--upper .nda__text { text-transform: uppercase; }
  a.nda__text:hover { color: var(--nda-hover, #10b981); }

  .nda__code {
    display: inline-flex; align-items: center; gap: 5px;
    background: none; border: 0; padding: 2px 4px; margin: 0;
    color: inherit; font: inherit; font-weight: 800; font-size: var(--nda-fs-m, 12px);
    text-decoration: underline; text-underline-offset: 2px; cursor: pointer; white-space: nowrap;
  }
  .nda__code-ic { flex-shrink: 0; }
  .nda__code-done { display: none; text-decoration: none; }
  .nda__code.is-copied .nda__code-val,
  .nda__code.is-copied .nda__code-ic { display: none; }
  .nda__code.is-copied .nda__code-done { display: inline; color: var(--nda-hover, #10b981); }

  .nda__cd { font-variant-numeric: tabular-nums; font-weight: 800; font-size: var(--nda-fs-m, 12px); white-space: nowrap; }

  /* ROTATION (fondu) */
  .nda--rotate .nda__bar {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    height: var(--nda-h-m, 36px); padding: 0 var(--nda-px-m, 12px);
  }
  /* Mobile : la zone texte prend toute la place (pas de crop) */
  .nda--rotate .nda__viewport {
    position: relative; flex: 1 1 auto; min-width: 0; width: auto;
    height: 100%; overflow: hidden;
  }
  .nda--rotate .nda__item {
    position: absolute; inset: 0;
    opacity: 0; visibility: hidden; pointer-events: none;
    transition: opacity .3s ease; padding: 0 4px; overflow: hidden;
  }
  .nda--rotate .nda__item.is-active { opacity: 1; visibility: visible; pointer-events: auto; }
  .nda--rotate .nda__text { overflow: hidden; text-overflow: ellipsis; max-width: 100%; }

  .nda__arrow {
    flex-shrink: 0; width: 28px; height: 28px; padding: 0;
    display: inline-flex; align-items: center; justify-content: center;
    background: transparent; border: 0; cursor: pointer;
    color: var(--nda-arrow, #fff); opacity: .8; transition: opacity .2s ease, color .2s ease;
  }
  .nda__arrow:hover { opacity: 1; color: var(--nda-hover, #10b981); }
  .nda__arrow svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; display: block; }

  /* ROTATION VERTICALE */
  .nda--vertical .nda__vwrap { position: relative; overflow: hidden; height: var(--nda-h-m, 36px); }
  .nda--vertical .nda__vtrack { display: flex; flex-direction: column; will-change: transform; }
  .nda--vertical .nda__item { flex: 0 0 auto; width: 100%; height: var(--nda-h-m, 36px); padding: 0 var(--nda-px-m, 12px); }

  /* MARQUEE */
  .nda--marquee .nda__marquee { overflow: hidden; height: var(--nda-h-m, 36px); display: flex; align-items: center; }
  .nda--marquee .nda__track {
    display: flex; width: max-content; will-change: transform;
    animation: nda-scroll var(--nda-dur, 40s) linear infinite;
    animation-direction: var(--nda-dir, normal);
  }
  .nda--marquee .nda__group { display: flex; align-items: center; flex: 0 0 auto; }
  .nda--marquee .nda__item { flex-shrink: 0; padding: 0 calc(var(--nda-gap, 80px) / 2); }
  @media (hover: hover) { .nda--marquee[data-pause-hover]:hover .nda__track { animation-play-state: paused; } }
  @keyframes nda-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

  /* Séparateur entre messages (mode marquee) */
  .nda--marquee .nda__sep {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    color: var(--nda-color, #fff);
    opacity: 0.55;
    font-weight: var(--nda-fw, 600);
    font-size: var(--nda-fs-m, 12px);
    line-height: 1;
    user-select: none;
  }

  /* --- Compat header transparent (Horizon) ---------------------------
     Quand le header est transparent, Horizon remonte la 1re section du
     main de var(--header-group-height) (base.css) ; cette hauteur inclut
     la barre d'annonces (le header étant sorti du flux), le hero vient
     donc recouvrir la barre. Cible : la barre reste visible en haut,
     fond plein, et le header transparent flotte juste en dessous,
     par-dessus le hero. */
  body:has(#header-group .section-announcement-bar .nda):has(.header[transparent])
    .content-for-layout
    > .shopify-section:first-child {
    margin-top: 0;
  }

  /* Rend effectif le z-index que Horizon pose sur les sections sœurs du
     header transparent (sécurité contre tout recouvrement résiduel). */
  #header-group .section-announcement-bar {
    position: relative;
  }

  /* LIEN GLOBAL (barre entière cliquable) */
  .nda--linked { position: relative; }
  .nda__global-link { position: absolute; inset: 0; z-index: 1; }
  .nda--linked a.nda__text, .nda--linked .nda__code, .nda--linked .nda__arrow { position: relative; z-index: 2; }

  .nda :focus-visible { outline: 2px solid var(--nda-color, #fff); outline-offset: 2px; border-radius: 4px; }

  /* Desktop */
  @media (min-width: 750px) {
    .nda__text, .nda__code, .nda__cd, .nda__sep { font-size: var(--nda-fs-d, 13px); }
    .nda--rotate .nda__bar { height: var(--nda-h-d, 38px); padding: 0 var(--nda-px-d, 24px); gap: 10px; }
    /* Desktop : zone texte de largeur fixe → flèches proches du texte */
    .nda--rotate .nda__viewport { flex: 0 1 auto; width: var(--nda-track-d, 420px); }
    .nda--vertical .nda__vwrap, .nda--vertical .nda__item { height: var(--nda-h-d, 38px); }
    .nda--vertical .nda__item { padding: 0 var(--nda-px-d, 24px); }
    .nda--marquee .nda__marquee { height: var(--nda-h-d, 38px); }
    .nda__arrow { width: 32px; height: 32px; }
    .nda__arrow svg { width: 18px; height: 18px; }
  }

  @media (prefers-reduced-motion: reduce) {
    .nda--rotate .nda__item { transition: none; }
    .nda--vertical .nda__vtrack { transition: none !important; }
    .nda--marquee .nda__track { animation: none; }
  }
/* END_SECTION:announcement-bar */

/* START_SECTION:bandeau-reassurance (INDEX:1) */
.mqr {
    background: var(--mqr-bg, #fff);
    color: var(--mqr-color, #111);
    border-top: var(--mqr-border-top, 0) solid var(--mqr-border, #e5e7eb);
    border-bottom: var(--mqr-border-bottom, 1px) solid var(--mqr-border, #e5e7eb);
    overflow: hidden;
  }

  .mqr *,
  .mqr *::before,
  .mqr *::after { box-sizing: border-box; }

  .mqr__inner {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: var(--mqr-pad-y-m, 10px) var(--mqr-pad-x, 20px);
    max-width: none;
    margin: 0 auto;
    min-width: 0;
  }

  .mqr--page .mqr__inner { max-width: var(--page-width, 1300px); }

  /* ---------- Bloc avis, fixe à gauche ---------- */
  .mqr__reviews {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    flex-shrink: 0;
    color: inherit;
    text-decoration: none;
  }

  .mqr__stars {
    display: inline-flex;
    gap: 2px;
    line-height: 0;
  }

  .mqr__star {
    width: 15px;
    height: 15px;
    fill: var(--mqr-star, #00b67a);
    display: block;
  }

  .mqr__reviews-text {
    font-size: var(--mqr-size-m, 13px);
    font-weight: var(--mqr-weight, 400);
    line-height: 1.3;
    white-space: nowrap;
  }

  a.mqr__reviews .mqr__reviews-text {
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  a.mqr__reviews:hover .mqr__reviews-text { text-decoration-thickness: 2px; }
  a.mqr__reviews:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
    border-radius: 3px;
  }

  /* ---------- Piste défilante ----------
     Le masque en dégradé fait apparaître et disparaître les arguments en
     fondu sur les bords, au lieu de les couper net contre le vide. */
  .mqr__mask {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 var(--mqr-fade, 10%), #000 calc(100% - var(--mqr-fade, 10%)), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, #000 var(--mqr-fade, 10%), #000 calc(100% - var(--mqr-fade, 10%)), transparent 100%);
  }

  .mqr__track {
    display: flex;
    width: max-content;
    animation: mqr-scroll var(--mqr-speed, 60s) linear infinite;
  }

  .mqr__set {
    display: flex;
    align-items: center;
    gap: var(--mqr-gap-m, 24px);
    padding-right: var(--mqr-gap-m, 24px);
    flex-shrink: 0;
  }

  /* Quatre copies, translation de -50% : à l'arrivée, les copies 3 et 4
     occupent la place des copies 1 et 2. Le raccord est invisible. */
  @keyframes mqr-scroll {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(-50%, 0, 0); }
  }

  .mqr--pause .mqr__mask:hover .mqr__track,
  .mqr--pause .mqr__mask:focus-within .mqr__track {
    animation-play-state: paused;
  }

  .mqr__item {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    white-space: nowrap;
  }

  .mqr__text {
    font-size: var(--mqr-size-m, 13px);
    font-weight: var(--mqr-weight, 400);
    line-height: 1.3;
  }

  .mqr__icon {
    display: inline-flex;
    flex-shrink: 0;
  }

  .mqr__icon svg {
    width: var(--mqr-icon, 26px);
    height: var(--mqr-icon, 26px);
    display: block;
    stroke: currentColor;
    stroke-width: var(--mqr-icon-stroke, 1.4);
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
  }

  .mqr__icon-img {
    width: var(--mqr-icon, 26px);
    height: var(--mqr-icon, 26px);
    object-fit: contain;
    display: block;
    flex-shrink: 0;
  }

  /* Une animation infinie est une gêne réelle pour certains utilisateurs :
     troubles vestibulaires, déficit d'attention. On l'arrête et on rend la
     piste défilable à la main. */
  @media (prefers-reduced-motion: reduce) {
    .mqr__track {
      animation: none;
      transform: none;
    }
    .mqr__mask {
      overflow-x: auto;
      scrollbar-width: none;
      -webkit-mask-image: none;
      mask-image: none;
    }
    .mqr__mask::-webkit-scrollbar { display: none; }
  }

  @media (min-width: 750px) {
    .mqr__inner {
      gap: 32px;
      padding-top: var(--mqr-pad-y-d, 16px);
      padding-bottom: var(--mqr-pad-y-d, 16px);
    }
    .mqr__reviews {
      flex-direction: row;
      align-items: center;
      gap: 12px;
    }
    .mqr__star { width: 17px; height: 17px; }
    .mqr__reviews-text,
    .mqr__text { font-size: var(--mqr-size-d, 15px); }
    .mqr__set {
      gap: var(--mqr-gap-d, 80px);
      padding-right: var(--mqr-gap-d, 80px);
    }
    .mqr__item { gap: 14px; }
  }
/* END_SECTION:bandeau-reassurance */

/* START_SECTION:barre-arguments (INDEX:3) */
.barg {
    background: var(--barg-bg, #faf8f5);
    padding-top: var(--barg-pt, 18px);
    padding-bottom: var(--barg-pb, 18px);
    box-sizing: border-box;
  }
  .barg--border {
    border-top: 1px solid var(--barg-border, rgba(0, 0, 0, 0.08));
    border-bottom: 1px solid var(--barg-border, rgba(0, 0, 0, 0.08));
  }

  /* Pleine largeur : le fond couvre tout l'écran, le contenu garde ses marges. */
  .barg--full {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }
  .barg--full .barg__inner { padding-inline: 20px; }
  @media (min-width: 750px) {
    .barg--full .barg__inner { padding-inline: var(--barg-side, 48px); }
  }

  .barg__wrap { position: relative; }
  .barg__viewport { position: relative; }

  .barg__track {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(var(--barg-cols, 4), minmax(0, 1fr));
    align-items: center;
    gap: var(--barg-gap, 24px);
  }

  .barg__item {
    position: relative;
    min-width: 0;
  }

  /* Séparateur centré dans l'espace entre deux éléments — un ::before plutôt
     qu'une bordure, pour qu'il tombe pile au milieu quel que soit l'écart. */
  .barg--sep .barg__item::before {
    content: "";
    position: absolute;
    top: 50%;
    left: calc(var(--barg-gap, 24px) / -2);
    transform: translateY(-50%);
    width: 1px;
    height: 28px;
    background: var(--barg-sep, rgba(0, 0, 0, 0.12));
  }
  .barg--sep .barg__item:first-child::before { display: none; }

  .barg__body {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-width: 0;
    color: inherit;
    text-decoration: none;
  }
  .barg--align-center .barg__body { justify-content: center; }
  .barg--icon-top .barg__body {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
  }
  a.barg__body:hover .barg__title { text-decoration: underline; text-underline-offset: 3px; }
  a.barg__body:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
    border-radius: 4px;
  }

  .barg__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--barg-icon, #111);
  }
  .barg__icon svg {
    width: var(--barg-icon-size-m, 26px);
    height: var(--barg-icon-size-m, 26px);
    display: block;
    stroke-width: var(--barg-stroke, 1.5);
  }
  .barg__icon img {
    width: var(--barg-icon-size-m, 26px);
    height: var(--barg-icon-size-m, 26px);
    object-fit: contain;
    display: block;
  }
  /* Pastille : l'icône est posée sur un rond de couleur. */
  .barg--icon-pill .barg__icon {
    background: var(--barg-icon-bg, #ffffff);
    border-radius: 50%;
    padding: 10px;
  }

  .barg__txt { min-width: 0; }
  .barg__title {
    display: block;
    font-size: var(--barg-title-size-m, 13px);
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: var(--barg-title-color, #111);
  }
  .barg__sub {
    display: block;
    margin-top: 2px;
    font-size: var(--barg-text-size-m, 12px);
    line-height: 1.35;
    color: var(--barg-text-color, #6b6b6b);
  }

  /* Bouton pause — visible uniquement quand le défilement continu tourne. */
  .barg .barg__pause {
    display: none;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    z-index: 2;
    width: 26px;
    height: 26px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: none;
    color: var(--barg-text-color, #6b6b6b);
    cursor: pointer;
    align-items: center;
    justify-content: center;
  }
  .barg.is-marquee .barg__pause { display: inline-flex; }
  .barg .barg__pause svg { width: 10px; height: 10px; display: none; }
  .barg:not(.is-paused) .barg__pp-pause { display: block; }
  .barg.is-paused .barg__pp-play { display: block; }
  .barg .barg__pause:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

  /* ---------- Ordinateur : une ligne, valeurs « desktop » ----------
     Les tailles sont redéclarées à leur point d'usage. Réassigner une
     variable posée en attribut « style » n'aurait aucun effet : l'inline
     l'emporte toujours sur la feuille de styles. */
  @media (min-width: 750px) {
    .barg__icon svg,
    .barg__icon img {
      width: var(--barg-icon-size-d, 28px);
      height: var(--barg-icon-size-d, 28px);
    }
    .barg__title { font-size: var(--barg-title-size-d, 14px); }
    .barg__sub { font-size: var(--barg-text-size-d, 13px); }
  }

  /* ---------- Mobile ---------- */
  @media (max-width: 749px) {
    /* Grille 2 colonnes : les 4 arguments sont lus d'un coup d'œil. */
    .barg--m-grid2 .barg__track {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      row-gap: 18px;
    }
    /* Liste : un argument par ligne, le plus lisible mais le plus haut. */
    .barg--m-list .barg__track {
      grid-template-columns: 1fr;
      row-gap: 14px;
    }
    /* Ni l'un ni l'autre n'a de séparateur vertical : sur plusieurs rangées,
       une barre entre deux colonnes se retrouverait en début de ligne. */
    .barg--m-grid2 .barg__item::before,
    .barg--m-list .barg__item::before { display: none; }

    /* Balayage et défilement continu : piste pleine largeur, bord à bord. */
    .barg--m-swipe .barg__viewport,
    .barg--m-marquee .barg__viewport {
      width: 100vw;
      margin-inline: calc(50% - 50vw);
      overflow-x: auto;
      scrollbar-width: none;
      -ms-overflow-style: none;
      -webkit-overflow-scrolling: touch;
    }
    .barg--m-swipe .barg__viewport::-webkit-scrollbar,
    .barg--m-marquee .barg__viewport::-webkit-scrollbar { display: none; }

    .barg--m-swipe .barg__track,
    .barg--m-marquee .barg__track {
      display: flex;
      grid-template-columns: none;
      width: max-content;
      padding-inline: var(--page-margin-mobile, 20px);
      scroll-padding-inline: var(--page-margin-mobile, 20px);
    }
    .barg--m-swipe .barg__item,
    .barg--m-marquee .barg__item { flex: 0 0 auto; }

    .barg--m-swipe .barg__track { scroll-snap-type: x mandatory; }
    .barg--m-swipe .barg__item {
      width: var(--barg-card-mobile, 72%);
      scroll-snap-align: start;
    }

    /* Défilement continu : activé seulement une fois le duplicata en place,
       sinon la piste reste simplement balayable (aucun contenu perdu). */
    .barg.is-marquee .barg__viewport {
      display: flex;
      overflow: hidden;
    }
    /* Bande réservée au bouton pause : la piste est raccourcie à droite,
       le texte disparaît donc AVANT le bouton au lieu de passer dessous. */
    .barg--pause.is-marquee .barg__viewport {
      width: calc(100vw - 56px);
      margin-left: calc(50% - 50vw);
      margin-right: 0;
    }
    .barg.is-marquee .barg__track {
      flex: 0 0 auto;
      padding-inline: 0;
      padding-right: var(--barg-gap, 24px);
      animation: barg-marquee var(--barg-duration, 24s) linear infinite;
      will-change: transform;
    }
    /* Le premier élément garde son séparateur : dans une boucle, il marque
       la coupure avec le dernier argument de la série précédente. */
    .barg--sep.is-marquee .barg__item:first-child::before { display: block; }
    .barg.is-marquee.is-paused .barg__track,
    .barg.is-marquee.is-holding .barg__track { animation-play-state: paused; }
  }

  @keyframes barg-marquee {
    to { transform: translateX(-100%); }
  }

  @media (prefers-reduced-motion: reduce) {
    .barg .barg__track { animation: none !important; }
  }
/* END_SECTION:barre-arguments */

/* START_SECTION:bj-banniere-engagements (INDEX:5) */
.bje {
    padding-top: var(--bje-pt, 0);
    padding-bottom: var(--bje-pb, 0);
  }

  .bje__wrap {
    display: flex;
    flex-direction: column;
    isolation: isolate;
  }

  .bje__media {
    position: relative;
    width: 100%;
    aspect-ratio: var(--bje-ratio-m, 4 / 3);
    overflow: hidden;
    background: #ececec;
    line-height: 0;
  }

  .bje__img,
  .bje__media .bjs__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .bje__panel {
    display: flex;
    align-items: center;
    padding: 40px 20px 44px;
    background: var(--bje-panel-bg, #010c27);
    color: var(--bje-text, #f8f6f4);
  }

  .bje__contenu {
    width: 100%;
    max-width: 620px;
    margin: 0 auto;
  }

  .bje__filet {
    display: block;
    width: 64px;
    height: 3px;
    margin-bottom: 18px;
    background: linear-gradient(
      to right,
      #2F5FE3 0 33.4%,
      #F8F6F4 33.4% 66.7%,
      #E8443A 66.7% 100%
    );
  }

  .bje .bje__titre {
    margin: 0 0 24px;
    color: inherit;
    font-size: var(--bje-titre-m, 30px);
    line-height: 1.05;
    text-transform: uppercase;
  }

  .bje__pictos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px 12px;
    margin: 0 0 26px;
    padding: 0;
    list-style: none;
  }

  .bje__picto {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
  }

  .bje__tampon {
    position: relative;
    display: block;
    width: 104px;
    height: 92px;
  }

  .bje__tampon-arc {
    position: absolute;
    top: 0;
    left: 0;
    width: 104px;
    height: 60px;
    overflow: visible;
  }

  .bje__tampon-texte {
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    fill: currentColor;
    opacity: 0.9;
  }

  .bje__picto-icone {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border: 1.5px solid currentColor;
    border-radius: 50%;
  }

  .bje__picto-icone svg {
    display: block;
  }

  .bje__picto-bas {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.15;
    text-transform: uppercase;
  }

  .bje .bje__texte,
  .bje .bje__texte p {
    margin: 0 0 10px;
    color: inherit;
    font-size: 15px;
    line-height: 1.6;
  }

  .bje .bje__lien {
    display: inline-block;
    margin-top: 8px;
    color: inherit;
    font-size: 15px;
    font-weight: 600;
    text-underline-offset: 4px;
  }

  @media (min-width: 750px) {
    .bje__wrap {
      flex-direction: row;
      min-height: var(--bje-h-d, 520px);
    }

    .bje--media-droite .bje__wrap {
      flex-direction: row-reverse;
    }

    .bje__media,
    .bje__panel {
      flex: 1 1 50%;
      min-width: 0;
    }

    .bje__media {
      width: auto;
      aspect-ratio: auto;
    }

    .bje__panel {
      padding: 56px clamp(32px, 6vw, 96px);
    }

    .bje .bje__titre {
      font-size: var(--bje-titre-d, 44px);
    }

    .bje__pictos {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
  }
/* END_SECTION:bj-banniere-engagements */

/* START_SECTION:bj-banniere-split (INDEX:6) */
.bjs {
    background: var(--bjs-section-bg, transparent);
    padding-top: var(--bjs-pt, 0);
    padding-bottom: var(--bjs-pb, 0);
  }

  .bjs__wrap {
    display: flex;
    flex-direction: column;
    isolation: isolate;
  }

  /* Média */
  .bjs__media {
    position: relative;
    width: 100%;
    aspect-ratio: var(--bjs-ratio-m, 1 / 1);
    overflow: hidden;
    background: #ececec;
    line-height: 0;
  }

  .bjs__media picture,
  .bjs__video,
  .bjs__media-link {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

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

  .bjs__img--ph {
    position: absolute;
    inset: 0;
  }

  .bjs__video {
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
  }

  .bjs__video.is-playing {
    opacity: 1;
  }

  .bjs__media-link {
    z-index: 1;
  }

  /* Panneau texte */
  .bjs__panel {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 36px 20px 40px;
    overflow: hidden;
    background: var(--bjs-panel-bg, #111111);
    color: var(--bjs-text, #ffffff);
  }

  .bjs--m-texte-haut .bjs__panel {
    order: -1;
  }

  .bjs__panel-bg,
  .bjs__panel-voile {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .bjs__panel-bg {
    object-fit: cover;
  }

  .bjs__panel-voile {
    background: var(--bjs-panel-bg, #111111);
    opacity: var(--bjs-voile, 0.4);
  }

  .bjs__contenu {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: var(--bjs-align-items, center);
    gap: 14px;
    width: 100%;
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
    text-align: var(--bjs-align, center);
  }

  .bjs .bjs__surtitre {
    margin: 0;
    color: inherit;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.3;
  }

  .bjs .bjs__titre {
    margin: 0;
    color: inherit;
    font-size: var(--bjs-titre-m, 28px);
    line-height: 1.1;
    text-transform: var(--bjs-titre-case, none);
    text-wrap: balance;
  }

  .bjs .bjs__texte {
    color: inherit;
    font-size: var(--bjs-texte-m, 15px);
    line-height: 1.5;
  }

  .bjs .bjs__texte > * {
    margin: 0 0 8px;
    color: inherit;
    font-size: inherit;
    line-height: inherit;
  }

  .bjs .bjs__texte > *:last-child {
    margin-bottom: 0;
  }

  .bjs .bjs__texte a {
    color: inherit;
  }

  .bjs .bjs__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    margin-top: 10px;
    padding: 0 28px;
    border: 1px solid var(--bjs-btn-bg, #ffffff);
    border-radius: var(--bjs-btn-radius, 4px);
    background: var(--bjs-btn-bg, #ffffff);
    color: var(--bjs-btn-text, #111111);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    transition: opacity 0.2s ease;
  }

  .bjs .bjs__btn--contour {
    border-color: currentColor;
    background: transparent;
    color: var(--bjs-text, #ffffff);
  }

  .bjs .bjs__btn + .bjs__btn {
    margin-top: 0;
  }

  .bjs .bjs__btn:hover {
    opacity: 0.85;
  }

  @media (min-width: 750px) {
    .bjs__wrap {
      flex-direction: row;
      min-height: var(--bjs-h-d, 600px);
    }

    .bjs--d-media-droite .bjs__wrap {
      flex-direction: row-reverse;
    }

    .bjs__media,
    .bjs__panel {
      flex: 1 1 50%;
      min-width: 0;
    }

    .bjs__media {
      width: auto;
      aspect-ratio: auto;
    }

    .bjs__panel,
    .bjs--m-texte-haut .bjs__panel {
      order: 0;
      padding: 48px clamp(32px, 6vw, 96px);
    }

    .bjs__contenu {
      gap: 18px;
    }

    .bjs .bjs__titre {
      font-size: var(--bjs-titre-d, 44px);
    }

    .bjs .bjs__texte {
      font-size: var(--bjs-texte-d, 17px);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .bjs__video {
      display: none;
    }
  }
/* END_SECTION:bj-banniere-split */

/* START_SECTION:bj-benefices (INDEX:7) */
.bjb {
    padding: var(--bjb-pt, 56px) 0 var(--bjb-pb, 56px);
    background: var(--bjb-bg, #f8f6f4);
    color: var(--bjb-text, #010c27);
  }

  .bjb__inner {
    max-width: var(--page-width, 1500px);
    margin: 0 auto;
    padding: 0 16px;
  }

  .bjb .bjb__titre {
    margin: 0 0 24px;
    color: inherit;
    font-size: 28px;
    line-height: 1.05;
    text-align: center;
    text-transform: uppercase;
  }

  .bjb__grille {
    display: grid;
    gap: 28px 20px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .bjb__media {
    aspect-ratio: var(--bjb-ratio, 4 / 3);
    margin-bottom: 14px;
    border-radius: 6px;
    overflow: hidden;
    background: #ece8e1;
  }

  .bjb__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .bjb .bjb__item-titre {
    margin: 0 0 6px;
    color: inherit;
    font-size: 18px;
    line-height: 1.2;
    text-transform: none;
  }

  .bjb .bjb__item-texte {
    margin: 0;
    color: inherit;
    font-size: 15px;
    line-height: 1.55;
    opacity: 0.85;
  }

  /* Mobile : les bénéfices se font glisser, la carte suivante dépasse pour
     l'indiquer. Quatre visuels empilés occupaient deux écrans. */
  @media (max-width: 749px) {
    .bjb__grille {
      display: flex;
      gap: 12px;
      margin: 0 -16px;
      padding: 0 16px 4px;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scroll-padding-inline: 16px;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
    }

    .bjb__grille::-webkit-scrollbar {
      display: none;
    }

    .bjb__item {
      flex: 0 0 78%;
      scroll-snap-align: start;
    }
  }

  @media (min-width: 750px) {
    .bjb__grille {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (min-width: 1001px) {
    .bjb__inner {
      padding: 0 50px;
    }

    .bjb .bjb__titre {
      margin-bottom: 40px;
      font-size: 40px;
    }

    .bjb__grille {
      grid-template-columns: none;
      grid-auto-flow: column;
      grid-auto-columns: minmax(0, 1fr);
    }
  }
/* END_SECTION:bj-benefices */

/* START_SECTION:bj-caracteristiques (INDEX:8) */
.bjk {
    padding: var(--bjk-pt, 56px) 0 var(--bjk-pb, 56px);
    background: var(--bjk-bg, #ffffff);
    color: var(--bjk-text, #010c27);
  }

  .bjk__inner {
    display: grid;
    gap: 40px;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 16px;
  }

  .bjk .bjk__titre {
    margin: 0 0 16px;
    color: inherit;
    font-size: 24px;
    line-height: 1.1;
    text-transform: uppercase;
  }

  .bjk .bjk__titre--suite {
    margin-top: 32px;
  }

  .bjk__table {
    margin: 0;
  }

  .bjk__ligne {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 12px 0;
    border-bottom: 1px solid var(--bjk-line, #e4dfd8);
    font-size: 15px;
    line-height: 1.4;
  }

  .bjk__ligne:first-child {
    border-top: 1px solid var(--bjk-line, #e4dfd8);
  }

  .bjk__ligne dt {
    margin: 0;
    opacity: 0.7;
  }

  .bjk__ligne dd {
    margin: 0;
    font-weight: 700;
    text-align: right;
  }

  .bjk__liste {
    margin: 0;
    padding-left: 20px;
    font-size: 15px;
    line-height: 1.8;
  }

  .bjk__texte,
  .bjk__texte p {
    margin: 0 0 10px;
    color: inherit;
    font-size: 15px;
    line-height: 1.6;
  }

  @media (min-width: 1001px) {
    .bjk__inner {
      padding: 0 50px;
    }

    .bjk__inner--deux {
      grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
      gap: 80px;
    }

    .bjk .bjk__titre {
      font-size: 30px;
    }
  }
/* END_SECTION:bj-caracteristiques */

/* START_SECTION:bj-montessori (INDEX:9) */
.bjm {
    padding: calc(var(--bjm-pad, 48px) - 8px) 0;
    background: var(--bjm-bg, #ffffff);
    color: var(--bjm-text, #010c27);
  }

  .bjm__inner {
    max-width: var(--page-width, 1500px);
    margin: 0 auto;
    padding: 0 12px;
  }

  .bjm__presse,
  .bjm__panneau {
    text-align: center;
  }

  .bjm .bjm__surtitre {
    display: inline-block;
    margin: 0 0 14px;
    padding: 7px 14px;
    border-radius: 100px;
    background: var(--bjm-pill, #f8f6f4);
    color: inherit;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1;
    text-transform: uppercase;
  }

  .bjm .bjm__titre {
    margin: 0;
    color: inherit;
    font-size: 24px;
    line-height: 1.08;
    text-align: center;
    text-transform: uppercase;
    text-wrap: balance;
  }

  /* ---------- Bandeau des médias ---------- */
  .bjm__defile {
    margin: 22px -12px 0;
    overflow: hidden;
    container-type: inline-size;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  }

  .bjm__piste {
    display: flex;
    align-items: stretch;
    width: max-content;
    margin: 0;
    padding: 0;
    list-style: none;
    animation: bjm-defile var(--bjm-duree, 40s) linear infinite;
  }

  .bjm__defile:hover .bjm__piste {
    animation-play-state: paused;
  }

  /* Une série complète occupe au moins toute la largeur du bandeau. */
  .bjm__media {
    flex: none;
    box-sizing: border-box;
    width: 138px;
    width: max(138px, calc(100cqw / var(--bjm-n, 6)));
    padding: 0 5px;
  }

  .bjm__tuile {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    height: calc(var(--bjm-logo-h, 40px) * 0.8 + 32px);
    padding: 0 14px;
    border: 1px solid var(--bjm-line, #e4dfd8);
    border-radius: 12px;
    background: #ffffff;
    color: inherit;
    text-decoration: none;
  }

  .bjm__tuile img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: calc(var(--bjm-logo-h, 40px) * 0.8);
    object-fit: contain;
  }

  .bjm__defile--gris img {
    filter: grayscale(1);
    opacity: 0.72;
    transition: filter 0.2s ease, opacity 0.2s ease;
  }

  .bjm__defile--gris .bjm__tuile:hover img {
    filter: none;
    opacity: 1;
  }

  /* Repli sans logo : le nom du média, centré dans sa tuile. */
  .bjm__nom {
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
  }

  .bjm__defile--fixe {
    -webkit-mask-image: none;
    mask-image: none;
  }

  .bjm__defile--fixe .bjm__piste {
    flex-wrap: wrap;
    justify-content: center;
    width: auto;
    row-gap: 10px;
    animation: none;
  }

  .bjm__defile--fixe .bjm__media {
    width: 160px;
  }

  .bjm__defile--fixe .bjm__media[aria-hidden='true'] {
    display: none;
  }

  @keyframes bjm-defile {
    to {
      transform: translateX(-50%);
    }
  }

  /* ---------- Bandeau des chiffres ---------- */
  .bjm__panneau {
    padding: 22px 10px 20px;
    border-radius: 16px;
    background: var(--bjm-bg2, #010c27);
    color: var(--bjm-text2, #ffffff);
  }

  .bjm__presse + .bjm__panneau {
    margin-top: 28px;
  }

  .bjm .bjm__panneau .bjm__surtitre {
    margin-bottom: 10px;
    background: rgba(255, 255, 255, 0.12);
    background: color-mix(in srgb, currentColor 12%, transparent);
  }

  .bjm .bjm__panneau .bjm__titre {
    font-size: 20px;
  }

  .bjm__chiffres {
    display: grid;
    grid-template-columns: repeat(var(--bjm-cols-m, 3), minmax(0, 1fr));
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
  }

  /* Pas de cartes : des colonnes séparées par un filet, pour rester fin. */
  .bjm__chiffre {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding: 2px 6px;
    text-align: center;
  }

  .bjm__chiffre + .bjm__chiffre {
    border-left: 1px solid rgba(255, 255, 255, 0.16);
    border-left: 1px solid color-mix(in srgb, currentColor 16%, transparent);
  }

  /* Pastille de couleur : rappelle les pièces du jeu. Le pictogramme prend
     la couleur du fond du panneau pour rester lisible. */
  .bjm__pastille {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 10px;
    background: var(--bjm-accent, #ffc93c);
    color: var(--bjm-bg2, #010c27);
  }

  .bjm__picto {
    width: 18px;
    height: 18px;
  }

  .bjm__texte {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    min-width: 0;
  }

  .bjm__valeur {
    font-family: var(--font-heading--family, inherit);
    font-size: clamp(22px, 7.4vw, 28px);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
  }

  .bjm__libelle {
    font-size: 11.5px;
    line-height: 1.3;
    opacity: 0.86;
    text-wrap: balance;
  }

  .bjm .bjm__source {
    margin: 12px 0 0;
    color: inherit;
    font-size: 12px;
    line-height: 1.4;
    text-align: center;
    opacity: 0.65;
  }

  @media (min-width: 750px) {
    .bjm {
      padding: var(--bjm-pad, 48px) 0;
    }

    .bjm__inner {
      padding: 0 24px;
    }

    .bjm__defile {
      margin: 30px 0 0;
    }

    .bjm__media {
      padding: 0 8px;
    }

    .bjm__tuile {
      height: calc(var(--bjm-logo-h, 40px) + 32px);
      border-radius: 14px;
    }

    .bjm__tuile img {
      max-height: var(--bjm-logo-h, 40px);
    }

    .bjm__nom {
      font-size: 17px;
    }

    .bjm__panneau {
      padding: 28px;
      border-radius: 20px;
    }

    .bjm__presse + .bjm__panneau {
      margin-top: 36px;
    }

    .bjm .bjm__panneau .bjm__titre {
      font-size: 24px;
    }

    .bjm__chiffres {
      grid-template-columns: repeat(var(--bjm-cols, 3), minmax(0, 1fr));
      margin-top: 22px;
    }

    /* Pastille à gauche, valeur et libellé à droite. */
    .bjm__chiffre {
      flex-direction: row;
      justify-content: center;
      gap: 14px;
      padding: 4px 16px;
      text-align: left;
    }

    .bjm__pastille {
      width: 44px;
      height: 44px;
      border-radius: 13px;
    }

    .bjm__picto {
      width: 23px;
      height: 23px;
    }

    .bjm__texte {
      align-items: flex-start;
      gap: 6px;
    }

    .bjm__valeur {
      font-size: 34px;
      text-align: left;
    }

    .bjm__libelle {
      font-size: 14px;
    }
  }

  @media (min-width: 1001px) {
    .bjm__inner {
      padding: 0 50px;
    }

    .bjm .bjm__titre {
      font-size: 36px;
    }

    .bjm .bjm__panneau .bjm__titre {
      font-size: 26px;
    }
  }

  /* Grand écran : le titre à gauche, les chiffres à droite, sur une ligne. */
  @media (min-width: 1200px) {
    .bjm__panneau:has(.bjm__entete) {
      display: grid;
      grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
      align-items: center;
      column-gap: 36px;
      padding: 30px 40px;
    }

    .bjm__entete {
      text-align: left;
    }

    .bjm .bjm__panneau .bjm__titre {
      text-align: left;
    }

    .bjm__panneau:has(.bjm__entete) .bjm__chiffres {
      margin-top: 0;
    }

    .bjm__panneau:has(.bjm__entete) .bjm__source {
      grid-column: 1 / -1;
    }

    .bjm__valeur {
      font-size: 40px;
    }

    .bjm__libelle {
      font-size: 15px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .bjm__defile {
      -webkit-mask-image: none;
      mask-image: none;
    }

    .bjm__piste {
      flex-wrap: wrap;
      justify-content: center;
      width: auto;
      row-gap: 10px;
      animation: none;
    }

    .bjm__media {
      width: 160px;
    }

    .bjm__media[aria-hidden='true'] {
      display: none;
    }
  }
/* END_SECTION:bj-montessori */

/* START_SECTION:bj-page-texte (INDEX:10) */
.bjtexte {
    padding: var(--bjtexte-pt, 64px) 20px var(--bjtexte-pb, 56px);
    background: #ffffff;
  }

  .bjtexte__colonne {
    max-width: var(--bjtexte-maxw, 720px);
    margin-inline: auto;
  }

  .bjtexte__surtitre {
    display: inline-block;
    margin: 0 0 14px;
    padding: 5px 12px;
    border-radius: 999px;
    background: #e9edf3;
    color: #010c27;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .bjtexte .bjtexte__titre {
    margin: 0 0 18px;
    color: #010c27;
    font-size: 40px;
    line-height: 1.05;
    text-transform: uppercase;
  }

  .bjtexte__filet,
  .bjtexte__exergue-filet {
    display: block;
    width: 64px;
    height: 3px;
    background: linear-gradient(
      to right,
      #2f5fe3 0 33.4%,
      #f8f6f4 33.4% 66.7%,
      #e8443a 66.7% 100%
    );
  }

  .bjtexte__filet {
    margin-bottom: 32px;
  }

  /* Intro : la phrase de lancement se lit avant tout le reste. */
  .bjtexte__intro p {
    margin: 0 0 8px;
    color: #010c27;
    font-size: 21px;
    line-height: 1.55;
    font-weight: 500;
  }

  /* Chapitres numérotés : même langage que les grilles produit 01/02/03. */
  .bjtexte__chapitre {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 18px;
    padding: 30px 0;
    border-bottom: 1px solid #e3e7ec;
  }

  .bjtexte__chapitre:has(+ .bjtexte__exergue),
  .bjtexte__chapitre:has(+ .bjtexte__chiffres),
  .bjtexte__chapitre:last-child {
    border-bottom: 0;
  }

  .bjtexte__num {
    color: #010c27;
    font-size: 44px;
    font-weight: 800;
    line-height: 0.9;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
  }

  .bjtexte__chapitre-titre {
    margin: 4px 0 10px;
    color: #010c27;
    font-size: 15px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .bjtexte__chapitre-texte,
  .bjtexte__chapitre-texte p {
    margin: 0;
    color: #3a4256;
    font-size: 16.5px;
    line-height: 1.7;
  }

  /* Exergue : la phrase-signature, posée seule au centre. */
  .bjtexte__exergue {
    margin: 44px 0;
    text-align: center;
  }

  .bjtexte__exergue-filet {
    margin: 0 auto 20px;
  }

  .bjtexte__exergue p {
    margin: 0;
    color: #010c27;
    font-size: 27px;
    line-height: 1.35;
    font-weight: 700;
  }

  /* Chiffres clés : trois preuves, séparées par des filets fins. */
  .bjtexte__chiffres {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin: 36px 0 8px;
    padding: 26px 0;
    border-top: 1px solid #e3e7ec;
    border-bottom: 1px solid #e3e7ec;
    list-style: none;
  }

  .bjtexte__chiffres li {
    padding: 0 14px;
    text-align: center;
  }

  .bjtexte__chiffres li + li {
    border-left: 1px solid #e3e7ec;
  }

  .bjtexte__chiffres strong {
    display: block;
    margin-bottom: 6px;
    color: #010c27;
    font-size: 30px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.01em;
  }

  .bjtexte__chiffres span {
    color: #3a4256;
    font-size: 12.5px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  /* Corps libre et repli page.content. */
  .bjtexte__corps {
    color: #3a4256;
    font-size: 17px;
    line-height: 1.75;
  }

  .bjtexte__corps p,
  .bjtexte__corps li {
    font-size: inherit;
    line-height: inherit;
  }

  .bjtexte__corps p {
    margin: 18px 0 0;
  }

  .bjtexte__corps h2 {
    margin: 40px 0 14px;
    color: #010c27;
    font-size: 20px;
    line-height: 1.2;
    letter-spacing: 0.02em;
    text-transform: uppercase;
  }

  .bjtexte__corps strong {
    color: #010c27;
  }

  .bjtexte__corps a {
    color: #010c27;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  @media (max-width: 749px) {
    .bjtexte {
      padding-top: 40px;
      padding-bottom: 36px;
    }

    .bjtexte .bjtexte__titre {
      font-size: 28px;
    }

    .bjtexte__filet {
      margin-bottom: 24px;
    }

    .bjtexte__intro p {
      font-size: 18px;
      line-height: 1.55;
    }

    .bjtexte__chapitre {
      grid-template-columns: 56px minmax(0, 1fr);
      gap: 14px;
      padding: 24px 0;
    }

    .bjtexte__num {
      font-size: 32px;
    }

    .bjtexte__chapitre-texte,
    .bjtexte__chapitre-texte p {
      font-size: 15.5px;
      line-height: 1.65;
    }

    .bjtexte__exergue {
      margin: 34px 0;
    }

    .bjtexte__exergue p {
      font-size: 21px;
    }

    .bjtexte__chiffres {
      margin-top: 28px;
      padding: 20px 0;
    }

    .bjtexte__chiffres strong {
      font-size: 22px;
    }

    .bjtexte__chiffres span {
      font-size: 10.5px;
    }

    .bjtexte__corps {
      font-size: 16px;
      line-height: 1.7;
    }
  }
/* END_SECTION:bj-page-texte */

/* START_SECTION:bj-politique (INDEX:11) */
.bjpol {
    color: var(--bjpol-text, #010c27);
  }

  .bjpol__bandeau {
    background: var(--bjpol-bandeau, #f8f6f4);
  }

  .bjpol__bandeau-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 36px 16px 32px;
  }

  .bjpol .bjpol__surtitre {
    margin: 0 0 10px;
    color: inherit;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .bjpol .bjpol__titre {
    margin: 0;
    color: inherit;
    font-size: 30px;
    line-height: 1.05;
    text-transform: uppercase;
  }

  .bjpol__grille {
    max-width: 1100px;
    margin: 0 auto;
    padding: 28px 16px 64px;
  }

  .bjpol__nav {
    margin-bottom: 28px;
    padding: 16px 18px;
    border-radius: 8px;
    background: var(--bjpol-carte, #f8f6f4);
  }

  .bjpol .bjpol__nav-titre {
    margin: 0 0 10px;
    color: inherit;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .bjpol__nav ul {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .bjpol__nav a {
    color: inherit;
    font-size: 14px;
    text-decoration: none;
    opacity: 0.75;
  }

  .bjpol__nav a:hover,
  .bjpol__nav a[aria-current='page'] {
    opacity: 1;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 4px;
  }

  .bjpol__societe {
    margin-top: 40px;
    padding: 20px 22px;
    border-radius: 8px;
    background: var(--bjpol-carte, #f8f6f4);
    font-size: 14px;
    line-height: 1.6;
  }

  .bjpol__societe p {
    margin: 0 0 6px;
    color: inherit;
  }

  .bjpol__societe a {
    color: inherit;
  }

  /* ---------- Texte légal : pages Boojour ET pages natives /policies/ ---------- */
  .shopify-policy__container {
    max-width: 780px;
    margin: 0 auto;
    padding: 40px 16px 72px;
    color: #010c27;
  }

  .shopify-policy__title {
    margin-bottom: 28px;
    text-align: left;
  }

  .shopify-policy__title h1 {
    margin: 0;
    font-size: 30px;
    line-height: 1.05;
    text-transform: uppercase;
  }

  .bjpol__corps,
  .shopify-policy__body {
    max-width: 720px;
    font-size: 15px;
    line-height: 1.7;
    overflow-wrap: anywhere;
  }

  .bjpol__corps :is(h1, h2, h3, h4),
  .shopify-policy__body :is(h1, h2, h3, h4) {
    margin: 36px 0 12px;
    color: inherit;
    line-height: 1.15;
  }

  .bjpol__corps :is(h1, h2),
  .shopify-policy__body :is(h1, h2) {
    padding-top: 28px;
    border-top: 1px solid #e4dfd8;
    font-size: 22px;
    text-transform: uppercase;
  }

  .bjpol__corps > :is(h1, h2):first-child,
  .shopify-policy__body > :is(h1, h2):first-child,
  .shopify-policy__body > .rte > :is(h1, h2):first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
  }

  .bjpol__corps :is(h3, h4),
  .shopify-policy__body :is(h3, h4) {
    font-size: 17px;
    text-transform: none;
  }

  .bjpol__corps :is(p, ul, ol),
  .shopify-policy__body :is(p, ul, ol) {
    margin: 0 0 14px;
    color: inherit;
    font-size: inherit;
    line-height: inherit;
  }

  .bjpol__corps :is(ul, ol),
  .shopify-policy__body :is(ul, ol) {
    padding-left: 22px;
  }

  .bjpol__corps li,
  .shopify-policy__body li {
    margin-bottom: 6px;
  }

  .bjpol__corps a,
  .shopify-policy__body a {
    color: inherit;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .bjpol__corps table,
  .shopify-policy__body table {
    display: block;
    width: 100%;
    margin: 0 0 20px;
    overflow-x: auto;
    border-collapse: collapse;
    font-size: 14px;
  }

  .bjpol__corps :is(th, td),
  .shopify-policy__body :is(th, td) {
    padding: 10px 12px;
    border: 1px solid #e4dfd8;
    text-align: left;
    vertical-align: top;
  }

  .bjpol__corps th,
  .shopify-policy__body th {
    background: #f8f6f4;
    font-weight: 700;
  }

  @media (min-width: 1001px) {
    .bjpol__bandeau-inner {
      padding: 56px 50px 48px;
    }

    .bjpol .bjpol__titre,
    .shopify-policy__title h1 {
      font-size: 44px;
    }

    .bjpol__grille {
      display: grid;
      grid-template-columns: 260px minmax(0, 1fr);
      gap: 64px;
      padding: 48px 50px 96px;
    }

    .bjpol__grille:not(:has(.bjpol__nav)) {
      grid-template-columns: minmax(0, 1fr);
    }

    .bjpol__nav {
      position: sticky;
      top: 90px;
      align-self: start;
      margin-bottom: 0;
    }

    .bjpol__nav ul {
      flex-direction: column;
      gap: 10px;
    }

    .bjpol__corps,
    .shopify-policy__body {
      font-size: 16px;
    }

    .shopify-policy__container {
      padding: 64px 16px 96px;
    }
  }
/* END_SECTION:bj-politique */

/* START_SECTION:bj-produits (INDEX:12) */
.bjp {
    padding-top: var(--bjp-pt, 56px);
    padding-bottom: var(--bjp-pb, 56px);
    background: var(--bjp-bg, #ffffff);
    color: var(--bjp-text, #010c27);
  }

  .bjp__tete {
    padding: 0 16px;
    margin-bottom: 24px;
    text-align: center;
  }

  .bjp .bjp__surtitre {
    margin: 0 0 8px;
    color: inherit;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .bjp .bjp__titre {
    margin: 0;
    color: inherit;
    font-size: 30px;
    line-height: 1.05;
    text-transform: uppercase;
  }

  .bjp__cadre {
    position: relative;
  }

  .bjp__piste {
    display: flex;
    gap: 14px;
    margin: 0;
    padding: 0 16px 4px;
    list-style: none;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 16px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .bjp__piste::-webkit-scrollbar {
    display: none;
  }

  .bjp__carte {
    display: flex;
    flex: 0 0 72%;
    min-width: 0;
    scroll-snap-align: start;
  }

  .bjp__lien {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    color: inherit;
    text-decoration: none;
  }

  .bjp__media {
    position: relative;
    aspect-ratio: var(--bjp-ratio, 4 / 5);
    margin-bottom: 12px;
    border-radius: 6px;
    overflow: hidden;
    background: var(--bjp-media-bg, #f1eee9);
  }

  .bjp__media img,
  .bjp__media svg {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .bjp__badge {
    position: absolute;
    left: 10px;
    padding: 4px 8px;
    border: 1px solid #010c27;
    border-radius: 4px;
    background: #ffffff;
    color: #010c27;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
  }

  .bjp__badge--haut {
    top: 10px;
  }

  .bjp__badge--bas {
    bottom: 10px;
  }

  .bjp__badge--rupture {
    left: auto;
    right: 10px;
    border-color: transparent;
    background: #010c27;
    color: #ffffff;
  }

  .bjp .bjp__nom {
    margin: 0 0 6px;
    color: inherit;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
    text-transform: none;
  }

  .bjp .bjp__avis {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 8px;
    color: inherit;
    font-size: 13px;
  }

  .bjp__etoiles {
    position: relative;
    display: inline-block;
    font-size: 15px;
    letter-spacing: 1px;
    line-height: 1;
  }

  .bjp__etoiles::before {
    content: '★★★★★';
    opacity: 0.2;
  }

  .bjp__etoiles::after {
    content: '★★★★★';
    position: absolute;
    top: 0;
    left: 0;
    width: var(--bjp-pct, 0%);
    overflow: hidden;
    white-space: nowrap;
    color: var(--bjp-star, #010c27);
  }

  .bjp .bjp__accroche {
    display: -webkit-box;
    margin: 0 0 8px;
    overflow: hidden;
    color: inherit;
    font-size: 13px;
    line-height: 1.4;
    opacity: 0.7;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .bjp__chiffres {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    margin: 0 0 8px;
    padding: 0;
    list-style: none;
    font-size: 13px;
    opacity: 0.85;
  }

  .bjp .bjp__prix {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 8px;
    margin: auto 0 0;
    padding-top: 4px;
    color: inherit;
    font-size: 14px;
  }

  .bjp__montant {
    font-size: 19px;
    font-weight: 800;
  }

  .bjp__montant--promo {
    color: var(--bjp-promo, #c4504f);
  }

  .bjp__barre {
    font-size: 14px;
    opacity: 0.6;
  }

  .bjp__remise {
    align-self: center;
    padding: 3px 7px;
    border-radius: 4px;
    background: var(--bjp-promo, #c4504f);
    color: #ffffff;
    font-size: 11px;
    font-weight: 700;
  }

  .bjp__vide {
    padding: 24px 0;
    font-size: 14px;
  }

  .bjp__fleche {
    display: none;
  }

  .bjp .bjp__pied {
    margin: 24px 0 0;
    text-align: center;
    font-size: 15px;
    font-weight: 700;
  }

  .bjp__pied a {
    color: inherit;
    text-underline-offset: 4px;
  }

  @media (min-width: 750px) {
    .bjp__carte {
      flex-basis: 40%;
    }
  }

  @media (min-width: 1001px) {
    .bjp__tete {
      margin-bottom: 36px;
    }

    .bjp .bjp__titre {
      font-size: 44px;
    }

    .bjp__piste {
      gap: 24px;
      padding: 0 50px 4px;
      scroll-padding-left: 50px;
    }

    /* Une carte de plus dépasse à droite pour montrer que ça défile. */
    .bjp__carte {
      flex-basis: calc((100% - 24px * var(--bjp-par-vue, 4)) / (var(--bjp-par-vue, 4) + 0.35));
    }

    .bjp__fleche:not([hidden]) {
      position: absolute;
      top: 34%;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 48px;
      height: 48px;
      border: 0;
      border-radius: 50%;
      background: #010c27;
      color: #ffffff;
      cursor: pointer;
    }

    .bjp__fleche--prec {
      left: 20px;
    }

    .bjp__fleche--suiv {
      right: 20px;
    }
  }
/* END_SECTION:bj-produits */

/* START_SECTION:bj-societe (INDEX:13) */
.bjso {
    background: var(--bjso-bg, #ffffff);
    color: var(--bjso-text, #010c27);
    padding-top: var(--bjso-pt, 56px);
    padding-bottom: var(--bjso-pb, 56px);
  }

  .bjso__wrap {
    display: flex;
    flex-direction: column;
    gap: 28px;
  }

  .bjso .bjso__surtitre {
    margin: 0 0 10px;
    color: inherit;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .bjso .bjso__titre {
    margin: 0 0 14px;
    color: inherit;
    font-size: 28px;
    line-height: 1.1;
  }

  .bjso .bjso__texte,
  .bjso .bjso__texte p {
    margin: 0 0 10px;
    color: inherit;
    font-size: 15px;
    line-height: 1.6;
  }

  .bjso .bjso__lien {
    display: inline-block;
    margin-top: 6px;
    color: inherit;
    font-size: 15px;
    font-weight: 600;
    text-underline-offset: 4px;
  }

  .bjso__fiche {
    margin: 0;
    padding: 8px 20px;
    border-radius: 8px;
    background: var(--bjso-card, #f1eee9);
  }

  .bjso__ligne {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 0;
    border-bottom: 1px solid var(--bjso-line, #e4dfd8);
  }

  .bjso__ligne:last-child {
    border-bottom: 0;
  }

  .bjso .bjso__ligne dt {
    flex: 0 0 38%;
    margin: 0;
    font-size: 13px;
    opacity: 0.7;
  }

  .bjso .bjso__ligne dd {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    text-align: right;
  }

  @media (min-width: 750px) {
    .bjso__wrap {
      flex-direction: row;
      align-items: center;
      gap: 64px;
    }

    .bjso__intro,
    .bjso__fiche {
      flex: 1 1 50%;
      min-width: 0;
    }

    .bjso .bjso__titre {
      font-size: 40px;
    }

    .bjso__fiche {
      padding: 12px 32px;
    }
  }
/* END_SECTION:bj-societe */

/* START_SECTION:bj-sticky-atc (INDEX:14) */
.bjst {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    padding-bottom: env(safe-area-inset-bottom, 0);
    border-radius: 14px 14px 0 0;
    background: var(--bjst-bg, #ffffff);
    color: var(--bjst-text, #010c27);
    box-shadow: 0 -6px 24px rgb(1 12 39 / 12%);
    transform: translateY(110%);
    transition: transform 0.25s ease;
  }

  .bjst[hidden] {
    display: block;
    visibility: hidden;
  }

  .bjst.is-visible {
    visibility: visible;
    transform: translateY(0);
  }

  .bjst__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    max-width: var(--page-width, 1500px);
    margin: 0 auto;
    padding: 10px 16px;
  }

  .bjst__infos {
    min-width: 0;
  }

  .bjst .bjst__titre {
    display: none;
    margin: 0 0 4px;
    color: inherit;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.15;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .bjst .bjst__prix {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 8px;
    margin: 0;
    color: inherit;
    font-size: 13px;
    line-height: 1.2;
  }

  .bjst__montant {
    font-size: 19px;
    font-weight: 800;
    white-space: nowrap;
  }

  .bjst__montant--promo,
  .bjst__eco {
    color: var(--bjst-promo, #c4504f);
  }

  .bjst__barre {
    font-size: 13px;
    opacity: 0.6;
    white-space: nowrap;
  }

  .bjst__badge {
    align-self: center;
    padding: 3px 7px;
    border-radius: 4px;
    background: var(--bjst-promo, #c4504f);
    color: #ffffff;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
  }

  .bjst__eco {
    flex-basis: 100%;
    font-size: 13px;
  }

  .bjst [hidden] {
    display: none;
  }

  .bjst__btn {
    flex: 0 0 auto;
    min-height: 48px;
    padding: 0 22px;
    border: 0;
    border-radius: 4px;
    background: var(--bjst-btn-bg, #010c27);
    color: var(--bjst-btn-text, #ffffff);
    font: inherit;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
  }

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

  /* De l'air sous le footer pour que la barre ne cache pas sa fin. */
  body:has(.bjst) {
    padding-bottom: 84px;
  }

  /* Mobile : prix + prix barré sur une ligne, économie en euros dessous. La
     pastille en % fait doublon quand l'économie est affichée : elle ne reste
     que sur grand écran (ou si la ligne d'économie est masquée). */
  @media (max-width: 749px) {
    .bjst__prix:has(.bjst__eco:not([hidden])) .bjst__badge {
      display: none;
    }
  }

  @media (min-width: 750px) {
    .bjst__inner {
      padding: 14px 50px;
    }

    .bjst .bjst__titre {
      display: block;
    }

    .bjst__eco {
      flex-basis: auto;
      margin-left: 10px;
    }

    .bjst__btn {
      min-height: 52px;
      padding: 0 40px;
    }
  }
  /* ------------------------------------------------------------------
     Offre Kaching : rendu Tediber verrouillé par le thème, prioritaire
     sur les réglages de couleurs de l'app (variables inline battues par
     le !important). Cartes blanches, sélection encadrée marine, badge
     marine, prix promo rouge sur l'offre choisie seulement.
     (Logé ici car le custom_css global est plafonné à 1500 caractères.)
  ------------------------------------------------------------------ */
  .kaching-bundles__block {
    --bar-background-color: #ffffff !important;
    --bar-selected-background-color: #ffffff !important;
    --bar-border-color: #e4dfd8 !important;
    --bar-selected-border-color: #010c27 !important;
    --bar-most-popular-background-color: #010c27 !important;
    --bar-most-popular-color: #ffffff !important;
    --bar-label-background-color: #eef1f6 !important;
    --bar-label-color: #010c27 !important;
    --bar-price-color: #c62f2f !important;
    --bar-full-price-color: #9aa0ab !important;
    --bar-title-color: #010c27 !important;
    --bar-subtitle-color: #676d7d !important;
    --block-title-color: #010c27 !important;
  }

  .kaching-bundles__bar:not(.kaching-bundles__bar--selected) {
    --bar-price-color: #010c27 !important;
  }

  /* Le badge « Meilleure offre » et le cadeau portent leurs variables en
     inline sur eux-mêmes : on les cible directement pour les battre. */
  .kaching-bundles__bar-most-popular {
    --bar-most-popular-background-color: #010c27 !important;
    --bar-most-popular-color: #ffffff !important;
  }

  /* Sélection épaissie façon Tediber : la bordure marine est dessinée en
     calque AU-DESSUS du contenu (une ombre interne serait recouverte par
     les rangées cadeaux pleine largeur). */
  .kaching-bundles__bar--selected .kaching-bundles__bar-container {
    position: relative;
    box-shadow: none !important;
  }

  /* Pas de clip sur la carte (le badge Meilleure offre dépasse en haut) :
     les coins bas du dernier cadeau sont arrondis à la main. */
  .kaching-bundles__bar-container .kaching-bundles__free-gift:last-of-type {
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
  }

  .kaching-bundles__bar--selected .kaching-bundles__bar-container::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    border: 2px solid #010c27;
    border-radius: inherit;
    pointer-events: none;
  }

  /* Filet fin entre les deux cadeaux, sous le calque de bordure. */
  .kaching-bundles__free-gift__divider {
    height: 1px !important;
    margin: 0 !important;
    border: 0 !important;
    background: #e4dfd8 !important;
  }

  .kaching-bundles__free-gift {
    --kaching-free-gift-background-color: #f8f6f4 !important;
    --kaching-free-gift-text-color: #010c27 !important;
    --kaching-free-gift-selected-background-color: #f8f6f4 !important;
    --kaching-free-gift-selected-text-color: #010c27 !important;
  }
/* END_SECTION:bj-sticky-atc */

/* START_SECTION:bj-topbar (INDEX:15) */
.bjt {
    background: var(--bjt-bg, #010c27);
    color: var(--bjt-text, #f8f6f4);
    font-size: 12px;
    line-height: 1.2;
  }

  .bjt a {
    color: inherit;
  }

  .bjt__inner {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    min-height: var(--bjt-h, 32px);
    padding: 0 16px;
  }

  .bjt__note {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    white-space: nowrap;
  }

  .bjt__note-label {
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .bjt__note-chiffre {
    display: none;
    opacity: 0.85;
  }

  /* Étoiles : une rangée estompée, recouverte par une rangée pleine sur --bjt-pct. */
  .bjt__etoiles {
    position: relative;
    display: inline-block;
    font-size: 14px;
    letter-spacing: 1px;
    line-height: 1;
  }

  .bjt__etoiles::before {
    content: '★★★★★';
    opacity: 0.3;
  }

  .bjt__etoiles::after {
    content: '★★★★★';
    position: absolute;
    top: 0;
    left: 0;
    width: var(--bjt-pct, 0%);
    overflow: hidden;
    white-space: nowrap;
    color: var(--bjt-star, #f1e2cd);
  }

  .bjt__centre {
    display: grid;
    min-width: 0;
    text-align: right;
  }

  .bjt__message {
    grid-area: 1 / 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease;
  }

  .bjt__message.is-active {
    opacity: 1;
    visibility: visible;
  }

  .bjt__droite {
    display: none;
  }

  @media (min-width: 1001px) {
    .bjt__inner {
      grid-template-columns: 1fr auto 1fr;
      gap: 24px;
      padding: 0 50px;
    }

    .bjt__note-chiffre {
      display: inline;
    }

    .bjt__centre {
      text-align: center;
    }

    .bjt__droite {
      display: flex;
      justify-content: flex-end;
      gap: 16px;
      font-weight: 700;
    }

    .bjt__droite a {
      text-underline-offset: 3px;
    }
  }

  /* Bandeau cookies natif de Shopify aux couleurs Boojour, compact sur mobile.
     « Accepter » et « Refuser » gardent le même poids visuel (CNIL). */
  body #shopify-pc__banner.shopify-pc__banner__dialog {
    border-top-color: #e4dfd8 !important;
  }

  body #shopify-pc__banner .shopify-pc__banner__body,
  body #shopify-pc__banner .shopify-pc__banner__body *,
  body #shopify-pc__banner .shopify-pc__banner__body a {
    color: #010c27 !important;
  }

  body #shopify-pc__banner #shopify-pc__banner__btn-accept,
  body #shopify-pc__banner #shopify-pc__banner__btn-decline {
    border: 1px solid #010c27 !important;
    border-radius: 6px !important;
    background: #010c27 !important;
    color: #ffffff !important;
  }

  body #shopify-pc__banner #shopify-pc__banner__btn-manage-prefs {
    border: 1px solid rgb(1 12 39 / 0.35) !important;
    border-radius: 6px !important;
    color: #010c27 !important;
  }

  @media (max-width: 749px) {
    body #shopify-pc__banner.shopify-pc__banner__dialog {
      right: 8px !important;
      bottom: 8px !important;
      left: 8px !important;
      padding: 12px !important;
      border-color: #e4dfd8 !important;
      border-radius: 12px !important;
    }

    body #shopify-pc__banner .shopify-pc__banner__wrapper {
      gap: 10px;
    }

    body #shopify-pc__banner .shopify-pc__banner__body::before,
    body #shopify-pc__banner .shopify-pc__banner__body a {
      font-size: 12px !important;
    }

    body #shopify-pc__banner .shopify-pc__banner__btns {
      flex-flow: row wrap !important;
      gap: 6px 8px;
    }

    body #shopify-pc__banner .shopify-pc__banner__btns button {
      flex: 1 1 40%;
      width: auto;
      padding: 11px 12px !important;
    }

    body #shopify-pc__banner .shopify-pc__banner__btns #shopify-pc__banner__btn-manage-prefs {
      flex: 1 0 100%;
      padding: 2px !important;
      border: 0 !important;
      background: none !important;
      font-weight: 400 !important;
      text-decoration: underline;
    }
  }

  /* Fiche produit sur mobile (repérée par la barre d'achat fixe) : bandeau
     cookies réduit à une ligne de texte et deux boutons, posé au-dessus de
     la barre d'achat pour ne jamais la recouvrir. */
  @media (max-width: 749px) {
    body:has(.bjst) #shopify-pc__banner.shopify-pc__banner__dialog {
      bottom: 96px !important;
      padding: 10px 12px !important;
      box-shadow: 0 4px 18px rgb(1 12 39 / 0.12) !important;
    }

    body:has(.bjst) #shopify-pc__banner .shopify-pc__banner__wrapper {
      gap: 8px;
    }

    body:has(.bjst) #shopify-pc__banner .shopify-pc__banner__body::before {
      content: "Cookies de mesure d'audience et de publicité. ";
    }

    body:has(.bjst) #shopify-pc__banner .shopify-pc__banner__btns button {
      padding: 9px 10px !important;
    }

    body:has(.bjst) #shopify-pc__banner .shopify-pc__banner__btns #shopify-pc__banner__btn-manage-prefs {
      display: none !important;
    }
  }

  /* Barre du haut fixe : elle reste collée en haut, le header se cale dessous.
     Elle est un cran au-dessus du header : quand le thème escamote le header
     au défilement, il glisse SOUS la barre. Le menu mobile s'ouvre sous le
     header (il se cale sur son bord bas), il n'est donc jamais recouvert. */
  .section-bj-topbar:has(.bjt--fixe-partout) {
    position: sticky;
    top: 0;
    z-index: 5;
  }

  .section-bj-topbar:has(.bjt--fixe-partout) ~ .section-header {
    top: var(--bj-topbar-h, 32px);
    transition: transform 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);
  }

  @media (min-width: 750px) {
    .section-bj-topbar:has(.bjt--fixe-desktop) {
      position: sticky;
      top: 0;
      z-index: 5;
    }

    .section-bj-topbar:has(.bjt--fixe-desktop) ~ .section-header {
      top: var(--bj-topbar-h, 32px);
      transition: transform 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);
    }

    body:has(.bjt--fixe-partout) .product-section__medias--sticky,
    body:has(.bjt--fixe-partout) .product-section__product-info--sticky,
    body:has(.bjt--fixe-desktop) .product-section__medias--sticky,
    body:has(.bjt--fixe-desktop) .product-section__product-info--sticky {
      top: calc(var(--bj-topbar-h, 32px) + var(--header-height, 55px) + 16px);
    }
  }

  /* Cible du badge d'avis : garde le titre des avis dégagé sous la
     barre du haut et le header fixes. */
  [id^='shopify-section-'][id$='__bj_avis'] {
    scroll-margin-top: calc(var(--bj-topbar-h, 32px) + var(--header-height, 55px) + 12px);
  }

  /* Petits écrans desktop (990 à 1199 px) : le menu du header tient sur une
     ligne au lieu de passer sur deux. */
  @media (min-width: 990px) and (max-width: 1199px) {
    .section-header .page-width {
      padding-inline: 28px;
    }

    .section-header .header__menu-desktop-list {
      flex-wrap: nowrap;
      gap: 0 16px;
    }

    .section-header .header__menu-link {
      font-size: 13px;
      white-space: nowrap;
    }
  }
/* END_SECTION:bj-topbar */

/* START_SECTION:blog-featured (INDEX:16) */
.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);
    column-gap: var(--grid-gap-vertical);
    row-gap: var(--grid-gap-horizontal);
  }

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

/* START_SECTION:breadcrumbs (INDEX:17) */
.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);
  }
  @media (width <= 750px) {
    .breadcrumbs--hide-mobile {
      display: none;
    }
  }
/* END_SECTION:breadcrumbs */

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

  cart-drawer {
    position: fixed;
    z-index: 10000;
    left: 0;
    top: 0;
    /* 100% et non 100vw : sur les pages qui ont une barre de défilement,
       100vw dépasse la largeur utile et crée un défilement horizontal
       parasite pendant l'ouverture. */
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: flex-end;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--animation-speed) var(--animation-easing), visibility var(--animation-speed) var(--animation-easing);
  }

  cart-drawer.is-open {
    opacity: 1;
    visibility: visible;
  }

  /* ==========================================================
     Fond derrière le panier — deux styles.

     « Flou clair » (référence Dore & Rose) : la page reste visible mais
     floutée au blur gaussien, sous un voile blanc translucide. Le blur est
     posé sur ::before plutôt que sur l'élément lui-même : un backdrop-filter
     animé sur toute la surface force le navigateur à recalculer le flou à
     chaque frame de la transition — ici seul ::before fond en opacité,
     le flou est calculé une fois.
     ========================================================== */
  cart-drawer::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--animation-speed) var(--animation-easing);
  }

  cart-drawer.is-open::before {
    opacity: 1;
  }

  .cart-drawer--overlay-blur::before {
    background: var(--cart-overlay-bg, rgba(255, 255, 255, 0.45));
    -webkit-backdrop-filter: blur(var(--cart-overlay-blur, 24px));
    backdrop-filter: blur(var(--cart-overlay-blur, 24px));
  }

  /* Navigateurs sans backdrop-filter : voile plus opaque en compensation,
     pour que le tiroir reste lisible sur la page non floutée. */
  @supports not (backdrop-filter: blur(1px)) {
    .cart-drawer--overlay-blur::before {
      background: rgba(255, 255, 255, 0.82);
    }
  }

  /* « Assombri » : le comportement d'origine du thème. */
  .cart-drawer--overlay-dark::before {
    background: rgba(var(--color-shadow));
    -webkit-backdrop-filter: brightness(0.75);
    backdrop-filter: brightness(0.75);
  }

  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 {
    position: relative;
    z-index: 1;
    height: 100%;
    width: var(--cart-drawer-width, 440px);
    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);
    /* Ombre large et douce sur le flanc gauche : c'est elle qui détache le
       panneau du fond flouté clair — l'ombre modale du thème, pensée pour un
       fond assombri, disparaissait sur du blanc. */
    box-shadow:
      -16px 0 40px rgba(0, 0, 0, calc(var(--cart-shadow-opacity, 0.18) * 0.7)),
      -40px 0 90px rgba(0, 0, 0, var(--cart-shadow-opacity, 0.18));
  }

  /* Garde-fou sur les écrans intermédiaires : une largeur choisie pour un
     grand écran occuperait sinon la quasi-totalité d'une tablette. Le
     panneau ne dépasse jamais 60 % de la largeur entre 751 et 1200 px. */
  @media (750px < width <= 1200px) {
    .cart-drawer__inner {
      max-width: min(calc(100vw - 30px), 60vw);
    }
  }

  @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);
    /* Tous les traits du panier suivent la même couleur, réglable —
       le gris doux atténue au lieu du noir de --color-border. */
    border-bottom: var(--separator-border-width) solid var(--cart-sep-color, var(--color-border));
    margin-left: calc(-1 * var(--padding-md));
    width: calc(100% + (2 * var(--padding-md)));
  }

  /* Variante « bandeau » (référence Dore & Rose) : la rangée du titre porte
     un fond gris d'un bord à l'autre, et le pied du header vient au ras de
     la jauge — les grands vides verticaux disparaissent. */
  .cart-drawer__header--band {
    padding-top: 0;
    padding-bottom: 0;
  }

  .cart-drawer__header--band .cart-drawer__header_title {
    background: var(--cart-title-bg, #f5f5f5);
    margin: 0 calc(-1 * var(--padding-md));
    padding: 15px var(--padding-md);
  }

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

  /* Le titre du panier est un <p class="h6">, pas un <h2> : la règle cible
     donc la classe, sinon elle ne s'applique à rien. */
  .cart-drawer__header .h6 {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 5px;
    color: rgb(var(--color-foreground));
  }

  /* Cart Drawer Content */

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

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

  /* Cart Drawer Footer */

  .cart-drawer__footer {
    border-top: var(--separator-border-width) solid var(--cart-sep-color, 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;
  }

  /* ==========================================================
     Accordéon « Informations livraison & retours » — comme la
     référence : rangée titre + flèche en tête du pied de panier,
     fermée par un filet, contenu en deux colonnes label / texte.
     ========================================================== */
  .cart-info {
    width: calc(100% + (2 * var(--padding-md)));
    margin-left: calc(-1 * var(--padding-md));
    margin-top: calc(-1 * var(--padding-md));
    padding: 0 var(--padding-md);
    border-bottom: var(--separator-border-width) solid var(--cart-sep-color, var(--color-border));
  }

  /* Pas de marge sous le filet : la ligne code promo s'y colle, même
     respiration au-dessus de chaque intitulé (12px). Spécificité alignée
     sur « .cart-drawer__footer > :not(:last-child) » qui pose la marge. */
  .cart-drawer__footer > .cart-info:not(:last-child) {
    margin-bottom: 0;
  }

  .cart-info__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: var(--padding-sm) 0;
    cursor: pointer;
    list-style: none;
    font-size: var(--font-body--size);
    color: rgb(var(--color-foreground));
  }

  .cart-info__summary::-webkit-details-marker {
    display: none;
  }

  .cart-info__arrow {
    flex-shrink: 0;
    transition: transform 0.2s ease;
  }

  .cart-info[open] .cart-info__arrow {
    transform: rotate(180deg);
  }

  /* ==========================================================
     Ligne « Ajouter un code de réduction » : alignée sur la ligne
     « Informations livraison & retours » juste au-dessus. Même
     typo, même flèche (le + du bloc générique est masqué), et un
     filet de séparation avant le total.
     ========================================================== */
  .cart-discount-block {
    width: calc(100% + (2 * var(--padding-md)));
    margin-left: calc(-1 * var(--padding-md));
    border-bottom: var(--separator-border-width) solid var(--cart-sep-color, var(--color-border));
  }

  /* Le padding horizontal vit sur le header : le bloc générique impose
     son propre padding en inline, le filet doit rester pleine largeur. */
  .cart-discount-block .accordion__header {
    padding: var(--padding-sm) var(--padding-md);
    gap: 14px;
    justify-content: space-between;
  }

  .cart-discount-block .accordion__heading-title {
    font-size: var(--font-body--size);
    font-weight: 400;
    line-height: 1.25;
    margin: 0;
    /* Même lissage que la ligne « Informations » au-dessus : le composant
       accordéon force « antialiased », qui paraît plus maigre sur Mac à
       graisse pourtant identique. */
    -webkit-font-smoothing: auto;
  }

  .cart-discount-block .accordion__heading {
    line-height: 1;
  }

  .cart-discount-block .accordion__header > .icon,
  .cart-discount-block .accordion__icons-add {
    display: none;
  }

  .cart-discount-block .accordion__header::after {
    content: '';
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%23482922' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='4' x2='12' y2='20'/%3E%3Cpolyline points='5 13 12 20 19 13'/%3E%3C/svg%3E") center / contain no-repeat;
    transition: transform 0.2s ease;
  }

  .cart-discount-block .accordion[open] .accordion__header::after {
    transform: rotate(180deg);
  }

  .cart-discount-block .accordion__content {
    padding: 0 var(--padding-md) var(--padding-sm);
  }

  /* Le contenu déroulé pousse le pied vers le haut ; au-delà de 45 % de
     l'écran, il défile à l'intérieur pour ne jamais avaler le panier. */
  .cart-info__content {
    max-height: 45vh;
    overflow-y: auto;
    padding-bottom: var(--padding-sm);
  }

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

  .cart-info__row {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 4px 18px;
  }

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

  .cart-info__label {
    margin: 0;
    font-size: var(--font-body--size-small);
    font-weight: 600;
    color: rgb(var(--color-foreground));
  }

  .cart-info__text {
    font-size: var(--font-body--size-small);
    line-height: 1.55;
    color: rgba(var(--color-foreground), 0.85);
  }

  .cart-info__text p {
    margin: 0 0 var(--padding-xs);
    font-size: inherit;
    line-height: inherit;
  }

  .cart-info__text p:last-child {
    margin-bottom: 0;
  }

  .cart-info__text a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  @media screen and (max-width: 350px) {
    .cart-info__row {
      grid-template-columns: 1fr;
    }
  }

  /* 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%;
    font-size: var(--cart-cta-size, 14px);
    font-weight: var(--cart-cta-weight, 600);
    /* Rayon local optionnel ; sans réglage, celui des boutons du thème. */
    border-radius: var(--cart-cta-radius, var(--button-border-radius)) !important;
  }

  /* 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;
  }

  /* Filet gris entre les articles : la bordure vit sur l'article, le blanc
     est réparti moitié padding, moitié marge, pour que le trait tombe au
     centre de l'espace entre deux produits. */
  .cart-drawer--item-separators .cart-drawer__item:not(:last-child) {
    border-bottom: 1px solid var(--cart-sep-color, #ececec);
    padding-bottom: calc(var(--margin-lg) / 2);
    margin-bottom: calc(var(--margin-lg) / 2);
  }

  .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;
    aspect-ratio: var(--product-image-ratio);
    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;
    }
  }
/* END_SECTION:cart-drawer-sauvegarde */

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

  cart-drawer {
    position: fixed;
    z-index: 10000;
    left: 0;
    top: 0;
    /* 100% et non 100vw : sur les pages qui ont une barre de défilement,
       100vw dépasse la largeur utile et crée un défilement horizontal
       parasite pendant l'ouverture. */
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: flex-end;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--animation-speed) var(--animation-easing), visibility var(--animation-speed) var(--animation-easing);
  }

  cart-drawer.is-open {
    opacity: 1;
    visibility: visible;
  }

  /* ==========================================================
     Fond derrière le panier — deux styles.

     « Flou clair » (référence Dore & Rose) : la page reste visible mais
     floutée au blur gaussien, sous un voile blanc translucide. Le blur est
     posé sur ::before plutôt que sur l'élément lui-même : un backdrop-filter
     animé sur toute la surface force le navigateur à recalculer le flou à
     chaque frame de la transition — ici seul ::before fond en opacité,
     le flou est calculé une fois.
     ========================================================== */
  cart-drawer::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--animation-speed) var(--animation-easing);
  }

  cart-drawer.is-open::before {
    opacity: 1;
  }

  .cart-drawer--overlay-blur::before {
    background: var(--cart-overlay-bg, rgba(255, 255, 255, 0.45));
    -webkit-backdrop-filter: blur(var(--cart-overlay-blur, 24px));
    backdrop-filter: blur(var(--cart-overlay-blur, 24px));
  }

  /* Navigateurs sans backdrop-filter : voile plus opaque en compensation,
     pour que le tiroir reste lisible sur la page non floutée. */
  @supports not (backdrop-filter: blur(1px)) {
    .cart-drawer--overlay-blur::before {
      background: rgba(255, 255, 255, 0.82);
    }
  }

  /* « Assombri » : le comportement d'origine du thème. */
  .cart-drawer--overlay-dark::before {
    background: rgba(var(--color-shadow));
    -webkit-backdrop-filter: brightness(0.75);
    backdrop-filter: brightness(0.75);
  }

  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 {
    position: relative;
    z-index: 1;
    height: 100%;
    width: var(--cart-drawer-width, 440px);
    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);
    /* Ombre large et douce sur le flanc gauche : c'est elle qui détache le
       panneau du fond flouté clair — l'ombre modale du thème, pensée pour un
       fond assombri, disparaissait sur du blanc. */
    box-shadow:
      -16px 0 40px rgba(0, 0, 0, calc(var(--cart-shadow-opacity, 0.18) * 0.7)),
      -40px 0 90px rgba(0, 0, 0, var(--cart-shadow-opacity, 0.18));
  }

  /* Garde-fou sur les écrans intermédiaires : une largeur choisie pour un
     grand écran occuperait sinon la quasi-totalité d'une tablette. Le
     panneau ne dépasse jamais 60 % de la largeur entre 751 et 1200 px. */
  @media (750px < width <= 1200px) {
    .cart-drawer__inner {
      max-width: min(calc(100vw - 30px), 60vw);
    }
  }

  @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);
    /* Tous les traits du panier suivent la même couleur, réglable —
       le gris doux atténue au lieu du noir de --color-border. */
    border-bottom: var(--separator-border-width) solid var(--cart-sep-color, var(--color-border));
    margin-left: calc(-1 * var(--padding-md));
    width: calc(100% + (2 * var(--padding-md)));
  }

  /* Variante « bandeau » (référence Dore & Rose) : la rangée du titre porte
     un fond gris d'un bord à l'autre, et le pied du header vient au ras de
     la jauge — les grands vides verticaux disparaissent. */
  .cart-drawer__header--band {
    padding-top: 0;
    padding-bottom: 0;
  }

  .cart-drawer__header--band .cart-drawer__header_title {
    background: var(--cart-title-bg, #f5f5f5);
    margin: 0 calc(-1 * var(--padding-md));
    padding: 15px var(--padding-md);
  }

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

  /* Le titre du panier est un <p class="h6">, pas un <h2> : la règle cible
     donc la classe, sinon elle ne s'applique à rien. */
  .cart-drawer__header .h6 {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 5px;
    color: rgb(var(--color-foreground));
  }

  /* Cart Drawer Content */

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

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

  /* Cart Drawer Footer */

  .cart-drawer__footer {
    border-top: var(--separator-border-width) solid var(--cart-sep-color, var(--color-border));
    padding: var(--padding-md);
    position: sticky;
    bottom: 0;
    background-color: var(--cart-footer-bg, 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;
  }

  /* ==========================================================
     Accordéon « Informations livraison & retours » — comme la
     référence : rangée titre + flèche en tête du pied de panier,
     fermée par un filet, contenu en deux colonnes label / texte.
     ========================================================== */
  .cart-info {
    width: calc(100% + (2 * var(--padding-md)));
    margin-left: calc(-1 * var(--padding-md));
    margin-top: calc(-1 * var(--padding-md));
    padding: 0 var(--padding-md);
    border-bottom: var(--separator-border-width) solid var(--cart-sep-color, var(--color-border));
  }

  /* Pas de marge sous le filet : la ligne code promo s'y colle, même
     respiration au-dessus de chaque intitulé (12px). Spécificité alignée
     sur « .cart-drawer__footer > :not(:last-child) » qui pose la marge. */
  .cart-drawer__footer > .cart-info:not(:last-child) {
    margin-bottom: 0;
  }

  .cart-info__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: var(--padding-sm) 0;
    cursor: pointer;
    list-style: none;
    font-size: var(--font-body--size);
    color: rgb(var(--color-foreground));
  }

  .cart-info__summary::-webkit-details-marker {
    display: none;
  }

  .cart-info__arrow {
    flex-shrink: 0;
    transition: transform 0.2s ease;
  }

  .cart-info[open] .cart-info__arrow {
    transform: rotate(180deg);
  }

  /* ==========================================================
     Ligne « Ajouter un code de réduction » : alignée sur la ligne
     « Informations livraison & retours » juste au-dessus. Même
     typo, même flèche (le + du bloc générique est masqué), et un
     filet de séparation avant le total.
     ========================================================== */
  .cart-discount-block {
    width: calc(100% + (2 * var(--padding-md)));
    margin-left: calc(-1 * var(--padding-md));
    border-bottom: var(--separator-border-width) solid var(--cart-sep-color, var(--color-border));
  }

  /* Le padding horizontal vit sur le header : le bloc générique impose
     son propre padding en inline, le filet doit rester pleine largeur. */
  .cart-discount-block .accordion__header {
    padding: var(--padding-sm) var(--padding-md);
    gap: 14px;
    justify-content: space-between;
  }

  .cart-discount-block .accordion__heading-title {
    font-size: var(--font-body--size);
    font-weight: 400;
    line-height: 1.25;
    margin: 0;
    /* Même lissage que la ligne « Informations » au-dessus : le composant
       accordéon force « antialiased », qui paraît plus maigre sur Mac à
       graisse pourtant identique. */
    -webkit-font-smoothing: auto;
  }

  .cart-discount-block .accordion__heading {
    line-height: 1;
  }

  .cart-discount-block .accordion__header > .icon,
  .cart-discount-block .accordion__icons-add {
    display: none;
  }

  .cart-discount-block .accordion__header::after {
    content: '';
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%23482922' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='4' x2='12' y2='20'/%3E%3Cpolyline points='5 13 12 20 19 13'/%3E%3C/svg%3E") center / contain no-repeat;
    transition: transform 0.2s ease;
  }

  .cart-discount-block .accordion[open] .accordion__header::after {
    transform: rotate(180deg);
  }

  .cart-discount-block .accordion__content {
    padding: 0 var(--padding-md) var(--padding-sm);
  }

  /* Le contenu déroulé pousse le pied vers le haut ; au-delà de 45 % de
     l'écran, il défile à l'intérieur pour ne jamais avaler le panier. */
  .cart-info__content {
    max-height: 45vh;
    overflow-y: auto;
    padding-bottom: var(--padding-sm);
  }

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

  .cart-info__row {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 4px 18px;
  }

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

  .cart-info__label {
    margin: 0;
    font-size: var(--font-body--size-small);
    font-weight: 600;
    color: rgb(var(--color-foreground));
  }

  .cart-info__text {
    font-size: var(--font-body--size-small);
    line-height: 1.55;
    color: rgba(var(--color-foreground), 0.85);
  }

  .cart-info__text p {
    margin: 0 0 var(--padding-xs);
    font-size: inherit;
    line-height: inherit;
  }

  .cart-info__text p:last-child {
    margin-bottom: 0;
  }

  .cart-info__text a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  @media screen and (max-width: 350px) {
    .cart-info__row {
      grid-template-columns: 1fr;
    }
  }

  /* 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%;
    font-size: var(--cart-cta-size, 14px);
    font-weight: var(--cart-cta-weight, 600);
    /* Rayon local optionnel ; sans réglage, celui des boutons du thème. */
    border-radius: var(--cart-cta-radius, var(--button-border-radius)) !important;
  }

  /* 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;
  }

  /* Filet gris entre les articles : la bordure vit sur l'article, le blanc
     est réparti moitié padding, moitié marge, pour que le trait tombe au
     centre de l'espace entre deux produits. */
  .cart-drawer--item-separators .cart-drawer__item:not(:last-child) {
    border-bottom: 1px solid var(--cart-sep-color, #ececec);
    padding-bottom: calc(var(--margin-lg) / 2);
    margin-bottom: calc(var(--margin-lg) / 2);
  }

  .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;
    aspect-ratio: var(--product-image-ratio);
    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;
    }

    /* Mobile : cibles tactiles de 40 px pour la quantité et la corbeille
       (elles faisaient 30 à 35 px, trop petit pour le pouce). */
    .cart-drawer__item .quantity-selector.quantity-selector--small {
      width: auto;
      height: 40px;
    }

    .cart-drawer__item .quantity-selector.quantity-selector--small button {
      width: 38px;
      height: 38px;
    }

    .cart-drawer__item .quantity-selector.quantity-selector--small input {
      width: 30px;
      height: 38px;
    }

    .cart-drawer__item .button--small.button--icon-only[data-ref='remove-item'] {
      min-width: 40px;
      min-height: 40px;
    }
  }

  /* 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;
    }
  }
/* END_SECTION:cart-drawer */

/* START_SECTION:cart (INDEX:20) */
.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;
    aspect-ratio: var(--product-image-ratio);
    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;
  }

  @media screen and (max-width: 750px) {
    .cart__item-discount span {
      max-width: 70px;
      text-overflow: ellipsis;
      white-space: nowrap;
      overflow: hidden;
    }

    .cart__discounts {
      overflow: scroll;
      flex-wrap: nowrap;
    }

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

/* START_SECTION:cartes-collections (INDEX:21) */
.ccrd {
    padding-top: var(--ccrd-pt, 0);
    padding-bottom: var(--ccrd-pb, 0);
  }

  .ccrd--full {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 20px;
  }
  @media (min-width: 990px) {
    .ccrd--full { padding-inline: var(--ccrd-side, 48px); }
  }

  .ccrd__section-title {
    margin: 0 0 24px;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.1;
  }

  .ccrd__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }

  .ccrd__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--ccrd-gap, 20px);
  }

  .ccrd__card {
    position: relative;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    border-radius: var(--ccrd-radius, 12px);
    background: #eceae7;
    aspect-ratio: var(--ccrd-ratio-m, 4 / 5);
    width: 100%;
    max-width: 100%;
    color: var(--ccrd-text, #fff);
    isolation: isolate;
  }

  .ccrd__media {
    position: absolute;
    inset: 0;
    z-index: 0;
  }
  .ccrd__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
  }

  .ccrd__overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
  }
  .ccrd--ov-gradient .ccrd__overlay {
    background: linear-gradient(
      to top,
      rgba(0, 0, 0, var(--ccrd-overlay, 0.35)) 0%,
      rgba(0, 0, 0, calc(var(--ccrd-overlay, 0.35) * 0.55)) 45%,
      rgba(0, 0, 0, 0) 80%
    );
  }
  .ccrd--ov-solid .ccrd__overlay {
    background: rgba(0, 0, 0, var(--ccrd-overlay, 0.35));
  }

  .ccrd__content {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: var(--ccrd-pad-m, 24px);
    box-sizing: border-box;
  }

  .ccrd--pos-bottom_center .ccrd__card { align-items: flex-end; }
  .ccrd--pos-bottom_center .ccrd__content { text-align: center; }
  .ccrd--pos-center .ccrd__card { align-items: center; }
  .ccrd--pos-center .ccrd__content { text-align: center; }
  .ccrd--pos-top_left .ccrd__card { align-items: flex-start; }

  .ccrd__h {
    margin: 0;
    font-size: var(--ccrd-h-size-m, 26px);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: inherit;
  }

  .ccrd__t {
    margin: 10px 0 0;
    font-size: var(--ccrd-t-size-m, 15px);
    line-height: 1.45;
    color: inherit;
    max-width: 46ch;
  }
  .ccrd--pos-bottom_center .ccrd__t,
  .ccrd--pos-center .ccrd__t { margin-inline: auto; }

  .ccrd .ccrd__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    margin-top: 20px;
    padding: 17px 40px;
    min-width: 180px;
    max-width: 100%;
    background: var(--ccrd-btn-bg, #fff);
    color: var(--ccrd-btn-color, #111);
    border-radius: var(--ccrd-btn-radius, 4px);
    font-size: var(--ccrd-btn-fs, 12px);
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    text-align: center;
    transition: transform 0.15s ease, filter 0.15s ease;
  }
  .ccrd .ccrd__btn:hover { filter: brightness(0.95); }

  .ccrd--clickable .ccrd__btn::after {
    content: "";
    position: absolute;
    left: -100vw;
    right: -100vw;
    top: -100vh;
    bottom: -100vh;
    z-index: 2;
  }

  .ccrd .ccrd__btn:focus-visible {
    outline: 2px solid var(--ccrd-btn-bg, #fff);
    outline-offset: 3px;
  }
  .ccrd--clickable .ccrd__card:has(.ccrd__btn:focus-visible) {
    outline: 3px solid var(--ccrd-btn-bg, #fff);
    outline-offset: -5px;
  }

  @media (hover: hover) {
    .ccrd--zoom .ccrd__card:hover .ccrd__img { transform: scale(1.04); }
    .ccrd__card:hover .ccrd__btn { transform: translateY(-1px); }
  }

  @media (max-width: 749px) {
    .ccrd--btn-full .ccrd__btn { width: 100%; }

    .ccrd--m-swipe .ccrd__grid {
      grid-template-columns: none;
      grid-auto-flow: column;
      grid-auto-columns: var(--ccrd-card-mobile, 84%);
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scrollbar-width: none;
      -ms-overflow-style: none;
      -webkit-overflow-scrolling: touch;
      width: 100vw;
      margin-inline: calc(50% - 50vw);
      padding-inline: var(--page-margin-mobile, 20px);
      scroll-padding-inline: var(--page-margin-mobile, 20px);
    }
    .ccrd--m-swipe .ccrd__grid::-webkit-scrollbar { display: none; }
    .ccrd--m-swipe .ccrd__card { scroll-snap-align: start; }
  }

  @media (min-width: 750px) and (max-width: 1023px) {
    .ccrd__grid { grid-template-columns: repeat(var(--ccrd-cols-t, 2), minmax(0, 1fr)); }
    .ccrd__card { aspect-ratio: var(--ccrd-ratio-m, 4 / 5); }
    .ccrd__section-title { font-size: 1.8rem; }
    .ccrd__content {
      padding: min(calc(var(--ccrd-pad-m, 24px) + var(--ccrd-pad-delta, 40) * (100vw - 750px) / 274), 40px);
    }
    .ccrd__h { font-size: calc(var(--ccrd-h-size-m, 26px) + var(--ccrd-h-delta, 10) * (100vw - 750px) / 274); }
    .ccrd__t { font-size: calc(var(--ccrd-t-size-m, 15px) + var(--ccrd-t-delta, 1) * (100vw - 750px) / 274); }
    .ccrd .ccrd__btn { padding: 16px 32px; min-width: 0; max-width: 100%; }
  }

  @media (min-width: 1024px) {
    .ccrd__grid { grid-template-columns: repeat(var(--ccrd-cols, 2), minmax(0, 1fr)); }
    .ccrd__card { aspect-ratio: var(--ccrd-ratio-d, 3 / 2); }
    .ccrd__section-title { font-size: 2.1rem; }
    .ccrd__content { padding: var(--ccrd-pad-d, 32px); }
    .ccrd__h { font-size: var(--ccrd-h-size-d, 32px); }
    .ccrd__t { font-size: var(--ccrd-t-size-d, 16px); }
    .ccrd .ccrd__btn { padding: 20px 52px; min-width: 220px; }
  }

  @media (prefers-reduced-motion: reduce) {
    .ccrd__img,
    .ccrd .ccrd__btn { transition: none; }
    .ccrd--zoom .ccrd__card:hover .ccrd__img { transform: none; }
  }
/* END_SECTION:cartes-collections */

/* START_SECTION:centre-aide (INDEX:23) */
.ca {
    background: var(--color-background, #fff);
    /* Permet d'animer height: auto sur les accordéons (Chrome 129+,
       ignoré ailleurs sans casser). */
    interpolate-size: allow-keywords;
  }

  /* ---- Héro : bandeau doux + recherche, façon Nude Project ---- */
  .ca__hero {
    background: var(--ca-hero-bg, #f5f5f5);
    padding: 64px 20px 52px;
  }

  .ca__hero-inner {
    max-width: 640px;
    margin: 0 auto;
    text-align: center;
  }

  .ca__overtitle {
    margin: 0 0 10px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    opacity: 0.55;
  }

  .ca__title {
    margin: 0;
    font-size: clamp(1.7rem, 4.5vw, 2.6rem);
    font-weight: 800;
    letter-spacing: -0.01em;
  }

  .ca__subtitle {
    margin: 12px 0 0;
    font-size: 1rem;
    line-height: 1.6;
    opacity: 0.7;
  }

  .ca__search {
    position: relative;
    margin-top: 28px;
  }

  .ca__search-icon {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    width: 19px;
    height: 19px;
    opacity: 0.45;
    pointer-events: none;
  }

  .ca__search-input {
    width: 100%;
    padding: 17px 52px 17px 48px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 999px;
    background: #ffffff;
    font-size: 1rem;
    color: inherit;
    box-shadow: 0 8px 28px rgba(20, 12, 4, 0.06);
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
  }

  .ca__search-input:focus {
    outline: none;
    border-color: var(--ca-accent, #482922);
    box-shadow: 0 10px 34px rgba(20, 12, 4, 0.1);
  }

  .ca__search-input::-webkit-search-cancel-button {
    display: none;
  }

  .ca__search-clear {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    border: none;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.06);
    color: inherit;
    font-size: 19px;
    line-height: 1;
    cursor: pointer;
  }

  /* Recherches populaires */
  .ca__chips {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
  }

  .ca__chips-label {
    font-size: 0.75rem;
    font-weight: 600;
    opacity: 0.5;
  }

  .ca__chip {
    padding: 7px 14px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.6);
    color: inherit;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
  }

  .ca__chip:hover {
    background: #ffffff;
    border-color: var(--ca-accent, #482922);
  }

  .ca__search-count {
    margin: 14px 0 0;
    font-size: 0.82rem;
    font-weight: 600;
    opacity: 0.6;
  }

  /* ---- Corps ---- */
  .ca__body {
    max-width: 800px;
    margin: 0 auto;
    padding: 40px 20px 72px;
  }

  /* Cartes catégories : blanches, icône dans une pastille beige */
  .ca__cats {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 12px;
    margin-bottom: 48px;
  }

  .ca__cat-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 22px 12px 18px;
    border-radius: 16px;
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.08);
    text-decoration: none;
    color: inherit;
    text-align: center;
    transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
  }

  .ca__cat-card:hover {
    border-color: var(--ca-accent, #482922);
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(20, 12, 4, 0.07);
  }

  .ca__cat-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: 6px;
    border-radius: 50%;
    background: var(--ca-hero-bg, #ffeede);
    color: var(--ca-accent, #482922);
  }

  .ca__cat-icon svg {
    width: 22px;
    height: 22px;
    display: block;
  }

  .ca__cat-name {
    font-size: 0.85rem;
    font-weight: 700;
  }

  .ca__cat-count {
    font-size: 0.72rem;
    opacity: 0.55;
  }

  /* Groupes FAQ */
  .ca__group {
    margin-bottom: 38px;
    scroll-margin-top: 90px;   /* le header sticky ne masque pas le titre visé */
  }

  .ca__group-title {
    margin: 0 0 12px;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    opacity: 0.6;
  }

  .ca__list {
    border: 1px solid rgba(0, 0, 0, 0.07);
    border-radius: 16px;
    background: #ffffff;
    overflow: hidden;
  }

  .ca__item + .ca__item {
    border-top: 1px solid rgba(0, 0, 0, 0.07);
  }

  .ca__q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
    transition: color 0.15s ease;
  }

  .ca__q::-webkit-details-marker {
    display: none;
  }

  .ca__q:hover {
    background: rgba(0, 0, 0, 0.02);
  }

  /* Question ouverte : elle passe à l'accent et son fond se teinte —
     on sait toujours quelle réponse on est en train de lire. */
  .ca__item[open] {
    background: color-mix(in srgb, var(--ca-accent, #482922) 3%, #ffffff);
  }

  .ca__item[open] .ca__q {
    color: var(--ca-accent, #482922);
  }

  .ca__chevron {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    opacity: 0.5;
    transition: transform 0.25s ease;
  }

  .ca__item[open] .ca__chevron {
    transform: rotate(180deg);
  }

  /* Ouverture animée (progressive : navigateurs récents) */
  .ca__item::details-content {
    opacity: 0;
    block-size: 0;
    overflow: hidden;
    transition: content-visibility 0.25s allow-discrete, opacity 0.25s ease, block-size 0.25s ease;
  }

  .ca__item[open]::details-content {
    opacity: 1;
    block-size: auto;
  }

  .ca__a {
    padding: 0 20px 20px;
    font-size: 0.92rem;
    line-height: 1.65;
    opacity: 0.85;
  }

  .ca__a p {
    margin: 0 0 0.7em;
  }

  .ca__a p:last-child {
    margin-bottom: 0;
  }

  .ca__a a {
    color: var(--ca-accent, #482922);
  }

  .ca__empty {
    margin: 0 0 32px;
    padding: 22px;
    border-radius: 14px;
    background: var(--ca-card-bg, #f5f5f5);
    text-align: center;
    font-size: 0.92rem;
  }

  /* Encart contact — version claire ou brun plein (le seul bloc sombre
     de la page : l'œil tombe dessus en fin de parcours). */
  .ca__contact {
    margin-top: 56px;
    padding: 38px 28px;
    border-radius: 20px;
    background: var(--ca-card-bg, #f5f5f5);
    text-align: center;
  }

  .ca__contact-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-bottom: 14px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    color: var(--ca-accent, #482922);
  }

  .ca__contact-icon svg {
    width: 22px;
    height: 22px;
    display: block;
  }

  .ca__contact-title {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 800;
  }

  .ca__contact-text {
    margin: 8px 0 0;
    font-size: 0.92rem;
    line-height: 1.6;
    opacity: 0.7;
  }

  .ca__contact-btn {
    display: inline-block;
    margin-top: 20px;
    padding: 14px 36px;
    border-radius: 8px;
    background: var(--ca-accent, #482922);
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    transition: opacity 0.15s ease, transform 0.15s ease;
  }

  .ca__contact-btn:hover {
    opacity: 0.88;
    transform: translateY(-1px);
  }

  .ca__contact-hours {
    margin: 14px 0 0;
    font-size: 0.8rem;
    opacity: 0.55;
  }

  .ca__contact--brun {
    background: var(--ca-accent, #482922);
    color: #ffffff;
  }

  .ca__contact--brun .ca__contact-icon {
    background: rgba(255, 255, 255, 0.14);
    color: #ffffff;
  }

  .ca__contact--brun .ca__contact-text {
    opacity: 0.8;
  }

  .ca__contact--brun .ca__contact-btn {
    background: #ffffff;
    color: var(--ca-accent, #482922);
  }

  .ca__contact--brun .ca__contact-hours {
    opacity: 0.65;
  }

  @media (width <= 749px) {
    .ca__hero {
      padding: 44px 16px 38px;
    }
    .ca__body {
      padding: 28px 16px 56px;
    }
    .ca__cats {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-bottom: 38px;
    }
    .ca__q {
      padding: 16px 15px;
      font-size: 0.9rem;
    }
    .ca__a {
      padding: 0 15px 16px;
    }
    .ca__contact {
      padding: 30px 20px;
    }
  }
/* END_SECTION:centre-aide */

/* START_SECTION:collection-banner (INDEX:24) */
.colb {
    position: relative;
    box-sizing: border-box;
    margin-top: var(--colb-mt, 0);
    margin-bottom: var(--colb-mb, 0);
    display: flex;
    overflow: hidden;
    min-height: var(--colb-h-m, 480px);
    border-radius: 0;
    color: var(--colb-text, #111);
    isolation: isolate;
  }

  /* Pleine largeur : bord à bord. « Largeur du site » : centrée + arrondie. */
  .colb--full {
    width: 100%;
  }

  .colb--page {
    width: 100%;
    max-width: var(--page-width, 1400px);
    margin-inline: auto;
    border-radius: var(--colb-radius, 0);
  }

  /* Position verticale du contenu */
  .colb--v-top { align-items: flex-start; }
  .colb--v-center { align-items: center; }
  .colb--v-bottom { align-items: flex-end; }

  /* z-index négatif plutôt que 0 : l'image passe sous le contenu SANS que
     .colb__inner ait besoin d'être positionné. Le lien étiré du bouton se
     calcule alors sur la bannière entière et non sur le seul bloc de texte.
     « isolation » sur .colb empêche le -1 de descendre sous son fond. */
  .colb__media {
    position: absolute;
    inset: 0;
    z-index: -1;
  }

  /* <picture> est un élément inline sans dimensions propres : sans cette
     règle, l'image reprend sa hauteur naturelle au lieu de couvrir la
     bannière — d'où une bande vide sous le visuel. */
  .colb__media picture {
    display: block;
    position: absolute;
    inset: 0;
  }

  .colb__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .colb__overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
  }

  .colb__overlay--flat {
    background: rgba(0, 0, 0, var(--colb-overlay, 0));
  }

  /* Dégradé bas : n'assombrit que la zone du texte et laisse le haut du
     visuel intact — le meilleur compromis contraste/luminosité. */
  .colb__overlay--gradient {
    background: linear-gradient(
      to top,
      rgba(0, 0, 0, calc(var(--colb-overlay, 0) * 1.5)) 0%,
      rgba(0, 0, 0, calc(var(--colb-overlay, 0) * 0.6)) 45%,
      rgba(0, 0, 0, 0) 80%
    );
  }

  /* Sans image : la bannière garde une hauteur naturelle plutôt qu'un grand
     vide, et se cale sur le fond du schéma de couleurs. */
  .colb--no-image {
    min-height: 0;
  }

  .colb__inner {
    width: 100%;
    box-sizing: border-box;
    padding: clamp(28px, 5vw, 56px) var(--colb-side, 20px);
    display: flex;
  }

  .colb--text-left .colb__inner { justify-content: flex-start; text-align: left; }
  .colb--text-center .colb__inner { justify-content: center; text-align: center; }
  .colb--text-right .colb__inner { justify-content: flex-end; text-align: right; }

  .colb__content {
    max-width: var(--colb-maxw, 620px);
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  .colb--text-center .colb__content { align-items: center; }
  .colb--text-right .colb__content { align-items: flex-end; }

  /* ---------- Note en avis (étoiles + social proof) ---------- */
  .colb__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 0.95rem;
    font-weight: 500;
  }

  .colb__stars {
    position: relative;
    display: inline-block;
    line-height: 1;
    font-size: 1rem;
    letter-spacing: 2px;
  }
  .colb__stars-bg { color: currentColor; opacity: 0.32; }
  .colb__stars-fill {
    position: absolute;
    inset: 0;
    width: var(--pct, 100%);
    overflow: hidden;
    color: var(--colb-star, currentColor);
    white-space: nowrap;
  }

  /* ---------- Titre + texte ----------
     Les !important sont nécessaires : le thème impose couleur et taille à ses
     balises h1/h2 par des règles globales — sans eux, le titre s'affiche dans
     la couleur du texte du site au lieu de celle réglée ici (titre sombre sur
     image sombre). */
  .colb__title {
    margin: 0;
    color: var(--colb-text, #fff) !important;
    font-size: var(--colb-title-m, 32px) !important;
    font-weight: var(--colb-title-weight, 700);
    line-height: 1.08;
    letter-spacing: -0.02em;
  }

  .colb__text {
    margin: 0;
    color: var(--colb-text, #fff);
    font-size: var(--colb-text-m, 15px) !important;
    line-height: 1.55;
    max-width: 60ch;
  }

  .colb__text p,
  .colb__text span,
  .colb__text strong,
  .colb__text a {
    color: inherit;
    font-size: inherit !important;
  }
  /* ---------- Bouton — mêmes proportions que « Cartes collections » ---------- */
  .colb .colb__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    align-self: flex-start;
    margin-top: 4px;
    padding: 17px 40px;
    min-width: 180px;
    background: var(--colb-btn-bg, #fff);
    color: var(--colb-btn-color, #111);
    border-radius: var(--colb-btn-radius, 4px);
    font-size: var(--colb-btn-fs, 12px);
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    text-align: center;
    transition: transform 0.15s ease, filter 0.15s ease;
  }
  .colb--text-center .colb__btn { align-self: center; }
  .colb--text-right .colb__btn { align-self: flex-end; }
  .colb .colb__btn:hover { filter: brightness(0.95); transform: translateY(-1px); }

  /* Toute la bannière devient cliquable, sans créer un second lien. */
  .colb--clickable .colb__btn::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
  }

  /* Le focus doit cerner ce qui est réellement cliquable : la bannière
     entière quand elle l'est, le bouton seul sinon. */
  .colb .colb__btn:focus-visible {
    outline: 2px solid var(--colb-btn-bg, #fff);
    outline-offset: 3px;
  }
  .colb--clickable:has(.colb__btn:focus-visible) {
    outline: 3px solid var(--colb-btn-bg, #fff);
    outline-offset: -5px;
  }

  /* Masquage visuel sans retrait de l'arbre d'accessibilité. */
  .colb__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }

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

  .colb__text > :first-child { margin-top: 0; }
  .colb__text > :last-child { margin-bottom: 0; }
  .colb__text p { margin: 0 0 0.5em; }
  .colb__text p:last-child { margin-bottom: 0; }

  /* ---------- Mobile : la hauteur suit le format d'image choisi ----------
     En carré (défaut, comme la référence), la bannière épouse un ratio 1:1
     au lieu d'une hauteur figée : plus de bande vide, plus de recadrage
     hasardeux — l'image mobile cadre exactement ce qu'on lui donne. */
  @media (width < 750px) {
    .colb--m-square { aspect-ratio: 1 / 1; min-height: 0; }
    .colb--m-portrait { aspect-ratio: 4 / 5; min-height: 0; }
    .colb--m-landscape { aspect-ratio: 4 / 3; min-height: 0; }
    /* .colb--m-fixed garde la hauteur en pixels du réglage */

    .colb--no-image { aspect-ratio: auto; }

    /* Position verticale propre au mobile : ancré en bas par défaut, comme la
       référence — sur un carré, un texte centré flotte au milieu du visuel. */
    .colb--vm-top { align-items: flex-start; }
    .colb--vm-center { align-items: center; }
    .colb--vm-bottom { align-items: flex-end; }

    /* Marges du contenu resserrées : celles de la page, pas le réglage
       desktop — la référence colle son texte à ~20 px du bord. */
    .colb__inner {
      padding: 20px var(--page-margin-mobile, 20px) 22px;
    }

    .colb__content {
      gap: 10px;
    }
  }

  @media (width >= 750px) {
    .colb {
      min-height: var(--colb-h-d, 420px);
    }
    .colb__title {
      font-size: var(--colb-title-d, 48px) !important;
    }
    .colb__text {
      font-size: var(--colb-text-d, 17px) !important;
    }
    .colb .colb__btn { padding: 20px 52px; min-width: 220px; }
  }
/* END_SECTION:collection-banner */

/* START_SECTION:collection-featured (INDEX:25) */
.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);
    column-gap: var(--grid-gap-vertical);
    row-gap: var(--grid-gap-horizontal);
  }

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

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

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

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

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

/* START_SECTION:comparatif-produit (INDEX:27) */
.cpx {
    padding-top: var(--cpx-pt, 40px);
    padding-bottom: var(--cpx-pb, 40px);
    color: #010C27;
  }

  .cpx__titre {
    margin: 0 0 26px;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    color: #010C27;
  }

  /* Bloc compact et CENTRÉ : trois colonnes équilibrées, jamais la
     pleine largeur de page. */
  .cpx__table {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) var(--cpx-col, 92px) var(--cpx-col, 92px);
    max-width: 720px;
    margin-inline: auto;
  }

  .cpx__row {
    display: contents;
  }

  .cpx__c {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 13px 8px;
    min-height: 46px;
  }

  .cpx__c1 {
    justify-content: flex-start;
    padding-left: 0;
  }

  /* Colonne onalie : une carte gris doux continue, de la photo à la
     dernière ligne, dessinée par le fond des cellules. */
  .cpx__c2 {
    background: #F8F6F4;
    margin-left: 8px;
    margin-right: 4px;
  }

  .cpx__c3 {
    margin-left: 4px;
    margin-right: 8px;
  }

  .cpx__c2--head {
    border-radius: 16px 16px 0 0;
  }

  .cpx__c2.cpx__c--fin {
    border-radius: 0 0 16px 16px;
  }

  /* En-têtes : la photo onalie remplit le haut de la carte bord à bord
     (padding zéro, arrondi épousant la carte) ; la colonne comparée est
     en texte seul, calé en bas pour s'aligner sur le nom onalie. */
  .cpx__row--head .cpx__c {
    align-items: stretch;
  }

  .cpx__c2--head {
    flex-direction: column;
    padding: 0;
  }

  .cpx__c3--head {
    flex-direction: column;
    justify-content: flex-start;
    padding: 0;
  }

  .cpx__img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: 16px 16px 0 0;
    display: block;
  }

  .cpx__img--eux {
    border-radius: 15px 15px 0 0;
    margin-bottom: 0;
  }

  .cpx__id {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px 10px 14px;
    text-align: center;
  }

  .cpx__nom {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    line-height: 1.25;
  }

  .cpx__sous {
    font-size: 11px;
    opacity: 0.65;
    line-height: 1.3;
  }

  .cpx__libelle {
    font-size: 13px;
    line-height: 1.35;
  }

  /* Filets fins entre les lignes ; dans la carte onalie ils existent
     aussi, en plus léger (continuité des lignes, façon Dore & Rose). */
  .cpx__row:not(.cpx__row--head) .cpx__c1,
  .cpx__row:not(.cpx__row--head) .cpx__c3 {
    border-top: 1px solid rgba(1, 12, 39, 0.12);
  }

  .cpx__row:not(.cpx__row--head) .cpx__c2 {
    border-top: 1px solid rgba(1, 12, 39, 0.08);
  }

  .cpx__oui {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #010C27;
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
  }

  .cpx__non {
    color: rgba(1, 12, 39, 0.38);
    display: inline-flex;
    flex: 0 0 auto;
  }

  /* ---- Mobile : les deux cartes photo restent côte à côte, puis
     UNE LIGNE par critère (libellé à gauche, coche et croix à droite).
     Assez compact pour que cartes et critères tiennent quasiment dans
     un écran : l'identité des colonnes se lit sans rappel. ---- */
  @media (max-width: 749px) {
    .cpx__table {
      grid-template-columns: minmax(0, 1fr) 40px 40px;
      max-width: none;
    }

    /* La rangée d'en-tête sort de la grille des critères : elle devient
       sa propre grille moitié-moitié pour garder deux grandes photos. */
    .cpx__row--head {
      display: grid;
      grid-column: 1 / -1;
      grid-template-columns: 1fr 1fr;
      column-gap: 8px;
    }

    .cpx__row--head .cpx__c1 {
      display: none;
    }

    .cpx__c2,
    .cpx__c3 {
      margin: 0;
    }

    .cpx__row:not(.cpx__row--head) .cpx__c2 {
      background: transparent;
    }

    .cpx__c1 {
      justify-content: flex-start;
      min-height: 0;
      padding: 13px 8px 13px 0;
      border-top: 1px solid rgba(1, 12, 39, 0.12);
      font-size: 13px;
      line-height: 1.35;
    }

    .cpx__row:not(.cpx__row--head) .cpx__c2,
    .cpx__row:not(.cpx__row--head) .cpx__c3 {
      min-height: 0;
      padding: 13px 0;
      border-top: 1px solid rgba(1, 12, 39, 0.12);
    }

    /* Cartes d'en-tête : onalie en gris doux, la catégorie comparée en
       carte filetée, mêmes dimensions des deux côtés. */
    .cpx__c2--head {
      background: #F8F6F4;
      border-radius: 16px;
      margin-bottom: 14px;
    }

    /* Liséré par outline : zéro impact sur la largeur intérieure, les
       deux images gardent EXACTEMENT les mêmes dimensions. Contenu calé
       en haut des deux côtés (le desktop le cale en bas). */
    .cpx__c3--head {
      outline: 1px solid rgba(1, 12, 39, 0.12);
      outline-offset: -1px;
      border-radius: 16px;
      margin-bottom: 14px;
      justify-content: flex-start;
      border: 0;
    }

    .cpx__c3--head .cpx__img,
    .cpx__c2--head .cpx__img {
      border-radius: 16px 16px 0 0;
    }

    .cpx__nom {
      min-height: 0;
      display: flex;
      align-items: center;
      justify-content: center;
    }
  }

  @media (min-width: 750px) {
    /* À l'échelle des autres composants de la page (panneaux 1200 px) :
       bloc large, colonnes généreuses, photo en grand. */
    .cpx__table {
      --cpx-col: 280px;
      max-width: 1100px;
    }

    .cpx__titre {
      font-size: 24px;
      margin-bottom: 34px;
    }

    .cpx__c {
      padding: 17px 12px;
      min-height: 54px;
    }

    /* Même spécificité que la règle ci-dessus : les en-têtes doivent la
       redéclarer ici, sinon les photos perdent leur bord à bord (et donc
       leur arrondi, noyé dans le fond de la carte). */
    .cpx__c2--head,
    .cpx__c3--head {
      padding: 0;
    }

    .cpx__c2 {
      margin-left: 16px;
      margin-right: 8px;
    }

    .cpx__c3 {
      margin-left: 8px;
      margin-right: 16px;
      border-left: 1px solid rgba(1, 12, 39, 0.12);
      border-right: 1px solid rgba(1, 12, 39, 0.12);
    }

    /* Carte filetée continue côté comparé : miroir de la carte grise
       onalie, du haut de la photo à la dernière ligne. Les deux photos
       partagent le même ratio 4:5 et la même largeur de colonne, seules
       les teintes distinguent les cartes. */
    .cpx__c3--head {
      border-top: 1px solid rgba(1, 12, 39, 0.12);
      border-radius: 16px 16px 0 0;
    }

    .cpx__c3.cpx__c--fin {
      border-bottom: 1px solid rgba(1, 12, 39, 0.12);
      border-radius: 0 0 16px 16px;
    }

    .cpx__libelle {
      font-size: 14px;
    }

    .cpx__nom {
      font-size: 13px;
    }

    .cpx__id {
      padding: 12px 12px 16px;
    }
  }
/* END_SECTION:comparatif-produit */

/* START_SECTION:comparison-table (INDEX:28) */
.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;
  }

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

/* START_SECTION:contact-onalie (INDEX:29) */
.co {
    background: var(--color-background, #fff);
  }

  /* ---- Entete sobre, sans bandeau : un titre court et une ligne,
     le formulaire tout de suite apres (reference Yade). ---- */
  .co__hero {
    background: transparent;
    padding: 52px 20px 0;
  }

  .co__hero-inner {
    max-width: 640px;
    margin: 0 auto;
    text-align: center;
  }

  .co__overtitle {
    margin: 0 0 10px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    opacity: 0.55;
  }

  .co__title {
    margin: 0;
    font-size: clamp(1.5rem, 3.5vw, 2rem);
    font-weight: 700;
    letter-spacing: -0.01em;
  }

  .co__subtitle {
    margin: 10px auto 0;
    max-width: 52ch;
    font-size: 1rem;
    line-height: 1.6;
    opacity: 0.7;
  }

  /* ---- Corps : une colonne, un seul rythme ---- */
  .co__body {
    max-width: 660px;
    margin: 0 auto;
    padding: 28px 20px 64px;
  }

  /* Repères sur une ligne, centrés */
  .co__quick {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px 26px;
    margin-bottom: 28px;
  }

  .co__quick-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.88rem;
    color: inherit;
    text-decoration: none;
  }

  .co__quick-item svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    color: var(--co-accent, #482922);
    opacity: 0.75;
  }

  a.co__quick-item span {
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: rgba(0, 0, 0, 0.25);
  }

  a.co__quick-item:hover span {
    text-decoration-color: currentColor;
  }

  /* ---- Carte : à plat, filet fin, aucune ombre ---- */
  .co__card {
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.09);
    border-radius: 16px;
    padding: 30px 28px;
  }

  .co__done {
    text-align: center;
    padding: 28px 10px;
  }

  .co__done-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin-bottom: 16px;
    border-radius: 50%;
    background: var(--co-soft, #ffeede);
    color: var(--co-accent, #482922);
  }

  .co__done-icon svg {
    width: 26px;
    height: 26px;
  }

  .co__done-title {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.55;
  }

  .co__done-link {
    display: inline-block;
    margin-top: 16px;
    color: var(--co-accent, #482922);
    font-size: 0.88rem;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .co__banner {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 18px;
    padding: 14px 16px;
    border-radius: 12px;
    font-size: 0.9rem;
    line-height: 1.5;
  }

  .co__banner--err {
    background: #fbeeed;
    color: #8c2f28;
  }

  /* Champs : pleine largeur, espacement UNIFORME */
  .co__field {
    margin-bottom: 20px;
    min-width: 0;
  }

  .co__field:last-of-type {
    margin-bottom: 24px;
  }

  .co__field label {
    display: block;
    margin-bottom: 8px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    opacity: 0.6;
  }

  .co__optional {
    font-weight: 500;
    text-transform: none;
    letter-spacing: normal;
    opacity: 0.8;
  }

  .co__field input,
  .co__field textarea,
  .co__select select {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 10px;
    background: #ffffff;
    font-size: 0.95rem;
    font-family: inherit;
    color: inherit;
    transition: border-color 0.15s ease;
  }

  .co__field input::placeholder,
  .co__field textarea::placeholder {
    color: inherit;
    opacity: 0.35;
  }

  .co__field input:focus,
  .co__field textarea:focus,
  .co__select select:focus {
    outline: none;
    border-color: var(--co-accent, #482922);
  }

  .co__field textarea {
    resize: vertical;
    min-height: 140px;
  }

  .co__select {
    position: relative;
  }

  .co__select select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 42px;
    cursor: pointer;
  }

  .co__select svg {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 17px;
    height: 17px;
    opacity: 0.5;
    pointer-events: none;
  }

  /* Zone photos : même hauteur visuelle qu'un champ, pleine largeur */
  .co__drop {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 18px 16px;
    border: 1px dashed rgba(0, 0, 0, 0.25);
    border-radius: 10px;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
  }

  .co__drop:hover,
  .co__drop--over,
  .co__drop:focus-visible {
    border-color: var(--co-accent, #482922);
    background: color-mix(in srgb, var(--co-soft, #ffeede) 35%, #ffffff);
    outline: none;
  }

  .co__drop svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    color: var(--co-accent, #482922);
    opacity: 0.8;
  }

  .co__drop-main {
    font-size: 0.9rem;
    font-weight: 600;
  }

  .co__drop-hint {
    margin: 8px 0 0;
    font-size: 0.76rem;
    opacity: 0.5;
  }

  .co__previews {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
  }

  .co__previews:empty {
    display: none;
  }

  .co__preview {
    position: relative;
    width: 72px;
    height: 72px;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.1);
  }

  .co__preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* Pendant l'envoi : légère pulsation, la cliente voit que ça travaille */
  .co__preview--loading img {
    opacity: 0.45;
    animation: co-pulse 1.1s ease-in-out infinite;
  }

  @keyframes co-pulse {
    0%, 100% { opacity: 0.45; }
    50% { opacity: 0.75; }
  }

  .co__preview-x {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 20px;
    height: 20px;
    border: none;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.55);
    color: #ffffff;
    font-size: 13px;
    line-height: 1;
    cursor: pointer;
  }

  .co__drop-err {
    margin: 8px 0 0;
    font-size: 0.8rem;
    font-weight: 600;
    color: #b3261e;
  }

  /* Encart de repli quand l'upload n'est pas configuré */
  .co__attach {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 2px 0 20px;
    padding: 13px 15px;
    border: 1px dashed rgba(0, 0, 0, 0.18);
    border-radius: 10px;
    font-size: 0.82rem;
    line-height: 1.55;
    opacity: 0.85;
  }

  .co__attach svg {
    width: 17px;
    height: 17px;
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--co-accent, #482922);
  }

  .co__submit {
    display: block;
    width: 100%;
    padding: 17px 20px;
    border: none;
    border-radius: 10px;
    background: var(--co-accent, #482922);
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: opacity 0.15s ease;
  }

  .co__submit:hover {
    opacity: 0.9;
  }

  .co__submit:disabled {
    opacity: 0.6;
    cursor: wait;
  }

  .co__rgpd {
    margin: 12px 0 0;
    font-size: 0.74rem;
    line-height: 1.5;
    text-align: center;
    opacity: 0.5;
  }

  /* Renvoi FAQ centré sous la carte */
  .co__faq {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 24px;
    color: var(--co-accent, #482922);
    font-size: 0.88rem;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .co__faq svg {
    width: 15px;
    height: 15px;
    transition: transform 0.15s ease;
  }

  .co__faq:hover svg {
    transform: translateX(3px);
  }

  /* ---- Fin print société (Merchant Center) : présent, discret ---- */
  .co__legal {
    margin-top: 40px;
    padding-top: 18px;
    border-top: 1px solid rgba(0, 0, 0, 0.07);
    text-align: center;
    font-size: 0.73rem;
    line-height: 1.8;
    opacity: 0.5;
  }

  .co__legal-brand {
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  .co__legal span + span::before {
    content: '·';
    margin: 0 8px;
  }

  .co__legal a {
    color: inherit;
    text-decoration: none;
  }

  .co__legal a:hover {
    text-decoration: underline;
  }

  @media (width <= 749px) {
    .co__hero {
      padding: 40px 16px 0;
    }
    .co__body {
      padding: 26px 16px 48px;
    }
    .co__quick {
      flex-direction: column;
      gap: 10px;
      margin-bottom: 22px;
    }
    .co__card {
      padding: 22px 18px;
    }
  }
/* END_SECTION:contact-onalie */

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

/* START_SECTION:custom-section (INDEX:32) */
.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:37) */
.highlights {
    display: grid;
    column-gap: var(--grid-gap-vertical);
    row-gap: var(--grid-gap-horizontal);
    grid-template-columns: repeat(3, 1fr);
    margin-top: 1.5rem;
  }

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

  .card_design_system {
    border-left: 1px solid var(--color-foreground);
    justify-content: center;
    margin-top: 50px;
    margin-bottom: 50px;
    padding: 1.5rem 0 1.5rem 1.5rem;
  }

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

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

  .highlight-container {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: flex-start;
  }

  .highlight-product-components {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
  }

  .highlight-logos-container {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
  }

  .highlight-logo img {
    max-width: 200px;
  }

  .highlight-logo--favicon img {
    width: 28px;
  }
/* END_SECTION:demo-design-system */

/* START_SECTION:featured-tabs (INDEX:40) */
.fpt {
    padding-top: var(--fpt-pt, 0);
    padding-bottom: var(--fpt-pb, 0);
  }

  /* Pleine largeur : la section occupe tout l'écran, les cartes grandissent
     avec le viewport, mais un padding latéral est toujours garanti pour que
     rien ne colle jamais aux bords. */
  .fpt--full {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 20px;
  }
  @media (min-width: 990px) {
    .fpt--full { padding-inline: var(--fpt-side, 48px); }
  }

  .fpt__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
  }

  .fpt__head-left {
    display: flex;
    align-items: baseline;
    gap: 16px;
    min-width: 0;
  }

  .fpt__title {
    margin: 0;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.1;
  }

  .fpt__actions {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0;
  }

  /* Masquage visuel sans retrait de l'arbre d'accessibilité. */
  .fpt__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }

  .fpt__nav { display: flex; gap: 8px; }
  .fpt__nav.is-hidden { visibility: hidden; }

  /* Spécificité renforcée (.fpt .fpt__arrow) pour ne pas être écrasé
     par les styles de boutons du thème. */
  .fpt .fpt__arrow {
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
    padding: 0;
    margin: 0;
    border-radius: 50%;
    border: none;
    background: #f2f2f2;
    color: #1a1a1a;
    box-shadow: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.2s ease, color 0.2s ease;
  }
  .fpt .fpt__arrow svg { display: block; }
  .fpt .fpt__arrow:hover:not(:disabled) { background: #e7e7e7; }
  .fpt .fpt__arrow:disabled {
    cursor: default;
    background: #fafafa;
    color: #bdbdbd;
  }
  .fpt .fpt__arrow:focus-visible { outline: 2px solid #111; outline-offset: 2px; }

  /* CTA « Voir tout » — même style partout, la casse suit ce qui est saisi. */
  .fpt .fpt__cta {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    white-space: nowrap;
    color: inherit;
    text-decoration: none;
  }
  .fpt .fpt__cta:hover { text-decoration: underline; text-underline-offset: 3px; }
  .fpt .fpt__cta:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
  /* Mobile : flèches en haut à droite, CTA « Voir tout » uniquement en bas.
     Les deux emplacements desktop sont masqués ici et réactivés plus bas,
     selon le réglage de position. */
  .fpt .fpt__cta--top,
  .fpt .fpt__cta--beside { display: none; }

  .fpt__foot { margin-top: 24px; }

  /* ---------- Onglets ---------- */
  .fpt__tabs {
    display: flex;
    gap: 28px;
    margin-top: 18px;
    overflow-x: auto;
    scrollbar-width: none;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
  }
  .fpt__tabs::-webkit-scrollbar { display: none; }

  .fpt .fpt__tab {
    flex-shrink: 0;
    background: none;
    border: none;
    border-radius: 0;
    padding: 0 0 10px;
    margin: 0;
    font: inherit;
    font-weight: 500;
    letter-spacing: 0.04em;
    font-size: 0.82rem;
    color: inherit;
    opacity: 0.5;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: opacity 0.2s ease;
  }
  .fpt .fpt__tab:hover { opacity: 0.8; }
  .fpt .fpt__tab.is-active { opacity: 1; border-bottom-color: currentColor; }
  .fpt .fpt__tab:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

  /* ---------- Piste ---------- */
  .fpt__panel { display: none; }
  .fpt__panel.is-active { display: block; }

  .fpt__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: var(--fpt-card-mobile, 62%);
    align-items: stretch;
    gap: var(--fpt-gap, 16px);
    margin-top: 24px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .fpt__track::-webkit-scrollbar { display: none; }
  .fpt__track:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }

  /* ---------- Carte ----------
     Le lien vit sur le titre et s'étend à toute la carte par ::after.
     Un seul lien est ainsi annoncé aux lecteurs d'écran, le texte reste
     sélectionnable, et le bouton favori peut se poser au-dessus sans être
     imbriqué dans un lien — ce qui serait invalide et non cliquable. */
  .fpt__card {
    position: relative;
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
    min-width: 0;
    color: inherit;
  }

  .fpt__link {
    color: inherit;
    text-decoration: none;
  }

  .fpt__link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
  }

  .fpt__link:focus-visible { outline: none; }
  .fpt__card:has(.fpt__link:focus-visible) {
    outline: 2px solid currentColor;
    outline-offset: 4px;
    border-radius: 4px;
  }

  /* ---------- Bouton favori ---------- */
  .fpt .fpt__wish {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
    width: var(--fpt-wish-size, 34px);
    height: var(--fpt-wish-size, 34px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    padding: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    color: #111;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.15s ease;
  }
  .fpt .fpt__wish:hover { background: #fff; transform: scale(1.06); }
  .fpt .fpt__wish:focus-visible { outline: 2px solid #111; outline-offset: 2px; }
  .fpt__wish-icon { display: inline-flex; }
  .fpt__wish-icon svg { display: block; }

  /* État actif : la classe est posée par assets/wishlist.js. */
  .fpt__wish-icon.add-to-wishlist-button__icon--filled svg path {
    fill: currentColor;
  }

  .fpt__media {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border-radius: var(--fpt-radius, 10px);
    background: var(--fpt-media-bg, #f4f3f1);
  }

  /* Format du média : chaque carte adopte le ratio d'origine de son image,
     transmis par --fpt-media-ratio depuis Liquid. Repli 4:5 quand le produit
     n'a pas d'image (placeholder), pour ne pas casser la rangée. */
  .fpt--img-natural .fpt__media {
    aspect-ratio: var(--fpt-media-ratio, 4 / 5);
  }

  /* Recadrée en 5:7 : cadre fixe calé sur le format des photos du catalogue
     (1600×2241). Une image à un autre ratio est zoomée et recadrée au centre,
     toutes les cartes restent à la même hauteur. */
  .fpt--img-cover57 .fpt__media {
    aspect-ratio: 5 / 7;
  }

  /* Skeleton : léger reflet animé tant que l'image n'est pas chargée. */
  .fpt__media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(100deg, transparent 35%, rgba(255, 255, 255, 0.55) 50%, transparent 65%);
    transform: translateX(-100%);
    animation: fpt-shimmer 1.5s ease-in-out infinite;
    pointer-events: none;
    transition: opacity 0.3s ease;
  }
  .fpt__media.is-loaded::after { opacity: 0; animation: none; }

  @keyframes fpt-shimmer {
    to { transform: translateX(100%); }
  }

  .fpt__img {
    width: 100%;
    height: 100%;
    display: block;
    transition: opacity 0.4s ease, transform 0.5s ease;
  }
  .fpt__img:not(.fpt__hover-media) { opacity: 0; }
  .fpt__media.is-loaded .fpt__img:not(.fpt__hover-media) { opacity: 1; }
  .fpt--img-cover .fpt__img,
  .fpt--img-cover57 .fpt__img { object-fit: cover; }
  .fpt--img-contain .fpt__img { object-fit: contain; padding: 8%; }
  /* Le cadre a déjà le ratio exact de l'image : cover ne rogne donc rien,
     il absorbe seulement l'arrondi d'un ratio à décimales. */
  .fpt--img-natural .fpt__img { object-fit: cover; }

  .fpt__hover-media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.35s ease;
  }
  @media (hover: hover) {
    .fpt__card:hover .fpt__hover-media { opacity: 1; }
    .fpt__card:hover .fpt__img:not(.fpt__hover-media) { transform: scale(1.03); }
  }

  .fpt__video { pointer-events: none; }

  /* Un produit épuisé garde son image lisible mais visiblement en retrait.
     Le sélecteur doit inclure .is-loaded pour l'emporter sur la règle
     de révélation de l'image, qui remet l'opacité à 1. */
  .fpt__card--soldout .fpt__media.is-loaded .fpt__img:not(.fpt__hover-media) {
    opacity: 0.55;
  }

  /* Badges sur l'image */
  .fpt__badge {
    position: absolute;
    z-index: 2;
    /* Le clic doit traverser jusqu'au lien qui couvre la carte. */
    pointer-events: none;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.03em;
    line-height: 1;
    padding: 6px 9px;
    border-radius: 4px;
    white-space: nowrap;
  }

  .fpt__badge--sale {
    top: 12px;
    right: 12px;
    background: var(--fpt-badge-bg, #111);
    color: var(--fpt-badge-text, #fff);
  }

  /* Badge de statut : couleurs portées par le metaobjet, ou repli section. */
  .fpt__badge--status {
    background: var(--fpt-status-bg, #fff);
    color: var(--fpt-status-color, #111);
    font-size: var(--fpt-status-size, 11px);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 7px 10px;
    border-radius: var(--fpt-status-radius, 4px);
    max-width: calc(100% - 24px);
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .fpt--status-bottom_left .fpt__badge--status { bottom: 12px; left: 12px; }
  .fpt--status-bottom_right .fpt__badge--status { bottom: 12px; right: 12px; }
  .fpt--status-top_left .fpt__badge--status { top: 12px; left: 12px; }
  .fpt--status-top_right .fpt__badge--status { top: 12px; right: 12px; }

  /* Si les deux badges se retrouvent en haut à droite, le statut descend. */
  .fpt--status-top_right .fpt__badge--sale { top: 46px; }

  /* ---------- Texte sous l'image ---------- */
  .fpt__body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: 12px 2px 0;
  }

  .fpt__swatches {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    min-height: 26px;
  }
  .fpt__swatch {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.12);
    background: #f4f4f4;
    background-size: cover;
    background-position: center;
    flex-shrink: 0;
  }
  .fpt__swatch-more { font-size: 12px; opacity: 0.6; margin-left: 2px; }

  /* Prénom : police, taille et couleur sont posées par la balise <style>
     en tête de section, car elles dépendent des réglages. */
  .fpt__prenom {
    margin: 0 0 2px;
    line-height: 1.2;
  }

  .fpt__name {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.01em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  @media (hover: hover) {
    .fpt__card:hover .fpt__name { text-decoration: underline; text-underline-offset: 3px; }
  }

  .fpt__subtitle {
    margin: 3px 0 0;
    font-size: 0.82rem;
    line-height: 1.4;
    opacity: 0.65;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .fpt__price {
    margin-top: auto;
    padding-top: 8px;
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 0.9rem;
  }
  .fpt__price-now { font-weight: 500; }
  .fpt__price-old {
    color: var(--fpt-price-old, #c62f2f);
    text-decoration: line-through;
    font-weight: 400;
  }

  .fpt__empty { opacity: 0.6; padding: 20px 4px; }

  @media (prefers-reduced-motion: reduce) {
    .fpt__media::after { animation: none; opacity: 0; }
    .fpt__img,
    .fpt__hover-media { transition: none; }
    .fpt__track { scroll-behavior: auto; }
  }

  /* ---------- Mobile + tablette : piste pleine largeur, swipe naturel ---------- */
  @media (max-width: 989px) {
    .fpt__track {
      width: 100vw;
      margin-inline: calc(50% - 50vw);
      padding-inline: var(--page-margin-mobile, 20px);
      scroll-padding-inline: var(--page-margin-mobile, 20px);
    }
    .fpt__tabs {
      width: 100vw;
      margin-inline: calc(50% - 50vw);
      padding-inline: var(--page-margin-mobile, 20px);
    }
    .fpt__badge--status { padding: 6px 8px; }
  }

  /* ---------- Desktop ---------- */
  @media (min-width: 990px) {
    .fpt__title { font-size: 2.1rem; }
    .fpt--cta-beside .fpt__cta--beside { display: inline-flex; }
    .fpt--cta-right .fpt__cta--top { display: inline-flex; }
    .fpt__foot { display: none; }
    .fpt__track {
      /* per_view cartes entières + un aperçu de la suivante (peek) */
      grid-auto-columns: calc(
        (100% - (var(--fpt-per-view) - 1 + var(--fpt-peek)) * var(--fpt-gap, 16px))
        / (var(--fpt-per-view) + var(--fpt-peek))
      );
      scroll-snap-type: none;
    }
  }
/* END_SECTION:featured-tabs */

/* START_SECTION:footer-dore-rose (INDEX:42) */
.fdr {
    color: var(--fdr-text, #2b2b2b);
  }
  .fdr a {
    color: inherit;
    text-decoration: none;
  }
  .fdr a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  /* Illustration / logo centré au-dessus, sur le fond de page */
  .fdr__brand {
    display: flex;
    justify-content: center;
    padding: 8px 0 0;
  }
  .fdr__brand-img {
    width: auto;
    max-width: 200px;
    max-height: 90px;
    display: block;
  }

  /* Split deux tons : le fond porte la séparation, en pleine largeur */
  .fdr__split {
    background: linear-gradient(
      90deg,
      var(--fdr-left, #f2f2f0) 0,
      var(--fdr-left, #f2f2f0) var(--fdr-split, 61%),
      var(--fdr-right, #ececea) var(--fdr-split, 61%)
    );
  }
  .fdr__inner {
    padding-top: 56px;
    padding-bottom: 64px;
  }

  /* ----- Rubriques ----- */
  .fdr-col__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0;
    padding: 0 0 10px;
    border-bottom: 1px solid var(--fdr-rule);
    list-style: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .fdr-col__head::-webkit-details-marker {
    display: none;
  }
  .fdr-col__title {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--fdr-muted);
  }
  .fdr-col__chevron {
    flex-shrink: 0;
    color: var(--fdr-muted);
    transition: transform 0.2s ease;
  }
  details[open] .fdr-col__chevron {
    transform: rotate(90deg);
  }
  .fdr-col__links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
    font-size: 15.5px;
  }
  .fdr-contact {
    font-size: 14.5px;
    line-height: 1.6;
  }
  .fdr-contact p {
    margin: 0 0 10px;
  }
  .fdr-contact__subtitle {
    margin: 16px 0 8px !important;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--fdr-muted);
  }

  /* ----- Panneau newsletter ----- */
  .fdr-sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .fdr__news-label {
    margin: 0 0 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--fdr-rule);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--fdr-muted);
  }
  .fdr__news-heading {
    margin: 22px 0 12px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
  }
  .fdr__news-legal {
    margin: 0 0 26px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--fdr-muted);
  }
  .fdr__news-legal a {
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .fdr__news-legal p {
    margin: 0;
  }
  .fdr__form {
    position: relative;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    border-bottom: 1px solid var(--fdr-text);
  }
  .fdr__input {
    flex: 1 1 0;
    min-width: 0;
    padding: 12px 44px 12px 0;
    font-size: 16px;
    color: var(--fdr-text);
    background: transparent;
    border: 0;
    outline: none;
    margin: 0;
  }
  .fdr__input::placeholder {
    color: var(--fdr-muted);
  }
  .fdr__arrow {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    padding: 6px 0 6px 10px;
    background: none;
    border: 0;
    color: var(--fdr-text);
    cursor: pointer;
    transition: transform 0.15s ease;
  }
  .fdr__arrow:hover {
    transform: translateY(-50%) translateX(4px);
  }
  .fdr__msg {
    flex-basis: 100%;
    margin: 8px 0 0;
    font-size: 13.5px;
  }
  .fdr__msg--ok { color: #1a7f37; }
  .fdr__msg--err { color: #b42318; }

  /* ----- Bande basse : paiements + copyright ----- */
  .fdr__bottom {
    background: var(--fdr-bottom, #e9e9e7);
  }
  .fdr__bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding-top: 26px;
    padding-bottom: 26px;
  }
  .fdr__payments {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
  }
  .fdr__payment-icon {
    width: 37px;
    height: 24px;
  }
  .fdr__copyright {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--fdr-muted);
  }

  /* Pages produit : vide réservé sous la bande basse pour le sticky ATC */
  .fdr--product .fdr__bottom {
    padding-bottom: var(--fdr-extra-b, 88px);
  }

  /* ============================================================
     DESKTOP : colonnes ouvertes à gauche, panneau newsletter à droite
     ============================================================ */
  @media (min-width: 750px) {
    .fdr__grid {
      display: grid;
      grid-template-columns: var(--fdr-split, 61%) minmax(0, 1fr);
      align-items: start;
    }
    .fdr__menus {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
      column-gap: 44px;
      padding-right: 56px;
    }
    .fdr__news {
      padding-left: 56px;
      padding-top: 96px;
    }
    .fdr-acc .fdr-col__head {
      pointer-events: none;
    }
    .fdr-col__chevron {
      display: none;
    }
    .fdr-col__body {
      padding-top: 24px;
    }
  }

  /* ============================================================
     MOBILE : newsletter d'abord, rubriques en accordéon
     ============================================================ */
  @media (max-width: 749px) {
    .fdr__inner {
      padding-top: 30px;
      padding-bottom: 34px;
    }
    .fdr__grid {
      display: flex;
      flex-direction: column;
    }
    .fdr__news {
      order: -1;
      margin-bottom: 26px;
    }
    .fdr-acc {
      border-bottom: 1px solid var(--fdr-rule);
    }
    .fdr-acc:first-of-type {
      border-top: 1px solid var(--fdr-rule);
    }
    .fdr-acc .fdr-col__head {
      padding: 18px 0;
      border-bottom: 0;
    }
    .fdr-acc .fdr-col__body {
      padding: 2px 0 20px;
    }
    .fdr__bottom-inner {
      flex-direction: column;
      align-items: flex-start;
      gap: 14px;
    }
    .fdr--product .fdr__bottom {
      padding-bottom: var(--fdr-extra-b-m, 96px);
    }
  }
/* END_SECTION:footer-dore-rose */

/* START_SECTION:footer-nude (INDEX:43) */
/* Le thème coupe ce qui déborde des wrappers de section : l'icône à
     cheval doit pouvoir dépasser au-dessus du footer (même correctif que
     le groupe header). */
  .shopify-section-group-footer-group,
  .section-footer-nude {
    overflow: visible;
  }

  .nfoot {
    position: relative;
    background: var(--nfoot-bg, #ffffff);
    color: var(--nfoot-text, #482922);
    border-top: 1px solid var(--nfoot-border, #eae4e0);
    font-size: 13px;
    line-height: 1.55;
  }

  /* ---- Icône de marque à cheval sur le bord haut ---- */
  .nfoot__icon {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 0 18px;
    background: var(--nfoot-bg, #ffffff);
    line-height: 0;
    z-index: 1;
  }

  .nfoot__icon-img {
    height: var(--nfoot-icon-h, 56px);
    width: auto;
  }

  .nfoot__top {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 40px 56px;
    padding: var(--nfoot-pt, 48px) 20px 44px;
  }

  @media (min-width: 990px) {
    .nfoot__top {
      padding-inline: 48px;
      flex-wrap: nowrap;
    }
  }

  .nfoot__news {
    flex: 0 1 400px;
    min-width: 280px;
  }

  .nfoot__right {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 44px;
    min-width: 0;
  }

  .nfoot__heading {
    margin: 0 0 16px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--nfoot-text, #482922);
  }

  .nfoot__heading--sub {
    margin: 16px 0 8px;
    font-size: 12px;
  }

  .nfoot__heading--inline {
    margin: 0;
  }

  /* ---- Newsletter ---- */
  .nfoot__news-text {
    margin: 0 0 18px;
    color: var(--nfoot-muted, #8a7266);
  }

  .nfoot__field {
    display: flex;
    align-items: center;
    gap: 16px;
    border-bottom: 1px solid var(--nfoot-border, #d9d0ca);
  }

  .nfoot__field:focus-within {
    border-bottom-color: var(--nfoot-text, #482922);
  }

  .nfoot__input {
    flex: 1 1 auto;
    min-width: 0;
    padding: 10px 0;
    border: none;
    border-radius: 0;
    background: transparent;
    font-size: 13px;
    color: var(--nfoot-text, #482922);
    appearance: none;
  }

  .nfoot__input::placeholder {
    color: var(--nfoot-muted, #8a7266);
    opacity: 0.7;
  }

  .nfoot__input:focus {
    outline: none;
  }

  .nfoot__submit {
    flex-shrink: 0;
    min-height: 44px;
    padding: 10px 0;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--nfoot-text, #482922);
    transition: opacity 0.15s ease;
  }

  .nfoot__submit:hover {
    opacity: 0.6;
  }

  .nfoot__form-msg {
    margin: 10px 0 0;
  }

  .nfoot__form-msg--error {
    color: #b3261e;
  }

  /* ---- Préférences ---- */
  .nfoot__prefs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 20px;
    margin-top: 18px;
  }

  .nfoot__prefs-label {
    color: var(--nfoot-muted, #8a7266);
    margin-right: auto;
  }

  .nfoot__pref {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
  }

  .nfoot__pref input {
    margin: 0;
    accent-color: var(--nfoot-text, #482922);
  }

  .nfoot__consent {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 20px;
    font-size: 12px;
    color: var(--nfoot-muted, #8a7266);
    cursor: pointer;
  }

  .nfoot__consent input {
    margin: 2px 0 0;
    accent-color: var(--nfoot-text, #482922);
    flex-shrink: 0;
  }

  .nfoot__consent a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  /* ---- Colonnes de liens + coordonnées ---- */
  /* Grille : 2 colonnes dès la sortie du mobile, 4 colonnes (Marque,
     Aide, Légales, Contact) côte à côte sur desktop large. */
  .nfoot__cols {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px 36px;
  }

  @media (min-width: 1200px) {
    .nfoot__cols {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
  }

  .nfoot__col {
    min-width: 0;
  }

  .nfoot__list {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .nfoot__list li {
    margin: 0 0 12px;
  }

  .nfoot__link {
    color: var(--nfoot-muted, #8a7266);
    text-decoration: none;
    transition: color 0.15s ease;
  }

  .nfoot__link:hover {
    color: var(--nfoot-text, #482922);
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .nfoot__contact {
    max-width: 240px;
  }

  .nfoot__contact-line {
    margin: 0 0 7px;
    color: var(--nfoot-muted, #8a7266);
  }

  .nfoot__contact-address {
    margin-bottom: 12px;
  }

  /* Accordéons : mobile uniquement. */
  .nfoot__acc {
    display: none;
  }

  /* ---- Ligne pays/langue + réseaux ---- */
  .nfoot__meta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 20px 32px;
  }

  .nfoot__locale {
    display: flex;
    align-items: center;
    gap: 18px;
  }

  .nfoot__locale .localization-form__language-select,
  .nfoot__locale select {
    background: transparent;
    color: inherit;
    font-size: 13px;
  }

  .nfoot__social {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
  }

  .nfoot__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--nfoot-text, #482922);
    color: var(--nfoot-bg, #ffffff);
    transition: opacity 0.15s ease, transform 0.15s ease;
  }

  .nfoot__social-link:hover {
    opacity: 0.85;
    transform: translateY(-1px);
  }

  /* ---- Bas de page ---- */
  .nfoot__bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 24px;
    border-top: 1px solid var(--nfoot-border, #eae4e0);
    padding: 14px 20px 16px;
  }

  @media (min-width: 990px) {
    .nfoot__bottom {
      padding-inline: 48px;
    }
  }

  .nfoot__copyright {
    margin: 0;
    font-size: 11px;
    letter-spacing: 0.02em;
    color: var(--nfoot-muted, #8a7266);
  }

  .nfoot__payments {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .nfoot__payment-icon {
    display: block;
    height: 22px;
    width: auto;
    border-radius: 3px;
  }

  /* ---- Mobile : colonnes en accordéons ---- */
  @media (max-width: 749px) {
    .nfoot__payments {
      justify-content: center;
    }

    .nfoot__news {
      flex: 1 1 100%;
    }

    .nfoot__right {
      flex: 1 1 100%;
      gap: 28px;
    }

    .nfoot__col--d {
      display: none;
    }

    .nfoot__cols {
      display: block;
    }

    .nfoot__acc {
      display: block;
      border-bottom: 1px solid var(--nfoot-border, #e7dfda);
    }

    .nfoot__acc:first-of-type {
      border-top: 1px solid var(--nfoot-border, #e7dfda);
    }

    /* Pas de filet sous le dernier accordéon : la barre © en dessous
       apporte déjà sa propre séparation. */
    .nfoot__acc:last-of-type {
      border-bottom: none;
    }

    .nfoot__acc-summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 16px 0;
      cursor: pointer;
      list-style: none;
    }

    .nfoot__acc-summary::-webkit-details-marker {
      display: none;
    }

    .nfoot__acc-chevron {
      flex-shrink: 0;
      transition: transform 0.2s ease;
    }

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

    .nfoot__acc-body {
      padding: 2px 0 16px;
    }

    .nfoot__acc-body .nfoot__list li:last-child {
      margin-bottom: 0;
    }

    .nfoot__meta-row {
      justify-content: center;
    }

    .nfoot__prefs-label {
      flex: 1 1 100%;
      margin-right: 0;
    }

    .nfoot__bottom {
      justify-content: center;
      text-align: center;
    }
  }
/* END_SECTION:footer-nude */

/* START_SECTION:footer-onalie (INDEX:44) */
.fo {
    background: var(--fo-bg, #ffffff);
    color: var(--fo-text, #111111);
    border-top: 1px solid var(--fo-rule);
  }

  /* Le conteneur est .page-width : largeur et marges IDENTIQUES aux
     sections du dessus. On n'ajoute ici que le rythme vertical. */
  .fo__inner {
    padding-top: 52px;
    padding-bottom: 28px;
  }

  /* Pages produit : le bouton d'achat sticky recouvre le bas de l'écran —
     on réserve du vide sous le footer pour que copyright et paiements
     restent lisibles et cliquables. */
  .fo--product .fo__inner {
    padding-bottom: calc(28px + var(--fo-extra-b, 88px));
  }

  .fo a {
    color: inherit;
    text-decoration: none;
  }
  .fo a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  /* ----- Têtes de rubriques : petites capitales + filet fin ----- */
  .fo-col__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0;
    padding: 0 0 10px;
    border-bottom: 1px solid var(--fo-rule);
    list-style: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .fo-col__head::-webkit-details-marker {
    display: none;
  }
  .fo-col__head--static {
    cursor: default;
  }
  .fo-col__title {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    line-height: 1.3;
  }
  .fo-col__chevron {
    flex-shrink: 0;
    transition: transform 0.2s ease;
  }
  details[open] .fo-col__chevron {
    transform: rotate(180deg);
  }

  .fo-col__links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--fo-links-gap, 14px);
    font-size: 15.5px;
    line-height: 1.4;
  }

  /* ----- Contact (Merchant Center) ----- */
  .fo-contact {
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--fo-text);
  }
  .fo-contact__row {
    margin: 0 0 12px;
  }
  .fo-contact__row strong {
    font-weight: 600;
  }
  .fo-contact__subtitle {
    margin: 20px 0 10px;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  /* ----- Newsletter (structure de la référence) ----- */
  .fo-sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .fo-news__text {
    margin: 0 0 22px;
    font-size: 15px;
    line-height: 1.65;
    color: var(--fo-text);
  }
  .fo-news__form {
    display: flex;
    gap: 10px;
    align-items: stretch;
    flex-wrap: wrap;
  }
  .fo-news__input {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
    height: 54px;
    padding: 0 18px;
    font-size: 15px;
    color: var(--fo-text);
    background: transparent;
    border: 1px solid var(--fo-rule);
    border-radius: var(--button-border-radius, 10px);
    outline: none;
    margin: 0;
  }
  .fo-news__input:focus {
    border-color: var(--fo-text);
  }
  .fo-news__input::placeholder {
    color: var(--fo-muted);
  }
  .fo-news__submit {
    flex-shrink: 0;
    height: 54px;
    padding: 0 32px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #ffffff;
    background: var(--fo-text, #111111);
    border: 0;
    border-radius: var(--button-border-radius, 10px);
    cursor: pointer;
    transition: opacity 0.15s ease;
  }
  .fo-news__submit:hover {
    opacity: 0.85;
  }
  .fo-news__msg {
    flex-basis: 100%;
    margin: 6px 0 0;
    font-size: 13.5px;
  }
  .fo-news__msg--ok { color: #1a7f37; }
  .fo-news__msg--err { color: #b42318; }

  .fo-social {
    display: flex;
    gap: 18px;
    margin-top: 26px;
  }
  .fo-social a {
    display: inline-flex;
    opacity: 0.9;
    transition: opacity 0.15s ease;
  }
  .fo-social a:hover {
    opacity: 0.6;
  }

  /* ----- Barre basse : copyright à gauche, paiements à droite,
     SANS filet (comme la référence) ----- */
  .fo__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 64px;
  }
  .fo__copyright {
    margin: 0;
    font-size: 14px;
    color: var(--fo-muted);
  }
  .fo__payments {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
  }
  .fo__payment-icon {
    width: 37px;
    height: 24px;
  }

  /* ============================================================
     DESKTOP : toutes rubriques ouvertes côte à côte.
     Colonnes de blocs égales + newsletter large à droite.
     ============================================================ */
  @media (min-width: 750px) {
    .fo__grid {
      display: grid;
      grid-template-columns: repeat(var(--fo-cols, 3), minmax(0, 1fr)) minmax(320px, 1.55fr);
      column-gap: 44px;
      align-items: start;
    }
    .fo-acc .fo-col__head {
      pointer-events: none;
    }
    .fo-col__chevron {
      display: none;
    }
    .fo-col__body {
      padding-top: 26px;
    }
  }

  /* ============================================================
     MOBILE : newsletter en tête, puis TOUT en accordéon
     (menus ET contact), icônes/paiements/copyright centrés.
     ============================================================ */
  @media (max-width: 749px) {
    .fo__inner {
      padding-top: 36px;
      padding-bottom: 30px;
    }
    .fo--product .fo__inner {
      padding-bottom: calc(30px + var(--fo-extra-b-m, 96px));
    }
    .fo__grid {
      display: flex;
      flex-direction: column;
      gap: 0;
    }

    /* Newsletter d'abord */
    .fo-col--news {
      order: -1;
      margin-bottom: 10px;
    }
    .fo-col--news .fo-col__head--static {
      padding-bottom: 12px;
    }
    .fo-col--news .fo-col__body {
      padding-top: 18px;
    }
    .fo-news__input,
    .fo-news__submit {
      height: 52px;
    }
    .fo-news__submit {
      padding: 0 26px;
    }

    /* Accordéons homogènes pour TOUTES les rubriques */
    .fo-acc {
      border-bottom: 1px solid var(--fo-rule);
    }
    .fo-acc .fo-col__head {
      padding: 18px 0;
      border-bottom: 0;
    }
    .fo-acc .fo-col__body {
      padding: 2px 0 20px;
    }

    .fo-social {
      justify-content: center;
      margin-top: 30px;
    }

    /* Bas de page : paiements puis copyright, centrés */
    .fo__bottom {
      flex-direction: column-reverse;
      gap: 14px;
      margin-top: 30px;
    }
    .fo__payments {
      justify-content: center;
    }
    .fo__copyright {
      text-align: center;
      font-size: 13.5px;
    }
  }
/* END_SECTION:footer-onalie */

/* START_SECTION:footer (INDEX:46) */
.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-benefices (INDEX:48) */
.bgrid-section {
    box-sizing: border-box;
    padding-top: var(--bgrid-pt-m, 24px);
    padding-bottom: var(--bgrid-pb-m, 24px);
  }

  /* Pleine largeur : mêmes marges latérales que les autres sections onalie
     (trio éditorial, cartes collections) — 20 px sur mobile, puis la marge
     réglable à partir de 990 px : les bords restent alignés d'une section
     à l'autre, à toutes les largeurs d'écran. */
  .bgrid-section--full {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 20px;
  }
  @media (min-width: 990px) {
    .bgrid-section--full { padding-inline: var(--bgrid-side, 48px); }
  }

  /* ==========================================================
     Les cellules sont collées, et l'« écart » de la grille laisse voir
     le fond du conteneur — c'est lui qui dessine les filets de séparation
     (1 px par défaut), verticaux ET horizontaux, quel que soit le nombre
     de colonnes. Écart à 0 = visuels parfaitement jointifs.
     ========================================================== */
  .bgrid {
    display: grid;
    grid-template-columns: repeat(var(--bgrid-cols-m, 2), minmax(0, 1fr));
    gap: var(--bgrid-rule, 1px);
    width: 100%;
    background: var(--bgrid-rule-color, #ffffff);
    border-radius: var(--bgrid-radius, 16px);
    overflow: hidden;
  }

  /* Le fond beige est porté par la cellule entière : le visuel couvre le
     haut, le panneau occupe tout le reste. Les panneaux d'une même rangée
     se calent donc à la même hauteur, même avec des textes inégaux. */
  .bgrid__item {
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: var(--bgrid-panel-bg, #f3e9e3);
  }

  .bgrid__media {
    position: relative;
    width: 100%;
    aspect-ratio: var(--bgrid-ratio, 5 / 6);
    overflow: hidden;
  }

  .bgrid__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--bgrid-focal, 50% 50%);
  }

  .bgrid__img--placeholder {
    background: #ebe3de;
    fill: rgb(0 0 0 / 12%);
  }

  .bgrid__panel {
    flex: 1 1 auto;
    padding: var(--bgrid-pad-m, 20px);
    padding-bottom: calc(var(--bgrid-pad-m, 20px) * 1.3);
  }

  .bgrid__num {
    display: block;
    margin: 0 0 14px;
    font-size: var(--bgrid-num-size-m, 30px);
    font-weight: var(--bgrid-num-weight, 700);
    line-height: 1;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    color: var(--bgrid-num-color, #111111);
  }

  .bgrid__title {
    margin: 0 0 10px;
    font-size: var(--bgrid-title-size-m, 13px) !important;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bgrid-title-color, #111111);
  }

  .bgrid__text {
    margin: 0;
    font-size: var(--bgrid-text-size-m, 14px);
    line-height: 1.5;
    color: var(--bgrid-text-color, #3d3d3d);
  }

  @media (min-width: 750px) {
    .bgrid-section {
      padding-top: var(--bgrid-pt-d, 48px);
      padding-bottom: var(--bgrid-pb-d, 48px);
    }

    .bgrid {
      grid-template-columns: repeat(var(--bgrid-cols-d, 4), minmax(0, 1fr));
    }

    .bgrid__panel {
      padding: var(--bgrid-pad-d, 26px);
      padding-bottom: calc(var(--bgrid-pad-d, 26px) * 1.3);
    }

    .bgrid__num {
      margin-bottom: 16px;
      font-size: var(--bgrid-num-size-d, 34px);
    }

    .bgrid__title {
      margin-bottom: 12px;
      font-size: var(--bgrid-title-size-d, 13px) !important;
    }

    .bgrid__text {
      font-size: var(--bgrid-text-size-d, 15px);
    }
  }
/* END_SECTION:grille-benefices */

/* START_SECTION:guide-tailles (INDEX:49) */
.gt {
    background: var(--color-background, #fff);
  }

  .gt__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  /* ---- Héro, identique FAQ et Contact ---- */
  .gt__hero {
    background: var(--gt-hero-bg, #f5f5f5);
    padding: 56px 20px 48px;
  }

  .gt__hero-inner {
    max-width: 640px;
    margin: 0 auto;
    text-align: center;
  }

  .gt__overtitle {
    margin: 0 0 10px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    opacity: 0.55;
  }

  .gt__title {
    margin: 0;
    font-size: clamp(1.7rem, 4.5vw, 2.6rem);
    font-weight: 800;
    letter-spacing: -0.01em;
  }

  .gt__subtitle {
    margin: 12px auto 0;
    max-width: 52ch;
    font-size: 1rem;
    line-height: 1.6;
    opacity: 0.7;
  }

  /* ---- Corps ---- */
  .gt__body {
    max-width: 760px;
    margin: 0 auto;
    padding: 32px 20px 64px;
  }

  /* Onglets catégories */
  .gt__tabs {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 32px;
  }

  .gt__tab {
    padding: 11px 22px;
    border: 1px solid rgba(0, 0, 0, 0.14);
    border-radius: 999px;
    background: #ffffff;
    color: inherit;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
  }

  .gt__tab:hover {
    border-color: var(--gt-accent, #482922);
  }

  .gt__tab--on {
    background: var(--gt-accent, #482922);
    border-color: var(--gt-accent, #482922);
    color: #ffffff;
  }

  /* ---- Calculateur ---- */
  .gt__calc {
    border: 1px solid rgba(0, 0, 0, 0.09);
    border-radius: 16px;
    padding: 24px 24px 26px;
    background: #ffffff;
  }

  .gt__calc-progress {
    display: flex;
    gap: 10px;
    margin-bottom: 14px;
  }

  .gt__seg {
    flex: 1 1 0;
    height: 3px;
    border-radius: 3px;
    background: rgba(0, 0, 0, 0.1);
    transition: background 0.3s ease;
  }

  .gt__seg--on {
    background: var(--gt-accent, #482922);
  }

  .gt__stepline {
    margin: 0 0 4px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    opacity: 0.45;
  }

  .gt__calc-heading {
    margin: 0 0 14px;
    font-size: 1.05rem;
    font-weight: 800;
  }

  .gt__units {
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.05);
    margin-bottom: 16px;
  }

  .gt__unit {
    border: none;
    background: none;
    padding: 7px 16px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: inherit;
    opacity: 0.55;
    cursor: pointer;
  }

  .gt__unit--on {
    background: #ffffff;
    opacity: 1;
    border: 1px solid rgba(0, 0, 0, 0.1);
  }

  .gt__label {
    display: block;
    margin: 0 0 8px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    opacity: 0.6;
  }

  .gt__fieldbox {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 10px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    background: #ffffff;
    transition: border-color 0.15s ease;
  }

  .gt__fieldbox:focus-within {
    border-color: var(--gt-accent, #482922);
  }

  .gt__input {
    flex: 1 1 auto;
    min-width: 0;
    border: none;
    background: none;
    font-size: 1rem;
    color: inherit;
  }

  .gt__input:focus {
    outline: none;
  }

  .gt__suffix {
    flex-shrink: 0;
    font-size: 0.85rem;
    opacity: 0.5;
  }

  .gt__hint {
    margin: 8px 0 0;
    font-size: 0.8rem;
    line-height: 1.55;
    opacity: 0.55;
  }

  .gt__error {
    margin: 8px 0 0;
    font-size: 0.8rem;
    font-weight: 600;
    color: #b3261e;
  }

  .gt__submit {
    display: block;
    width: 100%;
    margin-top: 16px;
    padding: 15px 20px;
    border: none;
    border-radius: 10px;
    background: var(--gt-accent, #482922);
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: opacity 0.15s ease;
  }

  .gt__submit:hover {
    opacity: 0.9;
  }

  .gt__result {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: 18px 20px;
    border-radius: 12px;
    background: var(--gt-hero-bg, #f5f5f5);
  }

  .gt__size {
    font-size: 2.1rem;
    font-weight: 800;
    line-height: 1;
    color: var(--gt-accent, #482922);
  }

  .gt__fr {
    font-size: 0.9rem;
    font-weight: 600;
    opacity: 0.6;
  }

  .gt__note {
    margin: 12px 0 0;
    font-size: 0.85rem;
    line-height: 1.55;
    opacity: 0.75;
  }

  .gt__shop {
    display: block;
    margin-top: 14px;
    padding: 13px 18px;
    border-radius: 999px;
    background: var(--gt-accent, #482922);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-align: center;
    text-decoration: none;
  }

  .gt__again {
    margin-top: 14px;
    padding: 0;
    border: none;
    background: none;
    color: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
  }

  .gt__divider {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 26px 0 20px;
  }

  .gt__divider::before,
  .gt__divider::after {
    content: '';
    flex: 1 1 0;
    height: 1px;
    background: rgba(0, 0, 0, 0.09);
  }

  .gt__divider span {
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    opacity: 0.45;
  }

  /* ---- Grille ---- */
  .gt__tablecard {
    border: 1px solid rgba(0, 0, 0, 0.09);
    border-radius: 16px;
    background: #ffffff;
    overflow: hidden;
  }

  .gt__scroll {
    position: relative;
  }

  .gt__table-wrap {
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 0, 0, 0.25) transparent;
  }

  .gt__table-wrap::-webkit-scrollbar { height: 6px; }
  .gt__table-wrap::-webkit-scrollbar-track { background: transparent; }
  .gt__table-wrap::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 3px;
  }

  .gt__table-wrap:focus-visible { outline: 2px solid currentColor; outline-offset: -2px; }

  .gt__fade {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 40px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s;
  }

  .gt__fade--left {
    left: 0;
    background: linear-gradient(to right, #ffffff, transparent);
  }

  .gt__fade--right {
    right: 0;
    background: linear-gradient(to left, #ffffff, transparent);
  }

  .gt-can-left .gt__fade--left { opacity: 1; }
  .gt-can-right .gt__fade--right { opacity: 1; }

  .gt__scroll-hint {
    display: none;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 8px 0 0;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.55;
  }

  .gt__tablecard.gt-can-right:not(.gt-scrolled) + .gt__scroll-hint { display: flex; }

  .gt__scroll-hint svg { width: 15px; height: 15px; flex-shrink: 0; }

  @media (prefers-reduced-motion: no-preference) {
    .gt__scroll-hint svg { animation: gt-nudge 1.4s ease-in-out infinite; }
    @keyframes gt-nudge {
      0%, 100% { transform: translateX(0); }
      50% { transform: translateX(5px); }
    }
  }

  .gt__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
  }

  .gt__th {
    text-align: center;
    font-weight: 700;
    font-size: 0.66rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.3;
    padding: 11px 6px;
    min-width: 54px;
    vertical-align: bottom;
    white-space: normal;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }

  .gt__th--first {
    text-align: left;
    padding-left: 14px;
  }

  .gt__th-main {
    display: block;
    font-size: 0.92rem;
    font-weight: 800;
  }

  .gt__th-sub {
    display: block;
    margin-top: 1px;
    font-size: 0.62rem;
    font-weight: 500;
    opacity: 0.55;
  }

  .gt__cell {
    padding: 11px 6px;
    vertical-align: middle;
    text-align: center;
    font-weight: 500;
    min-width: 54px;
  }

  .gt__cell--first {
    text-align: left;
    padding-left: 14px;
    font-weight: 700;
  }

  .gt__cell-main {
    display: block;
    font-size: 0.84rem;
    white-space: nowrap;
  }

  .gt__cell-sub {
    display: block;
    margin-top: 1px;
    font-size: 0.68rem;
    font-weight: 500;
    white-space: nowrap;
    opacity: 0.55;
  }

  .gt__th--first,
  .gt__cell--first {
    position: sticky;
    left: 0;
    z-index: 1;
    background: #ffffff;
  }

  .gt__table tbody tr + tr .gt__cell {
    border-top: 1px solid rgba(0, 0, 0, 0.07);
  }

  /* Ligne recommandée par le calculateur */
  .gt__table tbody tr.gt-row--reco .gt__cell {
    background: color-mix(in srgb, var(--gt-accent, #482922) 9%, #ffffff);
  }

  .gt__table tbody tr.gt-row--reco .gt__cell--first {
    box-shadow: inset 3px 0 0 var(--gt-accent, #482922);
  }

  /* Nuancier XS -> 3XL */
  .gt__cell--l1, .gt__cell--l2, .gt__cell--l3, .gt__cell--l4,
  .gt__cell--l5, .gt__cell--l6, .gt__cell--l7, .gt__cell--l8 {
    border: 2px solid #ffffff;
    font-weight: 600;
  }

  .gt__cell--l1 { background: color-mix(in srgb, var(--gt-scale, #b7986b) 8%, #fff); }
  .gt__cell--l2 { background: color-mix(in srgb, var(--gt-scale, #b7986b) 13%, #fff); }
  .gt__cell--l3 { background: color-mix(in srgb, var(--gt-scale, #b7986b) 21%, #fff); }
  .gt__cell--l4 { background: color-mix(in srgb, var(--gt-scale, #b7986b) 31%, #fff); }
  .gt__cell--l5 { background: color-mix(in srgb, var(--gt-scale, #b7986b) 43%, #fff); }
  .gt__cell--l6 { background: color-mix(in srgb, var(--gt-scale, #b7986b) 57%, #fff); }
  .gt__cell--l7 {
    background: color-mix(in srgb, var(--gt-scale, #b7986b) 72%, #fff);
    color: #ffffff;
  }
  .gt__cell--l8 {
    background: color-mix(in srgb, var(--gt-scale, #b7986b) 88%, #fff);
    color: #ffffff;
  }

  .gt__cell--mute {
    color: rgba(0, 0, 0, 0.28);
    font-weight: 400;
  }

  .gt__table tbody td {
    font-variant-numeric: tabular-nums;
  }

  /* ---- Comment se mesurer ---- */
  .gt__mesure {
    margin-top: 36px;
  }

  .gt__section-title {
    margin: 0 0 14px;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    opacity: 0.6;
  }

  .gt__mesure-grid--img {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 26px;
    align-items: start;
  }

  .gt__mesure-img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 0, 0.08);
  }

  .gt__mesure-text {
    font-size: 0.92rem;
    line-height: 1.7;
    opacity: 0.85;
  }

  .gt__mesure-text p {
    margin: 0 0 0.8em;
  }

  .gt__mesure-text p:last-child {
    margin-bottom: 0;
  }

  /* Conseil */
  .gt__tip {
    margin-top: 26px;
    padding: 18px 20px;
    border: 1px solid rgba(0, 0, 0, 0.09);
    border-left: 3px solid var(--gt-accent, #482922);
    border-radius: 12px;
  }

  .gt__tip-title {
    margin: 0 0 6px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  .gt__tip-text {
    font-size: 0.9rem;
    line-height: 1.6;
    opacity: 0.85;
  }

  .gt__tip-text p { margin: 0; }

  /* Note retour */
  .gt__retour {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 22px 0 0;
    font-size: 0.86rem;
    opacity: 0.75;
  }

  .gt__retour svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    color: var(--gt-accent, #482922);
  }

  /* Liens bas de page */
  .gt__links {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px 32px;
    margin-top: 44px;
    padding-top: 22px;
    border-top: 1px solid rgba(0, 0, 0, 0.07);
  }

  .gt__links a {
    color: var(--gt-accent, #482922);
    font-size: 0.88rem;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  @media (width <= 749px) {
    .gt__hero {
      padding: 42px 16px 36px;
    }
    .gt__body {
      padding: 24px 16px 48px;
    }
    .gt__tabs {
      margin-bottom: 24px;
    }
    .gt__tab {
      padding: 10px 16px;
      font-size: 0.8rem;
    }
    .gt__calc {
      padding: 18px 16px 20px;
    }
    .gt__table { font-size: 0.78rem; }
    .gt__th { padding: 9px 5px; font-size: 0.62rem; }
    .gt__th-main { font-size: 0.86rem; }
    .gt__cell { padding: 9px 5px; min-width: 48px; }
    .gt__th--first,
    .gt__cell--first { padding-left: 12px; }
    .gt__mesure-grid--img {
      grid-template-columns: 1fr;
      gap: 16px;
    }
    .gt__mesure-img {
      max-width: 260px;
    }
  }
/* END_SECTION:guide-tailles */

/* START_SECTION:header-skims (INDEX:50) */
/* Partage d'écran : cette section porte le header à toutes les
     largeurs. La barre d'annonces marquee est masquée partout (ses
     messages vivent dans la barre supérieure). Le header classique est
     masqué visuellement mais reste rendu sous 990 px : son tiroir de
     menu mobile (position fixe, il échappe au rognage) est ouvert par
     le burger. Hauteur nulle + visibility plutôt que display none,
     sinon le tiroir ne pourrait plus se dessiner. */
  .shopify-section[id$="__announcement_bar_ytcTja"] {
    display: none !important;
  }

  @media (min-width: 990px) {
    .shopify-section[id$="__header"] {
      display: none !important;
    }
  }

  @media (max-width: 989px) {
    .shopify-section[id$="__header"] {
      height: 0 !important;
      min-height: 0 !important;
      overflow: hidden;
      visibility: hidden;
    }

    /* Restaurer la visibilité SEULEMENT quand le tiroir est ouvert ou
       en cours de fermeture. Fermé, il doit rester visibility: hidden
       (règle du thème) : c'est un calque fixe plein écran à opacity 0
       et z-index 999 qui, rendu visible en permanence, avale tous les
       taps et les glissements de la page. */
    .shopify-section[id$="__header"] .header__mobile-menu-overlay.is-open,
    .shopify-section[id$="__header"] .header__mobile-menu-overlay.is-closing {
      visibility: visible;
    }

    /* Le panneau du tiroir se cale sous le header Skims (86 px : barre
       message 34 + barre nav 52). Le thème le calait sous son propre
       header de 50 px : le champ de recherche du tiroir se retrouvait
       peint DERRIÈRE nos barres, invisible et incliquable. L'overlay
       porte lui-même un top de 50 px qui s'additionnerait : remis à 0,
       le panneau atterrit exactement à 86. */
    .shopify-section[id$="__header"] .header__mobile-menu-overlay {
      top: 0 !important;
    }

    .shopify-section[id$="__header"] .header__mobile-menu-overlay .header__mobile-menu {
      top: 86px !important;
      height: auto !important;
      bottom: 0 !important;
    }
  }

  /* ---- Barre supérieure : logo + message centré + pays/langue ---- */
  .hsk-top {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 24px;
    height: 44px;
    padding: 0 24px;
    background: var(--hsk-top-bg, #ffffff);
    color: var(--hsk-top-text, #482922);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    position: relative;
    z-index: 2;
  }

  .hsk-top__logo {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    color: inherit;
    text-decoration: none;
  }

  .hsk-top__logo-img {
    height: var(--hsk-logo-h, 22px);
    width: auto;
    display: block;
  }

  .hsk-top__logo-text {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.02em;
    text-transform: lowercase;
  }

  /* Messages centrés : rotation en fondu, statique s'il n'y en a qu'un */
  .hsk-top__msgs {
    position: relative;
    height: 1.2em;
    min-width: 340px;
    text-align: center;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  .hsk-top__msg {
    position: absolute;
    inset: 0;
    opacity: 0;
    animation: hsk-msg 15s infinite;
  }

  .hsk-top__msg:nth-child(2) { animation-delay: 5s; }
  .hsk-top__msg:nth-child(3) { animation-delay: 10s; }

  .hsk-top__msg:only-child {
    animation: none;
    opacity: 1;
  }

  @keyframes hsk-msg {
    0% { opacity: 0; }
    4% { opacity: 1; }
    30% { opacity: 1; }
    36% { opacity: 0; }
    100% { opacity: 0; }
  }

  .hsk-top__locale {
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
  }

  /* Pause de la rotation des messages : fige sur le premier message */
  .hsk-top__pause {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    opacity: 0.75;
  }

  .hsk-top__pause:hover,
  .hsk-top__pause:focus-visible {
    opacity: 1;
  }

  .hsk-top__pause-ic--play {
    display: none;
  }

  .hsk--msgs-paused .hsk-top__pause-ic--pause {
    display: none;
  }

  .hsk--msgs-paused .hsk-top__pause-ic--play {
    display: inline;
  }

  .hsk--msgs-paused .hsk-top__msg {
    animation: none;
    opacity: 0;
  }

  .hsk--msgs-paused .hsk-top__msg:first-child {
    opacity: 1;
  }

  .hsk-top__locale select {
    background: transparent;
    color: inherit;
    font-size: 12px;
  }

  /* ---- Barre de navigation : menu à gauche, icônes à droite ---- */
  .hsk-navbar {
    --c: var(--hsk-nav-text, #482922);
    --cinv: var(--hsk-nav-bg, #ffffff);
    position: relative;
    display: flex;
    align-items: center;
    gap: 24px;
    height: 46px;
    padding: 0 24px;
    background: var(--hsk-nav-bg, #ffffff);
    color: var(--c);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    transition: background 0.22s ease, color 0.22s ease, border-bottom-color 0.22s ease;
  }

  /* Burger et logo centré : le mobile seulement, masqués en desktop. */
  .hsk-burger {
    display: none;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
  }

  /* Tiroir ouvert : le burger devient une croix (même bouton, l'état
     suit la classe posée par l'observer, quel que soit le chemin de
     fermeture). */
  .hsk-burger__ic--close {
    display: none;
  }

  .hsk--menu-open .hsk-burger__ic--menu {
    display: none;
  }

  .hsk--menu-open .hsk-burger__ic--close {
    display: block;
  }

  .hsk-navbar__logo-m {
    display: none;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    align-items: center;
    color: inherit;
    text-decoration: none;
  }

  .hsk-navbar__logo-m-img {
    height: 20px;
    width: auto;
    display: block;
    transition: filter 0.22s ease;
  }

  /* Transparent au-dessus du hero : top auto = reste à sa position de
     flux, sous la barre supérieure. Le dégradé ::before assure la
     lisibilité des liens sur une image claire ; il s'efface au survol,
     quand la barre passe en fond blanc. */
  .hsk-navbar--transparent {
    --c: var(--hsk-nav-text-transparent, #ffffff);
    --cinv: #482922;
    position: absolute;
    top: auto;
    left: 0;
    right: 0;
    background: transparent;
    border-bottom: 1px solid transparent;
    z-index: 30;
  }

  .hsk-navbar--transparent::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 210%;
    pointer-events: none;
    z-index: -1;
    background: linear-gradient(to bottom, rgba(24, 14, 8, 0.42), rgba(24, 14, 8, 0));
    transition: opacity 0.22s ease;
  }

  /* Sur le hero, le logo brun passe en blanc par filtre : brightness(0)
     l'écrase en noir, invert(1) le retourne en blanc. Aucun second
     fichier de logo à gérer. */
  .hsk-navbar--transparent .hsk-navbar__logo-m-img {
    filter: brightness(0) invert(1);
  }

  .hsk-navbar--transparent:hover,
  .hsk-navbar--transparent:focus-within {
    --c: var(--hsk-nav-text, #482922);
    --cinv: var(--hsk-nav-bg, #ffffff);
    background: var(--hsk-nav-bg, #ffffff);
    border-bottom-color: rgba(0, 0, 0, 0.06);
  }

  .hsk-navbar--transparent:hover::before,
  .hsk-navbar--transparent:focus-within::before {
    opacity: 0;
  }

  .hsk-navbar--transparent:hover .hsk-navbar__logo-m-img,
  .hsk-navbar--transparent:focus-within .hsk-navbar__logo-m-img {
    filter: none;
  }

  /* Phase fixe (retour au scroll vers le haut) : les deux barres glissent
     depuis le haut, la nav repasse en fond blanc opaque.
     Sélecteur doublé .hsk.hsk--fixed : la règle .hsk { position: relative }
     arrive APRÈS dans la feuille compilée et gagnait à spécificité égale,
     le mode fixe n'a jamais fonctionné avec le sélecteur simple.
     z-index 1000 : au-dessus du tiroir de menu (999), le header reste
     visible et cliquable quand le tiroir est ouvert page défilée. */
  .hsk.hsk--fixed {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    transform: translateY(-102%);
    transition: transform 0.26s ease;
  }

  .hsk--fixed.hsk--reveal {
    transform: translateY(0);
  }

  .hsk--fixed .hsk-navbar--transparent {
    --c: var(--hsk-nav-text, #482922);
    --cinv: var(--hsk-nav-bg, #ffffff);
    position: relative;
    background: var(--hsk-nav-bg, #ffffff);
    border-bottom-color: rgba(0, 0, 0, 0.06);
  }

  .hsk--fixed .hsk-navbar--transparent::before {
    display: none;
  }

  .hsk--fixed .hsk-navbar--transparent .hsk-navbar__logo-m-img {
    filter: none;
  }

  .hsk-navbar__links {
    display: flex;
    align-items: center;
    gap: 26px;
    min-width: 0;
    overflow: hidden;
  }

  .hsk-navbar__link {
    color: inherit;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.01em;
    white-space: nowrap;
    opacity: 0.94;
  }

  .hsk-navbar__link:hover,
  .hsk-navbar__link--active {
    opacity: 1;
  }

  /* Barre glissante : filet fin qui repose sous le lien actif et glisse
     vers le lien survolé ou focus. Positionnée par le script. */
  .hsk-navbar__bar {
    position: absolute;
    left: 0;
    bottom: 8px;
    height: 1.5px;
    width: 0;
    background: currentColor;
    opacity: 0;
    pointer-events: none;
    transition: transform 0.18s ease, width 0.18s ease, opacity 0.15s ease;
    will-change: transform;
  }

  /* Liens de droite : poussés contre les icônes, même style que le
     menu de gauche (la barre glissante les suit aussi). */
  .hsk-navbar__links--droite {
    margin-left: auto;
    overflow: visible;
  }

  /* Desktop seulement : sous 990 px la zone droite est masquée mais le
     sélecteur ~ matcherait quand même, et les icônes perdraient leur
     margin-left auto (elles partaient s'écraser contre le burger). */
  @media (min-width: 990px) {
    .hsk-navbar__links--droite ~ .hsk-navbar__icons {
      margin-left: 0;
    }
  }

  .hsk-navbar__icons {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
  }

  .hsk-navbar__icon {
    text-decoration: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: inherit;
    position: relative;
  }

  .hsk-navbar__count {
    position: absolute;
    top: 4px;
    right: 2px;
    min-width: 15px;
    height: 15px;
    padding: 0 3px;
    border-radius: 999px;
    background: var(--c);
    color: var(--cinv);
    font-size: 10px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }


  /* Le panneau se place sous le header : sans cet ancrage, il se
     calerait sur le premier ancêtre positionné, donc n'importe où.
     z-index 90 : au-dessus du contenu des pages (galeries produit
     positionnées comprises), en dessous des tiroirs du thème (999+)
     et du mode fixe (1000). */
  .hsk {
    position: relative;
    z-index: 90;
  }

  .hsk-navbar__count--empty,
  .hsk-navbar__count.hidden {
    display: none !important;
  }

  /* ---- Méga menu desktop : panneau blanc pleine largeur sous la barre
     de nav, une rangée de cartes photo façon Ysé. Ancré dans la nav :
     top 100 % vaut aussi sur l'accueil où la nav est en absolu. ---- */
  .hsk-mega {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--hsk-nav-bg, #ffffff);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0s linear 0.18s;
  }

  .hsk-mega--in {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: opacity 0.18s ease, transform 0.18s ease;
  }

  /* Panneau ouvert sur l'accueil : la barre transparente repasse en
     blanc même quand le pointeur est descendu dans le panneau (le
     survol de la barre ne suffit plus, c'est la classe qui pilote).
     Même règle quand le tiroir du menu mobile est ouvert : jamais de
     header transparent sous le calque du menu. */
  .hsk--mega-open .hsk-navbar--transparent,
  .hsk--menu-open .hsk-navbar--transparent {
    --c: var(--hsk-nav-text, #482922);
    --cinv: var(--hsk-nav-bg, #ffffff);
    background: var(--hsk-nav-bg, #ffffff);
    border-bottom-color: rgba(0, 0, 0, 0.06);
  }

  .hsk--mega-open .hsk-navbar--transparent::before,
  .hsk--menu-open .hsk-navbar--transparent::before {
    opacity: 0;
  }

  .hsk--mega-open .hsk-navbar--transparent .hsk-navbar__logo-m-img,
  .hsk--menu-open .hsk-navbar--transparent .hsk-navbar__logo-m-img {
    filter: none;
  }

  /* Contenu aligné à gauche sur le même bord que les liens du menu
     (padding 24 comme la nav), pas de centrage : colonne de liens à
     gauche, cartes photo à droite, façon Dore & Rose. */
  .hsk-mega__inner {
    display: flex;
    align-items: flex-start;
    gap: 56px;
    padding: 28px 24px 32px;
  }

  .hsk-mega__col {
    flex: 0 0 185px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  .hsk-mega__col-title {
    margin: 0 0 12px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.6;
  }

  .hsk-mega__col-link {
    padding: 7px 0;
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--hsk-nav-text, #482922);
    text-decoration: none;
  }

  .hsk-mega__col-link:hover,
  .hsk-mega__col-link:focus-visible {
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .hsk-mega__cards {
    display: flex;
    gap: 20px;
  }

  .hsk-mega__card {
    width: 224px;
    text-decoration: none;
    color: var(--hsk-nav-text, #482922);
  }

  .hsk-mega__media {
    display: block;
    aspect-ratio: 4 / 5;
    border-radius: 8px;
    overflow: hidden;
    background: #f5f5f5;
  }

  .hsk-mega__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
  }

  .hsk-mega__card:hover .hsk-mega__media img {
    transform: scale(1.03);
  }

  .hsk-mega__name {
    display: block;
    margin-top: 10px;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    line-height: 1.3;
  }

  .hsk-mega__card:hover .hsk-mega__name,
  .hsk-mega__card:focus-visible .hsk-mega__name {
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  @media (max-width: 989px) {
    .hsk-mega {
      display: none;
    }
  }

  /* ---- Cartes catégories du tiroir mobile : rangée défilante alignée
     sur le bord de contenu du tiroir (20 px). ---- */
  .hsk-megam-wrap {
    padding-top: 10px;
  }

  .hsk-megam__title {
    margin: 0 20px 8px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #482922;
    opacity: 0.6;
  }

  .hsk-megam {
    display: flex;
    gap: 10px;
    padding: 0 20px 6px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .hsk-megam::-webkit-scrollbar {
    display: none;
  }

  .hsk-megam__card {
    flex: 0 0 96px;
    text-decoration: none;
    color: #482922;
  }

  /* Largeur d'image figée : une carte au nom long (nowrap) peut être
     un peu plus large, son visuel reste calé sur la même ligne de
     base que les autres. */
  .hsk-megam__media {
    display: block;
    width: 96px;
    aspect-ratio: 4 / 5;
    border-radius: 8px;
    overflow: hidden;
    background: #f5f5f5;
  }

  .hsk-megam__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .hsk-megam__name {
    display: block;
    margin-top: 6px;
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /* ---- Mobile et tablette (< 990 px), disposition Skims ---- */
  @media (max-width: 989px) {
    /* Barre supérieure : le message seul, centré ; logo et sélecteur
       pays masqués (le logo vit dans la barre de nav, le pays dans le
       tiroir du menu). La pause reste, ancrée à droite. */
    .hsk-top {
      grid-template-columns: 1fr;
      gap: 0;
      height: 34px;
      padding: 0 40px;
    }

    .hsk-top__logo {
      display: none;
    }

    .hsk-top__msgs {
      min-width: 0;
      font-size: 10.5px;
      letter-spacing: 0.08em;
    }

    .hsk-top__msg {
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .hsk-top__locale {
      position: absolute;
      right: 6px;
      top: 50%;
      transform: translateY(-50%);
    }

    .hsk-top__locale > :not(.hsk-top__pause) {
      display: none;
    }

    /* Barre de nav : burger, logo centré, icônes. */
    .hsk-navbar {
      height: 52px;
      padding: 0 8px 0 6px;
      gap: 0;
    }

    .hsk-burger {
      display: inline-flex;
    }

    .hsk-navbar__logo-m {
      display: inline-flex;
    }

    /* Variante « logo à gauche » : il quitte le centre et se place
       contre le burger, comme sur l'ancien header classique. */
    .hsk--logo-left .hsk-navbar__logo-m {
      position: static;
      transform: none;
      margin-left: 2px;
    }

    .hsk-navbar__links,
    .hsk-navbar__bar {
      display: none;
    }

    .hsk-navbar__icons {
      gap: 0;
    }

    .hsk-navbar__icon {
      width: 38px;
      height: 38px;
    }
  }

  /* Très petits écrans : icônes resserrées pour laisser vivre le logo. */
  @media (max-width: 359px) {
    .hsk-navbar__icon {
      width: 34px;
      height: 34px;
    }

    .hsk-navbar__icon svg {
      width: 20px;
      height: 20px;
    }
  }
/* END_SECTION:header-skims */

/* START_SECTION:header (INDEX:51) */
.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%;
  }

  /* ==========================================================
     Scrim : un dégradé sombre discret glissé SOUS le header
     transparent et PAR-DESSUS la bannière. L'œil le lit comme une
     ombre naturelle de la photo, mais les liens clairs restent
     lisibles sur n'importe quelle image — même un mur blanc.
     Il s'estompe dès que le header redevient solide (scroll,
     mégamenu ouvert).
     ========================================================== */
  .header--scrim {
    position: relative;
  }

  .header--scrim::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: var(--header-scrim-height, 180px);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.25s ease;
    /* Dégradé « adouci » : plusieurs paliers intermédiaires pour éviter
       la ligne de démarcation qu'un dégradé à deux arrêts laisse voir. */
    background: linear-gradient(
      to bottom,
      rgb(0 0 0 / calc(var(--header-scrim-opacity, 0.35) * 1)) 0%,
      rgb(0 0 0 / calc(var(--header-scrim-opacity, 0.35) * 0.74)) 24%,
      rgb(0 0 0 / calc(var(--header-scrim-opacity, 0.35) * 0.45)) 48%,
      rgb(0 0 0 / calc(var(--header-scrim-opacity, 0.35) * 0.2)) 72%,
      rgb(0 0 0 / calc(var(--header-scrim-opacity, 0.35) * 0.06)) 88%,
      rgb(0 0 0 / 0) 100%
    );
  }

  .header--scrim[data-sticky-state='inactive']:not(:has(.header__menu-item--megamenu[data-open='true'])):not(:has(.header__mobile-menu-overlay.is-open))::before {
    opacity: 1;
  }

  .header--transparent[data-sticky-state='inactive']:not(:has(.header__menu-item--megamenu[data-open='true'])):not(:has(.header__mobile-menu-overlay.is-open)) {
    background-color: transparent;

    .header__layout {
      background-color: transparent;
      color: inherit;
      border-bottom: none;
      /* Au-dessus du scrim (le ::before est un élément positionné :
         sans ça, il peindrait par-dessus les liens). */
      position: relative;
      z-index: 1;
    }

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

    /* Renfort de lisibilité : ombre à peine perceptible sous textes et
       icônes — filet de sécurité quand le voile est réglé très bas ou
       désactivé. Disparaît avec l'état transparent. */
    .header__menu a:not(.button),
    .header__custom-link,
    .header__logo {
      text-shadow: 0 1px 6px rgb(0 0 0 / 25%);
    }

    .header__actions svg,
    .header__menu-mobile svg,
    .header__logo-image--transparent {
      filter: drop-shadow(0 1px 3px rgb(0 0 0 / 30%));
    }
  }

  .header__logo {
    display: flex;
    align-items: center;
    width: max-content;
  }

  .header__logo-image,
  .header__logo-image--transparent {
    height: var(--logo-height-mobile);
    width: var(--logo-width-mobile);
  }

  @media (width > 1000px) {
    .header__logo-image,
    .header__logo-image--transparent {
      height: var(--logo-height);
      width: var(--logo-width);
    }
  }

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

  /* Right wrapper (lien custom + icônes) */
  .header__right-wrapper {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1.25rem;
  }

  .header__custom-link {
    display: none;
    align-items: center;
    gap: 8px;
    text-decoration: none !important;
    color: inherit;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: -0.005em;
    white-space: nowrap;
    transition: opacity 0.2s ease;
  }

  .header__custom-link:hover {
    opacity: 0.7;
  }

  .header__custom-link-image {
    width: 22px;
    height: 22px;
    object-fit: contain;
    flex-shrink: 0;
  }

  @media (width > 1000px) {
    .header__custom-link {
      display: inline-flex;
    }
  }

  /* Mise en page des headers */

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

  /* Trait sous le header : épaisseur et couleur pilotées par les réglages de
     la section, avec repli sur les variables globales du thème. */
  .header__layout--bottom-border {
    border-bottom: var(--header-border-width, var(--separator-border-width)) solid var(--header-border-color, var(--color-border));
  }

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

  /* ==========================================================
     Mobile « logo à gauche » (façon Nude Project) : hamburger puis
     logo groupés à gauche, recherche et icônes calées à droite.
     ========================================================== */
  .header__layout--mobile-logo-left {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    height: var(--header-height);
  }

  .header__mobile-left {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
  }

  .header__mobile-right {
    display: flex;
    align-items: center;
    gap: 1.25rem;
  }

  .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:has(.header__mobile-menu-overlay.is-open) .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:hero-promo-grid (INDEX:52) */
.hpg {
    padding-top: var(--hpg-pt, 0);
    padding-bottom: var(--hpg-pb, 0);
  }

  .hpg__top {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--hpg-gap, 16px);
  }

  .hpg__side {
    display: grid;
    gap: var(--hpg-gap, 16px);
  }

  .hpg__img { width: 100%; display: block; }
  .hpg__img--desktop { display: none; }
  .hpg__img--always { display: block; }
  .hpg__placeholder { background: #eceff3; }

  .hpg__slider {
    position: relative;
    border-radius: var(--hpg-radius, 16px);
    overflow: hidden;
    background: #eceff3;
  }

  .hpg__track {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .hpg__track::-webkit-scrollbar { display: none; }

  .hpg__slide {
    flex: 0 0 100%;
    scroll-snap-align: start;
    display: block;
    text-decoration: none;
  }

  .hpg__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 42px;
    border: none;
    border-radius: 50%;
    background: #ffffff;
    color: #101828;
    cursor: pointer;
    display: none;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
    z-index: 2;
  }
  .hpg__arrow--prev { left: 12px; }
  .hpg__arrow--next { right: 12px; }
  .hpg__arrow:hover { background: #f3f4f6; }

  .hpg__dots {
    position: absolute;
    right: 14px;
    bottom: 14px;
    display: flex;
    gap: 6px;
    background: rgba(255, 255, 255, 0.35);
    padding: 5px 8px;
    border-radius: 999px;
    z-index: 2;
  }
  .hpg__dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.9);
    cursor: pointer;
    padding: 0;
  }
  .hpg__dot.is-active { background: #101828; }

  .hpg__card {
    display: block;
    border-radius: var(--hpg-radius, 16px);
    overflow: hidden;
    background: #eceff3;
    text-decoration: none;
  }

  /* ============ MODE "IMAGE ENTIÈRE" (défaut) ============ */
  .hpg--natural .hpg__img { height: auto; }
  .hpg--natural .hpg__track { align-items: flex-start; }

  /* ============ MODE "RECADRÉ" ============ */
  .hpg--cover .hpg__img { height: 100%; object-fit: cover; }
  .hpg--cover .hpg__slider { height: 100%; }
  .hpg--cover .hpg__track { height: 100%; }
  .hpg--cover .hpg__slide { height: 100%; }

  /* ---------- MOBILE / TABLETTE ---------- */
  @media (max-width: 989px) {
    /* Marges verticales spécifiques mobile */
    .hpg {
      padding-top: var(--hpg-pt-m, 0);
      padding-bottom: var(--hpg-pb-m, 16px);
    }

    .hpg--cover .hpg__slider { aspect-ratio: var(--hpg-mobile-ratio, 4 / 3); }

    /* Bord à bord : on SORT de la grille de page (fiable quel que soit le thème) */
    .hpg--m-edge .hpg__main,
    .hpg--m-edge .hpg__side {
      width: 100vw;
      margin-inline: calc(50% - 50vw);
      max-width: none;
    }
    /* La bannière reste 100 % plein écran */
    .hpg--m-edge .hpg__slider { border-radius: 0; }

    /* Rangée de tuiles : défilement horizontal */
    .hpg--m-scroll .hpg__side {
      display: flex;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scroll-padding-inline: 0;
      padding-inline: 0;
      scrollbar-width: none;
      -ms-overflow-style: none;
      -webkit-overflow-scrolling: touch;
      overscroll-behavior-x: contain;
    }
    .hpg--m-scroll .hpg__side::-webkit-scrollbar { display: none; }
    .hpg--m-scroll .hpg__card--side {
      flex: 0 0 var(--hpg-peek, 85%);
      scroll-snap-align: start;
    }

    /* UX : en bord à bord, les TUILES gardent une gouttière (elles ne collent pas
       aux bords) + la suivante dépasse pour inviter au swipe. La bannière, elle,
       reste plein écran. */
    .hpg--m-edge.hpg--m-scroll .hpg__side {
      padding-inline: var(--hpg-edge-gutter, 12px);
      scroll-padding-inline: var(--hpg-edge-gutter, 12px);
    }

    /* Tuiles empilées pleine largeur */
    .hpg--m-stack .hpg__side { display: grid; grid-template-columns: 1fr; }
    /* En bord à bord + empilées : gouttière latérale + coins arrondis conservés */
    .hpg--m-edge.hpg--m-stack .hpg__side {
      padding-inline: var(--hpg-edge-gutter, 12px);
    }
    .hpg--m-edge.hpg--m-stack .hpg__card--side { border-radius: var(--hpg-radius, 16px); }
  }

  /* ---------- DESKTOP ---------- */
  @media (min-width: 990px) {
    .hpg__top {
      grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr);
    }
    .hpg__img--mobile { display: none; }
    .hpg__img--desktop { display: block; }
    .hpg__arrow { display: flex; }

    .hpg--natural .hpg__top { align-items: start; }
    .hpg--natural .hpg__side { align-content: start; }

    .hpg--cover .hpg__top { height: var(--hpg-h, 420px); }
    .hpg--cover .hpg__main { height: 100%; }
    .hpg--cover .hpg__side { grid-auto-rows: 1fr; }
    .hpg--cover .hpg__card--side { height: 100%; }

    /* Alignement : la colonne de droite épouse la hauteur de la bannière */
    .hpg--align .hpg__top { align-items: stretch; }
    .hpg--align .hpg__side {
      display: grid;
      grid-template-rows: repeat(2, 1fr);
      align-content: stretch;
    }
    .hpg--align .hpg__card--side { height: 100%; }
    .hpg--align .hpg__card--side .hpg__img {
      height: 100%;
      object-fit: cover;
    }
  }
/* END_SECTION:hero-promo-grid */

/* START_SECTION:image-banner (INDEX:53) */
.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:image-text-panel (INDEX:54) */
.itp {
    background: var(--itp-section-bg, transparent);
    padding-top: var(--itp-pt, 0);
    padding-bottom: var(--itp-pb, 0);
    padding-left: var(--itp-side-m, 16px);
    padding-right: var(--itp-side-m, 16px);
  }
  .itp--full { padding-left: 0; padding-right: 0; }
  .itp--full .itp__wrap { max-width: none; border-radius: 0; }

  .itp__wrap {
    position: relative;
    max-width: var(--itp-maxw, 1200px);
    margin-left: auto;
    margin-right: auto;
    background: var(--itp-panel-bg, #f5f5f4);
    border-radius: var(--itp-radius, 24px);
    overflow: hidden;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    display: flex;
    flex-direction: column;
  }

  .itp__media {
    position: relative;
    width: 100%;
    aspect-ratio: var(--itp-ratio-m, 4 / 3);
    background: #ececec;
    line-height: 0;
  }
  .itp__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  .itp__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 16px;
    padding: var(--itp-pad-m, 20px);
    padding-top: var(--itp-gap-m, 20px);
  }

  .itp__title {
    margin: 0;
    color: var(--itp-heading-color, #111);
    font-size: var(--itp-hs-m, 26px) !important;
    font-weight: var(--itp-hw, 800);
    line-height: 1.15;
    letter-spacing: -0.02em;
  }

  .itp__text {
    margin: 0;
    color: var(--itp-text-color, #444);
    font-size: var(--itp-ts-m, 16px) !important;
    line-height: 1.55;
  }
  .itp__text > * { margin: 0 0 8px; }
  .itp__text > *:last-child { margin-bottom: 0; }
  .itp__text p,
  .itp__text li,
  .itp__text span,
  .itp__text strong,
  .itp__text em,
  .itp__text a {
    font-size: inherit !important;
    line-height: inherit;
  }

  .itp__list {
    list-style: none;
    margin: 4px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .itp__li {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--itp-text-color, #333);
    font-size: var(--itp-ls-m, 16px) !important;
    line-height: 1.4;
  }
  .itp__li * {
    font-size: inherit !important;
  }

  .itp__li--stacked {
    align-items: flex-start;
  }
  .itp__li--stacked .itp__check {
    margin-top: 1px;
  }
  .itp__li--stacked .itp__li-text {
    display: flex !important;
    flex-direction: column;
    gap: 2px;
  }
  .itp__li-title {
    display: block !important;
    font-weight: var(--itp-lt-w, 700) !important;
    color: var(--itp-lt-color, #111111);
    font-size: var(--itp-lt-m, 16px) !important;
    line-height: 1.35;
  }
  .itp__li-desc {
    display: block !important;
  }
  .itp__check {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--itp-icon-bg, #3b82f6);
    color: var(--itp-icon-color, #fff);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    line-height: 1;
  }
  .itp__check svg { display: block; }
  .itp__li-text { min-width: 0; }

  .itp__btn {
    align-self: flex-start;
    margin-top: 8px;
    display: inline-flex;
    padding: 14px 28px;
    border-radius: 999px;
    background: var(--itp-heading-color, #111);
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    font-size: 0.9rem;
  }

  @media (min-width: 750px) {
    .itp {
      padding-left: 20px;
      padding-right: 20px;
    }
    .itp--full { padding-left: 0; padding-right: 0; }

    .itp__wrap {
      flex-direction: row;
      align-items: stretch;
    }
    .itp--img-left .itp__wrap { flex-direction: row-reverse; }

    .itp__media,
    .itp__content {
      flex: 1 1 0;
      min-width: 0;
    }

    .itp__media {
      align-self: stretch;
      aspect-ratio: auto;
      min-height: 340px;
      width: auto;
    }
  }

  @media (min-width: 750px) and (max-width: 1023px) {
    .itp__media { min-height: 300px; }
    .itp__content {
      padding: calc(var(--itp-pad-m, 20px) + var(--itp-pad-delta, 36) * (100vw - 750px) / 274);
      padding-right: calc(var(--itp-gap-m, 20px) + var(--itp-gap-delta, 28) * (100vw - 750px) / 274);
    }
    .itp--img-left .itp__content {
      padding: calc(var(--itp-pad-m, 20px) + var(--itp-pad-delta, 36) * (100vw - 750px) / 274);
      padding-left: calc(var(--itp-gap-m, 20px) + var(--itp-gap-delta, 28) * (100vw - 750px) / 274);
    }
    .itp__title { font-size: calc(var(--itp-hs-m, 26px) + var(--itp-hs-delta, 8) * (100vw - 750px) / 274) !important; }
    .itp__text { font-size: calc(var(--itp-ts-m, 16px) + var(--itp-ts-delta, 1) * (100vw - 750px) / 274) !important; }
    .itp__li { font-size: calc(var(--itp-ls-m, 16px) + var(--itp-ls-delta, 1) * (100vw - 750px) / 274) !important; }
    .itp__li-title { font-size: calc(var(--itp-lt-m, 16px) + var(--itp-lt-delta, 1) * (100vw - 750px) / 274) !important; }
  }

  @media (min-width: 990px) {
    .itp {
      padding-left: var(--itp-side-d, 40px);
      padding-right: var(--itp-side-d, 40px);
    }
    .itp--full { padding-left: 0; padding-right: 0; }
  }

  @media (min-width: 1024px) {
    .itp__content {
      padding: var(--itp-pad-d, 56px);
      padding-right: var(--itp-gap-d, 48px);
    }
    .itp--img-left .itp__content {
      padding: var(--itp-pad-d, 56px);
      padding-left: var(--itp-gap-d, 48px);
    }
    .itp__title    { font-size: var(--itp-hs-d, 34px) !important; }
    .itp__text     { font-size: var(--itp-ts-d, 17px) !important; }
    .itp__li       { font-size: var(--itp-ls-d, 17px) !important; }
    .itp__li-title { font-size: var(--itp-lt-d, 17px) !important; }
  }
/* END_SECTION:image-text-panel */

/* START_SECTION:main-account (INDEX:55) */
.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:56) */
.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:57) */
.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:58) */
.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:59) */
.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:60) */
.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__products { display: flex; flex-direction: column; gap: var(--gap-lg); min-width: 0; }

  .main-collection__products-grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-columns-mobile), 1fr);
    column-gap: 10px;
    row-gap: 28px;
  }

  /* ---------- Barre résultats + chips ---------- */
  /* Rangee haute : bouton « Filtres et tri » a gauche, compteur a droite. */
  .cx-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    /* Juste ce qu'il faut d'air avant la grille (la rangee de chips, quand
       des filtres sont actifs, s'intercale et respire d'elle-meme). */
    margin-bottom: 12px;
  }
  .cx-topbar__count { margin: 0; font-size: 14px; font-weight: 500; opacity: 0.6; }

  /* Sans filtre actif, la rangee de chips est vide : on la retire pour ne pas
     laisser un intervalle mort au-dessus de la grille. */
  .main-collection__products > .cx-bar:not(:has(.cx-bar__chips)) { display: none; }

  .cx-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
  /* Le compteur vit desormais dans la rangee haute. */
  .cx-bar__count { display: none; }
  .cx-bar__chips { display: flex; flex-wrap: wrap; gap: 8px; }
  .cx-chip {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 10px 6px 12px;
    border: 1px solid var(--color-border, rgba(0,0,0,0.14));
    border-radius: 999px; font-size: 13px; font-weight: 500;
    text-decoration: none; color: inherit; transition: background .15s;
  }
  .cx-chip:hover { background: rgba(0,0,0,0.05); }
  .cx-chip svg { opacity: 0.6; }
  .cx-chip--clear { border-style: dashed; font-weight: 600; padding: 6px 12px; }

  .cx-sticky { display: none; }

  /* ==========================================================
     CARTE PRODUIT
     Aucune bordure, aucune ombre : c'est le blanc qui sépare
     les produits, l'image porte la carte.
     ========================================================== */
  .cx-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }

  .cx-card__slider {
    position: relative;
    display: block;
    aspect-ratio: var(--cx-ratio, 2 / 3);
    border-radius: var(--cx-radius, 12px);
    overflow: hidden;
    background: var(--cx-media-bg, #f5f4f2);
  }

  /* Piste d'images : swipe natif sur mobile, glisser-déposer sur desktop */
  .cx-card__track {
    display: flex;
    height: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    /* pan-x est indispensable : sans lui, le navigateur ne prend en charge
       que les gestes verticaux et le balayage horizontal reste sans effet
       sur mobile. pan-y est conservé pour que le défilement vertical de la
       page reste fluide quand le doigt part depuis une image. */
    touch-action: pan-x pan-y pinch-zoom;
  }
  .cx-card__track::-webkit-scrollbar { display: none; }
  .cx-card__track.is-dragging { scroll-snap-type: none; scroll-behavior: auto; cursor: grabbing; }

  .cx-card__slide {
    flex: 0 0 100%;
    height: 100%;
    scroll-snap-align: start;
    display: block;
    -webkit-user-drag: none;
  }

  .cx-card__img {
    width: 100%;
    height: 100%;
    display: block;
    -webkit-user-drag: none;
    user-select: none;
  }
  .cx--img-cover .cx-card__img { object-fit: cover; }
  .cx--img-contain .cx-card__img { object-fit: contain; padding: 8%; }

  /* La vignette de la vidéo (poster) est toujours recadrée comme les photos,
     pour que la carte garde exactement les mêmes dimensions. */
  .cx-card__video { object-fit: cover; background: var(--cx-media-bg, #f5f4f2); pointer-events: none; }
  .cx--img-contain .cx-card__video { object-fit: contain; }

  /* ---------- Badges ---------- */
  .cx-badge {
    position: absolute;
    bottom: 14px;
    z-index: 3;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1;
    padding: 7px 10px;
    border-radius: 5px;
    white-space: nowrap;
    pointer-events: none;
    max-width: calc(100% - 28px);
    overflow: hidden;
    text-overflow: ellipsis;
  }
  /* La moitié de la largeur n'est réservée que si la pastille de remise est
     présente : sans elle, le badge garde tout son texte (« SANS ARMATURES »). */
  .cx-badge--custom:has(~ .cx-badge--sale) { max-width: calc(50% - 18px); }
  .cx-badge--sale { right: 14px; background: var(--cx-badge-bg, #111); color: var(--cx-badge-text, #fff); }
  .cx-badge--custom { left: 14px; background: var(--cx-badge2-bg, #e8effa); color: var(--cx-badge2-text, #1a1a1a); }

  /* ---------- Pagination des images (pilule blanche) ---------- */
  .cx-dots {
    position: absolute;
    z-index: 3;
    left: 50%;
    bottom: 14px;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 9px 16px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }
  .cx-dot {
    position: relative;
    width: 6px;
    height: 6px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(17, 17, 17, 0.25);
    cursor: pointer;
    transition: background 0.2s ease;
  }
  /* Cible tactile élargie sans grossir le visuel (WCAG 2.5.8) */
  .cx-dot::before { content: ''; position: absolute; inset: -10px -7px; }
  .cx-dot[data-active] { background: #111; }
  .cx-dot:focus-visible { outline: 2px solid #111; outline-offset: 4px; }

  /* Le reglage « points de pagination » masque aussi la pilule en desktop :
     les fleches au survol suffisent, la carte reste nette (reference Yade). */
  @media (min-width: 750px) {
    .cx--nodots-mobile .cx-dots { display: none; }
  }

  /* ---------- Panneau filtres en desktop : tiroir ancre a droite
     (reference Yade), au lieu du plein ecran herite du menu mobile. ---------- */
  @media (min-width: 750px) {
    .filter-and-sort__mobile .header__mobile-menu-overlay { top: 0; }
    .filter-and-sort__mobile .header__mobile-menu {
      left: auto;
      right: 0;
      width: 440px;
      max-width: 92vw;
      transform: translateX(100%);
      border-left: 1px solid rgba(0, 0, 0, 0.08);
    }
    .filter-and-sort__mobile .header__mobile-menu-overlay.is-open .header__mobile-menu {
      animation: cx-filters-in 0.28s cubic-bezier(0.2, 0.7, 0.3, 1) forwards;
    }
    .filter-and-sort__mobile .header__mobile-menu-overlay.is-closing .header__mobile-menu {
      animation: cx-filters-out 0.24s ease forwards;
    }
  }
  @keyframes cx-filters-in { from { transform: translateX(100%); } to { transform: none; } }
  @keyframes cx-filters-out { from { transform: none; } to { transform: translateX(100%); } }

  /* ---------- Flèches (desktop, au survol) ---------- */
  .cx-arrow {
    position: absolute;
    top: 50%;
    z-index: 3;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    color: #111;
    display: none;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.2s ease, background 0.2s ease;
  }
  .cx-arrow--prev { left: 10px; }
  .cx-arrow--next { right: 10px; }
  .cx-arrow:disabled { display: none; }
  @media (hover: hover) and (min-width: 750px) {
    .cx-arrow { display: inline-flex; }
    .cx-card:hover .cx-arrow:not(:disabled) { opacity: 1; }
    .cx-arrow:hover { background: #fff; }
  }

  /* ---------- Image de survol (desktop) ---------- */
  .cx-card__hover {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: var(--cx-media-bg, #f5f4f2);
    opacity: 0;
    pointer-events: none;
    display: none;
  }
  .cx--img-contain .cx-card__hover { object-fit: contain; }
  @media (hover: hover) and (min-width: 750px) {
    .cx-card__hover { display: block; transition: opacity 0.35s ease; }
    .cx-card:hover .cx-card__hover { opacity: 1; }
    /* Des que la cliente parcourt le carrousel, le survol s'efface. */
    .cx-card__slider[data-browsing] .cx-card__hover { display: none; }
  }

  /* ---------- Pastille « votre taille » ---------- */
  /* L'attribut hidden doit gagner sur le display du composant. */
  .cx-mysize[hidden] { display: none; }
  .cx-mysize {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    margin-right: 16px;
    padding: 5px 12px;
    border: 1px solid var(--color-border, rgba(0, 0, 0, 0.14));
    border-radius: 999px;
    font-size: 13px;
  }
  .cx-mysize__label { opacity: 0.6; }
  .cx-mysize__value { font-weight: 600; }
  .cx-mysize__clear {
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font-size: 12px;
    opacity: 0.55;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
  }

  /* Taille recommandee mise en avant dans le bandeau d'ajout rapide */
  .cx-quick__size[data-mine] {
    background: var(--cx-badge-bg, #010C27);
    color: #fff;
  }
  .cx-quick__size[data-mine]:hover { background: var(--cx-badge-bg, #010C27); }

  /* ---------- Carte editoriale dans la grille ---------- */
  .cx-edito {
    position: relative;
    display: flex;
    align-items: flex-end;
    aspect-ratio: var(--cx-ratio, 3 / 4);
    overflow: hidden;
    border-radius: var(--cx-radius, 10px);
    background: var(--cx-media-bg, #f5f4f2);
    color: #fff;
    text-decoration: none;
  }
  .cx-edito__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .cx-edito__inner {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    padding: 22px 18px 18px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.62), rgba(0, 0, 0, 0));
  }
  .cx-edito__kicker {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    opacity: 0.85;
  }
  .cx-edito__title {
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.25;
  }
  .cx-edito__link {
    font-size: 13px;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  /* ---------- Produit epuise ---------- */
  .cx-notify {
    position: absolute;
    z-index: 4;
    left: 10px;
    right: 10px;
    bottom: 10px;
    padding: 10px 8px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.94);
    color: #010C27;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-align: center;
    text-decoration: none;
  }

  /* ---------- Sous la grille : tailles, FAQ, liens ---------- */
  .cx-sizehelp {
    width: 100%;
    max-width: 780px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 48px;
    padding: 26px 22px;
    border: 1px solid var(--color-border, rgba(0, 0, 0, 0.12));
    border-radius: 12px;
    text-align: center;
  }
  .cx-sizehelp__title { margin: 0; font-size: 1.05rem; font-weight: 600; }
  .cx-sizehelp__text { margin: 8px 0 0; font-size: 14px; opacity: 0.7; }
  .cx-sizehelp__btn {
    display: inline-block;
    margin-top: 16px;
    padding: 12px 26px;
    border-radius: var(--button-border-radius, 20px);
    background: var(--color-primary-button-background, #010C27);
    color: var(--color-primary-button-text, #fff);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
  }

  .cx-faq { width: 100%; max-width: 780px; margin: 44px auto 0; }
  .cx-faq__title { margin: 0 0 12px; font-size: 1.25rem; font-weight: 700; text-align: center; }
  .cx-faq__item { border-top: 1px solid var(--color-border, rgba(0, 0, 0, 0.1)); }
  .cx-faq__item:last-child { border-bottom: 1px solid var(--color-border, rgba(0, 0, 0, 0.1)); }
  .cx-faq__q {
    list-style: none;
    cursor: pointer;
    padding: 15px 28px 15px 0;
    font-size: 15px;
    font-weight: 600;
    position: relative;
  }
  .cx-faq__q::-webkit-details-marker { display: none; }
  .cx-faq__q::after {
    content: '';
    position: absolute;
    right: 4px;
    top: 50%;
    width: 8px;
    height: 8px;
    margin-top: -6px;
    border-right: 1.6px solid currentColor;
    border-bottom: 1.6px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
  }
  .cx-faq__item[open] .cx-faq__q::after { transform: rotate(-135deg); margin-top: -2px; }
  .cx-faq__a { padding: 0 0 16px; font-size: 14px; line-height: 1.65; opacity: 0.8; }

  .cx-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 22px;
    width: 100%;
    max-width: 780px;
    margin: 34px auto 0;
    padding-top: 22px;
    border-top: 1px solid var(--color-border, rgba(0, 0, 0, 0.1));
  }
  .cx-links__item {
    font-size: 14px;
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  /* ---------- Ajout rapide ---------- */
  .cx-quick {
    position: absolute;
    z-index: 4;
    left: 10px;
    right: 10px;
    bottom: 10px;
    display: flex;
    gap: 6px;
    padding: 6px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.94);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    /* visibility bascule d'un coup : seuls opacity et transform s'animent. */
    transition: opacity 0.2s ease, transform 0.2s ease;
  }
  .cx-quick__size {
    flex: 1 1 0;
    min-width: 0;
    padding: 9px 4px;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: #010C27;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: background 0.15s ease;
  }
  .cx-quick__size:hover { background: rgba(72, 41, 34, 0.08); }
  .cx-quick__size--out { opacity: 0.32; cursor: not-allowed; text-decoration: line-through; }
  .cx-quick__size[data-loading] { opacity: 0.45; pointer-events: none; }

  /* Bouton « + » : mobile uniquement, il deplie les tailles. */
  .cx-quick__toggle {
    position: absolute;
    z-index: 4;
    right: 10px;
    bottom: 10px;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.94);
    color: #010C27;
    font-size: 19px;
    font-weight: 400;
    line-height: 1;
    cursor: pointer;
    display: none;
  }
  .cx-card[data-quick-open] .cx-quick { opacity: 1; visibility: visible; transform: none; }
  .cx-card[data-quick-open] .cx-quick__toggle { opacity: 0; pointer-events: none; }
  /* Le badge laisse la place aux tailles pendant la selection. */
  .cx-card[data-quick-open] .cx-badge { opacity: 0; }
  .cx-badge { transition: opacity 0.2s ease; }

  @media (hover: hover) and (min-width: 750px) {
    /* Desktop : les tailles suivent le survol, pas de bouton « + ». */
    .cx-card:hover .cx-quick { opacity: 1; visibility: visible; transform: none; }
    .cx-card:hover .cx-badge { opacity: 0; transition: opacity 0.2s ease; }
  }
  @media (hover: none), (max-width: 749px) {
    .cx-quick__toggle { display: inline-flex; align-items: center; justify-content: center; }
  }

  /* ---------- Texte sous l'image ---------- */
  .cx-card__body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: 14px 0 0;
  }

  .cx-swatches { display: flex; align-items: center; gap: 7px; margin-bottom: 12px; }
  .cx-swatch {
    width: 14px; height: 14px; border-radius: 50%; overflow: hidden;
    border: 1px solid rgba(0,0,0,0.12); background: #f4f4f4; flex-shrink: 0;
    background-size: cover; background-position: center;
  }
  .cx-swatch-more { font-size: 13px; opacity: 0.55; margin-left: 3px; }

  .cx-card__link { display: block; color: inherit; text-decoration: none; }
  .cx-card__prenom {
    margin: 0 0 3px;
    font-family: 'Playfair Display', Georgia, serif;
    font-style: italic;
    font-size: 0.9rem;
    line-height: 1.2;
  }
  .cx-card__name {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -0.015em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  @media (hover: hover) {
    .cx-card__link:hover .cx-card__name { text-decoration: underline; text-underline-offset: 3px; }
  }
  .cx-card__sub {
    margin: 4px 0 0;
    font-size: 0.85rem;
    font-weight: 400;
    line-height: 1.35;
    opacity: 0.6;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* Prix : ancien prix barré (rouge) AVANT le prix courant, comme la référence */
  /* ---------- Avis (metachamps standards reviews.rating / rating_count) ---------- */
  .cx-rating { display: flex; align-items: center; gap: 6px; margin-top: 6px; }
  .cx-rating__stars { display: inline-flex; gap: 1px; }
  .cx-star { width: 13px; height: 13px; fill: rgba(72, 41, 34, 0.22); }
  .cx-star--on { fill: #010C27; }
  .cx-rating__count { font-size: 12px; opacity: 0.6; }

  .cx-card__price {
    margin-top: auto;
    padding-top: 12px;
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 10px;
    font-size: 0.9rem;
  }
  .cx-card__now { font-weight: 500; white-space: nowrap; }
  .cx-card__old {
    color: var(--cx-compare, #d62828);
    text-decoration: line-through;
    font-weight: 400;
    white-space: nowrap;
  }

  /* ---------- États ---------- */
  .cx-empty { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 60px 20px; }
  .cx-empty__icon { opacity: 0.4; margin-bottom: 6px; }
  .cx-empty__title { margin: 0; font-size: 1.1rem; font-weight: 600; }
  .cx-empty__text { margin: 0; opacity: 0.65; font-size: 0.95rem; }
  .cx-empty__btn { margin-top: 12px; display: inline-flex; padding: 12px 24px; border-radius: 999px; background: var(--color-foreground, #111); color: var(--color-background, #fff); text-decoration: none; font-weight: 600; font-size: 0.9rem; }

  .cx-more { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: 8px; }
  .cx-more__btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 34px; border-radius: 999px; border: 1px solid var(--color-foreground, #111); background: transparent; color: inherit; font-weight: 600; font-size: 0.9rem; cursor: pointer; transition: background .15s, color .15s; }
  .cx-more__btn:hover { background: var(--color-foreground, #111); color: var(--color-background, #fff); }
  .cx-more__spinner { width: 16px; height: 16px; border-radius: 50%; border: 2px solid currentColor; border-top-color: transparent; display: none; }
  .cx-more__btn.is-loading .cx-more__spinner { display: inline-block; animation: cx-spin .7s linear infinite; }
  .cx-more__btn.is-loading .cx-more__label { opacity: 0.6; }
  .cx-more__progress { margin: 0; font-size: 12px; opacity: 0.55; }
  @keyframes cx-spin { to { transform: rotate(360deg); } }

  /* ---------- Desktop ---------- */
  @media (width > 750px) {
    .main-collection:has(.filter-and-sort--inline) .main-collection__inner { display: flex; flex-direction: column; gap: var(--gap-lg); }
    /* Colonne de filtres à largeur fixe : la grille produits récupère
       tout l'espace restant, au lieu d'un partage 25 % / 75 % qui rendait
       la barre latérale énorme sur grand écran. */
    .main-collection:has(.filter-and-sort--sidebar) .main-collection__inner {
      display: grid;
      grid-template-columns: var(--cx-sidebar, 240px) minmax(0, 1fr);
      gap: var(--cx-sidebar-gap, 48px);
      align-items: start;
    }
    .main-collection__products-grid {
      grid-template-columns: repeat(var(--grid-columns), 1fr);
      column-gap: var(--cx-gap-x, 16px);
      row-gap: var(--cx-gap-y, 36px);
    }
  }

  /* ==========================================================
     FILTRES — style sobre façon Dore & Rose
     Couche de styles posée par-dessus le bloc de filtres du thème :
     titres en capitales fines, liste aérée, case à cocher carrée à
     droite, plus aucun encadré arrondi.
     ========================================================== */
  .cx--filters-minimal .filter-and-sort { font-size: 15px; }

  .cx--filters-minimal .filter-and-sort summary,
  .cx--filters-minimal .filter-and-sort legend,
  .cx--filters-minimal .filter-and-sort h2,
  .cx--filters-minimal .filter-and-sort h3,
  .cx--filters-minimal .filter-and-sort .accordion__title {
    text-transform: uppercase;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.09em;
    padding-block: 14px;
  }

  /* La case passe à droite, le libellé occupe toute la ligne cliquable. */
  .cx--filters-minimal .filter-and-sort label:has(input[type="checkbox"]) {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
    margin: 0;
    padding: 9px 0;
    cursor: pointer;
    line-height: 1.3;
  }
  .cx--filters-minimal .filter-and-sort label:has(input[type="checkbox"]) input[type="checkbox"] { order: 2; }

  .cx--filters-minimal .filter-and-sort input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    margin: 0;
    flex: 0 0 auto;
    border: 1px solid rgba(0, 0, 0, 0.28);
    border-radius: 4px;
    background: transparent;
    cursor: pointer;
    position: relative;
    transition: background 0.15s ease, border-color 0.15s ease;
  }
  .cx--filters-minimal .filter-and-sort input[type="checkbox"]:checked {
    background: #111;
    border-color: #111;
  }
  .cx--filters-minimal .filter-and-sort input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 1px;
    width: 5px;
    height: 10px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
  }
  .cx--filters-minimal .filter-and-sort input[type="checkbox"]:focus-visible {
    outline: 2px solid #111;
    outline-offset: 2px;
  }

  /* Tri et bornes de prix : trait fin plutôt qu'un gros champ arrondi. */
  .cx--filters-minimal .filter-and-sort select,
  .cx--filters-minimal .filter-and-sort input[type="number"],
  .cx--filters-minimal .filter-and-sort input[type="text"],
  .cx--filters-minimal .filter-and-sort input[type="search"] {
    border: 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.16);
    border-radius: 0;
    background: transparent;
    padding: 8px 0;
    box-shadow: none;
    font-size: 15px;
  }
  .cx--filters-minimal .filter-and-sort select:focus,
  .cx--filters-minimal .filter-and-sort input:focus { border-bottom-color: #111; outline: none; }

  /* ---------- Mobile ---------- */
  @media (max-width: 750px) {
    .main-collection__inner { gap: 12px; }
    .main-collection__products { gap: 12px; }

    /* Mêmes proportions, tout est réduit d'un cran pour rester lisible
       sur deux colonnes sans jamais couper le texte. */
    .cx-card__body { padding-top: 11px; }
    .cx-card__name { font-size: 0.9rem; letter-spacing: -0.01em; }
    .cx-card__sub { font-size: 0.8rem; margin-top: 3px; }
    .cx-card__price { font-size: 0.85rem; gap: 7px; padding-top: 9px; }
    .cx-swatches { gap: 5px; margin-bottom: 9px; }
    .cx-swatch { width: 12px; height: 12px; }
    .cx-swatch-more { font-size: 11px; margin-left: 2px; }
    .cx-badge { bottom: 9px; font-size: 10px; padding: 5px 7px; border-radius: 4px; max-width: calc(100% - 18px); }
    .cx-badge--sale { right: 9px; }
    .cx-badge--custom { left: 9px; }
    .cx-dots { bottom: 10px; gap: 9px; padding: 7px 11px; }
    .cx-dot { width: 5px; height: 5px; }
    .cx--nodots-mobile .cx-dots { display: none; }

    .cx-sticky {
      position: fixed; left: 0; right: 0; top: var(--cx-sticky-top, 0px); z-index: 30;
      opacity: 0; visibility: hidden; transform: translateY(-8px); pointer-events: none;
      transition: opacity .2s ease, transform .25s ease, visibility 0s linear .25s;
      display: flex; align-items: center; justify-content: space-between; gap: 12px;
      padding: 11px var(--page-margin-mobile, 20px);
      background: var(--color-background, #fff); box-shadow: 0 2px 12px rgba(0,0,0,0.08);
    }
    .cx-sticky.is-visible {
      opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto;
      transition: opacity .2s ease, transform .25s ease;
    }
    .cx-sticky__count { font-size: 13px; font-weight: 600; opacity: 0.75; }
    .cx-sticky__btn {
      display: inline-flex; align-items: center; gap: 7px; padding: 9px 16px; border-radius: 999px;
      border: 1px solid var(--color-foreground, #111); background: var(--color-foreground, #111);
      color: var(--color-background, #fff); font-weight: 600; font-size: 13px; cursor: pointer;
    }
  }

  /* Une seule colonne : on garde des proportions de bureau */
  @media (max-width: 750px) {
    .main-collection__products-grid[style*="--grid-columns-mobile: 1"] .cx-card__name { font-size: 1rem; }
    .main-collection__products-grid[style*="--grid-columns-mobile: 1"] .cx-card__sub { font-size: 0.9rem; }
  }

  @media (prefers-reduced-motion: reduce) {
    .cx-more__spinner { animation: none; }
    .cx-sticky { transition: none; }
    .cx-card__track { scroll-behavior: auto; }
  }
  /* Écrans tactiles : le « + » d'ajout rapide occupe en permanence le coin bas
     droit. La pastille de remise passe en haut à droite pour ne pas être
     recouverte, et le badge du bas retrouve toute sa largeur. */
  @media (hover: none), (max-width: 749px) {
    .cx-badge--sale { top: 9px; bottom: auto; }
    .cx-badge--custom:has(~ .cx-badge--sale) { max-width: calc(100% - 18px); }
  }
/* END_SECTION:main-collection */

/* START_SECTION:main-collections (INDEX:61) */
.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);
    column-gap: var(--grid-gap-vertical);
    row-gap: var(--grid-gap-horizontal);
  }

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

/* START_SECTION:main-login (INDEX:63) */
.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:64) */
.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: var(--container-border-width) solid var(--color-border);
    border-collapse: collapse;
  }
  .order-details th,
  .order-details td {
    border: var(--container-border-width) solid var(--color-border);
    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:65) */
.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:67) */
.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:68) */
.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:69) */
.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:marquee (INDEX:70) */
.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:71) */
.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);
    padding-left: 0;
    padding-right: 0;
  }

  .navigation__track {
    display: flex;
    gap: var(--gap-md);
    scrollbar-width: none;
    overflow-x: auto;
    align-items: flex-start;
    justify-content: flex-start;
    flex-wrap: var(--wrap);
    padding: calc(0.2rem + var(--container-border-width)) var(--page-margin-mobile);
    width: 100%;
  }

  .navigation--bubble .navigation__track {
    width: 100%;
  }

  @media (width > 750px) {
    .navigation__track {
      justify-content: var(--alignment-desktop);
      padding: calc(0.2rem + var(--container-border-width)) var(--page-margin-desktop);
    }
  }
/* END_SECTION:navigation */

/* START_SECTION:password (INDEX:74) */
.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:76) */
.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-recommendations (INDEX:79) */
.prs {
    display: block;
    margin-top: var(--margin-top, 0);
    margin-bottom: var(--margin-bottom, 0);
  }

  .prs__inner {
    padding-top: var(--padding-top, 0);
    padding-bottom: var(--padding-bottom, 0);
    background-color: var(--color-background);
  }

  /* Masquage visuel sans retrait de l'arbre d'accessibilité. */
  .prs__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }

  .prs__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
  }

  /* Titre + lien côte à côte, comme sur le carrousel de la home. */
  .prs__head-left {
    display: flex;
    align-items: baseline;
    gap: 16px;
    min-width: 0;
  }

  .prs__nav { display: flex; gap: 8px; }
  .prs__nav.is-hidden { visibility: hidden; }

  /* Spécificité renforcée pour ne pas être écrasé par les boutons du thème. */
  .prs .prs__arrow {
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
    padding: 0;
    margin: 0;
    border-radius: 50%;
    border: none;
    background: #f2f2f2;
    color: #1a1a1a;
    box-shadow: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.2s ease, color 0.2s ease;
  }
  .prs .prs__arrow svg { display: block; }
  .prs .prs__arrow:hover:not(:disabled) { background: #e7e7e7; }
  .prs .prs__arrow:disabled {
    cursor: default;
    background: #fafafa;
    color: #bdbdbd;
  }
  .prs .prs__arrow:focus-visible { outline: 2px solid #111; outline-offset: 2px; }

  .prs__title {
    margin: 0;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.1;
  }

  .prs .prs__cta {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    white-space: nowrap;
    color: inherit;
    text-decoration: none;
  }
  .prs .prs__cta:hover { text-decoration: underline; text-underline-offset: 3px; }
  .prs .prs__cta:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
  /* Un seul CTA à la fois : celui du titre sur desktop, celui du bas sur
     mobile — même logique que le carrousel de la home. */
  .prs .prs__cta--top { display: none; }

  .prs__foot { margin-top: 24px; }

  .prs__grid {
    display: grid;
    grid-template-columns: repeat(var(--prs-cols-mobile, 2), 1fr);
    gap: var(--prs-gap, 16px);
  }

  @media (width > 750px) {
    /* Piste défilante : le nombre de colonnes = cartes entières visibles,
       les flèches font défiler le reste page par page, comme sur la home. */
    .prs__grid {
      grid-template-columns: none;
      grid-auto-flow: column;
      grid-auto-columns: calc(
        (100% - (var(--prs-cols, 4) - 1) * var(--prs-gap, 16px)) / var(--prs-cols, 4)
      );
      align-items: stretch;
      overflow-x: auto;
      scrollbar-width: none;
      -ms-overflow-style: none;
    }
    .prs__grid::-webkit-scrollbar { display: none; }
    .prs__title { font-size: 2.1rem; }
    .prs .prs__cta--top { display: inline-flex; }
    .prs__foot { display: none; }
  }

  /* ---------- Mobile en carrousel : piste pleine largeur, swipe naturel,
     mêmes réglages que le carrousel de la page d'accueil. ---------- */
  @media (width <= 750px) {
    .prs--m-slider .prs__grid {
      grid-template-columns: none;
      grid-auto-flow: column;
      grid-auto-columns: var(--prs-card-mobile, 62%);
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scrollbar-width: none;
      -ms-overflow-style: none;
      -webkit-overflow-scrolling: touch;
      width: 100vw;
      margin-inline: calc(50% - 50vw);
      padding-inline: var(--page-margin-mobile, 20px);
      scroll-padding-inline: var(--page-margin-mobile, 20px);
    }
    .prs--m-slider .prs__grid::-webkit-scrollbar { display: none; }
    .prs--m-slider .prs__card { scroll-snap-align: start; }
  }

  /* ---------- Carte ----------
     Même architecture que le carrousel de la home : lien sur le titre,
     étendu à toute la carte par ::after ; le favori se pose au-dessus. */
  .prs__card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    color: inherit;
  }

  .prs__link { color: inherit; text-decoration: none; }
  .prs__link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
  }
  .prs__link:focus-visible { outline: none; }
  .prs__card:has(.prs__link:focus-visible) {
    outline: 2px solid currentColor;
    outline-offset: 4px;
    border-radius: 4px;
  }

  /* ---------- Bouton favori ---------- */
  .prs .prs__wish {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
    width: var(--prs-wish-size, 34px);
    height: var(--prs-wish-size, 34px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    padding: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    color: #111;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.15s ease;
  }
  .prs .prs__wish:hover { background: #fff; transform: scale(1.06); }
  .prs .prs__wish:focus-visible { outline: 2px solid #111; outline-offset: 2px; }
  .prs__wish-icon { display: inline-flex; }
  .prs__wish-icon svg { display: block; }
  .prs__wish-icon.add-to-wishlist-button__icon--filled svg path { fill: currentColor; }

  /* ---------- Média ---------- */
  .prs__media {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border-radius: var(--prs-radius, 10px);
    background: var(--prs-media-bg, #f4f3f1);
  }

  /* Recadrée en 5:7 : cadre fixe calé sur le format des photos du catalogue
     (1600×2241). Une image à un autre ratio est zoomée et recadrée au centre. */
  .prs--img-cover57 .prs__media { aspect-ratio: 5 / 7; }

  /* Format du média : ratio d'origine transmis par --prs-media-ratio. */
  .prs--img-natural .prs__media { aspect-ratio: var(--prs-media-ratio, 5 / 7); }

  /* Carré : photos carrées (jeux), choisi par le format « Automatique ». */
  .prs--img-square .prs__media { aspect-ratio: 1 / 1; }

  /* Skeleton : reflet animé tant que l'image n'est pas chargée. */
  .prs__media::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(100deg, transparent 35%, rgba(255, 255, 255, 0.55) 50%, transparent 65%);
    transform: translateX(-100%);
    animation: prs-shimmer 1.5s ease-in-out infinite;
    pointer-events: none;
    transition: opacity 0.3s ease;
  }
  .prs__media.is-loaded::after { opacity: 0; animation: none; }

  @keyframes prs-shimmer {
    to { transform: translateX(100%); }
  }

  .prs__img {
    width: 100%;
    height: 100%;
    display: block;
    transition: opacity 0.4s ease, transform 0.5s ease;
  }
  .prs__img:not(.prs__hover-media) { opacity: 0; }
  .prs__media.is-loaded .prs__img:not(.prs__hover-media) { opacity: 1; }
  .prs--img-cover .prs__img,
  .prs--img-cover57 .prs__img,
  .prs--img-square .prs__img,
  .prs--img-natural .prs__img { object-fit: cover; }
  .prs--img-contain .prs__img { object-fit: contain; padding: 8%; }

  .prs__hover-media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.35s ease;
  }
  @media (hover: hover) {
    .prs__card:hover .prs__hover-media { opacity: 1; }
    .prs__card:hover .prs__img:not(.prs__hover-media) { transform: scale(1.03); }
  }

  /* Produit épuisé : image lisible mais en retrait. Le sélecteur inclut
     .is-loaded pour l'emporter sur la règle de révélation. */
  .prs__card--soldout .prs__media.is-loaded .prs__img:not(.prs__hover-media) {
    opacity: 0.55;
  }

  /* ---------- Badges ---------- */
  .prs__badge {
    position: absolute;
    z-index: 2;
    pointer-events: none;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.03em;
    line-height: 1;
    padding: 6px 9px;
    border-radius: 4px;
    white-space: nowrap;
  }

  .prs__badge--sale {
    top: 12px;
    right: 12px;
    background: var(--prs-badge-bg, #111);
    color: var(--prs-badge-text, #fff);
  }

  .prs__badge--status {
    background: var(--prs-status-bg, #fff);
    color: var(--prs-status-color, #111);
    font-size: var(--prs-status-size, 11px);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 7px 10px;
    border-radius: var(--prs-status-radius, 4px);
    max-width: calc(100% - 24px);
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .prs--status-bottom_left .prs__badge--status { bottom: 12px; left: 12px; }
  .prs--status-bottom_right .prs__badge--status { bottom: 12px; right: 12px; }
  .prs--status-top_left .prs__badge--status { top: 12px; left: 12px; }
  .prs--status-top_right .prs__badge--status { top: 12px; right: 12px; }

  /* Si les deux badges se retrouvent en haut à droite, le statut descend. */
  .prs--status-top_right .prs__badge--sale { top: 46px; }

  /* Le favori occupe le coin haut droit : la remise passe en haut à gauche,
     sous le statut si celui-ci s'y trouve déjà. */
  .prs__media:has(.prs__wish) .prs__badge--sale { right: auto; left: 12px; }
  .prs--status-top_left .prs__media:has(.prs__wish) .prs__badge--sale { top: 46px; }

  /* ---------- Texte sous l'image ---------- */
  .prs__body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: 12px 2px 0;
  }

  .prs__swatches {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    min-height: 26px;
  }
  .prs__swatch {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.12);
    background: #f4f4f4;
    background-size: cover;
    background-position: center;
    flex-shrink: 0;
  }
  .prs__swatch-more { font-size: 12px; opacity: 0.6; margin-left: 2px; }

  .prs__name {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -0.01em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  @media (hover: hover) {
    .prs__card:hover .prs__name { text-decoration: underline; text-underline-offset: 3px; }
  }

  .prs__subtitle {
    margin: 3px 0 0;
    font-size: 0.82rem;
    line-height: 1.4;
    opacity: 0.65;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .prs__price {
    margin-top: auto;
    padding-top: 8px;
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 0.9rem;
  }
  .prs__price-now { font-weight: 500; }
  .prs__price-old {
    color: var(--prs-price-old, #c62f2f);
    text-decoration: line-through;
    font-weight: 400;
  }

  @media (prefers-reduced-motion: reduce) {
    .prs__media::after { animation: none; opacity: 0; }
    .prs__img,
    .prs__hover-media { transition: none; }
  }
/* END_SECTION:product-recommendations */

/* START_SECTION:reviews (INDEX:81) */
.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);
    column-gap: var(--grid-gap-vertical);
    row-gap: var(--grid-gap-horizontal);
    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:search-drawer (INDEX:82) */
.sdr {
    position: fixed;
    inset: 0;
    z-index: 10001;
  }

  .sdr[hidden] {
    display: none;
  }

  .sdr__overlay {
    position: absolute;
    inset: 0;
    background: rgba(24, 14, 8, 0.3);
    opacity: 0;
    transition: opacity 0.22s ease;
  }

  .sdr.is-open .sdr__overlay {
    opacity: 1;
  }

  .sdr__panel {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 420px;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    background: var(--color-background, #ffffff);
    color: rgb(var(--color-foreground));
    transform: translateX(100%);
    transition: transform 0.24s ease;
    box-shadow: -16px 0 40px rgba(0, 0, 0, 0.08);
  }

  .sdr.is-open .sdr__panel {
    transform: translateX(0);
  }

  .sdr__head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--cart-sep-color, #ececec);
  }

  .sdr__form {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 9px;
  }

  .sdr__glass {
    flex-shrink: 0;
    opacity: 0.5;
  }

  .sdr__input {
    flex: 1;
    min-width: 0;
    border: 0;
    outline: none;
    background: transparent;
    color: inherit;
    /* 16px minimum : en dessous, iOS zoome à la mise au point. */
    font-size: 16px;
    padding: 6px 0;
  }

  .sdr__input::-webkit-search-cancel-button {
    display: none;
  }

  .sdr__close {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    opacity: 0.65;
  }

  .sdr__close:hover {
    opacity: 1;
  }

  .sdr__body {
    flex: 1;
    overflow-y: auto;
    padding: 18px 16px 28px;
  }

  .sdr__label {
    margin: 0 0 12px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.55;
  }

  .sdr__label--spaced {
    margin-top: 26px;
  }

  .sdr__suggestions {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
  }

  .sdr__suggestion {
    width: 100%;
    padding: 9px 0;
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 15px;
    text-align: left;
    cursor: pointer;
  }

  .sdr__suggestion:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
  }

  .sdr__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .sdr__card {
    display: flex;
    flex-direction: column;
    gap: 6px;
    text-decoration: none;
    color: inherit;
  }

  /* Cadre de hauteur fixe, image « contain » sur blanc : nos visuels ne
     partagent pas tous le même format, aucun n'est rogné pour autant. */
  .sdr__thumb {
    display: block;
    height: 210px;
    background: #ffffff;
    border-radius: 6px;
    overflow: hidden;
  }

  .sdr__thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
  }

  .sdr__card-text {
    display: flex;
    flex-direction: column;
    gap: 3px;
  }

  .sdr__name {
    font-size: 13px;
    font-weight: 600;
  }

  .sdr__title {
    font-size: 11px;
    line-height: 1.3;
    opacity: 0.65;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .sdr__price {
    font-size: 13px;
  }

  .sdr__all {
    display: inline-block;
    margin-top: 20px;
    font-size: 14px;
    font-weight: 600;
    color: inherit;
    text-underline-offset: 4px;
  }

  .sdr__empty {
    margin: 0 0 6px;
    font-size: 15px;
  }

  .sdr__empty-hint {
    margin: 0 0 18px;
    font-size: 13px;
    opacity: 0.7;
  }

  .sdr__back {
    padding: 10px 16px;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 999px;
    background: transparent;
    color: inherit;
    font-size: 13px;
    cursor: pointer;
  }

  html.sdr-open {
    overflow: hidden;
  }

  @media (max-width: 749px) {
    .sdr__panel {
      width: 100%;
    }

    .sdr__thumb {
      height: 190px;
    }
  }
/* END_SECTION:search-drawer */

/* START_SECTION:top-bar (INDEX:85) */
.top-bar {
    background: var(--tb-bg, #f6f6f6);
    color: var(--tb-color, #1a1a1a);
  }

  .top-bar__inner {
    display: flex;
    align-items: center;
    gap: var(--tb-gap, 18px);
    padding-top: var(--tb-pad-y, 8px);
    padding-bottom: var(--tb-pad-y, 8px);
    font-size: var(--tb-size-m, 12px);
    font-weight: var(--tb-weight, 400);
  }

  /* Dispositions */
  .top-bar--right .top-bar__inner { justify-content: flex-end; }
  .top-bar--left .top-bar__inner { justify-content: flex-start; }
  .top-bar--center .top-bar__inner { justify-content: center; }
  .top-bar--split .top-bar__inner { justify-content: space-between; }

  .top-bar__nav {
    display: flex;
    align-items: center;
    gap: var(--tb-gap, 18px);
    flex-wrap: wrap;
  }

  .top-bar__link {
    color: inherit;
    text-decoration: none;
    white-space: nowrap;
  }

  .top-bar__link:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  /* Filets « | » entre les éléments, comme la référence. Le filet entre
     le menu et le sélecteur est porté par le conteneur du sélecteur. */
  .top-bar--seps .top-bar__link + .top-bar__link::before,
  .top-bar--seps .top-bar__nav + .top-bar__loc::before {
    content: '';
    display: inline-block;
    width: 1px;
    height: 1em;
    background: currentColor;
    opacity: 0.3;
    margin-right: var(--tb-gap, 18px);
    vertical-align: -0.15em;
    flex-shrink: 0;
  }

  .top-bar__loc {
    display: inline-flex;
    align-items: center;
  }

  /* Le bouton du sélecteur hérite de la taille de la barre au lieu de la
     taille « emphasized » du thème, pour rester discret. */
  .top-bar .top-bar__loc-toggle {
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
    gap: 3px;
  }

  .top-bar .top-bar__loc-toggle .icon-flag {
    width: 14px;
    height: 14px;
    clip-path: circle(50%);
    background-position: center;
    background-size: cover;
    margin-inline-end: 5px;
    position: relative;
  }

  .top-bar__loc-label {
    white-space: nowrap;
  }

  @media (width > 750px) {
    .top-bar__inner {
      font-size: var(--tb-size, 13px);
    }
  }
/* END_SECTION:top-bar */

/* START_SECTION:trio-editorial (INDEX:86) */
.edi {
    padding-top: var(--edi-pt, 64px);
    padding-bottom: var(--edi-pb, 64px);
    box-sizing: border-box;
  }

  .edi--full {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: 20px;
  }
  @media (min-width: 750px) {
    .edi--full { padding-inline: var(--edi-side, 48px); }
  }

  .edi__heading {
    margin: 0 0 28px;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.1;
  }

  /* Masquage visuel sans retrait de l'arbre d'accessibilité. */
  .edi__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }

  .edi__track {
    display: grid;
    grid-template-columns: repeat(var(--edi-cols, 3), minmax(0, 1fr));
    gap: var(--edi-gap, 24px);
  }
  .edi__track:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }

  .edi__track {
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .edi__item { min-width: 0; }

  .edi__media {
    overflow: hidden;
    border-radius: var(--edi-radius, 12px);
    background: #eceae7;
    aspect-ratio: var(--edi-ratio-m, 4 / 3);
  }

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

  .edi__body { padding-top: 16px; }

  .edi__title {
    margin: 0 0 8px;
    font-size: var(--edi-title-m, 14px);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.25;
    color: var(--edi-title-color, #111);
  }

  .edi__text {
    margin: 0;
    font-size: var(--edi-text-m, 14px);
    line-height: 1.5;
    color: var(--edi-text-color, #5c5c5c);
    max-width: 46ch;
  }

  .edi .edi__link {
    display: inline-block;
    margin-top: 10px;
    font-size: var(--edi-text-m, 14px);
    font-weight: 600;
    color: var(--edi-title-color, #111);
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .edi .edi__link:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

  /* La boîte ferme le carrousel : la piste peut être aussi large
     qu'elle veut, rien n'en sort ni n'élargit la page. */
  .edi__viewport {
    overflow: hidden;
  }

  /* Armé (mobile) : pan-y réserve au navigateur le seul défilement
     vertical de la page. Sans cette ligne, il confisque aussi le geste
     horizontal, envoie pointercancel au premier mouvement et aucun
     balayage n'aboutit : le carrousel semble bloqué. */
  .edi__viewport--on .edi__track {
    cursor: grab;
    touch-action: pan-y pinch-zoom;
    -webkit-user-select: none;
    user-select: none;
  }

  .edi__viewport--on .edi__track:active {
    cursor: grabbing;
  }

  .edi__viewport--on .edi__img {
    -webkit-user-drag: none;
  }

  .edi__track:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
  }

  /* Flèches : uniquement quand le carrousel est armé, donc sur mobile. */
  .edi__nav {
    display: none;
    justify-content: center;
    gap: 10px;
    margin-top: 20px;
  }

  .edi__arrow {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e2d9d4;
    border-color: color-mix(in srgb, var(--edi-title-color, #482922) 22%, transparent);
    border-radius: 999px;
    background: transparent;
    color: var(--edi-title-color, #482922);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
  }

  .edi__arrow:hover {
    background: var(--edi-title-color, #482922);
    color: #ffffff;
  }

  @media (max-width: 749px) {
    .edi:not(.edi--mstack) .edi__nav {
      display: flex;
    }
  }

  @media (max-width: 749px) {
    /* La section perd sa gouttière : la boîte du carrousel court d'un
       bord à l'autre, et les volets voisins sont coupés net par le bord
       de l'écran, sans bande blanche. Le volet actif étant centré, il
       garde sa respiration de lui-même. */
    .edi--full {
      padding-inline: 0;
    }

    .edi__heading {
      padding-inline: 20px;
    }

    .edi--mstack .edi__track {
      padding-inline: 20px;
    }

    /* Spécificité renforcée (.edi devant) : les règles du thème visant
       les listes de carrousel arrivent après les nôtres dans la feuille
       compilée et gagneraient à spécificité égale. */
    .edi .edi__track {
      display: flex;
      grid-template-columns: none;
      gap: var(--edi-gap, 24px);
    }

    .edi .edi__item {
      flex: 0 0 var(--edi-card-m, 78%);
    }

    .edi--mstack .edi__track {
      display: grid;
      grid-template-columns: 1fr;
      transform: none !important;
    }

    .edi--mstack .edi__body {
      padding-top: 12px;
    }
  }

  /* ---------- Ordinateur ---------- */
  @media (min-width: 750px) {
    /* Le carrousel se désarme : la grille reprend, sans transformation. */
    .edi .edi__track {
      display: grid;
      grid-template-columns: repeat(var(--edi-cols, 3), minmax(0, 1fr));
      gap: var(--edi-gap, 24px);
      transform: none;
    }

    .edi .edi__item { flex: none; }

    .edi__heading { font-size: 2.1rem; }
    .edi__media { aspect-ratio: var(--edi-ratio-d, 4 / 3); }
    .edi__title { font-size: var(--edi-title-d, 15px); }
    .edi__text { font-size: var(--edi-text-d, 15px); }
    .edi .edi__link { font-size: var(--edi-text-d, 15px); }
  }
/* END_SECTION:trio-editorial */

/* START_SECTION:wishlist-drawer (INDEX:89) */
.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__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-top: 0;
    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:90) */
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:93) */
.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:95) */
.article-date {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }
/* END_BLOCK:_article-date */

/* START_BLOCK:_article-group (INDEX:96) */
.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:_badge (INDEX:97) */
.bgp {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: var(--bgp-align-d, flex-start);
    gap: var(--bgp-gap, 8px);
    margin-top: var(--bgp-mt, 0);
    margin-bottom: var(--bgp-mb, 0);
  }

  @media (max-width: 749px) {
    .bgp { justify-content: var(--bgp-align-m, flex-start); }
  }

  /* Reprise des règles de couleurs personnalisées : elles vivent dans
     _badge.liquid, dont la feuille de style peut ne plus être chargée si
     plus aucun badge manuel n'est présent sur la page. */
  .bgp .badge--custom-colors {
    background-color: var(--badge-bg) !important;
    color: var(--badge-text) !important;
    border-color: var(--badge-bg) !important;
  }
  .bgp .badge--bold { font-weight: 700 !important; }
/* END_BLOCK:_badge */

/* START_BLOCK:_cart-accelerated-checkout (INDEX:98) */
.bj-express {
    position: relative;
    margin-top: var(--margin-top, 8px);
    margin-bottom: var(--margin-bottom, 0);
  }

  .bj-express__bouton {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 16px;
    border: 1px solid #010c27;
    border-radius: 8px;
    background: #ffffff;
    color: #010c27;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.02em;
    cursor: pointer;
    list-style: none;
    user-select: none;
  }

  .bj-express__bouton::-webkit-details-marker {
    display: none;
  }

  {%- comment -%}
    Panneau façon Tediber : il s'ouvre AU-DESSUS du bouton, en surcouche,
    pour que le bouton et les icônes de paiement ne bougent pas.
  {%- endcomment -%}
  .bj-express__boutons {
    position: absolute;
    bottom: calc(100% + 8px);
    left: 0;
    right: 0;
    z-index: 6;
    padding: 12px;
    background: #ffffff;
    border: 1px solid #e4dfd8;
    border-radius: 8px;
  }

  .bj-express__boutons ul {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  .bj-express__boutons li {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  .bj-express__boutons li > * {
    width: 100% !important;
  }

  .bj-express__boutons iframe {
    width: 100% !important;
  }

  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:99) */
.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:100) */
.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:101) */
.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:102) */
/* Ligne « Économisez » : écart réel entre les prix de comparaison et le total payé. */
  .cart-footer-resume-blocks .cart__economie {
    margin: 0;
    text-align: right;
    color: var(--cart-economie-color, #c4504f);
    font-size: 13px;
    line-height: 1.3;
    margin-top: -4px;
  }

  .cart-footer-resume-blocks .cart__economie strong {
    font-weight: 800;
  }

  .cart-footer-resume-blocks {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    display: flex;
    flex-direction: column;
    gap: var(--gap-sm);
  }

  /* Rangée « Total » : le montant à payer est la ligne la plus forte du résumé
     (16 px gras), le prix barré reste discret à côté. */
  .cart-footer-resume-blocks .cart__totals {
    align-items: baseline;
  }

  .cart-footer-resume-blocks .cart__totals p {
    margin: 0;
    font-size: 16px;
    line-height: 1.25;
  }

  .cart-footer-resume-blocks .cart__totals-value .prices {
    display: flex;
    align-items: baseline;
    gap: 8px;
    line-height: 1.25;
  }

  .cart-footer-resume-blocks .cart__totals-value .price {
    font-size: 16px;
    font-weight: 700;
  }

  .cart-footer-resume-blocks .cart__totals-value .compare-at-price {
    font-size: 13px;
    font-weight: 400;
    opacity: 0.6;
  }

  .cart-footer-resume-blocks .cart__label-soustotal {
    display: none;
  }

  .cart-footer-resume-blocks:has(.de--payante) .cart__label-total {
    display: none;
  }

  .cart-footer-resume-blocks:has(.de--payante) .cart__label-soustotal {
    display: inline;
  }

  /* Libellés « Réduction » et « Total estimé » — graisse réglable */
  .cart-footer-resume-blocks .cart__reductions p,
  .cart-footer-resume-blocks .cart__totals p {
    font-weight: var(--cfr-label-weight, 600);
  }
/* END_BLOCK:_cart-footer-resume-blocks */

/* START_BLOCK:_cart-header-blocks (INDEX:103) */
.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(--chb-first-mt, 6px);
    margin-bottom: var(--chb-first-mb, 6px);
  }
/* END_BLOCK:_cart-header-blocks */

/* START_BLOCK:_cart-note (INDEX:104) */
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:105) */
.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:108) */
.comparison-table__cell {
    padding: var(--padding-md);
    text-align: center;
    vertical-align: middle;
  }

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

  @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);
    }

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

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

  .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:109) */
.comparison-table__table tr:not(:last-child) {
    border-bottom: var(--separator-border-width) solid var(--color-border);
  }
/* END_BLOCK:_comparison-table-row */

/* START_BLOCK:_custom_product_field (INDEX:110) */
.custom-product-field {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }
/* END_BLOCK:_custom_product_field */

/* START_BLOCK:_discount-code (INDEX:111) */
.cart-discount-block {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    background: var(--cd-bg, transparent);
    border-radius: var(--cd-radius, 0);
    padding: var(--cd-padding, 0);

    .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:112) */
.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:113) */
.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:114) */
.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:115) */
.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:117) */
.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:118) */
.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:119) */
/* Menu mobile, design onalie façon Nude Project : le panneau vit SOUS
     le header, qui reste visible et interactif. */
  .header__mobile-menu-overlay {
    position: fixed;
    top: var(--onalie-drawer-top, 0px);
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(var(--color-shadow));
    z-index: 999;
    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: 100vw;
    max-width: none;
    height: 100%;
    background: var(--color-background);
    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;
  }

  /* Le hamburger du header devient une croix quand le menu est ouvert */
  header-component:has(.header__mobile-menu-overlay.is-open) [data-ref="menu-toggle"] .icon {
    display: none;
  }

  header-component:has(.header__mobile-menu-overlay.is-open) [data-ref="menu-toggle"]::before {
    content: '\00d7';
    font-size: 27px;
    font-weight: 300;
    line-height: 1;
  }

  /* Bouton de fermeture requis par header.js : hors écran, focusable */
  .header__mobile-menu-close-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
  }

  /* Recherche : ligne fine en haut du panneau, façon Nude */
  .header__mobile-menu-search {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 20px;
    padding: 14px 0 12px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    flex-shrink: 0;
  }

  .header__mobile-menu-search input {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    padding: 0;
    background: none;
    font-size: 14px;
    color: inherit;
  }

  .header__mobile-menu-search input::placeholder {
    color: inherit;
    opacity: 0.45;
  }

  .header__mobile-menu-search input:focus {
    outline: none;
  }

  .header__mobile-menu-search input::-webkit-search-cancel-button {
    display: none;
  }

  .header__mobile-menu-search button {
    display: flex;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    opacity: 0.55;
    cursor: pointer;
    flex-shrink: 0;
  }

  .header__mobile-menu-search svg {
    width: 17px;
    height: 17px;
  }

  /* Suggestions de recherche : sous le champ, photos 5:7, filets fins */
  .header__mobile-menu-suggest {
    flex-shrink: 0;
    margin: 0 20px;
    max-height: 46vh;
    overflow-y: auto;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }

  .header__mobile-menu-suggest-list {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .header__mobile-menu-suggest-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    text-decoration: none;
    color: inherit;
  }

  .header__mobile-menu-suggest-list li + li .header__mobile-menu-suggest-item {
    border-top: 1px solid rgba(0, 0, 0, 0.06);
  }

  .header__mobile-menu-suggest-item img {
    width: 44px;
    height: 62px;
    object-fit: cover;
    border-radius: 2px;
    flex-shrink: 0;
    background: rgba(0, 0, 0, 0.04);
  }

  .header__mobile-menu-suggest-meta {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
  }

  .header__mobile-menu-suggest-title {
    font-size: 13px;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .header__mobile-menu-suggest-price {
    font-size: 12px;
    opacity: 0.6;
  }

  .header__mobile-menu-suggest-all {
    display: block;
    padding: 11px 0 13px;
    font-size: 13px;
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .header__mobile-menu-suggest-empty {
    margin: 0;
    padding: 12px 0;
    font-size: 13px;
    opacity: 0.6;
  }

  /* Navigation */
  .header__mobile-menu-nav {
    flex: 1;
    padding: 24px 20px 18px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    overflow-y: auto;
    overflow-x: hidden;
  }

  .header__mobile-menu-link {
    display: block;
    padding: 10px 0;
    text-decoration: none;
    color: inherit;
    font-size: 15px;
    font-weight: var(--font-weight, 500);
    line-height: 1.3;
  }

  /* Lien vedette : grand mais léger, la lettre façon Nude */
  .header__mobile-menu-link--feature {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-size: 27px;
    font-weight: 500;
    letter-spacing: -0.01em;
    line-height: 1.15;
    padding: 2px 0 16px;
  }

  .header__mobile-menu-link--feature .header__mobile-menu-arrow {
    width: 24px;
    height: 24px;
  }

  /* Lignes avec flèche */
  .header__mobile-menu-link--row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
  }

  .header__mobile-menu-arrow {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    opacity: 0.85;
  }

  /* 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: 14px;
    padding-bottom: 6px;
  }

  .header__mobile-menu-link--child {
    font-size: 15px;
    padding: 9px 0;
  }

  .header__mobile-menu-link--grandchild {
    font-size: 14px;
    padding: 8px 0 8px 14px;
  }

  .header__mobile-menu-submenu--level-2 {
    padding-left: 0;
  }

  /* Bloc bas : liens utiles poussés en bas, façon Nude */
  .header__mobile-menu-bottom {
    margin-top: auto;
    padding-top: 30px;
  }

  .header__mobile-menu-link--small {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    font-size: 14px;
    padding: 9px 0;
  }

  .header__mobile-menu-link--small .header__mobile-menu-arrow {
    width: 17px;
    height: 17px;
  }

  .header__mobile-menu-note {
    margin: 10px 0 0;
    font-size: 12px;
    line-height: 1.6;
    opacity: 0.5;
  }

  .header__mobile-menu-footer {
    padding: 12px 20px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
  }
/* END_BLOCK:_header-drawer-menu */

/* START_BLOCK:_header-megamenu-group (INDEX:120) */
.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:121) */
.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:122) */
.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:123) */
.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:124) */
.image-banner {
    position: relative;
    overflow: hidden;
    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%;

    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);
    }
  }
/* END_BLOCK:_image-banner */

/* START_BLOCK:_marquee-image (INDEX:125) */
.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:126) */
.navigation-item {
    display: flex;
    align-items: center;
    gap: var(--gap-sm);
    justify-content: center;
    text-decoration: none;
    color: var(--color-foreground);
    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);
    line-height: 1;
  }

  .navigation-item img {
    min-width: var(--image-width-mobile);
    width: var(--image-width-mobile);
    height: var(--image-width-mobile);
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: 50px;
    overflow: hidden;
    object-position: center center;
    background-color: #f8f8f8;
  }

  .navigation--tab .navigation-item {
    flex-direction: row;
    color: var(--color-tab-text);
    background-color: var(--color-tab-background);
    border-radius: calc(var(--small-multiplier) * var(--button-border-radius));
    border: var(--tab-button-border-width) solid var(--color-tab-border);
    padding: var(--padding-xxs) var(--padding-sm);
    transition: 0.3s;
    min-height: calc(var(--image-width-mobile) + 2 * var(--padding-xxs));
    min-width: max-content;

    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 {
      background-color: var(--color-selected-tab-background);
      color: var(--color-selected-tab-text);
      border-color: var(--color-selected-tab-border);
    }
  }

  .navigation--bubble .navigation-item {
    flex-direction: column;
    min-width: calc(var(--image-width-mobile) + 30px);
    width: calc(var(--image-width-mobile) + 30px);

    .navigation__title {
      color: var(--color-foreground);
      max-width: calc(var(--image-width-mobile) + 30px);
      overflow-wrap: break-word;
      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--bubble .navigation-item {
      min-width: calc(var(--image-width-desktop) + 30px);
      width: calc(var(--image-width-desktop) + 30px);
    }

    .navigation-item img {
      min-width: var(--image-width-desktop);
      width: var(--image-width-desktop);
      height: var(--image-width-desktop);
    }

    .navigation--bubble .navigation-item .navigation__title {
      max-width: calc(var(--image-width-desktop) + 30px);
    }
  }
/* END_BLOCK:_navigation-link */

/* START_BLOCK:_password-form (INDEX:127) */
.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:128) */
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;
  }

  /* Prix barré masqué : couvre le rendu Liquid initial (s, .price--compare…)
     et ce que le JS du thème pourrait réinjecter au changement de variante. */
  .product-add-to-cart-button--no-compare s,
  .product-add-to-cart-button--no-compare del,
  .product-add-to-cart-button--no-compare [class*='compare'] {
    display: none !important;
  }

  .product-add-to-cart-button .button {
    container-type: inline-size;
    font-weight: var(--atc-font-weight, 800) !important;
    text-transform: uppercase !important;
    border-radius: var(--atc-radius, var(--button-border-radius)) !important;
  }

  .product-add-to-cart-button .button__content,
  .product-add-to-cart-button .full-add-to-cart-text,
  .product-add-to-cart-button .small-add-to-cart-text,
  .product-add-to-cart-button .preorder-text {
    font-weight: var(--atc-font-weight, 800);
    text-transform: uppercase;
  }

  /* Taille de texte et hauteur : mobile d'abord, desktop au-delà de 750 px.
     Ces règles n'existent que si la case correspondante est cochée, donc
     décochées elles ne peuvent rien casser dans le rendu du thème. */
  .product-add-to-cart-button--custom-fs .button,
  .product-add-to-cart-button--custom-fs .button__content,
  .product-add-to-cart-button--custom-fs .full-add-to-cart-text,
  .product-add-to-cart-button--custom-fs .small-add-to-cart-text,
  .product-add-to-cart-button--custom-fs .preorder-text,
  .product-add-to-cart-button--custom-fs .price-container {
    font-size: var(--atc-fs-m, inherit) !important;
  }

  /* height ET min-height : min-height seul ne permettrait que d'agrandir,
     le padding vertical du thème faisant plancher. */
  .product-add-to-cart-button--custom-h .button {
    height: var(--atc-h-m) !important;
    min-height: var(--atc-h-m) !important;
  }

  @media (width > 750px) {
    .product-add-to-cart-button--custom-fs .button,
    .product-add-to-cart-button--custom-fs .button__content,
    .product-add-to-cart-button--custom-fs .full-add-to-cart-text,
    .product-add-to-cart-button--custom-fs .small-add-to-cart-text,
    .product-add-to-cart-button--custom-fs .preorder-text,
    .product-add-to-cart-button--custom-fs .price-container {
      font-size: var(--atc-fs-d, inherit) !important;
    }

    .product-add-to-cart-button--custom-h .button {
      height: var(--atc-h-d) !important;
      min-height: var(--atc-h-d) !important;
    }
  }

  /* Séparateur : l'espacement de base vient du gap du bouton, ce réglage
     ne fait que l'ajuster. 0 conserve exactement le rendu du thème, une
     valeur négative resserre. */
  .product-add-to-cart-button .button__separator {
    margin-inline: var(--atc-sep-gap, 0px);
    opacity: var(--atc-sep-opacity, 1);
  }

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

  #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(--atc-radius, var(--button-border-radius)) !important;
    font-weight: var(--atc-font-weight, 800) !important;
    text-transform: uppercase !important;
    width: -webkit-fill-available !important;
    font-family: var(--font-body--family) !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:129) */
.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:130) */
.product-card-media-gallery-block {
    position: relative;
  }

  .product-card-media-gallery .splide__slide {
    margin-right: var(--card-padding) !important;
  }

  .product-card-media-gallery .splide__arrow {
    background-color: transparent;
    border: none;
  }

  .product-card-media-gallery__media {
    height: 100%;
  }

  .product-card-media-gallery__media--rounded {
    border-radius: var(--card-border-radius);
    overflow: hidden;
  }

  .product-card.card .product-card-media-gallery__media--rounded {
    border-radius: calc(var(--card-border-radius) - (var(--card-padding) * 0.5));
  }

  .slider-component--65-percent product-card-media-gallery .splide__list {
    width: 100%;
  }

  .product-card-media-gallery__add-to-wishlist-button {
    position: absolute;
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-xs);
    bottom: var(--padding-xs);
    right: var(--padding-xs);
    background-color: transparent;
  }

  .product-card-media-gallery__add-to-wishlist-button .button {
    background-color: transparent;
  }

  @media (width > 750px) {
    product-card-media-gallery .splide__arrow,
    product-card-media-gallery .splide__arrow:disabled {
      opacity: 0;
      transition: opacity 0.2s ease-in-out;
    }

    product-card:hover product-card-media-gallery .splide__arrow {
      opacity: 1;
    }

    product-card:hover product-card-media-gallery .splide__arrow:disabled {
      opacity: 0.5;
    }

    .product-card-media-gallery__add-to-wishlist-button {
      opacity: 0;
      transition: opacity 0.2s ease-in-out;
    }

    .product-card:hover .product-card-media-gallery__add-to-wishlist-button {
      opacity: 1;
    }
  }
/* END_BLOCK:_product-card-media-gallery */

/* START_BLOCK:_product-card-quick-add (INDEX:131) */
.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 .quick-add-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;

    .sticky-add-to-cart__content {
      padding: 0 !important;
    }
  }
/* END_BLOCK:_product-card-quick-add */

/* START_BLOCK:_product-form (INDEX:134) */
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:135) */
@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;
      }
    }

    /* Vitrine (Dore & Rose) : grille 2 colonnes épurée, pas de flèches/pagination sur desktop */
    .product-media-gallery--showcase .splide__arrows,
    .product-media-gallery--showcase .splide__pagination {
      display: none;
    }
  }

  .product-media-gallery__media {
    height: 100%;
    position: relative;
  }

  /* --- Zoom optionnel (réglage « Zoom des images ») : recadre dans
     l'image pour qu'elle remplisse le cadre bord à bord, sans espace
     sur les côtés. 100 % = neutre. Le lightbox (loupe) n'est pas
     zoomé : il montre toujours la photo entière. --- */
  .product-media-gallery__media .product-media {
    overflow: hidden;
  }
  .product-media-gallery__media .product-media img {
    transform: scale(var(--pmg-zoom, 1));
    transform-origin: center;
  }
  .product-media-gallery__thumbnail {
    overflow: hidden;
  }
  .product-media-gallery__thumbnail .product-media-gallery__thumbnail-image {
    transform: scale(var(--pmg-zoom, 1));
    transform-origin: center;
  }

  /* --- Vidéos : plein cadre, AUCUN arrondi propre (c'est le conteneur
     de la galerie qui arrondit les coins extérieurs via overflow) --- */
  .product-media-gallery__media video {
    border-radius: 0 !important;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .product-media-gallery__media deferred-media,
  .product-media-gallery__media video-media {
    border-radius: 0 !important;
  }

  /* --- Bouton loupe (zoom) --- */
  .product-media-gallery__zoom {
    position: absolute;
    left: 10px;
    bottom: 10px;
    z-index: 2;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.92);
    color: #1a1a1a;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    padding: 0;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.12);
    transition: transform 0.15s ease, opacity 0.15s ease;
  }
  .product-media-gallery__zoom:hover {
    transform: scale(1.06);
  }

  /* Desktop (souris uniquement) : loupe visible au survol de l'image.
     Sur mobile et tablette tactile, elle reste toujours visible. */
  @media (width > 750px) and (hover: hover) {
    .product-media-gallery__zoom {
      opacity: 0;
    }
    .product-media-gallery__media:hover .product-media-gallery__zoom,
    .product-media-gallery__zoom:focus-visible {
      opacity: 1;
    }
  }

  /* Mobile : la loupe n'apparaît que sur l'image ACTIVE — jamais sur
     l'aperçu de l'image suivante qui dépasse (sinon deux loupes à
     l'écran). Petit fondu quand la nouvelle image devient active. */
  @media (width <= 750px) {
    .product-media-gallery .splide__slide .product-media-gallery__zoom {
      transition: opacity 0.25s ease;
    }
    .product-media-gallery .splide__slide:not(.is-active) .product-media-gallery__zoom {
      opacity: 0;
      pointer-events: none;
    }
  }

  /* --- Badge mannequin (taille) --- */
  .product-media-gallery__model-badge {
    position: absolute;
    right: 10px;
    bottom: 10px;
    z-index: 2;
    background: var(--mb-bg, rgba(255, 255, 255, 0.92));
    color: var(--mb-color, #1a1a1a);
    font-size: 12px;
    line-height: 1.3;
    padding: 6px 12px;
    border-radius: 999px;
    pointer-events: none;
    white-space: nowrap;
    max-width: calc(100% - 20px);
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /* --- Lightbox plein écran --- */
  .media-lightbox {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .media-lightbox[hidden] {
    display: none !important;
  }
  .media-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: #ffffff;
  }
  .media-lightbox__track {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 92vw;
    max-height: 86vh;
  }
  .media-lightbox__slide {
    display: none;
    margin: 0;
  }
  .media-lightbox__slide.is-active {
    display: block;
  }
  .media-lightbox__slide img {
    display: block;
    max-width: 92vw;
    max-height: 86vh;
    width: auto;
    height: auto;
  }
  .media-lightbox__close {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 2;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: #1a1a1a;
    border: 0;
    cursor: pointer;
    padding: 0;
  }
  .media-lightbox__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    color: #1a1a1a;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 50%;
    cursor: pointer;
    padding: 0;
  }
  .media-lightbox__nav--prev { left: 16px; }
  .media-lightbox__nav--next { right: 16px; }
  .media-lightbox__counter {
    position: absolute;
    bottom: 14px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    font-size: 13px;
    color: #1a1a1a;
    font-variant-numeric: tabular-nums;
  }
  @media (width <= 750px) {
    .media-lightbox__nav {
      width: 38px;
      height: 38px;
    }
    .media-lightbox__nav--prev { left: 8px; }
    .media-lightbox__nav--next { right: 8px; }
    .media-lightbox__slide img {
      max-width: 100vw;
      max-height: 82vh;
    }
    .media-lightbox__track {
      max-width: 100vw;
      max-height: 82vh;
    }
  }

  .product-media-gallery__media--rounded {
    border-radius: var(--card-border-radius);
    overflow: hidden;
  }

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

  /* Miniatures carrées (façon Dore & Rose) */
  .product-media-gallery__thumbnail--square .product-media-gallery__thumbnail-image {
    aspect-ratio: 1 / 1;
    width: 100%;
    object-fit: cover;
    display: block;
  }

  @media (width > 750px) {
    .product-media-gallery--thumbs-left {
      display: flex;
      flex-direction: row-reverse;
      gap: 16px;
      align-items: stretch;
    }

    .product-media-gallery--thumbs-left .product-media-gallery-main-slider {
      flex: 1;
      min-width: 0;
      overflow: hidden;
    }

    .product-media-gallery--thumbs-left .product-media-gallery-main-slider .splide__track {
      overflow: hidden;
    }

    .product-media-gallery--thumbs-left .product-media-gallery__thumbnails {
      position: relative;
      width: 92px;
      flex-shrink: 0;
      margin-top: 0;
      z-index: 2;
      background: var(--color-background, #fff);
    }

    .product-media-gallery--thumbs-left .product-media-gallery__thumbnails .splide__track {
      position: absolute;
      inset: 0;
      overflow-y: auto;
      overflow-x: hidden;
      scrollbar-width: thin;
    }

    /* La règle globale « .product-section product-media-gallery .splide__track
       { overflow: clip !important } » (anti-défilement des carrousels d'images)
       coupait aussi cette colonne : seules les ~5 premières miniatures étaient
       atteignables. Ici le défilement vertical est voulu. */
    .product-section product-media-gallery .product-media-gallery--thumbs-left .product-media-gallery__thumbnails .splide__track {
      overflow-x: hidden !important;
      overflow-y: auto !important;
      scrollbar-width: none;
    }

    .product-media-gallery--thumbs-left .product-media-gallery__thumbnails .splide__track::-webkit-scrollbar {
      display: none;
    }

    .product-media-gallery--thumbs-left .product-media-gallery__thumbnails .splide__list {
      display: flex;
      flex-direction: column;
      gap: 10px;
      transform: none !important;
    }

    .product-media-gallery--thumbs-left .product-media-gallery__thumbnails .splide__slide {
      width: 100% !important;
      margin: 0 !important;
    }

    .product-media-gallery--thumbs-left .product-media-gallery__thumbnails .splide__arrows {
      display: none;
    }
  }
  .product-media-gallery-main-slider {
    position: relative;
  }

  /* ============================================================
     GALERIE IMMERSIVE (Kat The Label) — défilement natif.
     Desktop : images 2:3 hautes de --pmg-kat-h (plafonnées à 760 px),
     vignettes 2:3 verticales à gauche. Mobile : image à 75 % de la
     largeur, l'aperçu de la suivante invite au swipe, pas de vignettes.
     ============================================================ */
  .pmg-kat {
    position: relative;
  }

  .pmg-kat__viewport {
    position: relative;
    flex: 1;
    min-width: 0;
  }

  .pmg-kat__track {
    display: flex;
    gap: var(--pmg-kat-gap, 8px);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -ms-overflow-style: none;
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
    margin: 0;
    padding: 0;
    outline: none;
    scroll-behavior: smooth;
  }
  .pmg-kat__track::-webkit-scrollbar {
    display: none;
  }
  .pmg-kat__track.is-dragging {
    cursor: grabbing;
    scroll-behavior: auto;
  }

  .pmg-kat__slide {
    position: relative;
    flex: 0 0 auto;
    list-style: none;
    aspect-ratio: var(--pmg-kat-ratio, 2 / 3);
    overflow: hidden;
  }
  .pmg-kat__slide .product-media,
  .pmg-kat__slide .product-media img,
  .pmg-kat__slide video {
    width: 100%;
    height: 100%;
  }
  .pmg-kat__slide .product-media img {
    object-fit: cover;
    -webkit-user-drag: none;
  }

  .pmg-kat__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 0;
    padding: 0;
    color: rgba(0, 0, 0, 0.55);
    cursor: pointer;
    transition: color 0.15s ease;
  }
  .pmg-kat__arrow:hover {
    color: rgba(0, 0, 0, 0.9);
  }
  .pmg-kat__arrow--prev { left: 4px; }
  .pmg-kat__arrow--next { right: 4px; }

  .pmg-kat__thumb {
    position: relative;
    flex-shrink: 0;
    width: 60px;
    padding: 0;
    background: none;
    border: 1px solid transparent;
    cursor: pointer;
  }
  .pmg-kat__thumb.is-active {
    border-color: #1a1a1a;
  }
  .pmg-kat__thumb .product-media-gallery__thumbnail-image {
    display: block;
    width: 100%;
    object-fit: cover;
  }
  .pmg-kat__thumb-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.1);
    color: #fff;
    pointer-events: none;
  }

  @media (width > 750px) {
    .pmg-kat {
      display: flex;
      gap: 16px;
      align-items: flex-start;
    }
    .pmg-kat__thumbs {
      width: 62px;
      flex-shrink: 0;
      display: flex;
      flex-direction: column;
      gap: 8px;
      overflow-y: auto;
      scrollbar-width: none;
      max-height: 42vw;
    }
    .pmg-kat__thumbs::-webkit-scrollbar {
      display: none;
    }
    /* 2 images pleines + un aperçu de la 3e, quel que soit l'écran :
       les 2 images occupent --pmg-kat-w du conteneur (ex : 90 %),
       le reste laisse dépasser la suivante. La hauteur découle du ratio. */
    .pmg-kat__slide {
      width: calc(var(--pmg-kat-w, 90%) / 2 - var(--pmg-kat-gap, 8px) / 2);
    }
  }

  @media (width <= 750px) {
    .pmg-kat {
      display: flex;
      flex-direction: column;
    }
    /* Pleine largeur : sort du padding de page, comme Kat The Label */
    .pmg-kat__viewport {
      width: 100vw;
      margin-left: calc(50% - 50vw);
    }
    .pmg-kat__slide {
      width: 75%;
    }
    .pmg-kat__arrow {
      display: none;
    }
    .pmg-kat__thumbs {
      order: 2;
      display: flex;
      gap: 8px;
      overflow-x: auto;
      scrollbar-width: none;
      margin-top: 10px;
    }
    .pmg-kat__thumbs::-webkit-scrollbar {
      display: none;
    }
    .pmg-kat__thumbs--mobile-hidden {
      display: none;
    }
  }

  /* --- Mobile : vignettes masquées, compteur + points de pagination --- */
  .product-media-gallery__media-counter {
    display: none;
  }

  @media (width <= 750px) {
    .product-media-gallery__thumbnails--mobile-hidden {
      display: none !important;
    }

    .product-media-gallery__media-counter {
      display: inline-flex;
      align-items: center;
      position: absolute;
      top: 10px;
      right: 10px;
      z-index: 3;
      background: rgba(255, 255, 255, 0.92);
      color: #1a1a1a;
      font-size: 12px;
      line-height: 1.2;
      padding: 5px 10px;
      border-radius: 999px;
      pointer-events: none;
      font-variant-numeric: tabular-nums;
      box-shadow: 0 1px 6px rgba(0, 0, 0, 0.1);
    }

    /* Points fins et discrets sous l'image, sans gêner la loupe */
    .product-media-gallery .splide__pagination {
      bottom: 8px;
      gap: 4px;
    }
    .product-media-gallery .splide__pagination__page {
      width: 6px;
      height: 6px;
      opacity: 0.55;
    }
    .product-media-gallery .splide__pagination__page.is-active {
      opacity: 1;
      transform: none;
    }
  }

  .product-media-gallery__custom-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 3;
    background: var(--cb-bg, #1a1a1a);
    color: var(--cb-color, #fff);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 999px;
    pointer-events: none;
    line-height: 1.4;
  }

  .product-media-gallery__viewers {
    position: absolute;
    left: 50%;
    bottom: 14px;
    transform: translateX(-50%);
    z-index: 3;
    pointer-events: none;
  }

  @media (width > 750px) {
    .product-media-gallery__viewers {
      left: auto;
      bottom: auto;
      top: 12px;
      right: 12px;
      transform: none;
    }
  }

  .product-media-gallery__viewers .lv__inner {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--lv-bg, #ffffff);
    color: var(--lv-text, #1a1a1a);
    border-radius: 999px;
    padding: 6px 12px;
    font-size: var(--lv-font-mobile, 12px);
    line-height: 1.2;
    white-space: nowrap;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
  }

  @media (width > 750px) {
    .product-media-gallery__viewers .lv__inner {
      font-size: var(--lv-font-desktop, 12px);
    }
  }

  .product-media-gallery__viewers .lv__count {
    font-weight: 700;
    color: var(--lv-count, inherit);
    font-variant-numeric: tabular-nums;
  }

  .product-media-gallery__viewers .lv__text { opacity: 0.85; }
  /* Aperçu mobile : la piste gris clair rend l'interstice et le bout de
     l'image voisine toujours visibles, même quand celle-ci est à fond
     blanc (infographies). Invisible au repos une fois l'image en place. */
  @media (max-width: 749px) {
    .product-media-gallery-main-slider .splide__track {
      background: #f6f7f9;
    }
  }

  /* En mode boucle, cette version de Splide ne pose pas is-overflow et sa
     règle .splide:not(.is-overflow) masque la pagination : on la rétablit. */
  .product-media-gallery-main-slider.splide--loop .splide__pagination {
    display: flex;
  }
/* END_BLOCK:_product-media-gallery */

/* START_BLOCK:_product-quantity-selector (INDEX:136) */
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:137) */
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);
    /* Espace entre le nom de l'option et ses valeurs, réglable dans l'éditeur */
    margin-bottom: var(--vp-label-gap, 14px);
  }

  .variant-picker__option-label-group {
    display: inline-flex;
    align-items: baseline;
    gap: 16px;
    min-width: 0;
  }

  /* Nom de l'option (« Couleur : », « Taille : »). La graisse est posée ici et
     non sur le conteneur, pour ne pas mettre aussi en gras le lien « Guide des
     tailles » qui vit juste à côté. */
  .variant-picker__option-title {
    font-weight: var(--vp-label-weight, 700);
  }

  /* Casse du nom d'option. En capitales, un léger interlettrage évite l'effet
     compact que donnent des majuscules serrées. */
  .vp-label--uppercase .variant-picker__option-title {
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
  .vp-label--lowercase .variant-picker__option-title { text-transform: lowercase; }
  .vp-label--capitalize .variant-picker__option-title { text-transform: capitalize; }

  /* Lien "Guide des tailles" inline. Le margin-left auto absorbe l'espace
     libre de la ligne : le lien se cale au bord droit, en regard du nom
     de l'option (façon Yade). */
  .variant-picker__sg-trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    padding: 0;
    margin: 0 0 0 auto;
    color: inherit;
    font: inherit;
    cursor: pointer;
    white-space: nowrap;
  }
  .variant-picker__sg-icon {
    width: 1.1em;
    height: 1.1em;
    flex-shrink: 0;
    display: block;
  }
  .variant-picker__sg-text {
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: var(--vp-sg-weight, 700);
  }
  .variant-picker__sg-trigger:hover {
    opacity: 0.7;
  }

  /* La valeur choisie garde sa casse d'origine : « Blanc » ne doit pas devenir
     « BLANC » quand le libellé passe en capitales. */
  .variant-picker__option-selected-value {
    font-weight: 400;
    margin-left: 0;
    text-transform: none;
    letter-spacing: normal;
  }

  /* ==========================================================
     Séparateur entre le nom de l'option et la valeur choisie.

     Il est porté par la valeur elle-même : quand aucune variante n'est
     présélectionnée, le span est vide et le séparateur disparaît avec lui —
     pas de « COULEUR : » ni de barre orpheline en attente de choix.
     ========================================================== */
  .vp-sep--none .variant-picker__option-selected-value {
    margin-left: 0.4em;
  }

  .vp-sep--colon .variant-picker__option-selected-value::before {
    content: ':';
    margin: 0 0.4em 0 0.1em;
    opacity: 0.65;
  }

  /* Filet vertical fin, légèrement plus haut que la capitale, dans la couleur
     du texte atténuée — un repère qui structure sans peser. */
  .vp-sep--bar .variant-picker__option-selected-value::before {
    content: '';
    display: inline-block;
    width: 1px;
    height: 1.15em;
    background: currentColor;
    opacity: 0.28;
    margin: 0 var(--vp-sep-gap, 8px);
    vertical-align: -0.18em;
  }

  /* En capitales, l'interlettrage ajoute son espacement après la dernière
     lettre du libellé. On le retire à gauche du filet pour que les deux côtés
     restent visuellement identiques. */
  .vp-label--uppercase.vp-sep--bar .variant-picker__option-selected-value::before {
    margin-left: calc(var(--vp-sep-gap, 8px) - 0.05em);
  }

  .variant-picker__option-selected-value:empty::before {
    display: none;
  }

  .variant-picker__option-values {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap-sm);
  }

  .variant-picker__option-values > * {
    display: flex;
    flex-wrap: wrap;
    overflow: visible;
  }

  /* ==========================================================
     Boutons de valeurs en rectangles (façon grille de tailles).

     Le modificateur --buttons n'est posé sur le conteneur que
     lorsque les valeurs sont rendues en boutons texte : les
     pastilles de couleur gardent toujours leur style d'origine.
     ========================================================== */
  .vp-rect .variant-picker__option-values--buttons .variant-picker__option-value input + label {
    min-height: var(--vp-rect-height, 52px);
    min-width: var(--vp-rect-minw, 72px);
    border-radius: var(--vp-rect-radius, 10px);
    border-width: var(--vp-rect-border, 1px);
  }

  /* Bouton sélectionné : bordure plus marquée, comme l'encadré d'offre
     sélectionné plus bas dans la page. Le léger écart d'épaisseur est
     absorbé par le centrage flex : pas de saut de mise en page. */
  .vp-rect .variant-picker__option-values--buttons .variant-picker__option-value input:checked + label {
    border-width: var(--vp-rect-border-sel, 2px);
  }

  /* Desktop : les boutons se partagent la ligne à parts égales.
     flex-basis auto (et non 0) pour qu'ils continuent de passer à
     la ligne proprement quand les valeurs sont nombreuses. */
  @media screen and (min-width: 750px) {
    .vp-rect--desktop-fill .variant-picker__option-values--buttons > .variant-picker__option-value {
      flex: 1 1 auto;
    }
    .vp-rect--desktop-fill .variant-picker__option-values--buttons .variant-picker__option-value input + label {
      width: 100%;
      max-width: none;
    }
  }

  /* Mobile : grille pleine largeur en colonnes égales. Les valeurs
     excédentaires passent à la ligne (5 tailles -> 4 + 1, comme sur
     les grilles de tailles premium). */
  @media screen and (max-width: 749px) {
    .vp-rect--mobile-grid .variant-picker__option-values--buttons {
      display: grid;
      grid-template-columns: repeat(var(--vp-rect-cols, 4), minmax(0, 1fr));
    }
    .vp-rect--mobile-grid .variant-picker__option-values--buttons .variant-picker__option-value input + label {
      width: 100%;
      max-width: none;
      min-width: 0;
      /* Padding horizontal réduit : 4 colonnes sur petit écran,
         le libellé reste centré sans faire déborder la cellule. */
      padding-inline: 8px;
    }
  }
/* END_BLOCK:_product-variant-picker */

/* START_BLOCK:_quantity-breaks-item (INDEX:139) */
.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;
    }
  }
/* END_BLOCK:_quantity-breaks-item */

/* START_BLOCK:_quantity-breaks (INDEX:140) */
.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:142) */
.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%;
    border-radius: var(--slide-radius, 0);
  }

  /* Bat le border-radius par défaut de la carte du thème */
  .slide.card {
    border-radius: var(--slide-radius, 0);
  }
/* END_BLOCK:_slide */

/* START_BLOCK:_social-icon (INDEX:143) */
.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:144) */
.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:145) */
.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:146) */
.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:147) */
.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:148) */
.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);
  }

  /* Jamais de filet sous le DERNIER accordéon — même quand un nœud
     technique (wrapper d'éditeur, bloc d'app, script) se glisse après
     lui dans le DOM et casse le :not(:last-child) ci-dessus. */
  .accordions--dividers .accordion-block:last-of-type .accordion {
    border-bottom: 0;
  }

  .accordions--dividers .accordion .details-content {
    padding-block-end: var(--padding-sm);
  }

  .accordions--caret .accordion__icons-add,
  .accordions--add .icon--keyboard_arrow_down {
    display: none;
  }

  .accordions--padding-medium .accordion__header {
    padding: var(--padding-sm) 0;
  }

  .accordions--padding-large .accordion__header {
    padding: var(--padding-md) 0;
  }

  /* ==========================================================
     Mode « FAQ » — rendu de la référence :
     titre centré, filets gris clair encadrant la liste (au-dessus de la
     première question et sous la dernière), lignes aérées, question en
     semi-bold, réponse atténuée. Tout est optionnel et réglable ; le mode
     désactivé laisse les accordéons du thème strictement inchangés.
     ========================================================== */
  .accordions__title {
    /* width: 100% indispensable : dans les conteneurs flex du thème
       (custom-section, group), un bloc se réduit à la largeur de son
       contenu et le text-align: center n'a plus d'effet. */
    width: 100%;
    margin: 0 0 var(--acc-title-mb, 28px);
    text-align: center;
    font-size: var(--acc-title-size-m, 26px) !important;
    /* La référence est en ~600 : le 700 d'origine rendait le titre
       plus lourd que le modèle. Réglable dans l'éditeur. */
    font-weight: var(--acc-title-weight, 600);
    letter-spacing: -0.02em;
    line-height: 1.15;
  }

  /* Filet au-dessus de la liste uniquement : le dernier accordéon ne
     porte JAMAIS de trait en dessous (ni divider, ni cadre). */
  .accordions--framed {
    border-top: var(--separator-border-width) solid var(--acc-sep, #e6e6e6);
  }

  /* Largeur contenue : la liste (et ses filets) est centrée sur une
     largeur max, comme la référence — elle ne court plus bord à bord.
     Les marges auto priment sur l'align-items du conteneur flex parent
     (custom-section), le centrage est donc garanti. */
  .accordions--narrow {
    max-width: var(--acc-maxw, 950px);
    margin-inline: auto;
  }

  .accordions--faqstyle.accordions--dividers .accordion-block:not(:last-child) .accordion {
    border-bottom-color: var(--acc-sep, #e6e6e6);
  }

  .accordions--faqstyle .accordion__header {
    padding: var(--acc-row-pad, 26px) 0;
  }

  /* La question : sélecteur limité aux balises de titre rendues par le
     snippet — jamais « * », qui redimensionnerait le chevron (icône de
     police). Le !important bat les tailles globales des styles du thème. */
  .accordions--faqstyle .accordion__header :is(h1, h2, h3, h4, h5, h6, p) {
    font-size: var(--acc-q-size-m, 17px) !important;
    font-weight: var(--acc-q-weight, 500);
    line-height: 1.45;
  }

  /* Chevron : chez la référence il est discret — taille contenue et
     légèrement atténué. Ciblé via .icon (icône de police du thème),
     jamais via « * » qui toucherait aussi le texte. */
  .accordions--faqstyle .accordion .icon {
    font-size: var(--acc-chevron, 22px) !important;
    opacity: var(--acc-chevron-opacity, 0.85);
    flex-shrink: 0;
  }

  .accordions--faqstyle .details-content,
  .accordions--faqstyle .details-content p {
    font-size: var(--acc-a-size-m, 15px) !important;
    line-height: 1.6;
    opacity: var(--acc-a-opacity, 0.75);
  }

  .accordions--faqstyle .details-content {
    padding-block-end: calc(var(--acc-row-pad, 26px) * 0.9);
  }

  @media (width > 750px) {
    .accordions__title {
      font-size: var(--acc-title-size-d, 34px) !important;
    }

    .accordions--faqstyle .accordion__header :is(h1, h2, h3, h4, h5, h6, p) {
      font-size: var(--acc-q-size-d, 18px) !important;
    }

    .accordions--faqstyle .details-content,
    .accordions--faqstyle .details-content p {
      font-size: var(--acc-a-size-d, 16px) !important;
    }
  }
/* END_BLOCK:accordions */

/* START_BLOCK:arguments-produit-icones (INDEX:150) */
.argi {
    display: grid;
    grid-template-columns: repeat(var(--argi-cols-m, 1), minmax(0, 1fr));
    row-gap: var(--argi-rgap, 20px);
    column-gap: var(--argi-cgap, 24px);
    margin-top: var(--margin-top, 0);
    margin-bottom: var(--margin-bottom, 0);
  }

  .argi__item {
    display: flex;
    align-items: center;
    gap: var(--argi-igap, 14px);
    min-width: 0;
  }

  .argi__icon {
    flex: 0 0 auto;
    display: inline-flex;
    color: var(--argi-icon-color, #111);
  }
  .argi__icon svg {
    width: var(--argi-icon-size-m, 32px);
    height: var(--argi-icon-size-m, 32px);
    stroke-width: var(--argi-stroke, 1.25);
    display: block;
  }

  /* Icône téléversée : « contain » pour ne jamais la déformer, quel que
     soit le format du fichier fourni. */
  .argi__icon--img img {
    width: var(--argi-icon-size-m, 32px);
    height: var(--argi-icon-size-m, 32px);
    max-width: none;
    object-fit: contain;
    display: block;
  }

  .argi__text {
    margin: 0;
    font-size: var(--argi-fs-m, 14px);
    font-weight: var(--argi-fw, 400);
    line-height: 1.4;
    color: inherit;
  }

  /* Valeurs ordinateur redéclarées au point d'usage — jamais en réassignant
     une variable posée en attribut style, l'inline l'emporterait. */
  @media (width > 750px) {
    .argi { grid-template-columns: repeat(var(--argi-cols-d, 2), minmax(0, 1fr)); }
    .argi__text { font-size: var(--argi-fs-d, 15px); }
    .argi__icon svg,
    .argi__icon--img img {
      width: var(--argi-icon-size-d, 40px);
      height: var(--argi-icon-size-d, 40px);
    }
  }

  /* ==========================================================
     Variante « Bandeau » : une carte douce arrondie, les arguments
     côte à côte séparés par des filets verticaux, chaque icône dans
     une pastille ronde filetée. Sur mobile, l'icône passe au-dessus
     du texte : trois colonnes restent lisibles sur 375 px.
     ========================================================== */
  .argi--bandeau {
    display: flex;
    align-items: stretch;
    background: var(--argi-bandeau-bg, #F7F6F3);
    border-radius: 16px;
    padding: 10px 4px;
    row-gap: 0;
    column-gap: 0;
  }

  .argi--bandeau .argi__item {
    flex: 1 1 0;
    min-width: 0;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
    gap: 8px;
    padding: 2px 8px;
  }

  .argi--bandeau .argi__item + .argi__item {
    border-left: 1px solid rgba(72, 41, 34, 0.12);
  }

  .argi--bandeau .argi__icon {
    align-items: center;
    justify-content: center;
    width: calc(var(--argi-icon-size-m, 32px) + 14px);
    height: calc(var(--argi-icon-size-m, 32px) + 14px);
    border-radius: 50%;
    background: #ffffff;
    border: 1px solid rgba(72, 41, 34, 0.14);
  }

  .argi--bandeau .argi__text {
    line-height: 1.35;
  }

  @media (width > 750px) {
    .argi--bandeau {
      padding: 12px 6px;
    }

    /* Ordinateur : retour à la rangée icône + texte de la référence,
       texte calé à gauche sur deux lignes. */
    .argi--bandeau .argi__item {
      flex-direction: row;
      align-items: center;
      text-align: left;
      gap: 10px;
      padding: 2px 14px;
    }

    .argi--bandeau .argi__icon {
      width: calc(var(--argi-icon-size-d, 40px) + 14px);
      height: calc(var(--argi-icon-size-d, 40px) + 14px);
    }
  }
/* END_BLOCK:arguments-produit-icones */

/* START_BLOCK:badges (INDEX:152) */
.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:153) */
.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:bj-achat (INDEX:154) */
/* Fiche Boojour (repérée par son bloc prix) : largeur contenue et en-tête
     compact pour que l'offre et le bouton arrivent plus vite à l'écran. */
  .product-section:has(.bjpx) .product-section__product-info {
    gap: 8px;
  }

  .product-section:has(.bjpx) .product-section__product-info > .text-block.h1 h1 {
    font-size: 22px;
    line-height: 1.12;
  }

  .product-section:has(.bjpx) .product-section__product-info > .text-block.paragraph p {
    margin: 0;
    line-height: 1.4;
    opacity: 0.8;
  }

  .product-section:has(.bjpx) .bja--stock {
    margin: 4px 0 6px;
    padding: 9px 12px;
  }

  @media (width > 750px) {
    .product-section:has(.bjpx) .product-section__content {
      max-width: 1240px;
    }

    .product-section:has(.bjpx) .product-section__product-info > .text-block.h1 h1 {
      font-size: 28px;
    }
  }

  /* Mobile : pas de flèches sur l'image, le balayage et les points suffisent. */
  @media (width <= 750px) {
    .product-section:has(.bjpx) .product-media-gallery-main-slider > .splide__arrows {
      display: none;
    }
  }

  /* Tablette (750 à 989 px) : pas de colonne de miniatures, l'image prend
     toute la largeur de sa colonne ; les points et les flèches suffisent. */
  @media (750px < width < 990px) {
    .product-section:has(.bjpx) .product-media-gallery__thumbnails {
      display: none;
    }

    .product-section:has(.bjpx) .product-media-gallery-main-slider {
      width: 100%;
      max-width: 100%;
      flex: 1 1 100%;
    }
  }

  /* Galerie de la fiche Boojour : une image carrée, miniatures à gauche,
     flèches rondes toujours visibles au milieu de l'image (desktop). */
  @media (width > 750px) {
    .product-section .product-media-gallery-main-slider > .splide__arrows > .splide__arrow {
      width: 48px;
      height: 48px;
      border: 1px solid #010c27;
      border-radius: 50%;
      background: rgb(255 255 255 / 0.6);
      color: #010c27;
      opacity: 1;
    }

    .product-section .product-media-gallery-main-slider > .splide__arrows > .splide__arrow:hover {
      background: #ffffff;
    }

    .product-section .product-media-gallery-main-slider > .splide__arrows > .splide__arrow:disabled {
      opacity: 0;
      pointer-events: none;
    }

    .product-section .product-media-gallery-main-slider > .splide__arrows > .splide__arrow--next {
      right: 20px;
    }

    .product-section .product-media-gallery-main-slider > .splide__arrows > .splide__arrow--prev {
      left: 20px;
    }
  }

  /* Badge de la galerie produit : même dessin que les badges des cartes de l'accueil. */
  .pmg-kat .product-badges .badge,
  .product-media-gallery .product-badges .badge,
  .product-media-gallery .product-media-gallery__custom-badge {
    padding: 4px 8px;
    border: 1px solid #010c27;
    border-radius: 4px;
    background: #ffffff;
    color: #010c27;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.2;
  }

  .pmg-kat .product-badges--top-right,
  .product-media-gallery .product-badges--top-right {
    left: 12px;
    right: auto;
  }

  /* Mobile : étiquettes de la galerie un cran plus petites, pour laisser
     plus de place à la photo. */
  @media (width <= 750px) {
    .pmg-kat .product-badges .badge,
    .product-media-gallery .product-badges .badge,
    .product-media-gallery .product-media-gallery__custom-badge {
      padding: 3px 6px;
      font-size: 10px;
    }

    .pmg-kat .product-badges--top-right,
    .product-media-gallery .product-badges--top-right {
      top: 10px;
      left: 10px;
      gap: 4px;
    }
  }

  .bja {
    margin-top: var(--bja-mt, 0);
    margin-bottom: var(--bja-mb, 0);
    padding: 14px 16px;
    border-radius: 6px;
    background: var(--bja-bg, #e9f2ec);
    color: var(--bja-text, #010c27);
  }

  .bja__tete {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .bja .bja__statut {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--bja-accent, #2e7d4f);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
  }

  .bja__point {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
  }

  .bja--indisponible {
    background: #f1eee9;
  }

  .bja--indisponible .bja__statut {
    color: #6b7280;
  }

  .bja__info {
    display: inline-flex;
    padding: 8px;
    margin: -8px;
    border: 0;
    background: none;
    color: inherit;
    cursor: pointer;
    opacity: 0.6;
  }

  .bja__info svg {
    width: 18px;
    height: 18px;
  }

  .bja__info:hover {
    opacity: 1;
  }

  .bja .bja__ligne {
    margin: 3px 0 0;
    color: inherit;
    font-size: 13.5px;
    line-height: 1.35;
  }

  .bja .bja__ligne strong {
    font-weight: 700;
  }

  /* Popup : plein écran bas sur mobile, fenêtre centrée sur desktop */
  .bja-popup {
    width: 100%;
    max-width: 100%;
    max-height: 88vh;
    margin: auto 0 0;
    padding: 0;
    border: 0;
    border-radius: 12px 12px 0 0;
    background: #ffffff;
    color: #010c27;
    overflow: auto;
  }

  .bja-popup::backdrop {
    background: rgb(1 12 39 / 55%);
  }

  .bja-popup__tete {
    position: sticky;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    border-bottom: 1px solid #e4dfd8;
    background: #ffffff;
  }

  .bja-popup .bja-popup__titre {
    margin: 0;
    color: inherit;
    font-size: 22px;
    line-height: 1.1;
    text-transform: uppercase;
  }

  .bja-popup__fermer {
    display: inline-flex;
    padding: 8px;
    margin: -8px;
    border: 0;
    background: none;
    color: inherit;
    cursor: pointer;
  }

  .bja-popup__corps {
    padding: 20px;
  }

  .bja-popup__intro {
    margin-bottom: 20px;
    padding: 20px;
    border-radius: 6px;
    background: #010c27;
    color: #f8f6f4;
  }

  .bja-popup .bja-popup__intro p {
    margin: 0;
    color: inherit;
    font-size: 15px;
    line-height: 1.5;
  }

  .bja-popup .bja-popup__intro .bja-popup__date {
    margin-top: 10px;
  }

  .bja-popup__form {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 16px;
  }

  .bja-popup__champ {
    flex: 1 1 180px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 320px;
    min-height: 56px;
    padding: 6px 16px;
    border-radius: 4px;
    background: #ffffff;
    color: #010c27;
    cursor: text;
  }

  .bja-popup__champ span {
    font-size: 12px;
    line-height: 1.2;
    opacity: 0.75;
  }

  .bja-popup__champ input {
    width: 100%;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 16px;
  }

  .bja-popup__champ:focus-within {
    outline: 2px solid #f1eee9;
    outline-offset: 2px;
  }

  .bja-popup__estimer {
    min-height: 56px;
    padding: 0 32px;
    border: 0;
    border-radius: 4px;
    background: #f1e2cd;
    color: #010c27;
    font: inherit;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
  }

  .bja-popup .bja-popup__intro .bja-popup__resultat {
    margin-top: 14px;
    font-size: 16px;
  }

  .bja-popup .bja-popup__intro .bja-popup__resultat:empty {
    display: none;
  }

  .bja-popup__options {
    display: grid;
    gap: 12px;
  }

  .bja-popup__option {
    padding: 18px 20px;
    border-radius: 6px;
    background: #f8f6f4;
  }

  .bja-popup .bja-popup__option-titre {
    margin: 0 0 4px;
    color: inherit;
    font-size: 17px;
    font-weight: 700;
  }

  .bja-popup .bja-popup__option-prix {
    margin: 0 0 10px;
    color: #8a5a2b;
    font-size: 15px;
    font-weight: 700;
  }

  .bja-popup__option ul {
    margin: 0;
    padding-left: 18px;
    font-size: 14px;
    line-height: 1.7;
  }

  .bja-popup .bja-popup__lien {
    display: inline-block;
    margin-top: 20px;
    color: inherit;
    font-size: 15px;
    font-weight: 700;
    text-underline-offset: 4px;
  }

  @media (min-width: 750px) {
    .bja-popup {
      width: min(880px, calc(100% - 48px));
      margin: auto;
      border-radius: 8px;
    }

    .bja-popup__tete {
      padding: 22px 28px;
    }

    .bja-popup .bja-popup__titre {
      font-size: 26px;
    }

    .bja-popup__corps {
      padding: 28px;
    }

    .bja-popup__options {
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 20px;
    }
  }
/* END_BLOCK:bj-achat */

/* START_BLOCK:bj-avis-resume (INDEX:155) */
.bjar {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 6px 20px;
    width: 100%;
    margin: var(--bjar-mt, 8px) 0 var(--bjar-mb, 8px);
    padding: 14px 16px;
    border: 0;
    border-radius: 8px;
    background: var(--bjar-bg, #f8f6f4);
    color: var(--bjar-text, #010c27);
    font: inherit;
    text-align: left;
    cursor: pointer;
  }

  .bjar__note {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .bjar__chiffre {
    font-family: var(--font-heading--family, inherit);
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
  }

  .bjar__chiffre small {
    font-size: 15px;
    font-weight: 500;
    opacity: 0.6;
  }

  .bjar__etoiles {
    width: fit-content;
    background: linear-gradient(90deg, var(--bjar-star, #5bb482) var(--bjar-pct, 100%), #d9d4cc var(--bjar-pct, 100%));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-size: 15px;
    letter-spacing: 1px;
    line-height: 1.2;
  }

  .bjar__total {
    font-size: 13px;
  }

  .bjar__barres {
    display: grid;
    gap: 3px;
  }

  .bjar__rang {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) 28px;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    line-height: 1;
  }

  .bjar__rang-nb {
    text-align: right;
    opacity: 0.7;
  }

  .bjar__piste {
    height: 5px;
    border-radius: 3px;
    background: #e4dfd8;
    overflow: hidden;
  }

  .bjar__jauge {
    display: block;
    height: 100%;
    border-radius: 3px;
    background: var(--bjar-star, #5bb482);
  }

  .bjar__lien {
    grid-column: 1 / -1;
    font-size: 13px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
  }
/* END_BLOCK:bj-avis-resume */

/* START_BLOCK:bj-chiffres-cles (INDEX:156) */
.bjc {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
    gap: 8px;
    margin: var(--bjc-mt, 12px) 0 var(--bjc-mb, 12px);
    padding: 0;
    list-style: none;
    color: var(--bjc-text, #010c27);
  }

  .bjc__item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 12px;
    border-radius: 6px;
    background: var(--bjc-bg, #f8f6f4);
  }

  .bjc__valeur {
    font-size: 16px;
    font-weight: 800;
    line-height: 1.15;
  }

  .bjc__libelle {
    font-size: 12px;
    line-height: 1.25;
    opacity: 0.75;
  }
/* END_BLOCK:bj-chiffres-cles */

/* START_BLOCK:bj-offre-livraison (INDEX:157) */
/* Bandeau fin sous le header : une ligne, fond clair, filet en bas.
     Desktop : « Livraison offerte · Valable jusqu'à demain minuit » au centre
     et le minuteur à côté. Mobile : titre à gauche, minuteur à droite. */
  .bjo {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px 28px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--bjo-border, #e4dfd8);
    background: var(--bjo-bg, #f8f6f4);
    color: var(--bjo-text, #010c27);
  }

  .bjo[hidden] {
    display: none;
  }

  .bjo__haut {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
  }

  .bjo__icone {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
  }

  .bjo__textes {
    display: flex;
    align-items: baseline;
    gap: 10px;
    min-width: 0;
  }

  .bjo .bjo__surtitre,
  .bjo .bjo__texte-long,
  .bjo__long {
    display: none;
  }

  .bjo .bjo__titre {
    margin: 0;
    color: inherit;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
  }

  .bjo .bjo__texte {
    margin: 0;
    color: var(--bjo-muted, #676d7d);
    font-size: 13.5px;
    line-height: 1.2;
  }

  .bjo [hidden] {
    display: none;
  }

  .bjo__bas {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .bjo__etiquette {
    color: var(--bjo-muted, #676d7d);
    font-size: 13px;
    white-space: nowrap;
  }

  .bjo__etiquette-court {
    display: none;
  }

  .bjo__compte {
    padding: 4px 10px;
    border-radius: 4px;
    background: var(--bjo-pill-bg, #010c27);
    color: var(--bjo-pill-text, #f8f6f4);
    font-size: 13.5px;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    letter-spacing: 0.02em;
    white-space: nowrap;
  }

  .bjo__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .bjo-vide {
    margin: 8px 16px;
    padding: 10px 12px;
    border: 1px dashed #9aa0ab;
    border-radius: 6px;
    color: #676d7d;
    font-size: 13px;
  }

  @media (max-width: 749px) {
    .bjo {
      justify-content: space-between;
      padding: 9px 14px;
    }

    .bjo .bjo__texte {
      display: none;
    }

    /* Libellé court sur mobile pour que le titre tienne sur une ligne. */
    .bjo__etiquette-long {
      display: none;
    }

    .bjo__etiquette-court {
      display: inline;
    }
  }

  @media (max-width: 350px) {
    .bjo__etiquette {
      display: none;
    }
  }
/* END_BLOCK:bj-offre-livraison */

/* START_BLOCK:bj-points-forts (INDEX:158) */
.bjpf {
    display: grid;
    gap: 6px;
    margin: var(--bjpf-mt, 4px) 0 var(--bjpf-mb, 4px);
    padding: 0;
    list-style: none;
    color: var(--bjpf-text, #010c27);
    font-size: 14px;
    line-height: 1.35;
  }

  .bjpf__ligne {
    display: flex;
    align-items: flex-start;
    gap: 8px;
  }

  .bjpf__icone {
    flex: 0 0 auto;
    margin-top: 1px;
    color: var(--bjpf-icon, #2f7d54);
  }
/* END_BLOCK:bj-points-forts */

/* START_BLOCK:bj-prix (INDEX:159) */
.bjpx {
    margin: var(--bjpx-mt, 8px) 0 var(--bjpx-mb, 8px);
    color: var(--bjpx-text, #010c27);
    font-family: var(--font-heading--family, inherit);
  }

  .bjpx .bjpx__ligne {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 8px;
    margin: 0;
    color: inherit;
    font-family: inherit;
    font-size: var(--bjpx-size-m, 22px);
    font-weight: 500;
    line-height: 1.15;
  }

  .bjpx__prix {
    font-weight: 700;
    white-space: nowrap;
  }

  .bjpx__prix--promo,
  .bjpx .bjpx__eco {
    color: var(--bjpx-promo, #c4504f);
  }

  .bjpx__barre {
    font-size: 0.82em;
    opacity: 0.55;
    white-space: nowrap;
  }

  .bjpx__badge {
    align-self: center;
    padding: 3px 7px;
    border-radius: 4px;
    background: var(--bjpx-promo, #c4504f);
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
  }

  .bjpx .bjpx__eco {
    margin-left: 2px;
    font-size: 14px;
    line-height: 1.3;
    white-space: nowrap;
  }

  .bjpx .bjpx__eco strong {
    font-weight: 700;
  }

  .bjpx .bjpx__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 10px 0 0;
  }

  .bjpx__tag {
    padding: 4px 8px;
    border: 1px solid currentColor;
    border-radius: 4px;
    background: #ffffff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
  }

  .bjpx__tag--plein {
    border-color: #010c27;
    background: #010c27;
    color: #ffffff;
  }

  .bjpx [hidden] {
    display: none;
  }

  @media (min-width: 750px) {
    .bjpx .bjpx__ligne {
      font-size: var(--bjpx-size-d, 24px);
    }
  }
/* END_BLOCK:bj-prix */

/* START_BLOCK:bj-reassurance (INDEX:160) */
.bjr {
    margin: var(--bjr-mt, 12px) 0 var(--bjr-mb, 12px);
    padding: 0;
    list-style: none;
    color: var(--bjr-text, #010c27);
  }

  .bjr__ligne {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 4px 0;
    border-bottom: 1px solid var(--bjr-line, #e4dfd8);
    font-size: 14px;
    line-height: 1.35;
  }

  .bjr__ligne:last-child {
    border-bottom: 0;
  }

  .bjr__icone {
    flex: 0 0 auto;
    display: inline-flex;
  }

  .bjr__texte {
    flex: 1 1 auto;
    padding: 10px 0;
  }

  .bjr__texte--bouton {
    text-align: left;
  }

  .bjr__libelle {
    display: block;
  }

  .bjr__sous {
    display: block;
    margin-top: 2px;
    font-size: 12.5px;
    font-weight: 400;
    opacity: 0.62;
  }

  .bjr__texte--bouton {
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
  }

  .bjr__chevron {
    flex: 0 0 auto;
    opacity: 0.5;
    pointer-events: none;
  }

  .bja-popup--court {
    max-width: 560px;
  }

  .bjr__detail,
  .bjr__detail p {
    margin: 0 0 12px;
    font-size: 15px;
    line-height: 1.6;
  }

  .bjr__detail p:last-child {
    margin-bottom: 0;
  }

  .bjr__detail a {
    color: inherit;
  }

  @media (min-width: 750px) {
    .bja-popup.bja-popup--court {
      width: min(560px, calc(100% - 48px));
    }
  }
/* END_BLOCK:bj-reassurance */

/* START_BLOCK:bj-tag (INDEX:161) */
.bjtag {
    display: inline-block;
    padding: 3px 8px;
    border: 1.5px solid #010c27;
    border-radius: 5px;
    background: #ffffff;
    color: #010c27;
    font-family: var(--font-heading--family, inherit);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
  }
/* END_BLOCK:bj-tag */

/* START_BLOCK:button (INDEX:162) */
.button-block {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .button-block--full-width {
    width: 100%;
  }

  scroll-to-target-button {
    display: contents;
  }
/* END_BLOCK:button */

/* START_BLOCK:cart-confiance (INDEX:163) */
.cconf {
    margin-top: var(--cconf-mt, 10px);
    margin-bottom: var(--cconf-mb, 2px);
    display: grid;
    gap: 3px;
    text-align: center;
    color: #010c27;
  }

  .cconf__garanties {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.4;
    opacity: 0.82;
  }

  .cconf__cadenas {
    display: inline-block;
    vertical-align: -2px;
    margin-right: 3px;
  }

  .cconf__versements {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
  }

  .cconf__note {
    font-weight: 400;
    opacity: 0.6;
  }
/* END_BLOCK:cart-confiance */

/* START_BLOCK:cart-cross-sell (INDEX:164) */
/* Bloc posé dans la zone blanche du tiroir, sous les articles. Le
     padding bas décolle les boutons de l'accordéon livraison. */
  .ccs {
    margin-top: var(--ccs-mt, 8px);
    margin-bottom: var(--ccs-mb, 8px);
    padding-top: 16px;
    padding-bottom: 14px;
    border-top: 1px solid var(--cart-sep-color, #ececec);
  }

  .ccs__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
  }

  .ccs__heading {
    margin: 0;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.2;
    opacity: 0.75;
  }

  .ccs__pill {
    padding: 3px 9px;
    border-radius: 999px;
    background: var(--cart-title-bg, #f5f5f5);
    font-size: 11px;
    line-height: 1.4;
    white-space: nowrap;
  }

  /* Colonnes à largeur plafonnée (auto-fill) : les cartes restent
     compactes quel que soit leur nombre. À la largeur du tiroir, trois
     tiennent de front ; deux produits laissent une colonne vide au
     lieu de gonfler ; au-delà de trois, passage à la ligne. */
  .ccs__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 12px;
  }

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

  .ccs__media {
    display: block;
    line-height: 0;
  }

  /* Cadrage plein façon Ysé : la photo PORTÉE (2e média) remplit un
     cadre 4:5 en cover. Les photos portées sont en 5:7, le recadrage
     est marginal ; les packshots de secours restent acceptables. */
  .ccs__media img {
    width: 100%;
    aspect-ratio: 4 / 5;
    height: auto;
    object-fit: cover;
    background: #f5f5f5;
    border-radius: 8px;
    display: block;
  }

  .ccs__name {
    font-weight: 500;
    font-size: 13px;
    line-height: 1.25;
    text-decoration: none;
    color: inherit;
  }

  /* Menu de taille : la valeur choisie reste lisible en toutes lettres. */
  .ccs__select {
    position: relative;
    display: flex;
    align-items: center;
    gap: 5px;
    min-height: 34px;
    padding: 0 30px 0 10px;
    border: 1px solid #e2d9d4;
    border-color: color-mix(in srgb, var(--color-foreground) 22%, transparent);
    border-radius: 8px;
  }

  .ccs__select-label {
    font-size: 12px;
    opacity: 0.65;
    white-space: nowrap;
  }

  .ccs__select select {
    flex: 1;
    min-width: 0;
    appearance: none;
    -webkit-appearance: none;
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 12px;
    font-weight: 600;
    padding: 0;
    cursor: pointer;
  }

  .ccs__select select:focus-visible {
    outline: 2px solid var(--color-foreground);
    outline-offset: 2px;
  }

  .ccs__chevron {
    position: absolute;
    right: 10px;
    pointer-events: none;
    opacity: 0.6;
  }

  /* Bouton secondaire assumé : il ne doit pas rivaliser avec
     « Finaliser ma commande » juste en dessous. */
  .ccs__add {
    margin-top: auto;
    width: 100%;
    min-height: 38px;
    padding: 0 10px;
    border: 0;
    border-radius: 8px;
    background: var(--cart-title-bg, #f5f5f5);
    color: rgb(var(--color-foreground));
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
  }

  .ccs__add:hover {
    background: var(--color-primary-button-background, #010C27);
    color: var(--color-primary-button-text, #ffffff);
  }

  .ccs__add.is-loading {
    opacity: 0.5;
    pointer-events: none;
  }
/* END_BLOCK:cart-cross-sell */

/* START_BLOCK:cart-delivery (INDEX:165) */
.cdel {
    display: flex;
    flex-direction: column;
    align-items: var(--cdel-align, center);
    gap: 5px;
    background: var(--cdel-bg, #f4f7f5);
    color: var(--cdel-color, #111);
    padding: var(--cdel-pad-y, 12px) var(--cdel-pad-x, 16px);
    border-radius: var(--cdel-radius, 10px);
    margin-top: var(--cdel-mt, 10px);
    margin-bottom: var(--cdel-mb, 0);
    text-align: center;
  }

  .cdel__line {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: var(--cdel-size-m, 13px);
    line-height: 1.4;
  }

  .cdel__dot-wrap {
    position: relative;
    flex: 0 0 auto;
    width: var(--cdel-dot-size, 10px);
    height: var(--cdel-dot-size, 10px);
  }

  .cdel__dot {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: var(--cdel-dot, #22a45d);
  }

  .cdel__text strong,
  .cdel__text [data-ref="cdel-date"] {
    font-weight: 700;
  }

  .cdel__suffix {
    white-space: nowrap;
  }

  /* Deuxième ligne : plus petite et atténuée — une note, pas un message. */
  .cdel__note {
    margin: 0;
    font-size: calc(var(--cdel-size-m, 13px) * 0.92);
    line-height: 1.45;
    opacity: 0.65;
  }

  /* Onde douce sur la pastille, comme le composant stock de la page produit. */
  @keyframes cdel-wave {
    0% { transform: scale(1); opacity: 0.4; }
    70%, 100% { transform: scale(2.1); opacity: 0; }
  }

  @media (prefers-reduced-motion: no-preference) {
    .cdel--animated .cdel__dot-wrap::after {
      content: '';
      position: absolute;
      inset: 0;
      border-radius: 50%;
      background: var(--cdel-dot, #22a45d);
      opacity: 0;
      pointer-events: none;
      animation: cdel-wave 2.6s cubic-bezier(0, 0, 0.2, 1) infinite;
    }
  }

  @media (width > 750px) {
    .cdel__line {
      font-size: var(--cdel-size-d, 14px);
    }

    .cdel__note {
      font-size: calc(var(--cdel-size-d, 14px) * 0.92);
    }
  }
/* END_BLOCK:cart-delivery */

/* START_BLOCK:cart-progress-ring (INDEX:166) */
.cpring {
    display: flex;
    align-items: center;
    gap: var(--cpring-gap, 12px);
    padding-top: var(--cpring-pad, 14px);
    padding-bottom: var(--cpring-pad, 14px);
    color: var(--cpring-text, #482922);
  }

  /* Les filets courent d'un bord à l'autre du panier : on annule le
     padding latéral du tiroir par des marges négatives, puis on le
     rend au contenu. */
  .cpring--full {
    width: calc(100% + (2 * var(--padding-md)));
    margin-inline: calc(-1 * var(--padding-md));
    padding-inline: var(--padding-md);
  }

  .cpring--sep-top {
    border-top: 1px solid var(--cpring-sep, #ececec);
  }

  .cpring--sep-bottom {
    border-bottom: 1px solid var(--cpring-sep, #ececec);
  }

  .cpring__ring {
    flex-shrink: 0;
    width: var(--cpring-size, 26px);
    height: var(--cpring-size, 26px);
    line-height: 0;
  }

  .cpring__ring svg {
    width: 100%;
    height: 100%;
    /* Départ à midi plutôt qu'à 3 h. */
    transform: rotate(-90deg);
  }

  .cpring__track,
  .cpring__value {
    fill: none;
    stroke-width: var(--cpring-thickness, 2.5);
  }

  .cpring__track {
    stroke: var(--cpring-track, #e7dfda);
  }

  .cpring__value {
    stroke: var(--cpring-value, #482922);
    stroke-linecap: round;
    stroke-dasharray: 69.12;
    stroke-dashoffset: var(--cpring-offset, 69.12);
    transition: stroke-dashoffset 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .cpring__text {
    margin: 0;
    font-size: var(--cpring-size-text, 13px);
    line-height: 1.4;
    color: inherit;
  }

  .cpring__text strong {
    font-weight: 600;
  }
/* END_BLOCK:cart-progress-ring */

/* START_BLOCK:cart-progress (INDEX:167) */
.cpbar {
    padding-top: var(--cpbar-pad, 12px);
    padding-bottom: var(--cpbar-pad, 12px);
    color: var(--cpbar-text, #482922);
  }

  /* Les filets courent d'un bord à l'autre du tiroir : on annule le
     padding latéral par des marges négatives, puis on le rend au
     contenu. */
  .cpbar--full {
    width: calc(100% + (2 * var(--padding-md)));
    margin-inline: calc(-1 * var(--padding-md));
    padding-inline: var(--padding-md);
  }

  .cpbar--sep-top {
    border-top: 1px solid var(--cpbar-sep, #ececec);
  }

  .cpbar--sep-bottom {
    border-bottom: 1px solid var(--cpbar-sep, #ececec);
  }

  .cpbar__text {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 8px;
    font-size: var(--cpbar-size-text, 13px);
    line-height: 1.4;
    color: inherit;
  }

  .cpbar__text strong {
    font-weight: 600;
  }

  .cpbar--promo .cpbar__text {
    margin-bottom: 0;
  }

  .cpbar__check {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
  }

  .cpbar__track {
    position: relative;
    height: var(--cpbar-height, 3px);
    border-radius: 99px;
    background: var(--cpbar-track, #e7dfda);
  }

  .cpbar__fill {
    width: var(--cpbar-pct, 0%);
    height: 100%;
    border-radius: inherit;
    background: var(--cpbar-value, #482922);
    transition: width 0.45s cubic-bezier(0.4, 0, 0.2, 1);
  }

  /* Points d'étape des paliers intermédiaires : pastille sur la barre,
     remplie une fois le palier atteint. */
  .cpbar__step {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--color-background, #fff);
    border: 1.5px solid var(--cpbar-track, #e7dfda);
    box-sizing: border-box;
  }

  .cpbar__step--reached {
    background: var(--cpbar-value, #482922);
    border-color: var(--cpbar-value, #482922);
  }
/* END_BLOCK:cart-progress */

/* START_BLOCK:collection-featured (INDEX:168) */
.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);
    column-gap: var(--grid-gap-vertical);
    row-gap: var(--grid-gap-horizontal);
  }

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

/* START_BLOCK:collections-featured (INDEX:169) */
.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);
    column-gap: var(--grid-gap-vertical);
    row-gap: var(--grid-gap-horizontal);
  }

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

/* START_BLOCK:complement-capsule (INDEX:170) */
.ccap__titre {
    margin: 0 0 12px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: #482922;
  }

  .ccap__grille {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
  }

  .ccap__carte {
    display: block;
    min-width: 0;
    text-decoration: none;
    color: #482922;
  }

  .ccap__media {
    display: block;
    aspect-ratio: 5 / 7;
    background: #f5f5f5;
    border-radius: 8px;
    overflow: hidden;
  }

  .ccap__media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    background: #ffffff;
  }

  .ccap__ligne {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin-top: 8px;
  }

  .ccap__nom {
    font-family: "Playfair Display", serif;
    font-style: italic;
    font-size: 14px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .ccap__prix {
    flex: 0 0 auto;
    font-size: 12px;
  }

  .ccap__carte:hover .ccap__nom {
    text-decoration: underline;
    text-underline-offset: 3px;
  }
/* END_BLOCK:complement-capsule */

/* START_BLOCK:contact-form (INDEX:172) */
.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:173) */
.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:174) */
.cart-resa {
    display: block;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .cart-resa__inner {
    display: flex;
    align-items: center;
    gap: 6px;
    background: var(--cr-bg, #16213e);
    color: var(--cr-text, #ffffff);
    border-radius: var(--cr-radius, 10px);
    padding: var(--cr-pad-y, 10px) 16px;
    font-size: var(--cr-font, 14px);
    line-height: 1.2;
    white-space: nowrap;   /* une seule ligne, jamais de retour à la ligne */
    overflow: hidden;
  }

  .cart-resa--left .cart-resa__inner { justify-content: flex-start; }
  .cart-resa--center .cart-resa__inner { justify-content: center; }
  .cart-resa--right .cart-resa__inner { justify-content: flex-end; }

  .cart-resa__icon { line-height: 1; }

  .cart-resa__time {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
  }

  /* Sur petit écran, on réduit un peu pour rester sur une ligne */
  @media (width <= 480px) {
    .cart-resa__inner {
      font-size: 13px;
      gap: 5px;
      padding-left: 12px;
      padding-right: 12px;
    }
  }
/* END_BLOCK:countdown */

/* START_BLOCK:cross-sell (INDEX:175) */
cross-sell-component {
    display: block;
    container-type: inline-size;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
    width: 100%;
    --cross-sell-padding: 0.65rem;
  }

  shopify-visual-preview-block-list cross-sell-component.cross-sell--row[data-visual-preview-mode] {
    width: 400px;
  }

  shopify-visual-preview-block-list cross-sell-component.cross-sell--column[data-visual-preview-mode] {
    width: 200px;
  }

  .cross-sell {
    display: grid;
    grid-template-columns: auto 1fr 1fr;
    gap: var(--padding-sm);
    grid-template-areas: 'image content content';
    padding: var(--cross-sell-padding);
  }

  .cart__footer .cross-sell {
    border-radius: calc(var(--card-border-radius) - (var(--card-padding) * 0.5));
  }

  .cross-sell--column .cross-sell {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    .cross-sell__content,
    .cross-sell__actions,
    .cross-sell__heading {
      justify-content: center;
      align-items: center;
      flex-direction: column;
      text-align: center;
    }

    .cross-sell__content,
    .cross-sell__actions,
    .cross-sell__form,
    .cross-sell__form .button {
      min-width: 100%;
    }
  }

  .cross-sell--no-image {
    grid-template-areas: 'content content content';
  }

  .cross-sell__image {
    width: 100%;
    grid-area: image;
    max-width: var(--image-width);
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: calc(var(--card-border-radius) - var(--cross-sell-padding));
  }

  .cross-sell__content {
    grid-area: content;
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    gap: var(--padding-xs);
  }

  .cross-sell__heading {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--padding-xs);
    /* flex-wrap: wrap; */
  }

  .cross-sell__heading .prices {
    font-size: var(--font-body--size-small);
    justify-content: flex-end;
  }

  .cross-sell__title-and-description {
    display: flex;
    flex-direction: column;
    gap: var(--gap-xxs);
  }

  .cross-sell__title {
    line-height: normal;
    font-weight: 600;
    font-size: var(--font-body--size);
    margin: 0;
  }

  .cross-sell__description p {
    margin: 0;
    /* line-height: normal; */
    font-size: var(--font-body--size-small);
  }

  .cross-sell__actions {
    display: flex;
    gap: var(--padding-xs);
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
  }

  .cross-sell__selects {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    width: 100%;
    flex: 1;
    gap: var(--gap-xs);
  }

  .cross-sell__select-label {
    font-size: var(--font-body--size-small);
    margin-bottom: var(--padding-xs);
    line-height: normal;
  }

  .cross-sell__select {
    display: flex;
    flex-direction: column;
    width: 100%;
  }

  /* .cross-sell__select:not(.hidden):not(:last-child) {
    margin-right: var(--padding-sm);
  } */

  @container (width < 350px) {
    .cross-sell--row .cross-sell {
      gap: var(--gap-sm);
    }

    .cross-sell__actions .button:not(.button--icon-only) {
      min-width: 60px;
      padding: calc(var(--button-padding-vertical) / 2) calc(var(--button-padding-horizontal) * var(--small-multiplier) / 2);
    }

    .cross-sell--row .cross-sell__image {
      max-width: 65px;
    }
  }

  /* Ajustements pour les sliders */

  .slider-block--with-pagination:has(cross-sell-component) {
    padding-bottom: var(--margin-md);

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

    .splide__arrow {
      transform: translateY(calc(-50%));
    }
  }

  .slider-block:has(.splide__arrows):has(cross-sell-component) {
    .splide__arrow--prev {
      margin-left: -10px;
    }

    .splide__arrow--next {
      margin-right: -10px;
    }

    .splide__slide {
      padding: 0 20px;
    }
  }

  .slider-block:has(.splide__arrow.button--tertiary):has(cross-sell-component) {
    .splide__slide {
      padding: 0 35px;
    }
  }
/* END_BLOCK:cross-sell */

/* START_BLOCK:custom-code (INDEX:176) */
.custom-code-block {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }
/* END_BLOCK:custom-code */

/* START_BLOCK:custom-price (INDEX:177) */
.cprice {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  .cprice--left { justify-content: flex-start; }
  .cprice--center { justify-content: center; }
  .cprice--right { justify-content: flex-end; }

  .cprice__current {
    font-size: var(--cp-size, 26px);
    font-weight: 700;
    line-height: 1;
    color: var(--cp-current-color, inherit);
  }

  .cprice__old {
    color: var(--cp-old-color, #8a8a8a);
    opacity: 0.9;
    font-size: calc(var(--cp-size, 26px) * 0.62);
  }

  .cprice__badge {
    display: inline-flex;
    align-items: center;
    border-radius: 6px;
    padding: 4px 10px;
    font-size: calc(var(--cp-size, 26px) * 0.5);
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
  }

  .cprice__badge--percent {
    background: var(--cp-badge-bg, #1a1a1a);
    color: var(--cp-badge-text, #ffffff);
  }

  .cprice__badge--text {
    background: var(--cp-tbadge-bg, #fbf1a9);
    color: var(--cp-tbadge-text, #1a1a1a);
  }
/* END_BLOCK:custom-price */

/* START_BLOCK:delivery-estimation (INDEX:179) */
.delivery-estimation {
    display: block;
    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);
    background-color: var(--de-bg, transparent);
    color: var(--de-color, inherit);
    font-size: var(--de-font-size-mobile, 14px);
    line-height: 1.4;
    padding: var(--de-pad-y, 14px) var(--de-pad-x, 20px);
    border-radius: var(--de-radius, 8px);
    margin: 0;

    .icon {
      font-size: 18px !important;
      width: 18px !important;
      height: 18px !important;
      margin-right: var(--margin-xs);
    }
  }

  .delivery-estimation__dot {
    flex-shrink: 0;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: var(--de-dot, #7ed492);
    margin-right: var(--margin-xs);
  }

  .delivery-estimation__date {
    font-weight: 700;
  }

  @media (width > 750px) {
    .delivery-estimation__content {
      justify-content: var(--alignment);
      font-size: var(--de-font-size-desktop, 16px);
    }
  }

  /* Variante « ligne de résumé » (tiroir panier) : rangée libellé / valeur
     alignée sur la rangée Total, sans fond ni pastille. */
  .de--resume .delivery-estimation__content {
    background: none;
    padding: 0 0 4px;
  }

  .de--resume [data-ref='delivery-text'] {
    margin-right: auto;
    padding-right: 12px;
    color: #676d7d;
  }

  .de--resume .delivery-estimation__date {
    font-weight: 600;
  }

  /* Variante « ligne » (tiroir panier) : une phrase avec un camion, libellé
     discret et dates en gras. Elle ne ressemble plus à une ligne de prix. */
  .de--ligne .delivery-estimation__content {
    display: block;
    position: relative;
    padding: 0 0 4px 28px;
    background: none;
    line-height: 1.45;
  }

  .de--ligne .delivery-estimation__content::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 19px;
    height: 19px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2'/%3E%3Cpath d='M15 18H9'/%3E%3Cpath d='M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3Ccircle cx='7' cy='18' r='2'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2'/%3E%3Cpath d='M15 18H9'/%3E%3Cpath d='M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3Ccircle cx='7' cy='18' r='2'/%3E%3C/svg%3E") center / contain no-repeat;
  }

  .de--ligne [data-ref='delivery-text'],
  .de--ligne [data-ref='between-text'] {
    color: #676d7d;
  }

  .de--ligne .delivery-estimation__date {
    color: #010c27;
    font-weight: 700;
  }

  /* Rangée de résumé : même dessin que la rangée Total, statut de la livraison
     à gauche et date à droite. Si l'écran est trop étroit, la date passe dessous. */
  .de--ligne.de--rangee .delivery-estimation__content {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 2px 12px;
  }

  .de--ligne .delivery-estimation__promo {
    color: #010c27;
    font-weight: 700;
  }

  .de--ligne .delivery-estimation__quand {
    color: #676d7d;
    font-size: 13px;
    white-space: nowrap;
  }
/* END_BLOCK:delivery-estimation */

/* START_BLOCK:description-produit (INDEX:180) */
.pdesc {
    width: 100%;
    margin-top: var(--pdesc-mt, 24px);
    margin-bottom: var(--pdesc-mb, 0);
  }

  /* Valeurs par défaut mesurées sur la référence (nuite.co) :
     carte #F8F8F8 arrondie ~5px, titre serif 26px en graisse 400
     interligne 1.05, corps 13px, filets noirs 1px ENTRE les lignes. */
  .pdesc--card {
    background: var(--pdesc-card-bg, #f8f8f8);
    border-radius: var(--pdesc-card-radius, 6px);
    padding: var(--pdesc-pad-m, 16px);
  }

  .pdesc__title {
    width: 100%;
    margin: 0 0 18px;
    text-align: center;
    font-size: var(--pdesc-title-size-m, 24px) !important;
    font-weight: var(--pdesc-title-weight, 400);
    line-height: 1.1;
    letter-spacing: -0.01em;
  }

  /* Option « serif » du titre, façon référence NUITÉ (Fraunces). La pile
     générique retombe sur la serif système : rien à charger en plus. */
  .pdesc--serif-title .pdesc__title {
    font-family: Georgia, 'Times New Roman', serif;
    line-height: 1.05;
    letter-spacing: -0.025em;
  }

  .pdesc__body {
    font-size: var(--pdesc-text-size-m, 13px);
    line-height: 1.45;
  }

  .pdesc__body p {
    font-size: inherit;
    margin: 0 0 1.1em;
  }

  .pdesc__body p:last-child {
    margin-bottom: 0;
  }

  /* ==========================================================
     Points forts : une ligne par argument, texte à gauche, coche
     cerclée à droite. Comme la référence, les filets sont posés
     ENTRE les lignes (li + li) — et « border: 0 » sur chaque ligne
     neutralise toute bordure héritée du thème (pas de double filet).
     Conséquence voulue : PAS de filet sous la dernière ligne. Les filets
     haut et bas de la liste sont deux options distinctes (bas = off).
     ========================================================== */
  .pdesc__points {
    list-style: none;
    margin: 18px 0 0;
    padding: 0;
  }

  .pdesc__point {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border: 0;
    padding: var(--pdesc-row-pad, 7px) 0;
    font-size: var(--pdesc-text-size-m, 13px);
    line-height: 1.4;
  }

  .pdesc__point + .pdesc__point {
    border-top: 1px solid var(--pdesc-line, #000000);
  }

  /* Garde-fou : aucune bordure sous la dernière ligne, même si le thème
     en pose une sur les <li> — c'est la barre noire qu'on ne veut pas. */
  .pdesc__point:last-child {
    border-bottom: 0;
  }

  .pdesc--pline-top .pdesc__points {
    border-top: 1px solid var(--pdesc-line, #000000);
  }

  .pdesc--pline-bottom .pdesc__points {
    border-bottom: 1px solid var(--pdesc-line, #000000);
  }

  .pdesc__point-check {
    width: var(--pdesc-check, 22px);
    height: var(--pdesc-check, 22px);
    flex-shrink: 0;
  }

  @media (width > 750px) {
    .pdesc--card {
      padding: var(--pdesc-pad-d, 20px);
    }

    .pdesc__title {
      font-size: var(--pdesc-title-size-d, 28px) !important;
    }

    .pdesc__body,
    .pdesc__point {
      font-size: var(--pdesc-text-size-d, 14px);
    }
  }
/* END_BLOCK:description-produit */

/* START_BLOCK:disclaimer (INDEX:181) */
.disclm {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: var(--disclm-bg, #f4f4f4);
    color: var(--disclm-color, #111);
    padding: var(--disclm-pad-y, 16px) var(--disclm-pad-x, 18px);
    border-radius: var(--disclm-radius, 10px);
    margin-top: var(--disclm-mt, 0);
    margin-bottom: var(--disclm-mb, 0);
  }

  .disclm__icon {
    flex: 0 0 auto;
    width: 1.25em;
    height: 1.25em;
    /* Calée sur la première ligne de texte, même quand il passe sur deux */
    margin-top: 0.1em;
    font-size: var(--disclm-size-m, 14px);
  }

  .disclm__text {
    margin: 0;
    font-size: var(--disclm-size-m, 14px);
    line-height: 1.5;
  }

  .disclm__text strong {
    font-weight: 700;
  }

  @media (width > 750px) {
    .disclm__icon,
    .disclm__text {
      font-size: var(--disclm-size-d, 15px);
    }
  }
/* END_BLOCK:disclaimer */

/* START_BLOCK:faq-produit (INDEX:182) */
.faqp {
    width: 100%;
    margin-top: var(--faqp-mt, 0);
    margin-bottom: var(--faqp-mb, 0);
  }

  .faqp .accordion-block {
    flex: 1;
    width: 100%;
  }

  /* Reprise des modificateurs de accordions.liquid, limitée à .faqp : leur
     feuille de style n'est chargée que si un bloc « Accordéons » manuel reste
     présent sur la page. Les styles internes de l'accordéon, eux, viennent du
     snippet et de la CSS globale du thème — rien à dupliquer de ce côté. */
  .faqp.accordions--dividers .accordion-block:not(:last-child) .accordion {
    border-bottom: var(--separator-border-width) solid var(--color-border);
  }

  .faqp.accordions--caret .accordion__icons-add,
  .faqp.accordions--add .icon--keyboard_arrow_down {
    display: none;
  }

  /* Densité réglable depuis l'éditeur, plutôt que les paliers small/medium/large
     du thème : ça évite qu'une règle du thème et la mienne se disputent la main
     selon l'ordre de chargement des feuilles de style. */
  .faqp .accordion__header {
    padding-block: var(--faqp-row-pad, 16px);
  }


  /* L'espace sous la réponse est porté par ce conteneur, qui appartient au
     bloc : aucune règle du thème ne peut le contredire. Viser .details-content
     ne fonctionnait pas, le thème y appliquant déjà son propre padding. */
  .faqp .faqp__answer {
    margin-top: 0;
    margin-bottom: var(--faqp-answer-pb, 24px);
  }

  /* Étiquette de réponse courte, calée à droite du titre, avant le « + ». */
  .faqp .accordion__header:has(.faqp__chip) {
    gap: 12px;
  }

  .faqp .accordion__heading:has(.faqp__chip) {
    flex: 1 1 auto;
    min-width: 0;
  }

  .faqp .accordion__heading-title:has(.faqp__chip) {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    gap: 10px;
    min-width: 0;
  }

  .faqp .faqp__chip {
    flex: none;
    margin-inline-start: auto;
    padding: 5px 10px;
    border-radius: 100px;
    background: var(--faqp-chip-bg, #f8f6f4);
    color: inherit;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.1;
    text-transform: none;
    white-space: nowrap;
  }

  .faqp .faqp__answer > :first-child { margin-top: 0; }
  .faqp .faqp__answer > :last-child { margin-bottom: 0; }
  .faqp .faqp__answer p:last-child { margin-bottom: 0; }

  /* ==========================================================
     Tailles personnalisées (question et réponse).
     La question cible uniquement les balises de titre rendues par le
     snippet — jamais « * », qui redimensionnerait aussi le chevron,
     lui-même une icône de police dont la taille suit font-size.
     Le !important est nécessaire : le thème fixe la taille des styles
     h2…paragraph avec ses propres règles globales.
     ========================================================== */
  .faqp.faqp--custom-size .accordion__header :is(h2, h3, h4, h5, h6, p) {
    font-size: var(--faqp-q-size-m, 15px) !important;
    line-height: 1.4;
  }

  .faqp.faqp--custom-size .faqp__answer,
  .faqp.faqp--custom-size .faqp__answer p,
  .faqp.faqp--custom-size .faqp__answer li {
    font-size: var(--faqp-a-size-m, 14px) !important;
    line-height: 1.55;
  }

  @media (width > 750px) {
    .faqp.faqp--custom-size .accordion__header :is(h2, h3, h4, h5, h6, p) {
      font-size: var(--faqp-q-size-d, 16px) !important;
    }

    .faqp.faqp--custom-size .faqp__answer,
    .faqp.faqp--custom-size .faqp__answer p,
    .faqp.faqp--custom-size .faqp__answer li {
      font-size: var(--faqp-a-size-d, 15px) !important;
    }
  }
/* END_BLOCK:faq-produit */

/* START_BLOCK:fiche-premium (INDEX:183) */
.pdpx-root { display: none; }

  /* Rangée prénom + avis : le prénom ne rétrécit jamais (sinon il
     replie lettre à lettre), c'est le widget d'avis qui se compresse
     et se cale à droite. */
  .product-section .pdpx-titlerow > .text-block {
    width: auto;
    flex: 0 0 auto;
  }
  .product-section .pdpx-titlerow > .shopify-app-block {
    flex: 0 1 auto;
    min-width: 0;
    margin-left: auto;
  }

  /* Un peu d'air entre le titre et le prix, en plus du gap du groupe. */
  .product-section .group--flex > product-price {
    margin-top: 6px;
  }

  .product-section .pdpx-titlerow #seal-star-rating-widget {
    justify-content: flex-end !important;
  }

  /* Titre fluide : 20 px sur les mobiles larges, il descend vers 17 px
     sur les petits écrans (320 px) au lieu de replier sur 4 lignes.
     Le !important est nécessaire : le bloc texte pose cette variable
     dans son attribut style, qui gagnerait sinon. */
  @media (max-width: 749px) {
    .product-section .group--flex > .text-block.h1 {
      --font-size-mobile: clamp(17px, 5.4vw, 20px) !important;
    }
  }

  /* Jauge de coupe : les trois ancres (« Taille légèrement petit,
     Taille normalement, Taille grand ») demandent 379 px de large,
     elles n'ont jamais tenu sous 1200 px et repliaient salement.
     Sous ce seuil, seul le libellé actif reste : c'est l'information,
     la piste montre la position. Les ancres reviennent au-delà. */
  .product-section .sg-fit__label:not(.sg-fit__label--on) {
    display: none;
  }

  .product-section .sg-fit__label {
    white-space: nowrap;
  }

  /* Carte d'informations arrondie qui chevauche la galerie (mobile).
     Les marges négatives compensent exactement la gouttière du parent :
     la carte court d'un bord à l'autre sans jamais élargir la page.
     Gouttière 16 px : la même que la page, sinon le contenu rétrécit
     et les libellés de la jauge de coupe se replient. */
  @media (max-width: 749px) {
    .product-section--carrousel-image-full-width .product-section__product-info {
      position: relative;
      z-index: 2;
      background: #ffffff;
      border-radius: var(--pdpx-radius, 20px) var(--pdpx-radius, 20px) 0 0;
      margin-top: calc(-1 * var(--pdpx-overlap, 16px));
      margin-inline: calc((100% - 100vw) / 2);
      padding-top: 18px;
      padding-inline: 16px;
    }

  }

  /* La ligne mannequin de la colonne est masquée : cette information
     vit dans le champ produit « Info modèle » du thème, rendu en
     pastille sur la galerie. Elle reste visible dans la modale du
     guide des tailles. */
  .product-section .sg-model { display: none; }

  .product-section .sg-modal .sg-model,
  .sg-modal .sg-model { display: block; }


  .pdpx-progress {
    position: absolute;
    left: 50%;
    bottom: 12px;
    transform: translateX(-50%);
    z-index: 5;
    width: 34%;
    max-width: 150px;
    height: 2px;
    border-radius: 2px;
    background: rgba(255, 255, 255, 0.45);
    overflow: hidden;
    pointer-events: none;
  }

  .pdpx-progress__fill {
    display: block;
    height: 100%;
    width: 0;
    background: #ffffff;
    border-radius: 2px;
    transition: width 0.3s ease;
  }

  /* Pastille promo : proportions compactes validées, posée à droite du
     prénom (demande explicite). La rangée du prénom passe en flex
     centré, la pastille garde une taille fixe. */
  .product-section .text-block__badge {
    padding: 3px 9px !important;
    border-radius: 4px !important;
    margin-left: 12px !important;
  }

  .pdpx-prenom-badge {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .pdpx-prenom-badge > * {
    margin-block: 0 !important;
  }

  .pdpx-prenom-badge .text-block__badge {
    flex: 0 0 auto;
    align-self: center !important;
    margin-left: 0 !important;
  }

  .product-section .text-block__badge-label {
    font-size: 10.5px !important;
    line-height: 1.2 !important;
    letter-spacing: 0.04em !important;
  }

  /* Bénéfices ligne par ligne aussi en desktop, façon Dore & Rose.
     La custom property !important bat la valeur posée en style inline. */
  .product-section .argi {
    --argi-cols-d: 1 !important;
  }

  /* ---- Sélecteur de variantes. Pastilles couleur : liseré fin
     uniforme, les teintes claires (Blanc, Nude) restent lisibles sur
     fond blanc, comme chez Dore & Rose. ---- */
  .product-section .swatches .swatch span {
    border: 1px solid rgba(72, 41, 34, 0.18);
  }

  /* Tailles : une seule ligne justifiée façon yade en desktop et
     tablette, quel que soit le nombre de tailles : chaque rectangle
     prend une part égale de la largeur, plus de deuxième ligne
     orpheline (7 tailles = 7 rectangles). Le min-width de 88 px posé
     en style inline sur l'élément est neutralisé par la custom
     property !important. Mobile : la grille de 4 existante convient. */
  @media (min-width: 990px) {
    .product-section variant-picker {
      --vp-rect-minw: 0px !important;
    }

    .product-section .variant-picker__option-values--buttons {
      display: flex !important;
      flex-wrap: nowrap !important;
      gap: 8px;
    }

    /* !important sur la géométrie : le CSS custom du thème est chargé
       APRÈS la feuille compilée et regagnait la cascade à spécificité
       égale, les étiquettes restaient à leur largeur de contenu dans
       des conteneurs étirés. */
    .product-section .variant-picker__option-values--buttons .variant-picker__option-value {
      flex: 1 1 0 !important;
      width: auto !important;
      min-width: 0 !important;
      display: flex !important;
    }

    /* max-width: none : la règle de base du thème plafonne l'étiquette
       à max-content, un width même !important ne passe jamais au-dessus
       d'un max-width. */
    .product-section .variant-picker__option-values--buttons .variant-picker__option-value label {
      flex: 1 1 0 !important;
      width: 100% !important;
      max-width: none !important;
      min-width: 0 !important;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      padding-inline: 6px !important;
    }
  }

  /* Tablette : la colonne d'achat est étroite, 7 cases sur une ligne
     donneraient des cibles minuscules. Grille équilibrée de 4, mêmes
     cibles de 48 px qu'en mobile. */
  @media (min-width: 750px) and (max-width: 989px) {
    .product-section variant-picker {
      --vp-rect-minw: 0px !important;
    }

    .product-section .variant-picker__option-values--buttons {
      display: grid !important;
      grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
      gap: 8px;
    }

    .product-section .variant-picker__option-values--buttons .variant-picker__option-value {
      width: auto !important;
      min-width: 0 !important;
      display: flex !important;
    }

    .product-section .variant-picker__option-values--buttons .variant-picker__option-value label {
      flex: 1 1 0 !important;
      width: 100% !important;
      max-width: none !important;
      min-width: 0 !important;
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      padding-inline: 6px !important;
    }
  }

  /* Les conteneurs de la fiche qui masquent déjà leur débordement
     passent en clip : un overflow hidden reste défilable par focus ou
     script (c'est ce qui vidait la fiche au chargement d'une vidéo),
     clip ne l'est jamais, Safari compris. */
  .shopify-section-product-section {
    overflow-x: clip !important;
  }

  .product-section product-media-gallery .splide__track {
    overflow: clip !important;
  }

  /* ---- Vidéo dans la galerie : le navigateur doit laisser le
     glissement horizontal au carrousel, comme sur les photos. ---- */
  .product-section product-media-gallery deferred-media,
  .product-section product-media-gallery video {
    touch-action: pan-y pinch-zoom;
  }

  /* Vidéo chargée : l'affiche et son bouton lecture ne servent plus
     (le thème pose data-media-loaded sans rien masquer). Restés
     visibles sous la vidéo, ils ressurgissaient une frame pendant les
     transformations du carrousel : le petit scintillement du swipe. */
  .product-section deferred-media[data-media-loaded="true"] .deferred-media__poster {
    visibility: hidden !important;
  }

  /* Calque vidéo épinglé sur le compositeur : Safari ne le lâche plus
     pendant les translations du track. */
  .product-section .deferred-media__video video {
    transform: translateZ(0);
  }

  /* ---- Fil d'Ariane façon Dore & Rose, collé au bloc photos : le
     bandeau natif disparaît des fiches, le remplaçant vit dans la
     section produit (l'espace au-dessus vient de la marge de section
     sous le header). Desktop et tablette seulement. ---- */
  .pdpx-filhote {
    display: none !important;
  }

  .pdpx-fil {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-block: 0 14px;
    color: #482922;
  }

  @media (max-width: 749px) {
    .pdpx-fil {
      display: none;
    }
  }

  .pdpx-fil a,
  .pdpx-fil span {
    font-size: 11px !important;
    font-weight: 600;
    letter-spacing: 0.08em !important;
    text-transform: uppercase;
    color: #482922 !important;
    text-decoration: none;
  }

  .pdpx-fil a:hover,
  .pdpx-fil a:focus-visible {
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .pdpx-fil__sep {
    opacity: 0.55;
  }



  @media (min-width: 750px) {
    .pdpx-progress {
      display: none;
    }
  }

  /* ---- Modale du guide des tailles : habillage flottant façon Ysé.
     Surcharges seulement, le bloc size-guide n'est pas touché. ---- */
  dialog.sg-modal {
    box-shadow: none !important;
  }

  dialog.sg-modal::backdrop {
    background: rgba(28, 18, 12, 0.35);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
  }

  @media (min-width: 750px) {
    dialog.sg-modal {
      top: 12px !important;
      right: 12px !important;
      bottom: 12px !important;
      height: auto !important;
      border-radius: 16px !important;
    }
  }

  @media (max-width: 749px) {
    dialog.sg-modal {
      border-radius: 16px 16px 0 0 !important;
    }
  }

  .sg-modal .sg-modal__head {
    padding: 18px 24px;
    border-bottom: 1px solid rgba(72, 41, 34, 0.1);
  }

  .sg-modal .sg-modal__title {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
  }

  .sg-modal .sg-modal__close {
    background: transparent;
    border-radius: 8px;
  }

  .sg-modal .sg-modal__body {
    padding: 20px 24px 28px;
  }

  .sg-modal .sg-table__th {
    font-weight: 500;
    font-size: 11px;
    letter-spacing: 0.06em;
    opacity: 0.75;
  }

  .sg-modal .sg-table__cell {
    font-weight: 400;
    font-size: 13px;
  }

  .sg-modal .sg-calc__choose,
  .sg-modal .sg-calc__submit {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.07em;
  }

  /* ---- Tiroir panier : même flottement façon Ysé, DESKTOP seulement
     (le mobile reste tel quel, demande client). Le panneau prend des
     marges dans son hôte plein écran, le voile passe au brun flouté
     du reste du parcours, les ombres tombent (règle sans box-shadow). */
  @media (min-width: 750px) {
    .cart-drawer {
      --cart-overlay-bg: rgba(28, 18, 12, 0.35) !important;
      --cart-overlay-blur: 5px !important;
      --cart-shadow-opacity: 0 !important;
    }

    .cart-drawer .cart-drawer__inner {
      height: calc(100% - 24px);
      margin: 12px;
      border-radius: 16px;
      box-shadow: none;
    }
  }

  /* En-tête du tiroir resserré : le bandeau titre + croix prenait la
     hauteur d'un bloc entier. La bande grise est le sous-élément
     header_title, c'est lui qui porte les gros paddings. Padding haut
     à zéro : la bande touche le bord supérieur arrondi du tiroir. */
  .cart-drawer .cart-drawer__header {
    padding-top: 0;
    padding-bottom: 10px;
  }

  /* Accordéon du code promo : rangée resserrée, et le pied du tiroir
     perd son gros padding haut (16 px + les 12 de l'accordéon). */
  .cart-drawer .cart-drawer__footer {
    padding-top: 4px;
  }

  .cart-drawer .cart-discount-block .accordion__header {
    padding-top: 12px;
    padding-bottom: 12px;
  }

  .cart-drawer .cart-discount-block .accordion__content {
    padding-bottom: 12px;
  }

  .cart-drawer .cart-drawer__header_title {
    padding-top: 9px;
    padding-bottom: 9px;
  }

  .cart-drawer .cart-drawer__header .h6 {
    font-size: 15px;
  }

  /* Pastille mannequin de la galerie : verre fumé flouté (le texte
     vient toujours du métachamp « Info modèle » du produit). */
  .product-media-gallery__model-badge {
    background: rgba(28, 18, 12, 0.32) !important;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    color: #ffffff !important;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.02em;
    padding: 5px 11px;
  }

  /* iOS : le backdrop-filter promeut la pastille au-dessus des voiles
     et tiroirs ; masquée tant que le menu mobile est ouvert. */
  html.menu-ouvert .product-media-gallery__model-badge {
    visibility: hidden;
  }

  /* Le bouton du guide des tailles re-logé au-dessus du widget (le
     sélecteur natif qui l'hébergeait est masqué par le réglage Kaching
     « Masquer le sélecteur de variantes de thème »). Sorti du
     picker, il hérite du 16px du corps : on le ramène à l'échelle des
     libellés, avec de l'air avant le widget. */
  .pdpx-guide-solo {
    display: flex;
    justify-content: flex-end;
    margin: 4px 0 16px;
  }

  .pdpx-guide-solo .variant-picker__sg-trigger {
    font-size: 13px;
  }

  .pdpx-guide-solo .variant-picker__sg-icon {
    width: 15px;
    height: 15px;
  }

  /* ==========================================================
     Bannière de cookies Shopify, habillée façon Dore & Rose.
     Architecture réelle (lue dans storefront-banner.js) : la racine
     <section id="shopify-pc__banner" class="shopify-pc__banner__dialog">
     EST elle-même la barre fixe (id et classe sur le MÊME élément,
     vu aux devtools) ; elle contient .shopify-pc__banner__wrapper (rangée, passe
     en colonne sous 1280 px) puis body et btns (min-width 580 px,
     marges sur les boutons). Tout est repris ici ; Refuser garde la
     même visibilité qu'Accepter (exigence CNIL).
     ========================================================== */
  #shopify-pc__banner.shopify-pc__banner__dialog {
    padding: 8px 32px !important;
    min-height: 0 !important;
    background: #ffffff !important;
    border-top: 1px solid rgba(72, 41, 34, 0.15) !important;
    box-shadow: none !important;
  }

  #shopify-pc__banner .shopify-pc__banner__wrapper {
    flex-direction: row !important;
    align-items: center !important;
    gap: 24px;
  }

  #shopify-pc__banner h2,
  #shopify-pc__banner .shopify-pc__banner__heading,
  #shopify-pc__banner .shopify-pc__banner__body-title {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    margin: 0;
    padding: 0;
  }

  /* Le texte long de Shopify est réduit à zéro et remplacé par la
     phrase courte de la référence ; seul le lien d'origine reste
     visible et cliquable, en ligne à la suite. */
  #shopify-pc__banner .shopify-pc__banner__body,
  #shopify-pc__banner .shopify-pc__banner__body * {
    display: inline !important;
    font-size: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.45;
    color: #482922 !important;
  }

  #shopify-pc__banner .shopify-pc__banner__body {
    display: block !important;
    flex: 1 1 auto;
    width: auto !important;
  }

  #shopify-pc__banner .shopify-pc__banner__body::before {
    content: "Ce site utilise des cookies pour vous garantir la meilleure expérience. ";
    font-size: 13px;
    line-height: 1.45;
  }

  #shopify-pc__banner .shopify-pc__banner__body a {
    font-size: 13px !important;
    line-height: 1.45;
    color: #482922 !important;
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  #shopify-pc__banner .shopify-pc__banner__btns {
    display: flex !important;
    align-items: center;
    gap: 10px;
    margin: 0 !important;
    min-width: 0 !important;
    width: auto !important;
    flex: 0 0 auto;
  }

  #shopify-pc__banner .shopify-pc__banner__btns button {
    margin: 0 !important;
    padding: 9px 16px !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    box-shadow: none !important;
    cursor: pointer;
    white-space: nowrap;
  }

  #shopify-pc__banner__btn-accept,
  #shopify-pc__banner__btn-decline {
    background: #482922 !important;
    color: #ffffff !important;
    border: 1px solid #482922 !important;
  }

  #shopify-pc__banner__btn-manage-prefs {
    background: #ffffff !important;
    color: #482922 !important;
    border: 1px solid rgba(72, 41, 34, 0.35) !important;
  }

  @media (width <= 749px) {
    /* Carte flottante façon Dore & Rose : l'élément fixe est décollé
       des bords, arrondi, fileté. Texte puis trois boutons pleine
       largeur : Accepter, Refuser, Préférences. */
    #shopify-pc__banner.shopify-pc__banner__dialog {
      left: 12px !important;
      right: 12px !important;
      bottom: 12px !important;
      width: auto !important;
      padding: 16px !important;
      border: 1px solid rgba(72, 41, 34, 0.15) !important;
      border-radius: 16px !important;
    }

    #shopify-pc__banner .shopify-pc__banner__wrapper {
      flex-direction: column !important;
      align-items: stretch !important;
      gap: 14px;
    }

    #shopify-pc__banner .shopify-pc__banner__body {
      width: 100% !important;
    }

    #shopify-pc__banner .shopify-pc__banner__btns {
      flex-direction: column !important;
      align-items: stretch;
      width: 100% !important;
      gap: 8px;
    }

    #shopify-pc__banner .shopify-pc__banner__btns button {
      width: 100%;
      padding: 12px 18px !important;
    }

    #shopify-pc__banner__btn-accept { order: 1; }
    #shopify-pc__banner__btn-decline { order: 2; }
    #shopify-pc__banner__btn-manage-prefs { order: 3; }
  }

  /* Bouton pause de la barre d'annonces : lisibilité renforcée
     (retour accessibilité) — pleine opacité, icône plus grande, et
     un contour net au focus clavier. */
  .hsk-top__pause {
    opacity: 1 !important;
    color: #482922 !important;
  }

  .hsk-top__pause .hsk-top__pause-ic {
    width: 16px;
    height: 16px;
  }

  .hsk-top__pause:focus-visible {
    outline: 2px solid #482922;
    outline-offset: 2px;
    border-radius: 6px;
  }

  /* Rangée d'avis sous le titre, façon référence : « Excellent » +
     étoiles + nombre d'avis, alignés à gauche au-dessus du prix. Le CSS
     du widget Channelwill impose display block + overflow hidden + une
     hauteur qui coupait les étoiles : on reprend la main en dur. */
  .product-section .pdpx-avis-rangee {
    display: flex !important;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    height: auto !important;
    min-height: 30px;
    overflow: visible !important;
    margin: 0 0 6px;
  }

  .product-section .pdpx-avis-rangee > div {
    width: auto !important;
    height: auto !important;
  }

  .product-section .pdpx-avis-rangee[data-pdpx-avis-vide] {
    display: none !important;
  }

  .pdpx-avis-rangee .pdpx-avis-excellent {
    font-size: 15px;
    font-weight: 600;
    color: #482922;
    line-height: 1;
  }
/* END_BLOCK:fiche-premium */

/* START_BLOCK:filters-and-sort (INDEX:184) */
.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:185) */
.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;
  }

  @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:186) */
.argp {
    display: flex;
    flex-direction: column;
    gap: var(--argp-row-gap, 8px);
    margin-top: var(--margin-top, 0);
    margin-bottom: var(--margin-bottom, 0);
  }

  /* Les règles de .icon-with-text vivent dans _icon-with-text.liquid, dont la
     feuille de style n'est plus chargée si aucun bloc manuel ne subsiste sur
     la page. On en reprend ici le strict nécessaire, limité à .argp. */
  .argp .icon-with-text {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: var(--align, flex-start);
    gap: var(--gap-mobile, 10px);
    width: 100%;
  }

  .argp .text-block {
    margin-top: 0;
    margin-bottom: 0;
    text-align: var(--text-align, left);
  }

  .argp .text-block p {
    margin: 0;
    font-weight: var(--font-weight, 400);
  }

  /* Taille personnalisée. Le sélecteur est volontairement plus spécifique que
     celui du thème (.text-block.paragraph) pour l'emporter sans !important,
     et la taille est posée sur le conteneur ET sur le paragraphe : selon le
     style de texte choisi, c'est l'un ou l'autre qui porte la valeur. */
  .argp.argp--custom-size .text-block,
  .argp.argp--custom-size .text-block p {
    font-size: var(--argp-size-m, 15px);
    line-height: 1.4;
  }

  /* Repli si la feuille compilée arrive avant le <style> inline : les variables
     posées sur .argp donnent déjà la bonne réservation d'espace. */
  .argp img {
    flex: 0 0 auto;
    display: block;
    width: var(--argp-icon-w, 18px);
    height: var(--argp-icon-h, 18px);
    max-width: none;
    object-fit: contain;
  }

  @media (width > 750px) {
    .argp .icon-with-text { gap: var(--gap, 5px); }

    .argp.argp--custom-size .text-block,
    .argp.argp--custom-size .text-block p {
      font-size: var(--argp-size-d, 16px);
    }
  }
/* END_BLOCK:icon-with-text */

/* START_BLOCK:image-card (INDEX:188) */
.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-mobile);
      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);
    }

    .image-card__content-wrapper .image-card__content {
      min-height: var(--image-height);
    }
  }
/* END_BLOCK:image-card */

/* START_BLOCK:image (INDEX:189) */
.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%;
  }
/* END_BLOCK:image */

/* START_BLOCK:information-slider (INDEX:190) */
.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:192) */
.block__logo {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }
/* END_BLOCK:logo */

/* START_BLOCK:marquee (INDEX:193) */
.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:194) */
.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);
    flex-wrap: wrap;
  }

  .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;
  }
/* END_BLOCK:menu */

/* START_BLOCK:newsletter-signup (INDEX:195) */
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:panneau-taille (INDEX:196) */
.pt-guide {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #482922;
    font-size: 14px;
    font-weight: 400;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
  }

  .pt-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 54px;
    margin: 0;
    padding: 0 18px;
    border: 0;
    border-radius: 8px;
    background: #482922;
    color: #ffffff;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
  }

  .pt-cta__dot {
    width: 5px;
    height: 5px;
    border-radius: 999px;
    background: currentColor;
  }

  .pt-cta__chevron {
    margin-left: auto;
  }

  .pt-cta__label {
    flex: 1;
    text-align: center;
  }

  /* ---- Le panneau : tiroir droit, pleine hauteur ---- */
  .pt {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(620px, 100vw);
    height: 100dvh;
    max-height: none;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: #ffffff;
    color: #482922;
  }

  .pt::backdrop {
    background: rgba(28, 18, 12, 0.35);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
  }

  .pt[open] {
    animation: pt-entree 0.28s ease;
  }

  @keyframes pt-entree {
    from { transform: translateX(60px); opacity: 0; }
    to { transform: none; opacity: 1; }
  }

  @media (prefers-reduced-motion: reduce) {
    .pt[open] { animation: none; }
  }

  .pt__inner {
    display: flex;
    flex-direction: column;
    height: 100%;
  }

  /* Garde-fou : dans le panneau, l'attribut hidden gagne TOUJOURS,
     même contre un display posé par une classe (piège déjà rencontré
     sur le calculateur du guide). */
  .pt [hidden] {
    display: none !important;
  }

  .pt__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 28px;
    border-bottom: 1px solid rgba(72, 41, 34, 0.1);
  }

  .pt__title {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .pt__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
  }

  .pt__scroll {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 24px 28px 32px;
  }

  .pt__reco {
    margin: 0 0 16px;
    padding: 12px 14px;
    background: #f5f5f5;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.5;
  }

  .pt__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
  }

  .pt__tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    min-height: 48px;
    border: 1px solid rgba(72, 41, 34, 0.28);
    border-radius: 8px;
    background: #ffffff;
    color: #482922;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
  }

  /* La taille mémorisée est SUGGÉRÉE, jamais sélectionnée : un petit
     libellé sous la lettre, pas de bordure (une bordure se lit comme
     une sélection, le client l'a confirmé). */
  .pt__tile.is-suggested::after {
    content: "habituelle";
    font-size: 9px;
    letter-spacing: 0.04em;
    opacity: 0.6;
  }

  .pt__tile.is-on {
    border: 2px solid #482922;
    font-weight: 700;
  }

  .pt__tile:disabled,
  .pt__tile--off {
    opacity: 0.4;
    text-decoration: line-through;
  }

  .pt__bis {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 10px;
    padding: 12px 14px;
    background: #f5f5f5;
    border-radius: 8px;
    font-size: 13px;
  }

  .pt__bis-texte {
    margin: 0;
  }

  .pt__bis-btn {
    flex: 0 0 auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: #482922;
    font-size: 13px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
  }

  .pt__fit {
    margin-top: 4px;
  }

  .pt__fit .sg-fit {
    margin-top: 16px;
  }

  /* Le panneau est étroit à toutes les largeurs : comme sur la fiche
     mobile, seule l'ancre active de la jauge s'affiche, la piste
     montre la position. */
  .pt .sg-fit__label:not(.sg-fit__label--on) {
    display: none;
  }

  .pt .sg-fit__label {
    white-space: nowrap;
  }

  .pt__fit .sg-model {
    margin: 10px 0 0;
    font-size: 13px;
  }

  .pt__calc {
    border-radius: 8px;
    display: block;
    width: 100%;
    margin-top: 16px;
    padding: 13px 14px;
    border: 1px solid rgba(72, 41, 34, 0.28);
    background: #ffffff;
    color: #482922;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
  }

  .pt__doubt {
    margin-top: 20px;
    padding: 16px;
    background: #f5f5f5;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.55;
  }

  .pt__doubt-title {
    margin: 0 0 6px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 12px;
  }

  .pt__doubt-text,
  .pt__doubt-line {
    margin: 0 0 4px;
  }

  .pt__doubt a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
  }

  .pt__acc {
    margin-top: 14px;
    border-top: 1px solid rgba(72, 41, 34, 0.12);
  }

  .pt__acc-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 0;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    cursor: pointer;
    list-style: none;
  }

  .pt__acc-head::-webkit-details-marker {
    display: none;
  }

  .pt__acc-sign::before {
    content: "+";
    font-size: 16px;
    font-weight: 500;
  }

  .pt__acc[open] .pt__acc-sign::before {
    content: "−";
  }

  .pt__acc-body {
    padding: 0 0 16px;
    font-size: 13px;
    line-height: 1.55;
  }

  .pt__acc-body p {
    margin: 0 0 8px;
  }

  .pt__acc-body .sg-tablecard {
    overflow-x: auto;
  }

  .pt__atc {
    margin-top: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 50px;
    padding: 0 20px;
    border: 0;
    border-radius: 8px;
    background: #482922;
    color: #ffffff;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    cursor: pointer;
  }

  .pt__atc-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
  }

  .pt__atc-label::before {
    content: "";
    width: 4px;
    height: 4px;
    border-radius: 999px;
    background: currentColor;
  }

  .pt__atc:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    justify-content: center;
  }

  /* Barre d'achat fixe : même arrondi que le parcours, et le libellé
     « Choisir votre taille » porte le même point que le bouton de la
     fiche tant qu'aucune taille n'est choisie. */
  .sticky-atc__btn {
    border-radius: 8px !important;
  }

  /* La modale du guide (calculateur) s'aligne sur le même arrondi que
     le reste du parcours : 8 px, y compris son bouton principal en
     pilule et sa croix cerclée. Le !important bat le style inline du
     dialog (--sg-radius: 14px posé par les réglages du bloc). */
  .sg-modal {
    --sg-radius: 8px !important;
  }

  .sg-modal .sg-calc__choose,
  .sg-modal .sg-calc__submit,
  .sg-modal .sg-calc__again,
  .sg-modal .sg-calc__shop,
  .sg-modal .sg-calc__input,
  .sg-modal .sg-modal__close {
    border-radius: 8px !important;
  }

  @media (max-width: 749px) {
    .pt {
      inset: auto 0 0 0;
      width: 100vw;
      height: auto;
      border-radius: 16px 16px 0 0;
    }

    .pt[open] {
      animation: pt-entree-mobile 0.3s ease;
    }

    .pt__inner {
      height: auto;
      max-height: 86dvh;
    }
  }

  @keyframes pt-entree-mobile {
    from { transform: translateY(48px); opacity: 0; }
    to { transform: none; opacity: 1; }
  }
/* END_BLOCK:panneau-taille */

/* START_BLOCK:payment-methods (INDEX:197) */
.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);
    }
  }

  .payment-methods svg {
    width: var(--icon-size);
    height: auto;
  }

  /* ==========================================================
     Barre « Paiement sécurisé » : bandeau doux sous le CTA,
     libellé + cadenas à gauche, icônes de paiement à droite.
     Le style « icônes seules » reste strictement inchangé.
     ========================================================== */
  .payment-methods--bar {
    background: var(--pm-bar-bg, #f6f6f5);
    color: var(--pm-bar-color, #111);
    border-radius: var(--pm-bar-radius, 12px);
    padding: var(--pm-bar-pad-y, 14px) var(--pm-bar-pad-x, 20px);
    /* Le libellé et les icônes occupent chacun un bord de la barre :
       les réglages d'alignement ne concernent que le mode icônes. */
    justify-content: space-between;
    gap: var(--gap-sm);
  }

  .payment-methods__bar-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: var(--pm-bar-text-size, 15px);
    font-weight: var(--pm-bar-text-weight, 500);
    white-space: nowrap;
  }

  /* Le cadenas suit la taille du texte, pas celle des icônes de paiement.
     Le sélecteur est doublé (.payment-methods .payment-methods__bar-lock)
     pour passer devant « .payment-methods svg » qui impose --icon-size. */
  .payment-methods .payment-methods__bar-lock {
    width: 1.15em;
    height: 1.15em;
    flex-shrink: 0;
  }

  .payment-methods__bar-icons {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--gap-xs);
  }

  .payment-methods__bar-icons svg {
    display: block;
  }

  /* ==========================================================
     Barre en mobile.

     Sans réglage, la barre wrappe au petit bonheur : libellé en
     haut à gauche, icônes qui retombent dessous. En « empilé »,
     on assume la composition : tout est centré, icônes un peu
     plus petites, respiration verticale régulière.
     ========================================================== */
  @media (width <= 750px) {
    .payment-methods--bar .payment-methods__bar-icons svg {
      width: var(--pm-bar-icon-sm, 28px);
    }

    .pm-bar--stack-mobile {
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 10px;
      text-align: center;
    }

    .pm-bar--stack-mobile .payment-methods__bar-icons {
      justify-content: center;
    }
  }
/* END_BLOCK:payment-methods */

/* START_BLOCK:powered-by-fullstack (INDEX:199) */
.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-chips (INDEX:201) */
.pf {
    display: grid;
    grid-template-columns: repeat(var(--cols-mobile, 2), minmax(0, 1fr));
    gap: var(--gap-m, 12px);
    width: 100%;
    min-width: 0;
    padding-top: var(--pt-block, 0);
    padding-bottom: var(--pb-block, 0);
    margin-top: var(--mt-block, 0);
    margin-bottom: var(--mb-block, 0);
  }

  @media (width > 750px) {
    .pf {
      grid-template-columns: repeat(var(--cols, 2), minmax(0, 1fr));
      gap: var(--gap-y, 18px) var(--gap-x, 24px);
    }
  }

  .pf__media img,
  .pf__media svg {
    object-fit: contain;
    display: block;
  }
  .pf__media:empty { display: none; }

  /* ============ LAYOUT "PASTILLE" ============ */
  .pf--feature .pf__item {
    display: flex;
    align-items: center;
    gap: 10px;
    text-align: left;
    min-width: 0;
  }
  .pf--feature.pf--valign-top .pf__item { align-items: flex-start; }

  .pf--feature .pf__media {
    width: var(--badge-m, 42px);
    height: var(--badge-m, 42px);
    border-radius: var(--badge-radius, 50%);
    background: var(--badge-bg, #d9e9f6);
    color: var(--icon-color, #1c4e80);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .pf--feature .pf__media img,
  .pf--feature .pf__media svg {
    width: var(--icon-m, 22px);
    height: var(--icon-m, 22px);
    color: currentColor;
    fill: currentColor;
  }
  .pf--feature .pf__media .icon {
    font-size: var(--icon-m, 22px) !important;
    width: var(--icon-m, 22px);
    height: var(--icon-m, 22px);
    color: currentColor;
  }

  .pf--feature .pf__label {
    min-width: 0;
    color: var(--text, #1a1a1a);
    font-size: var(--font, 13px);
    font-weight: var(--weight, 700);
    line-height: 1.25;
    overflow-wrap: anywhere;
  }

  @media (width > 750px) {
    .pf--feature .pf__item { gap: 14px; }
    .pf--feature .pf__media {
      width: var(--badge, 56px);
      height: var(--badge, 56px);
    }
    .pf--feature .pf__media img,
    .pf--feature .pf__media svg {
      width: var(--icon, 28px);
      height: var(--icon, 28px);
    }
    .pf--feature .pf__media .icon {
      font-size: var(--icon, 28px) !important;
      width: var(--icon, 28px);
      height: var(--icon, 28px);
    }
    .pf--feature .pf__label {
      font-size: var(--font-desktop, 15px);
      line-height: 1.3;
    }
  }

  /* ============ LAYOUT "CHIP" ============ */
  .pf--chip { align-items: stretch; }
  .pf--chip .pf__item {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
    height: 100%;
    background: var(--chip-bg, #f6f3ec);
    border: 1px solid var(--chip-border, #ece7db);
    border-radius: var(--chip-radius, 12px);
    padding: var(--pad-y, 12px) var(--pad-x, 14px);
    color: var(--text, #1a1a1a);
    font-size: var(--font, 13px);
    font-weight: var(--weight, 500);
    line-height: 1.25;
    text-align: center;
  }
  .pf--chip .pf__media {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icon-m, 22px);
    height: var(--icon-m, 22px);
    flex-shrink: 0;
    color: var(--icon-color, inherit);
  }
  .pf--chip .pf__media img,
  .pf--chip .pf__media svg { width: 100%; height: 100%; }
  .pf--chip .pf__media .icon { font-size: var(--icon-m, 22px) !important; }
  .pf--chip .pf__label {
    min-width: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  @media (width > 750px) {
    .pf--chip .pf__item { font-size: var(--font-desktop, 14px); }
    .pf--chip .pf__media { width: var(--icon, 22px); height: var(--icon, 22px); }
    .pf--chip .pf__media .icon { font-size: var(--icon, 22px) !important; }
  }
/* END_BLOCK:product-chips */

/* START_BLOCK:product-inventory (INDEX:203) */
.sdl {
    display: block;
    margin-top: var(--sdl-mt, 0);
    margin-bottom: var(--sdl-mb, 0);
  }

  shopify-visual-preview-block-list .sdl[data-visual-preview-mode] {
    width: 340px;
  }

  .sdl__line {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    justify-content: var(--sdl-align, flex-start);
    column-gap: 0.45em;
    row-gap: 2px;
    font-size: var(--sdl-size-m, 15px);
    line-height: 1.5;
  }

  /* La pastille s'aligne sur la ligne de base du texte, pas sur le centre du
     bloc : c'est ce qui la garde calée sur la première ligne si le texte
     passe sur deux lignes en mobile. */
  .sdl__dot-wrap {
    position: relative;
    flex: 0 0 auto;
    align-self: center;
    width: var(--sdl-dot, 12px);
    height: var(--sdl-dot, 12px);
  }

  .sdl__dot {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: currentColor;
  }

  .sdl__dot-wrap--in_stock { color: var(--in-stock-color, #22a45d); }
  .sdl__dot-wrap--low { color: var(--low-stock-color, #ffa500); }
  .sdl__dot-wrap--out_of_stock { color: var(--out-stock-color, #d64545); }

  .sdl__status { font-weight: 500; }
  .sdl__status--in_stock { color: var(--in-stock-color, #22a45d); }
  .sdl__status--low { color: var(--low-stock-color, #ffa500); }
  .sdl__status--out_of_stock { color: var(--out-stock-color, #d64545); }

  .sdl__highlight { color: var(--low-stock-color, #ffa500); }

  .sdl__sep { opacity: 0.4; }

  .sdl__dates { font-weight: 700; }

  .sdl__suffix { margin-left: 0.2em; }

  /* Onde : un halo qui se dilate depuis la pastille puis s'efface.
     Lent en stock, rapide en stock faible, rien en rupture. */
  @keyframes sdl-wave {
    0% { transform: scale(1); opacity: 0.4; }
    70% { transform: scale(var(--sdl-wave, 2.1)); opacity: 0; }
    100% { transform: scale(var(--sdl-wave, 2.1)); opacity: 0; }
  }

  @media (prefers-reduced-motion: no-preference) {
    .sdl--animated .sdl__dot-wrap::after {
      content: '';
      position: absolute;
      inset: 0;
      border-radius: 50%;
      background: currentColor;
      opacity: 0;
      pointer-events: none;
      animation: sdl-wave 2.6s cubic-bezier(0, 0, 0.2, 1) infinite;
    }

    .sdl--animated .sdl__dot-wrap--low::after {
      animation-duration: 1.4s;
    }

    .sdl--animated .sdl__dot-wrap--out_of_stock::after {
      animation: none;
      display: none;
    }
  }

  @media (width > 750px) {
    .sdl__line {
      font-size: var(--sdl-size-d, 16px);
    }
  }
/* END_BLOCK:product-inventory */

/* START_BLOCK:product-mini-card (INDEX:204) */
.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-price (INDEX:205) */
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;
  }

  /* ---------- Rendu personnalisé : barré rouge, prix fort, pastille ---------- */
  .ppx {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--ppx-gap, 12px);
  }

  .ppx__compare {
    color: var(--ppx-compare-color, #c62f2f);
    font-size: var(--ppx-compare-size-m, 14px);
    font-weight: 400;
    text-decoration: line-through;
    text-decoration-thickness: 1px;
    white-space: nowrap;
  }

  .ppx__price {
    color: var(--ppx-price-color, #1a1a1a);
    font-size: var(--ppx-price-size-m, 20px);
    font-weight: var(--ppx-price-weight, 700);
    letter-spacing: -0.02em;
    line-height: 1.1;
    white-space: nowrap;
  }

  /* La pastille se dimensionne à partir de sa taille de texte : réduire la
     police resserre automatiquement le padding, les proportions tiennent
     toutes seules. */
  .ppx__badge {
    background: var(--ppx-badge-bg, #111);
    color: var(--ppx-badge-color, #fff);
    font-size: var(--ppx-badge-size, 12px);
    font-weight: 600;
    line-height: 1;
    padding: 0.55em 0.85em;
    border-radius: var(--ppx-badge-radius, 8px);
    white-space: nowrap;
  }

  /* Ordre « prix d'abord » : prix, puis barré, puis pastille. */
  .ppx__prefix {
    color: var(--ppx-price-color, #1a1a1a);
    font-size: var(--ppx-compare-size-m, 14px);
    white-space: nowrap;
  }

  .ppx--price-first .ppx__prefix { order: -2; }
  .ppx--price-first .ppx__price { order: -1; }

  @media (width > 750px) {
    .ppx__compare { font-size: var(--ppx-compare-size-d, 15px); }
    .ppx__price { font-size: var(--ppx-price-size-d, 22px); }
  }
/* END_BLOCK:product-price */

/* START_BLOCK:rating-stars (INDEX:206) */
.rating-stars__link {
    text-decoration: none;
    color: inherit;
  }
/* END_BLOCK:rating-stars */

/* START_BLOCK:reassurance (INDEX:207) */
.trustl {
    display: flex;
    align-items: center;
    justify-content: var(--trustl-align, center);
    flex-wrap: wrap;
    gap: 6px var(--trustl-gap-m, 14px);
    margin-top: var(--trustl-mt, 12px);
    margin-bottom: var(--trustl-mb, 0);
    color: var(--trustl-color, inherit);
  }

  .trustl__item {
    display: inline-flex;
    align-items: center;
    gap: var(--trustl-icon-gap, 7px);
    font-size: var(--trustl-size-m, 13px);
    font-weight: var(--trustl-weight, 500);
    line-height: 1.3;
    white-space: nowrap;
  }

  .trustl__item .icon {
    font-size: var(--trustl-icon, 18px) !important;
    width: var(--trustl-icon, 18px);
    height: var(--trustl-icon, 18px);
    flex-shrink: 0;
  }

  /* Icônes pleines : la police d'icônes du thème est variable (axe FILL),
     même idiome que les étoiles d'avis ; opsz 20 pour un dessin net
     aux petites tailles. */
  .trustl--filled .icon {
    font-variation-settings: "FILL" 1, "wght" var(--icon-weight), "GRAD" 0, "opsz" 20;
  }

  /* Filet vertical entre les éléments, porté par ::before à partir du
     deuxième : aucun séparateur orphelin quand un élément est vide. */
  .trustl--center.trustl--separators .trustl__item + .trustl__item::before {
    content: '';
    width: 1px;
    height: 1.1em;
    background: var(--trustl-sep-color, #dcdcdc);
    margin-right: var(--trustl-gap-m, 14px);
    flex-shrink: 0;
  }

  /* ==========================================================
     Mode « réparti » (référence) : chaque élément occupe une colonne
     égale — le premier calé à gauche, le dernier à droite, celui du
     milieu centré. Les filets tombent pile aux frontières des colonnes,
     donc à intervalles parfaitement réguliers, quel que soit le
     nombre d'éléments.
     ========================================================== */
  .trustl--justify {
    flex-wrap: nowrap;
    justify-content: stretch;
  }

  .trustl--justify .trustl__item {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    justify-content: center;
  }

  .trustl--justify .trustl__item:first-child { justify-content: flex-start; }
  .trustl--justify .trustl__item:last-child { justify-content: flex-end; }

  /* Un seul élément : centré plutôt que collé à gauche. */
  .trustl--justify .trustl__item:only-child { justify-content: center; }

  /* Le filet est détaché du flux (absolu) pour se poser exactement sur la
     frontière de colonne, indépendamment de l'alignement du contenu. */
  .trustl--justify.trustl--separators .trustl__item + .trustl__item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 1.15em;
    background: var(--trustl-sep-color, #dcdcdc);
  }

  .trustl--justify .trustl__item + .trustl__item {
    padding-left: 10px;
  }

  @media (width > 750px) {
    .trustl {
      gap: 6px var(--trustl-gap-d, 20px);
    }

    .trustl__item {
      font-size: var(--trustl-size-d, 14px);
    }

    .trustl--center.trustl--separators .trustl__item + .trustl__item::before {
      margin-right: var(--trustl-gap-d, 20px);
    }
  }

  /* ==========================================================
     Mode « automatique » : une seule ligne si elle tient, sinon
     empilé. Le JS mesure en configuration verrouillée (rien ne
     rétrécit, rien ne se replie) puis pose .trustl--stacked si
     le contenu déborde. Réévalué à chaque redimensionnement.
     ========================================================== */
  .trustl--measuring {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
  }
  .trustl--measuring .trustl__item {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
  }

  /* État empilé (posé par le JS, quel que soit l'écran) : mêmes
     choix que la disposition mobile « Empilé » ci-dessous. */
  .trustl--stacked {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
  }

  .trustl--stacked .trustl__item,
  .trustl--stacked .trustl__item:first-child,
  .trustl--stacked .trustl__item:last-child,
  .trustl--stacked .trustl__item:only-child {
    flex: none;
    justify-content: center;
    white-space: normal;
    padding-left: 0;
    text-align: center;
  }

  .trustl--stacked.trustl--separators .trustl__item + .trustl__item::before {
    display: none;
  }

  /* ==========================================================
     Petits écrans. Le nowrap qui garantit la ligne nette en
     desktop fait déborder les colonnes sur 375 px (iPhone SE) :
     le texte chevauche l'élément voisin.

     — « auto » (défaut) : géré par le JS ci-dessus.
     — « wrap » : la disposition est conservée, mais le
       texte peut se replier sur deux lignes DANS sa colonne, en
       suivant l'alignement de celle-ci (gauche / centre / droite).
     — « stack » : un argument par ligne, le tout centré ; les
       filets verticaux n'ont plus de sens et disparaissent.
     ========================================================== */
  @media (width <= 750px) {
    .trustl--m-wrap .trustl__item {
      white-space: normal;
    }

    .trustl--m-wrap.trustl--justify .trustl__text { text-align: center; }
    .trustl--m-wrap.trustl--justify .trustl__item:first-child .trustl__text { text-align: left; }
    .trustl--m-wrap.trustl--justify .trustl__item:last-child .trustl__text { text-align: right; }

    .trustl--m-stack {
      flex-direction: column;
      flex-wrap: nowrap;
      align-items: center;
      gap: 8px;
    }

    .trustl--m-stack .trustl__item,
    .trustl--m-stack .trustl__item:first-child,
    .trustl--m-stack .trustl__item:last-child,
    .trustl--m-stack .trustl__item:only-child {
      flex: none;
      justify-content: center;
      white-space: normal;
      padding-left: 0;
      text-align: center;
    }

    .trustl--m-stack.trustl--separators .trustl__item + .trustl__item::before {
      display: none;
    }
  }
/* END_BLOCK:reassurance */

/* START_BLOCK:review (INDEX:208) */
.review {
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  shopify-visual-preview-block-list .review[data-visual-preview-mode] {
    width: 400px;
  }

  /* ---- Display 7 : Témoignage (photo + citation) ---- */

  /* Fond + arrondi personnalisés (surchargent la carte du thème) */
  .review--7 {
    background-color: var(--testi-bg, #f5f4f1) !important;
    border-radius: var(--testi-radius, 20px) !important;
  }

  .rev-testi {
    position: relative;
    display: flex;
    align-items: center;
    gap: 16px;
    padding-right: 28px; /* laisse la place au guillemet déco */
  }

  .rev-testi__avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
  }

  .rev-testi__body {
    min-width: 0;
    flex: 1;
  }

  .rev-testi__head {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 6px;
  }

  .rev-testi__name {
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.2;
  }

  .rev-stars {
    position: relative;
    display: inline-block;
    font-size: 15px;
    line-height: 1;
    letter-spacing: 2px;
    white-space: nowrap;
  }

  .rev-stars__bg { color: #e2ddce; }

  .rev-stars__fg {
    position: absolute;
    top: 0;
    left: 0;
    width: var(--pct, 100%);
    overflow: hidden;
    color: #f5b301;
  }

  .rev-testi__text {
    font-style: italic;
    line-height: 1.5;
    opacity: 0.85;
  }

  .rev-testi__text > * {
    margin: 0;
  }

  .rev-testi__mark {
    position: absolute;
    top: -6px;
    right: 4px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 60px;
    line-height: 1;
    color: #f3d38a;
    opacity: 0.55;
    pointer-events: none;
    user-select: none;
  }

  @media (width <= 600px) {
    .rev-testi { gap: 12px; padding-right: 8px; }
    .rev-testi__avatar { width: 48px; height: 48px; }
    .rev-testi__mark { display: none; }
  }
/* END_BLOCK:review */

/* START_BLOCK:reviews-badge (INDEX:209) */
.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(--gap-sm);
    background-color: transparent;
  }

  .reviews-badge_badge--wrapped {
    border-radius: var(--badge-border-radius);
    padding: var(--padding-sm) var(--padding-md);
    background-color: var(--color-background);
    height: 40px;
  }

  .reviews-badge_stars:has(.icon) {
    height: 20px;
  }

  .reviews-badge_stars svg {
    width: 90px;
  }

  .reviews-badge_stars .icon {
    font-size: 20px !important;
    margin: 0 -4px;
    font-variation-settings: 'FILL' 0, 'wght' var(--icon-weight), 'GRAD' 0, 'opsz' 20;
  }

  .reviews-badge_stars .icon {
    color: var(--star-color, var(--color-stars-icons));
  }

  .reviews-badge_stars .icon--google {
    color: var(--star-color, #fbbc05);
  }

  .reviews-badge_stars .icon--star-filled {
    font-variation-settings: 'FILL' 1, 'wght' var(--icon-weight), 'GRAD' 0, 'opsz' 20;
  }

  .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 {
    font-size: var(--font-body--size);
  }

  .reviews-badge_text-1 p,
  .reviews-badge_text-2 p {
    margin: 0;
  }

  @media screen and (max-width: 768px) {
    .reviews-badge_badge {
      gap: 7px;
    }

    .reviews-badge_badge--wrapped {
      padding: 10px 15px;
    }

    .reviews-badge_text-1,
    .reviews-badge_text-2 {
      font-size: var(--font-body--size-small);
    }

    .reviews-badge_logo img,
    .reviews-badge_logo svg {
      width: 100%;
      max-width: 80px;
    }

    .reviews-badge_stars svg {
      width: 80px;
    }
  }

  @media screen and (max-width: 390px) {
    .reviews-badge_text-1 {
      display: none;
    }
  }
/* END_BLOCK:reviews-badge */

/* START_BLOCK:separator (INDEX:210) */
.separator-block {
    width: 100%;
  }

  shopify-visual-preview-block-list .separator-block[data-visual-preview-mode] {
    width: 150px;
  }
/* END_BLOCK:separator */

/* START_BLOCK:size-guide (INDEX:211) */
.sg-trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    padding: 0;
    color: inherit;
    font: inherit;
    font-size: var(--sg-trigger-font, 14px);
    cursor: pointer;
  }
  .sg-trigger[hidden] {
    display: none;
  }

  /* Lien masqué : le bloc ne doit occuper AUCUNE place dans le flux
     (sinon le gap entre blocs de la section crée un trou).
     display: contents supprime la boîte du conteneur ; il ne reste que
     le bouton (display: none) et le dialog (hors flux) -> zéro espace.
     La fenêtre reste 100 % fonctionnelle via le lien inline. */
  .sg--trigger-hidden {
    display: contents;
  }
  .sg-trigger__text {
    text-decoration: underline;
    text-underline-offset: 3px;
  }
  .sg-trigger__icon {
    width: 1.15em;              /* suit la taille du texte */
    height: 1.15em;
    flex-shrink: 0;
    display: block;
  }
  .sg-trigger:hover { opacity: 0.7; }
  .sg-trigger:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

  .sg-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  /* ==========================================================
     Calculateur « Voir ma taille » — assistant en deux étapes,
     façon yade-paris : progression, unités, mesure, résultat.
     ========================================================== */
  .sg-calc {
    margin-bottom: 4px;
  }

  .sg-calc__progress {
    display: flex;
    gap: 10px;
    margin: 6px 0 14px;
  }

  .sg-calc__seg {
    flex: 1 1 0;
    height: 3px;
    border-radius: 3px;
    background: rgba(0, 0, 0, 0.1);
    transition: background 0.3s ease;
  }

  .sg-calc__seg--on {
    background: var(--sg-cta, #482922);
  }

  .sg-calc__stepline {
    margin: 0 0 4px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    opacity: 0.45;
  }

  .sg-calc__heading {
    margin: 0 0 14px;
    font-size: 1.05rem;
    font-weight: 800;
  }

  .sg-calc__units {
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.05);
    margin-bottom: 16px;
  }

  .sg-calc__unit {
    border: none;
    background: none;
    padding: 7px 16px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: inherit;
    opacity: 0.55;
    cursor: pointer;
  }

  .sg-calc__unit--on {
    background: #ffffff;
    opacity: 1;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
  }

  .sg-calc__label {
    display: block;
    margin: 0 0 8px;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  .sg-calc__field {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 16px;
    border-radius: 10px;
    border: 1px solid transparent;
    background: rgba(0, 0, 0, 0.045);
  }

  .sg-calc__field:focus-within {
    border-color: var(--sg-cta, #482922);
    background: #ffffff;
  }

  .sg-calc__input {
    flex: 1 1 auto;
    min-width: 0;
    border: none;
    background: none;
    font-size: 1rem;
    color: inherit;
  }

  .sg-calc__input:focus {
    outline: none;
  }

  .sg-calc__suffix {
    flex-shrink: 0;
    font-size: 0.85rem;
    opacity: 0.5;
  }

  .sg-calc__hint {
    margin: 8px 0 0;
    font-size: 0.8rem;
    opacity: 0.55;
  }

  .sg-calc__error {
    margin: 8px 0 0;
    font-size: 0.8rem;
    font-weight: 600;
    color: #b3261e;
  }

  .sg-calc__submit {
    display: block;
    width: 100%;
    margin-top: 16px;
    padding: 15px 20px;
    border: none;
    border-radius: 8px;
    background: var(--sg-cta, #482922);
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: opacity 0.15s ease;
  }

  .sg-calc__submit:hover {
    opacity: 0.88;
  }

  .sg-calc__result {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: 18px 20px;
    border-radius: 12px;
    background: color-mix(in srgb, var(--sg-cta, #482922) 7%, #ffffff);
  }

  .sg-calc__size {
    font-size: 2.1rem;
    font-weight: 800;
    line-height: 1;
    color: var(--sg-cta, #482922);
  }

  .sg-calc__fr {
    font-size: 0.9rem;
    font-weight: 600;
    opacity: 0.6;
  }

  .sg-calc__note {
    margin: 12px 0 0;
    font-size: 0.85rem;
    line-height: 1.55;
    opacity: 0.75;
  }

  /* L'attribut hidden doit toujours gagner : plusieurs éléments du
     calculateur (bouton choisir, lien boutique) ont une classe qui force
     un display, qui l'emporterait sinon sur l'attribut. */
  .sg-calc [hidden] {
    display: none !important;
  }

  .sg-calc__choose {
    display: block;
    width: 100%;
    margin-top: 14px;
    padding: 13px 18px;
    border: none;
    border-radius: 999px;
    background: var(--sg-accent, #482922);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: opacity 0.15s ease;
  }

  .sg-calc__choose:hover {
    opacity: 0.9;
  }

  /* ---- Conseil de coupe (sous la rangée de tailles de la fiche) ----
     Une seule ligne discrète, même ton que la ligne mannequin : la
     jauge à trois zones surchargait la colonne. */
  .sg-fit {
    margin: 12px 0 0;
    font-size: 12px;
    line-height: 1.4;
    color: var(--sg-muted, #8a7266);
  }

  /* ---- Ligne mannequin (sous la jauge de coupe) ---- */
  /* Le groupe tailles + jauge + mannequin reste serré ; la marge basse
     du mannequin crée la respiration avant le stock et le bouton. */
  .sg-model {
    margin: 12px 0 20px;
    font-size: 12px;
    line-height: 1.4;
    color: var(--sg-muted, #8a7266);
  }

  @media (max-width: 749px) {
    .sg-fit__labels {
      font-size: 11px;
      letter-spacing: 0.02em;
    }
  }


  .sg-calc__shop {
    display: block;
    margin-top: 14px;
    padding: 13px 18px;
    border-radius: 999px;
    background: var(--sg-accent, #482922);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-align: center;
    text-decoration: none;
  }

  .sg-calc__again {
    margin-top: 14px;
    padding: 0;
    border: none;
    background: none;
    color: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
  }

  .sg-calc__again:hover {
    opacity: 0.65;
  }

  /* Séparateur entre l'assistant et la grille : remplace l'ancienne
     introduction, devenue redondante avec l'aide du calculateur. */
  .sg-divider {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 22px 0 16px;
  }

  .sg-divider::before,
  .sg-divider::after {
    content: '';
    flex: 1 1 0;
    height: 1px;
    background: rgba(0, 0, 0, 0.09);
  }

  .sg-divider span {
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    opacity: 0.45;
  }

  /* ==========================================================
     Fenêtre : panneau latéral droit sur ordinateur (le geste du
     panier) ; feuille basse sur mobile, le site restant visible
     au-dessus, façon Yade.
     ========================================================== */
  .sg-modal {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    bottom: auto !important;
    margin: 0 !important;
    z-index: 10001;                /* utile hors top-layer (vieux navigateurs / fallback) */
    width: min(var(--sg-width, 560px), 94vw);
    max-width: 94vw;
    height: 100dvh;                /* fallback ; la hauteur exacte est posée en JS */
    max-height: none !important;   /* neutralise le max-height par défaut du <dialog> */
    padding: 0;
    border: none;
    /* Angles droits en desktop (le bottom sheet mobile garde les siens). */
    border-radius: 0;
    overflow: hidden;
    background: var(--sg-bg, #fcfaf6);
    color: var(--sg-text, #211d19);
    box-shadow: -24px 0 60px rgba(20, 12, 4, 0.25);
  }
  @media (prefers-reduced-motion: no-preference) {
    .sg-modal[open] {
      animation: sg-slide-in 0.28s cubic-bezier(0.2, 0.7, 0.3, 1);
    }
    @keyframes sg-slide-in {
      from { transform: translateX(48px); opacity: 0; }
      to { transform: none; opacity: 1; }
    }
  }
  /* Masquage EXPLICITE quand fermé : ne repose pas sur le style natif du
     <dialog> (absent sur vieux Safari iOS et dans les outils de session
     replay -> le contenu s'affichait inline dans la page). */
  .sg-modal:not([open]) {
    display: none !important;
  }
  .sg-modal[open] {
    display: flex;
    flex-direction: column;
  }
  .sg-modal::backdrop {
    background: rgba(24, 16, 8, 0.5);
    backdrop-filter: blur(2px);
  }

  /* Poignée de la feuille basse — mobile uniquement. */
  .sg-modal__grip {
    display: none;
  }

  .sg-modal__head {
    flex: 0 0 auto;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 22px 12px;
    background: var(--sg-bg, #fcfaf6);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  }
  .sg-modal__title {
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }
  .sg-modal__close {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border: none;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.06);
    color: inherit;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
  }
  .sg-modal__close:hover { background: rgba(0, 0, 0, 0.12); }
  .sg-modal__close:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

  .sg-modal__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 16px 22px 22px;
    padding-bottom: max(28px, env(safe-area-inset-bottom, 28px));
  }

  .sg-intro {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 22px;
  }
  .sg-intro__img {
    width: 96px;
    height: auto;
    flex-shrink: 0;
    object-fit: contain;
  }
  .sg-intro__text { font-size: 0.9rem; line-height: 1.6; }
  .sg-intro__text > * { margin: 0 0 0.5em; }
  .sg-intro__text > *:last-child { margin-bottom: 0; }

  /* ==========================================================
     Tableau. Le nuancier gradué (sg-cell--l1..l8) fait tout le
     travail visuel : XS clair -> 3XL foncé, gouttières couleur du
     fond entre les cellules, texte blanc sur les niveaux sombres.
     ========================================================== */
  .sg-tablecard {
    border-radius: var(--sg-radius, 14px);
    background: var(--sg-table-bg, #ffffff);
    border: 1px solid rgba(0, 0, 0, 0.06);
    overflow: hidden;
  }

  .sg-scroll {
    position: relative;
  }

  /* Barre de défilement fine et toujours stylée : sur Windows elle est
     visible en permanence, premier signal que le tableau glisse. */
  .sg-table-wrap {
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 0, 0, 0.25) transparent;
  }
  .sg-table-wrap::-webkit-scrollbar { height: 6px; }
  .sg-table-wrap::-webkit-scrollbar-track { background: transparent; }
  .sg-table-wrap::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 3px;
  }
  .sg-table-wrap:focus-visible { outline: 2px solid currentColor; outline-offset: -2px; }

  /* Voiles latéraux : tant qu'il reste des colonnes hors champ, le bord
     du tableau s'estompe — signal immédiat qu'on peut glisser. */
  .sg-scroll__fade {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 40px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s;
  }
  .sg-scroll__fade--left {
    left: 0;
    background: linear-gradient(to right, var(--sg-table-bg, #fff), transparent);
  }
  .sg-scroll__fade--right {
    right: 0;
    background: linear-gradient(to left, var(--sg-table-bg, #fff), transparent);
  }
  .sg-tablecard.sg-can-left .sg-scroll__fade--left { opacity: 1; }
  .sg-tablecard.sg-can-right .sg-scroll__fade--right { opacity: 1; }

  /* Indice explicite sous le tableau, avec flèche animée. Il disparaît
     dès le premier glissement, ou si tout tient à l'écran. */
  .sg-scroll__hint {
    display: none;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 8px 0 0;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.55;
  }
  .sg-tablecard.sg-can-right:not(.sg-scrolled) + .sg-scroll__hint { display: flex; }
  .sg-scroll__hint svg { width: 15px; height: 15px; flex-shrink: 0; }
  @media (prefers-reduced-motion: no-preference) {
    .sg-scroll__hint svg { animation: sg-nudge 1.4s ease-in-out infinite; }
    @keyframes sg-nudge {
      0%, 100% { transform: translateX(0); }
      50% { transform: translateX(5px); }
    }
  }

  .sg-table__overtitle {
    padding: 9px 14px;
    text-align: center;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    background: color-mix(in srgb, var(--sg-scale, #b7986b) 14%, var(--sg-table-bg, #fff));
  }

  .sg-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
  }

  /* En-têtes compactes : « 80 FR / 65 EU » replie sur deux lignes plutôt
     que d'élargir la colonne — plus de colonnes visibles d'un coup. */
  .sg-table__th {
    text-align: center;
    font-weight: 700;
    font-size: 0.66rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.3;
    padding: 10px 6px;
    min-width: 54px;
    vertical-align: bottom;
    white-space: normal;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }
  .sg-table__th--first {
    text-align: left;
    padding-left: 14px;
  }
  .sg-th-main {
    display: block;
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: 0.02em;
  }
  .sg-th-sub {
    display: block;
    margin-top: 1px;
    font-size: 0.62rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    opacity: 0.55;
  }

  .sg-table__cell {
    padding: 10px 6px;
    vertical-align: middle;
    text-align: center;
    font-weight: 500;
    min-width: 54px;
  }

  .sg-table__cell--first {
    text-align: left;
    padding-left: 14px;
    font-weight: 700;
    color: inherit;
  }
  .sg-cell-main {
    display: block;
    font-size: 0.84rem;
    white-space: nowrap;
  }
  .sg-cell-sub {
    display: block;
    margin-top: 1px;
    font-size: 0.68rem;
    font-weight: 500;
    white-space: nowrap;
    opacity: 0.55;
  }

  /* Première colonne figée : sur mobile, un tableau à 8 colonnes défile
     horizontalement et l'on perd sa ligne — le bonnet reste visible. */
  .sg-table__th--first,
  .sg-table__cell--first {
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--sg-table-bg, #ffffff);
  }

  /* Ligne recommandée par le calculateur : teinte brune douce + filet
     à gauche. Le résultat et la grille désignent la même taille. */
  .sg-table tbody tr.sg-row--reco .sg-table__cell {
    background: color-mix(in srgb, var(--sg-cta, #482922) 9%, var(--sg-table-bg, #fff));
  }
  .sg-table tbody tr.sg-row--reco .sg-table__cell--first {
    box-shadow: inset 3px 0 0 var(--sg-cta, #482922);
  }

  /* Nuancier : gouttières de la couleur du fond entre les cellules teintées,
     comme la grille de la référence. */
  .sg-cell--l1, .sg-cell--l2, .sg-cell--l3, .sg-cell--l4,
  .sg-cell--l5, .sg-cell--l6, .sg-cell--l7, .sg-cell--l8 {
    border: 2px solid var(--sg-table-bg, #ffffff);
    font-weight: 600;
  }
  .sg-cell--l1 { background: color-mix(in srgb, var(--sg-scale, #b7986b) 8%, var(--sg-table-bg, #fff)); }
  .sg-cell--l2 { background: color-mix(in srgb, var(--sg-scale, #b7986b) 13%, var(--sg-table-bg, #fff)); }
  .sg-cell--l3 { background: color-mix(in srgb, var(--sg-scale, #b7986b) 21%, var(--sg-table-bg, #fff)); }
  .sg-cell--l4 { background: color-mix(in srgb, var(--sg-scale, #b7986b) 31%, var(--sg-table-bg, #fff)); }
  .sg-cell--l5 { background: color-mix(in srgb, var(--sg-scale, #b7986b) 43%, var(--sg-table-bg, #fff)); }
  .sg-cell--l6 { background: color-mix(in srgb, var(--sg-scale, #b7986b) 57%, var(--sg-table-bg, #fff)); }
  .sg-cell--l7 {
    background: color-mix(in srgb, var(--sg-scale, #b7986b) 72%, var(--sg-table-bg, #fff));
    color: #ffffff;
  }
  .sg-cell--l8 {
    background: color-mix(in srgb, var(--sg-scale, #b7986b) 88%, var(--sg-table-bg, #fff));
    color: #ffffff;
  }

  .sg-cell--mute {
    color: rgba(0, 0, 0, 0.28);
    font-weight: 400;
  }

  /* Chiffres à chasse fixe : les plages s'alignent verticalement d'une
     ligne à l'autre, l'œil compare les bornes sans effort. */
  .sg-table tbody td {
    font-variant-numeric: tabular-nums;
  }

  /* Survol : sur un tableau de mensurations, on suit sa ligne du doigt.
     Le surlignage remplace ce geste au clavier comme à la souris. */
  @media (hover: hover) {
    .sg-modal[data-row-hover="true"] .sg-table tbody tr:hover {
      background: color-mix(in srgb, var(--sg-accent, #8b2942) 10%, var(--sg-table-bg, #fff));
    }
  }

  /* Lignes alternées : sur un tableau à quatre colonnes, l'œil perd sa
     ligne au retour à la marge. Le zébrage la tient. */
  .sg-modal--zebra .sg-table tbody tr:nth-child(even) {
    background: color-mix(in srgb, var(--sg-accent, #8b2942) 4%, var(--sg-table-bg, #fff));
  }

  /* Sans zébrage, un filet sépare les lignes. */
  .sg-modal:not(.sg-modal--zebra) .sg-table tbody tr + tr .sg-table__cell {
    border-top: 1px solid rgba(0, 0, 0, 0.07);
  }
  .sg-modal:not(.sg-modal--zebra) .sg-table tbody tr + tr .sg-cell--l1,
  .sg-modal:not(.sg-modal--zebra) .sg-table tbody tr + tr .sg-cell--l2,
  .sg-modal:not(.sg-modal--zebra) .sg-table tbody tr + tr .sg-cell--l3,
  .sg-modal:not(.sg-modal--zebra) .sg-table tbody tr + tr .sg-cell--l4,
  .sg-modal:not(.sg-modal--zebra) .sg-table tbody tr + tr .sg-cell--l5,
  .sg-modal:not(.sg-modal--zebra) .sg-table tbody tr + tr .sg-cell--l6,
  .sg-modal:not(.sg-modal--zebra) .sg-table tbody tr + tr .sg-cell--l7,
  .sg-modal:not(.sg-modal--zebra) .sg-table tbody tr + tr .sg-cell--l8 {
    border-top: 2px solid var(--sg-table-bg, #ffffff);
  }

  /* Encadré conseil, façon carte douce de la référence. */
  .sg-tip {
    margin-top: 20px;
    padding: 15px 16px;
    border-radius: 14px;
    background: color-mix(in srgb, var(--sg-accent, #8b2942) 7%, #ffffff);
  }
  .sg-tip__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 5px;
    font-weight: 800;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  .sg-tip__icon {
    display: inline-flex;
    flex-shrink: 0;
    color: var(--sg-accent, #8b2942);
  }
  .sg-tip__icon svg { width: 16px; height: 16px; display: block; }
  .sg-tip__text { font-size: 0.88rem; line-height: 1.6; }
  .sg-tip__text > * { margin: 0; }

  /* Un filet sépare l'aide à la mesure du bloc de décision qui précède :
     sans lui, les deux paragraphes se lisent comme la suite du conseil. */
  .sg-mesure {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid rgba(0, 0, 0, 0.09);
  }
  .sg-mesure__title {
    margin: 0 0 8px;
    font-weight: 800;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  .sg-mesure__text { font-size: 0.88rem; line-height: 1.6; }
  .sg-mesure__text > * { margin: 0 0 0.7em; }
  .sg-mesure__text > *:last-child { margin-bottom: 0; }
  .sg-mesure__text strong { font-weight: 700; }

  /* Note de retour, façon « Perfect fit guarantee » : carte pleine largeur,
     icône + titre en capitales + phrase. */
  .sg-retour {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 20px 0 0;
    padding: 14px 16px;
    border-radius: 14px;
    background: color-mix(in srgb, var(--sg-accent, #8b2942) 6%, #ffffff);
    font-size: 0.86rem;
    line-height: 1.55;
  }
  .sg-retour__icon {
    display: inline-flex;
    flex-shrink: 0;
    color: var(--sg-accent, #8b2942);
    margin-top: 2px;
  }
  .sg-retour__icon svg { width: 18px; height: 18px; display: block; }
  .sg-retour__content {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  .sg-retour__title {
    font-weight: 800;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  /* ==========================================================
     Mobile : feuille basse façon Yade. Ancrée en bas, coins
     arrondis en haut, le site reste visible au-dessus derrière
     le voile. Poignée + tirer vers le bas pour fermer.
     ========================================================== */
  @media (width <= 749px) {
    .sg-modal {
      top: auto !important;
      bottom: 0 !important;
      right: 0 !important;
      left: 0 !important;
      width: 100vw;
      max-width: 100vw;
      border-radius: 20px 20px 0 0;
      box-shadow: 0 -18px 50px rgba(20, 12, 4, 0.28);
    }
    .sg-modal__grip {
      display: block;
      flex: 0 0 auto;
      width: 42px;
      height: 4px;
      border-radius: 2px;
      margin: 10px auto 0;
      background: rgba(0, 0, 0, 0.16);
    }
    .sg-modal__head { padding: 10px 18px 10px; }
    .sg-modal__title { font-size: 1.02rem; }
    .sg-modal__body { padding: 14px 16px 22px; }
    .sg-table { font-size: 0.78rem; }
    .sg-table__th { padding: 9px 5px; font-size: 0.62rem; }
    .sg-th-main { font-size: 0.86rem; }
    .sg-table__cell { padding: 9px 5px; min-width: 48px; }
    .sg-table__th--first,
    .sg-table__cell--first { padding-left: 12px; }
    .sg-intro { gap: 12px; }
    .sg-intro__img { width: 84px; }
  }
  @media (width <= 749px) and (prefers-reduced-motion: no-preference) {
    .sg-modal[open] {
      animation: sg-slide-up 0.32s cubic-bezier(0.2, 0.7, 0.3, 1);
    }
  }
  @keyframes sg-slide-up {
    from { transform: translateY(56px); opacity: 0.4; }
    to { transform: none; opacity: 1; }
  }
/* END_BLOCK:size-guide */

/* START_BLOCK:slider (INDEX:212) */
.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:213) */
.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:214) */
.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:215) */
.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%;
    padding: 0 !important;
  }

  .tabs--wrapped .tabs__navigation-inner {
    flex-wrap: wrap;
  }

  .tabs__navigation-inner {
    display: flex;
    gap: 4px;
    overflow-x: auto;
    scrollbar-width: thin;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
  }

  .tabs__panel {
    margin-top: var(--margin-md);
    width: 100%;
  }

  @media (width > 750px) {
    .tabs__navigation {
      justify-content: var(--alignment);
    }
  }

  /* Reset wrappers .tab et .tab__tab autour des boutons */
  .tabs__navigation-inner .tab,
  .tabs__navigation-inner .tab__tab {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }

  /* Style flat sur le bouton */
  .tabs__navigation-inner .tab__button {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    min-height: 0 !important;
    padding: var(--tab-padding-y, 10px) var(--tab-padding-x, 18px) !important;
    border-radius: var(--tab-radius, 8px) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    font-size: var(--tab-font-size, 14px) !important;
    color: var(--tab-inactive-color, currentColor) !important;
    transition: background 200ms ease, color 200ms ease !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
  }

  .tabs__navigation-inner .tab__button:hover {
    background: var(--tab-hover-bg, rgba(0, 0, 0, 0.04)) !important;
  }

  /* État actif */
  .tabs__navigation-inner .tab.active .tab__button {
    background: var(--tab-active-bg, #FFF6CC) !important;
    color: var(--tab-active-color, inherit) !important;
    border: none !important;
  }
/* END_BLOCK:tabs */

/* START_BLOCK:text (INDEX:216) */
.text-block {
    text-align: var(--text-align-mobile);
    align-content: center;
    margin-top: var(--margin-top);
    margin-bottom: var(--margin-bottom);
  }

  @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);
  }

  /* ==========================================================
     Badge

     Deux placements.

     « À la suite » : le <p> du richtext passe en display: inline, le badge se
     pose donc à la fin du texte, où que celui-ci s'arrête.

     « À droite du bloc » : le conteneur passe en flex, le badge se cale à
     droite du titre entier et se centre sur sa hauteur totale.

     Alignement vertical : .text-block__badge n'a volontairement pas de
     font-size, il hérite de celui du titre. Son vertical-align en em se
     réfère donc à la taille du titre et le décalage reste proportionné
     partout. La petite taille du badge vit sur .text-block__badge-label.
     ========================================================== */
  .text-block--with-badge > * {
    display: inline;
  }

  .text-block--badge-right {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--badge-gap, 10px);
    justify-content: var(--badge-justify-mobile, flex-start);
  }

  @media (width > 750px) {
    .text-block--badge-right {
      justify-content: var(--badge-justify, flex-start);
    }
  }

  .text-block--badge-right > * {
    margin-block: 0;
  }

  .text-block--badge-right .text-block__badge {
    margin-left: 0;
    flex: 0 0 auto;
    /* Le centrage est déjà assuré par align-items du conteneur flex. */
    vertical-align: baseline;
  }

  .text-block__badge {
    display: inline-flex;
    align-items: center;
    vertical-align: var(--badge-shift, 0.27em);
    line-height: 0;
    margin-left: var(--badge-gap, 10px);
    padding: var(--badge-padding-y, 2px) var(--badge-padding-x, 8px);
    background-color: var(--badge-bg, #e7eeff);
    border-radius: var(--badge-radius, 5px);
    white-space: nowrap;
    text-align: left;
  }

  .text-block__badge-label {
    display: block;
    color: var(--badge-color, #000000);
    font-size: var(--badge-size-mobile, 10px);
    font-weight: var(--badge-weight, 400);
    line-height: 1.5;
    letter-spacing: normal;
    text-transform: var(--badge-case, uppercase);
  }

  @media (width > 750px) {
    .text-block__badge-label {
      font-size: var(--badge-size, 10px);
    }
  }

  /* Les règles de couleur et de taille personnalisées du bloc emploient
     !important : on les neutralise sur le libellé du badge. Le conteneur, lui,
     doit conserver la taille héritée du titre, dont dépend son alignement. */
  .text-block--custom-color .text-block__badge-label,
  .text-block--custom-size .text-block__badge-label {
    color: var(--badge-color, #000000) !important;
    font-size: var(--badge-size-mobile, 10px) !important;
  }

  @media (width > 750px) {
    .text-block--custom-color .text-block__badge-label,
    .text-block--custom-size .text-block__badge-label {
      font-size: var(--badge-size, 10px) !important;
    }
  }

  /* Taille de texte personnalisée (desktop + mobile).
     Mobile = valeur de base, desktop appliqué au-dessus de 750px.
     S'applique à tous les styles (titres et paragraphes) et au contenu "voir plus". */
  .text-block--custom-size,
  .text-block--custom-size > *,
  .text-block--custom-size .see-more__content > * {
    font-size: var(--font-size-mobile) !important;
  }

  @media (width > 750px) {
    .text-block--custom-size,
    .text-block--custom-size > *,
    .text-block--custom-size .see-more__content > * {
      font-size: var(--font-size-desktop) !important;
    }
  }

  /* Police personnalisée : famille, style et graisse viennent de la police
     choisie dans l'éditeur, dont la déclaration @font-face est injectée par la
     balise style en tête de bloc. Même portée que la taille personnalisée —
     titres, paragraphes et contenu « voir plus » — d'où le !important, qui
     l'emporte sur les polices du thème.
     Seuls la racine et ses enfants directs sont visés : le gras et l'italique
     saisis dans le texte riche gardent ainsi leur propre rendu, avec les
     variantes réelles chargées en tête de bloc. */
  .text-block--custom-font,
  .text-block--custom-font > *:not(.text-block__badge),
  .text-block--custom-font .see-more__content > * {
    font-family: var(--custom-font-family) !important;
    font-style: var(--custom-font-style) !important;
    font-weight: var(--custom-font-weight) !important;
  }

  /* Le badge garde la police du thème : il se pose dans le texte sans en faire
     partie visuellement, comme pour sa couleur et sa taille plus haut. */
  .text-block--custom-font .text-block__badge {
    font-family: var(--font-body--family);
    font-style: normal;
  }

  /* Couleur personnalisée : s'applique à tous les styles (titres, paragraphes,
     liens, contenu "voir plus"), avec priorité sur les couleurs du thème. */
  .text-block--custom-color,
  .text-block--custom-color > *,
  .text-block--custom-color .see-more__content,
  .text-block--custom-color .see-more__content > *,
  .text-block--custom-color a,
  .text-block--custom-color strong,
  .text-block--custom-color em,
  .text-block--custom-color span {
    color: var(--text-color) !important;
  }

  .text-block a {
    color: inherit;
  }

  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;
  }
/* END_BLOCK:text */

/* START_BLOCK:this-pack-contains (INDEX:217) */
.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:220) */
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:221) */
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(--padding-xs) 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:222) */
.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:223) */
.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:227) */
.header__icon-cart {
    position: relative;
    cursor: pointer;
  }

  /* Mode icône personnalisée (image ou SVG) : le wrapper se cale sur la
     taille choisie ; le mode icône de police garde son rendu d'origine. */
  .header__icon-cart--custom {
    height: auto;
    display: inline-flex;
    align-items: center;
  }

  .header__icon-cart-img,
  .header__icon-cart-svg {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .header__icon-cart-img {
    width: var(--cart-svg-size, 24px);
    height: var(--cart-svg-size, 24px);
    object-fit: contain;
  }

  /* L'image devient un masque rempli par currentColor : l'icône suit la
     couleur du header, idéal pour un pictogramme monochrome. */
  .header__icon-cart-img--tint {
    background-color: currentColor;
    -webkit-mask: var(--cart-icon-url) center / contain no-repeat;
    mask: var(--cart-icon-url) center / contain no-repeat;
  }

  .header__icon-cart-svg svg {
    width: var(--cart-svg-size, 24px);
    height: var(--cart-svg-size, 24px);
    display: block;
  }
/* END_SNIPPET:cart-icon */

/* START_SNIPPET:checkbox (INDEX:228) */
.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-border);
    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: var(--color-input-border);
    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:229) */
.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:dropdown-localization (INDEX:232) */
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:234) */
.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:235) */
.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:236) */
.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);
  }
/* END_SNIPPET:filters-inline */

/* START_SNIPPET:filters-modal (INDEX:237) */
.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:238) */
.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:240) */
.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:241) */
.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;
    }
  }

  .header__menu-desktop-list--uppercase .header__menu-link-text {
    text-transform: uppercase;
  }

  .header__menu-link-text {
    font-weight: var(--font-weight);
  }

  /* 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);
  }

  /* 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;
    display: none;
  }

  dropdown-component[data-open='true'] .dropdown-content.header__submenu--megamenu {
    display: block;
  }

  .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:244) */
.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:245) */
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:252) */
.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:253) */
.badge:has(.badge__savings:empty) {
    display: none;
  }
/* END_SNIPPET:price */

/* START_SNIPPET:product-badges (INDEX:254) */
.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 (INDEX:255) */
.product-card {
    display: flex;
    flex-direction: column;
    gap: var(--gap);
    width: 100%;
    height: 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:256) */
.product-media img {
    aspect-ratio: var(--ratio);
    object-fit: cover;
  }
/* END_SNIPPET:product-media */

/* START_SNIPPET:product-option-value-button (INDEX:257) */
.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:258) */
@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:260) */
: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;
  }
/* END_SNIPPET:quantity-selector */

/* START_SNIPPET:radio (INDEX:261) */
.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-border);
    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: var(--color-input-border);
  }

  .radio > input:disabled + .radio__label::after {
    background-color: currentColor;
  }
/* END_SNIPPET:radio */

/* START_SNIPPET:rating-stars (INDEX:262) */
.rating {
    display: flex;
    align-items: center;
    gap: var(--gap-sm);
    flex-wrap: wrap;
  }

  .rating__stars {
    height: 22px;
  }

  .rating-star {
    font-size: 22px !important;
    margin: 0 -4.5px;
    color: var(--color-stars-icons);
  }

  .rating-star--filled {
    font-variation-settings: 'FILL' 1, 'wght' var(--icon-weight), 'GRAD' 0, 'opsz' 24;
  }

  .rating-star--unfilled {
    font-variation-settings: 'FILL' 0, 'wght' var(--icon-weight), 'GRAD' 0, 'opsz' 24;
  }

  .rating__count {
    line-height: 22px;
  }
/* END_SNIPPET:rating-stars */

/* START_SNIPPET:review (INDEX:263) */
.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:search-popup (INDEX:265) */
.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:267) */
.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:268) */
slider-component {
    position: relative;
  }
/* END_SNIPPET:slider */

/* START_SNIPPET:sort-inline (INDEX:269) */
.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:271) */
.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-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(: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:272) */
.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:273) */
.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:274) */
.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:277) */
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:278) */
.header__icon-wishlist {
    position: relative;
    cursor: pointer;
    color: inherit;
  }
/* END_SNIPPET:wishlist-icon */