/** Shopify CDN: Minification failed

Line 37:19 Expected identifier but found whitespace
Line 37:21 Unexpected "{"
Line 37:28 Expected ":"
Line 37:61 Expected ":"
Line 38:20 Expected identifier but found whitespace
Line 38:22 Unexpected "{"
Line 38:29 Expected ":"
Line 38:62 Expected ":"
Line 39:18 Expected identifier but found whitespace
Line 39:20 Unexpected "{"
... and 17 more hidden warnings

**/
.lumin-text__fancy1 { 
      position: relative;                
      background-clip: text;
      -webkit-background-clip: text;
      background-image: var(--fancy-gradient);
      color: transparent;
    }
.lumin-text__fancy2 {      
      padding-left: var(--fancy-padding-left);
      padding-right: var(--fancy-padding-left);
      padding-top: var(--fancy-padding-top);
      padding-bottom: var(--fancy-padding-bottom);
      border-radius: var(--fancy-border-radius);
      position: relative;                
      background-clip: text;
      -webkit-background-clip: text;
      background: var(--fancy-background);
      color: var(--fancy-text);
      font-size: var(--fancy-text-size);
    }
.lumin-text__fancy3 {      
      padding-left: {{ block.settings.padding-left-fancy }}px;
      padding-right: {{ block.settings.padding-left-fancy }}px;
      padding-top: {{ block.settings.padding-fancy }}px;
      padding-bottom: {{ block.settings.padding-fancy }}px;
      border-radius: {{ block.settings.border-fancy }}px;
      position: relative;                
      background-clip: text;
      background-image: {%- if highlight_background_text_color_alpha != 0 -%}
        {{ block.settings.highlight_background_color }}
      {%- endif -%};
      color: transparent;
    }

/* =====================================================================
   BELLENCORE v3 — correctifs de conformite (02/09/2026)
   Ne pas retirer sans lire BELLENCORE_CONTEXT.md §11.

   1) sections/review-slider.liquid code EN DUR cinq etoiles pleines dans
      chaque carte d'avis, sans reglage pour les couper : une note 5/5
      fabriquee s'affichait sur la homepage et sur 4 fiches produit,
      au-dessus d'avis qui n'existent pas encore. Interdit (§19).
      On cible les <svg> enfants et non le <span> : le <span> porte un
      style="display:flex !important" en ligne, qu'aucune feuille de style
      ne peut battre.

   2) .lumin-text__fancy1 met color:transparent et repeint le texte via
      --fancy-gradient. Cette variable est declaree vide chez nous, donc
      var() est invalide et le texte reste transparent : INVISIBLE. Or 45
      sections du theme transforment tout [texte entre crochets] en
      .lumin-text__fancy1, donc nos placeholders disparaissaient de la page
      tout en la faisant paraitre complete. On force une couleur lisible et
      on annule le background-clip. Note : les crochets eux-memes sont
      manges par le filtre Liquid, [X] s'affiche donc "X".
   ===================================================================== */
.testimonial-stars > svg { display: none !important; }

.lumin-text__fancy1 {
  color: #23201F;
  background-image: none;
  background-clip: border-box;
  -webkit-background-clip: border-box;
}

/* ===================== BELLENCORE — Hero d'accueil ======================
   Ajouté le 04/09/2026. Portée : la seule section « hero » du gabarit
   d'accueil (sélecteur d'attribut : l'id rendu finit par « __hero »).
   Aucune autre instance d'image-banner n'est touchée.
   Image : 2022 × 778 px, ratio 2,599. Sujet et appareil dans le tiers droit,
   espace négatif à gauche.
   ======================================================================= */

/* Cadrage par défaut : garde la femme ET l'appareil dans le champ. */
section[id$="__hero"] .banner__media > img {
  object-position: 82% center;
}

