/* Botón Scroll to Top - Diseño con anillo azul y centro blanco */

.scroll-to-top {
  position: fixed;
  bottom: 25px;
  right: 25px;
  width: 50px;
  height: 50px;
  background-color: white; /* Centro blanco */
  border: 4px solid #0943B5; /* Borde azul grueso */
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9998;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition: all 0.3s ease;
  /* Sombra suave y difusa */
  box-shadow: 0 4px 16px rgba(9, 67, 181, 0.25),
              0 2px 8px rgba(0, 0, 0, 0.1);
  padding: 0;
}

/* Estado visible */
.scroll-to-top.visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Hover effect */
.scroll-to-top:hover {
  background-color: #f8f9fa; /* Gris muy claro al hover */
  border-color: #0736a0; /* Azul más oscuro */
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 6px 20px rgba(9, 67, 181, 0.3),
              0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Active/Click effect */
.scroll-to-top:active {
  transform: translateY(-1px) scale(1);
  box-shadow: 0 3px 12px rgba(9, 67, 181, 0.2),
              0 2px 6px rgba(0, 0, 0, 0.1);
}

/* Flecha azul minimalista */
.scroll-to-top svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: #0943B5; /* Flecha azul */
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.scroll-to-top:hover svg {
  stroke: #0736a0; /* Flecha más oscura al hover */
}

/* Animación de entrada suave */
@keyframes slideUpFade {
  from {
    opacity: 0;
    transform: translateY(20px) scale(0.9);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.scroll-to-top.visible {
  animation: slideUpFade 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Efecto de pulso sutil */
@keyframes subtlePulse {
  0%, 100% {
    box-shadow: 0 4px 16px rgba(9, 67, 181, 0.25),
                0 2px 8px rgba(0, 0, 0, 0.1);
  }
  50% {
    box-shadow: 0 6px 20px rgba(9, 67, 181, 0.35),
                0 4px 12px rgba(0, 0, 0, 0.15);
  }
}

.scroll-to-top.visible {
  animation: slideUpFade 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
             subtlePulse 3s ease-in-out infinite 2s;
}

/* Responsive - Tablets y móviles */
@media (max-width: 768px) {
  .scroll-to-top {
    bottom: 20px;
    right: 20px;
    width: 46px;
    height: 46px;
    border-width: 3px;
  }

  .scroll-to-top svg {
    width: 18px;
    height: 18px;
    stroke-width: 2.5;
  }
}

@media (max-width: 480px) {
  .scroll-to-top {
    width: 44px;
    height: 44px;
  }

  .scroll-to-top svg {
    width: 16px;
    height: 16px;
  }
}

/* Ajuste cuando existe el menú de accesibilidad */
@media (min-width: 769px) {
  body:has(.accessibility-menu) .scroll-to-top {
    right: 90px; /* No se superpone con menú de accesibilidad */
  }
}

/* En móviles con menú de accesibilidad */
@media (max-width: 768px) {
  body:has(.accessibility-menu) .scroll-to-top {
    right: 20px;
    bottom: 140px; /* Encima del chat de preguntas frecuentes */
  }
}

/* Focus para accesibilidad — parar animación para que el outline se vea */
.scroll-to-top:focus-visible {
  outline: 3px solid #f0b400 !important;
  outline-offset: 3px;
  box-shadow: 0 0 0 6px rgba(0, 0, 0, 0.6) !important;
  animation: none !important;
}

/* Evitar selección de texto */
.scroll-to-top {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

/* Estado de carga (opcional) */
.scroll-to-top.loading {
  pointer-events: none;
  opacity: 0.6;
}

/* Animación de loading (opcional) */
@keyframes rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.scroll-to-top.loading svg {
  animation: rotate 1s linear infinite;
}
