.elementor-449 .elementor-element.elementor-element-747496f{--display:flex;--min-height:720px;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--margin-top:-45px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:120px;--padding-bottom:60px;--padding-left:60px;--padding-right:60px;}.elementor-449 .elementor-element.elementor-element-747496f:not(.elementor-motion-effects-element-type-background), .elementor-449 .elementor-element.elementor-element-747496f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F3EEE3;}.elementor-449 .elementor-element.elementor-element-0f7d97a{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:50px 50px;--row-gap:50px;--column-gap:50px;}.elementor-449 .elementor-element.elementor-element-fb86b2c{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:flex-start;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-449 .elementor-element.elementor-element-28981b4{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 30px) 0px;}.elementor-449 .elementor-element.elementor-element-28981b4 .elementor-heading-title{font-family:"Lato", Sans-serif;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:3px;color:#C2A36B;}.elementor-449 .elementor-element.elementor-element-b830f09{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 30px) 0px;padding:0px 0px 30px 0px;}.elementor-449 .elementor-element.elementor-element-b830f09 .elementor-heading-title{font-family:"Cormorant Garamond", Sans-serif;font-size:68px;font-weight:400;line-height:1.05em;letter-spacing:-1px;color:#17251F;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-449 .elementor-element.elementor-element-00ac23d{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 40px) 0px;padding:0px 0px 40px 0px;font-family:"Lato", Sans-serif;font-size:17px;font-weight:400;line-height:1.7em;color:#17251F;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-449 .elementor-element.elementor-element-fbf4be7 .elementor-button{background-color:#17251F00;font-family:"Vemior", Sans-serif;font-weight:500;fill:#17251F;color:#17251F;padding:0px 0px 0px 0px;}.elementor-449 .elementor-element.elementor-element-fbf4be7{margin:30px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-449 .elementor-element.elementor-element-fbf4be7 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-449 .elementor-element.elementor-element-fbf4be7 .elementor-button .elementor-button-content-wrapper{gap:20px;}.elementor-449 .elementor-element.elementor-element-096c627{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-449 .elementor-element.elementor-element-41da576 .elementor-button{background-color:#17251F00;font-family:"Vemior", Sans-serif;font-weight:500;fill:#17251F;color:#17251F;padding:0px 0px 0px 0px;}.elementor-449 .elementor-element.elementor-element-41da576{margin:30px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-449 .elementor-element.elementor-element-41da576 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-449 .elementor-element.elementor-element-41da576 .elementor-button .elementor-button-content-wrapper{gap:20px;}.elementor-449 .elementor-element.elementor-element-9688dc3{--display:flex;--min-height:90px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;border-style:solid;--border-style:solid;border-width:0px 0px 1px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:1px;--border-left-width:0px;border-color:#DCD4C5;--border-color:#DCD4C5;--padding-top:20px;--padding-bottom:20px;--padding-left:20px;--padding-right:20px;}.elementor-449 .elementor-element.elementor-element-9688dc3:not(.elementor-motion-effects-element-type-background), .elementor-449 .elementor-element.elementor-element-9688dc3 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F3EEE3;}.elementor-449 .elementor-element.elementor-element-385320c{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:45px 45px;--row-gap:45px;--column-gap:45px;}.elementor-449 .elementor-element.elementor-element-1c84a45 .elementor-button{background-color:#61616500;font-family:"Cormorant Garamond", Sans-serif;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:1.5px;fill:#17251F;color:#17251F;padding:0px 0px 0px 0px;}.elementor-449 .elementor-element.elementor-element-0d676bc .elementor-button{background-color:#61616500;font-family:"Cormorant Garamond", Sans-serif;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:1.5px;fill:#17251F;color:#17251F;padding:0px 0px 0px 0px;}.elementor-449 .elementor-element.elementor-element-3f781db .elementor-button{background-color:#61616500;font-family:"Cormorant Garamond", Sans-serif;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:1.5px;fill:#17251F;color:#17251F;padding:0px 0px 0px 0px;}.elementor-449 .elementor-element.elementor-element-b888123 .elementor-button{background-color:#61616500;font-family:"Cormorant Garamond", Sans-serif;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:1.5px;fill:#17251F;color:#17251F;padding:0px 0px 0px 0px;}.elementor-449 .elementor-element.elementor-element-aa37e01{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:45px 45px;--row-gap:45px;--column-gap:45px;--padding-top:80px;--padding-bottom:80px;--padding-left:80px;--padding-right:80px;}.elementor-449 .elementor-element.elementor-element-aa37e01:not(.elementor-motion-effects-element-type-background), .elementor-449 .elementor-element.elementor-element-aa37e01 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F3EEE3;}.elementor-449 .elementor-element.elementor-element-a91debb{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-start;--gap:12px 12px;--row-gap:12px;--column-gap:12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-449 .elementor-element.elementor-element-9ccd181 .elementor-heading-title{font-family:"Cormorant Garamond", Sans-serif;font-size:40px;font-weight:400;color:#17251F;}.elementor-449 .elementor-element.elementor-element-e8d828e{font-family:"Lato", Sans-serif;font-size:15px;font-weight:400;line-height:1.5em;color:#17251F;}.elementor-widget-loop-grid .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-loop-grid .elementor-pagination{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-loop-grid .e-load-more-message{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-449 .elementor-element.elementor-element-da02ca8{--grid-columns:2;--grid-row-gap:28px;--grid-column-gap:28px;}.elementor-449 .elementor-element.elementor-element-0ad1e7c{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-449 .elementor-element.elementor-element-0ad1e7c:not(.elementor-motion-effects-element-type-background), .elementor-449 .elementor-element.elementor-element-0ad1e7c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#806634;}.elementor-449 .elementor-element.elementor-element-b71b297{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-449 .elementor-element.elementor-element-1cfaea8{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:flex-start;--gap:22px 22px;--row-gap:22px;--column-gap:22px;--padding-top:50px;--padding-bottom:50px;--padding-left:50px;--padding-right:50px;}.elementor-449 .elementor-element.elementor-element-fbc3aa1 .elementor-heading-title{font-family:"Lato", Sans-serif;font-size:12px;font-weight:500;letter-spacing:2px;color:#C2A36B;}.elementor-449 .elementor-element.elementor-element-fd911a4 .elementor-heading-title{font-family:"Cormorant Garamond", Sans-serif;font-size:42px;font-weight:600;line-height:1.15em;color:#F3EEE3;}.elementor-449 .elementor-element.elementor-element-1b56173{font-family:"Lato", Sans-serif;font-size:16px;font-weight:400;line-height:1.7em;color:#F3EEE3;}.elementor-449 .elementor-element.elementor-element-edd8462 .elementor-button{background-color:#61616500;font-family:"Lato", Sans-serif;font-size:12px;font-weight:500;text-transform:uppercase;fill:#C2A36B;color:#C2A36B;padding:20px 0px 0px 0px;}@media(max-width:1024px){.elementor-449 .elementor-element.elementor-element-747496f{--min-height:604px;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:50px;--padding-bottom:50px;--padding-left:50px;--padding-right:50px;}.elementor-449 .elementor-element.elementor-element-b830f09 .elementor-heading-title{font-size:48px;}.elementor-449 .elementor-element.elementor-element-00ac23d{font-size:15px;}.elementor-449 .elementor-element.elementor-element-096c627{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-449 .elementor-element.elementor-element-aa37e01{--padding-top:65px;--padding-bottom:65px;--padding-left:65px;--padding-right:65px;}.elementor-449 .elementor-element.elementor-element-9ccd181 .elementor-heading-title{font-size:34px;}.elementor-449 .elementor-element.elementor-element-da02ca8{--grid-columns:2;--grid-row-gap:20px;--grid-column-gap:20px;}.elementor-449 .elementor-element.elementor-element-fbc3aa1 .elementor-heading-title{font-size:11px;}.elementor-449 .elementor-element.elementor-element-fd911a4 .elementor-heading-title{font-size:28px;}.elementor-449 .elementor-element.elementor-element-1b56173{font-size:15px;}.elementor-449 .elementor-element.elementor-element-edd8462 .elementor-button{padding:20px 0px 0px 0px;}}@media(max-width:767px){.elementor-449 .elementor-element.elementor-element-747496f{--padding-top:35px;--padding-bottom:35px;--padding-left:35px;--padding-right:35px;}.elementor-449 .elementor-element.elementor-element-b830f09 .elementor-heading-title{font-size:40px;}.elementor-449 .elementor-element.elementor-element-41da576{padding:50px 0px 0px 0px;}.elementor-449 .elementor-element.elementor-element-9688dc3{--min-height:60px;}.elementor-449 .elementor-element.elementor-element-385320c{--justify-content:flex-start;--gap:25px 25px;--row-gap:25px;--column-gap:25px;}.elementor-449 .elementor-element.elementor-element-aa37e01{--padding-top:45px;--padding-bottom:45px;--padding-left:45px;--padding-right:45px;}.elementor-449 .elementor-element.elementor-element-9ccd181 .elementor-heading-title{font-size:28px;}.elementor-449 .elementor-element.elementor-element-da02ca8{--grid-columns:2;--grid-row-gap:10px;--grid-column-gap:10px;}.elementor-449 .elementor-element.elementor-element-1cfaea8{--padding-top:35px;--padding-bottom:35px;--padding-left:35px;--padding-right:35px;}}@media(min-width:768px){.elementor-449 .elementor-element.elementor-element-fb86b2c{--width:52%;}.elementor-449 .elementor-element.elementor-element-096c627{--width:48%;}}@media(max-width:1024px) and (min-width:768px){.elementor-449 .elementor-element.elementor-element-fb86b2c{--width:52%;}.elementor-449 .elementor-element.elementor-element-096c627{--width:90%;}}/* Start custom CSS for text-editor, class: .elementor-element-00ac23d */.elementor-449 .elementor-element.elementor-element-00ac23d {
    max-width: 460px;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-747496f */.elementor-449 .elementor-element.elementor-element-747496f {
    min-height: clamp(480px, 60vh, 650px);
}/* End custom CSS */
/* Start custom CSS *//* ==========================================================================
   CHÂTEAU LASTOURS — ARCHIVE BOUTIQUE WOOCOMMERCE (CSS)
   --------------------------------------------------------------------------
   Habille la structure Elementor existante (template « Archive de produits »,
   Loop Grid + Loop Item). Aucun HTML n'est créé.

   CHARGEMENT — CSS personnalisé du template Elementor « Archive de produits »
   (Modifier avec Elementor > ⚙ Paramètres de la page > Avancé > CSS
   personnalisé). Elementor l'écrit dans le fichier CSS du template : il n'est
   chargé que sur la boutique et les catégories. Ne pas le coller une seconde
   fois ailleurs (Réglages du site, widget, WPCode, plugin).

   PÉRIMÈTRE — toutes les règles sont limitées aux classes .lastours-shop-*
   et .lastours-wine-*. Aucune règle sur body, h1, img, button,
   .elementor-button ou .woocommerce hors de ce périmètre.

   VARIABLES DU HEADER (lastours-header.css) réutilisées, avec repli :
     --lth-h-ample / --lth-h-compact   hauteur du header fixe
     --lth-admin                       barre d'admin WordPress

   CLASSES D'ÉTAT posées par lastours-shop.js (ne pas les ajouter dans Elementor) :
     .lastours-shop-nav-link.is-active      catégorie courante
     .lastours-shop-reveal                  élément animé au scroll
     .lastours-shop-reveal.is-pending       en attente (masqué) — JS uniquement

   BREAKPOINTS (identiques au header, repères « BP ») :
     Desktop ≥ 1025px · Tablette 768–1024px · Mobile ≤ 767px

   Pourquoi quelques !important : Elementor écrit ses réglages avec une
   spécificité élevée (.elementor-XXX .elementor-element.elementor-element-abc).
   Ils ne sont utilisés que sur des propriétés de mise en page / typographie
   des classes préfixées. La famille de police n'est jamais imposée.
   ========================================================================== */


/* ==========================================================================
   0. JETONS
   ========================================================================== */

:where(.lastours-shop-hero, .lastours-shop-nav, .lastours-shop-collection, .lastours-shop-experience) {
  /* Ivoire réellement utilisé par les sections Elementor du site (#F3EEE3) :
     la nav sticky se fond avec le Hero et la collection. */
  --ls-ivory: #F3EEE3;
  /* Cartes : ivoire très clair (« papier ») sur le fond ivoire de la page,
     cerné d'un filet doré à peine visible. La bouteille ressort sans ombre. */
  --ls-card: #FBF8F2;
  --ls-card-hover: #FFFDF9;
  --ls-card-line: rgba(128, 102, 52, 0.14);
  --ls-card-line-hover: rgba(128, 102, 52, 0.32);

  /* Couleurs des familles (identiques aux fonds de la page d'accueil) */
  --ls-cat-red: #5A1D2B;
  --ls-cat-white: #D8CEB5;
  --ls-cat-rose: #A86663;
  --ls-cat-sparkling: #806634;
  --ls-charcoal: #201C18;
  --ls-charcoal-soft: rgba(32, 28, 24, 0.68);
  --ls-brown: #806634;         /* texte doré : contraste AA sur ivoire */
  --ls-gold: #C2A36B;          /* filets et décors uniquement (pas de texte sur ivoire) */
  --ls-white: #FFFFFF;
  --ls-line: rgba(32, 28, 24, 0.12);

  --ls-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ls-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ls-hover: 480ms;

  --ls-gutter: clamp(16px, 4vw, 64px);
  --ls-max: 1600px;           /* largeur utile maximale (titres, sections) */
  --ls-grid-max: 1200px;      /* largeur maximale de la grille des cuvées */
  --ls-text-max: 40rem;       /* largeur de lecture des titres / descriptions */

  /* Header fixe existant (repli si lastours-header.css absent) */
  --ls-header: var(--lth-h-ample, 72px);
  --ls-header-compact: var(--lth-h-compact, 60px);
  --ls-admin: var(--lth-admin, var(--wp-admin--admin-bar--height, 0px));
  /* Hauteur de la navigation : cale le Hero pour que la navigation soit
     posée au bas du premier écran (desktop). Valeur de repli, remplacée
     par la hauteur mesurée par le JS. */
  --ls-nav-h: 66px;
}

/* Mobile (≤ 600px) : la barre d'admin WordPress n'est plus fixe, elle défile
   avec la page et le header remonte tout en haut de l'écran. Son décalage ne
   doit donc plus compter : sinon la navigation se colle 46px trop bas et la
   page défile dans l'interstice, entre le header et la navigation.
   (Concerne les utilisateurs connectés ; sans barre d'admin, la valeur est 0.) */
@media screen and (max-width: 600px) {
  :where(.lastours-shop-hero, .lastours-shop-nav, .lastours-shop-collection, .lastours-shop-experience) {
    --ls-admin: 0px;
  }
}

/* Modèle de boîte et marges des titres : ne dépend pas du CSS d'Elementor */
:is(.lastours-shop-hero, .lastours-shop-nav, .lastours-shop-collection, .lastours-shop-experience),
:is(.lastours-shop-hero, .lastours-shop-nav, .lastours-shop-collection, .lastours-shop-experience) *,
:is(.lastours-shop-hero, .lastours-shop-nav, .lastours-shop-collection, .lastours-shop-experience) *::before,
:is(.lastours-shop-hero, .lastours-shop-nav, .lastours-shop-collection, .lastours-shop-experience) *::after {
  box-sizing: border-box;
}
:is(.lastours-shop-hero, .lastours-shop-nav, .lastours-shop-collection, .lastours-shop-experience) .elementor-heading-title {
  margin: 0;
}

/* Containers « boxed » : la largeur utile est gérée ici, la structure
   Elementor reste intacte. */
:is(.lastours-shop-hero, .lastours-shop-collection, .lastours-shop-experience) > .e-con-inner {
  max-width: var(--ls-max);
}

/* Focus clavier commun (contraste suffisant sur ivoire et sur brun) */
:is(.lastours-shop-hero, .lastours-shop-nav, .lastours-shop-collection, .lastours-shop-experience) a:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 4px;
  border-radius: 0;
}

