/* GLOBAL STYLES
-------------------------------------------------- */
/* Padding below the footer and lighter body text */

@font-face {
    font-family: FontAwesome;
    src: url(../fontawesome/webfonts/fa-solid-900.ttf);
}

@font-face {
    font-family: FontAwesome-Marcas;
    src: url(../fontawesome/webfonts/fa-brands-400.woff2);
}

@font-face {
    font-family: FuenteGeneral;
    src: url(../fuentes/Lato-Regular.ttf);
}

body {
  /*padding-top: 3rem;
  padding-bottom: 3rem;*/
  font-family: FuenteGeneral;
}

p {
	font-size: 1.1rem;
}

header nav.navbar.navbar-expand-lg div.container {
	padding: 1.5rem 0;
}



/* Estilos base para el dropdown */
.dropdown-menu {
  display: block; /* Necesario para las animaciones */
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: all 0.3s ease-in-out;
  word-wrap: break-word;
  pointer-events: none;
}

/* Estilos cuando el dropdown está abierto */
.dropdown-menu.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

/* Items del menú con ajuste de texto */
.dropdown-item {
  white-space: normal;
  word-wrap: break-word; /* Asegura división de palabras largas */
  transition: all 0.3s ease;
}

/* Comportamiento hover SOLO para desktop */
@media (min-width: 992px) {
  .navbar .dropdown:hover .dropdown-menu:not(.show) {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }
  
  .dropdown-menu {
    width: 340px;
  }
}

/* Reset para móviles - Mantiene funcionalidad Bootstrap */
@media (max-width: 991.98px) {
  .dropdown-menu {
    display: block; /* Permite que Bootstrap controle la visibilidad */
    position: static;
    float: none;
    width: auto;
    transition: none;
  }
  
  /* Solo muestra cuando tiene la clase show */
  .dropdown-menu:not(.show) {
    opacity: 0;
    visibility: hidden;
    height: 0;
    overflow: hidden;
    padding: 0;
    margin: 0;
    border: none;
  }
  
  .dropdown-menu.show {
    opacity: 1;
    visibility: visible;
    height: auto;
    padding: 0.5rem 0; /* Ajusta según necesites */
    margin: 0.125rem 0 0;
    border: 1px solid rgba(0, 0, 0, 0.15);
  }
}


/* Transiciones para mobile - Mismo efecto que desktop */
@media (max-width: 991.98px) {
  .dropdown-menu {
    display: block !important; /* Importante para las animaciones */
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    height: 0;
    overflow: hidden;
    transition: all 0.3s ease-in-out;
    pointer-events: none;
  }

  .dropdown-menu.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    height: auto;
    pointer-events: auto;
    /* Ajusta estos valores según tu diseño */
    padding: 0.5rem 0;
    margin: 0.125rem 0 0;
    border: 1px solid rgba(0, 0, 0, 0.15);
  }

  /* Asegura que los submenús también tengan transición */
  #estilo-subservicios-transportes {
    transition: all 0.3s ease-in-out;
    max-height: 0;
    overflow: hidden;
  }

  .show #estilo-subservicios-transportes {
    max-height: 500px; /* Ajusta según el contenido máximo */
  }
}


header div#encabezado-datos div.row {
	text-align: center;
	padding: .8rem 0;
	border-bottom: 1px solid #B0BEC5;
	color: #0057a0;
}

@media (max-width: 999px) {
	header div#encabezado-datos div.row div.col-lg-4:nth-of-type(2) {
		background-color: #0057a0;
		margin: 0.3rem  0;
		color: #fff;
	}
}

header div#encabezado-datos div.row a {
	color: #0057a0;
	text-decoration: none;
}

header div#encabezado-datos div.row div.col-lg-4.d-flex i {
	margin-right: 0.3rem;
}

header div#encabezado-datos div.row div.col-lg-4.d-flex i:nth-child(3) {
	margin-left: 0.3rem;
}

header div#encabezado-datos div.row div.col-lg-4:last-child a:nth-child(2) {
	margin-right: 0.3rem;
}

header div#encabezado-datos div.row a:hover {
	text-decoration: underline;
}

a.nav-link {
	font-weight: 700;
	transition: color 0.3s ease; /* Transición suave */
}

a.nav-link:hover {
	color: #0057a0;
}

a.nav-link.active {
	text-decoration: underline;
}

