/* Styles shared across public pages */
body {
    font-family: 'Poppins', 'Roboto', Arial, sans-serif;
    background: #f8faf9;
}
.hero-img-bg {
    width: 100%;
    height: 300px;
    object-fit: cover;
    object-position: center;
}
.hero-box {
    background: #fff;
    box-shadow: 0 4px 32px 0 #0001;
    border-radius: 20px;
    margin-top: -120px;
    padding: 2rem 1rem 1.5rem 1rem;
    max-width: 550px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    z-index: 2;
}
.card-title {
    font-size: 1.05rem;
}
.section-title {
    font-weight: 700;
    color: #26913b;
}
/* Servicios */
.servicio-icono {
    width: 60px;
    height: 60px;
    object-fit: contain;
}
.servicio-card {
    border-radius: 1.3rem;
    background: #fff;
    box-shadow: 0 2px 12px 0 #0001;
    transition: box-shadow .2s;
}
.servicio-card:hover {
    box-shadow: 0 6px 22px 0 #0002;
}
/* Subagentes Bancarios Logos */
.banks-list img {
    max-height: 50px;
    width: auto;
    margin: 0 18px;
    filter: grayscale(0.2) brightness(1.1);
    transition: filter .2s;
}
.banks-list img:hover {
    filter: grayscale(0) brightness(1.18);
}
.banks-list {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
    margin-top: 20px;
}
/* Utility */
.shadow {
  box-shadow: 0 6px 32px 0 #00000011, 0 1.5px 4px #26913b25 !important;
}
.rounded-5 {
  border-radius: 1.25rem !important;
}

/* Navbar & Footer logos */
.logo { height: 48px; }
.footer-logo { height: 32px; }

/* Hero & Sections */
.hero-image { max-height: 350px; object-fit: cover; }
.hero-overlay { margin-top: -3rem; }
.bg-light-section { background: #f6f8f7; }
.bg-white-section { background: #fff; }

/* Map container */
.map-wrapper {
  max-width: 950px;
  width: 100%;
  background: rgba(255,255,255,0.88);
  backdrop-filter: blur(6px);
  border: 1px solid #e1e8ef33;
}
.map-frame {
  border: 0;
  width: 100%;
  height: 380px;
  min-height: 220px;
  display: block;
}

/* Ajuste cuando solo existe una oferta */
.offers-swiper.single-slide .swiper-wrapper {
  justify-content: center;
}
.offers-swiper.single-slide .swiper-button-prev,
.offers-swiper.single-slide .swiper-button-next,
.offers-swiper.single-slide .swiper-pagination {
  display: none;
}

.offers-swiper {
  overflow: hidden;
}

/* Estilos de las tarjetas de ofertas */
.offers-swiper .card {
  width: 100%;
  max-width: 220px;
  min-height: 280px;
  border-radius: 1rem;
  transition: transform 0.3s, box-shadow 0.3s;
}
.offers-swiper .card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}
.offers-swiper .card-img-top {
  height: 150px;
  object-fit: contain;
}

.img-cover-330 { max-height: 330px; object-fit: cover; }
.text-gray { color: #555; }
.fs-22 { font-size: 2.2rem; }
.fs-115 { font-size: 1.15rem; }
.max-220{max-width:220px;}

/* Banners carousel */
.banner-carousel .carousel-item {
  position: relative;
  padding-top: 33.333%; /* 3/1 aspect ratio */
}
.banner-carousel img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  cursor: pointer;
}

/* Promos redesign */
#promos.promos-default {
  background: #fefefe;
}
/* Variante oscura */
#promos.promos-dark {
  background: #1f1f1f;
  color: #eee;
}
#promos.promos-dark .section-title {
  color: #d2ff4c;
}
#promos.promos-gradient {
  background: linear-gradient(180deg, #f0fff4, #d3f5e1);
}
.promo-card {
  background: #fff;
  border-radius: 1rem;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.05);
  padding: 1.5rem;
  height: 100%;
}
#promos.promos-dark .promo-card {
  background: #2c2c2c;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
#promos.promos-gradient .promo-card {
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(4px);
}
.promo-card .carousel,
.promo-card .swiper {
  border-radius: 0.75rem;
  overflow: hidden;
}
/* Asegura que Swiper funcione correctamente */
.offers-swiper {
  width: 100%;
  padding: 1rem 0;
}

.swiper-wrapper {
  display: flex;
}

.swiper-slide {
  display: flex;
  justify-content: center;
  align-items: stretch;
  height: auto !important;
}

#offers-swiper-wrapper {
  min-height: 280px;
}

/* Promociones Destacadas */
.promos-wrapper {
  width: 100%;
  max-width: 1280px;
  margin: auto;
  padding: 32px 24px;
  box-sizing: border-box;
}

.promos-title {
  font-family: 'Inter', sans-serif;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 700;
  color: #1A1A1A;
  margin-bottom: 24px;
  text-align: center;
  border-bottom: 2px solid #F0F0F0;
  padding-bottom: 8px;
}

.promo-carousel {
  overflow: hidden;
  width: 100%;
}

.promo-img {
  width: 100%;
  height: clamp(200px, 30vw, 440px);
  object-fit: contain;
  object-position: center;
  border-radius: 24px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
  transition: transform 0.4s ease;
  animation: fadeInSlide 1s ease forwards;
}

@media (hover: hover) {
  .promo-img:hover {
    transform: scale(1.03);
  }
}

@keyframes fadeInSlide {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.promo-fallback {
  background: linear-gradient(135deg, #FFE082, #FF7043);
  color: #fff;
  padding: 48px 24px;
  border-radius: 20px;
  text-align: center;
  box-shadow: 0 6px 20px rgba(0,0,0,0.15);
}
