/* Global Overrides — extracted from Webflow <style> blocks + widget CSS */

/* Font smoothing */
* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Focus visible */
*:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* Dropdown widget states (Webflow drives these via JS — replicate in CSS) */
.w-dropdown-list {
  display: none;
  opacity: 0;
  transition: opacity 300ms ease, visibility 300ms ease;
  visibility: hidden;
}

.w-dropdown.w--open > .w-dropdown-list {
  display: block;
  opacity: 1;
  visibility: visible;
}

/* Nav menu mobile states */
.w-nav-overlay {
  display: none;
}

.w-nav-overlay.w--open {
  display: block;
}

/* Form states */
.w-form-done {
  display: none;
}

.w-form-fail {
  display: none;
}

/* Commerce cart sidebar */
.w-commerce-commercecartcontainerwrapper {
  display: none !important;
}

.w-commerce-commercecartcontainerwrapper.w--open {
  display: flex !important;
}

/* ═══ IX2 Animation Classes ═══ */

@media (prefers-reduced-motion: no-preference) {
  /* Scroll reveal — fade up */
  .ix2-reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 500ms cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 500ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
  }
  .ix2-reveal.ix2-visible {
    opacity: 1;
    transform: translateY(0);
  }

  /* Hero entrance — starts hidden, stagger-revealed */
  .ix2-hero-enter {
    opacity: 0;
    transform: translateY(2rem);
    transition: opacity 600ms cubic-bezier(0.165, 0.84, 0.44, 1),
                transform 600ms cubic-bezier(0.165, 0.84, 0.44, 1);
  }
  .ix2-hero-enter.ix2-visible {
    opacity: 1;
    transform: translateY(0);
  }

  /* Image zoom on scroll */
  .ix2-image-zoom {
    opacity: 0.8;
    transform: scale(1);
    transition: opacity 250ms ease, transform 250ms ease;
  }
  .ix2-image-zoom.ix2-visible {
    opacity: 1;
    transform: scale(1.05);
  }

  /* Loop text animation */
  @keyframes loopText {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }
  .loop-text-inner-div {
    animation: loopText 20s linear infinite;
  }
}

/* Reduced motion fallback — elements always visible, no animation */
@media (prefers-reduced-motion: reduce) {
  .ix2-reveal,
  .ix2-hero-enter,
  .ix2-image-zoom {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .loop-text-inner-div {
    animation: none !important;
  }
}

/* Accordion (product FAQ) */
.accordion-item.w-dropdown {
  overflow: hidden;
  transition: height 300ms ease;
}

.accordion-item .arrow-icon {
  transition: transform 300ms ease;
}

.accordion-item.w--open .arrow-icon {
  transform: rotate(180deg);
}

/* Slider */
.w-slider {
  position: relative;
  overflow: hidden;
}

.w-slide {
  display: none;
}

.w-slide:first-child {
  display: block;
}

.w-slider-nav {
  display: flex;
  justify-content: center;
  gap: 8px;
  padding: 16px 0;
}

.w-slider-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #ccc;
  cursor: pointer;
  transition: background-color 200ms ease;
}

.w-slider-dot.w-active {
  background-color: #1a1a2e;
}

/* Tab states */
.w-tab-pane {
  display: none;
}

.w-tab-pane.w--tab-active {
  display: block;
}