div.offcanvas-header {
	background-color: #fff;
}

h1, h2, h3, h4, h5, h6 {
	background: linear-gradient(180deg, #0057a0, #a1a1a1);
	background-clip: text;
	color: transparent;
}

/* ******** Animación tipo Textillate.js -- Páginas -- ******** */

/* Estilo para animar las palabras */
#text-to-animate .word {
    display: inline-block;
    opacity: 0;
    animation: fadeInUp 0.5s ease forwards;
}

/* Definición de la animación fadeInUp */
@keyframes fadeInUp {
    from {
        transform: translateY(20px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

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

.letter {
    display: inline-block;
    opacity: 0;
    animation: fadeIn 0.5s forwards;
}

.animate-text {
    font-size: 3rem;
    font-family: 'Arial', sans-serif;
}*/




/* CUSTOMIZE THE CAROUSEL
-------------------------------------------------- */

/* Carousel base class */
.carousel {
  margin-bottom: 4rem;
}
/* Since positioning the image, we need to help out the caption */
.carousel-caption {
  bottom: 3rem;
  z-index: 10;
  
  background-color: rgba(0, 0, 0, 0.8);
  padding: 15px 25px;
  border-radius: 10px;
}

/* Declare heights because of positioning of img element */
.carousel-item {
  height: 42rem;
}

.carousel-item img {
  object-fit: cover; /* Rellena el espacio sin deformar */
  width: 100%;
  height: 100%;
}

.carousel-indicators [data-bs-target] {
  width: 22px; /* Anchura del punto */
  height: 22px; /* Altura del punto */
  border-radius: 50%; /* Esto convierte los botones en puntos circulares */
  background-color: rgba(0, 0, 0, 0.5); /* Color del punto */
}

.carousel-indicators .active {
  background-color: #007bff; /* Color del punto activo */
}

div.carousel-caption h1 {
    font-weight: 700;
}

div.container div.carousel-caption p a.boton-carrusel-enlace {
    background: linear-gradient(0deg, #2c3e50, #3498db);
    padding: 10px 23px;
    text-decoration: none;
    color: #fff;
    text-shadow: 2px 2px 2px #1E3A8A;
    border-radius: 20px;
    border: 3px ridge #3498db;
    font-weight: bold;
    font-size: 16px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* Agrega sombra externa */
    transition: all 0.3s ease; /* Transición suave */
}

/* Hover: Cambio de color, escala, sombra y opacidad */
div.container div.carousel-caption p a.boton-carrusel-enlace:hover {
    background: linear-gradient(0deg, #3498db, #2c3e50); /* Cambio de dirección del gradiente */
    color: #ecf0f1; /* Cambio de color */
    text-shadow: 3px 3px 4px #000; /* Más prominente la sombra de texto */
    transform: scale(1.05); /* Escala el botón ligeramente */
    box-shadow: 0 6px 8px rgba(0, 0, 0, 0.2); /* Sombra externa más pronunciada */
    opacity: 0.9; /* Añade un pequeño cambio de opacidad */
}

@media (max-width: 768px) {
    div.container div.carousel-caption p a.boton-carrusel-enlace {
        display: none;
    }
}

/* MARKETING CONTENT
-------------------------------------------------- */

/* Center align the text within the three columns below the carousel */
section.estilo-inicio {
  /*margin-bottom: 1.5rem;*/
  text-align: center;
}

section.estilo-inicio .container {
  /*padding: 5rem 0;*/
}

/*  CONTENIDO PARA LA PÁGINA DE INICIO
-------------------------------------------------- */

section.estilo-inicio div.row.primer-fila div.col-lg-6.col-12:last-child {
	text-align: left;
}

section.estilo-inicio div.row.primer-fila div.col-lg-6.col-12:last-child h4 {
  font-weight: 700;
}

div.caracteristica-icono-chico {
	background: linear-gradient(135deg, #2c3e50, #3498db);
	 color: #fff; /* El color del icono en sí */
	width: 3rem;
	height: 3rem;
	border-radius: .5rem;
}

/*section.estilo-inicio:nth-last-of-type(2) {
  background-color: lime;
}*/

.parallax {
  /* Background image */
  background-image: url('../img/index/nuestros-servicios-parallax.webp');
  
  /* Parallax effect */
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;

  /* Set height */
  min-height: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.parallax p {
	color: #fff;
}

a.boton-inicio {
  display: inline-block;
  padding: .75rem 2.5rem;
  margin: 0 auto;
  background: linear-gradient(0deg, #4A90E2, #003366);
  color: white;
  text-align: center;
  text-decoration: none;
  font-size: 1.1rem;
  font-weight: 600;
  border-radius: 50px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  
  border: 6px double #ddd;
}

a.boton-inicio:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
  background: linear-gradient(0deg, #3b7dd8, #002744);
}

a.boton-inicio:active {
  transform: translateY(1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}





/* Contenedor principal */
section.estilo-inicio div.container-fluid.contenedora-contador {
    position: relative;
    background-image: url("../img/index/fondo_contador.webp");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap; /* Permite que las columnas se ajusten en pantallas pequeñas */
    padding: 6vh 2vw;
    overflow: hidden;
}

/* Capa de superposición */
section.estilo-inicio div.container-fluid.contenedora-contador::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        135deg, 
        rgba(44, 62, 80, 0.4),
        rgba(52, 152, 219, 0.3)
    );
    z-index: 1;
}

/* Contenido dentro del contenedor */
section.estilo-inicio div.container-fluid.contenedora-contador * {
    position: relative;
    z-index: 2;
}

/* Estilo de las columnas */
.contador {
    text-align: center;
    flex: 1 1 100%; /* Columnas ocupan todo el ancho en pantallas pequeñas */
}

.contador-numero {
    font-size: clamp(2rem, 5vw, 3rem); /* Escala dinámica */
    font-weight: bold;
    color: #fff;
}

.contador-titulo {
    font-size: clamp(1rem, 3vw, 1.2rem); /* Escala dinámica */
    margin-top: -10px;
    color: #fff;
    text-shadow: 2px 2px 2px #000;
}

/* Alturas adaptativas */
@media (min-width: 1000px) {
    section.estilo-inicio div.container-fluid.contenedora-contador {
        height: 40vh;
    }
}

@media (max-width: 999px) and (min-width: 768px) {
    section.estilo-inicio div.container-fluid.contenedora-contador {
        height: 50vh;
    }
}

@media (max-width: 740px) and (min-width: 676px) {
    section.estilo-inicio div.container-fluid.contenedora-contador {
        height: auto;
        padding: 5vh 2vw;
    }
    
    .row > .col-md-4:nth-child(2) { /* Selecciona el bloque del medio */
        margin-top: 8vh; /* Ajusta según sea necesario */
        margin-bottom: 8vh; /* Ajusta según sea necesario */
    }
}

@media (max-width: 675px) {
    section.estilo-inicio div.container-fluid.contenedora-contador {
        height: auto;
        padding: 5vh 2vw;
    }

    .row > .col-md-4:nth-child(2) { /* Selecciona el bloque del medio */
        margin-top: 3vh; /* Ajusta según sea necesario */
        margin-bottom: 3vh; /* Ajusta según sea necesario */
    }
}




/* QUIÉNES SOMOS
-------------------------------------------------- */

/* QUIÉNES SOMOS */
/* Estilo base para pantallas medianas y grandes */
section div.row#titulo-seccion {
  background: linear-gradient(135deg, #1E3A8A, #6B7280);
  text-align: center;
  height: 30vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 0 1rem;
  transition: background-color 0.5s ease-in-out;
}

section div.row#titulo-seccion h1 {
  text-transform: uppercase;
  font-size: 3rem;
  letter-spacing: 2px;
  color: white;
  text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.7);
  
  /* Asegura que solo se dividan en espacios */
  white-space: normal; /* Permite que el texto se divida en líneas según el ancho */
  word-wrap: break-word; /* Solo hace saltos en palabras completas */
  overflow-wrap: break-word;
}

section div.row#titulo-seccion p {
  font-size: 1.2rem;
  color: rgba(255, 255, 255, 0.8);
}

/* Ajustes para pantallas grandes (desktops y laptops) */
@media (min-width: 992px) {
  section div.row#titulo-seccion {
    height: 40vh; /* Aumenta la altura en pantallas grandes */
  }
  section div.row#titulo-seccion h1 {
    font-size: 4rem; /* Aumenta el tamaño del título */
  }
  section div.row#titulo-seccion p {
    font-size: 1.5rem; /* Texto de párrafo más grande */
  }
}

/* Ajustes para pantallas medianas (tablets) */
@media (max-width: 991px) and (min-width: 768px) {
  section div.row#titulo-seccion {
    height: 65vh;
  }
  section div.row#titulo-seccion h1 {
    font-size: 3.2rem;
  }
  section div.row#titulo-seccion p {
    font-size: 1.3rem;
  }
}

