/* Contenedor superpuesto del spinner */
#spinner-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #ffffff;
    z-index: 9999;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    color: #dbdbdb !important;
}

.super-z-index {
    z-index: 10000;
    /* Valor mayor al del spinner */
}

.oculto {
    display: none !important;
}

.cargando-txt {
    font-size: 15px !important;
    font-family: 'Sorts Mill Goudy', 'Montserrat', sans-serif;
    letter-spacing: 0px;
    color: #41362a;
}

.ef {
    padding-top: 15px !important;
    padding-bottom: 15px;
    padding-left: 5px;
    padding-right: 5px;
}

/* Ocultar scrollbar en todos los elementos para navegadores basados en Webkit (Chrome, Safari, Opera) */
*::-webkit-scrollbar {
    display: none;
}

/* Ocultar scrollbar en IE, Edge y Firefox */
* {
    -ms-overflow-style: none;
    /* IE y Edge */
    scrollbar-width: none;
    /* Firefox */
}

.no-link {
    text-decoration: none !important;
}

.icono_flecha {
    width: 33px;
}

.icono_espejado {
    transform: scaleX(-1);
}

.flecha_izquierda {
    position: absolute;
    left: 0;
    margin-left: 5px;
    /* Ajusta este valor para dejar el espacio que prefieras */
}

.flecha_derecha {
    position: absolute;
    right: 0;
    margin-right: 5px;
    /* Ajusta este valor para dejar el espacio que prefieras */
}

.aspect-ratio-6 {
    aspect-ratio: 12/16;
}

.aspect-ratio-12 {
    aspect-ratio: 16/9;
}

.proyecto-img-container {
    height: 100% !important;
    width: 100%;
    overflow: hidden;
    text-align: center;
    max-height: fit-content;
}

.proyecto-img {
    display: inline-block;
    max-width: 100%;
    width: 100%;
    height: 100% !important;
    object-fit: contain;
    /*object-position: center center;
        display: block;*/
}

/*
.hero-img {
    max-height: calc(100vh - 180px);
}
*/

/* Forzar que el diálogo modal ocupe el 100% del viewport */
.modal-dialog {
    margin: 0;
    max-width: 100vw;
    height: 100vh;
}

/* Que el contenido de la modal ocupe el 100% de la altura disponible */
.modal-content {
    height: 100vh;
    border: none;
    border-radius: 0;
    background-color: rgba(255, 255, 255, 0.6) !important;
    /*filter: brightness(150%) contrast(110%);*/
}

.modal-backdrop.show {
    background-color: rgba(255, 255, 255, 0.8) !important;
    filter: brightness(5000%);
}

/* Ajusta la cabecera según lo que necesites (su altura se restará del cuerpo) */
.modal-header {
    padding: 20px 15px;
    border-bottom: none !important;
}

/* El cuerpo de la modal ocupa el resto del espacio, sin padding que sume altura extra */
.modal-body {
    padding: 0;
    height: calc(100vh - 56px);
}

/* Contenedor del carrusel, adaptado al 100% del modal-body */
.carousel-fullscreen {
    height: 100%;
    overflow: hidden;
    position: relative;
}

/* Aseguramos que la zona interna ocupe toda la altura */
.carousel-fullscreen .carousel-inner {
    height: 100%;
}

/* Cada slide ocupa el 100% del contenedor */
.carousel-fullscreen .carousel-item {
    position: relative;
    height: 100%;
}

/* La imagen se centra y se le reserva un margen de 20px en cada lado */
.carousel-fullscreen .carousel-item img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: calc(100% - 40px);
    max-height: calc(100% - 40px);
    object-fit: contain;
}

.col-nombre
{
    margin-top: 0px;
    margin-bottom: 0px;
    padding-top: 0px;
    padding-bottom: 1px;
}

.nombre-proyecto {
    font-size: 17px;
}

.logo-loading {
    width: 100px;
    margin-top: -14px;
}

.info-footer {
    font-family: 'Montserrat', sans-serif;
    letter-spacing: 0px;
    color: #41362a;
    font-size: 14px;
}

.fot-marg {
    margin-top: 4px !important;
    margin-bottom: 4px !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
}

.spinner-border {
    --bs-spinner-width: 1.8rem !important;
    --bs-spinner-height: 1.8rem !important;
}

/* Animación de desvanecimiento ↔ lectura ↔ espera ↔ desvanecimiento */
@keyframes fadeCycle {

    0% {
        opacity: 0.1;
    }

    50% {
        opacity: 1;
    }

    75% {
        opacity: 1;
    }

    100% {
        opacity: 0.1;
    }
}

/* Aplicamos la animación en bucle */
.anim-fade {
    animation: fadeCycle 3s ease-in-out infinite;
}

.container-cookies-closed {
    position: fixed;
    width: auto;
    z-index: 999999;
    padding: 3px;
    bottom: -1px;
    left: 0px;
    text-align: center;
}

.titulo-cookies-closed {
    font-family: 'Sorts Mill Goudy', serif;
    letter-spacing: -0.5px;
    font-size: 11px;
    text-align: center;
    margin-bottom: -1px;
}

.container-cookies {
    position: fixed;
    width: auto;
    background-color: #ececec;
    z-index: 999998;
    border-radius: 5px;
    border: 1px solid #999999;
    padding: 10px;
    bottom: 8px;
    left: 8px;
}

