/* ==========================================================
   floating.css — loader / cursor / scroll-top / fixed CTA
   ========================================================== */
:root {
  /* loader */
  --ebmnt1-loader-bg: var(--ebmnt1-color-black);
  --ebmnt1-loader-icon-color: var(--ebmnt1-color-gradient-from);
  --ebmnt1-loader-ring-color: var(--ebmnt1-color-primary);
  --ebmnt1-loader-z-index: 1000;

  /* cursor */
  --ebmnt1-cursor-size: 2.4rem;
  --ebmnt1-cursor-border-color: var(--ebmnt1-color-gradient-from);
  --ebmnt1-cursor-bg: var(--ebmnt1-color-cursor-tint);
  --ebmnt1-cursor-hover-scale: 1.9;

  /* scroll top */
  --ebmnt1-scrolltop-size: 2.9rem;
  --ebmnt1-scrolltop-track-color: var(--ebmnt1-color-border-filter);
  --ebmnt1-scrolltop-progress-color: var(--ebmnt1-color-gradient-from);
  --ebmnt1-scrolltop-bg: var(--ebmnt1-color-page-bg);
  --ebmnt1-scrolltop-icon-color: var(--ebmnt1-color-white);

  /* fixed CTA */
  --ebmnt1-cta-z-index: 90;
  --ebmnt1-cta-gap: 0.6em;
  --ebmnt1-cta-text-color: var(--ebmnt1-color-white);
  --ebmnt1-cta-font-size: clamp(0.85rem, 0.8rem + 0.25vw, 1rem);
  --ebmnt1-cta-whatsapp-bg: linear-gradient(135deg, var(--ebmnt1-color-whatsapp), var(--ebmnt1-color-whatsapp-deep));
  --ebmnt1-cta-whatsapp-pulse-color: var(--ebmnt1-color-whatsapp-glow-strong);
  --ebmnt1-cta-call-bg: linear-gradient(135deg, var(--ebmnt1-color-gradient-center), var(--ebmnt1-color-secondary-to));
  --ebmnt1-cta-call-pulse-color: var(--ebmnt1-color-glow-purple);
  --ebmnt1-cta-glass-border-color: var(--ebmnt1-color-white-alpha-25);
  --ebmnt1-cta-shadow-color: var(--ebmnt1-color-shadow-dark);
  --ebmnt1-cta-icon-bg: var(--ebmnt1-color-white-alpha-20);
}

/* ---------- loader ---------- */
.ebmnt1-loader {
  position: fixed;
  inset: 0;
  z-index: var(--ebmnt1-loader-z-index);
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--ebmnt1-loader-bg);
  transition: opacity 0.6s ease, visibility 0s linear 0.6s;
}

.ebmnt1-loader.ebmnt1-is-hidden {
  opacity: 0;
  visibility: hidden;
}

.ebmnt1-loader__ring {
  position: absolute;
  width: 5.5rem;
  height: 5.5rem;
  border: 2px solid transparent;
  border-top-color: var(--ebmnt1-loader-ring-color);
  border-radius: 50%;
  animation: ebmnt1-loader-spin 1s linear infinite;
}

.ebmnt1-loader__icon {
  color: var(--ebmnt1-loader-icon-color);
  font-size: clamp(1.8rem, 1.7rem + 0.2vw, 2.16rem);
  animation: ebmnt1-loader-pulse 1.2s ease-in-out infinite;
}

@keyframes ebmnt1-loader-spin {
  to { transform: rotate(360deg); }
}

@keyframes ebmnt1-loader-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%      { transform: scale(0.8); opacity: 0.6; }
}

/* ---------- cursor (desktop / pointer:fine only) ---------- */
.ebmnt1-cursor {
  display: none;
}

@media (hover: hover) and (pointer: fine) {
  .ebmnt1-cursor {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    z-index: calc(var(--ebmnt1-loader-z-index) + 1);
    width: var(--ebmnt1-cursor-size);
    height: var(--ebmnt1-cursor-size);
    margin: calc(var(--ebmnt1-cursor-size) / -2) 0 0 calc(var(--ebmnt1-cursor-size) / -2);
    border: 1px solid var(--ebmnt1-cursor-border-color);
    border-radius: 50%;
    background-color: var(--ebmnt1-cursor-bg);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s ease, scale 0.3s ease, background-color 0.3s ease;
  }

  .ebmnt1-cursor.ebmnt1-is-active {
    opacity: 1;
  }

  .ebmnt1-cursor.ebmnt1-is-hover {
    scale: var(--ebmnt1-cursor-hover-scale);
  }
}