/* Ajustes para pantallas pequeñas (smartphones) */
@media (max-width: 767px) {
  section div.row#titulo-seccion {
    height: 50vh; /* Más alto en móviles para evitar desbordes de texto */
    padding: 0 0.5rem;
  }
  section div.row#titulo-seccion h1 {
    font-size: 2.2rem; /* Reduce el tamaño del título */
    letter-spacing: 1px; /* Menos espacio entre letras */
  }
  section div.row#titulo-seccion p {
    font-size: 1rem; /* Reduce el tamaño del texto del párrafo */
  }
}


section#actualidad-quienes img.img-fluid#imagen-camioneta {
	border-radius: 20px;
	box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}

section.quienes-somos div.container {
	margin-top: 4rem;
	margin-bottom: 4rem;
}

#actualidad-quienes .container-fluid {
    padding-left: 15px;
    padding-right: 15px;
}

section#actualidad-quienes {
	background: linear-gradient(0deg, #1f2f4f, #4a90e2, #b3cde0);
   color: #fff;
	padding: 5rem 0;
}

/* Estilo para la lista */
section#actualidad-quienes ul {
    list-style-type: none; /* Eliminamos las viñetas predeterminadas */
    margin: 0;
    padding: 0;
    color: #000;
}

/* Estilo para cada elemento de la lista */
section#actualidad-quienes ul li {
    margin-bottom: 15px; /* Espacio entre cada elemento */
    background-color: #fff;
    padding: 10px 17px;
    border-radius: 10px;
}

