:root {
    --color-de-fondo-00: #ffffff;
    --color-de-fondo-01: #18191a;
    --color-de-fondo-02: #000000;
    --color-de-fondo-03: #FF0000;
    --color-de-fondo-04: #38393a;
    --color-de-fondo-05: #ff0263;
    --color-de-fondo-06: #2b2c2d;
    --color-de-fondo-07: #ebebeb;
    --color-de-fondo-08: #137200;
    --color-de-fondo-09: #ffa500;
    --color-de-fondo-10: #00a313;
    --color-de-texto-11: #a9a9a9;
    --color-de-texto-01: #ffffff;
    --color-de-texto-02: #000000;
    --color-de-texto-03: #FF0000;
    --color-de-texto-04: #a9a9a9;
    --color-de-texto-05: #ff0263;
}
* {
    padding: 0;
    margin: 0;
    text-decoration: none;
    color: var(--color-de-texto-01);
}
html, body {
    background-color: var(--color-de-fondo-01);
    color: var(--color-de-texto-01);
    font-family: 'Open Sans', sans-serif;
    font-weight: 400;
    width: 100%;
    height: 100%;
}
.contenedorHorizontal { /* contiene el contenido horizontal para que no supere los 1270px*/
    width: 100%;
    max-width: 1270px;
    margin: 0 auto;
}
.fuenteSecundaria { /* fuente secundaria */
    font-family: 'Abel', sans-serif;
    font-weight: 400;
}
.textoNegrita { /* texto en negrita */
    font-weight: bold;    
}
.textoMayuscula { /* texto en mayusculas */
    text-transform: uppercase;
}
/* Tamaño de fuentes */
.fuente06Em { font-size: 0.6em; }
.fuente07Em { font-size: 0.7em; }
.fuente08Em { font-size: 0.8em; }
.fuente09Em { font-size: 0.9em; }
.fuente10Em { font-size: 1em; }
.fuente12Em { font-size: 1.2em; }
.fuente14Em { font-size: 1.4em; }
.fuente16Em { font-size: 1.6em; }
.fuente18Em { font-size: 1.8em; }
.fuente20Em { font-size: 2em; }
.fuente22Em { font-size: 2.2em; }
.fuente24Em { font-size: 2.4em; }
.fuente26Em { font-size: 2.6em; }
.fuente28Em { font-size: 2.8em; }    
.fuente30Em { font-size: 3em; }
.ocultarTextoH1 { /* oculta el texto del h1 */
    position: absolute;
    left: -9999px;
    top: -9999px;
    height: 1px;
    width: 1px;
    overflow: hidden;
}

/** Barra de Navegación **/
nav {
    width: 100%;
    height: 150px;
    padding: 0;
    margin: 0;
}

/* barra de inicio de sesion */
nav .contenedorBarraArriba { 
    width: 100%;
    height: 50px;
    background-color: var(--color-de-fondo-02);
}

nav .contenedorBarraArriba .contenedorDelMenuGeneral {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    text-align: flex-start;
    vertical-align: middle;
    flex-wrap: wrap;
    flex-direction: row;
    padding: 0;
    margin: 0;
}

/* Esmeraldas + cantidad */
nav .contenedorBarraArriba .contenedorEsmeraldas {
    width: 80px;
    display: flex;
    align-items:flex-start;
    justify-content: flex-start; 
    text-align: left;
    vertical-align: middle;
    flex-wrap: wrap;
    flex-direction: row;
    padding-left: 5px;
    padding-right: 5px;
    margin-top: 12.5px;
}
nav .contenedorBarraArriba .contenedorEsmeraldas img {
    width: 25px;
    margin: 0;
}
nav .contenedorBarraArriba .contenedorEsmeraldas p {
    padding-left: 5px;
}

/* Contenedor del menú de opciones */
nav .contenedorBarraArriba .contenedorDelMenu {
    width: calc(100% - 90px);
    display: flex;
    align-items: center;
    justify-content: flex-end; 
    text-align: right;
    vertical-align: middle;
    flex-wrap: wrap;
    flex-direction: row;
    padding: 0;
    margin: 0;
}

