:root {
    --body-bg: #333;
}

/* Reseteo de los estilos */

*, *::before, *::after {
    box-sizing: border-box
}

* {
    margin: 0;
}

html {
    color-scheme: dark light;
    font-family: system-ui;
}

body {
    font-size: 1.25rem;
    line-height: 1.5;
    background: var(--body-bg);
    -webkit-font-smoothing: antialiased;
    color: #fff;
    display: grid;
}

img, picture, video, canvas, svg {
    display: block;
    max-width: 100%;
}

input, button, textarea, select {
    font: inherit;
}

h1, h2, h3, h4, h5, h6 {
    text-wrap: balance;
}

p {
    text-wrap: pretty;
}

/* Inicio de los estilos del layout (mobile-firts) */

.layout {
    display: grid;
    /*grid-template-columns: 20rem 1fr;*/
    gap: 2rem;
}

.header {
    position: fixed;
    width: 100%;
    z-index: 100;
}

.header_nav {
    padding: 0 1.25rem;
    box-shadow: 0 8px 32px 0 rgba(55, 135, 31, 0.37);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    display: flex;
    justify-content: space-between;
    align-items: center;
}

.nav {
    position: fixed;
    width: 100%;
    height: 100dvh;
    background-color: rgb(45, 109, 26);
    top: 80px;
    left: -100%;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transition: all .5s;
}

.header_icon {
    display: inline-block;
    width: 6rem;
}

.nav-list {
    margin: 0;
    padding: 0;
    list-style: none;
    
    display: grid;
    gap: 3rem;
    padding-block: 2rem;
    font-size: 1.25rem;
}

.nav-list a {
    color: #c0c0c0;
    text-decoration: none;
    transition: color .3s;
}

.nav-list a:hover, .nav-list a:active {
    color: #fff;
}

.checkbtn {
    font-size: 2.5em;
    cursor: pointer;
    order: 10;
}

#check {
    display: none;
}

#check:checked ~ .nav {
    left: 0;
}

/* estilos del inicio */

main {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

#inicio {
    min-height: 70dvh;
    max-width: 850px;
    padding: 6rem 2rem 0;

    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
}

#trabajos {
    padding: 6rem 2rem 0;
    min-height: 70dvh;
    max-width: 850px;

    
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.portfolio {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 2rem;
}

.portfolioItem {
    cursor: pointer;
    border-radius: 10px;
    transition: transform .3s, box-shadow .3s;
    box-shadow: 4px 6px 8px #000;
}

.portfolioItem img {
    border-radius: 10px;
}

.portfolioItem:hover, .portfolioItem:active {
    transform: translate(5px, -5px);
    box-shadow: 6px 8px 10px #000;
}

.portfolioItem_title {
    position: absolute;
    margin: 10px;
    transform: translateY(-150%);
    color: #fff;
    text-shadow: 0 4px 6px #000;
}

#acerca {
    padding: 6rem 2rem 0;
    max-width: 850px;
}

#mision_vision {
    padding: 6rem 2rem 0;
    max-width: 850px;
}

#contacto {
    padding: 6rem 2rem 0;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.contacto_container {
    width: 100%;
    max-width: 850px;
    gap: 3rem;
}

.contacto_contents {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

#contacto i {
    font-size: 30px;
}

.contact_item {
    padding: .5em;
    display: flex;
    align-items: center;
    gap: 40px;

    & a {
        text-decoration: none;
        color: #c0c0c0;
        transition: color .3s;
    }

    & a:hover {
        color: #fff;
    }
}

.contact_item::before {
    content: ' ';
    position: absolute;
    width: 2px;
    height: 60px;
    background-color: #fff;
    transform: translateX(45px);
}

.contact_RPG_logo {
    max-height: 200px;
    filter: invert(100%);
}

@media only screen and (width >= 768px) {

    .checkbtn {
        display: none;
    }

    .header_nav {
        justify-content: space-between;
    }
    
    .nav {
        left: 0;
        top: 0;
        background: none;
        height: 5rem;
        width: auto;
        position: inherit;
    }

    .nav-list {
        display: flex;
    }

}