/* Cible du bouton « Découvrir nos cuvées » : focus programmatique sans anneau */
#lastours-cuvees:focus { outline: none; }


/* ==========================================================================
   1. HERO BOUTIQUE  [data-lastours-section="shop-hero"]
   ========================================================================== */

.lastours-shop-hero {
  /* Le header fixe est visible dès le chargement (page sans .lastours-hero) :
     on réserve sa hauteur pour qu'il ne recouvre pas le titre. */
  /* La barre d'admin décale déjà la page : seule la hauteur du header compte. */
  padding-top: calc(var(--ls-header) + 24px) !important;
  padding-bottom: 32px !important;
  padding-left: var(--ls-gutter) !important;
  padding-right: var(--ls-gutter) !important;
  min-height: 0 !important;
  background-color: var(--ls-ivory);
  color: var(--ls-charcoal);
  overflow-x: clip;            /* sécurité anti-débordement (pas de sticky dedans) */
}

.lastours-shop-hero-inner,
.lastours-shop-hero-inner > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 32px !important;
  width: 100%;
}

.lastours-shop-hero-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0 !important;
  padding: 0 !important;
  max-width: 34rem;
}

/* Les widgets à l'intérieur : espacements gérés ici */
.lastours-shop-hero-content > .elementor-element { margin: 0 !important; width: 100%; }