/* Menu de opciones para inicio de sesion */
nav .contenedorBarraArriba .contenedorDelMenu .botonInicioSesion {
    background-repeat: no-repeat;   
    background-position: 5px center;
    background-size: 20px 20px;
    padding-left: 35px;
    padding-right: 10px;
    border: 1px solid var(--color-de-fondo-04);
    background-color: var(--color-de-fondo-04);
    border-radius: 5px;
    height: 38px;
    line-height: 38px;
    margin-top: 5px;
    margin-right: 10px;
}
nav .contenedorBarraArriba .contenedorDelMenu .botonInicioSesion:hover {
    background-color: var(--color-de-fondo-01);
}
nav .contenedorBarraArriba .contenedorDelMenu .botonInicioSesion:last-of-type {
    margin-right: 0;
}

/* Menu de opciones para usuarios con sesion activa */
nav .contenedorBarraArriba .contenedorDelMenu .botonMenu {
    width: 25px;
    position: relative;
    padding-left: 12.5px;
    padding-right: 12.5px;
    margin-top: 12.5px;
}
nav .contenedorBarraArriba .contenedorDelMenu .botonMenu:last-child {
    padding-right: 5px;
}
nav .contenedorBarraArriba .contenedorDelMenu .botonMenu .ciruclo {
    position: absolute;
    width: 20px;
    height: 20px;
    line-height: 20px;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    text-align: center;
    padding: 0;
}
nav .contenedorBarraArriba .contenedorDelMenu .botonMenu .cirucloMensajes { 
    background: var(--color-de-fondo-08);
    margin-top: -10px;
    margin-left: 15px;
}
nav .contenedorBarraArriba .contenedorDelMenu .botonMenu .cirucloAlerta { 
    background: var(--color-de-fondo-03);
    margin-top: -10px;
    margin-left: 15px;
}
nav .contenedorBarraArriba .contenedorDelMenu .botonMenu img {
    width: 25px;
    height: 25px;
}

/* Sub menu de la barra de inicio de sesion */
nav .contenedorBarraArriba .contenedorDelMenu .subMenu {
    display: none;
    position: absolute;
    background-color: var(--color-de-fondo-02);
    width: 268px;
    text-align: left;
    padding: 0;
    margin-left: calc(100% - 268px);
    border-bottom-left-radius: 10px;
    line-height: 50px;
    transition: background-color 0.8s ease, color 0.8s ease;
    z-index: 9999;
    top: 50px;
}
nav .contenedorBarraArriba .contenedorDelMenu .subMenu a {
    display: block;
    list-style: none;
    padding-left: 40px;
    padding-top: 0;
    padding-bottom: 0;
    padding-right: 0;
    border-radius: 0;
    margin: 0;
    background-repeat: no-repeat;   
    background-position: 10px center;
    background-size: 20px 20px;
    width: auto !important;
}
nav .contenedorBarraArriba .contenedorDelMenu .subMenu a:hover {
    background-color: var(--color-de-fondo-04);
}
nav .contenedorBarraArriba .contenedorDelMenu .subMenu a:hover:last-child {
    border-bottom-left-radius: 10px;
}

/* iconos de acceso y registro */
nav .contenedorBarraArriba .contenedorDelMenu .iconoDeAcceso {
    background-image: url('../images/icons/login/access.png');
}
nav .contenedorBarraArriba .contenedorDelMenu .iconoDeRegistro {
    background-image: url('../images/icons/login/create_account.png');
}

/* iconos del sub menu del panel */
nav .contenedorBarraArriba .contenedorDelMenu .subMenu .iconoEstadisticas {
    background-image: url('../images/icons/profile/stats.png');
}
nav .contenedorBarraArriba .contenedorDelMenu .subMenu .iconoDatosPersonales {
    background-image: url('../images/icons/profile/data.png');
}
nav .contenedorBarraArriba .contenedorDelMenu .subMenu .iconoGaleria {
    background-image: url('../images/icons/profile/galery.png');
}
nav .contenedorBarraArriba .contenedorDelMenu .subMenu .iconoHorariosDeAtencion {
    background-image: url('../images/icons/profile/schedule.png');
}
nav .contenedorBarraArriba .contenedorDelMenu .subMenu .iconoVideo {
    background-image: url('../images/icons/profile/video.png');
}
nav .contenedorBarraArriba .contenedorDelMenu .subMenu .iconoServicios {
    background-image: url('../images/icons/profile/service.png');
}
nav .contenedorBarraArriba .contenedorDelMenu .subMenu .iconoTecnicas {
    background-image: url('../images/icons/profile/technique.png');
}
nav .contenedorBarraArriba .contenedorDelMenu .subMenu .iconoFavorito {
    background-image: url('../images/icons/profile/favorite.png');
}
nav .contenedorBarraArriba .contenedorDelMenu .subMenu .iconoCuenta {
    background-image: url('../images/icons/profile/config_account.png');
}
nav .contenedorBarraArriba .contenedorDelMenu .subMenu .iconoModificarClave {
    background-image: url('../images/icons/profile/password.png');
}
nav .contenedorBarraArriba .contenedorDelMenu .subMenu .iconoHistorial {
    background-image: url('../images/icons/profile/history.png');
}
nav .contenedorBarraArriba .contenedorDelMenu .subMenu .iconoSoporte {
    background-image: url('../images/icons/profile/support.png');
}
nav .contenedorBarraArriba .contenedorDelMenu .subMenu .iconoSugerencias {
    background-image: url('../images/icons/profile/sug.png');
}

