/************************************************************
Hoja de CSS con estilos comunes en la web
    · Tipografías
    · Reset CSS
    · Variables
    · Estilos
    · Media queries
*************************************************************/

/*
Bloque de tipografías descargadas para optimizar la web
*/

/* josefin-sans-100 - latin */
@font-face{
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Josefin Sans';
    font-style: normal;
    font-weight: 100;
    src: url('../fonts/josefin-sans-v32-latin-100.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* josefin-sans-200 - latin */
@font-face{
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Josefin Sans';
    font-style: normal;
    font-weight: 200;
    src: url('../fonts/josefin-sans-v32-latin-200.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* josefin-sans-300 - latin */
@font-face{
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Josefin Sans';
    font-style: normal;
    font-weight: 300;
    src: url('../fonts/josefin-sans-v32-latin-300.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* josefin-sans-regular - latin */
@font-face{
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Josefin Sans';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/josefin-sans-v32-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* josefin-sans-500 - latin */
@font-face{
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Josefin Sans';
    font-style: normal;
    font-weight: 500;
    src: url('../fonts/josefin-sans-v32-latin-500.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* josefin-sans-600 - latin */
@font-face{
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Josefin Sans';
    font-style: normal;
    font-weight: 600;
    src: url('../fonts/josefin-sans-v32-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* josefin-sans-700 - latin */
@font-face{
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Josefin Sans';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/josefin-sans-v32-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/*
RESET
*/

*{
    margin: 0;
    padding: 0;
    border:0;
    box-sizing: border-box;
}

li{
    list-style: none;
}

h1 , h2 , h3 , h4 , h5 , h6{
    font-size: inherit;
    font-weight: inherit;
}

a{
    display: inline;
    text-decoration: none;
    color:inherit;
}

p a{
    display: inline;
}

img , picture , video , iframe , svg{
    display: block;
    width: 100%;
    height: initial;
}

svg{
    fill: currentColor;
}

:root{
    font-size: 100%;
/*
Bloque de variables
*/
    /*Font sizes*/
    --fs-h1: 1.5rem;
    --fs-texts: 1.25rem;
    --fs-about: 1.125rem;
    --fs-min: 1rem;
    --fs-xs: .8rem;

    /*Colors*/
    --c-primary: #FF75AC;
    --c-secondary: #FF002C;
    --c-white: #ffffff;
    --c-black: #000000;
    --c-grey: #727272;

    /*Variables de espaciados*/
    --p-simple: 2rem;
    --p-double: 4rem;
}

html{
    scroll-behavior: smooth;
}

body{
    font-family: "Josefin Sans", sans-serif;
}

/************************************************************
    Estilos relativos al header de la web
*************************************************************/

.Header{
    width: 100%;
    max-width: 2000px;
    margin: auto;
}

.Header-wrapper{
    width: 100%;
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: center;
    color: var(--c-black);
    z-index: 1;
}

.Header-wrapper.Home{
    color: var(--c-white);
}

.Header-name{
    padding: var(--p-simple) 0 var(--p-simple) var(--p-double);
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    align-items: center;
    gap: .25rem;
}

.Header-hamburger{
    display: none ;
}

.Hamburguer-icon{
    width: 2.5rem;
    fill: var(--c-black);
    cursor: pointer;
}

.Hamburguer-icon.Home{
    fill: var(--c-white);
}

.Header-menu{
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
}

.Menu-ul{
    width: 100%;
    padding: var(--p-simple) var(--p-double) var(--p-simple) 0;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-end;
    align-items: center;
    gap: 2.8125rem;
}

.Menu-li,
.Menu-li--home{
    font-size: var(--fs-min);
    transition: color 0.25s ease-in-out;    
}

.Menu-li{
    color: var(--c-black);  
}

.Menu-li--home{
    color: var(--c-white);  
}

.Menu-li:hover{
    color: var(--c-primary);  
}

.Menu-li--home:hover{
    color: var(--c-primary);
}

.Menu-li:active{
    color: var(--c-secondary);
}

.Menu-li--home:active{
    color: var(--c-white);
}

/************************************************************
    Estilos relativos a la contenedora principal de las páginas
*************************************************************/

.Main{
    width: 100%;
    max-width: 2000px;
    margin: auto;
    min-height: 65vh;
    padding: var(--p-simple) var(--p-double);
    transition: animation 0.5s ease-in-out;
    animation: navigate 1s;
}

/************************************************************
    Estilos relativos a la marquesina con los textos de proyectos
*************************************************************/

.Marquee{
    width: 100%;
    height: 6.25rem;
    overflow: hidden;
    position: fixed;
    bottom: 0;
    background-color: var(--c-white);
}

.Marquee.About{
    position: fixed;
    bottom: 0;
}

.Marquee-slide{
    width: 200%;
    margin: 2.5rem 0;
    display: grid;
    grid-template-columns: repeat(22 , 1fr);
    animation: slide 45s linear infinite;
    -webkit-animation: slide 45s linear infinite;
}

.Marquee-text{
    width: 25rem;
    padding: 0;
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
    border-right: .125rem solid var(--c-black);
}

.Marquee-a{
    width: 100%;
    font-size: var(--fs-texts);
    text-align: center;
    transition: color 0.25s ease-in-out;
}

.Marquee-a:hover{
    color: var(--c-primary);
}

.Marquee-a:active{
    color: var(--c-secondary);
}

/************************************************************
    Estilo para ocultar el div con los iconos svg para insertarlos con la etiqueta symbol
*************************************************************/

.Icons{
    display: none;
}

/*
    Animación para la transición entre páginas
*/

@keyframes navigate{
    from{
        opacity: 0;
    }
    to{
        opacity: 1;
    }
}

/*
    Animación de la marquesina
*/

@keyframes slide{
    from{
        transform: translateX(0rem);
    }
    to{
        transform: translateX(-250rem);
    }
}


/************************************************************
   Media Queries globales
*************************************************************/
@media (min-width: 2000px){
    .Marquee-slide{
        max-width: 200%;
    }
}

@media (max-width: 950px){
    .Main{
        margin: 6.5rem 0 0;
    }

    .Header-wrapper{
        flex-flow: row wrap;
        position: fixed;
        top: 0;
        left: 0;
        background-color: var(--c-white);
    }
    
    .Header-wrapper.Home{
        background-color: var(--c-black);
    }

    .Header-hamburger{
        display: flex;
        padding: var(--p-simple) var(--p-double) var(--p-simple) 0;
    }

    .Header-nav{
        width: 100%;
        position: relative;
    }

    .Header-menu{
        width: 100%;
        height: 0;
        opacity: 0;
        pointer-events: none;
        transition: all 0.5s ease-in-out;
        position: absolute;
        top: 0;
        left: 0;
        display: flex;
        flex-flow: row nowrap;
        justify-content: center;
        align-items: center;
        background-color: var(--c-white);
        overflow: hidden;
    }

    .Pink{
        background-color: var(--c-black);
    }

    .Header-menu.isActive{
        width: 100%;
        height: calc( 100vh - 104px );
        opacity: 1;
        pointer-events: auto;
        z-index: 2;
    }
    
    .Menu-ul{
        width: 100%;
        padding: var(--p-simple) var(--p-double);
        display: flex;
        flex-flow: column nowrap;
        justify-content: flex-start;
        align-items: flex-end;
    }

    .Menu-li,
    .Menu-li--home{
        font-size: calc(var(--fs-texts) * 2 );
    }

    .Marquee{
        position: relative;
    }

    .Marquee-slide{
        animation: slide 35s linear infinite;
        -webkit-animation: slide 35s linear infinite;
    }
}

@media (max-width: 500px){
    .Header-name{
        padding: calc(var(--p-double) / 3.20) 0 calc(var(--p-double) / 3.20) var(--p-simple);
    }
    
    .Header-hamburger {
        padding: calc(var(--p-double) / 3.20) var(--p-simple) calc(var(--p-double) / 3.20) 0;
    }

    .Header-name{
        width: 70%;
    }

    .Header-menu.isActive{
        height: calc(100vh - 80px);
    }

    .Main{
        margin: 5rem 0 0;
    }

    .Main-content{
        padding: calc(var(--p-simple) / 2) calc(var(--p-double) / 1.33);
    }

    .Marquee-slide{
        animation: slide 30s linear infinite;
        -webkit-animation: slide 30s linear infinite;
    }
}