/* Estilo para pantallas pequeñas */
@media (max-width: 650px) {
    section#actualidad-quienes ul {
        margin-top: 20px; /* Espacio superior para toda la lista */
    }
}

section#actualidad-quienes div.container-fluid  div.row:nth-child(2) {
	margin-bottom: 2rem;
}

section#actualidad-quienes .img-thumbnail {
  transition: transform 0.3s; /* Efecto de transformación */
}

section#actualidad-quienes .img-thumbnail:hover {
  transform: scale(1.05); /* Efecto de zoom al pasar el ratón */
}

div.modal-body.quienes-somos {
	color: #000;
	text-align: center;
}

section#actualidad-quienes div.row.text-center.text-lg-start .correccion-margin {
	margin: 0;
}


/* SERVICIOS
-------------------------------------------------- */

ul#lista-caracteristicas-distribucion-alimentos {
	list-style-type: none;
	margin: 0 auto;
	padding: 0;
	width: 400px;
}

ul#lista-caracteristicas-distribucion-alimentos li {
	text-align: left;
}

div.row.estilo-servicios-principal {
	/*background-color: khaki;*/
	margin: 20px 0 30px 0;
}

/* Contenedor del bloque */
div.row.estilo-servicios-principal div.col-md-4 div.service-box {
  background-color: #fff;
  padding: 20px;
  text-align: center;
  height: 300px;
  margin: 10px 0;
  display: flex;
  flex-direction: column;
  align-items: center; /* Centra horizontalmente */
}

div.row.estilo-servicios-principal div.col-md-4 div.service-box:hover {
	background-color: #fafafa;
}

@media (max-width: 942px) and (min-width: 844px) {
  div.row.estilo-servicios-principal div.col-md-4 div.service-box {
    height: 380px; /* Un solo ajuste para ese rango */
  }
}


/* Ícono */
div.row.estilo-servicios-principal div.col-md-4 div.service-box i.fas {
  margin-bottom: 17px;
  color: #1E3A8A;
}

div.row.estilo-servicios-principal div.col-md-4 div.service-box:hover i.fas {
	color: #4A90E2;
}