/* Mobile et tablette (< 1250 px) : l'image devient un bandeau et le texte
   passe dessous. L'en-tête transparent se pose alors sur le fond calcaire,
   donc le titre n'est jamais recouvert par le logo.

   04/09/2026 — compactage de l'en-tête mobile. Le fichier logo porte 32,1 %
   de vide TRANSPARENT en hauteur (141 px en haut, 122 px en bas sur 819) :
   ce vide gonflait l'en-tête sans rien afficher. On le neutralise par des
   marges négatives proportionnelles à la largeur du logo — le logo garde
   EXACTEMENT sa taille visible, il n'est ni réduit ni rogné — et on ramène
   le padding vertical du lien de 7,5 px à 4 px.
   Cible tactile du lien du logo : >= 48 px. Icônes menu / recherche / panier :
   44 x 44 px, inchangées.
   Mesuré sur le rendu : en-tête 82,4 -> 56,4 px a 375 px, 86,7 -> 59,3 px a
   390 px, 95,6 -> 65,4 px a 430 px. L'image du Hero remonte de 50 px.
   Le padding de section = hauteur réelle de l'en-tête + 18 px de respiration ;
   plafonné a 98 px des que le logo atteint sa largeur maximale de 220 px. */
@media screen and (max-width: 989px) {
  .header__heading-link {
    padding-top: 4px;
    padding-bottom: 4px;
  }
  .header__heading-logo {
    display: block;
    margin-top: -7.34%;
    margin-bottom: -6.35%;
  }
  section[id$="__hero"] {
    padding-top: min(calc(16.33vw + 13px), 98px);
  }
}

/* Desktop (>= 990 px) — compactage de l'en-tête, même principe que le mobile
   (vague 15, #11, 09/09/2026). L'en-tête desktop mesurait 125 px dont ~30 px de
   vide TRANSPARENT porté par le fichier logo (141 px en haut, 122 px en bas sur
   819). On neutralise ce vide par des marges négatives proportionnelles à la
   largeur du logo — le logo garde EXACTEMENT sa taille visible (220 px), il n'est
   ni réduit ni rogné — et on ramène le padding vertical du lien de 7,5 px à 4 px.
   La barre de nav `list-menu--inline` (inline-flex, flex-wrap: wrap) est contrainte
   à ~505 px vers 990 px et débordait sur 2 lignes à cause du `padding-right: 2.7rem`
   porté par les 4 `summary` de menus déroulants : on le ramène à 1,4 rem, la nav
   tient alors sur une seule ligne de 990 px aux grands écrans.
   Mesuré sur réplique locale : en-tête 125 -> 87,9 px, nav 1 ligne de 990 à
   1920 px, logo 220 px inchangé, 0 débordement (Home + PDP). */
@media screen and (min-width: 990px) {
  .header__heading-link {
    padding-top: 4px;
    padding-bottom: 4px;
  }
  .header__heading-logo {
    display: block;
    margin-top: -7.34%;
    margin-bottom: -6.35%;
  }
  .header__inline-menu summary.list-menu__item {
    padding-right: 1.4rem;
  }
}

/* 990-1249 px : l'en-tête desktop (désormais 87,9 px mesurés, cf. bloc ci-dessus)
   se pose alors que le Hero est encore empilé. Le padding-top du Hero suit la
   hauteur réelle de l'en-tête + ~28 px de respiration (87,9 + 28 ≈ 116) ; l'ancien
   152 px était calibré sur l'en-tête de 125 px et n'est plus adapté. */
@media screen and (min-width: 990px) and (max-width: 1249px) {
  section[id$="__hero"] {
    padding-top: 116px;
  }
}

@media screen and (max-width: 749px) {
  section[id$="__hero"] .banner__box {
    padding: 3rem 2rem 4rem;
  }
}

@media screen and (min-width: 750px) and (max-width: 1249px) {
  section[id$="__hero"] .banner {
    flex-direction: column;
  }
  section[id$="__hero"] .banner--medium:not(.banner--adapt) {
    min-height: 0;
  }
  section[id$="__hero"] .banner__media {
    position: relative;
    height: max(40rem, 38.48vw);
  }
  section[id$="__hero"] .banner__content {
    order: 2;
    padding: 0 1.5rem;
  }
  section[id$="__hero"] .banner--content-align-left.banner--desktop-transparent .banner__box {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: 4rem 2rem 5rem;
  }
}

/* Desktop (>= 1250 px) : image pleine largeur, texte à gauche dans l'espace
   négatif. La largeur du bloc de texte est bornée pour qu'il ne vienne
   jamais mordre sur le sujet. */
