*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
    font-weight: normal;
}

*::before,
*::after {
    box-sizing: border-box;
}

:root{
    --padding: 0 60px;
    --grid-template-columns: repeat(12, 1fr);
    --color-text-menu: #454545;
    --header-height: 73px;
}

html {
    min-height: 100vh;
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body{
    height: 100%;
    font-family: "Cormorant Upright", serif;
    font-style: italic;
    font-weight: normal;
    font-variation-settings: "wght" 300, "opsz" 12;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; 
    line-height: 1.5;
    text-rendering: optimizeSpeed;
    display: grid;
  grid-template-rows: auto 1fr auto;
  grid-auto-flow: column;
  grid-template-columns: 1fr;
  min-height: 100vh;
}

img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
}

input,
button,
textarea,
select {
    font: inherit;
}

a {
    color: inherit;
}

h1 {
    font-variation-settings: 'wght' 300, 'opsz' 32;
    font-size: clamp(2.441rem, 1.5vw + 2rem, 4.5rem);
}

h2 {
    font-variation-settings: 'wght' 300, 'opsz' 24;
    font-size: clamp(1.953rem, 1.25vw + 1.5rem, 3rem);
}   

h3 {
    font-variation-settings: 'wght' 300, 'opsz' 18;
    font-size: clamp(1.563rem, 1vw + 1.25rem, 2.25rem);
}   

h4 {
    font-variation-settings: 'wght' 300, 'opsz' 24;
    font-size: clamp(1.25rem, 0.75vw + 1rem, 1.5rem);
}   

h5 {
    font-variation-settings: 'wght' 300, 'opsz' 18;
    font-size: clamp(1rem, 0.5vw + 0.875rem, 1.125rem);
}   

h6 {
    font-variation-settings: 'wght' 300, 'opsz' 12;
    font-size: clamp(0.8rem, 0.25vw + 0.75rem, 1rem);
}   

strong {
    font-weight: normal;
    font-variation-settings: 'wght' 700, 'opsz' 12;
}

.italic {
    font-style: italic;
}

.text-2xs {
    font-size: clamp(0.4rem, 0.15vw + 0.35rem, 0.5rem);
}
.text-xs {
    font-size: clamp(0.6rem, 0.2vw + 0.5rem, 0.75rem);
}
.text-sm {
    font-size: clamp(0.7rem, 0.25vw + 0.6rem, 0.875rem);
}
.text-base {
    font-size: clamp(0.8rem, 0.3vw + 0.7rem, 1rem);
}
.text-lg {
    font-size: clamp(0.9rem, 0.35vw + 0.8rem, 1.125rem);
}
.text-xl {
    font-size: clamp(1rem, 0.4vw + 0.9rem, 1.25rem);
}
.text-2xl {
    font-size: clamp(1.2rem, 0.45vw + 1rem, 1.5rem);
}
.text-3xl {
    font-size: clamp(1.5rem, 0.5vw + 1.25rem, 1.875rem);
}
.text-4xl {
    font-size: clamp(1.8rem, 0.6vw + 1.5rem, 2.25rem);
}
.text-5xl {
    font-size: clamp(2.4rem, 0.8vw + 2rem, 3rem);
}
.text-6xl {
    font-size: clamp(3.2rem, 1vw + 2.5rem, 4rem);
}

.opsz-12 {
    font-variation-settings: "opsz" 12;
}
.opsz-14 {
    font-variation-settings: "opsz" 14;
}
.opsz-16 {
    font-variation-settings: "opsz" 16;
}
.opsz-18 {
    font-variation-settings: "opsz" 18;
}
.opsz-20 {
    font-variation-settings: "opsz" 20;
}
.opsz-24 {
    font-variation-settings: "opsz" 24;
}
.opsz-28 {
    font-variation-settings: "opsz" 28;
}
.opsz-32 {
    font-variation-settings: "opsz" 32;
}



/* HEADER DESKTOP */
.header{
    display: grid;
    grid-template-columns: var(--grid-template-columns);
    gap: 0 20px;
    padding: var(--padding);
    background-color: #FFFFFF;
    box-shadow: 0 1px 5px rgba(217, 217, 217, 0.18);
    grid-column: span 12;
    height: auto;
    position: sticky;
    top: 0;
    z-index: 100;
    transition: all 0.3s ease;
}

.header.scrolled {
    padding-top: 8px;
    padding-bottom: 8px;
}

#home .header{
    opacity: 0;
    box-shadow: 0 4px 25px rgba(0, 0, 0, 0.25);
    background-color: rgb(255, 255, 255, 0.3); 
}

