
/* RÉGLAGES — tout se retouche ici */
:root{
  --mdv-mv-duree:  .72s;
  --mdv-mv-courbe: cubic-bezier(.22,.61,.36,1);
  --mdv-mv-dist:   18px;
  --mdv-mv-pas:    70ms;
  --mdv-mv-surv:   .42s;
  --mdv-mv-or:     #B29760;
  --mdv-mv-nuit:   21,14,6;
}
@media (max-width:1024px){ :root{ --mdv-mv-dist:14px; --mdv-mv-duree:.62s; } }
@media (max-width:767px){  :root{ --mdv-mv-dist:10px; --mdv-mv-duree:.55s; --mdv-mv-pas:50ms; } }

/* 1. RÉVÉLATION AU SCROLL */
html.mdv-mv :where(
  [data-elementor-type] .elementor-widget:not(:has(.elementor-loop-container:not(.swiper-wrapper))),
  [data-elementor-type] .e-loop-item,
  main.site-main .entry-content > *:not(.elementor):not(style):not(script)
):not(:where(
  .mmv-fx, .mmv-fx *,
  .e-loop-item .elementor-widget, .e-loop-item .e-loop-item,
  .swiper *, .swiper-wrapper *, .elementor-loop-carousel *,
  .mdv-defile, .mdv-defile *,
  .mmv-sugg__item, .mmv-sugg__item *,
  .mmv-hero *, .mmv-hero--carte *, .mdv-heroc *, .mdv-herog *,
  .elementor-location-header *, .elementor-location-footer *,
  #masthead *, #colophon *,
  .elementor-sticky, .elementor-sticky *,
  [class*="cv-filter"], [class*="cv-filter"] *,
  .mdv-mv-non, .mdv-mv-non *
)){
  opacity:0;
  transform:translate3d(0,var(--mdv-mv-dist),0);
  transition:opacity var(--mdv-mv-duree) var(--mdv-mv-courbe),
             transform var(--mdv-mv-duree) var(--mdv-mv-courbe);
  transition-delay:calc(var(--mdv-mv-i,0) * var(--mdv-mv-pas));
  will-change:opacity,transform;
}
html.mdv-mv .mdv-mv-bloc:not(.mdv-mv-vu){
  opacity:0;
  transform:translate3d(0,var(--mdv-mv-dist),0);
  transition:opacity var(--mdv-mv-duree) var(--mdv-mv-courbe),
             transform var(--mdv-mv-duree) var(--mdv-mv-courbe);
  transition-delay:calc(var(--mdv-mv-i,0) * var(--mdv-mv-pas));
}
html.mdv-mv .mdv-mv-vu{ opacity:1; transform:none; will-change:auto; }