/* Estilo del botón */
div.row.estilo-servicios-principal div.col-md-4 div.service-box a.boton-ver-mas {
  background: linear-gradient(0deg, #1E3A8A, #4A90E2);
  padding: 8px 8px 10px 8px;
  text-decoration: none;
  display: block;
  color: #fff;
  margin-top: auto;
  border: 6px double #ddd;
  width: 190px;
  border-radius: 15px;
  position: relative; /* Necesario para el pseudo-elemento */
  overflow: hidden; /* Oculta el brillo fuera del botón */
  transition: transform 0.3s ease, box-shadow 0.3s ease; /* Animaciones suaves */
}

/* Hover del botón */
div.row.estilo-servicios-principal div.col-md-4 div.service-box a.boton-ver-mas:hover {
  transform: scale(1.05); /* Aumenta ligeramente el tamaño */
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3); /* Sombra adicional */
  color: #ffeb3b; /* Cambia el color del texto */
}

/* Brillo animado */
div.row.estilo-servicios-principal div.col-md-4 div.service-box a.boton-ver-mas:before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%; /* Comienza fuera del botón */
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.2); /* Brillo translúcido */
  transform: skewX(-45deg); /* Angulo del brillo */
  transition: left 0.4s ease; /* Movimiento suave */
}

div.row.estilo-servicios-principal div.col-md-4 div.service-box a.boton-ver-mas:hover:before {
  left: 100%; /* Mueve el brillo a través del botón */
}






div.row.estilo-servicios-titulo {
	padding: 2rem 0;
}

.superposicion-deslizante-afuera {
  display: inline-block;
  position: relative;
  padding: 15px 30px;
  color: white;
  background-color: #007bff;
  text-decoration: none;
  font-size: 18px;
  font-weight: bold;
  border-radius: 25px; /* Bordes redondeados */
  overflow: hidden;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
  text-align: center;
  margin-top: 20px; /* Espacio superior */
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* Sombra suave */
}

.superposicion-deslizante-afuera::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.2);
  transition: left 0.4s ease;
}

.superposicion-deslizante-afuera:hover::before {
  left: 100%;
}

.superposicion-deslizante-afuera:hover {
  background-color: #0056b3;
  box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2); /* Sombra más intensa al hacer hover */
}

.estilo-servicios-titulo {
  text-align: center; /* Centra todo el contenido de la sección */
}


.carrusel-container {
  position: relative;
  max-width: 800px; /* Ajusta el tamaño máximo del carrusel */
  margin: auto;
  overflow: hidden; /* Evita que las imágenes se salgan del contenedor */
}

.carrusel-imagenes {
  display: flex;
  transition: transform 0.5s ease;
}

.carrusel-item {
  min-width: 100%; /* Cada imagen ocupará el 100% del contenedor */
  box-sizing: border-box;
  text-align: center; /* Centra el texto de la descripción */
}

.carrusel-item img {
  width: 100%;
  height: auto; /* Mantiene la proporción */
}

.texto-descripcion {
  margin-top: 10px; /* Espaciado entre la imagen y la descripción */
}

.carrusel-control {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(255, 255, 255, 0.7);
  border: none;
  cursor: pointer;
  padding: 10px;
  font-size: 24px;
  z-index: 1;
}

.prev {
  left: 10px;
}

.next {
  right: 10px;
}

/* ******************** */
/* Mantener el diseño para pantallas grandes */
div.row.estilo-servicios div#columna-lateral-servicios {
    background: linear-gradient(135deg, #8EC6E6, #3ED6E6);
    color: #f5f5f5;
    padding: 1rem;
    margin-bottom: 3rem;
    border-radius: 0.5rem;
}

/* Ajustar el ancho en pantallas pequeñas */
@media (max-width: 768px) { /* Para pantallas pequeñas */
    div.row.estilo-servicios div#columna-lateral-servicios {
        max-width: 93%; /* Ajusta este valor según tus necesidades */
        margin: 0 auto 20px auto; /* Centra el bloque */
    }
}

/* Más ajustes si es necesario en pantallas ultra pequeñas */
@media (max-width: 576px) {
    div.row.estilo-servicios div#columna-lateral-servicios {
        max-width: 90%; /* Ocupa un poco más del ancho */
    }
}


div.row.estilo-servicios div#columna-lateral-servicios ul {
	padding: 0;
	color: #000;
	list-style-type: none;
}

/* Estilos básicos para los enlaces */
div.row.estilo-servicios div#columna-lateral-servicios ul li a {
	text-decoration: none;
	color: #000;
	position: relative;
	margin-bottom: 10px;
	display: inline-block;
	transition: color 0.3s ease; /* Transición para cambiar el color */
}