#home .header:hover{
    opacity: 1;
}

#home .header nav ul li a{
    color: black;
}

.header .logo{
    padding: 12px 0;
    grid-column: span 2;
}

.header .logo img{
    width: 80%;
    min-height: 49px;
    min-width: 149px;
    transition: all 0.3s ease;
}

.header.scrolled .logo img {
    min-height: 35px;
    width: 60%;
}

.header.scrolled .logo{
    padding: 0;
}


.header nav{
    grid-column: span 10;
    display: flex;
    gap: 96px;
    justify-self: end;
    align-items: center;
    transition: all 0.3s ease;
}

.header nav .nav-links{
    display: flex;
    gap: 48px;
}

.header nav .hamburger-menu{
    display: none;
}

.header nav ul{
    display: flex;
    gap: 48px;
    list-style: none;
}

.header nav ul li:hover, .header nav li[aria-current]{
    text-decoration: underline;
    text-underline-offset: 4px;
}

.header nav ul li a{
    text-decoration: none;
    color: var(--color-text-menu);
    font-size: 1.25rem;
    font-variation-settings: "wght" 300, "opsz" 12;
}


.header nav .language-nav{
    display: flex;
    gap: 1rem;
    align-items: center;   
}

.header nav .language-nav li.active a {
    text-decoration: underline;
    text-underline-offset: 4px;
}

.header nav .language-nav li {
    text-transform: lowercase;
    font-variant: small-caps;
    letter-spacing: 0.05rem;
    color: var(--color-text-menu);
}

/* HEADER MOBILE */
@media screen and (max-width: 768px), (hover: none), (pointer: coarse) {

    .header{
        padding: 0 24px;
    }

    /* Al abrir hamburger menu */
    #home .header.show{
        background-color: #FFFFFF;
    }

    .header nav .hamburger-menu{
        display: block;
        cursor: pointer;
    }

    .header nav .nav-links{
        display: none;
        background-color: #FFFFFF;
        padding: 24px 24px;
        flex-direction: column;
        position: absolute;
        left: 0;
        width: 100%;
        top: 100%;
        gap: 12px;
    }

    .header nav .nav-links ul.language-nav{
        flex-direction: row;
        gap: 6px;
    }

    .header nav .nav-links.show{
        display: flex;
    }

    .header nav .nav-links ul{
        flex-direction: column;
        gap: 12px;
    }

    .header nav .nav-links ul li{
        border-bottom: 1px solid rgba(236, 236, 236, 0.4);
        padding-bottom: 12px;
    }

    .header nav .nav-links ul li a, .header nav .flag-language{
        padding-left: 16px;
    }

}



/* MAIN HOME DESKTOP */

.video-background-mobile{
    display: none;
}

.main .video-background-desktop, main .video-background-mobile{
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: fixed;
    top: 0;
    z-index: -1;
}

/* .main p{
    font-size: 1rem;
} */

/* MAIN HOME MOBILE */
@media screen and (max-width: 768px) {
    .video-background-desktop{
        display: none;
    }

    .video-background-mobile{
        display: block;
    }
}

@media screen and (max-width: 768px), (hover: none) {
    #home .header{
        opacity: 1;
    }
}

/* MAIN WORKS Y PROJECTS DESKTOP */
#works, #projects, #about, #obra, #project {
    width: 100%;
    overflow-x: hidden;
}

#works .grid-container, 
#projects .grid-container,
#about .grid-container,
#obra .grid-container,
#project .grid-container {
    width: 100%;
    margin-top: 48px;
    display: grid;
    grid-template-columns: var(--grid-template-columns);
    gap: 32px 60px;
    padding: var(--padding);
}

#works .grid-container .grid-item, 
#projects .grid-container .grid-item {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    width: 100%;
    grid-column: span 3;
}

#works .grid-container .grid-item img, 
#projects .grid-container .grid-item img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

#works .grid-container .grid-item span, 
#projects .grid-container .grid-item span {
    margin-top: 8px;
    text-align: center;
}

/* MAIN WORKS Y PROJECTS MOBILE */
@media screen and (max-width: 768px) {
    #works .grid-container,
    #projects .grid-container {
        gap: 24px;
        padding: 0 24px;
        margin-top: 16px;
    }
    #works .grid-container .grid-item, 
    #projects .grid-container .grid-item {
        grid-column: span 6;
    }
.grid-container  {
    padding: 0 24px!important;
}
}

