* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    
    /******    
    https://www.svgbackgrounds.com/set/free-svg-backgrounds-and-patterns/
    *******/
    background-color: #ffdb67;
    transition: background-color 0.3s ease;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25'%3E%3Cdefs%3E%3ClinearGradient id='a' gradientUnits='userSpaceOnUse' x1='0' x2='0' y1='0' y2='100%25' gradientTransform='rotate(240)'%3E%3Cstop offset='0' stop-color='%23FFDB67'/%3E%3Cstop offset='1' stop-color='%23FFDB67'/%3E%3C/linearGradient%3E%3Cpattern patternUnits='userSpaceOnUse' id='b' width='540' height='450' x='0' y='0' viewBox='0 0 1080 900'%3E%3Cg fill-opacity='0.1'%3E%3Cpolygon fill='%23444' points='90 150 0 300 180 300'/%3E%3Cpolygon points='90 150 180 0 0 0'/%3E%3Cpolygon fill='%23AAA' points='270 150 360 0 180 0'/%3E%3Cpolygon fill='%23DDD' points='450 150 360 300 540 300'/%3E%3Cpolygon fill='%23999' points='450 150 540 0 360 0'/%3E%3Cpolygon points='630 150 540 300 720 300'/%3E%3Cpolygon fill='%23DDD' points='630 150 720 0 540 0'/%3E%3Cpolygon fill='%23444' points='810 150 720 300 900 300'/%3E%3Cpolygon fill='%23FFF' points='810 150 900 0 720 0'/%3E%3Cpolygon fill='%23DDD' points='990 150 900 300 1080 300'/%3E%3Cpolygon fill='%23444' points='990 150 1080 0 900 0'/%3E%3Cpolygon fill='%23DDD' points='90 450 0 600 180 600'/%3E%3Cpolygon points='90 450 180 300 0 300'/%3E%3Cpolygon fill='%23666' points='270 450 180 600 360 600'/%3E%3Cpolygon fill='%23AAA' points='270 450 360 300 180 300'/%3E%3Cpolygon fill='%23DDD' points='450 450 360 600 540 600'/%3E%3Cpolygon fill='%23999' points='450 450 540 300 360 300'/%3E%3Cpolygon fill='%23999' points='630 450 540 600 720 600'/%3E%3Cpolygon fill='%23FFF' points='630 450 720 300 540 300'/%3E%3Cpolygon points='810 450 720 600 900 600'/%3E%3Cpolygon fill='%23DDD' points='810 450 900 300 720 300'/%3E%3Cpolygon fill='%23AAA' points='990 450 900 600 1080 600'/%3E%3Cpolygon fill='%23444' points='990 450 1080 300 900 300'/%3E%3Cpolygon fill='%23222' points='90 750 0 900 180 900'/%3E%3Cpolygon points='270 750 180 900 360 900'/%3E%3Cpolygon fill='%23DDD' points='270 750 360 600 180 600'/%3E%3Cpolygon points='450 750 540 600 360 600'/%3E%3Cpolygon points='630 750 540 900 720 900'/%3E%3Cpolygon fill='%23444' points='630 750 720 600 540 600'/%3E%3Cpolygon fill='%23AAA' points='810 750 720 900 900 900'/%3E%3Cpolygon fill='%23666' points='810 750 900 600 720 600'/%3E%3Cpolygon fill='%23999' points='990 750 900 900 1080 900'/%3E%3Cpolygon fill='%23999' points='180 0 90 150 270 150'/%3E%3Cpolygon fill='%23444' points='360 0 270 150 450 150'/%3E%3Cpolygon fill='%23FFF' points='540 0 450 150 630 150'/%3E%3Cpolygon points='900 0 810 150 990 150'/%3E%3Cpolygon fill='%23222' points='0 300 -90 450 90 450'/%3E%3Cpolygon fill='%23FFF' points='0 300 90 150 -90 150'/%3E%3Cpolygon fill='%23FFF' points='180 300 90 450 270 450'/%3E%3Cpolygon fill='%23666' points='180 300 270 150 90 150'/%3E%3Cpolygon fill='%23222' points='360 300 270 450 450 450'/%3E%3Cpolygon fill='%23FFF' points='360 300 450 150 270 150'/%3E%3Cpolygon fill='%23444' points='540 300 450 450 630 450'/%3E%3Cpolygon fill='%23222' points='540 300 630 150 450 150'/%3E%3Cpolygon fill='%23AAA' points='720 300 630 450 810 450'/%3E%3Cpolygon fill='%23666' points='720 300 810 150 630 150'/%3E%3Cpolygon fill='%23FFF' points='900 300 810 450 990 450'/%3E%3Cpolygon fill='%23999' points='900 300 990 150 810 150'/%3E%3Cpolygon points='0 600 -90 750 90 750'/%3E%3Cpolygon fill='%23666' points='0 600 90 450 -90 450'/%3E%3Cpolygon fill='%23AAA' points='180 600 90 750 270 750'/%3E%3Cpolygon fill='%23444' points='180 600 270 450 90 450'/%3E%3Cpolygon fill='%23444' points='360 600 270 750 450 750'/%3E%3Cpolygon fill='%23999' points='360 600 450 450 270 450'/%3E%3Cpolygon fill='%23666' points='540 600 630 450 450 450'/%3E%3Cpolygon fill='%23222' points='720 600 630 750 810 750'/%3E%3Cpolygon fill='%23FFF' points='900 600 810 750 990 750'/%3E%3Cpolygon fill='%23222' points='900 600 990 450 810 450'/%3E%3Cpolygon fill='%23DDD' points='0 900 90 750 -90 750'/%3E%3Cpolygon fill='%23444' points='180 900 270 750 90 750'/%3E%3Cpolygon fill='%23FFF' points='360 900 450 750 270 750'/%3E%3Cpolygon fill='%23AAA' points='540 900 630 750 450 750'/%3E%3Cpolygon fill='%23FFF' points='720 900 810 750 630 750'/%3E%3Cpolygon fill='%23222' points='900 900 990 750 810 750'/%3E%3Cpolygon fill='%23222' points='1080 300 990 450 1170 450'/%3E%3Cpolygon fill='%23FFF' points='1080 300 1170 150 990 150'/%3E%3Cpolygon points='1080 600 990 750 1170 750'/%3E%3Cpolygon fill='%23666' points='1080 600 1170 450 990 450'/%3E%3Cpolygon fill='%23DDD' points='1080 900 1170 750 990 750'/%3E%3C/g%3E%3C/pattern%3E%3C/defs%3E%3Crect x='0' y='0' fill='url(%23a)' width='100%25' height='100%25'/%3E%3Crect x='0' y='0' fill='url(%23b)' width='100%25' height='100%25'/%3E%3C/svg%3E");
    background-attachment: fixed;
    background-size: cover;
    
    /*font-family: 'Montserrat', sans-serif;*/
    color: #333;
    line-height: 1.6;
    
}


