/*

1º:
reglas generales comunes a todos los dispositivos

*/

* {
    /* selector universal */
    box-sizing: border-box;
    /* para que el ancho de todas las etiquetas
        tomen como referencia el borde de las mismas
        y NO el contenido, como viene por defecto  */
    list-style: none;
    margin: 0;
    padding: 0;
}

body {
    font-family: "trebuchet MS", arial, helvetica, sans-serif;
    background-color: gray;
}

a {
    text-decoration: none;
}

h2,
h3 {
    color: cadetblue;
    border-bottom: dotted 2px lightcoral;
    margin-bottom: 0.5em;
    margin-top: 0.5em;
}

p {
    padding-bottom: 1em;
    max-width: 35em;
}

img {
    max-width: 100%;
    height: auto;
}

article figure {
    border-radius: 50%;
    overflow: hidden;
    max-width: 50vw;
    margin: 1em auto;
    box-shadow: 0 0.35em 0.5em 0 rgba(0, 0, 0, 0.2);
}

figure>img,
#logo>img {
    display: block
}

article>*:not(h2) {
    text-align: center;
}

#contenedor {
    background-color: white;
    box-shadow: 0 0 0 1em rgba(0, 0, 0, 0.1);
    margin: auto;
    max-width: 75em;
    min-height: 100vh;
    width: 90vw;
}

header,
footer {
    background-color: #333;
    padding: 1em;
    text-align: center;
}

#logo {
    background-color: lightcoral;
    border-radius: 0.5em;
    font-weight: bold;
    font-size: 2em;
    text-align: center;
    width: 3em;
    box-shadow: 0 0 0 0.2em rgba(0, 0, 0, 0.2);
    display: inline-block;
    padding: 0.3em;
}

nav {
    margin-top: 1em;
    box-shadow: 0 0 0 0.5em rgba(0, 0, 0, 0.2);
}

nav ul {
    margin: 0;
    padding: 0;
}

nav ul li {}

nav ul li a {
    background-color: cadetblue;
    border: solid 2px rgba(0, 0, 0, 0.2);
    border-radius: 5px;
    color: white;
    display: block;
    padding: 0.25em;
    text-align: center;
}

nav ul li a:hover {
    color: black;
}

main,
aside {
    padding: 0.5em;
}

article {
    margin-bottom: 1em;
}

aside {
    background-color: lightcoral;
}

section {
    background-color: rgba(255, 255, 255, 0.5);
    padding: 0.5em;
}

footer p {
    color: #ccc;
}


/*

2º:
layout usando "flexbox" para celulares

*/

#contenedor {
    /*  usaremos el contenedor
        como caja "padre" flexible
    	para que el pié quede abajo
        aun con poco contenido 
*/
    display: flex;
    
    /*  indicaremos que el eje principal
        de la caja flexible
        sea la vertical   
*/
    flex-direction: column;
    
    /*  indicaremos que los elementos "hijos" 
        del contenedor se separen
    	para que el pié quede siempre abajo
        aun con poco contenido en la página
    */
    justify-content: space-between; 
}

header, 
footer {
    /*  flex resume 3 propiedades para los items:
        flex-grow (si se les permite crecer)
        flex-shrink (si se les permite achicar)
        flex-basis (medida según el eje ppal del flex)
        
        indicamos que el encabezado y el pié
        no "crezcan", pero que puedan "achicarse"
        si fuera necesario
    */
    flex: 0 1 auto;
    
}

.contenidos {
    /* como caja contenedora flex
    */
    display: flex;
    
    /*  indicaremos que el eje principal
        de la caja flexible
        sea la vertical
    */
    flex-direction: column;
    
    /*  indicaremos que los elementos "hijos" 
        de "contenidos" se separen
    	para que el aside quede siempre abajo
        aun con poco contenido en la página
*/
    justify-content: space-between;
    
    /*  como "hijo" de "contenedor", que es una caja flexible
        le indicamos que se achique o se agrande
        si fuera necesario, para que ocupe toda la pantalla
    */
    flex: 1;
    
}