@media screen and (min-width: 1250px) {
  section[id$="__hero"] .banner__media > img {
    object-position: 65% center;
  }
  section[id$="__hero"] .banner--content-align-left.banner--desktop-transparent .banner__box {
    max-width: 58rem;
  }
}

/* Au-delà de 1456 px, la hauteur suit exactement le ratio de l'image
   (100 / 2,599 = 38,48 vw) : plus aucun recadrage vertical. */
@media screen and (min-width: 1456px) {
  section[id$="__hero"] .banner--medium:not(.banner--adapt) {
    min-height: 38.48vw;
  }
  section[id$="__hero"] .banner--content-align-left.banner--desktop-transparent .banner__box {
    max-width: 64rem;
  }
}
/* =================== fin BELLENCORE — Hero d'accueil =================== */

/* ===== BELLENCORE — Hero UI 3.0 (vague 15 — 8 septembre 2026) =========
   Direction : luxury beauty, calme, editorial.  PAS de dramatisation.

   Voile directionnel CLAIR (jamais sombre) : le texte du hero est
   basalte #23201F sur une image d'interieur CLAIR ; un voile sombre
   degraderait le contraste.  Un voile clair, chaud, concentre a gauche
   (cote texte) et NUL a droite (cote sujet) : ca lit comme une lumiere
   douce, ca sert la lisibilite, ca ajoute une profondeur discrete.
   Desktop >= 1250 px UNIQUEMENT : seul cas ou le texte se superpose a
   l'image (en dessous le texte est sous l'image, sur calcaire).
   On ne touche PAS le ::after du theme (#Banner-...__hero::after,
   opacity 0, pilote par image_overlay_opacity) : pseudo distinct sur
   .banner__media.  .banner__media est deja position:absolute a ce
   palier (le theme ne pose position:relative que pour 750-1249 px).
   ===================================================================== */
@media screen and (min-width: 1250px) {
  section[id$="__hero"] .banner__media::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(
      94deg,
      rgba(246, 244, 242, 0.60) 0%,
      rgba(246, 244, 242, 0.26) 24%,
      rgba(246, 244, 242, 0) 50%
    );
  }
  /* Halo clair tres leger sous le texte du hero : insurance lisibilite,
     invisible a l'oeil.  Jamais d'ombre portee marquee. */
  section[id$="__hero"] .banner__heading,
  section[id$="__hero"] .banner__text p {
    text-shadow: 0 1px 12px rgba(246, 244, 242, 0.4);
  }
}

/* Composition : titre du hero un cran au-dessus du H1 courant (UI 3.0
   patch A), sobre, interligne serre.  Marcellus conserve.  Applique a
   toutes les largeurs (le clamp gere le mobile : min 34 px a 390 px). */
section[id$="__hero"] .banner__heading,
section[id$="__hero"] .banner__heading.h1 {
  font-size: clamp(3.4rem, 2rem + 3.4vw, 6rem);
  line-height: 1.04;
  letter-spacing: -0.012em;
}

/* Respiration interne du bloc : titre -> texte -> boutons. */
section[id$="__hero"] .banner__text {
  margin-top: 1.4rem;
}
section[id$="__hero"] .banner__buttons {
  margin-top: 2.6rem;
  gap: 1.2rem;
}

/* P1-1 (controle visuel A+B) : en layout EMPILE (750-1249 px), le bloc
   texte etait `max-width: 100%` (ligne ~141 plus haut) et le titre
   pouvait courir sur ~1130 px a 60 px.  On borne le bloc a 60rem comme
   en overlay (>=1250 px) : le titre wrappe alors sur ~2 lignes, la
   composition reste coherente de part et d'autre du seuil 1250.
   Meme selecteur que la regle d'origine -> gagne a specificite egale.
   On NE touche NI le clamp du titre, NI >=1250 px, NI <750 px, NI le
   voile, NI le rythme texte/boutons. */
@media screen and (min-width: 750px) and (max-width: 1249px) {
  section[id$="__hero"] .banner--content-align-left.banner--desktop-transparent .banner__box {
    max-width: 60rem;
  }
}
/* ============== fin BELLENCORE — Hero UI 3.0 (vague 15) =============== */

