/* SE IMPORTAN LAS FUENTES QUE ESTÁN GUARDADAS EN LA CARPERA FONTS*/

@font-face {
    font-family: 'Anybody';
    src: url('../fonts/Anybody/Anybody-VariableFont_wdth\,wght.ttf') format('truetype');
}

@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/Montserrat/Montserrat-VariableFont_wght.ttf') format('truetype');
}



/* PROPIEDADES GENERALES */

body{
    background-color: #F5F3EF;
    display: flex;
    flex-direction: column;
    height: 100vh;
    cursor: none; /* se oculta el cursor porque queremos que sea personalizado */
    scroll-behavior: smooth;  /* de esta manera se hará un scroll suave*/
}

body a{
    cursor: none; /* como en los enlaces aparece otro cursor, ha tenido que ocultarse también*/
}


/* CURSOR*/

.cursor{
    position: fixed;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: #fff;
    mix-blend-mode: difference; /* de esta manera se verá en negativo al pasar el cursor*/
    z-index: 9999;
    pointer-events:none;
}

/*  se ha agregado una clase .bigger que hace que el cursor sea más grande, esta clase será llamada desde js al pasar el ratón por encima de enlaces*/

.cursor.bigger {
    width: 35px;
    height: 35px;
}

@media (max-width: 500px) {
    .cursor{
        display: none !important; /*al haber creado un cursor personalizado no se mantiene las funcionalidades preestablecidas como que desaparezca en tablet/móvil por lo que se le ha dado la orden de que para dimensiones pequeñas desaparezca*/
    }
}


/* EQUIS */

#closeMenu img{
    height: 24px;
}

#closeMenu{
    margin-right: 10%;
    display: flex;
    justify-content: end; /* se alinea al final*/
    margin-top: 60px;
}


/********* MEDIA QUERIES DEL ICONO DEL MENU ***********/

@media (max-width: 500px) {
    #closeMenu{
        margin-right: 30px;}
}



/* MENU */

nav{
    margin: 0 200px;
    display: flex;
    height: 100%;
    align-items: center;
    justify-content: space-between; /* se separan situando la primera y la última en cada extremo */
}

nav a{
    font-family: 'Anybody', sans-serif;
    font-weight: 700;
    text-decoration: none;
    color: black;
    font-size: 5vw; /* se utiliza la unidad vw para que cambie en función del tamaño de la ventana */
}


/*Con la pseudo clase after se crea el subrayado con una transición, pero se deja el width a 0 para luego activarlo en el hover dándole width 100%*/
nav a::after { 
    content: "";
    display: block;
    width: 0;
    height: 10px;
    background-color: #EC5564;
    transition: width 0.3s ease;
}
  
nav a:hover::after {
    width: 100%;
}


/********* MEDIA QUERIES DEL MENU ***********/

@media (max-width: 1600px) {
    nav a{
        font-size: 4.5vw; /* se ha disminuido el tamaño para que siga cabiendo en una línea */
    }
}

@media (max-width: 1300px) {
    nav{
        display: flex;
        flex-direction: column;
        height: 100%;
        align-items: center;
        justify-content: center;
    }

    nav a{
        font-size: 7vw; /* se utiliza la unidad vw para que cambie en función del tamaño de la ventana */
    }
}

@media (max-width: 900px) {
    nav a{
        font-size: 63px; /* se ha disminuido el tamaño para que siga cabiendo en una línea */
    }
}




/* FOOTER INDEX */

.footerStart{
    display: flex;
    justify-content: end;
    margin-bottom: 40px;
}

/* RRSS */

.rrss{
    position: absolute; /*se le ha dado posición absoluta para poder centrarlo sin que dependa de nadie*/
    display: flex;
    left: 50%;
    align-items: center;
    justify-content: center;
    transform: translateX(-50%);
    gap: 15%;
}


/* HORA */

.clock{
    display: flex;
    justify-content: end;
    margin-top: -15px; /* se le ha dado un margen negativo para alinearlo con los iconos de las rrss*/
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    font-size: 24px;
}


/********* MEDIA QUERIES DEL FOOTER INDEX ***********/

@media (max-width: 900px) {
    .footerStart{
        flex-direction: column;
        justify-content: center;
        align-items: center;
        margin-bottom: 10px;
    }

    .rrss{
        position: relative;
        
        left: 0;
        transform: none;
    }

    .clock{
        margin-top: 20px;
        justify-content: center;
    }
}


/******************** AQUÍ EMPIEZA EL CSS PARA LA HOME ***********************/

body{
    margin: 0;
}


/* HAMBURGUESA */

#openMenu img{
    height: 24px;
}

#openMenu{
    position: absolute;
    top: 60px;
    right: 100px;
    cursor: pointer; /* se le dice al cursor que cambie a pointer porque al no ser un botón ni un enlace hay que facilitarle al usuario saber que es clickable*/
}