/* ---------- scroll top (bottom-right, progress ring) ---------- */
.ebmnt1-scroll-top {
  position: fixed;
  right: 1em;
  bottom: 1em;
  z-index: var(--ebmnt1-cta-z-index);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--ebmnt1-scrolltop-size);
  height: var(--ebmnt1-scrolltop-size);
  border-radius: 50%;
  background: conic-gradient(var(--ebmnt1-scrolltop-progress-color) 0deg, var(--ebmnt1-scrolltop-track-color) 0deg);
  opacity: 0;
  visibility: hidden;
  transform: translateY(14px);
  transition: opacity 0.35s ease, transform 0.35s ease, visibility 0s linear 0.35s;
}

.ebmnt1-scroll-top.ebmnt1-is-visible {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition-delay: 0s;
}

.ebmnt1-scroll-top__core {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: calc(100% - 4px);
  height: calc(100% - 4px);
  border-radius: 50%;
  background-color: var(--ebmnt1-scrolltop-bg);
  color: var(--ebmnt1-scrolltop-icon-color);
  font-size: clamp(0.855rem, 0.807rem + 0.2vw, 1.026rem);
}

/* ---------- fixed CTA (bottom-left) ---------- */
.ebmnt1-floating-cta {
  position: fixed;
  left: 0.8em;
  bottom: 0.8em;
  z-index: var(--ebmnt1-cta-z-index);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--ebmnt1-cta-gap);
  transition: opacity 0.4s ease, transform 0.4s ease, visibility 0s linear 0s;
}

.ebmnt1-floating-cta.ebmnt1-is-hidden {
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition-delay: 0s, 0s, 0.4s;
}

.ebmnt1-floating-cta__btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  min-height: 3em;
  padding: 0.35em 1.1em 0.35em 0.4em;
  border: 1px solid var(--ebmnt1-cta-glass-border-color);
  border-radius: 2em;
  color: var(--ebmnt1-cta-text-color);
  font-size: var(--ebmnt1-cta-font-size);
  font-weight: 600;
  box-shadow: 0 12px 30px -12px var(--ebmnt1-cta-shadow-color);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  animation: ebmnt1-cta-slide-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.ebmnt1-floating-cta__btn--call {
  animation-delay: 0.15s;
}

.ebmnt1-floating-cta__btn--whatsapp {
  background-image: var(--ebmnt1-cta-whatsapp-bg);
}

.ebmnt1-floating-cta__btn--call {
  background-image: var(--ebmnt1-cta-call-bg);
}

.ebmnt1-floating-cta__btn:hover {
  transform: translateY(-3px) scale(1.03);
}

.ebmnt1-floating-cta__icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.3em;
  height: 2.3em;
  border-radius: 50%;
  background-color: var(--ebmnt1-cta-icon-bg);
  font-size: clamp(0.945rem, 0.892rem + 0.2vw, 1.134rem);
}

.ebmnt1-floating-cta__icon::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  animation: ebmnt1-cta-pulse 2s ease-out infinite;
}

.ebmnt1-floating-cta__btn--whatsapp .ebmnt1-floating-cta__icon::after {
  background-color: var(--ebmnt1-cta-whatsapp-pulse-color);
}

.ebmnt1-floating-cta__btn--call .ebmnt1-floating-cta__icon::after {
  background-color: var(--ebmnt1-cta-call-pulse-color);
}

@keyframes ebmnt1-cta-pulse {
  0%   { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(1.9); opacity: 0; }
}

@keyframes ebmnt1-cta-slide-in {
  from { opacity: 0; transform: translateX(-40px); }
  to   { opacity: 1; transform: none; }
}

@media (min-width: 425px) {
  .ebmnt1-floating-cta {
    flex-direction: row;
  }
}

@media (min-width: 768px) {
  .ebmnt1-floating-cta {
    left: 1.4em;
    bottom: 1.4em;
  }

  .ebmnt1-scroll-top {
    right: 1.4em;
    bottom: 1.4em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ebmnt1-loader__ring,
  .ebmnt1-loader__icon,
  .ebmnt1-floating-cta__btn,
  .ebmnt1-floating-cta__icon::after {
    animation: none;
  }
}
