@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;200;300;400;500;600;700;800;900&display=swap');

:root {
    --white: #FFFFFF;
    --red: #FF3030;
    --black: #333333;
    --dark-grey: #AAAAAA;
    --grey: #D5D5D5;
    --light-grey: #F5F5F5;
}

html {
    scroll-behavior: smooth;
    }
    
body{
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    color: var(--black);
    font-family: 'Montserrat', sans-serif;
    scroll-behavior: smooth;
    background-color: #ffffff;
}

a,a:hover,a:visited,a:active{
    text-decoration: none;
    color: inherit;
}

nav{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

nav .frame{
    display: flex;
    flex-direction: row;
    height: 100px;
    justify-content: space-between;
    align-items: center;
    width: 1140px;
    /* border-bottom: 1px solid var(--light-grey); */
}

nav .left{
    display: flex;
    flex-direction: row;
    min-width: 200px;
    align-items: center;
}

nav .logo{
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    width: 45px;
    height: 45px;
    background-color: var(--red);
    border-radius: 50%;
    color: var(--white);
    font-size: 30px;
    font-weight: 800;
}

nav .logo img{
    width: 25px;
    height: 25px;
    transition: transform 0.5s;
}

nav .logo:hover img{
    transform: scale(1.6);
}

nav .my_name{
    font-size: 20px;
    margin-left: 10px;
}

nav .right{
    display: flex;
    flex-direction: row;
    align-items: center;
}

nav menu{
    display: flex;
    flex-direction: row;
    justify-content: center;
}

nav menu .item{
    display: flex;
    line-height: initial;
    margin-left: 20px;
    font-size: 15px;
    color: var(--dark-grey);
}

nav .item:hover, nav .item:active{
    color: var(--black);
}

nav .menu-button{
    font-size: 60px;
    text-align: right;
    display: none;
    cursor: pointer;
}

nav .menu-icon{
    display: block;
    padding: 0px;
    line-height: 33px;
    transition: transform ease-in-out 0.5s;
    user-select: none;
}

nav .dropdown{
    display: none;
}

.page_title{
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 180px;
    background-color: #FAFAFA;
    /* background-image: url('/style/page_title_bg.jpg');
    box-shadow: inset 0 0 0 2000px rgba(255, 255, 255, 0.5); */
    background-size: cover;
    background-position: top;
    justify-content: center;
    align-items: center;
    border: 2px solid var(--light-grey);
    border-width: 2px 0px 2px 0px;
}

.page_title_text{
    font-size: 40px;
    font-weight: 600;
    width: 1140px;
}

.container{
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: calc(100vh - 410px);
}

.container .frame{
    display: flex;
    flex-direction: column;
    width: 1140px;
}

.filter{
    margin-top: 30px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.filter .frame{
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    width: 1140px;
    margin-top: 20px;
    gap: 10px;
}

.filter .item{
    color: var(--dark-grey);
    padding: 5px 10px 5px 10px;
    cursor: pointer;
    font-size: 14px;
}

.filter .item:hover{
    color: var(--black);
}

.cards{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.cards .frame{
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    width: 1140px;
    margin-top: 20px;
}

.cards .grid{
    display: grid;
    grid-template-columns: 4fr 4fr 4fr;
    grid-gap: 20px;
}

.card{
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    background-color: white;
    border: var(--white) solid 10px;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0px 0px 20px var(--grey);
    color: var(--black);
    transition: box-shadow linear 0.25s;
}

.card:hover{
    box-shadow: 0px 0px 20px var(--dark-grey);
}

.card img{
    width: 100%;
    border-radius: 5px;
    transition: opacity linear 0.25s;
}

.card:hover img{
    opacity: 90%;
}

.card .title{
    margin-top: 10px;
    font-size: 15px;
    font-weight: 600;
}

.card .labels{
    margin-top: 10px;
    font-size: 15px;
    font-weight: 400;
    margin-bottom: 10px;
}

.content{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-top: 20px;
}

.content .frame{
    display: flex;
    flex-direction: column;
    background-color: var(--white);
    border-radius: 10px;
    width: 1140px;
    padding: 20px;
    box-sizing: border-box;
    box-shadow: 0px 0px 5px var(--grey);
}

.content .close{
    position: absolute;
    align-self: flex-end;
    font-size: 30px;
    font-weight: 400;
    color: var(--dark-grey);
    margin-top: -10px;
}

.content .close:hover{
    color: var(--black);
}

.content .title{
    font-size: 15px;
    font-weight: 600;
    max-width: 80%;
}

.content .labels{
    font-size: 15px;
    font-weight: 400;
    margin-top: 10px;
    color: var(--red);
}

.content .time{
    font-size: 15px;
    margin-top: 10px;
}

.content p{
    font-size: 15px;
}

.content p a{
    font-weight: 600;
}

.content p a:hover{
    color: var(--red);
}

.content .images{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
    gap: 10px;
}

.content .videos{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
    gap: 10px;
}

.content img{
    max-width: 300px;
    align-self: center;
    border-radius: 10px;
    border: var(--grey) solid 2px;
    transition: border linear 0.25s, transform linear 0.25s;
}

.content img:hover, .content img:active{
    border: var(--red) solid 2px;
    transform: scale(1.01);
    cursor: pointer;
}

.content iframe{
    align-self: center;
    border-radius:10px;
    overflow: hidden;
    border: var(--grey) solid 2px;
    margin: 20px;
}

.portfolio_other_title{
    font-size: 24px;
    font-weight: 500;
    margin-top: 40px;
}

.lightbox{
    position: fixed;
    display: none;
    flex-direction: column;
    align-items: flex-end;
    top: 0;
    left: 0;
    margin: 20px;
    background-color: #333333AA;
    width: calc(100% - 44px);
    height: calc(100% - 44px);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    border-radius: 10px;
    transition: all linear 0.25s;
    background-origin: content-box;
    border: 2px solid var(--black);
}

.lightbox .close_button{
    font-size: 70px;
    margin: 10px;
    line-height: 40px;
    color: var(--red);
    border-radius: 10px;
    user-select: none;
}

.lightbox .close_button:hover{
    color: var(--white);
    cursor: pointer;
}

.section{
    margin-top: 20px;
    display: flex;
    flex-direction: row;
    gap: 20px;
}

.section .left{
    width: 50%;
}

.section .right{
    width: 50%;
}

.section-title{
    margin-top: 100px;
    font-size: 20px;
    font-weight: 600;
}

.section-title-line{
    height: 2px;
    background-color: var(--light-grey);
    border: 0;
    margin-top: 3px;
    float: left;
    margin-left: 0px;
}

.section-title-line::after{
    content: '';
    display: block;
    width: 30px;
    height: 2px;
    background-color: var(--red);
    border: 0;   
}

.about-me{
    margin-top: 40px;
    margin-bottom: 20px;
}

.left.about-me{
    display: flex;
    justify-content: flex-start;
}

.my-photo{
    background: url("/style/my-photo.jpeg");
    background-size: contain;
    background-repeat: no-repeat;
    width: 350px;
    height: 350px;
    border: 15px solid white;
    border-bottom: 60px solid white;
    box-shadow: var(--grey) 1px 1px 25px;
    user-select: none;
}

.my-photo .bounding-box{
    width: 40%;
    height: 50%;
    border: 2px solid white;
    margin-top: 7%;
    margin-left: 29%;
    opacity: 0%;
    transition: opacity 0.1s;
}

.my-photo .puttext{
    color: white;
    font-weight: 400;
    font-size: 14.4px;
    margin-left: 29%;
    margin-top: 1%;
    opacity: 0%;
    transition: opacity 0.1s;
}

.my-photo:hover .bounding-box{
    opacity: 100%;
}

.my-photo:hover .puttext{
    opacity: 100%;
}

.right.about-me{
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.about-me .title{
    color: var(--dark-grey);
}

.about-me .name{
    font-size: 50px;
    font-weight: 700;
    margin-top: 10px;
}

.about-me .description{
    font-size: 15px;
    width: 100%;
    margin-top: 20px;
}

.about-me .buttons{
    display: flex;
    flex-direction: row;
    justify-content: left;
}

.about-me .buttons .download-button{
    margin-top: 20px;
    margin-right: 5px;
    border: 2px solid var(--red);
    border-radius: 50px;
    width: fit-content;
    padding: 8px 20px 8px 20px;
    transition: background-color ease-in-out 0.25s, color ease-in-out 0.25s;
    box-shadow: 0 10px 10px -8px var(--grey);
}

.about-me .buttons .download-button:hover, .about-me .buttons .download-button:active{
    background-color: var(--red);
    color: var(--white);
}

.about-me .buttons .contact-button{
    margin-top: 20px;
    margin-left: 5px;
    border: 2px solid var(--grey);
    border-radius: 50px;
    width: fit-content;
    padding: 8px 20px 8px 20px;
    transition: background-color ease-in-out 0.25s;
    box-shadow: 0 10px 10px -8px var(--grey);
}

.about-me .buttons .contact-button:hover, .about-me .buttons .contact-button:active{
    background-color: var(--grey);
}

.timebox{
    border-bottom: var(--light-grey) 1px solid;
    border-left: var(--light-grey) 1px solid;
    transition: transform ease-in-out 0.25s;
}

.timebox:hover, .timebox:active{
    transform: scale(1.05);
}

.timebox .first-line{
    display: flex;
    flex-direction: row;
    margin-left: -15px;
    line-height: 20px;
}

.timebox .year{
    margin-top: 20px;
    background-color: var(--white);
    border: var(--red) 2px solid;
    border-radius: 15px;
    width: fit-content;
    min-width: fit-content;
    padding: 1px 10px 1px 10px;
    display: flex; 
    justify-content: center;
    font-size: 12px;
    font-weight: 600;
    line-height: 20px;
    height: 20px;
}

.timebox .title{
    color: var(--black);
    display: flex;
    font-size: 12px;
    font-weight: 600;
    margin-left: 10px;
    margin-top: 22px
}

.timebox .place{
    font-size: 15px;
    font-weight: 400;
    margin: 20px;
}

.section.cert{
    flex-wrap: wrap;
    display: grid;
    grid-template-columns: 6fr 6fr;
    grid-gap: 20px;
}

.certificate{
    display: flex;
    flex-direction: row;
    border: var(--grey) 2px solid;
    border-radius: 10px;
    overflow: hidden;
    transition: all ease-in-out 0.25s;
}

.certificate:hover, .certificate:active{
    box-shadow:0 12px 17px var(--grey);
    transform: translateY(-5px);
}

.certificate .logo{
    width: 100px;
    min-width: 100px;
    line-height: 100px;
    align-items: center;
    display: flex;
    justify-content: center;
    background-color: var(--light-grey);
}

.certificate .text{
    margin: 20px;
}

.certificate .text .title{
    font-size: 15px;
    font-weight: 600;
}

.certificate .text .company{
    font-size: 15px;
}

.certificate .text .year{
    font-size: 10px;
    color: var(--dark-grey);
}

.sub-title-skills{
    font-weight: 600;
    margin-bottom: 20px;
}

.skills{
    display: flex;
    flex-direction: row;
    gap: 8px;
    width: 100%;
    flex-wrap: wrap;
}

.skill{
    font-size: 12px;
    font-weight: 500;
    border: 2px solid var(--grey);
    border-left: 2px solid var(--red);
    border-right: 2px solid var(--red);
    border-radius: 8px;
    padding: 4px 6px;
    text-wrap: nowrap;
    transition: border linear 0.25s;
    cursor: default;
}

.skill:hover{
    border: 2px solid var(--grey);
    border-top: 2px solid var(--red);
    border-bottom: 2px solid var(--red);
}

.eventbox{
    display: flex;
    flex-direction: row;
    margin-bottom: 20px;
}

.eventbox img{
    width: 30px;
    height: 30px;
    color: var(--red);
}

.eventbox .text{
    display: flex;
    flex-direction: column;
    margin-left: 20px;
}

.eventbox .title{
    font-size: 17px;
    font-weight: 600;
}

.eventbox .description{
    font-size: 14px;
    color: var(--dark-grey);
    margin-top: 5px;
}

.hobbies{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    width: 100%;
    gap: 20px;
}

.hobby-box{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 200px;
    height: 200px;
    background-color: var(--white);
    border: var(--dark-grey) 2px solid;
    border-radius: 10px;
    transition: box-shadow ease-in-out 0.25s, transform ease-in-out 0.25s;
    gap: 10px;
}

.hobby-box:hover, .hobby-box:active{
    box-shadow:0 12px 17px var(--grey);
    transform: translateY(-5px);
}

.hobby-box .text{
    font-size: 20px;
}

.contact{
    display: grid;
    justify-content: center;
    align-items: center;
    grid-template-columns: 6fr 6fr;
    margin-top: 50px;
}

.contact.left{
    display: flex;
    flex-direction: column;
    align-items:flex-end;
    margin-right: 10px;
}

.contact.right{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-top: 87px;
    margin-left: 10px;
}

.contact .title{
    width: 315px;
    text-align: left;
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 15px;
}

.contact label{
    text-align: left;
    font-size: 12px;
    width: 315px;
    color: var(--black);
    transform: translateX(15px);
}

.contact input,.contact  textarea,.contact  button{
    border: var(--grey) 2px solid;
    border-radius: 10px;
    height: 40px;
    padding-left: 10px;
    width: 300px;
    font-size: 15px;
    margin-bottom: 15px;
    font-weight: 500;
}

.contact input:focus, .contact textarea:focus{
    border: var(--black) 2px solid;
    outline: none;
}

.contact button[type=submit]{
    border: 2px solid var(--red);
    border-radius: 50px;
    width: 316px;
    padding: 8px 20px 8px 20px;
    transition: background-color ease-in-out 0.25s, color ease-in-out 0.25s;
    box-shadow: 0 10px 10px -8px var(--grey);
    background-color: var(--white);
    margin-top: 20px;
    cursor: pointer;
}

.contact button[type=submit]:hover, .contact button[type=submit]:active{
    background-color: var(--red);
    color: var(--white);
}

.contact textarea{
    height: 100px;
    padding-top: 12px;
    margin-bottom: 15px;
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 500;
    resize: none;
}

.contact .captcha{
    height: auto;
    width: 300px;
}

footer{
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100px;
    border-top: var(--light-grey) 1px solid;
    background-color: var(--light-grey);
    margin-top: 20px;
    box-shadow: 0px 0px 5px var(--grey);
}

footer .social{
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 10px;
}

footer .social .item{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-color: var(--dark-grey);
    width: 40px;
    height: 40px;
    border-radius: 45px;
}

footer .social .item:hover{
    background-color: var(--red);
    transition: background-color linear 0.2s;
}

@media only screen and (max-width: 1140px) {
    nav .frame{
        width: 90%;
    }

    .page_title_text{
        width: 90%;
    }

    .filter .frame{
        width: 90%;
    }

    .cards .frame{
        width: 90%;
    }

    .container .frame{
        width: 90%;
    }

    .cards .frame .grid{
        grid-template-columns: 6fr 6fr;
    }

    .content .frame{
        width: 90%;
    }
}

@media only screen and (max-width: 700px) {
    nav menu{
        display: none;
    }

    nav .right .menu-button{
        position: absolute;
        right: 20px;
        display:flex;
        flex-direction: column;
        justify-content: end;
    }

    nav .dropdown{
        position: fixed;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 30px;
        top: 100px;
        left: 0px;
        width: 100%;
        height: 0%;
        overflow: hidden;
        background-color: var(--white);
        border: none;
        transition: all 0.5s;
        z-index: 1;
    }

    nav .dropdown.opened{
        height: calc(100% - 100px);
    }

    nav .dropdown .item{
        display: flex;
        line-height: initial;
        font-size: 20px;
        color: var(--dark-grey);
        margin-bottom: 10px;
        transition: all linear 0.25s;
    }

    nav .dropdown .item:hover{
        color: var(--red);
        padding-left: 15px;
    }

    .cards .frame .grid{
        grid-template-columns: 12fr;
    }

    .content .frame{
        width: 100%;
        border-radius: 0px;
    }

    .content img{
        max-width: 100%;
    }

    .lightbox{
        margin: 0px;
        background-color: var(--black);
        width: 100%;
        height: 100%;
        border-radius: 0px;
    }

    .left.about-me{
        justify-content: center;
    }

     .my-photo .puttext{
        margin-left: 0;
     }
    
    .about-me{
        text-align: center;
        margin-top: 20px;
    }

    .about-me .name{
        font-size: 30px;
    }

    .about-me .description{
        text-align: left;
    }
    
    .about-me .buttons{
        justify-content: center;
        font-size: 12px;
    }

    .about-me .buttons .download-button{
        padding: 4px 10px 4px 10px;
    }

    .about-me .buttons .contact-button{
        padding: 4px 10px 4px 10px;
    }

    .section{
        flex-direction: column;
        gap: 0px;
    }
    .section .left{
        width: 100%;
    }
    
    .section .right{
        width: 100%;
    }

    .timebox{
        margin-right: 0px;
    }

    .section.cert{
        grid-template-columns: 12fr;
    }

    .sub-title-skills.social{
        margin-top: 30px;
    }

    .skill{
        margin-right: 0px;
    }

    .hobby-box{
        width: 100px;
        height: 100px;
    }

    .hobby-box img{
        width: 30px;
        height: 30px;
    }

    .hobby-box .text{
        font-size: 10px;
    }

    .grid.contact{
        grid-template-columns: 12fr;
        margin-top: 10px;
    }

    .left.contact{
        align-items:center;
        margin-right: 0px;
    }
    
    .contact.right{
        align-items: center;
        margin-top: 0px;
        margin-left: 0px;
    }

    .contact .title{
        width: 85%;
    }

    .contact label{
        width: 85%;
    }

    .contact input, .contact textarea, .contact button{
        height: 40px;
        padding-left: 10px;
        width: 80%;
        margin-bottom: 20px;
        font-size: 15px;
    }

    .contact .captcha{
        transform: scale(0.8);
    }

    .contact button[type=submit]{
        width: 80%;
    }
}