/* HERO: imagen de fondo, altura total */
#portada {
    background: url('../img/nosotrosdinabusa.webp') center center / cover no-repeat;
    background-size: cover;
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5.5rem 0 ;
    
  }
  
.nosotros-descripcion{
    margin-top: 3.5rem;
}

.nosotros-descripcion .contenido{
    padding: 0 .5rem;
    margin-bottom: 1rem;
    line-height: 1.3;
}

.nosotros-descripcion .contenido h3{
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -1px; 
    line-height: .9;
}

.nosotros-descripcion .contenido .perfecto{
    color: #282727;
}

.nosotros-descripcion .contenido p{
    margin-bottom: .2rem;
    color: #282727;
    text-align: justify;
    font-size: .9rem;
}

.nosotros-descripcion .contenido .numeros .item{
    text-align: left;
}

.nosotros-descripcion .contenido .numeros .item h3{
    margin-bottom: 0;
    font-weight: 900;
}

.item:nth-of-type(2) h3{
    
    padding-left: .3rem;
}

.item:nth-of-type(3) .anosp{
    font-size: 1rem;
}

.nosotros-descripcion .contenido .numeros .item p{
    text-align: left;
    font-size: .7rem;
}

.nosotros-descripcion .nosotros-img img{
    border-radius: 10px;
    border: solid 1px #9c9c9c;
    
    border-top-left-radius: 40px;      
    border-bottom-right-radius: 40px;    
    
    box-shadow: 5px 5px 8px rgba(0, 0, 0, 0.5); 
}


.nosotros-mision{
    background: #283F2B;
}


.nosotros-mision .qs h3{
    text-align: center;
    font-size: 2.2rem;
    color: #fff;
    font-weight: 800;
    margin-bottom: 1.5rem;
}


.nosotros-mision .info h3{
    text-align: center;
    color: #fff;
}

.nosotros-mision .info p{
    text-align: center;
    color: #fff;
    font-size: .8rem;
}

/* Estilos para la columna "Visión" */
.row.info .col-lg-4:nth-child(2) {
    border-left: 1px solid #ddd;  /* Línea izquierda */
    border-right: 1px solid #ddd; /* Línea derecha */
    padding: 0 20px; /* Añade espacio interno para que el texto no toque las líneas */
}



.nosotros-valores{
    background: #EFE9E4;
}

.nosotros-valores .titulo h3{
    color: #282727;
    font-size: 1.2rem;
    text-align: left;
    font-weight: 900;   
    margin-bottom: 1rem;
}

.nosotros-valores .valor-item{
    background-color: #fff;
    box-shadow: 0px 0 30px rgba(0, 0, 0, 0.1);
    height: 100%;
    padding: 3rem 2rem;
    text-align: center;
    transition: 0.3s;
    border-radius: 5px;
}

.nosotros-valores .valor-item .icon{
    font-size: 3rem;
    color: #283F2B;
}
.nosotros-valores .valor-item p{
    text-align: center;
    font-size: .9rem;
}






.nosotros{
    margin-top: 1rem;
    background: #fff;
}

.nosotros h2{
    font-size: 1.5rem;    
    color: #283F2B;
}

.nosotros .historia{
    color: #282727;
}

.history-container {
    position: relative;
 
    padding-bottom: 60px;
}

/* Estilos mejorados para la línea de tiempo */
.timeline-col {
    position: relative;
    padding-right: 30px;
    padding-left: 2rem;
}

.timeline {
    position: relative;
    padding-left: 4rem; /* Aumentado para dar espacio a los años a la izquierda de la línea */
}

.timeline::before {
    content: '';
    position: absolute;
    width: 2px;
    background: linear-gradient(to bottom, #283F2B,  #282727);
    top: 0;
    bottom: 0;
    left: 7.05rem; /* Alineado con el centro de los círculos (ajustado al borde) */
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(#283F2B, 0.3);
}

.timeline-item {
    position: relative;
    margin-bottom: 2rem;
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    text-align: left;
    min-height: .5rem; /* Asegura altura mínima para evitar superposiciones */
}

.timeline-item::after {
    content: '';
    position: absolute;
    width: 40px; /* Longitud de la línea horizontal */
    height: 2px;
    background-color: #283F2B;
    left: 1.85rem; /* Posición ajustada para alinear con el círculo */
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    transition: all 0.3s ease;
    opacity: 0.5;
}

.timeline-item::before {
    content: '';
    position: absolute;
    width: 1rem;
    height: 1rem;
    background-color:#283F2B;
    border: 5px solid #283F2B;
    border-radius: 50%;
    left: 2.6rem; /* Centro de los círculos alineado con la línea */
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    transition: all 0.4s ease;
    
}

.timeline-item.active::before {
    background-color: #fff;
    border-color: #283F2B;
    box-shadow: 0 0 0 3px rgb(40, 63, 43, 1);
    transform: translateY(-50%) scale(1.2);
}

.timeline-year {
    font-weight: 700;
    font-size: .8rem;    
    transition: all 0.3s ease;
    position: absolute;
    left: -70px; /* Ajustado para que los años queden a la izquierda de la línea */
    top: 50%;
    transform: translateY(-50%);
    padding: 8px 15px;
    border-radius: 30px;
    display: inline-block;
    width: 80px; /* Ancho fijo para alineación */
    text-align: center;   
    }

.timeline-item.active .timeline-year {
    color: #283F2B;
    background-color: #fff;
    transform: translateY(-50%);
    font-size: 1.8rem;
    
}

/* Efecto de hover */
.timeline-item:hover .timeline-year {
    transform: translateY(-50%);
}

.timeline-item:hover::before {
    transform: translateY(-50%) scale(1.1);
}

/* Estilos para el carrusel con Swiper */
.swiper {
    width: 100%;
    height: 400px;
    border-radius: 12px;
    overflow: hidden;
    
}

.swiper-slide {
    position: relative;
}

.swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.history-info {
    padding: 10px;
    border-radius: 12px;    
    height: 100%;
    margin: 0 3rem 0 3rem;
    /* Flexbox solution */
    display: flex;
    flex-direction: column;
    justify-content: start; /* Centrado vertical */
    align-items: flex-center; /* Alineación horizontal */        
}

#info-year {
    color: #283F2B;    
    position: relative;
    text-align: center;
    margin-bottom: 0;
    font-weight: 800;
    
}

#info-text {
    line-height: 1.2;
}