.lastours-shop-eyebrow,
.lastours-shop-eyebrow :is(.elementor-heading-title, p) {
  margin: 0 !important;
  color: var(--ls-brown) !important;
  font-size: 11px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase;
}

.lastours-shop-title { margin-top: 14px !important; }
.lastours-shop-title,
.lastours-shop-title .elementor-heading-title {
  color: var(--ls-charcoal) !important;
  font-size: clamp(2.25rem, 8.5vw, 3rem) !important;
  line-height: 1.04 !important;
  letter-spacing: -0.005em !important;
  text-wrap: balance;
}

.lastours-shop-intro { margin-top: 16px !important; }
.lastours-shop-intro,
.lastours-shop-intro :is(p, .elementor-heading-title) {
  color: var(--ls-charcoal-soft) !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
  max-width: 30rem;
  text-wrap: pretty;
}
.lastours-shop-intro p:last-child { margin-bottom: 0; }


/* Bouton « Découvrir nos cuvées » : style commun, voir §5b */
.lastours-shop-scroll-btn { margin-top: 24px !important; }

/* Composition de bouteilles */
.lastours-shop-hero-visual {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
  padding: 0 !important;
  min-height: 0 !important;
}
.lastours-shop-hero-bottles { margin: 0 !important; width: 100%; text-align: center; }
.lastours-shop-hero-bottles img {
  display: block;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: min(56vh, 320px);
  margin: 0 auto;
  object-fit: contain;
}

/* BP tablette */
@media (min-width: 768px) {
  .lastours-shop-hero {
    padding-top: calc(var(--ls-header) + 40px) !important;
    padding-bottom: 48px !important;
  }
  .lastours-shop-title,
  .lastours-shop-title .elementor-heading-title { font-size: clamp(3rem, 6vw, 3.75rem) !important; }
  .lastours-shop-intro,
  .lastours-shop-intro :is(p, .elementor-heading-title) { font-size: 16px !important; }
  .lastours-shop-hero-bottles img { max-height: 380px; }
}

/* BP desktop : deux colonnes, 60vh (480–650px) sous le header */
@media (min-width: 1025px) {
  .lastours-shop-hero {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    box-sizing: border-box;
    /* Hero + navigation = exactement un écran : la navigation est posée au
       bas de l'écran au chargement. --ls-hero-top (position réelle du
       Hero) et --ls-nav-h sont mesurés par le JS ; sans JS : barre d'admin
       et 66px. Le Hero s'agrandit si son contenu l'exige, sans rien couper. */
    min-height: calc(100vh - var(--ls-hero-top, var(--ls-admin)) - var(--ls-nav-h)) !important;
    padding-top: var(--ls-header) !important;
    padding-bottom: 0 !important;
  }
  .lastours-shop-hero-inner,
  .lastours-shop-hero-inner > .e-con-inner {
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: clamp(40px, 5vw, 96px) !important;
  }
  .lastours-shop-hero-content { flex: 0 1 46% !important; max-width: 36rem; }
  .lastours-shop-hero-visual {
    flex: 0 1 50% !important;
    align-self: stretch !important;
    align-items: center !important;
  }
  .lastours-shop-title,
  .lastours-shop-title .elementor-heading-title { font-size: clamp(3.5rem, 4.6vw, 4.75rem) !important; }
  .lastours-shop-hero-bottles img { max-height: clamp(380px, 52vh, 560px); }
}

/* Apparition au chargement : CSS pur (ne dépend pas du JS). Le contenu est
   visible même si l'animation ne se joue pas (fill-mode backwards). */