.titulo-cookies {
    font-family: 'Sorts Mill Goudy', serif;
    letter-spacing: -0.5px;
    font-size: 15px;
    color: #41362a;
    text-align: center;
}

.texto-cookies {
    width: 300px;
    font-family: 'Montserrat', sans-serif;
    letter-spacing: 0px;
    color: #41362a;
    font-size: 13px;
    text-align: justify;
}

.zona-botones {
    position: relative;
    bottom: 0px;
    padding: 3px;
    text-align: center;
}

.zona-botones-config {
    margin-top: 15px;
    position: relative;
    padding: 3px;
    text-align: center;
    font-size: 14px;
}

.btn-cookie-closed {
    font-family: 'Sorts Mill Goudy', serif;
    font-size: 12px;
    background-color: #ececec;
    padding-top: 5px;
    padding-bottom: 3px;
    padding-left: 8px;
    padding-right: 8px;
    color: #41362a;
    border: none;
}

.btn-cookie-closed:hover {
    background-color: #41362a;
    color: #ececec !important;
    border: #fff solid 1px;
}

.btn-cookie {
    font-family: 'Sorts Mill Goudy', serif;
    font-size: 12px;
    background-color: #ececec;
    padding-top: 5px;
    padding-bottom: 3px;
    padding-left: 8px;
    padding-right: 8px;
    color: #41362a;
    border: #777777 solid 1px;
    margin-left: 2px;
    margin-right: 2px;
}

.btn-cookie:hover {
    background-color: #41362a;
    color: #ececec;
    border: #fff solid 1px;
}

.btn-cookie-config {
    font-family: 'Sorts Mill Goudy', serif;
    font-size: 12px;
    background-color: #ececec;
    padding-top: 5px;
    padding-bottom: 3px;
    padding-left: 8px;
    padding-right: 8px;
    color: #41362a;
    border: #777777 solid 1px;
    margin-left: 2px;
    margin-right: 2px;
}

.cookie-oculto {
    display: none;
}

.cookie-visible {
    display: block;
}

.cookie-sel {
    background-color: green;
    color: #cecece;
}

.no-cookie-sel {
    background-color: grey;
    color: #cecece;
    cursor: no-drop !important;
    cursor: not-allowed !important;
}

.no-cookie-sel:hover {
    background-color: grey;
    color: #cecece;
}

.btn-cerrar {
    position: absolute;
    top: 5px;
    right: 5px;
}

.info-footer {
    opacity: 0.75;
}


/* CLASES TEMPORALES */
.fondo-borde-test {
    border: #333 1px solid;
    background-color: #010a24e0;
    border-radius: 3px;
    height: 333px;
}

.fondo-claro {
    background-color: #fff;
}

/* FIN CLASES TEMPORALES */

/* MEDIA QURIES */
/* Extra small devices (portrait phones, up to 575px) */
@media (max-width: 575px) {
    /* …estilos para xs… */

    .fot-marg {
        margin-top: 4px !important;
        margin-bottom: 4px !important;
        padding-left: 4px !important;
        padding-right: 4px !important;
    }

    .info-footer {
        font-family: 'Montserrat', sans-serif;
        letter-spacing: 0px;
        color: #41362a;
        font-size: 11px;
    }
}

/* Small devices (landscape phones, 576px–767px) */
@media (min-width: 576px) and (max-width: 767px) {
    /* …estilos para sm… */

    .fot-marg {
        margin-top: 4px !important;
        margin-bottom: 4px !important;
        padding-left: 4px !important;
        padding-right: 4px !important;
    }

    .info-footer {
        font-family: 'Montserrat', sans-serif;
        letter-spacing: 0px;
        color: #41362a;
        font-size: 12px;
    }
}

/* Medium devices (tablets, 768px–991px) */
@media (min-width: 768px) and (max-width: 991px) {
    /* …estilos para md… */

    .fot-marg {
        margin-top: 5px !important;
        margin-bottom: 5px !important;
        padding-left: 5px !important;
        padding-right: 5px !important;
    }

    .info-footer {
        font-family: 'Montserrat', sans-serif;
        letter-spacing: 0px;
        color: #41362a;
        font-size: 13px;
    }
}

/* Large devices (desktops, 992px–1199px) */
@media (min-width: 992px) and (max-width: 1199px) {
    /* …estilos para lg… */

    .fot-marg {
        margin-top: 6px !important;
        margin-bottom: 6px !important;
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    .info-footer {
        font-family: 'Montserrat', sans-serif;
        letter-spacing: 0px;
        color: #41362a;
        font-size: 13px;
    }
}

/* Extra large devices (large desktops, 1200px–1399px) */
@media (min-width: 1200px) and (max-width: 1399px) {
    /* …estilos para xl… */

    .fot-marg {
        margin-top: 7px !important;
        margin-bottom: 7px !important;
        padding-left: 7px !important;
        padding-right: 7px !important;
    }

    .info-footer {
        font-family: 'Montserrat', sans-serif;
        letter-spacing: 0px;
        color: #41362a;
        font-size: 13px;
    }
}

/* Extra extra large devices (larger desktops, 1400px and up) */
@media (min-width: 1400px) {
    /* …estilos para xxl… */

    .fot-marg {
        margin-top: 7px !important;
        margin-bottom: 7px !important;
        padding-left: 7px !important;
        padding-right: 7px !important;
    }

    .info-footer {
        font-family: 'Montserrat', sans-serif;
        letter-spacing: 0px;
        color: #41362a;
        font-size: 13px;
    }
}