.text-primary {
    color: #c9010a !important;
}

.bg-primary {
    background-color: #c91b01 !important;
}

/* Mantener la imagen del banner en 16:9 recortando de forma elegante */
.ratio-16x9 { position: relative; width: 100%; padding-top: 100%; overflow: hidden; border-radius: .5rem; }
.ratio-16x9 > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* Mejor lectura del texto sobre el fondo */
.banner-copy { text-shadow: 0 2px 8px rgba(0,0,0,.35); }

/* En pantallas chicas, ajustar tamaños */
@media (max-width: 991.98px) {
  .banner-copy h1 { font-size: 1.9rem; }
  .banner-copy p  { font-size: 1rem; }
}

/* Logo navbar: tamaño y alineación */
.navbar .navbar-brand img {
  height: 56px;              /* ↑ tamaño base del logo */
  width: auto;               /* mantiene proporción */
  display: block;
}

/* En pantallas grandes, un poco más grande */
@media (min-width: 992px) {
  .navbar .navbar-brand img {
    height: 135px;
  }
}

/* Ajustes finos para que la barra no “salte” por el alto del logo */
.navbar {
  padding-top: .35rem;
  padding-bottom: .35rem;
}

.footer {
    background-color: #961e0c !important;
}

.copyright {
    background-color: #ce5908 !important;
}

/* ======= NAV – estilo títulos ======= */
.navbar .navbar-nav .nav-link{
  text-transform: uppercase;      /* MAYÚSCULAS */
  font-weight: 800;               /* grueso */
  font-size: 1.15rem;             /* tamaño */
  letter-spacing: .6px;           /* espaciado */
  color: #6c757d;                 /* gris suave por defecto */
  transition: color .2s ease;
}

/* Espaciado entre ítems */
.navbar .navbar-nav .nav-item{
  padding: 18px 28px;
}

/* Activo / hover con tu color primario */
.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link:focus,
.navbar .navbar-nav .nav-link.active{
  color: var(--bs-primary) !important;
}

/* Pastilla de fondo del menú en desktop */
@media (min-width: 992px){
  .navbar .navbar-nav{
    /* background: #f2f5f9;         leve gris */
    border-radius: 12px;
    padding: 8px 14px;
  }
}

/* Ajuste en móviles para que no “salte” */
@media (max-width: 991.98px){
  .navbar .navbar-nav{
    background: var(--bs-light);
    border-radius: 10px;
    padding: 8px 10px;
  }
  .navbar .navbar-nav .nav-link{
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .3px;
    text-transform: uppercase;    /* mantenemos mayúsculas */
  }
}

/* scroll suave y margen contra la navbar alta */
html { scroll-behavior: smooth; }
#nosotros { scroll-margin-top: 110px; }

/* (opcional) mejora leve en títulos internos */
#nosotros h4 { letter-spacing: .2px; }

/* ===== OFERTAS (con Owl) ===== */

/* Tarjeta */
.service .service-item { 
  border-radius: 12px; 
  overflow: hidden; 
  display: flex; 
  flex-direction: column; 
  height: 100%;
}
.service .service-item .service-img{
  position: relative;
  aspect-ratio: 1 / 1;   /* cuadradas */
  background: #f4f5f7;
  overflow: hidden;
}
.service .service-item .service-img img{
  width: 100%; height: 100%; object-fit: cover;
}

/* Sin el ícono/tag */
.service .service-item .service-img .service-icon{ display: none !important; }

/* Cuerpo flexible */
.service .service-item .service-content{
  background: var(--bs-light);
  display: flex; flex-direction: column; flex: 1;
}
.service .service-item .service-content .service-content-inner{
  display: flex; flex-direction: column; height: 100%;
}
.service .service-item .service-content .service-content-inner a.btn{
  margin-top: auto; /* empuja botón al fondo (si lo usás) */
}