.info-direccion{
    display: block;
    font-size: 0.9rem;
    background: #282727;
    color: #fff;
    text-align: center;
    padding: .4rem;
    border-radius: 5px;
    margin: 0 2rem 0.5rem 2rem;
}

.project-description{
    text-align: center;
    margin: 0 1rem;
}

/* Controles de navegación personalizados */
.swiper-navigation {
    position: absolute; /* Posiciona encima del slide */
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: -4rem;
    padding-left: 2.5rem;
    z-index: 9999;
}

.swiper-nav-btn {
    background-color: #282727;
    color: white;
    border: none;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    font-weight: normal;
    font-size: 1.2rem;
}

.swiper-nav-btn:hover {
    background-color: #313030;
    transform: scale(1.05);
}

.swiper-nav-btn:active {
    transform: scale(0.95);
}

/* Oculta los controles por defecto de Swiper */
.swiper-button-next, .swiper-button-prev {
    display: none !important;
}


.swiper {
    width: 100%;
    height: 40vh; /* 80% del viewport height */
    max-height: 800px;
}

.swiper-slide {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: start;
    background: #fff; /* Color de fondo para bordes */
    margin-top: 0;
    z-index: 8888;
}

.swiper-slide img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* Opcional: Efecto de borde para imágenes no cuadradas */
.swiper-slide-portrait img {
    max-height: 90%;
    max-width: 90%;
}

.swiper-slide-landscape img {
    max-width: 90%;
    max-height: 90%;
}
/*============== sm: ≥576px ======================= */
@media (min-width: 576px) {
    .timeline-item {
        min-height: 1.1rem; /* Asegura altura mínima para evitar superposiciones */
      }

      
/* Controles de navegación personalizados */
    .swiper-navigation {
        margin-top: 1rem;
        padding-left: 5rem;
    }
}

/*============== md: ≥768px ======================= */
@media (min-width: 768px) {

    .nosotros-descripcion .contenido .numeros .item{
        text-align: center;
    }

    .nosotros-descripcion .contenido .numeros .item h3{
        font-size: 2rem;
    }

    .nosotros-descripcion .contenido .numeros .item p{
        text-align: center;
        font-size: .8rem;
    }    
    
    .item:nth-of-type(3) .anosp{
        font-size: 1rem;
    }
    

    .timeline-item {
      min-height: 1.9rem; /* Asegura altura mínima para evitar superposiciones */
    }

      /* Estilos mejorados para la línea de tiempo */
    .timeline-col {
        padding-left: 5rem;
    }

    .timeline::before {
        left: 7.05rem; /* Alineado con el centro de los círculos (ajustado al borde) */
    }

    .swiper {
        width: 100%;
        height: 55vh; /* 80% del viewport height */
        max-height: 800px;
    }

    .swiper-navigation {
        padding-left: 11.5rem;
    }


}

/*============== lg: ≥992px ======================= */
@media (min-width: 992px) {
  
    .nosotros-descripcion .contenido{
        padding-right: 2rem;
    }
    
    .nosotros-descripcion .contenido h3{
        font-size: 2.2rem;
    }

    .timeline-item {
        min-height: 1.9rem; /* Asegura altura mínima para evitar superposiciones */
      }

    .swiper {
        width: 100%;
        height: 55vh; /* 80% del viewport height */
        max-height: 800px;
    }

    .swiper-navigation {
        padding-left: 9rem;
    }

    /* Estilos mejorados para la línea de tiempo */
    .timeline-col {
        padding-left: 5rem;
    }

    .timeline::before {
        left: 7.05rem; /* Alineado con el centro de los círculos (ajustado al borde) */
    }

    .history-info {
        padding: .5rem;       
        margin: 2rem 1rem 0 1rem;
    }
          
    .info-direccion{
        margin: 0 0.5;
    }

    .project-description{       
        margin: 0 1rem;
    }
  }

  /*============== xl: ≥1200px ======================= */
@media (min-width: 1200px) {

    .nosotros-descripcion .contenido{
        display: flex;      
        flex-direction: column;
        justify-content: center;
    }

    .timeline-item {
        min-height: 1.9rem; /* Asegura altura mínima para evitar superposiciones */
      }

      .swiper {
        width: 100%;
        height: 55vh; /* 80% del viewport height */        
      }

      .swiper-navigation {
        padding-left: 11rem;
        }
      
       .info-direccion{
            margin: 0 0.5;
        }
}

  /*============== xxl: ≥1200px ======================= */
  @media (min-width: 1400px) {

    .swiper-navigation {
        padding-left: 13.5rem;
        }
  }