@keyframes lastours-shop-rise {
  from { opacity: 0; transform: translate3d(0, 14px, 0); }
  to   { opacity: 1; transform: none; }
}
@keyframes lastours-shop-settle {
  from { opacity: 0; transform: scale(1.025); }
  to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: no-preference) {
  body:not(.elementor-editor-active) :is(.lastours-shop-eyebrow, .lastours-shop-title, .lastours-shop-intro, .lastours-shop-scroll-btn) {
    animation: lastours-shop-rise 0.9s var(--ls-ease-out) backwards;
  }
  body:not(.elementor-editor-active) .lastours-shop-eyebrow     { animation-delay: 0.10s; }
  body:not(.elementor-editor-active) .lastours-shop-title       { animation-delay: 0.18s; }
  body:not(.elementor-editor-active) .lastours-shop-intro       { animation-delay: 0.28s; }
  body:not(.elementor-editor-active) .lastours-shop-scroll-btn  { animation-delay: 0.38s; }
  body:not(.elementor-editor-active) .lastours-shop-hero-bottles img {
    animation: lastours-shop-settle 1.2s var(--ls-ease-out) 0.15s backwards;
  }
}


/* ==========================================================================
   2. NAVIGATION DES FAMILLES  [data-lastours-section="shop-navigation"]
   ROUGES — BLANCS — ROSÉS — BULLES (liens réels vers les archives)
   ========================================================================== */

/* Sticky sous le header compact. z-index 20 : au-dessus des cartes,
   sous le header (900) et le menu fullscreen (1100). Pour le désactiver :
   supprimer les 3 lignes marquées « sticky ». */
.lastours-shop-nav {
  position: sticky !important;                                          /* sticky */
  top: calc(var(--ls-admin) + var(--ls-header-compact));                /* sticky */
  z-index: 20;                                                          /* sticky */
  transition: transform 0.45s var(--ls-ease), visibility 0s linear 0s;
  padding: 0 !important;
  min-height: 0 !important;
  background-color: var(--ls-ivory) !important;
  border-top: 1px solid var(--ls-line);
  border-bottom: 1px solid var(--ls-line);
}
/* Fin de la collection : le JS pose .is-released quand la dernière rangée
   remonte. La navigation glisse sous le header et disparaît : elle ne reste
   ni sur la section dégustations, ni pendant l'ouverture du footer. Elle
   revient dès que l'on remonte vers les cuvées. */
.lastours-shop-nav.is-released {
  transform: translate3d(0, calc(-100% - var(--ls-header-compact) - var(--ls-admin)), 0);
  visibility: hidden;
  pointer-events: none;
  transition: transform 0.45s var(--ls-ease), visibility 0s linear 0.45s;
}
@media (prefers-reduced-motion: reduce) {
  .lastours-shop-nav,
  .lastours-shop-nav.is-released { transition: none; }
}
/* Le contexte d'édition n'a pas de header fixe */
body.elementor-editor-active .lastours-shop-nav { position: relative !important; top: 0; transform: none; }

/* Pleine largeur. WoodMart (« wd-section-stretch ») étire les sections avec
   position: relative + left négatif ; en sticky, « left » devient un seuil
   et la nav restait décalée (bloc blanc à gauche). On obtient la même
   largeur avec des marges négatives, compatibles avec le sticky. Si la
   section n'est pas dans un conteneur limité, le calcul vaut 0. */
.lastours-shop-nav.lastours-shop-nav {
  left: auto !important;
  right: auto !important;
  width: auto !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}
body.elementor-editor-active .lastours-shop-nav.lastours-shop-nav { margin-left: 0 !important; margin-right: 0 !important; }

/* Le container boxed interne ne participe pas à la mise en page */
.lastours-shop-nav > .e-con-inner,
.lastours-shop-nav-links > .e-con-inner { display: contents !important; }

/* Rangée unique : centrée, défilante si l'écran est trop étroit */
.lastours-shop-nav-links {
  position: relative;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-start !important;  /* centrage par marges auto (sûr en overflow) */
  gap: 24px !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 16px !important;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
}
.lastours-shop-nav-links::-webkit-scrollbar { display: none; }

/* Centrage par marges auto sur le premier / dernier lien. Le container
   interne .e-con-inner est en display: contents : on cible les liens,
   qu'ils soient enfants directs ou dans .e-con-inner. */
:is(.lastours-shop-nav-links, .lastours-shop-nav-links > .e-con-inner) > .lastours-shop-nav-link:first-child { margin-left: auto !important; }
:is(.lastours-shop-nav-links, .lastours-shop-nav-links > .e-con-inner) > .lastours-shop-nav-link:last-child  { margin-right: auto !important; }

/* Couleur du filet par famille (fonds de la page d'accueil) */
.lastours-shop-nav-red       { --ls-nav-accent: var(--ls-cat-red); }
.lastours-shop-nav-white     { --ls-nav-accent: var(--ls-cat-white); }
.lastours-shop-nav-rose      { --ls-nav-accent: var(--ls-cat-rose); }
.lastours-shop-nav-sparkling { --ls-nav-accent: var(--ls-cat-sparkling); }

.lastours-shop-nav-link {
  flex: 0 0 auto !important;
  width: auto !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
  scroll-snap-align: center;
}

/* Le lien lui-même : widget Titre, Bouton, Texte ou container-lien */
:is(a.lastours-shop-nav-link, .lastours-shop-nav-link a) {
  display: inline-flex !important;
  align-items: center;
  min-height: 52px;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background-color: transparent !important;
  box-shadow: none !important;
  color: var(--ls-charcoal) !important;
  font-size: 12px !important;
  font-weight: inherit;
  line-height: 1 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase;
  text-decoration: none !important;
  white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
  /* Filet de la couleur de la famille (fond) : pas de pseudo-élément,
     aucun conflit avec .e-con::before. 2px : le filet « blancs » (#D8CEB5)
     reste lisible sur l'ivoire. */
  background-image: linear-gradient(var(--ls-nav-accent, var(--ls-gold)), var(--ls-nav-accent, var(--ls-gold))) !important;
  background-repeat: no-repeat !important;
  background-position: left calc(50% + 14px) !important;
  background-size: 0% 2px !important;
  transition: background-size var(--ls-hover) var(--ls-ease), color 0.3s var(--ls-ease);
}
@media (hover: hover) {
  :is(a.lastours-shop-nav-link, .lastours-shop-nav-link a):hover {
    background-size: 100% 2px !important;
  }
}
:is(a.lastours-shop-nav-link, .lastours-shop-nav-link a):focus-visible {
  background-size: 100% 2px !important;
  outline-offset: 2px;
}

/* État actif — 1) classes du body WordPress (fonctionne sans JS)
                 2) classe .is-active / aria-current posés par le JS
                    (sous-catégories, pagination, slugs inattendus) */
body.term-rouges :is(a.lastours-shop-nav-red,    .lastours-shop-nav-red a),
body.term-blancs :is(a.lastours-shop-nav-white,  .lastours-shop-nav-white a),
body.term-roses  :is(a.lastours-shop-nav-rose,   .lastours-shop-nav-rose a),
body.term-bulles :is(a.lastours-shop-nav-sparkling, .lastours-shop-nav-sparkling a),
:is(a.lastours-shop-nav-link.is-active, .lastours-shop-nav-link.is-active a),
.lastours-shop-nav-links a[aria-current] {
  color: var(--ls-charcoal) !important;
  background-size: 100% 2px !important;
}