.nombre {
    height: 300px;
    /*background-color: greenyellow;*/
    text-decoration: none;
    color: #2a2a2a;
    font-size: 120px;
    font-weight: bold;
    text-align: start;
    align-content: center;
    position: absolute;
    top: 10%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;

}

.Separador {
    position: absolute;
    width: 80%;
    height: 60px;
    background-color: #3C3847;
    color: white;
    font-size: 24px;
    font-weight: bold;
    text-align: center;
    justify-content: center;
    line-height: 60px;
    letter-spacing: 2px;
    text-transform: uppercase;
    /*box-shadow: 6px 6px 0 #2a2a2a;*/
    transition: bottom 0.6s ease-out;
    z-index: 10;
    bottom: 200px;
    border-radius: 30px;
}

/* se desliza hacia arriba cuando se hace visible */
.Separador.visible {
    bottom: 100px;
    
}


.lineaSeparadora {
    height: 8px;
    background-color: #d4b24a;
    margin: 0;
}


/************************
        Portafolio
************************/

.encabezado {
    background: linear-gradient(rgba(0, 0, 0, 0.7));
    height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: white;
    padding: 0 20px;
}

.encabezado-contingut h1 {
    font-family: "Alfa Slab One", serif;
    font-weight: 400;
  font-style: normal;
    font-size: 4rem;
    margin-bottom: 1rem;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.encabezado-contingut p {
    font-size: 1.2rem;
    max-width: 700px;
    margin: 0 auto;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}



/********************* Galería de Proyectos ************************/
.Parte_Central {
    display: flex;
    max-width: 1400px;
    margin: 0 auto;
    padding: 40px 20px;
}

.galeria-proyectos {
    flex: 1;
    padding: 0 20px;
}

.proyectos {
    margin-top: 10px;
    padding-top: 20px;
    padding-bottom: 20px;
    margin-bottom: 10px;
    /*border-bottom: 4x solid #e0e0e0;*/
    border-top: 4px solid black;
      
}

.proyectos h2 {
    font-family: "Alfa Slab One", serif;
  font-weight: 400;
  font-style: normal;
    font-size: 2.5rem;
    color: #2a2a2a;
    margin-bottom: 15px;
    text-shadow: 0px 0px #2a2a2a;
}

.proyectos-descripcion {
    margin-bottom: 20px;
    font-size: 1.1rem;
    color: #555;
    line-height: 1.7;
    font-weight: bold;
}

.proyectos-etiquetas {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 15px;
}

.proyectos-etiquetas span {
    background-color: #2a2a2a;
    color: white;
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 500;
}

.grid-imagenes {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 25px;
    margin-bottom: 60px;
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 10px;
}

.imagen-contenedor {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
   width: 100%;       /* Se adapta al ancho de la celda */
  height: 100%;      /* Se adapta a la altura de la celda */
   aspect-ratio: auto; /* Puedes quitar esta línea si usas height */
}

.imagen-contenedor.cuadrado {
    
    height: 400px;
}

.imagen-contenedor.ancho {
    
    grid-column: span 2;
    grid-row: span 1;
}

.imagen-contenedor.xicotet img {
    grid-column: span 1;
    grid-row: span 1;
    max-height: 300px;
    
    
}

.imagen-contenedor.alto {
    grid-column: span 1;
    grid-row: span 2;
    max-height: 800px;
}

.imagen-contenedor:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);
}