/* 2. SURVOL — pointeurs précis seulement */
@media (hover:hover) and (pointer:fine){
  html.mdv-mv .e-loop-item .wine-frame{
    transition:transform var(--mdv-mv-surv) var(--mdv-mv-courbe);
  }
  html.mdv-mv .e-loop-item:hover .wine-frame{
    transform:translateY(-4px);
    box-shadow:none;
  }

  /* La ligne de contenance est posée sous le cadre mais appartient au texte de
     la carte (le filet est porté par le titre, qui ne bouge pas) : on la laisse
     en place pendant que l'image se soulève. */
  html.mdv-mv .e-loop-item .wine-frame .wine-contenance{
    transition:transform var(--mdv-mv-surv) var(--mdv-mv-courbe) !important;
  }
  html.mdv-mv .e-loop-item:hover .wine-frame .wine-contenance{
    /* le centrage translateX(-50%) du gabarit est en !important : on le reprend */
    transform:translateX(-50%) translateY(4px) !important;
  }
  html.mdv-mv .mdv-degl .mdv-carte{
    transition:transform var(--mdv-mv-surv) var(--mdv-mv-courbe),
               box-shadow var(--mdv-mv-surv) var(--mdv-mv-courbe);
  }
  html.mdv-mv .mdv-degl .mdv-carte:hover{
    transform:translateY(-5px);
    box-shadow:0 26px 50px -30px rgba(var(--mdv-mv-nuit),.5);
  }
  html.mdv-mv .mdv-degl .mdv-img{ overflow:hidden; }
  html.mdv-mv .mdv-degl .mdv-img img{ transition:transform .9s var(--mdv-mv-courbe); }
  html.mdv-mv .mdv-degl .mdv-carte:hover .mdv-img img{ transform:scale(1.045); }

  html.mdv-mv [data-elementor-type] .elementor-widget-image a{ display:block; overflow:hidden; }
  html.mdv-mv [data-elementor-type] .elementor-widget-image a img{ transition:transform .9s var(--mdv-mv-courbe); }
  html.mdv-mv [data-elementor-type] .elementor-widget-image a:hover img{ transform:scale(1.035); }

  html.mdv-mv :is(.elementor-button,.wp-element-button,.ast-button,#content .button){
    transition:background-color var(--mdv-mv-surv) var(--mdv-mv-courbe),
               border-color var(--mdv-mv-surv) var(--mdv-mv-courbe),
               color var(--mdv-mv-surv) var(--mdv-mv-courbe),
               transform var(--mdv-mv-surv) var(--mdv-mv-courbe),
               box-shadow var(--mdv-mv-surv) var(--mdv-mv-courbe);
  }
  html.mdv-mv :is(.elementor-button,.wp-element-button,.ast-button,#content .button):hover{
    transform:translateY(-2px);
    box-shadow:0 14px 28px -18px rgba(var(--mdv-mv-nuit),.55);
  }

  html.mdv-mv #content :is(p,li) a:not(.elementor-button):not(.button):not(.wp-element-button){
    background-image:linear-gradient(var(--mdv-mv-or),var(--mdv-mv-or));
    background-repeat:no-repeat;
    background-position:0 100%;
    background-size:0% 1px;
    transition:background-size .5s var(--mdv-mv-courbe), color .3s var(--mdv-mv-courbe);
    text-decoration:none;
  }
  html.mdv-mv #content :is(p,li) a:not(.elementor-button):not(.button):not(.wp-element-button):hover{
    background-size:100% 1px;
  }

  /* Colonne de filtres : pas de trait animé (le terme porte déjà son soulignement) */
  html.mdv-mv #content .cv-sidebar a,
  html.mdv-mv #content .cv-attr-options a{
    background-image:none !important;
  }

  html.mdv-mv #colophon a{ transition:color .3s var(--mdv-mv-courbe); }
  html.mdv-mv #colophon a:hover{ color:var(--mdv-mv-or); }
}

/* 3. IMAGES QUI RESPIRENT — heros intérieurs */
@keyframes mdv-souffle{
  from{ transform:scale(1)     translate3d(0,0,0); }
  to  { transform:scale(1.055) translate3d(0,-.6%,0); }
}
html.mdv-mv .mdv-souffle-av::before{
  animation:mdv-souffle 26s var(--mdv-mv-courbe) infinite alternate;
  will-change:transform;
}
html.mdv-mv .mdv-kb{
  position:absolute; inset:-3%; z-index:0;
  background-size:cover; background-repeat:no-repeat;
  pointer-events:none;
  animation:mdv-souffle 26s var(--mdv-mv-courbe) infinite alternate;
}
@media (max-width:767px){ html.mdv-mv .mdv-kb{ animation-duration:32s; } }

/* 4. DÉTAILS AU SCROLL */
html.mdv-mv :is(#masthead,#masthead .main-header-bar,#masthead .ast-primary-header-bar){
  transition:background-color .45s var(--mdv-mv-courbe),
             height .45s var(--mdv-mv-courbe),
             box-shadow .45s var(--mdv-mv-courbe);
}
html.mdv-mv #masthead .menu-link{ transition:color .3s var(--mdv-mv-courbe); }

/* retour haut de page : on habille le bouton natif d'Astra */
html.mdv-mv #ast-scroll-top{
  width:44px; height:44px; border-radius:50%;
  background:#FFFBF0 !important;
  color:#402E15 !important;
  border:1px solid rgba(178,151,96,.55);
  box-shadow:0 12px 28px -20px rgba(var(--mdv-mv-nuit),.65);
  transition:background-color .3s var(--mdv-mv-courbe), color .3s var(--mdv-mv-courbe),
             transform .3s var(--mdv-mv-courbe), opacity .35s var(--mdv-mv-courbe);
}
html.mdv-mv #ast-scroll-top:hover{
  background:var(--mdv-mv-or) !important;
  color:#FFFBF0 !important;
  transform:translateY(-2px);
}
html.mdv-mv #ast-scroll-top .ast-arrow-svg{ fill:currentColor; width:13px; height:13px; }
@media (max-width:767px){ html.mdv-mv #ast-scroll-top{ width:40px; height:40px; } }

