/** sidebar floating */
.sidebar {
    position: fixed;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 40px; /* Ajuste del ancho para acomodar los puntos */
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .15);
    margin-left: 10px;
    border-radius: 15px;
}

.sidebar ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
}

.sidebar ul li {
    margin: 25px;
    position: relative; /* Necesario para posicionar el texto sobre el punto */
}

.sidebar ul li a {
    color: transparent; /* Hace el texto invisible por defecto */
    text-decoration: none;
    font-size: 18px;
    transition: color 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background-color: white; /* Punto blanco por defecto */
    margin: 0 auto;
    text-align: center;
}

.sidebar ul li a.active {
    width: 10px;
    height: 10px;
}

.sidebar ul li a::after {
    content: attr(data-text); /* Usa data-text para mostrar el nombre de la sección */
    position: absolute;
    top: 50%;
    left: calc(100% + 5px); /* Ajusta la posición del texto al lado del punto */
    transform: translateY(-50%);
    white-space: nowrap;
    color: white; /* Color del texto */
    opacity: 0; /* Ocultar el texto por defecto */
    transition: opacity 0.3s;
    background-color: rgba(0, 0, 0, .65); /* Fondo semitransparente para mejor legibilidad */
    padding: 5px; /* Espacio alrededor del texto */
    border-radius: 5px; /* Bordes redondeados para el fondo */
}

.sidebar ul li a.active::after {
    opacity: 1; /* Muestra el texto cuando el enlace está activo */
}

.sidebar ul li a:hover::after {
    opacity: 1; /* Muestra el texto cuando el enlace está en hover */
}

/** x-carousel */
.carousel-item img { height: 620px; object-fit: cover; }
.carousel-item::before { content: ''; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)); z-index: 1; }
.carousel-caption h5 { font-size: 2rem; color: white; margin-bottom: 15px;  }
.carousel-caption { z-index: 2; bottom: 50px; left: 360px; font-size: 1.125rem; width: 35%; text-align: left; background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(0,0,0,0.7) 100%); padding: 15px; border-radius: 15px; }
.carousel-indicators [data-bs-target] { width: 12px; height: 12px; border-radius: 50%; background-color: #495057; } 
.carousel-indicators [data-bs-target].active { background-color: var(--theme-color); /*#007bff;*/ }
.carousel h2 { font-size: 26px; color: white; }
.carousel h2.carousel__title { font-size: 23px; text-align: left; }
.carousel p.carousel__description { font-size: 17px; text-align: left; margin-top: 15px; }

/** features section */
.feature-section-item {
    flex: 1;
    position: relative;
    overflow: hidden;
    transition: flex 0.5s ease, filter 0.5s ease;
    filter: grayscale(100%);
    display: flex;
    flex-direction: column;
}

.feature-section-item img {
    width: 100%;
    height: 680px;
    object-fit: cover;
    background-position: center;
    transition: transform 0.5s ease;
}

.feature-section-item:hover {
    flex: 5;
    filter: none;
}

.feature-section-item:hover .feature-section-image {
    transform: scale(1.1);
}

.feature-section-item:hover ~ .feature-section-item {
    flex: 1;
}

.feature-section-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    height: 100%;
    width: 100%;
    color: white;
    padding: 50px !important;
    font-size: 15px;
    line-height: 1.2rem;
    background: rgba(0, 0, 0, 0.5);
    opacity: 0;
    transform: translateY(100%);
    transition: opacity 0.5s ease, transform 0.5s ease;
    text-align: left;
}

.feature-section-caption p {
    width: 65%;
    margin-top: 10px !important;
}

.feature-section-caption h2 {
    text-transform: uppercase;
    color: white;
    /*margin-bottom: auto; /* Empuja el h2 hacia la parte superior */
}

.feature-section-item:hover .feature-section-caption {
    opacity: 1;
    transform: translateY(0);
}

/** linea animated */
.linea {
    width: 20%;
    height: 4px;
    background-color: #AA000A;
    margin: 10px auto;
    animation: expandLine 3s infinite alternate;
}

@keyframes expandLine {
    from {
        width: 0px;
        opacity: 0;
    }
    to {
        width: 150px;
        opacity: 1;
    }
}

/** reponsive mobile */
@media (max-width: 480px) {
    /** exterior */
    #exterior .row .col-md-12 { flex-direction: column !important; }
    
    #control-buttons { flex-direction: row !important; gap: 1rem; }
    .carousel h2.carousel__title { font-size: 22px !important; text-align: center !important; }
    .carousel p.carousel__description { font-size: 17px !important; text-align: center !important; height: 100%; margin-top: 5px; line-height: 6.1vw; }
    .carousel-indicators__ { top: 215px !important; }

    .carousel-item { border-left-style: none !important; border-right-style: none !important; }
    .carousel-item img {
        height: 250px;
        object-fit: cover; /* Asegura que la imagen se ajuste correctamente */
    }
    .carousel-caption { 
        min-height: 291px;
        display: flex; 
        flex-direction: column;
        position: relative;
        top: 0;
        left: 0;
        width: 100%;
        border-radius: 0px;
        z-index: 1;
        background-color: #111 !important;
        color: white !important;
    }

    /** destacado */
    #destacado .accordion { margin: 0px !important; width: 100% !important; }

    /** footer */
    .footer-logo img { margin-bottom: 5px; }
    .footer-widget-wrapper { padding-top: 20px !important; }
    .about-us { text-align: center; margin: 0px auto; }
    ul.footer-contact { display: flex; align-items: center !important; justify-content: center !important; }
    .col-md-3.middle { columns: 2; margin: 20px auto; }
}