/* Custom Interactive Cursor styling */
html, body {
  scroll-behavior: auto !important; /* Required for Lenis smooth scroll */
}

/* Hide native cursor for a clean Framer-like experience on desktop */
@media (min-width: 1025px) {
  body {
    cursor: none;
  }
  a, button, .elementor-button, .swiper-button-next, .swiper-button-prev, select, input[type="submit"] {
    cursor: none !important;
  }
}

.framer-cursor-dot,
.framer-cursor-outline {
  position: fixed;
  top: 0;
  left: 0;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  pointer-events: none;
  z-index: 999999;
  transition: opacity 0.3s ease, transform 0.15s ease-out, background-color 0.3s ease, border-color 0.3s ease;
  opacity: 0;
}

.framer-cursor-dot {
  width: 8px;
  height: 8px;
  background-color: var(--e-global-color-primary, #28282B);
}

.framer-cursor-outline {
  width: 40px;
  height: 40px;
  border: 1px solid var(--e-global-color-secondary, #93A2AE);
  transition: width 0.3s, height 0.3s, transform 0.1s ease-out;
}

/* Hover States for Interactive Elements */
body.cursor-hovering .framer-cursor-dot {
  transform: translate(-50%, -50%) scale(0);
}

body.cursor-hovering .framer-cursor-outline {
  width: 55px;
  height: 55px;
  background-color: rgba(147, 162, 174, 0.15); /* Light secondary color tint */
  border-color: var(--e-global-color-primary, #28282B);
  transform: translate(-50%, -50%) scale(1.1);
}

/* Reveal entrance styles globally */
.framer-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}

.framer-reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Micro-interaction for Elementor Cards and Containers */
.elementor-widget-container, 
.elementor-column, 
.elementor-container {
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
