/* =====================================================================
   SLIDER DE PORTADA · animaciones de entrada por slide
   ===================================================================== */

.slider-portada {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin-bottom: 3rem;
}

.slider-portada .swiper-slide {
  min-height: 480px;
  display: flex;
  align-items: center;
  padding: 3rem 3rem;
  position: relative;
  overflow: hidden;
}

@media (max-width: 768px) {
  .slider-portada .swiper-slide { min-height: 380px; padding: 2rem 1.5rem; }
}

.slider-portada .slide-fondo {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
}

.slider-portada .slide-video {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
}

.slider-portada .slide-overlay {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, .35);
  z-index: 1;
}

.slider-portada .slide-contenido {
  position: relative;
  z-index: 2;
  max-width: 640px;
}

.slider-portada .slide-titulo {
  font-size: 2.4rem;
  font-weight: 800;
  line-height: 1.15;
  margin-bottom: 1rem;
}
@media (max-width: 768px) { .slider-portada .slide-titulo { font-size: 1.7rem; } }

.slider-portada .slide-descripcion {
  font-size: 1rem;
  margin-bottom: 1.5rem;
  opacity: .85;
}

.slider-portada .swiper-pagination-bullet {
  background: #fff;
  opacity: .6;
  width: 10px;
  height: 10px;
}
.slider-portada .swiper-pagination-bullet-active {
  opacity: 1;
  background: var(--c-blue-deep);
}

.slider-portada .swiper-button-next,
.slider-portada .swiper-button-prev {
  background: #fff;
  width: 44px; height: 44px;
  border-radius: 50%;
  box-shadow: var(--shadow-soft);
  color: var(--c-ink);
  transition: var(--transition);
}
.slider-portada .swiper-button-next:hover,
.slider-portada .swiper-button-prev:hover {
  transform: scale(1.08);
  color: var(--c-blue-deep);
}
.slider-portada .swiper-button-next::after,
.slider-portada .swiper-button-prev::after { font-size: 1rem; font-weight: 700; }

/* Animaciones de entrada de cada slide */
.anim-slide { opacity: 0; }

.swiper-slide-active .anim-fadeInUp    { animation: fadeInUp .8s ease-out .15s both; }
.swiper-slide-active .anim-fadeInLeft  { animation: fadeInLeft .8s ease-out .15s both; }
.swiper-slide-active .anim-fadeInRight { animation: fadeInRight .8s ease-out .15s both; }
.swiper-slide-active .anim-zoomIn      { animation: zoomIn .8s ease-out .15s both; }
.swiper-slide-active .anim-none        { opacity: 1 !important; }

.swiper-slide-active .anim-delay-1 { animation-delay: .25s; }
.swiper-slide-active .anim-delay-2 { animation-delay: .40s; }
.swiper-slide-active .anim-delay-3 { animation-delay: .55s; }

@keyframes fadeInUp    { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeInLeft  { from { opacity: 0; transform: translateX(-32px); } to { opacity: 1; transform: translateX(0); } }
@keyframes fadeInRight { from { opacity: 0; transform: translateX(32px); } to { opacity: 1; transform: translateX(0); } }
@keyframes zoomIn      { from { opacity: 0; transform: scale(.92); } to { opacity: 1; transform: scale(1); } }