/* BP tablette + desktop */
@media (min-width: 768px) {
  .lastours-shop-nav-links { gap: clamp(40px, 5vw, 72px) !important; padding: 0 var(--ls-gutter) !important; }
  :is(a.lastours-shop-nav-link, .lastours-shop-nav-link a) {
    min-height: 64px;
    font-size: 13px !important;
    letter-spacing: 0.24em !important;
    background-position: left calc(50% + 16px) !important;
  }
}

/* Indice de défilement sur très petit écran (seulement si ça déborde : posé par le JS) */
.lastours-shop-nav-links.is-scrollable {
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 16px, #000 calc(100% - 24px), transparent 100%);
          mask-image: linear-gradient(to right, transparent 0, #000 16px, #000 calc(100% - 24px), transparent 100%);
}


/* ==========================================================================
   3. COLLECTION  #lastours-cuvees  [data-lastours-section="shop-products"]
   ========================================================================== */

.lastours-shop-collection {
  padding: 56px var(--ls-gutter) 72px !important;
  min-height: 0 !important;
  background-color: var(--ls-ivory);
  color: var(--ls-charcoal);
  /* Ancre : header compact + navigation sticky (hauteur mesurée par le JS) */
  scroll-margin-top: calc(var(--ls-admin) + var(--ls-header-compact) + var(--lastours-shop-nav-h, 54px));
}

/* Ce container contient le titre, la description ET le Loop Grid : il prend
   toute la largeur utile (max. 1600px). Seuls le titre et la description
   sont limités à une largeur de lecture. */
.lastours-shop-collection-heading {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: var(--ls-max) !important;
  padding: 0 !important;
  margin: 0 auto !important;
  text-align: center;
}
.lastours-shop-collection-heading > .elementor-element { margin: 0 !important; }
.lastours-shop-collection-heading > :is(.lastours-shop-collection-title, .lastours-shop-collection-description) {
  width: 100%;
  max-width: var(--ls-text-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.lastours-shop-collection-heading > .lastours-shop-collection-description { margin-bottom: 24px !important; }

.lastours-shop-collection-title,
.lastours-shop-collection-title .elementor-heading-title {
  color: var(--ls-charcoal) !important;
  font-size: clamp(1.75rem, 5.5vw, 2.75rem) !important;
  line-height: 1.1 !important;
  text-wrap: balance;
}
.lastours-shop-collection-description,
.lastours-shop-collection-description :is(p, .elementor-heading-title) {
  text-align: center !important;
  color: var(--ls-charcoal-soft) !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
  text-wrap: pretty;
}
.lastours-shop-collection-description p:last-child { margin-bottom: 0; }

/* --- Grille : largeur de l'écran (max. 1600px)
   2 colonnes sur tous les écrans (mobile, tablette, desktop)
   Gouttières : 10 / 20 / 28px
   Flex plutôt que grid : une ligne incomplète (ex. 2 cuvées dans une
   catégorie) est centrée au lieu de laisser un vide à droite. Les cartes
   d'une même ligne gardent la même hauteur. --- */
.lastours-shop-grid {
  width: 100% !important;
  /* Grands écrans : grille resserrée (2 cartes de ~590px max) pour que
     chaque carte tienne entière dans la hauteur de l'écran. */
  max-width: var(--ls-grid-max) !important;
  margin: 0 auto !important;
  --ls-cols: 2;
  --ls-gap: 10px;
}
.lastours-shop-grid .elementor-loop-container {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: stretch !important;
  gap: var(--ls-gap) !important;
  grid-template-columns: none !important;
}
@media (min-width: 768px)  { .lastours-shop-grid { --ls-gap: 20px; } }
@media (min-width: 1025px) {
  .lastours-shop-collection { padding-top: 88px !important; padding-bottom: 112px !important; }
  .lastours-shop-collection-heading > .lastours-shop-collection-description { margin-bottom: 40px !important; }
  .lastours-shop-grid { --ls-gap: 28px; }
}

/* Chaque item : largeur d'une colonne, hauteur de la ligne */
.lastours-shop-grid .e-loop-item {
  display: flex;
  flex-direction: column;
  flex: 0 0 calc((100% - (var(--ls-cols) - 1) * var(--ls-gap)) / var(--ls-cols)) !important;
  width: calc((100% - (var(--ls-cols) - 1) * var(--ls-gap)) / var(--ls-cols)) !important;
  max-width: none !important;
  min-width: 0;
}
.lastours-shop-grid .e-loop-item > .lastours-wine-card { flex: 1 1 auto; }

/* Pagination et « Charger plus » Elementor : sobres */
.lastours-shop-grid :is(.elementor-pagination, .e-load-more-anchor + .elementor-button-wrapper, .e-loop__load-more) {
  margin-top: 40px;
  text-align: center;
}
.lastours-shop-grid .elementor-pagination :is(a, span) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  color: var(--ls-charcoal);
  font-size: 13px;
  letter-spacing: 0.12em;
  text-decoration: none;
}
.lastours-shop-grid .elementor-pagination .current { color: var(--ls-brown); }


/* ==========================================================================
   4. CARTE CUVÉE  [data-lastours-component="wine-card"]
   ========================================================================== */

.lastours-wine-card {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  gap: 0 !important;
  height: 100%;
  min-width: 0;
  padding: 12px 12px 16px !important;
  margin: 0 !important;
  border: 1px solid var(--ls-card-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background-color: var(--ls-card) !important;
  color: var(--ls-charcoal);
  transition: background-color var(--ls-hover) var(--ls-ease), border-color var(--ls-hover) var(--ls-ease) !important;
}
.lastours-wine-card > .e-con-inner { display: contents !important; }
.lastours-wine-card .elementor-element.elementor-widget { margin: 0 !important; }

/* --- Haut : catégorie --- */
.lastours-wine-card-top {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  min-height: 0 !important;
  padding: 0 !important;
  gap: 8px !important;
}
.lastours-wine-card-category,
.lastours-wine-card-category :is(.elementor-heading-title, p, a, span) {
  margin: 0 !important;
  color: var(--ls-brown) !important;
  font-size: 10px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase;
  text-decoration: none !important;
}

/* --- Visuel : zone constante, bouteille jamais coupée ni déformée ---
   Deux structures acceptées :
   A. container .lastours-wine-card-visual contenant le widget image ;
   B. widget .lastours-wine-card-image seul (structure actuelle du site).
   La zone suit un ratio, plafonné par la hauteur de l'écran (--ls-visual-max)
   pour que la carte entière (catégorie, bouteille, nom, prix, CTA) reste
   visible d'un seul coup d'œil. */
.lastours-wine-card-visual,
.lastours-wine-card-image:not(.lastours-wine-card-visual .lastours-wine-card-image) {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 3 / 4;
  max-height: var(--ls-visual-max, none);
  min-height: 0 !important;
  margin: 8px 0 12px !important;
  padding: 0 !important;
  overflow: visible !important;      /* la bouteille peut monter au survol */
}
.lastours-wine-card-image:not(.lastours-wine-card-visual .lastours-wine-card-image) :is(.elementor-widget-container, a, picture) {
  display: block;
  width: 100%;
  height: 100%;
}
/* Le widget image occupe toute la zone, avec une marge de respiration */
.lastours-wine-card-visual > .e-con-inner { display: contents !important; }
.lastours-wine-card-visual :is(.lastours-wine-card-image, .elementor-widget-image) {
  position: absolute !important;
  inset: 4% 6%;
  width: auto !important;
  height: auto !important;
  max-width: none !important;
}
.lastours-wine-card-visual :is(.lastours-wine-card-image, .elementor-widget-image) :is(.elementor-widget-container, a, picture) {
  display: block;
  width: 100%;
  height: 100%;
}
:is(.lastours-wine-card-visual, .lastours-wine-card-image) img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: none !important;
  margin: 0 auto;
  object-fit: contain !important;
  object-position: center bottom;   /* bouteilles alignées sur une même ligne de sol */
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: translateZ(0);
  transform-origin: 50% 100%;
  transition: transform var(--ls-hover) var(--ls-ease);
}

/* --- Infos --- */
.lastours-wine-card-info {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 4px !important;
  min-height: 0 !important;
  padding: 0 !important;
  flex: 1 1 auto !important;           /* pousse le bas de carte vers le bas */
}
.lastours-wine-card-title,
.lastours-wine-card-title :is(.elementor-heading-title, a) {
  margin: 0 !important;
  color: var(--ls-charcoal) !important;
  font-size: 15px !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  overflow-wrap: anywhere;             /* noms longs : retour à la ligne, jamais de débordement */
  hyphens: auto;
  text-wrap: balance;
}
.lastours-wine-card-subtitle,
.lastours-wine-card-subtitle :is(.elementor-heading-title, p) {
  margin: 0 !important;
  color: var(--ls-charcoal-soft) !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
  overflow-wrap: anywhere;
}
.lastours-wine-card-subtitle p:last-child { margin-bottom: 0; }

/* --- Bas : prix + CTA --- */
.lastours-wine-card-bottom {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
  gap: 6px !important;
  min-height: 0 !important;
  margin-top: 12px !important;
  padding: 12px 0 0 !important;
  border-top: 1px solid var(--ls-line);
}

/* Prix WooCommerce dynamique : normal, promo, plage (variations) */
.lastours-wine-card-price :is(.price, p, span.amount, bdi) {
  color: var(--ls-charcoal) !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  letter-spacing: 0.02em;
}
.lastours-wine-card-price .price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 8px;
  margin: 0 !important;
}
.lastours-wine-card-price del,
.lastours-wine-card-price del :is(span, bdi) {
  color: var(--ls-charcoal-soft) !important;
  font-size: 12px !important;
  opacity: 1;
  text-decoration: line-through;
}
.lastours-wine-card-price ins,
.lastours-wine-card-price ins :is(span, bdi) {
  color: var(--ls-brown) !important;
  background: none !important;
  text-decoration: none !important;
  font-weight: inherit;
}
/* Texte d'accessibilité WooCommerce (« Le prix initial était… ») : reste masqué */
.lastours-wine-card-price .screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}

