/* -------------------------------------------------- 
 * GLOBAL 
 --------------------------------------------------  */
@charset "UTF-8";
:root {
    /* Basics */
    --clear: #F2F2F2;
    --clear-grey: #FCFCFC;
    --white: #ffffff;
    --black: #12181B;
    --dark: #161E22;
    --text: #333333;
}
html, body {background-color: var(--clear);}
a {
    cursor: pointer;
    transition: opacity 0.5s ease-in-out;
}

/* -------------------------------------------------- 
 * GOOGLE 
 --------------------------------------------------  */
.grecaptcha-badge {
    display: none;
}

/* -------------------------------------------------- 
 * CKE 
 --------------------------------------------------  */
 .cke_notification_space, .cke_notifications_area {
    display: none !important;
}

/* -------------------------------------------------- 
 * FORM 
 --------------------------------------------------  */
input:invalid {
    color: red;
}

/* -------------------------------------------------- 
 * COMMON 
 --------------------------------------------------  */
#loading_content {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    z-index: 9999;
}

/* Estilo de la animación SVG */
#loading_content .spinner {
    animation: rotate 1s linear infinite;
    width: 50px;
    height: 50px;
}
#loading_content .path {
    stroke: var(--secondary);
    stroke-linecap: round;
    animation: dash 1.5s ease-in-out infinite;
}
@keyframes rotate {
    100% {
        transform: rotate(360deg);
    }
}
@keyframes dash {
    0% {
        stroke-dasharray: 1, 150;
        stroke-dashoffset: 0;
    }
    50% {
        stroke-dasharray: 90, 150;
        stroke-dashoffset: -35;
    }
    100% {
        stroke-dasharray: 90, 150;
        stroke-dashoffset: -124;
    }
}


/* Ocultar el precargador después de cargar */
#loading_content.loaded {
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease-in-out;
    position: relative;
    height: 0;
    width: 0;
}

/* Estilos para el elemento .c-branded */
.c-branded {
    border: none;
    border-left: 4px solid var(--secondary);
    position: fixed;
    height: 100vh;
}
@media only screen and (max-width: 40em) {
    .c-branded {
        border: none;
        border-top: 4px solid var(--secondary);
        width: 100vw;
        height: auto;
        position: absolute;
        top: 0;
    }
}


/* Estilos para el menú de pestañas */
.tabs-container {
    border-bottom: 1px solid var(--primary);
    display: flex;
    margin: 0 1rem;
}
.tabs-container h3,
.tabs-container h4 {
    flex: 1 1 auto;
    padding: 0 0.5rem;
    margin: 0;
}
.tabs-container ul {
    flex: 0 1 auto;
}
ul.tabs {
    margin: 0;
    padding: 0;
    list-style: none;
}
ul.tabs li {
    background: none;
    color: #222;
    display: inline-block;
    padding: 10px 15px;
    cursor: pointer;
}
ul.tabs li.current {
    background: #ededed;
    color: #222;
    border-bottom: 4px solid var(--secondary);
}
.tab-content {
    display: none;
    overflow: hidden;
    margin: 0;
    background-color: white;
    padding: 0;
    border-bottom: 1px solid var(--primary);
    -webkit-transition: background-color 2s ease-out;
    -moz-transition: background-color 2s ease-out;
    -o-transition: background-color 2s ease-out;
    transition: background-color 2s ease-out;
    width: 100%;
}
.tab-content.current {
    display: block;
    background-color: var(--clear);
}

/* Estilos para el menú de la barra lateral */
nav#menu {
    background: var(--secondary);
    bottom: 0;
    box-shadow: 0 0 5px #666;
    height: 100%;
    left: -17.5rem;
    padding-top: 38px;
    position: fixed;
    top: 0;
    transition: .4s ease-in-out;
    width: 17rem;
    user-select: none;
    z-index: 999;
}
nav#menu ul {}
nav#menu ul li {
    text-indent: 1rem;
    line-height: 1.5rem;
    display: list-item;
    min-height: 1rem;
}
nav#menu a {
    color: #eee;
    display: block;
    transition: .5s;
    text-decoration: none;
    -webkit-user-drag: none;
    padding: 1rem 0;
}
nav#menu a:hover {
    background-color: rgba(255, 255, 255, .2);
}
nav#menu a.clean:hover {
    background-color: transparent;
}
#nav-collapse {
    padding: 8px 12px;
    position: absolute;
    right: 0;
    top: 0;
}
#nav-expand {
    color: #333;
    display: inline-block;
    padding: 8px 12px 8px 16px;
    text-decoration: none;
    transition: .5s linear;
    user-select: none;
    -webkit-user-drag: none;
    border-radius: 3px;
    ;
}
#nav-expand .icon-menu {
    filter: invert(1) sepia(100%) saturate(10000%) hue-rotate(45deg);
}
#nav-expand:focus {
    opacity: 0;
}
#nav-expand:focus~main {
    margin-left: 17rem;
    transition-delay: .25s;
}
#nav-expand:focus~nav {
    left: 0;
    transition-delay: .25s;
}
nav#menu .icon,
#nav-expand .icon {
    display: inline-block;
    background-position: center;
    background-repeat: no-repeat;
    height: 1rem;
    width: 1rem;
    vertical-align: text-top;
}
nav#menu .icon-menu,
#nav-expand .icon-menu {
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAABHNCSVQICAgIfAhkiAAAAB5JREFUKJFj/P///38GEgATKYoHKWAc9TQRgGRPAwD0IAv+FT8LPwAAAABJRU5ErkJggg==');
}
nav#menu .icon-cross,
#nav-expand .icon-cross {
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAYAAACprHcmAAAABHNCSVQICAgIfAhkiAAAAPdJREFUGJV1jz9LhWAYxc+9rVZDQ+DcEI0NLU19gxr6Ci3tuvjnA+gggSBt4qzzO90b5FBubkHgEM1CBL5K93Ia8jWv4G88/A7PeQAArusekXwRQpiGYSzQ4/v+Gcn3OI6vMRJf+cdWFXrxs8+bOI5vkCTJLckf/rMtiuJhJJIk67oWAIA0Te8mhR2klGvbtg/UvNlC27ZPSlwquaqqZwA1dmGe56uu676HxPO8U5IfMyuGp+fEt+nTQghzqWnaMYBDdUVKuXYc5yLLsnsAmz5e6Lp+AgCIouiK5FfTNCvLsvanT5dl+Wia5t6wOwiC87GoCMPwUom/I2EVwEqOzwUAAAAASUVORK5CYII=');
}


/* Personalización de estilos para la paginación */
.pagination {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    flex-direction: row;
    flex-wrap: wrap;
}
.pagination li {
    margin-right: 0.5rem;
    display: flex;
    gap: 1rem;
}
.pagination a,
.pagination span {
    padding: 0.5rem 1rem;
    border-bottom: 1px solid #ccc;
    color: #333;
    text-decoration: none;
    border-radius: 5px;
    background-color: var(--clear-grey);
}
.pagination .active span {
    background-color: var(--secondary);
    color: #fff;
    border-color: var(--secondary);
}
.pagination a:hover {
    background-color: var(--secondary);
    color: #fff;
    border-color: var(--secondary);
}


/* -------------------------------------------------- 
 * MISC 
 --------------------------------------------------  */

/* Estilos alternois */
ul.zebra {background-color: var(--white);}
ul.zebra li:nth-child(even) {
    background-color: var(--clear-grey);
}
ul.zebra li.zebra_footer {background-color: var(--clear);}