/* Ajuste adicional para pantallas muy pequeñas */
@media screen and (max-width: 400px) {
    .grid-container {
        padding: 0 24px;
        gap: 24px 16px;
    }
}


/* MAIN WORK-WORKS DESKTOP */
#obra .grid-container{
    gap: 40px 80px;
}

#obra .grid-container .buttons{
    grid-column: span 12;
    display: flex;
    justify-content: space-between;
}

#obra .grid-container .buttons a:hover{
    text-decoration: underline;
    text-underline-offset: 4px;
}

#obra .grid-container .buttons a{
    text-decoration: none;
    color: #454545;
    text-transform: uppercase;
}


@media screen and (min-width: 769px) {
    #obra .grid-container {
        min-height: calc(100vh - var(--header-height));
        margin-top: 0;
        padding-top: 48px;
        display: grid;
        grid-template-columns: var(--grid-template-columns);
    }

    #obra .grid-container .work-image-container {
        grid-column: 2 / 8;
        height: calc(100vh - var(--header-height) - 96px);
        display: flex;
        justify-content: center;
    }

    #obra .grid-container .work-image-container img {
        height: 100%;
        width: auto;
        max-width: 100%;
        object-fit: contain;
    }

    #obra .grid-container .work-information-container {
        grid-column: 8 / 12;
        margin-top: 0;
    }
}

#obra .grid-container .work-information-container{
    display: flex;
    flex-direction: column;
    gap: 16px;
}

#obra .grid-container .work-information-container .dimensions-work, 
#obra .grid-container .work-information-container .description-work{
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* MAIN WORK-WORKS MOBILE */
@media screen and (max-width: 768px) {
    #work .grid-container {
        gap: 24px;
        margin-top: 16px;
        padding: 0 24px;
    }
    
    #work .grid-container .work-image-container {
        grid-column: span 12;
        height: auto;
    }

    #work .grid-container .work-image-container img {
        width: 100%;
        height: auto;
        max-height: none;
    }

    #work .grid-container .work-information-container {
        grid-column: span 12;
    }
}

/* MAIN PROJECTS-PROJECT DESKTOP */

#project .grid-container{
    gap: 0 20px;
}

#project h1, #project h2, #project h3, #project h4, #project h5, #project h6, #project p {
    text-align: center;
}

#project .grid-container .grid-banner{
    grid-column: 2/12;
}

#project .grid-container img{
    width: 100%;
}

#project .grid-container .grid-text-block{
    grid-column: 3 / 11;
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin: 80px 0;
}

#project .grid-container .grid-text-block h2{
    text-align: center;
}

#project .grid-container .grid-image-two{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    grid-column: 2 / 12;
    margin: 20px 0;
}

#project .grid-container .grid-image-two img{
    width: 100%;
}

#project .grid-container .grid-image-four {
    grid-column: 2 / 12;
    width: 100%;
}

#project .grid-container .grid-image-four img {
    width: calc(50% - 10px);
    margin-bottom: 20px;
    float: left;
}

#project .grid-banner:last-child{
    padding-top: 20px;
}

#projects .grid-item, #works .grid-item {
    transition: all 0.3s ease;
}

#projects .grid-item:hover, #works .grid-item:hover{
    opacity: 0.8;
}
/* MAIN PROJECTS-PROJECT MOBILE */
@media screen and (max-width: 768px) {

    #project .grid-container .grid-banner{
        grid-column: span 12;
    }

    #project .grid-container .grid-text-block{
        grid-column: span 12;
        margin: 32px 0;
    }

    #project .grid-container .grid-text-block h2{
        text-align: start;
        /* font-size: 24px; */
    }

    #project .grid-container .grid-image-two{
        grid-template-columns: 1fr;
        grid-column: span 12;
        flex-direction: column;
        gap: 32px;
    }

    #project .grid-container .grid-image-four{
        grid-column: span 12;
        display: flex;
        flex-direction: column;
        gap: 20px;
    }

    #project .grid-container .grid-image-four img {
        width: 100% !important;
        margin-bottom: 0;
        float: none;
    }

    #project .grid-banner:last-child{
        padding-top: 32px;
    }
}

/* MAIN ABOUT DESKTOP */

#about .grid-container .titule-container{
    grid-column: span 12;
    margin-bottom: 14px;
}

#about .grid-container .titule-container p{
    /* font-size: 2.5rem; */
    width: 50%;
}

#about .grid-container .perfil-container{
    display: flex;
    grid-column: span 10;
    gap: 60px;
}

