/* ===== Hero: servicio rotativo, botón magnético, fade entre imágenes ===== */

/* Variables mapeadas al :root del sitio */
:root {
  --color-primario: var(--primary, #235789);
  --color-secundario: var(--secondary, #020100);
  --color-acento: var(--accent, #ed1c24);
  --color-fondo: var(--dark, #235789);
  --color-tarjeta: var(--card-dark, transparent);
}

/* --- Fade suave entre las imágenes del hero + overlay fijo --- */
.hero-slider-section, .hero {
  position: relative;
  overflow: hidden;
}

.slide-item, .hero .capa-imagen {
  transition: opacity 1.2s ease-in-out, visibility 1.2s ease-in-out !important;
}

.slide-item.active, .hero .capa-imagen.activa {
  opacity: 1 !important;
  visibility: visible !important;
}

.hero-overlay, .hero .overlay-oscuro {
  background: rgba(0, 0, 0, 0.6) !important;
}

/* --- Servicio rotativo en el título --- */
.slide-title, .slide-desc, .rotativo-etiqueta, .rotativo-titulo {
  transition: opacity .45s ease, transform .45s ease;
}

.slide-title-second {
  color: #ed1c24 !important;
}

/* --- Botón magnético --- */
.btn-magnetico {
  transition: transform .15s ease, background .2s ease, box-shadow .2s ease !important;
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  .slide-item, .hero .capa-imagen { transition: none !important; }
  .slide-title, .slide-desc, .rotativo-etiqueta, .rotativo-titulo { transition: none !important; }
  .btn-magnetico { transition: none !important; transform: none !important; }
}

/* ===== HERO SLIDER: ALTURA 550PX, TÍTULOS 60PX (2 RENGLONES), PÁRRAFO 25PX (2 RENGLONES), BOTÓN 152X44 (15PX) ===== */
.hero-slider-section,
.hero-slider {
  position: relative !important;
  height: 550px !important;
  min-height: 550px !important;
  max-height: 550px !important;
  width: 100% !important;
  overflow: hidden !important;
  background: #FFFFFF !important;
}

.slide-item {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 550px !important;
  min-height: 550px !important;
  max-height: 550px !important;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.8s ease-in-out, visibility 0.8s;
  background-size: cover;
  background-position: center;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding-top: 40px !important;
  box-sizing: border-box !important;
}

.slide-item.active {
  opacity: 1 !important;
  visibility: visible !important;
}

.hero-overlay {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: rgba(0, 0, 0, 0.6) !important;
}

.hero-content {
  position: relative !important;
  z-index: 10 !important;
  max-width: 1150px !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 auto !important;
  text-align: center !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}

.slide-title {
  font-size: 60px !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  color: #FFFFFF !important;
  margin-bottom: 12px !important;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.6) !important;
  text-align: center !important;
}

.slide-desc {
  font-size: 20px !important;
  line-height: 1.3 !important;
  color: #E2E8F0 !important;
  margin-bottom: 20px !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5) !important;
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.hero-slider-section .hero-content .btn,
.hero-slider-section .hero-content a.btn,
.hero-slider-section .slide-item a.btn,
.hero-slider-section a.btn-magnetico {
  width: 152px !important;
  min-width: 152px !important;
  max-width: 152px !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
  text-decoration: none !important;
  background: #ed1c24 !important;
  border: 1px solid #ed1c24 !important;
  color: #ffffff !important;
  border-radius: 6px !important;
}

.slider-dots {
  position: absolute !important;
  bottom: 20px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  display: flex !important;
  gap: 8px !important;
  z-index: 20 !important;
}