.imagen-contenedor img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

.imagen-contenedor:hover img {
    transform: scale(1.05);
}

.overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);
    color: white;
    padding: 30px 20px 20px;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.imagen-contenedor:hover .overlay {
    opacity: 1;
}

.overlay h3 {
    font-size: 1.2rem;
    margin-bottom: 5px;
    font-weight: 600;
}

.overlay p {
    font-size: 0.9rem;
    opacity: 0.9;
}

.imagen-contenedor.mover img{
        object-position: 0px 0px;
}



/********** Navegación lateral **********/

.seccion-lateral {
    position: sticky;
    top: 150px;
    align-self: flex-start;
    margin-left: 40px;
    margin-right: 40px;
    width: 250px;
}

.seccion-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
}

.seccion-menu:before {
    content: "";
    position: absolute;
    width: 0;
    left: 0;
    top: 0;
    bottom: 0;
    border-right: 2px solid rgba(42, 42, 42, 0.1);
}

.seccion-items {
    display: flex;
    position: relative;
    margin-bottom: 15px;
    
}

.seccion-menu-enlaces {
    display: flex;
    align-items: center;
    padding: 8px 0 8px 20px;
    font-size: 0.9rem;
    font-weight: 600;
    text-transform: uppercase;
    transition: color 0.3s ease;
    text-decoration: none;
    color: #2a2a2a;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.seccion-menu-enlaces:before {
    content: "";
    position: absolute;
    width: 0;
    left: 0;
    top: 0;
    bottom: 0;
    border-right: 2px solid #2a2a2a;
    transition: transform 0.3s ease;
    transform: scaleY(0);
}

.seccion-menu-enlaces:hover {
    color: #2a2a2a;
}

.seccion-menu-enlaces:hover:before {
    transform: scaleY(1);
}

.seccion-menu-enlaces.active {
    color: #2a2a2a;
    font-weight: 700;
}

/*.seccion-items*/ .seccion-menu-enlaces.active:before {
    transform: scaleY(1);
}

.seccion-enlaces{
    font-family: "Tienne", serif;
  font-weight: 700;
  font-style: normal;

    
}

.seccion-enlaces:hover{
    font-weight: 900;
}