/* barra de menu de opciones */
nav .barraMenuDeOpciones { 
    position: relative;
    width: 100%;
    height: 100px;
    background-color: var(--color-de-fondo-03);
}
nav .barraMenuDeOpciones .contenedorLogo {
    float: left;
    width: 256px;
    padding-top: 20px;
}
nav .barraMenuDeOpciones .botonCelular {
    display: none;
    float: right;
    width: 60px;
    height: 60px;
    margin-top: 20px;
    cursor: pointer;
}
nav .barraMenuDeOpciones ul {
    list-style: none;
    float: left;
    width: calc(100% - 256px);
    line-height: 100px;
    text-align: right;
    z-index: 9999;
}
nav .barraMenuDeOpciones ul li {
    display: inline-block;
}
nav .barraMenuDeOpciones ul li a {
    padding: 10px 15px;
    color: var(--color-de-texto-01);
    transition: background-color 0.4s ease, color 0.4s ease;
    border-radius: 5px;
}
nav .barraMenuDeOpciones ul li:hover a {
    background-color: var(--color-de-fondo-02);
}
nav .barraMenuDeOpciones ul li .activo {
    background-color: var(--color-de-fondo-02);
}

/** Secciones **/
section, article {
    width: 100%;
    min-height: calc(100vh - 150px - 300px);    
}

/** Pie de Página **/
footer {
    width: 100%;
    min-height: 300px;
    background-color: var(--color-de-fondo-02);
}
footer .contenedorFlexible {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: row;
    flex-wrap: wrap;
    padding-top: 50px;
    padding-bottom: 20px;
}
footer .contenedorFlexible .contenedor {
    min-width: 350px;
    max-width: calc(33% - 10px);
    width: 100%;
    min-height: 200px;
    margin-left: 5px;
    margin-right: 5px;
}
footer .contenedorFlexible .contenedor .sobreNosotros {
    margin-top: 20px;
}
footer .contenedorFlexible .contenedor .iconoSociales {
    margin-top: 10px;
    align-items: flex-start;
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: flex-start;
}
footer .contenedorFlexible .contenedor .iconoSociales .contenedorSocial {
    background-color: #343434;
    background-position: 5px 5px;
    background-repeat: no-repeat;
    background-size: 30px 30px;
    cursor: pointer;
    height: 30px;
    margin: 5px;
    padding: 5px;
    width: 30px;
    -webkit-transition-property: margin-top;
    -webkit-transition-duration: 1.9s;
    -moz-transition-property: margin-top;
    -moz-transition-duration: 1.9s;
    -o-transition-property: margin-top;
    -o-transition-duration: 1.9s;
    -ms-transition-property: margin-top;
    -ms-transition-duration: 1.9s;
    transition-property: margin-top;
    transition-duration: 1.9s;
}
footer .contenedorFlexible .contenedor .iconoSociales .contenedorSocial:nth-of-type(1) {
    margin-left: 0;
}
footer .contenedorFlexible .contenedor .iconoSociales .efecto {
    vertical-align: middle;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    box-shadow: 0 0 1px rgba(0, 0, 0, 0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    -webkit-transition-property: color;
    transition-property: color;
    -webkit-transition-duration: 0.6s;
    transition-duration: 0.6s;
}
footer .contenedorFlexible .contenedor .iconoSociales .efecto:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    -webkit-transform: scaleY(0);
    transform: scaleY(0);
    -webkit-transform-origin: 50% 0;
    transform-origin: 50% 0;
    -webkit-transition-property: transform;
    transition-property: transform;
    -webkit-transition-duration: 0.6s;
    transition-duration: 0.6s;
    -webkit-transition-timing-function: ease-out;
    transition-timing-function: ease-out;
}
footer .contenedorFlexible .contenedor .iconoSociales .efecto:hover, 
footer .contenedorFlexible .contenedor .iconoSociales .efecto:focus, 
footer .contenedorFlexible .contenedor .iconoSociales .efecto:active {
    color: #fff;
}
footer .contenedorFlexible .contenedor .iconoSociales .efecto:hover:before, 
footer .contenedorFlexible .contenedor .iconoSociales .efecto:focus:before, 
footer .contenedorFlexible .contenedor .iconoSociales .efecto:active:before {
    transform: scaleY(1);
    -webkit-transform: scaleY(1);
}
footer .contenedorFlexible .contenedor .iconoSociales .colorWhatsapp:before {
    background: #1bd741;
}
footer .contenedorFlexible .contenedor .iconoSociales .colorFacebook:before {
    background: #4167b2;
}
footer .contenedorFlexible .contenedor .iconoSociales .colorTelegram::before {
    background-color: #168bd9;
}
footer .contenedorFlexible .contenedor .iconoSociales .colorLinkedin::before {
    background-color: #0077b7;
}
footer .contenedorFlexible .contenedor .iconoSociales .colorInstagram::before {
    background-color: #d536bd;
}

