:root{ --dq-hover:#0d4f3f; }

/* Elementor Nav Menu base */
.elementor .elementor-nav-menu a.elementor-item,
.elementor .elementor-nav-menu a.elementor-sub-item{
  position:relative; display:inline-flex; align-items:center;
  line-height:1.2; overflow:visible; text-decoration:none; color:inherit;
}

/* Neutralize theme hover that blanks text */
.elementor .elementor-nav-menu a.elementor-item:hover,
.elementor .elementor-nav-menu a.elementor-sub-item:hover{
  color:inherit !important; -webkit-text-fill-color:inherit !important;
}

/* Optional underline */
.elementor .elementor-nav-menu a.elementor-item::after,
.elementor .elementor-nav-menu a.elementor-sub-item::after{
  content:""; position:absolute; left:0; bottom:-6px; height:2px; width:100%;
  background: var(--dq-hover); transform: scaleX(0); transform-origin:left;
  transition: transform .45s cubic-bezier(.22,.61,.36,1);
}
.elementor .elementor-nav-menu a.elementor-item:is(:hover,:focus-visible,.is-hover)::after,
.elementor .elementor-nav-menu a.elementor-sub-item:is(:hover,:focus-visible,.is-hover)::after{
  transform: scaleX(1);
}

/* Injected wrapper + cells */
.elementor .elementor-nav-menu .menu-text{ display:inline-flex; line-height:1em; gap:0; }
.elementor .elementor-nav-menu .menu-text .char{
  position:relative; display:inline-block; height:1em; overflow:hidden; vertical-align:bottom;
}

/* Two layers per char; stagger via --i */
.elementor .elementor-nav-menu .char .layer{
  display:block; line-height:1em; will-change:transform; backface-visibility:hidden;
  transform: translateY(0);
  transition: transform .42s cubic-bezier(.22,.61,.36,1);
  transition-delay: calc(var(--i,0) * 28ms);
}
/* Hover layer color; base layer color comes inline from JS */
.elementor .elementor-nav-menu .char .layer.hover{
  color: var(--dq-hover, #0d4f3f) !important;
  transform: translateY(100%);
}

/* Hover state: base up, hover in */
.elementor .elementor-nav-menu a.elementor-item:is(:hover,:focus-visible,.is-hover) .char .layer.base,
.elementor .elementor-nav-menu a.elementor-sub-item:is(:hover,:focus-visible,.is-hover) .char .layer.base{
  transform: translateY(-100%);
}
.elementor .elementor-nav-menu a.elementor-item:is(:hover,:focus-visible,.is-hover) .char .layer.hover,
.elementor .elementor-nav-menu a.elementor-sub-item:is(:hover,:focus-visible,.is-hover) .char .layer.hover{
  transform: translateY(0);
}

/* Spaces don’t move */
.elementor .elementor-nav-menu .char.space .layer{ transform:none !important; }

/* Safety: never allow opacity/filter to hide layers */
.elementor .elementor-nav-menu .char .layer{ opacity:1 !important; filter:none !important; }
