/* Ziade Widgets — small layer on top of the design stylesheet (lovable.css) */
html, body { overflow-x: clip; }

/* the design's body defaults (the theme/Elementor re-set them un-layered) */
html body[class] {
  background-color: var(--color-background);
  color: var(--color-foreground);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  line-height: 1.5;
}

/*
 * The design's utility classes live in CSS cascade layers, so any un-layered rule from the theme or Elementor
 * (img{height:auto}, a{color}, h1{margin}, button{padding}...) would override them. Inside our widgets we roll every
 * property back to the layered (design) value. Inline styles and the rules below (higher specificity) still win.
 */
.elementor .elementor-widget[class*="elementor-widget-zw_"] :where(*) { all: revert-layer; }

/* The design's three UN-layered rules (marquee) are wiped by the roll-back above: restore them (keyframes stay global). */
.elementor .elementor-widget[class*="elementor-widget-zw_"] .logo-marquee {
  -webkit-mask-image: linear-gradient(90deg, #0000 0, #000 6% 94%, #0000 100%);
  mask-image: linear-gradient(90deg, #0000 0, #000 6% 94%, #0000 100%);
}
.elementor .elementor-widget[class*="elementor-widget-zw_"] .logo-marquee-track { animation: 40s linear infinite ziade-logo-marquee; }
.elementor .elementor-widget[class*="elementor-widget-zw_"] .logo-marquee:hover .logo-marquee-track { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .elementor .elementor-widget[class*="elementor-widget-zw_"] .logo-marquee-track { animation: none; }
}

/* Elementor wrappers add no spacing around our widgets */
.elementor .elementor-widget[class*="elementor-widget-zw_"] { --kit-widget-spacing: 0px; margin-bottom: 0; }
.elementor .elementor-widget[class*="elementor-widget-zw_"] > .elementor-widget-container { margin: 0; padding: 0; }

/* sticky header: the Theme Builder location wrapper sticks (its parent is the whole page) */
.elementor-location-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .elementor-location-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .elementor-location-header { top: 46px; } }

/* behaviours (scoped so they outrank the roll-back above) */
.elementor .elementor-widget[class*="elementor-widget-zw_"] .zw-menu-btn [hidden],
.elementor .elementor-widget[class*="elementor-widget-zw_"] .zw-acc-panel[hidden],
.elementor .elementor-widget[class*="elementor-widget-zw_"] .zw-project[hidden],
.elementor .elementor-widget[class*="elementor-widget-zw_"] #mobile-nav[hidden] { display: none !important; }
.elementor .elementor-widget[class*="elementor-widget-zw_"] .zw-acc-btn[aria-expanded="true"] > svg { transform: rotate(180deg); }

/* links keep the design's look (no theme underline) */
.elementor .elementor-widget[class*="elementor-widget-zw_"] a { text-decoration: none; }
.elementor .elementor-widget[class*="elementor-widget-zw_"] a.hover\:underline:hover,
.elementor .elementor-widget[class*="elementor-widget-zw_"] a[class*="underline-offset"]:hover { text-decoration: underline; }