/* --- Prix par format (snippet lastours-prix-formats.php) ---
   1 à 3 prix côte à côte, le format en dessous. Chaque bloc est un lien
   vers la fiche, format présélectionné. Pas de filet séparateur : sur les
   cartes étroites (mobile) les prix passent à la ligne proprement. */
.lastours-wine-card-price .lastours-formats {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 8px 20px;
  width: 100%;
}
.lastours-wine-card-price .lastours-format {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  color: var(--ls-charcoal) !important;
  text-decoration: none !important;
}
.lastours-wine-card-price .lastours-format-price {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 6px;
  white-space: nowrap;
}
/* Format : écrit tel quel (« 75cl », « 1,5L »), jamais en capitales */
.lastours-wine-card-price .lastours-format-size {
  color: var(--ls-brown) !important;
  font-size: 11px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.06em;
  white-space: nowrap;
  text-underline-offset: 3px;
  transition: color var(--ls-hover) var(--ls-ease);
}
.lastours-wine-card-price .lastours-format.is-outofstock { opacity: 0.5; }
.lastours-wine-card-price .lastours-format.is-outofstock .lastours-format-price { text-decoration: line-through; }
@media (hover: hover) and (pointer: fine) {
  .lastours-wine-card-price .lastours-format:hover .lastours-format-price :is(span.amount, bdi) { color: var(--ls-brown) !important; }
  .lastours-wine-card-price .lastours-format:hover .lastours-format-size { text-decoration: underline; }
}
.lastours-wine-card-price .lastours-format:focus-visible {
  outline: 1px solid var(--ls-brown);
  outline-offset: 4px;
}
@media (max-width: 767px) {
  .lastours-wine-card-price .lastours-formats { gap: 6px 14px; }
  .lastours-wine-card-price .lastours-format-size { font-size: 10px !important; }
}