@media (max-width: 800px) {
    #openMenu{
        right: 50px;
    }
}


/* HEADER */

header{
    width: 100%;
    display: flex;
    flex-direction: column;
}


.hero img{
    height: 700px; /* se le da una altura fija porque no se quiere que al hacer más pequeñá la pantalla esta disminuya*/
    width: 100%;
    object-fit: cover; /* se quiere que la imagen ocupe el espacio que tiene sin deformarse*/
    object-position: center center; /* al estrecharla se seguirá manteniendo el contenido relevante en el centro*/
}

@media (max-width: 1400px) {
    .hero img{
        height: 510px;
    }
}

@media (max-width: 800px) {
    .hero img{
        height: 400px;
    }
}

@media (max-width: 400px) {
    .hero img{
        height: 300px;
    }
}



/* SECCIONES*/


section{
    display: flex;
    flex-direction: column;
    margin: 0 200px; /* se le da un margen a izquierda y derecha a todas las secciones */
}

.text{
    margin: 100px 0;
    display: flex;
}

.title, .content{
    width: 50%; /* se le da width 50% para que haya dos columnas que ocupan la mitad */
}

.content{
    margin-top: 25px; /* se le da margen superior para que quede alineado con el h1*/
}

h1{
    font-family: 'Anybody', sans-serif;
    font-size: 64px;
    margin: 0; /* se le asigna un margen 0 para eliminar los que pudiera tener por defecto */
    margin-top: 10px;
}

h2{
    font-family: 'Montserrat', sans-serif;
    font-size: 28px;
    margin: 0;
}

p{
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
}


