body {
    background-size: 100%;
    background-attachment: fixed;
}

.playfair {
    font-family: "Playfair", Times, serif;
}

.fraunces {
    font-family: "Fraunces", Times, serif;
}

.fondo_marfil {
    background: #F8F7F4;
}

@media print {
    .no-print {
        display: none !important;
    }
}

@media only screen and (min-width: 1024px) {
    .container_main {
        min-height: 500px;
    }
}

@media only screen and (max-height: 700px) {
    .container_main {
        min-height: 400px;
    }
}

/*formulario login*/
.tabla_login {
    box-shadow: 5px 5px 15px 1px #6e6e6e;
    background-color: rgba(var(--bs-primary-rgb), 0.25);
    backdrop-filter: blur(2px);
    color: var(--bs-emphasis-color);
}

/* fin formulario login */

.experto-flip {
    perspective: 1000px;
}

.experto-flip-inner {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;

    transition: transform .6s ease;
    transform-style: preserve-3d;
}

.experto-flip.flipped .experto-flip-inner {
    transform: rotateY(180deg);
}

.experto-flip-front,
.experto-flip-back {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;

    overflow: hidden;
}

.experto-flip-back {
    transform: rotateY(180deg);
}
.experto-flip {
    perspective: 1000px;
    cursor: pointer;
}

.experto-flip-inner {
    transition: transform .6s cubic-bezier(.4, .2, .2, 1);
}

.bandera {
    width: 22px;
    height: 22px;
    object-fit: cover;
    border-radius: 50%;
}

.lu-chat {
    position: fixed;
    right: 25px;
    bottom: 25px;

    width: 380px;
    height: 520px;

    background: #fff;
    border-radius: 18px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, .20);

    display: flex;
    flex-direction: column;

    overflow: hidden;

    z-index: 1055;

    opacity: 0;
    visibility: hidden;
    transform: translateY(25px);

    transition:
        opacity .3s ease,
        transform .3s ease,
        visibility .3s;
}

.lu-chat.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}


/* HEADER */