/* Produit épuisé (classe WooCommerce .outofstock sur l'item de boucle) */
.e-loop-item.outofstock :is(.lastours-wine-card-visual, .lastours-wine-card-image) img { opacity: 0.55; filter: grayscale(0.35); }
.e-loop-item.outofstock :is(.lastours-wine-card-visual, .lastours-wine-card-image:not(.lastours-wine-card-visual .lastours-wine-card-image))::after {
  content: "Épuisé";
  position: absolute;
  top: 0;
  right: 0;
  color: var(--ls-charcoal-soft);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

/* --- Survol desktop (pointeur fin uniquement : rien de bloquant au tactile) --- */
@media (hover: hover) and (pointer: fine) {
  .lastours-wine-card:hover { background-color: var(--ls-card-hover) !important; border-color: var(--ls-card-line-hover) !important; }
  .lastours-wine-card:hover :is(.lastours-wine-card-visual, .lastours-wine-card-image) img {
    transform: translate3d(0, -8px, 0) scale(1.025);
  }
}
/* Clavier : même retour visuel que le survol quand un lien de la carte a le focus */
.lastours-wine-card:has(:focus-visible) { background-color: var(--ls-card-hover) !important; border-color: var(--ls-card-line-hover) !important; }

/* BP tablette */
@media (min-width: 768px) {
  .lastours-wine-card { padding: 20px 20px 24px !important; }
  .lastours-wine-card-category,
  .lastours-wine-card-category :is(.elementor-heading-title, p, a, span) { font-size: 11px !important; }
  .lastours-wine-card-visual,
  .lastours-wine-card-image:not(.lastours-wine-card-visual .lastours-wine-card-image) {
    aspect-ratio: 4 / 5;
    margin: 16px 0 20px !important;
  }
  /* Hauteur d'écran moins header, navigation et le reste de la carte */
  .lastours-shop-grid { --ls-visual-max: max(220px, calc(100vh - var(--ls-header-compact) - var(--ls-nav-h) - 320px)); }
  .lastours-wine-card-title,
  .lastours-wine-card-title :is(.elementor-heading-title, a) { font-size: 20px !important; }
  .lastours-wine-card-subtitle,
  .lastours-wine-card-subtitle :is(.elementor-heading-title, p) { font-size: 13px !important; }
  .lastours-wine-card-bottom {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px 16px !important;
    margin-top: 16px !important;
    padding-top: 16px !important;
  }
  .lastours-wine-card-price :is(.price, p, span.amount, bdi) { font-size: 15px !important; }
}

/* BP desktop */
@media (min-width: 1025px) {
  /* Cartes larges (2 par ligne) : zone visuelle plus horizontale pour que
     la carte ne devienne pas trop haute ; la bouteille reste grande. */
  .lastours-wine-card { padding: 28px 36px 32px !important; }
  .lastours-wine-card-visual,
  .lastours-wine-card-image:not(.lastours-wine-card-visual .lastours-wine-card-image) {
    aspect-ratio: 4 / 3;
    margin: 16px 0 20px !important;
  }
  .lastours-wine-card-title,
  .lastours-wine-card-title :is(.elementor-heading-title, a) { font-size: 24px !important; }
}

/* Très petits écrans (≤ 380px) : on gagne de la place pour les étiquettes */
@media (max-width: 380px) {
  .lastours-wine-card { padding: 10px 10px 14px !important; }
  .lastours-wine-card-visual :is(.lastours-wine-card-image, .elementor-widget-image) { inset: 2% 3%; }
  .lastours-wine-card-title,
  .lastours-wine-card-title :is(.elementor-heading-title, a) { font-size: 14px !important; }
}


/* ==========================================================================
   5. SECTION DÉGUSTATIONS  [data-lastours-section="shop-experience"]
   ========================================================================== */

.lastours-shop-experience {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  background-color: var(--ls-ivory);
  overflow-x: clip;
}
.lastours-shop-experience > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  max-width: none;
  padding: 0 !important;
}

.lastours-shop-experience-image {
  position: relative !important;
  min-height: 0 !important;
  padding: 0 !important;
  aspect-ratio: 4 / 3;
  overflow: hidden !important;
}
.lastours-shop-experience-image > .e-con-inner { display: contents !important; }
.lastours-shop-experience-photo {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
}
.lastours-shop-experience-photo :is(.elementor-widget-container, a, picture) {
  display: block;
  width: 100%;
  height: 100%;
}
.lastours-shop-experience-photo img,
.lastours-shop-experience-image > img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;   /* photo d'ambiance : recadrage autorisé, jamais de déformation */
  border-radius: 0 !important;
}

.lastours-shop-experience-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: 0 !important;
  min-height: 0 !important;
  padding: 48px var(--ls-gutter) 56px !important;
  background-color: var(--ls-brown) !important;
  color: var(--ls-white);
}
.lastours-shop-experience-content > .elementor-element { margin: 0 !important; width: 100%; }

.lastours-shop-experience-eyebrow,
.lastours-shop-experience-eyebrow :is(.elementor-heading-title, p) {
  margin: 0 !important;
  color: var(--ls-ivory) !important;
  font-size: 11px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase;
  opacity: 0.85;
}
.lastours-shop-experience-title { margin-top: 14px !important; }
.lastours-shop-experience-title,
.lastours-shop-experience-title .elementor-heading-title {
  color: var(--ls-white) !important;
  font-size: clamp(1.75rem, 6.5vw, 2.75rem) !important;
  line-height: 1.12 !important;
  text-wrap: balance;
}
.lastours-shop-experience-text { margin-top: 18px !important; }
.lastours-shop-experience-text,
.lastours-shop-experience-text :is(p, .elementor-heading-title) {
  color: rgba(255, 255, 255, 0.9) !important;   /* ≈ 4.7:1 sur #806634 */
  font-size: 15px !important;
  line-height: 1.7 !important;
  max-width: 32rem;
  text-wrap: pretty;
}
.lastours-shop-experience-text p:last-child { margin-bottom: 0; }

.lastours-shop-experience-btn { margin-top: 28px !important; }

/* BP tablette */
@media (min-width: 768px) {
  .lastours-shop-experience-image { aspect-ratio: 16 / 10; }
  .lastours-shop-experience-content { padding: 64px var(--ls-gutter) 72px !important; }
}

/* BP desktop : deux colonnes, photo à gauche, texte sur brun à droite */
@media (min-width: 1025px) {
  .lastours-shop-experience,
  .lastours-shop-experience > .e-con-inner {
    flex-direction: row !important;
    align-items: stretch !important;
  }
  .lastours-shop-experience-image {
    flex: 0 0 55% !important;
    width: 55% !important;
    aspect-ratio: auto;
    min-height: clamp(480px, 62vh, 680px) !important;
  }
  .lastours-shop-experience-content {
    flex: 1 1 45% !important;
    width: 45% !important;
    padding: clamp(56px, 6vw, 112px) clamp(40px, 5vw, 96px) !important;
  }
  .lastours-shop-experience-title,
  .lastours-shop-experience-title .elementor-heading-title { font-size: clamp(2.25rem, 3.2vw, 3.25rem) !important; }
}


/* ==========================================================================
   5b. BOUTONS — même dessin que ceux de la page d'accueil (.lv-btn)
   --------------------------------------------------------------------------
   Équerre dorée : trait vertical de 4px à gauche + trait de 4px en bas
   (16 % de la largeur), texte Lato 700 en capitales espacées, flèche qui
   glisse au survol. Lato est déjà chargée par le site (aucune police ajoutée).
   S'applique aux widgets Bouton portant ces classes :
     .lastours-shop-scroll-btn · .lastours-wine-card-link
     .lastours-shop-experience-btn · « Charger plus » du Loop Grid
   ========================================================================== */

:is(.lastours-shop-scroll-btn, .lastours-wine-card-link, .lastours-shop-experience-btn) {
  width: auto !important;
  --ls-btn-text: var(--ls-charcoal);
  --ls-btn-hover: var(--ls-brown);
  --ls-btn-accent: var(--ls-gold);
}
/* Sur le fond brun de la section dégustations : texte ivoire comme sur l'accueil */
.lastours-shop-experience-btn {
  --ls-btn-text: #F3ECDD;
  --ls-btn-hover: var(--ls-white);
}