.seccion-conteo {
    margin-right: 10px;
    font-size: 1.1rem;
    
}

.correo {
    margin-top: 40px;
    padding-left: 20px;
    font-size: 1.1rem;
    line-height: 1.6;
}

.correo a {
    color: #2a2a2a;
    text-decoration: none;
    transition: color 0.3s ease;
    font-family: "Tienne", serif;
  font-weight: 700;
  font-style: normal;
}

.correo a:hover {
    color: #d4b24a;
}


/**********************
        Contacto
*************************/

.Pag-contacto {
    width: auto;
    height: 500px;
    margin: 20px;
    border-radius: 20px;
    display: flex;
    
    justify-content: center;
    align-items: center; 
    background-color: #2a2a2a;
    color: white;
}

.contacto-contenido {
    text-align: center; 
    width: 80%; 
}


.texto-superior {
    font-size: 1.2rem; 
       
    margin-bottom: 50px;
    
}

.email-grande a {
    color: white;
    font-size: 2.5rem; 
    font-weight: bold;
    margin: 20px 0; 
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 25px;
    transition: font-size 0.5s ease;
}

.email-grande a:hover, .icon-mail-alt {
    color: #ffdb67;
}

.texto-inferior {
    font-size: 1.1rem;
    margin-top: 50px; /* Espacio después del email */ 
    
}



/**************************
        Sobre mí
*************************/

.sobreMi{
    width: auto;
    height: 500px;
    margin: 20px;
    border-radius: 20px;
    display: flex;
    
    justify-content: center;
    align-items: center; 
    background-color: #2a2a2a;
    color: white;
}

.construccion{
    font-size: 4rem; 
    margin-bottom: 50px;
}





/*************************
        Responsive
**************************/

@media(max-width: 576px) {
    .nombre{
        font-size: 60px;
        transition: font-size 0.5s ease;
    
   
    }
    
    .encabezado-contingut h1 {
    
    font-size: 3rem;
    
}
    
    .email-grande a{
        font-size: 1rem; 
        gap: 10px;
        transition: font-size 0.5s ease;
    }
    
    .seccion-lateral {
        display: none; 
    }
    
     .imagen-contenedor.ancho,
    .imagen-contenedor.alto {
        aspect-ratio: 1/1;
        grid-column: auto;
        grid-row: auto;
    }
    

}

@media (min-width: 577px) and (max-width: 768px) {
   /* .encabezado-contingut h1 {
        font-size: 2.5rem;
    }*/
    
    .nombre{
        font-size: 80px;
        transition: font-size 0.5s ease;
        
    }
    .encabezado-contingut p {
        font-size: 1rem;
    }
    
    .proyectos h2 {
        font-size: 2rem;
    }
    
    .grid-imagenes {
        grid-template-columns: 1fr;
    }
    

    .email-grande a{
        font-size: 2rem; 
        transition: font-size 0.5s ease;
    }
    
    .seccion-lateral {
        display: none; 
    }
    
     .imagen-contenedor.ancho,
    .imagen-contenedor.alto {
        aspect-ratio: 1/1;
        grid-column: auto;
        grid-row: auto;
    }
    
    .imagen-contenedor.mover img{
        object-position: 0px 0px;
    }

}

@media (min-width: 769px) and (max-width: 992px) {
    
    .nombre{
        font-size: 80px;
        transition: font-size 0.5s ease;
        
    }
    
    .Parte_Central {
        flex-direction: column;
    }
    
    .seccion-lateral {
        display: none; 
    }
    
    .imagen-contenedor.ancho,
    .imagen-contenedor.alto {
        aspect-ratio: 1/1;
        grid-column: auto;
        grid-row: auto;
    }
    .imagen-contenedor.mover img{
        object-position: 0px 0px;
    }
}

@media (min-width: 992px) {
    .nombre {
        transition: transform 1s ease;
        
    }
}

@media (min-width: 1200px) {
    .nombre {
        width: 50%;
        transform: translateX(-90%) translateY(-40%);
        text-align: start;
        transition: transform 1s ease, font-size 1s ease;

    }
}

@media (min-width: 1400px) {
    .nombre {
        font-size: 10em;
        transition: font-size 1s ease;
    }
}