div.row.estilo-servicios div#columna-lateral-servicios ul:nth-child(2) {
	/*background-color: cadetblue;*/
}

/* Ajuste general para alinear íconos y texto en una misma línea */
div.row.estilo-servicios div#columna-lateral-servicios ul:nth-child(2) li {
    margin-bottom: 10px;
}

div.row.estilo-servicios div#columna-lateral-servicios ul:nth-child(2) li > ul {
	margin-left: 15px;
}

div.row.estilo-servicios div#columna-lateral-servicios ul:nth-child(2) li i {
    margin-right: 5px;
}

div.row.estilo-servicios div#columna-lateral-servicios ul:nth-child(2) li a {
	display: inline;
}

div.row.estilo-servicios div#columna-lateral-servicios ul:nth-child(2) li:hover {
	color: #fff;
}

div.row.estilo-servicios div#columna-lateral-servicios li a:hover {
	color: #fff;
}

div.row.estilo-servicios div#columna-lateral-servicios ul:nth-child(4) li:nth-child(1)::before {
	font-family: FontAwesome;
	content: "\f879"; /* Código Unicode del icono */
	margin-right: .3rem;
}

div.row.estilo-servicios div#columna-lateral-servicios ul:nth-child(4) li:nth-child(2)::before {
	font-family: FontAwesome;
	content: "\f0e0"; /* Código Unicode del icono */
	margin-right: .3rem;
}

div.row.estilo-servicios div#columna-lateral-servicios ul:nth-child(4) li:nth-child(3)::before {
	font-family: FontAwesome-Marcas;
	content: "\f232"; /* Código Unicode del icono */
	margin-right: .3rem;
}

div.row.estilo-servicios div#columna-lateral-servicios ul:nth-child(4) li:hover {
	color: #fff;
}

div.col-12 div.titulo-variedad-transporte {
	background: linear-gradient(135deg, #1E3A8A, #4A90E2);
	margin-bottom: 10px;
	border-radius: 7px;
	padding: 5px 0 5px 10px;
	font-weight: 700;
	color: #fff;
	font-size: 20px;
	letter-spacing: 2px;
	text-shadow: 2px 2px 2px #1E3A8A;
}

/* Unidades de Servicios
-------------------------------------------------- */

section#unidades-servicios {
  background-color: #f8f9fa; /* Fondo claro */
  padding: 30px 0; /* Espaciado superior e inferior */
}

section#unidades-servicios h2 {
  font-size: 2rem; /* Tamaño del encabezado */
  margin-bottom: 20px; /* Espaciado inferior */
  text-align: center;
  color: #000;
  font-weight: 700;
}

.fancy {
  line-height: 0.5;
  text-align: center;
}
.fancy span {
  display: inline-block;
  position: relative;  
}
.fancy span:before,
.fancy span:after {
  content: "";
  position: absolute;
  height: 5px;
  border-bottom: 1px solid black;
  border-top: 1px solid black;
  top: 0;
  width: 25vw; /* El ancho de las líneas será el 30% del ancho de la ventana */
}
.fancy span:before {
  right: 100%;
  margin-right: 15px;
}
.fancy span:after {
  left: 100%;
  margin-left: 15px;
}

section#unidades-servicios p {
  font-size: 1rem; /* Tamaño de texto para descripciones */
  margin-bottom: 30px; /* Espaciado inferior */
}

section#unidades-servicios img {
  transition: transform 0.3s; /* Efecto de transformación */
}

section#unidades-servicios img:hover {
  transform: scale(1.05); /* Efecto de zoom al pasar el ratón */
}

section#unidades-servicios .shadow-sm {
  box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075) !important; /* Sombra leve para las imágenes */
}

.BiVuelco .col-6.correccion-margin,
.Tolvas .col-6.correccion-margin,
.Bateas .col-6.correccion-margin,
.Semis .col-6.correccion-margin,
.Liquido .col-6.correccion-margin,
.Sider .col-6.correccion-margin {
  margin: 0;
}
/* CONTACTO
-------------------------------------------------- */

