/*
 * Hero Section Improvements
 * Minimal CSS - respects original Bootstrap layout
 */

/* Banner Image Height Controls */
.banner-image,
.image-holder img {
  object-fit: cover;
  /* Mantiene proporciones y cubre el área */
  transition: transform 0.3s ease;
}

.hero-image-holder img {
  width: 100%;
  height: 400px;
  object-fit: cover;
  /* Altura fija en desktop - con object-fit para evitar deformación */
}

.banner-image:hover,
.image-holder img:hover {
  transform: scale(1.02);
}

/* Swiper Wrapper & Banner Item Height Sync */
.main-swiper .swiper-wrapper {
  height: 400px;
  /* Sincronizado con banner-image */
}

.banner-item {
  height: 400px;
  /* Misma altura que swiper-wrapper */
  display: flex;
  align-items: center;
}

.main-swiper .swiper-slide {
  height: auto;
  /* Altura automática */
  display: flex;
  align-items: stretch;
  /* Estirar para ocupar toda la altura */
}

/* Banner Content Improvements */
.banner-content {
  height: 340px;
  /* Altura fija del contenido */
  backdrop-filter: blur(5px);
  background: rgba(255, 255, 255, 0.95) !important;
}

/* Pattern Overlay Positioning - Now positioned over images */
.image-holder .bg-pattern-overlay {
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  pointer-events: none;
  /* Permite interacción con imagen debajo */
}

.image-holder .pattern-overlay {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Cubrir toda el área de la imagen */
  border-radius: 1rem;
  /* Coincidir con rounded-4 */
  opacity: 0.3;
  /* Suavizar el overlay */
}

.image-holder {
  overflow: hidden;
  /* Evitar que el overlay se salga */
}

/* Pagination Dots Styling */
.main-swiper .swiper-pagination {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
}

.main-swiper .swiper-pagination-bullet {
  background: rgba(255, 255, 255, 0.7);
  opacity: 0.7;
  margin: 0 8px;
  width: 12px;
  height: 12px;
  border: 2px solid var(--bs-primary);
  transition: all 0.3s ease;
}

.main-swiper .swiper-pagination-bullet-active {
  background: var(--bs-primary);
  opacity: 1;
  transform: scale(1.2);
}

/* Navigation Arrows Enhancement */
.swiper-arrow-wrap {
  z-index: 10;
}

.swiper-arrow {
  transition: all 0.3s ease;
  backdrop-filter: blur(10px);
  background: rgba(255, 255, 255, 0.9) !important;
  border: 2px solid var(--bs-primary);
  border-radius: 50%;
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.swiper-arrow:hover {
  background: var(--bs-primary) !important;
  color: white;
  transform: scale(1.1);
}

.swiper-arrow svg {
  color: var(--bs-primary);
  fill: var(--bs-primary);
  /* Añadido fill para mayor compatibilidad */
  transition: all 0.3s ease;
}

.swiper-arrow:hover svg {
  color: white !important;
  fill: white !important;
  /* Forzar color blanco en hover */
}

/* Asegurar que todos los elementos SVG dentro cambien de color */
.swiper-arrow:hover svg *,
.swiper-arrow:hover .chevron-left,
.swiper-arrow:hover .chevron-right {
  color: white !important;
  fill: white !important;
  stroke: white !important;
}

/* Responsive Adjustments - Only essential improvements */
@media (max-width: 767px) {
  .banner-image,
  .image-holder img,
  .hero-image-holder img {
    height: 380px;
    /* Altura fija para tablets - proporcionalmente menor que desktop */
  }

  .main-swiper .swiper-wrapper {
    height: 420px;
    /* Altura del wrapper para tablets */
  }

  .banner-item {
    height: 420px;
    /* Misma altura que swiper-wrapper */
  }

  .banner-content {
    height: 300px;
    /* Altura fija para tablets */
    padding: 20px !important;
  }

  .swiper-arrow {
    width: 50px;
    height: 50px;
  }

  .main-swiper .swiper-pagination {
    bottom: 20px;
  }

  .main-swiper .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    margin: 0 6px;
  }
}

@media (max-width: 575px) {
  .banner-image,
  .image-holder img,
  .hero-image-holder img {
    height: 320px;
    /* Altura fija para móviles - proporcionalmente menor */
  }

  .main-swiper .swiper-wrapper {
    height: 350px;
    /* Altura del wrapper para móviles */
  }

  .banner-item {
    height: 350px;
    /* Misma altura que swiper-wrapper */
  }

  .banner-content {
    height: 220px;
    /* Altura fija para móviles */
  }

  .swiper-arrow {
    width: 45px;
    height: 45px;
  }

  .swiper-arrow-wrap,
  .swiper-arrow {
    display: none !important;
    /* Ocultar flechas en móvil - mejor UX */
  }
}

/* Loading Animation for Images */
.banner-image {
  animation: fadeInImage 0.8s ease-in-out;
}

@keyframes fadeInImage {
  from {
    opacity: 0;
    transform: scale(1.1);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Cloud Overlay Full Width Fix - Repeat Pattern */
.cloud-overlay {
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%);
  width: 100vw !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  height: auto;
  min-height: 200px;
  /* Patrón principal */
  background-image: url('../images/cloud-pattern-overlay.png');
  background-repeat: repeat-x;
  background-position: left top;
  background-size: 50% 100%;
}

.cloud-overlay img {
  display: none;
  /* Ocultar la imagen original */
}

/* Pseudo-elemento para crear el efecto espejo */
.cloud-overlay::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url('../images/cloud-pattern-overlay.png');
  background-repeat: repeat-x;
  background-position: right top;
  background-size: 50% 100%;
  transform: scaleX(-1);
  z-index: 1;
}

/* Cloud Overlay - Responsive Adjustments */
@media (max-width: 767px) {
  .cloud-overlay {
    top: -100px !important;
    min-height: 120px;
    background-size: 70% auto;
    background-position: center top;
    opacity: 0.8;
  }

  .cloud-overlay::after {
    background-size: 70% auto;
    background-position: center top;
  }
}

@media (max-width: 575px) {
  .cloud-overlay {
    top: -40px !important;
    min-height: 80px;
    background-size: contain;
    background-position: center top;
    background-repeat: no-repeat;
    opacity: 1;
    /* Ajustar para móvil - mantener proporciones */
  }

  .cloud-overlay::after {
    background-size: contain;
    background-position: center top;
    background-repeat: no-repeat;
    transform: scaleX(-1) translateX(50%);
    /* Mejor posicionamiento del espejo en móvil */
  }
}

/* Autoplay Progress Bar (Optional Enhancement) */
.autoplay-progress {
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 10;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  color: var(--bs-primary);
  background: rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  font-size: 12px;
}

.autoplay-progress svg {
  --progress: 0;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 10;
  width: 100%;
  height: 100%;
  stroke-width: 4;
  stroke: var(--bs-primary);
  fill: none;
  stroke-dashoffset: calc(125.6 * (1 - var(--progress)));
  stroke-dasharray: 125.6;
  transform: rotate(-90deg);
}