:is(.lastours-shop-scroll-btn, .lastours-wine-card-link, .lastours-shop-experience-btn, .lastours-shop-grid .e-loop__load-more) a {
  position: relative !important;
  display: inline-flex !important;
  align-items: center;
  gap: 16px;
  min-height: 44px;
  padding: 16px 26px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  color: var(--ls-btn-text, var(--ls-charcoal)) !important;
  font-family: "Lato", system-ui, sans-serif !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
  letter-spacing: 0.24em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  white-space: nowrap;
  transition: color 0.35s var(--ls-ease) !important;
}
/* L'équerre dorée */
:is(.lastours-shop-scroll-btn, .lastours-wine-card-link, .lastours-shop-experience-btn, .lastours-shop-grid .e-loop__load-more) a::before,
:is(.lastours-shop-scroll-btn, .lastours-wine-card-link, .lastours-shop-experience-btn, .lastours-shop-grid .e-loop__load-more) a::after {
  content: "" !important;
  position: absolute !important;
  left: 0;
  bottom: 0;
  display: block !important;
  background: var(--ls-btn-accent, var(--ls-gold)) !important;
  opacity: 1 !important;
  transform: none !important;
  pointer-events: none;
}
:is(.lastours-shop-scroll-btn, .lastours-wine-card-link, .lastours-shop-experience-btn, .lastours-shop-grid .e-loop__load-more) a::before {
  top: 0;
  width: 4px !important;
  height: auto !important;
}
:is(.lastours-shop-scroll-btn, .lastours-wine-card-link, .lastours-shop-experience-btn, .lastours-shop-grid .e-loop__load-more) a::after {
  top: auto;
  width: 16% !important;
  height: 4px !important;
}

/* Contenu Elementor du bouton : texte + icône alignés, espacement de l'accueil */
:is(.lastours-shop-scroll-btn, .lastours-wine-card-link, .lastours-shop-experience-btn, .lastours-shop-grid .e-loop__load-more) .elementor-button-content-wrapper {
  display: inline-flex !important;
  align-items: center;
  gap: 16px !important;
}
:is(.lastours-shop-scroll-btn, .lastours-wine-card-link, .lastours-shop-experience-btn, .lastours-shop-grid .e-loop__load-more) .elementor-button-icon {
  display: inline-flex;
  margin: 0 !important;
  color: currentColor !important;
  font-size: 14px;
  transition: transform 0.35s var(--ls-ease);
}
:is(.lastours-shop-scroll-btn, .lastours-wine-card-link, .lastours-shop-experience-btn, .lastours-shop-grid .e-loop__load-more) .elementor-button-icon :is(svg, i) {
  width: 18px;
  height: auto;
  color: currentColor !important;
  fill: currentColor !important;
}

/* Survol / focus clavier */
@media (hover: hover) {
  :is(.lastours-shop-scroll-btn, .lastours-wine-card-link, .lastours-shop-experience-btn, .lastours-shop-grid .e-loop__load-more) a:hover,
  .lastours-wine-card:hover .lastours-wine-card-link a {
    color: var(--ls-btn-hover, var(--ls-brown)) !important;
  }
  :is(.lastours-wine-card-link, .lastours-shop-experience-btn, .lastours-shop-grid .e-loop__load-more) a:hover .elementor-button-icon,
  .lastours-wine-card:hover .lastours-wine-card-link .elementor-button-icon {
    transform: translateX(5px);
  }
  /* La flèche du Hero pointe vers le bas : elle descend */
  .lastours-shop-scroll-btn a:hover .elementor-button-icon { transform: translateY(4px); }
}
:is(.lastours-shop-scroll-btn, .lastours-wine-card-link, .lastours-shop-experience-btn, .lastours-shop-grid .e-loop__load-more) a:focus-visible {
  color: var(--ls-btn-hover, var(--ls-brown)) !important;
  outline: 1px dashed currentColor !important;
  outline-offset: 6px;
}

/* Mobile : version compacte de l'accueil */
@media (max-width: 767px) {
  :is(.lastours-shop-scroll-btn, .lastours-wine-card-link, .lastours-shop-experience-btn, .lastours-shop-grid .e-loop__load-more) a {
    gap: 10px;
    padding: 14px 0 14px 16px !important;
    font-size: 0.64rem !important;
    letter-spacing: 0.16em !important;
  }
  :is(.lastours-shop-scroll-btn, .lastours-wine-card-link, .lastours-shop-experience-btn, .lastours-shop-grid .e-loop__load-more) .elementor-button-content-wrapper {
    gap: 10px !important;
  }
  /* Carte étroite (2 colonnes) : équerre plus fine, texte resserré */
  .lastours-wine-card-link a { padding: 12px 0 12px 12px !important; letter-spacing: 0.12em !important; }
  .lastours-wine-card-link a::before { width: 3px !important; }
  .lastours-wine-card-link a::after { height: 3px !important; }
}


/* ==========================================================================
   6. APPARITIONS AU SCROLL (classes posées par lastours-shop.js)
   --------------------------------------------------------------------------
   Sécurité : rien n'est masqué par défaut. Seul le JS pose .is-pending, et
   uniquement sur des éléments hors écran ; il le retire à l'entrée dans le
   viewport. Si le JS échoue, aucune carte n'est jamais invisible.
   ========================================================================== */

@media (prefers-reduced-motion: no-preference) {
  .lastours-shop-reveal {
    transition:
      opacity 0.5s var(--ls-ease),
      transform 0.5s var(--ls-ease-out);
    transition-delay: var(--ls-reveal-delay, 0ms);
  }
  .lastours-shop-reveal.is-pending {
    opacity: 0;
    transform: translate3d(0, 15px, 0);
  }
  /* Photo de la section dégustations : simple fondu + léger zoom arrière */
  .lastours-shop-experience-image.lastours-shop-reveal.is-pending { transform: none; }
  .lastours-shop-experience-image.lastours-shop-reveal img {
    transition: transform 1.2s var(--ls-ease-out);
    transition-delay: var(--ls-reveal-delay, 0ms);
  }
  .lastours-shop-experience-image.lastours-shop-reveal.is-pending img { transform: scale(1.04); }
}

/* Impression / éditeur : tout visible */
@media print {
  .lastours-shop-reveal.is-pending { opacity: 1 !important; transform: none !important; }
}
body.elementor-editor-active .lastours-shop-reveal.is-pending { opacity: 1 !important; transform: none !important; }


/* ==========================================================================
   7. PREFERS REDUCED MOTION
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  .lastours-wine-card,
  :is(.lastours-wine-card-visual, .lastours-wine-card-image) img,
  :is(a.lastours-shop-nav-link, .lastours-shop-nav-link a),
  :is(.lastours-shop-scroll-btn, .lastours-wine-card-link, .lastours-shop-experience-btn, .lastours-shop-grid .e-loop__load-more) a,
  :is(.lastours-shop-scroll-btn, .lastours-wine-card-link, .lastours-shop-experience-btn, .lastours-shop-grid .e-loop__load-more) .elementor-button-icon {
    transition-duration: 0.01s !important;
  }
  .lastours-wine-card:hover :is(.lastours-wine-card-visual, .lastours-wine-card-image) img { transform: none !important; }
  .lastours-shop-nav-links { scroll-snap-type: none; }
}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Vemior';
	font-style: normal;
	font-weight: normal;
	font-display: auto;
	src: url('https://chateau-lastours.fr/wp-content/uploads/2026/04/Vemior.woff2') format('woff2'),
		url('https://chateau-lastours.fr/wp-content/uploads/2026/04/Vemior.woff') format('woff'),
		url('https://chateau-lastours.fr/wp-content/uploads/2026/04/Vemior.ttf') format('truetype');
}
/* End Custom Fonts CSS */