/* Título estable (máx 2 líneas) */
.service .service-item .service-content .h4,
.service .service-item .service-content a.h4{
  line-height: 1.25;
  min-height: calc(1.25em * 2);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Texto con altura mínima */
.service .service-item .service-content p{
  min-height: 2.2em; margin-bottom: 1rem;
}

/* Estructura Owl para igualar alturas por slide */
.offers-carousel .owl-stage { display: flex; }
.offers-carousel .owl-item  { display: flex; }
.offers-carousel .service-item { height: 100%; width: 100%; }

/* Espacio para dots */
.offers-carousel{ position: relative; padding-bottom: 28px; }

/* Dots centrados abajo (sin flechas) */
.offers-carousel .owl-dots{
  position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  display: flex; align-items: center; gap: 8px; margin: 0;
}
.offers-carousel .owl-dots .owl-dot span{
  width: 10px; height: 10px; border-radius: 999px; background: #d8d8d8; display: block;
}
.offers-carousel .owl-dots .owl-dot.active span{ background: #c9010a; }
.offers-carousel .owl-nav{ display: none !important; }

/* Scroll suave como en #nosotros */
#promociones { scroll-margin-top: 110px; }

/* Reetiquetar la “categoría” como Promo y estilizarla */
.promo-badge{
  background: #c9010a; color:#fff; font-weight:800;
  border-radius: 999px; font-size:.85rem; display:inline-block;
}

/* Quitar la fila de “autor/comentarios” del template blog si aparece */
.blog-item .blog-comment{ display:none !important; }

/* Que todas las tarjetas de promo tengan la misma altura */
.blog-item{ border-radius:12px; overflow:hidden; background:#fff; box-shadow:0 8px 24px rgba(0,0,0,.06); }
.blog-item:hover{ box-shadow:0 12px 28px rgba(0,0,0,.10); transform: translateY(-2px); transition:.2s; }

.blog-img{ position:relative; }
.blog-img img{ display:block; width:100%; height:100%; object-fit:cover; aspect-ratio: 16/9; }

.blog-content .h4, .blog-content a.h4{
  line-height:1.25; min-height:calc(1.25em * 2);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

/* ===== Promociones: cards con botón abajo alineado ===== */
.promos-grid .blog-item{
  display:flex;
  flex-direction:column;
  height:100%;
}
.promos-grid .blog-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  aspect-ratio:16/9;
}
.promos-grid .blog-content{
  display:flex;
  flex-direction:column;
  flex:1; /* ocupa el alto restante bajo la imagen */
}
/* Reservas de alto para uniformar tarjetas */
.promos-grid .promo-meta{
  min-height:1.25rem; /* ~1 línea */
}
.promos-grid .promo-title{
  line-height:1.25;
  min-height:calc(1.25rem * 2); /* 2 líneas */
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.promos-grid .promo-desc{
  line-height:1.4;
  min-height:calc(1.4rem * 3); /* ~3 líneas */
  margin-bottom:1rem;
  overflow:hidden;
}
/* Botón siempre abajo */
.promos-grid .blog-content .mt-auto{
  margin-top:auto;
}

/* === PROMOS: mover y reducir la franja de categoría === */
.promos-grid .blog-img { position: relative; }

/* Quita la barra blanca a lo ancho y convierte en chip flotante */
.promos-grid .blog-img .blog-categiry{
  position: absolute !important;
  top: 10px;
  left: 10px;
  right: auto;
  bottom: auto;
  background: transparent !important;
  padding: 0 !important;
  width: auto !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  line-height: 1;
  z-index: 2;
}

/* Chip “Promoción” */
.promos-grid .promo-badge{
  display: inline-block;
  padding: .35rem .6rem;
  border-radius: 999px;
  background: #c9010a;
  color: #fff;
  font-weight: 800;
  font-size: .85rem;
  box-shadow: 0 2px 6px rgba(0,0,0,.20);
}

/* Separación extra para la vigencia (debajo de la imagen) */
.promos-grid .promo-meta{
  margin-top: .15rem;
  margin-bottom: .35rem;
}

/* Footer: botones sociales más legibles sobre fondo oscuro */
.footer .btn.btn-md-square {
  width: 44px; height: 44px; line-height: 44px; padding: 0; text-align: center;
  box-shadow: 0 6px 16px rgba(0,0,0,.12);
}
.footer .btn.btn-md-square i { font-size: 1.1rem; }

/* Enlaces de footer */
.footer a.text-white-50:hover { color: #fff !important; }

/* Títulos de bloques del footer */
.footer .footer-item h4 { letter-spacing: .2px; }

/* Ajuste responsive de columnas del footer */
@media (max-width: 991.98px){
  #contacto .footer-item { text-align: left; }
}

/* copyright: mejorar legibilidad e interacción del link */
.copyright .dev-link:hover { text-decoration: underline; }

/* ===== Consulta de puntos ===== */
.points-card { border: 0; border-radius: 14px; }
.points-card .form-control-lg { border-radius: 999px; padding-left: 1.25rem; }
.points-card .btn-lg { min-height: 48px; }

.points-result { border-radius: 14px; background: #fff; }
.points-result .display-5 { line-height: 1; }