@media screen and (min-width: 990px) {
  .section-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 30;
    transform: none !important;
  }
  .header-wrapper {
    background: #f4f2f0;
    border-bottom: 1px solid rgba(35,32,31,.08);
  }
  #site-header {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    grid-template-areas: 'navigation heading icons';
    align-items: center;
    column-gap: 24px;
    height: 74px;
    min-height: 74px;
    max-width: none;
    width: 100%;
    padding: 0 clamp(24px, 4vw, 80px);
    position: relative;
    left: auto;
    transform: none;
    background: #f4f2f0;
  }
  #site-header .header__heading,
  #site-header > .header__heading-link {
    grid-area: heading;
    justify-self: center;
    margin: 0;
  }
  #site-header .header__heading-link {
    margin: 0;
    padding: 4px 0;
  }
  #site-header .header__heading-logo-wrapper {
    width: 220px;
  }
  #site-header .header__heading-logo {
    opacity: 1;
  }
  #site-header .header__heading-logo-light {
    display: none;
  }
  #site-header .header__inline-menu {
    grid-area: navigation;
    justify-self: start;
    margin: 0;
    min-width: 0;
  }
  #site-header .list-menu--inline {
    flex-wrap: nowrap;
    gap: clamp(16px, 2vw, 32px);
  }
  #site-header .header__menu-item {
    min-height: 44px;
    padding: 0;
    font-size: 13px;
    font-weight: 400;
    letter-spacing: .07em;
    color: #23201f;
    white-space: nowrap;
  }
  #site-header .header__icons {
    grid-area: icons;
    justify-self: end;
    padding: 0;
  }
  #site-header .header__icons > :not(#cart-icon-bubble) {
    display: none;
  }
  #site-header #cart-icon-bubble {
    margin: 0;
    color: #23201f;
  }
  #MainContent.site-header-transition {
    margin-top: 0;
  }
  .announcement-bar__message {
    padding: 6px 0;
    min-height: 30px;
    font-size: 12px;
    line-height: 18px;
  }
  section[id$="__hero"] {
    padding-top: 0;
  }
  section[id$="__hero"] .banner {
    display: grid;
    grid-template-columns: 55% 45%;
    min-height: 560px !important;
    height: clamp(560px, 40vw, 680px);
    background: #f4f2f0;
  }
  section[id$="__hero"] .banner::before,
  section[id$="__hero"] .banner::after,
  section[id$="__hero"] .banner__media::after {
    display: none;
  }
  section[id$="__hero"] .banner__media {
    grid-column: 2;
    grid-row: 1;
    position: relative;
    inset: auto;
    height: 100%;
    width: 100%;
  }
  section[id$="__hero"] .banner__media img {
    object-fit: cover;
    object-position: 85% center;
  }
  section[id$="__hero"] .banner__content {
    grid-column: 1;
    grid-row: 1;
    order: initial;
    width: 100%;
    max-width: none;
    padding: 48px clamp(32px, 5vw, 96px);
    align-items: center;
  }
  section[id$="__hero"] .banner--content-align-left.banner--desktop-transparent .banner__box {
    min-width: 0;
    max-width: 580px;
    width: 100%;
    padding: 0;
    text-align: left;
    background: transparent;
  }
  section[id$="__hero"] .banner__heading {
    font-size: clamp(40px, 3.8vw, 64px);
    line-height: 1.08;
    text-shadow: none;
  }
  section[id$="__hero"] .banner__text {
    max-width: 46rem;
    margin-top: 22px;
    font-size: 16px;
    line-height: 1.6;
  }
  section[id$="__hero"] .banner__text p {
    text-shadow: none;
  }
  section[id$="__hero"] .banner__buttons {
    margin-top: 30px;
  }
  section[id$="__hero"] .banner__buttons > :nth-child(2) {
    display: none;
  }
  section[id$="__hero"] .banner__buttons .button {
    min-height: 50px;
    border-radius: 2px;
  }
  [id$="__faq"] {
    scroll-margin-top: 90px;
  }
}