#about .grid-container .perfil-container img{
    width: 44%;
    height: fit-content;
}

#about .grid-container .perfil-container .text-container{
    width: 50%;
}

#about .grid-container .perfil-container .text-container p{
    margin-bottom: 20px;
}

#about .grid-container .perfil-container .text-container p:last-child{
    margin-bottom: 0;
}

#about .grid-container .video-container{
    padding-top: 58px;
    grid-column-start: 2;
    grid-column-end: 12;
}

#about .grid-container .video-container video{
    width: 100%;
    margin: 0 auto;
    display: block;
}

#about main p {
    font-size: 1.25rem;
}

/* MAIN ABOUT MOBILE */
@media screen and (max-width: 768px) {

    #about .grid-container{
        gap: 24px;
    }

    #about .grid-container .titule-container{
        margin-bottom: 0;
    }

    #about .grid-container .titule-container p{
        /* font-size: 1.5rem; */
        width: 100%;
    }

    #about .grid-container .perfil-container{
        grid-column: span 12;
        flex-direction: column;
        gap: 20px;
    }

    #about .grid-container .perfil-container img{
        width: 100%;
        height: auto;
    }

    #about .grid-container .perfil-container .text-container{
        width: 100%;
    }

    #about .grid-container .video-container{
        padding-top: 0;
        grid-column: span 12;
    }

    #about .grid-container .video-container img{
        width: 100%;
    }
}

/* FOOTER DESKTOP */
.footer{
    margin-top: 16px;
    display: grid;
    grid-template-columns: var(--grid-template-columns);
    gap: 0 16px;
    padding: var(--padding);
    height: 10vh;
    align-items: center;
    box-shadow: 0 1px 5px rgba(217, 217, 217, 0.18);
}

.footer .copy-mobile{
    display: none;
}

.footer .links{
    grid-column: span 4;
    display: flex;
    align-items: center;
}

.footer .links .instagram{
    display: flex;
    gap: 16px;
    align-items: center;
}

.footer .links .mail{
    margin-left: min(16px);
}

.footer .links .mail img{
    display: none;
}

.footer a, .footer p{
    text-decoration: none;
    color: var(--color-text-menu);
}

.footer .copy{
    margin-left: auto;
    grid-column: span 8;
    text-align: end;
}

/* FOOTER MOBILE */
@media screen and (max-width: 768px) {
    .footer{
        padding: 0 24px;
    }

    .footer .links{
        grid-column: span 2;
    }

    .footer .links .mail{
        margin-left: 8px;
    }

    .footer .links .instagram p, .footer .links .mail p, .footer .copy-desktop{
        display: none;
    }

    .footer .links .mail img, .footer .copy-mobile{
        display: block;
    }

    .footer .copy{
        grid-column: span 10;
    }

    .footer .copy p{
        /* font-size: 12px; */
    }
}

/* Contenedor principal */
#obra .grid-container {
    display: grid;
    grid-template-columns: var(--grid-template-columns);
    gap: 40px 80px;
    min-height: calc(100vh - var(--header-height));
    align-items: center;
    position: relative;
}

#obra .grid-container .work-image-container {
    grid-column: 4 / 9;
    display: flex;
    justify-content: center;
    align-items: center;
}

#obra .grid-container .work-image-container img {
    max-height: calc(100vh - var(--header-height) - 96px);
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

#obra .grid-container .work-information-container {
    grid-column: 9 / 12;
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-self: center;
}

#obra .arrow-buttons {
    position: fixed;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 100%;
    display: flex;
    justify-content: space-between;
    padding: 0 20px;
    pointer-events: none;
    z-index: 10;
}

#obra .arrow-buttons a {
    pointer-events: auto;
}

@media screen and (max-width: 768px) {
    #obra .grid-container {
        padding: 24px;
        align-items: start;
        min-height: auto;
        gap: 24px;
    }
    
    #obra .grid-container .work-image-container {
        grid-column: span 12;
        padding: 0;
        height: auto;
        max-height: 70vh;
        width: 100%;
    }
    
    #obra .grid-container .work-image-container img {
        width: 100%;
        height: auto;
        max-height: 70vh;
        object-fit: contain;
    }
    #obra .grid-container .work-information-container {
        grid-column: span 12;
    }
}

/* Ajustar el contenedor principal */
.main {
    width: 100%;
    overflow-x: hidden;
}

/* Asegurar que el contenedor principal no tenga overflow */
.main#obra {
    width: 100%;
    overflow: hidden;
    position: relative;
}