/* Estilo para el fieldset */
form#form-contacto fieldset,
form#formulario-quejas fieldset {
    border: 5px solid transparent; /* Bordes transparentes para el degradado */
    border-radius: 8px; /* Bordes redondeados */
    padding: 20px; /* Espacio interno del fieldset */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Sombra ligera */
    background-color: #f8f9fa; /* Fondo claro */
    margin-bottom: 20px; /* Separación con el siguiente elemento */
}

form#formulario-quejas {
	margin: 20px 0;
}

/* Estilo para el legend */
form#form-contacto fieldset legend {
    font-size: 1.5rem; /* Tamaño de fuente más grande */
    font-weight: bold; /* Resaltado en negrita */
    color: #343a40; /* Color oscuro para buena legibilidad */
    padding: 0 10px; /* Un poco de espacio alrededor del texto */
    background-color: #f8f9fa; /* Fondo claro para el legend */
    display: inline-block; /* Que el borde solo se aplique al tamaño del texto */
}

div.estilo-contacto-col-der ul.list-unstyled a {
	text-decoration: none;
	color: #0057a0;
	transition: color ease 0.3s;
}

div.estilo-contacto-col-der ul.list-unstyled li {
	margin-bottom: 10px;
}

div.estilo-contacto-col-der ul.list-unstyled a:hover {
	text-decoration: underline;
	color: #343a40;
}

div.estilo-contacto-col-der div#redes-sociales-enlaces a {
	margin-right: 1rem;
	color: #0057a0;
	transition: color ease 0.3s; /*transition Efecto de transformación */
	text-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

div.estilo-contacto-col-der div#redes-sociales-enlaces a:hover {
	color: #a1a1a1;
}

div.estilo-contacto-col-der iframe {
	width: 100%;
	height: 450px;
	border: 0;
}

div.estilo-contacto-col-der h4:nth-of-type(2) {
    margin-top: 10px;
}

form#form-contacto button.boton-envio-form {
	background: linear-gradient(135deg, #1E3A8A, #4A90E2); /* O el degradado que prefieras */
	padding: .5rem 1rem;
	color: #fff;
	font-weight: 700;
	width: 200px;
	margin: 0 auto;
	display: block;
	border: 3px outset #4A90E2;
	border-radius: 6px;
	transition: all ease 0.3s; /*transition Efecto de transformación */
}

form#form-contacto button.boton-envio-form:hover {
	border: 3px inset #4A90E2;
}

/* Estilos para el spinner de carga */
.btn-loading {
    position: relative;
    color: transparent !important;
}

.btn-loading::after {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    top: 50%;
    left: 50%;
    margin-left: -10px;
    margin-top: -10px;
    border: 2px solid #ffffff;
    border-radius: 50%;
    border-top-color: transparent;
    animation: spin 1s ease-in-out infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Deshabilitar el formulario durante el envío */
.form-disabled {
    opacity: 0.7;
    pointer-events: none;
}

/* Spinner para el botón de quejas
-------------------------------------------------- */
/* Spinner para el botón de quejas */
.btn-loading-spinner {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid #ffffff;
    border-radius: 50%;
    border-top-color: transparent;
    animation: spin 1s ease-in-out infinite;
    margin-right: 8px;
    vertical-align: middle;
}

.btn-text {
    display: inline;
}

.btn-loading {
    display: none;
}

.form-disabled {
    opacity: 0.7;
    pointer-events: none;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Estilo específico para el botón de quejas */
#btn-enviar-queja:disabled {
    background-color: #6c757d;
    border-color: #6c757d;
}

/* POLÍTICA DE PRIVACIDAD · TÉRMINOS Y CONDICIONES CSS
-------------------------------------------------- */

div.container div.row div.col-lg-12.politica-terminos {
	margin: 30px 0;
}

/* PIE CSS
-------------------------------------------------- */

footer {
  background: linear-gradient(135deg, #F2F2F2, #D9E2EC); /* De gris claro a un azul muy suave */
  color: #333333; /* Texto en gris oscuro para mejor contraste */
  padding: 20px 0; /* Espaciado */
}

footer a {
  color: #4A90E2; /* Azul suave para los enlaces */
  text-decoration: none;
}


footer ul {
	padding: 0;
	margin: 0;
}


footer ul li a,
footer p a {
	color: #1C84E3;
    position: relative;
    text-decoration: none;
    transition: color 0.3s ease;
}

footer a::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 0;
    height: 2px;
    background-color: #1977CC;
    transition: width 0.3s ease;
}

footer a:hover {
    color: #1977CC;
}

footer a:hover::after {
    width: 100%;
}

footer ul li {
	margin-bottom: .5rem;
}

footer p {
	margin: 0;
	color: #495057; /* Color de los párrafos */
}

footer div.container-fluid div.row {
	margin-bottom: 2rem;
}

footer div.container-fluid div.row div:last-child ul li a:hover {
	color: #0057a0; /* Azul suave para los enlaces */
}

/*footer div.container-fluid div.row div:nth-of-type(2) {
	background-color: lime;
}*/

footer div.container-fluid div.row div.contacto-servicio:nth-of-type(2) ul li {
	display: flex;
	align-items: center; /* Centra verticalmente el icono y el texto */
	margin-bottom: 10px;
}

footer div.container-fluid div.row div.contacto-servicio:nth-of-type(2) ul li:nth-of-type(1) {
	word-break: break-all;
}

.contacto-servicio:nth-of-type(2) ul li i {
    margin-right: 10px;
    flex-shrink: 0;
    font-size: 1.2em;
    color: #333;
    position: relative;
    top: 4px; /* Ajusta el icono ligeramente hacia arriba */
}

div#bloque-pie-zonit {
	padding-top: 2rem;
	border-top: 1px solid #F2F2F2;
}

