/* === CONFIGURACIÓN GENERAL === */
body {
  background-color: #bfd6c4cb;
  font-family: 'Poppins', sans-serif;
  overflow-x: hidden;
}

.btn-primary { background-color: #0066cc; border: none; transition: background-color .3s, transform .2s; }
.btn-primary:hover { background-color: #005bb5; transform: scale(1.05); }
.btn-outline-light { border-color: #ffffff; color: #ffffff; }
.btn-outline-light:hover { background-color: #ffffff; color: #004080; }
.btn-warning { font-weight: bold; }

/* === FOOTER === */
footer {
  background-color: #004080; color: #fff; padding: 10px 0; text-align: center;
  width: 100%; box-sizing: border-box; margin-top: 0 !important;
}

/* === CONTENEDOR CENTRAL === */
.contenedor-central { max-width: 1400px; margin: 0 auto; padding: 0 15px; }

/* === FULL BLEED === */
.full-bleed { width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

/* ===== ALTURA DEL HEADER ===== */
:root { --header-h: 140px; }
@media (max-width: 768px){ :root { --header-h: 180px; } }

/* Alto del carrusel = 1 pantalla - header */
#bannerCarousel,
#bannerCarousel .carousel-inner,
#bannerCarousel .carousel-item{
  height: calc(100dvh - var(--header-h)) !important;
}

/* Wrapper: sin fondo directo; el fondo va en ::before */
#bannerCarousel .banner-wrapper{
  position: relative;
  height: 100% !important;
  width: 100vw !important;
  margin: 0; padding: 0;
  overflow: hidden !important;
  background: transparent !important;
}

/* 🔵 Fondo difuminado con la MISMA imagen */
#bannerCarousel .banner-wrapper::before{
  content:"";
  position:absolute; inset:0; z-index:0;
  background-image: var(--bg);     /* <-- se setea desde el HTML */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  filter: blur(18px) brightness(.9);
  transform: scale(1.08);
}

/* Foto encima: SIEMPRE completa */
#bannerCarousel .banner-wrapper .banner-img{
  position: relative; z-index:1;
  display:block;
  width:100%; height:100%;
  object-fit: contain !important;   /* no recorta */
  object-position:center center;
}

/* (opcional) velito para contraste de textos */
.banner-overlay{
  position: absolute; inset: 0; z-index: 2;
  background: linear-gradient(to bottom, rgba(0,0,0,.05), rgba(0,0,0,.18));
  pointer-events: none;
}
