/* Force-show elements that animation JS may leave hidden on mobile.
 * Has to override INLINE styles set by GSAP/Liquid scripts, hence very
 * high specificity + !important. */

/* Elementor's "invisible until in viewport" */
.elementor-invisible,
.elementor-invisible * {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

/* Liquid theme split-text containers and their inner spans */
.lqd-split-lines,
.lqd-split-lines *,
.lqd-lines,
.lqd-lines *,
.split-inner,
.split-line,
.split-word,
.split-char,
.lqd-adv-txt-fig {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  -webkit-transform: none !important;
}

/* Mask-text wrapper — clips overflow so unanimated lines stay hidden below */
.mask-text,
.mask-text * {
  overflow: visible !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
  clip-path: none !important;
}

/* Split-text data attribute */
[data-split-text="true"],
[data-split-text="true"] * {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

/* Custom-animations widget container and all descendants */
[data-custom-animations="true"],
[data-custom-animations="true"] *,
.lqd-el-has-inner-anim,
.lqd-el-has-inner-anim * {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  -webkit-transform: none !important;
}

/* Defensive — fancy heading + general headings */
.ld-fancy-heading,
.ld-fancy-heading *,
.ld-fh-element,
.elementor-heading-title {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

/* In-view animations from various libraries */
[data-inview-text],
[data-inview-text] *,
[data-anim],
[data-anim] *,
.fade-anim-in,
.fade-anim-in *,
.lqd-fade-in,
.lqd-fade-in * {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

/* ============ Manual mobile hamburger ============ */

#ais-mobile-trigger {
  display: none;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  background: transparent;
  border: 0;
  padding: 8px;
  cursor: pointer;
  z-index: 9999;
  flex-direction: column;
  justify-content: space-around;
}
#ais-mobile-trigger span {
  display: block;
  width: 100%;
  height: 3px;
  background: #103A40;
  border-radius: 2px;
  transition: transform 0.2s, opacity 0.2s;
}
@media (max-width: 1199px) {
  #ais-mobile-trigger { display: flex !important; }
}
.ais-mobile-nav-open #ais-mobile-trigger span:nth-child(1) {
  transform: translateY(11px) rotate(45deg);
}
.ais-mobile-nav-open #ais-mobile-trigger span:nth-child(2) {
  opacity: 0;
}
.ais-mobile-nav-open #ais-mobile-trigger span:nth-child(3) {
  transform: translateY(-11px) rotate(-45deg);
}

/* Show the existing mobile nav when our trigger is active */
.ais-mobile-nav-open .mobile-navbar-collapse,
.ais-mobile-nav-open #lqd-mobile-sec-nav {
  display: block !important;
  position: fixed !important;
  top: 80px !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: auto !important;
  background: #ffffff !important;
  z-index: 9998 !important;
  padding: 24px !important;
  overflow-y: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.ais-mobile-nav-open .mobile-navbar-collapse ul,
.ais-mobile-nav-open #lqd-mobile-sec-nav ul {
  display: block !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.ais-mobile-nav-open .mobile-navbar-collapse li,
.ais-mobile-nav-open #lqd-mobile-sec-nav li {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid #eee !important;
}
.ais-mobile-nav-open .mobile-navbar-collapse a,
.ais-mobile-nav-open #lqd-mobile-sec-nav a {
  display: block !important;
  padding: 16px 0 !important;
  color: #103A40 !important;
  font-size: 18px !important;
  text-decoration: none !important;
}
.ais-mobile-nav-open {
  overflow: hidden;
}
