/* Dolce — entête hero/plain. Markup réel :
   - wrapper : header.elementor-location-header
   - BARRE VISIBLE = conteneur interne direct : .elementor-location-header > .e-con  (sticky géré par Elementor)
   - logo : .elementor-widget-theme-site-logo img (500x228)
   Classes body ajoutées par le JS : .dolce-hero-on (page avec .dolce-hero) OU .dolce-header-plain (sans),
   + .dolce-scrolled au scroll. */

/* Transitions douces + garde-fous logo (jamais géant, aspect conservé). */
.elementor-location-header > .e-con{
  transition:min-height .3s ease, padding-top .3s ease, padding-bottom .3s ease,
             background-color .3s ease, box-shadow .3s ease;
}
.elementor-location-header .elementor-widget-theme-site-logo img{
  transition:max-height .3s ease;
  width:auto !important; height:auto !important;
  max-height:130px;                 /* plafond de sécurité par défaut */
}
.elementor-location-header .elementor-widget-theme-site-logo{ display:flex; align-items:center; }

/* ================= PAGES AVEC HERO (.dolce-hero présent) ================= */
/* On sort le header du flux pour qu'il OVERLAY le hero (transparent), puis fixe au scroll. */
body.dolce-hero-on .elementor-location-header{
  position:absolute !important; top:0; left:0; right:0; width:100%; z-index:999;
  transition:transform .35s ease, background .3s ease, box-shadow .3s ease;
}
/* Header CACHÉ pendant le hero (le titre a touché le header) : il glisse vers le haut. */
body.dolce-hero-on.dolce-hero-hidden .elementor-location-header{
  transform:translateY(-115%) !important;
  pointer-events:none;
}
/* En haut : conteneur transparent + voile sombre pour lisibilité, logo + menu BLANCS. */
body.dolce-hero-on:not(.dolce-scrolled) .elementor-location-header > .e-con{
  background:transparent !important; box-shadow:none !important;
}
body.dolce-hero-on:not(.dolce-scrolled) .elementor-location-header > .e-con::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(to bottom, rgba(6,20,30,.5), rgba(6,20,30,0));
}
body.dolce-hero-on:not(.dolce-scrolled) .elementor-location-header .elementor-widget-theme-site-logo img{
  filter:brightness(0) invert(1); max-height:118px !important;
}
body.dolce-hero-on:not(.dolce-scrolled) .elementor-location-header a{ color:#fff !important; }
body.dolce-hero-on:not(.dolce-scrolled) .elementor-location-header .elementor-menu-toggle{ color:#fff !important; }
body.dolce-hero-on:not(.dolce-scrolled) .elementor-location-header .elementor-menu-toggle svg{ fill:#fff !important; }
/* Hero scrollé : header fixe, glass + compact. */
body.dolce-hero-on.dolce-scrolled .elementor-location-header{ position:fixed !important; }
body.dolce-hero-on.dolce-scrolled .elementor-location-header > .e-con{
  background:rgba(255,255,255,.72) !important;
  -webkit-backdrop-filter:blur(16px) saturate(150%); backdrop-filter:blur(16px) saturate(150%);
  box-shadow:0 2px 14px rgba(12,61,84,.10) !important;
  min-height:72px !important; padding-top:8px !important; padding-bottom:8px !important;
}
body.dolce-hero-on.dolce-scrolled .elementor-location-header .elementor-widget-theme-site-logo img{
  max-height:50px !important;
}

/* ================= PAGES SANS HERO (fond LIQUID GLASS) ================= */
/* On rend le header collant NOUS-MÊMES (le sticky natif Elementor ne fixait pas la barre ici) :
   ainsi au scroll la barre reste, en glass, et rétrécit. */
body.dolce-header-plain .elementor-location-header{
  position:sticky !important; top:0; z-index:999;
}
/* Le FOND glass est peint par un pseudo-élément ::before : Elementor (sticky--effects) écrase le
   background-color inline de l'élément, mais ne peut pas toucher un ::before. */
body.dolce-header-plain .elementor-location-header > .e-con{
  position:relative;
  -webkit-backdrop-filter:blur(16px) saturate(150%); backdrop-filter:blur(16px) saturate(150%);
}
body.dolce-header-plain .elementor-location-header > .e-con::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:rgba(255,255,255,.55);
  border-bottom:1px solid rgba(255,255,255,.35);
  transition:background .3s ease, box-shadow .3s ease;
}
/* En haut : grand logo (comme le hero). */
body.dolce-header-plain:not(.dolce-scrolled) .elementor-location-header .elementor-widget-theme-site-logo img{
  max-height:118px !important;
}
/* Au scroll : glass plus dense + ombre + compact. */
body.dolce-header-plain.dolce-scrolled .elementor-location-header > .e-con::before{
  background:rgba(255,255,255,.75);
  box-shadow:0 2px 14px rgba(12,61,84,.12);
}
body.dolce-header-plain.dolce-scrolled .elementor-location-header > .e-con{
  min-height:70px !important; padding-top:8px !important; padding-bottom:8px !important;
}
body.dolce-header-plain.dolce-scrolled .elementor-location-header .elementor-widget-theme-site-logo img{
  max-height:50px !important;
}

/* Titre du hero en blanc (classe à poser sur le widget titre, optionnel). */
.dolce-hero-title, .dolce-hero-title *{ color:#fff !important; }