/****************************************

             3º: mediaqueries
 
(cambios en el layout en la medida en que
la ventana del navegador se va ensanchando)

*****************************************/


/* a partir de 320px */

@media (min-width:20em) {
    nav ul {
        /*  para que sea horizontal
            definimos la lista menú
            como caja flexible
    */
        display: flex;
        
    }
    nav ul li {
        /*  para que el menú se extienda a lo ancho
            definimos que sus "hijos" puedan crecer o achicarse
*/
        flex: 1;
        
    }
}


/* a partir de 480px */

@media (min-width:30em) {
    header {
        /*  para que el menu horizontal
            quede al lado del logo
            definimos el encabezado
            como caja flexible
*/
        display: flex;
        
        /*  indicamos que el logo se vaya 
            lo más a la izquierda posible
            y el menu, lo más a la derecha posible
*/
        justify-content: space-between;
        
        /*  indicamos que los "hijos del encabezados
            estén centrados verticalmente
*/
        align-items: center;
        
    }
    nav {
        
        margin: 0;
        
        /*  indicamos que el menú mida
            todo el ancho MENOS 8em
            para que quepa el logo a la izquierda
*/
        flex-basis: calc( 100% - 8em);
        
    }
    article {
        /*     como caja contenedora flex
*/
        display: flex;
        
        /*  en caso de ser necesario,
            los "hijos" de article pueden
            bajar a la siguiente línea de "hijos"
*/
        flex-wrap: wrap;
        
        /*  indicamos que los "hijos" de article
            se alineen en el inicio
            según el eje secundario (vertical)
        */
        align-items: flex-start;
        
    }
    
    article > h2 {
        width: 100%;
    }
    article > *:not(h2) {
        text-align: left;
    }
    article > figure {
        max-width: 25%;
        margin: 0 1em 0.5em 0;
    }
    article>p {
        max-width: 70%;
    }
    */
}


/* a partir de 640px */

@media screen and (min-width:40em) {
    main {
        /* como caja contenedora flex

        display: flex;
        */
        /*  indicaremos que el eje principal
            de la caja flexible cambie
            a la horizontal

        flex-direction: row;
        */
        /*  alinea verticalmente los "hijos"
            según la base de la primera línea de texto
        
        align-items: baseline;
        */
        /*  como "hijo" de caja contenedora flex,
            se estira para ocupar toda la caja "padre"
        
        flex: 1;
        */
    }
    /*
    main article {
        width: 50%;
        display: block;
        text-align: center;
    }
    article>*:not(h2) {
        text-align: center
    }
    article>figure {
        max-width: 50%;
        margin: 1em auto;
    }
    article>p {
        max-width: 90%;
        margin: auto;
    }
    */
    aside {
        /* como caja contenedora flex
    
        display: flex;
        */
    }
    section {
        /*  como "hijo" de caja contenedora flex,
            se estira para ocupar la mitad de la caja "padre"
        
        flex: 1 1 50%;
        */
    }
}


/* a partir de 800px */

@media screen and (min-width:50em) {
    .contenidos {
        /*  indicaremos que el eje principal
            de la caja flexible cambie
            a la horizontal

        flex-direction: row;
        */
    }
    aside {
        /*  indicaremos que el eje principal
            de la caja flexible cambie
            a la vertical

        flex-direction: column;
        */
        /*  como "hijo" de caja flex "contenidos",
            indicamos ocupar 30% de la caja "padre"
            sin posibilidad de agrandarse ni achicarse
        
        flex: 0 0 30%;
        */
    }
    section {
        /*  como "hijo" de caja flex aside,
            indicamos INposibilidad de agrandarse o achicarse
        
        flex: 0 0 auto;
        */
    }
}