.lu-chat-header {
    background: #66831c;
    color: white;

    padding: 22px 25px;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.lu-chat-title {
    font-size: 1rem;
    font-weight: 700;
}

.lu-chat-subtitle {
    font-size: .65rem;
    opacity: .55;
    letter-spacing: .08em;
}

.lu-chat-minimize {
    border: 0;
    background: transparent;
    color: white;

    font-size: 1.1rem;
}


/* MENSAJES */

.lu-chat-messages {
    flex: 1;

    padding: 25px;

    overflow-y: auto;

    background: #fff;
}

.lu-message {
    display: flex;
    margin-bottom: 15px;
}

.lu-message-assistant {
    justify-content: flex-start;
}

.lu-message-user {
    justify-content: flex-end;
}

.lu-avatar {
    width: 30px;
    min-width: 30px;
    height: 30px;

    margin-right: 10px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    color: #9dcc32;
    background: #f6faec;
}

.lu-message-content {
    max-width: 75%;

    padding: 14px 16px;

    border: 1px solid #ddd;
    border-radius: 15px;

    font-size: .9rem;
}

.lu-message-user .lu-message-content {
    background: #9dcc32;
    color: #fff;

    border-color: #9dcc32;
}


/* OPCIONES */

.lu-chat-options {
    display: flex;
    flex-wrap: wrap;

    gap: 8px;

    margin: 25px 0;
}

.lu-chat-options button {
    background: white;

    border: 1px solid #e5e5e5;
    border-radius: 20px;

    padding: 7px 18px;

    color: #91bd27;

    font-size: .8rem;
    font-weight: 600;

    box-shadow: 0 2px 5px rgba(0,0,0,.05);
}


/* INPUT */

.lu-chat-input {
    border-top: 1px solid #eee;

    padding: 15px 20px;

    display: flex;
    gap: 10px;

    background: white;
}

.lu-chat-input input {
    flex: 1;

    border: 0;
    outline: none;

    background: #fafafa;

    padding: 10px 15px;

    border-radius: 25px;
}

.lu-chat-input button {
    width: 42px;
    height: 42px;

    border: 0;
    border-radius: 50%;

    background: #9dcc32;
    color: white;

    flex-shrink: 0;
}


/* BOTÓN CUANDO ESTÁ MINIMIZADO */

.lu-chat-button {
    position: fixed;

    right: 25px;
    bottom: 25px;

    width: 58px;
    height: 58px;

    border: 0;
    border-radius: 50%;

    background: #9dcc32;
    color: white;

    font-size: 1.3rem;

    box-shadow: 0 5px 20px rgba(0,0,0,.20);

    z-index: 1054;

    opacity: 0;
    visibility: hidden;

    transition: opacity .3s ease;
}

.lu-chat-button.show {
    opacity: 1;
    visibility: visible;
}


/* MOBILE */

@media (max-width: 576px) {

    .lu-chat {
        right: 10px;
        bottom: 10px;

        width: calc(100% - 20px);
        height: min(520px, calc(100vh - 20px));
    }

}

/* Menu movil */
@media (max-width: 991.98px) {

    .offcanvas-header {
        padding: 1rem 1.25rem;
    }

    .offcanvas-body {
        padding: 1rem 1.25rem 1.5rem;
    }

    .offcanvas-title {
        font-size: 1.5rem;
    }

    .offcanvas .navbar-nav .nav-link {
        padding: .55rem 0;
        font-size: 1.1rem;
    }

    .offcanvas .border-top {
        margin-top: .75rem !important;
        padding-top: .75rem !important;
    }

    .offcanvas .d-flex.gap-2 {
        gap: .5rem !important;
    }

    .offcanvas .btn-primary {
        margin-top: .5rem;
        padding-top: .65rem;
        padding-bottom: .65rem;
        font-size: 1rem;
    }

}

/* footer */
.footer {
    font-size: 13px;
}

.motto {
    font-size: smaller;
}

.Copyright {
    font-style: italic;
    text-align: right;
}

/* fin footer */


/* Inicia loading */

.lds-roller {
    display: inline-block;
    position: relative;
    width: 80px;
    height: 80px;
}

.lds-roller div {
    animation: lds-roller 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
    transform-origin: 40px 40px;
}

.lds-roller div:after {
    content: " ";
    display: block;
    position: absolute;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--bs-primary);
    margin: -4px 0 0 -4px;
}

.lds-roller div:nth-child(1) {
    animation-delay: -0.036s;
}

.lds-roller div:nth-child(1):after {
    top: 63px;
    left: 63px;
}

.lds-roller div:nth-child(2) {
    animation-delay: -0.072s;
}

.lds-roller div:nth-child(2):after {
    top: 68px;
    left: 56px;
}

.lds-roller div:nth-child(3) {
    animation-delay: -0.108s;
}

.lds-roller div:nth-child(3):after {
    top: 71px;
    left: 48px;
}

.lds-roller div:nth-child(4) {
    animation-delay: -0.144s;
}

.lds-roller div:nth-child(4):after {
    top: 72px;
    left: 40px;
}

.lds-roller div:nth-child(5) {
    animation-delay: -0.18s;
}

.lds-roller div:nth-child(5):after {
    top: 71px;
    left: 32px;
}

.lds-roller div:nth-child(6) {
    animation-delay: -0.216s;
}

.lds-roller div:nth-child(6):after {
    top: 68px;
    left: 24px;
}

.lds-roller div:nth-child(7) {
    animation-delay: -0.252s;
}

.lds-roller div:nth-child(7):after {
    top: 63px;
    left: 17px;
}

.lds-roller div:nth-child(8) {
    animation-delay: -0.288s;
}

.lds-roller div:nth-child(8):after {
    top: 56px;
    left: 12px;
}

@keyframes lds-roller {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* Fin loading */