footer .contenedorFlexible .contenedor:nth-of-type(2),
footer .contenedorFlexible .contenedor:nth-of-type(3) {
    text-align: center;
}
footer .contenedorFlexible .contenedor:nth-of-type(2) p,
footer .contenedorFlexible .contenedor:nth-of-type(3) p {
    padding-bottom: 20px;
}
footer .contenedorFlexible .contenedor ul {
    list-style: none;
    width: 100%;
}
footer .contenedorFlexible .contenedor ul li {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    flex-wrap: wrap;
    gap: 5px;
}
footer .contenedorFlexible .contenedor ul li a {
    background-color: var(--color-de-fondo-04);
    padding: 5px;
    border-radius: 5px;
    margin: 7.5px;
}
footer .contenedorFlexible .contenedor ul li a:hover {
    background-color: var(--color-de-fondo-03);
}
footer .copyright {
    width: 100%;
    height: 30px;
    line-height: 30px;
    text-align: center;
    background-color: var(--color-de-fondo-01);
}

@media (max-width: 1079px) {
    footer .contenedorFlexible .contenedor {
        max-width: 100%;
        min-width: 100%;
        margin-bottom: 25px;
        text-align: center;
    }
    footer .contenedorFlexible .contenedor .iconoSociales {
        margin-top: 10px;
        align-items: center;
        display: flex;
        flex-wrap: wrap;
        flex-direction: row;
        justify-content: center;
    }
    footer .contenedorFlexible .contenedor:nth-of-type(1) {
        order:3;
    }
    footer .contenedorFlexible .contenedor:nth-of-type(2) {
        order:2;
    }
    footer .contenedorFlexible .contenedor:nth-of-type(3) {
        order:1;
    }
}

@media (max-width: 900px) {
    nav .barraMenuDeOpciones ul {
        display: none;
    }
    nav .barraMenuDeOpciones .botonCelular {
        display: block;
    }
    nav .barraMenuDeOpciones ul {
        list-style: none;
        position: absolute;
        width: 200px;
        background-color: var(--color-de-fondo-03);
        margin-top: 100px;
        text-align: center;
        padding: 0;
        margin-left: calc(100% - 200px);
        text-align: center;
        border-bottom-left-radius: 10px;
        line-height: 60px;
        transition: background-color 0.8s ease, color 0.8s ease;
    }
    nav .barraMenuDeOpciones ul li {
        list-style: none;
        padding: 0;
        margin: 0;
        width: 100%;
    }
    nav .barraMenuDeOpciones ul li a {
        list-style: none;
        padding: 0;
        border-radius: 0;
    }
    nav .barraMenuDeOpciones ul li:hover a {
        background-color: var(--color-de-fondo-03);
    }
    nav .barraMenuDeOpciones ul li .activo {
        background-color: var(--color-de-fondo-03);
    }
}