img#logo-bonsur-pie {
	margin-bottom: 1.5rem;
}

footer div.container-fluid div.row div:nth-of-type(3) ul li > ul {
	/*background-color: lime;*/
	list-style-type: none;
}

footer div.container-fluid div.row div:nth-of-type(3) ul li > ul li::before {
	font-family: FontAwesome;
	content: "\f0da"; /* Código Unicode del icono */
	margin-right: .2rem;
	color: #0057a0;
}

/* RESPONSIVE CSS
-------------------------------------------------- */

@media (max-width: 450px) {
	header nav.navbar.navbar-expand-lg div.container {
		padding: 0 1rem;
	}
}

@media (min-width: 40em) {
  /* Bump up size of carousel content */
  .carousel-caption p {
    margin-bottom: 1.25rem;
    font-size: 1.25rem;
    line-height: 1.4;
  }
}

@media (max-width: 768px) {
	section.estilo-inicio .row h2 {
		margin-top: 3rem;
	}
	
	footer div.container-fluid div.row div.contacto-servicio {
		margin-top: 1rem;
	}
	
	/*footer {
		margin-top: 5rem;			
	}*/
}

@media (min-width: 370px) and (max-width: 670px) {
  div.container-fluid.contenedora-contador {
  	padding-top: 10rem; /* Revisar a futuro si hay problemas */
  	padding-bottom: 10rem;
  }
}

@media (min-width: 660px) and (max-width: 760px) {
  section.estilo-inicio.parallax .container-fluid .row div.col-md-7 {
  	padding: 0 6rem;
  }
}

@media (min-width: 768px) {
  section.estilo-inicio .container-fluid {
    padding: 0 4rem;
  }  
  
  section.estilo-inicio .container {
  		padding: 5rem 0;
	}
	footer {
		padding: 2.5rem 5rem;			
	}
}

@media (max-width: 950px) {
	  div.offcanvas.offcanvas-end {
		background: linear-gradient(135deg, #2c3e50, #3498db);
	}
	
	a.nav-link {
		color: #fff;
	}

}


/* **** Quiénes somos **** */

@media (min-width: 576px) {
    #actualidad-quienes .container-fluid {
        padding-left: 15px;
        padding-right: 15px;
        max-width: 540px;
        margin: 0 auto;
    }
}

@media (min-width: 768px) {
    #actualidad-quienes .container-fluid {
        max-width: 720px;
        margin: 0 auto;
    }
}

@media (min-width: 992px) {
    #actualidad-quienes .container-fluid {
        max-width: 960px;
        margin: 0 auto;
    }
}

@media (min-width: 1200px) {
    #actualidad-quienes .container-fluid {
        max-width: 1140px;
        margin: 0 auto;
    }
}

@media (min-width: 1400px) {
    #actualidad-quienes .container-fluid {
        max-width: 1320px;
        margin: 0 auto;
    }
}


@media (max-width: 768px) {
  a.boton-inicio {
    margin-bottom: 2rem;
  }
}