@media (max-width: 1250px) {

    section{
        margin: 0 180px; /* se le da un margen a izquierda y derecha a todas las secciones */
    }

    .text{
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .title, .content{
        width: 95%;
    }

    h1{
        font-size: 54px;
    }
    
    h2{
        font-size: 22px;
    }
    
    p{
        font-size: 16px;
    }
}

@media (max-width: 800px) {

    section{
        margin: 0 100px; /* se le da un margen a izquierda y derecha a todas las secciones */
    }
    h1{
        font-size: 54px;
    }
    
    h2{
        font-size: 22px;
    }
    
    p{
        font-size: 16px;
    }
}

@media (max-width: 510px) {

    section{
        margin: 0 40px; /* se le da un margen a izquierda y derecha a todas las secciones */
    }

    h1{
        font-size: 48px;
    }
    
    h2{
        font-size: 18px;
    }
    
    p{
        font-size: 13px;
    }
}


/* SECTION ABOUT ME */

.categories{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 40px 7%;
}

.category{
    box-sizing: border-box; /* se le asigna border-box para que el padding no sea un extra, sino hacía dentro del borde */
    background-color: white;
    height: 210px;
    width: 210px;
    display: flex;
    flex-direction: column;
    align-items:first baseline; /* de esta manera se alinea con el extremo inicial del contenido*/
    justify-content: center;
    padding-left: 22px;
    gap: 40px;
}

.category img{
    height: 50px;
}

h3{
    font-family: 'Anybody', sans-serif;
    font-size: 22px;
    font-weight: 900;
    margin: 0;
}

@media (max-width: 900px) {

    .categories{
        margin: 0 20px;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 30px 8%;
    }

    .category{
        height: 170px;
        width: 170px;
        padding-left: 22px;
        gap: 30px;
    }
    
    .category img{
        height: 40px;
    }
    
    h3{
        font-family: 'Anybody', sans-serif;
        font-size: 16px;
        font-weight: 900;
        margin: 0;
    }
    
}



/* SECCIÓN NÚMEROS */

.numbers{
    height: 180px;
    background-color: #EC5564;
    margin: 140px 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 0 200px;
}

.number{
    display: flex;
    gap: 10px;
}

.num{
    font-family: 'Anybody', sans-serif;
    font-size: 58px;
    font-weight: 900;
}

.info{
    font-family: 'Montserrat', sans-serif;
    font-size: 20px;
    font-weight: 600;
    margin-top: 2px;
}


@media (max-width: 1400px) {
    .num{
        font-size: 45px;
    }
    
    .info{
        font-size: 13px !important; /* como el navegador a veces da error al leerlo se le dice important para que lo tenga en cuenta*/
    }
}

@media (max-width: 1150px) {
    .numbers{
        height: fit-content; /* se le ha dado fit-content para que se ajuste al contenido */
        flex-wrap: wrap;
        justify-content: center;
        gap:  10px 30px;
        padding: 50px 200px;
    }

    .num{
        font-size: 45px;
    }
    
    .info{
        font-size: 13px !important; /* como el navegador a veces da error al leerlo se le dice important para que lo tenga en cuenta*/
    }
}

@media (max-width: 800px) {
    .numbers{
        padding: 50px 100px;
    }
}


/* SECTION PROJECTS */

.projectsText{
    display: flex;
    justify-content: space-between;
}

.seeMore img{
    width: 74px;
}


/* CARRUSEL PROJECTS */

  
.sliderContainer{
    margin-top: 60px;
    position: relative;
    display: flex;
    width: 100%;
    height: 300px;
    overflow-x: hidden;
}

.slides{
    height: 100%;
    position: absolute;
    white-space: nowrap; /* La propiedad "white-space" establece cómo se manejará el espacio en blanco dentro del elemento."nowrap" indica todo el contenido se mostrará en una sola línea.*/
    display: flex;
    z-index: 10;
    overflow-x: auto; /* "overflow-x" establece cómo se manejará el desbordamiento horizontal dentro del elemento. En este caso, "auto" indica que el desbordamiento se mostrará como una barra de desplazamiento horizontal si es necesario. */
}

  
.sliderContainer img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Estilo de la barra de scroll, se ha aplicado únicamente al scroll de la class slider */
.slides::-webkit-scrollbar {
    height: 8px; /* altura de la barra de scroll */
}
  
/* Estilo de la barra de scroll al estar desplazándose */
.slides::-webkit-scrollbar-thumb{
    background-color: #f0f0f0;
    background-color: #EC5564;
    border-radius: 10px;
}
  
/* Estilo del área en la que se desplaza la barra de scroll */
.slides::-webkit-scrollbar-track{
    background-color: #f2f2f2;
    border-radius: 10px;
    box-shadow: inset 0 0 5px grey; /* sombra del área de la barra de scroll para dar sensación de 3d*/
}

/* se ha hecho lo mismo pero para el navegador firefox */
.slides::-moz-scrollbar-track-horizontal {
    background-color: #f0f0f0;
}

.slides::-moz-scrollbar-thumb-horizontal {/* Cambiar el tamaño de la barra */
  border-radius: 5px;
  background-color: #EC5564;
  width: 50px;
}
  


/* SECTION CONTACT ME*/

.contactMe{
    margin-top: 140px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    height: 340px;
}

.contactMe img{
    position: absolute;
    z-index: -10;
    margin-left: -200px;
    width: 100%;
}

.contactMe h1, .contactMe h2{
    color: white;
}

.contactMe a{
    color: white;
    border: 3px solid white;
    font-family: 'Montserrat', sans-serif;
    font-size: 20px;
    font-weight: 900;
    height: 46px;
    width: 160px;
    text-align: center;
    line-height: 46px; /* dándole el mismo line-height que la altura se alinea verticalmente el texto en el centro*/
    text-decoration: none;
}

@media (max-width: 1250px) {

    .contactMe a{
        font-size: 16px;
    }

    .contactMe img{
        margin-left: -180px;
        height: 200px;
        object-fit: cover;
    }
}

@media (max-width: 800px) {

    .contactMe img{
        margin-left: -100px;
    }
}

@media (max-width: 510px) {

    .contactMe img{
        margin-left: -40px;
    }
}


/* FOOTER */

.footerResponsive{
    display: none; /* se oculta el footerResponsive */
}

footer{
    margin: 0;
    margin-top: 40px;
    width: 100%;
    background-color: #EC5564;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.contentFooter{
    display: flex;
    width: 100%;
    margin-top: 120px;
    gap: 120px;
    justify-content: center;
}

.contentFooter a{
    font-family: 'Montserrat', sans-serif;
    display: flex;
    flex-direction: column;
    font-size: 20px;
    font-weight: 500;
    text-decoration: none;
    color: black;
}

.separatorHorizontal{
    border-top: 2px solid black; /* línea horizontal de 2px de grosor y color negro */
    padding-top: 125px;
    width: 20%;
    text-align: center;
}

.middle{
    display: flex;
    flex-direction: column;
    align-items: center;
}

.name{
    font-family: 'Anybody', sans-serif;
    font-size: 40px;
    font-weight: 700;
    margin-bottom: 10px;
}

.surname{
    font-family: 'Montserrat', sans-serif;
    font-size: 18px;
    font-weight: 500;
    margin-bottom: 60px;
}

.separatorVertical{
    border-left: 2px solid #000; /* línea vertical de 2px de grosor y color negro */
    height: 40px;
    margin: 30px 0;
}

.rrssFooter{
    display: flex;
    gap: 48px;
}

.middle p{
    font-family: 'Montserrat', sans-serif;
    font-size: 20px;
    font-weight: 500;
}

.copyright{
    margin: 50px 0 30px;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 500;
}


@media (max-width: 1200px) {
    footer{
        display: none;
    }

    .footerResponsive{
        margin: 0;
        margin-top: 40px;
        width: 100%;
        background-color: #EC5564;
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    
    .contentFooterResponsive{
        display: flex;
        flex-direction: column;
        width: 100%;
        margin-top: 120px;
        align-items: center;
    }
    
    .contentFooterResponsive a{
        font-family: 'Montserrat', sans-serif;
        display: flex;
        flex-direction: column;
        font-size: 18px;
        font-weight: 500;
        text-decoration: none;
        color: black;
    }
    
    .upResponsive{
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    
    .downResponsive{
        display: flex;
        width: 50%;
        justify-content: start;
        margin-bottom: 40px;
        gap: 100px;
    }
    
    .separatorHorizontal{
        padding-top: 20px;
        width: 100%;
    }
    
    .separatorVertical{
        margin: 30px 0;
    }
    
    .rrssFooter{
        gap: 30px;
    }
    
    .moreInfo{
        display: flex;
        flex-direction: column;
        align-items: center;
    }
}

@media (max-width: 900px) {
    footer{
        display: none;
    }

    .footerResponsive{
        margin: 0;
        margin-top: 40px;
        width: 100%;
        background-color: #EC5564;
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    
    .contentFooterResponsive{
        display: flex;
        flex-direction: column;
        width: 100%;
        margin-top: 120px;
        align-items: center;
    }
    
    .contentFooterResponsive a{
        font-family: 'Montserrat', sans-serif;
        display: flex;
        flex-direction: column;
        font-size: 16px;
        font-weight: 500;
        text-decoration: none;
        color: black;
    }
    
    .upResponsive{
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    
    .downResponsive{
        display: flex;
        flex-direction: column;
        width: 40%;
        justify-content: start;
        margin-bottom: 40px;
        gap: 30px;
    }
    
    .separatorHorizontal{
        padding-top: 20px;
        width: 100%;
    }
    
    .rrssFooter{
        gap: 30px;
    }
    
    .moreInfo{
        display: flex;
        flex-direction: column;
        align-items: center;
    }
}


/* BOTÓN GO TOP QUE APARECE ÚNICAMENTE AL HACER SCROLL HACIA ABAJO */

#goTop {
    display: flex;
    text-align: center;
    justify-content: center;
    position: fixed;
    height: 30px;
    width: 30px;
    background-color: #fff;
    bottom: 20px;
    right: 30px;
    z-index: 99;
    font-size: 18px;
    color: white;
    padding: 15px;
    border-radius: 50%;
}

  
  

/******************** AQUÍ EMPIEZA EL CSS PARA ME ***********************/

.titleCabecera{
    position: absolute;
    top: 450px;
    left: 200px;
}

@media (max-width: 1250px) {
    .titleCabecera{
        width: 50% !important;
    }
}


.presentation{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    margin: 100px 260px 0;
}

.contentPresentation{
    width: 45%;
}


@media (max-width: 1400px) {
    .titleCabecera{
        top: 310px;
    }
}

@media (max-width: 1250px) {
    .titleCabecera{
        left: 180px;
    }
    .presentation{
        display: flex;
        flex-direction: column;
        margin: 100px 200px 0;
    }

    .contentPresentation{
        width: 90%;
    }

    .content{
        margin-top: 0;
    }
}

@media (max-width: 800px) {
    .titleCabecera{
        top: 230px;
        left: 100px;
    }

    .presentation{
        display: flex;
        flex-direction: column;
        margin: 100px 110px 0;
    }
}

@media (max-width: 510px) {
    .titleCabecera{
        left: 40px;
    }

    .presentation{
        display: flex;
        flex-direction: column;
        margin: 100px 60px 0;
    }
}

/* SECTION FRASE DISEÑO */

.fraseDiseño{
    background-color: #EC5564;
    margin: 140px 0 40px;
    display: flex;
    flex-direction: row;
    align-items:first baseline;
    justify-content: space-between;
    padding: 70px 200px;
}

.frase{
    font-family: 'Anybody', sans-serif;
    font-size: 30px;
    font-weight: 700;
    width: 70%;
}

.autor{
    font-family: 'Montserrat', sans-serif;
    font-size: 14px;
    font-weight: 500;
    text-transform: uppercase; /* Como se me ha olvidado ponerlo en mayúsculas en el html le doy la propiedad desde CSS para no tener que ir y cambiarlo*/
}


@media (max-width: 1000px) {
    .fraseDiseño{
        display: flex;
        flex-direction: column;
        padding: 70px 180px;
    }

    .frase{
        width: 100%;
        font-size: 26px;
    }
}

@media (max-width: 800px) {
    .fraseDiseño{
        display: flex;
        flex-direction: column;  
        padding: 70px 100px;
    }

    .frase{
        width: 100%;
        font-size: 26px;
    }
}

@media (max-width: 510px) {
    .fraseDiseño{
        display: flex;
        flex-direction: column;  
        padding: 70px 40px;
    }

    .frase{
        width: 100%;
        font-size: 22px;
    }
}


/* SECTION FORMATION */

.formationContent{
    display: flex;
    justify-content: space-between;
}

.formationContent img{
    height: 100%;
    object-fit: cover;
}

.studiesGrid{
    width: 50%;
    display: grid;
    grid-template-columns: 1fr 1fr; /* Establece dos columnas iguales */
    grid-template-rows: 1fr 1fr; /* Establece dos filas iguales */
    row-gap: 85px; /* como quiero que el gap de la fila sea diferente al de la columna se los doy por separado*/
    column-gap: 40px;
}

.year{
    font-family: 'Anybody', sans-serif;
    font-size: 54px;
    font-weight: 700;
    color: #EC5564;
    margin: 0;
}

.place{
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 500;
}

.study .title{ /* al tener una class title a la que ya se le ha dado un estilo previamente, se incluye en la propiedad también la clase anterior para ser exacto*/
    font-family: 'Montserrat', sans-serif;
    font-size: 22px;
    font-weight: 700;
    width: 100%;
}

.extras{
    margin-top: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.extra{
    font-family: 'Montserrat', sans-serif;
    font-size: 13px;
    font-weight: 500;
    margin: 0;
}

.extra span{ /* gracias a la etiqueta span que se le ha puesto en el html, permite cambiar el estilo de partes seleccionadas del mismo texto*/
    font-weight: 700;
}

@media (max-width: 1250px) {
    .formationContent img{
        display: none;  /*para tamañanos más pequeños se elimina la foto ya que su función es únicamente decorativa*/
    }

    .studiesGrid{
        width: 100%;
        display: grid;
        grid-template-columns: repeat(4 , 1fr); /* Establece cuatro columnas iguales */
        grid-template-rows: 1fr; /* Establece una única fila */
        column-gap: 30px;
    }

    .year{
        font-size: 46px;
    }
    
    .place{
        font-size: 13px;
    }
    
    .study .title{ /* al tener una class title a la que ya se le ha dado un estilo previamente, se incluye en la propiedad también la clase anterior para ser exacto*/
        font-size: 17px;
    }
    
    .extra{
        font-size: 13px;
    }
}

@media (max-width: 1040px) {
    .formationContent img{
        display: none;  /*para tamañanos más pequeños se elimina la foto ya que su función es únicamente decorativa*/
    }

    .studiesGrid{
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2 , 1fr); /* Establece dos columnas iguales */
        grid-template-rows: repeat(2 , 1fr); /* Establece dos filas iguales */
        column-gap: 40px;
        row-gap: 30px;
    }
}

@media (max-width: 600px) {
    .formationContent img{
        display: none;  /*para tamañanos más pequeños se elimina la foto ya que su función es únicamente decorativa*/
    }

    .studiesGrid{
        width: 100%;
        display: grid;
        grid-template-columns: 1fr; /* Establece una únca iguales */
        grid-template-rows: repeat(4 , 1fr); /* Establece cuatro filas iguales */
        row-gap: 0px;
    }

    p.title{
        margin-bottom: 0;
    }
}


/* SECTION EXPERIENCE */

.experienceGrid{
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr; /* Establece dos columnas iguales */
    grid-template-rows: 1fr 1fr; /* Establece dos filas iguales */
    row-gap: 20px; /* solo se le quiere asignar gap a las filas */
    font-family: 'Montserrat', sans-serif; /* como todo tiene la misma fuente y tamaño se le asigna al grid directamente*/
    font-size: 20px;
}

.supExperience{
    display: flex;
    justify-content: space-between;
    font-weight: 900;
    margin-bottom: 10px;
}

.supLeft{ /* como solo se le quiere dar margen a las columnas de la izquierda se utiliza la clase supLeft para ello */
    width: 90%;
}

.when{
    color: #EC5564;
}

.inf{ /* como p ya tiene estilos asignados hay que recurrir a la clase inf para asignarle los que corresponden */
    font-size: 20px;
    font-weight: 500;
}

.infLeft{
    width: 90%;
}


@media (max-width: 1250px) {
    .supExperience{
        display: flex;
        flex-direction: column;
    }
}

@media (max-width: 900px) {
    .supExperience{
        width: 90%;
        display: flex;
        flex-direction: row;
        font-size: 18px;
    }
    
    .experienceGrid{
        width: 100%;
        display: grid;
        grid-template-columns: 1fr; /* Establece una única columnna */
        grid-template-rows: repeat (4 , 1fr); /* Establece cuatro filas iguales */
    }

    .inf{ /* como p ya tiene estilos asignados hay que recurrir a la clase inf para asignarle los que corresponden */
        font-size: 18px;
        font-weight: 500;
    }
}

@media (max-width: 600px) {
    .supExperience{
        display: flex;
        flex-direction: column;
    }
    
    .experienceGrid{
        width: 100%;
        display: grid;
        grid-template-columns: 1fr; /* Establece una única columnna */
        grid-template-rows: repeat (4 , 1fr); /* Establece cuatro filas iguales */
    }

    .inf{ /* como p ya tiene estilos asignados hay que recurrir a la clase inf para asignarle los que corresponden */
        font-size: 16px;
        font-weight: 500;
    }
}


/* SECCIÓN DO SOMETHING GREAT */

.photo{
    margin: 0;
    height: 510px;
    margin-top: 140px;
}

.photo img{
    height: 100%;
    width: auto;
    object-fit: cover;
    object-position: center center;
}


@media (max-width: 1250px) {
    .photo{
        margin: 0;
        height: 400px;
        margin-top: 140px;
    }
    
    .photo img{
        height: 100%;
        width: auto;
        object-fit: cover;
        object-position: center center;
    }
}

@media (max-width: 900px) {
    .photo{
        height: fit-content;
        margin: 0;
        margin-top: 120px;
    }
    
    .photo img{
        height: auto;
        width: 100%;
        object-fit: cover;
        object-position: center center;
    }
}

@media (max-width: 600px) {
    .photo{
        height: fit-content;
        margin: 0;
        margin-top: 80px;
    }
    
    .photo img{
        height: 180px;
        width: 100%;
        object-fit: cover;
        object-position: center center;
    }

}

/* SECITON MY SKILLS*/

.skills{
    display: flex;
    flex-direction: row;
}

.textSkills{
    display: flex;
    flex-direction: column;
    width: 50%;
}

.contentSkills{
    width: 85%;
}

.program{
    display: flex;
    justify-content: space-between;
    font-family: 'Montserrat', sans-serif;
    font-size: 24px;
    font-weight: 700;
}

.programName{
    width: 40%;
}

.programContent{
    width: 60%;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.progress{
    width: 180px;
    height: 12px;
    background-color: #cbcbcb;
}
  
.progressBarAdobe{
    width: 85%;
    height: 100%;
    background-color: #EC5564;
}

.progressBarFigma{
    width: 90%;
    height: 100%;
    background-color: #EC5564;
} 

.progressBarWP{
    width: 80%;
    height: 100%;
    background-color: #EC5564;
} 

.categoriesSkills{
    margin: 140px 0;
    width: 50%;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 40px;
}

.categorySkills{
    box-sizing: border-box; /* se le asigna border-box para que el padding no sea un extra, sino hacía dentro del borde */
    background-color: white;
    height: 180px;
    width: 180px;
    display: flex;
    flex-direction: column;
    align-items:first baseline; /* de esta manera se alinea con el extremo inicial del contenido*/
    justify-content: center;
    padding-left: 22px;
    gap: 40px;
}

.categorySkills h3{
    font-size: 18px;
}


@media (max-width: 1500px){
    .skills{
        display: flex;
        flex-direction: column;
    }
    
    .textSkills{
        display: flex;
        flex-direction: row;
        width: 100%;
    }

    .contentSkills{
        width: 100%;
    }

    .categoriesSkills{
        margin: 0;
        width: 100%;
        flex-wrap: wrap;
        gap: 30px;
    }
}

@media (max-width: 1150px){
    .skills{
        display: flex;
        flex-direction: column;
    }
    
    .textSkills{
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    .categoriesSkills{
        margin: 0;
        width: 100%;
        flex-wrap: wrap;
        gap: 30px;
    }

    .programContent{
        justify-content: end;
        gap: 5%;
    }   
}

@media (max-width: 660px){
    .skills{
        display: flex;
        flex-direction: column;
    }
    
    .textSkills{
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    .categoriesSkills{
        margin: 0;
        width: 100%;
        flex-wrap: wrap;
        gap: 30px;
    }

    .programContent{
        justify-content: end;
        gap: 10%;
    }
    .program{
        display: flex;
        flex-direction: column;
    }
}

/* SECTION BANNER CV*/

.descargarCV{
    margin-top: 140px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    height: 340px;
}

.descargarCV img{
    position: absolute;
    z-index: -10;
    margin-left: -200px;
    width: 100%;
}

.descargarCV a{
    color: black;
    border: 3px solid black;
    font-family: 'Montserrat', sans-serif;
    font-size: 20px;
    font-weight: 900;
    height: 46px;
    width: 160px;
    text-align: center;
    line-height: 46px; /* dándole el mismo line-height que la altura se alinea verticalmente el texto en el centro*/
    text-decoration: none;
}


@media (max-width: 1250px){

    .descargarCV a{
        font-size: 16px;
    }

    .descargarCV img{
        margin-left: -180px;
        height: 200px;
        object-fit: cover;
    }
}

@media (max-width: 800px){

    .descargarCV img{
        margin-left: -100px;
    }
}

@media (max-width: 510px){

    .descargarCV img{
        margin-left: -40px;
    }
}




/******************** AQUÍ EMPIEZA EL CSS PARA PROJECTS ***********************/


.titleProjects{
    color: white;
}


/* SECTIONS TABS PROJECTS */

.containerProjects{
    margin-top: 120px;
    overflow: hidden;
    align-items: center;
    justify-content: center;
    display: block;
}
  
.tab{
    overflow: hidden;
    align-items: center;
    text-align: center;
}
  
.tab button{
    font-family: 'Montserrat', sans-serif;
    font-size:  26px;
    font-weight: 500;
    cursor: none;
    padding: 14px 16px;
    transition: 0.3s;
    border: none;
    background-color: transparent;
    color: #000;
}

.tab button:hover{
    color: #EC5564;
}

.tab button.active{
    color:#EC5564;
    font-weight: 700;
}

.tabContent{
    display: none;
    padding: 60px 0;
}

.tabContentActive{
    display: block;
}
  


  
/* GALERIA*/
  
.galeria{
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 25px;
}
   
.proyecto{
    max-width: 300px;
    width: 30%;
    min-width: 200px;
    aspect-ratio: 1; /* de esta manera mantiene la proporción*/
    position: relative;
    overflow: hidden;
}

.proyecto img{
    height: 100%;
}
  
.proyecto:hover .overlay{
    opacity: 1;
    transform: scale(1);
}
  
.overlay{
    position: absolute;
    background-color: rgba(0, 0, 0, 0.85);
    width: 100%;
    height: 100%;
    top: 0;
    transform: scale(1.3);
    opacity: 0;
    transition: transform .4s ease 0s;
}
  
.overlay h2{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-weight: bold;
    font-size: 2em;
    color: #fff;
    font-family: Sans-serif;
}
  
.proyecto img{
    transition: transform .8s ease;
    object-fit: cover;
}
  
.proyecto:hover img{
    transform: scale(1.1); /* al pasar el ratón por encima la imagen crece ligeramente, como un zoom*/
}
  

/* POP UP PROJECT */

#popUpProjectUne, #popUpProjectLola, #popUpProjectGaman, #popUpProjectMuroexe, #popUpProjectPillame, #popUpProjectSategi, #popUpProjectRialto{
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 100;
}

#closePopUp img{
    height: 24px;
}

#closePopUp{
    margin-right: 40px;
    margin-top: 40px;
}

.popUp{
    height: 600px;
    width: 1000px;
    display: flex;
    flex-direction: column;
    align-items: end;
    justify-content: top;
    background-color: #F5F3EF;
}

.popUpContent{
    margin-top: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gallery{
    width: 50%;
    display: flex;
    align-items: center;
    justify-content: end;
}
  
.mainImageUne, .mainImageLola, .mainImageGaman, .mainImageMuroexe, .mainImagePillame, .mainImageSategi, .mainImageRialto{
    width: 400px;
    height: 400px;
    object-fit: cover;
}
  
.miniatures{
    height: 400px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
  
.miniatureUne, .miniatureLola, .miniatureGaman, .miniatureMuroexe, .miniaturePillame, .miniatureSategi, .miniatureRialto{
    width: 80px;
    height: 80px;
    margin: 0 4px 0 10px;
    opacity: 0.5;
    transition: opacity 0.3s ease-in-out;
}
  
.miniatureUne:hover, .miniatureLola:hover, .miniatureGaman:hover, .miniatureMuroexe:hover, .miniaturePillame:hover, .miniatureSategi:hover, .miniatureRialto:hover{
    opacity: 1; /* al pasar el ratón por encima la opacidad cambia a 1, volviéndose completamente opaco*/
}
  
.active{
    opacity: 1; /* se ha creado una clase active que se utilizará desde JS para darle opacidad 1 al elemento activo */
}

.popUpExplication{
    display: flex;
    flex-direction: column;
    width: 40%;
    justify-content: left;
}

.popUpText{
    margin-left: 40px;
    display: flex;
    flex-direction: column;
}

.popUpText .title, .popUpText .content{
    width: 90%;
}

.popUpText .content{
    margin-top: 25px;
}

#overlay{
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 98;
}


@media (max-width: 1040px){
    .popUp{
        height: 800px;
        width: 500px;
    }
    
    .popUpContent{
        display: flex;
        flex-direction: column;
    }

    .gallery{
        width: 100%;
        justify-content: center;
        margin-bottom: 10px;
    }

    .popUpExplication{
        width: 100%;
    }

    .mainImageUne, .mainImageLola, .mainImageGaman, .mainImageMuroexe, .mainImagePillame, .mainImageSategi, .mainImageRialto{
        width: 300px;
        height: 300px;
        object-fit: cover;
    }
      
    .miniatures{
        height: 300px;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
      
    .miniatureUne, .miniatureLola, .miniatureGaman, .miniatureMuroexe, .miniaturePillame, .miniatureSategi, .miniatureRialto{
        width: 60px;
        height: 60px;
    }

    .popUpText{
        transform: scale(0.8);
    }
}

@media (max-width: 550px){
    .popUp{
        height: 700px;
        width: 300px;
    }
    
    .popUpContent{
        display: flex;
        flex-direction: column;
        margin-top: 4px;
    }

    .gallery{
        width: 250px;
        flex-direction: column;
        justify-content: center;
        margin-bottom: 10px;
    }

    .popUpExplication{
        width: 100%;
    }

    .mainImageUne, .mainImageLola, .mainImageGaman, .mainImageMuroexe, .mainImagePillame, .mainImageSategi, .mainImageRialto{
        width: 250px;
        height: 200px;
        object-fit: cover;
    }
      
    .miniatures{
        width: 250px;
        height: 50px;
        display: flex;
        flex-direction: row;
        justify-content: space-between;
    }
      
    .miniatureUne, .miniatureLola, .miniatureGaman, .miniatureMuroexe, .miniaturePillame, .miniatureSategi, .miniatureRialto{
        width: 47px;
        height: 47px;
        margin: 0;
        margin-top: 4px;
    }

    .popUpText{
        transform: scale(0.8);
    }
}



/* SECTION DESCARGAR PORTFOLIO */

.descargarPortfolio{
    margin-top: 140px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    height: 340px;
}

.descargarPortfolio img{
    position: absolute;
    z-index: -10;
    margin-left: -200px;
    width: 100%;
}

.descargarPortfolio a{
    color: black;
    border: 3px solid black;
    font-family: 'Montserrat', sans-serif;
    font-size: 20px;
    font-weight: 900;
    height: 46px;
    width: 160px;
    text-align: center;
    line-height: 46px; /* dándole el mismo line-height que la altura se alinea verticalmente el texto en el centro*/
    text-decoration: none;
}

@media (max-width: 1250px){

    .descargarPortfolio a{
        font-size: 16px;
    }

    .descargarPortfolio img{
        margin-left: -180px;
        height: 200px;
        object-fit: cover;
    }
}

@media (max-width: 800px){

    .descargarPortfolio img{
        margin-left: -100px;
    }
}

@media (max-width: 510px){

    .descargarPortfolio img{
        margin-left: 0px;
    }

    .descargarPortfolio{
        margin-top: 140px;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
}





/******************** AQUÍ EMPIEZA EL CSS PARA CONTACT ***********************/

.changeText{
    white-space: nowrap;
    overflow: hidden;
    animation: rewrite 5s linear infinite;
}
  
@keyframes rewrite{ /*mediante los keyframes se hace  ue la palabra vaya apareciendo poco a poco desde cero */
    0%{
        width: 0;
    }
    100%{
        width: 100%;
    }
}       

.containerForm{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: start;
}

form{
    width: 50%;
    display: flex;
    flex-direction: column;
    justify-content: start;
    align-items: start;
    margin-bottom: 100px;
}

form p{
    font-family: 'Anybody', sans-serif;
    font-size: 24px;
    font-weight: 900;
    line-height: 36px;
    margin: 0;
    text-align: justify;
}

input{
    background-color: transparent;
    border: none;
    border-bottom: 1px solid #EC5564;
    width: 300px;
    font-family: 'Montserrat', sans-serif;
    font-size: 18px;
    width: auto;
    min-width: 100px;
}

input:focus{ /* se desactiva el borde que aparece al hacer click en el input para rellenarlo*/
    outline: none;
}
  

/* Para editar el estilo del texto del placeholder del formulario se ha utilizado el selector de pseudo-elemento correspondiente para cada navegador */

/* Selector para navegadores webkit */
::-webkit-input-placeholder{
    color: #EC5564;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 500;
    padding-bottom: 10px;
}

/* Selector para navegadores Mozilla Firefox */
::-moz-placeholder{
    color: #EC5564;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 500;
    padding-bottom: 10px;
}

/* Selector para todos los navegadores */
:-ms-input-placeholder{
    color: #EC5564;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 500;
    padding-bottom: 10px;
}

p.check{
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    font-weight: 500;
}

input[type="checkbox"]{ /* de esta manera afecta únicamente al checkbox de entre todos los inputs */
    width: fit-content;
    min-width: fit-content;
    accent-color: #EC5564; /* cambiar el color al checkbox*/
    margin: 20px 10px 20px 0;
}

input[type="submit"]{  /* de esta manera afecta únicamente al botón de enviar de entre todos los inputs */
    font-family: 'Montserrat', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #000;
    text-transform: uppercase;
    width: fit-content;
    border: 3px solid black;
    padding: 5px 10px;
}


@media (max-width: 1500px){
    form p{
        font-size: 22px;
        text-align: left;
    }
}

@media (max-width: 1250px){
    .containerForm{
        margin-top: -60px;
        padding-left: 20px;
        display: flex;
        flex-direction: column;
    }

    form{
        margin-top: 30px;
        width: 90%;
        display: flex;
        flex-direction: column;
    }

    form p{
        font-size: 22px;
        text-align: left;
    }
}

@media (max-width: 500px){
    .containerForm img{
        width: 100%;
    }

    form p{
        font-size: 18px;
        line-height: 28px;
        text-align: left;
    }

    p.check {
        font-size: 14px;
        line-height: 16px;
        margin-bottom: 10px;
    }
}